private void writeCurrentHouseToFile() { JSystem.println("Saving house " + this.m_currentHouse.getName() + ".xml"); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(this.m_currentHouse.getName()).append(".xml"); DataOutputStream @out = new DataOutputStream(OutputStream.getResourceAsStream(stringBuffer.toString())); this.m_currentHouse.writexml(@out); @out.close(); }
private void setSelectedObjectAttributes() { if (house.Room.house_cast(this.m_selectedObject) != null) { house.Room room = house.Room.house_cast(this.m_selectedObject); JSystem.println("setting room attributes"); room.setFloor(this.m_currSelectionFirstList); room.setWall(this.m_currSelectionSecondList); } else if (Door.house_cast(this.m_selectedObject) != null) { Door.house_cast(this.m_selectedObject).setType(this.getAttributeValueLookupIndex(this.m_currSelectionFirstList, 0)); } else if (HouseObject.house_cast(this.m_selectedObject) != null) { HouseObject houseObject = HouseObject.house_cast(this.m_selectedObject); if (this.m_currentFacingSelectionButtonId == 4) { houseObject.setFacing(0); } else if (this.m_currentFacingSelectionButtonId == 5) { houseObject.setFacing(2); } else if (this.m_currentFacingSelectionButtonId == 6) { houseObject.setFacing(1); } else if (this.m_currentFacingSelectionButtonId == 7) { houseObject.setFacing(3); } int valueLookupIndex = this.getAttributeValueLookupIndex(this.m_currSelectionFirstList, 0); this.m_prevAddedObjectType = valueLookupIndex; houseObject.setType(valueLookupIndex); } else { if (Window.house_cast(this.m_selectedObject) == null) { return; } Window.house_cast(this.m_selectedObject).setType(this.getAttributeValueLookupIndex(this.m_currSelectionFirstList, 0)); } }
private void processAttributeListSelection(int listIndex, int itemIdx) { if (listIndex == 0) { if (itemIdx + this.m_currPageFirstList * this.m_numListRows >= this.m_lookupSizeFirstList) { JSystem.println("non existing item selected from list 1, doing nothing"); } else { this.m_currSelectionFirstList = this.m_currPageFirstList * this.m_numListRows + itemIdx; } } else if (itemIdx + this.m_currPageSecondList * this.m_numListRows >= this.m_lookupSizeSecondList) { JSystem.println("non existing item selected from list 2, doing nothing"); } else { this.m_currSelectionSecondList = this.m_currPageSecondList * this.m_numListRows + itemIdx; } }
private static int copyCharArray( string srcArray, int srcOffset, int srcEncoding, string dstArray, int dstOffset, int dstEncoding, int numChars) { if (srcEncoding == dstEncoding || srcEncoding == 1 && dstEncoding != 0) { dstArray = srcArray ?? ""; return(numChars); } if (srcEncoding != 1 && dstEncoding != 0) { JSystem.println("Cannot copy characters from a non ASCII string to a non UTF string."); return(0); } dstArray = srcArray ?? ""; return(numChars); }
private void changeAttributePage(int columnIdx, int delta) { this.m_attrEditButtons[0].show(); this.m_attrEditButtons[1].show(); this.m_attrEditButtons[2].show(); this.m_attrEditButtons[3].show(); switch (columnIdx) { case 0: this.m_currPageFirstList = delta <= 0 ? JMath.max(this.m_currPageFirstList - 1, 0) : JMath.min(this.m_currPageFirstList + 1, this.m_numPagesFirstList - 1); JSystem.println("first list page changed to " + (object)this.m_currPageFirstList); break; case 1: this.m_currPageSecondList = delta <= 0 ? JMath.max(this.m_currPageSecondList - 1, 0) : JMath.min(this.m_currPageSecondList + 1, this.m_numPagesSecondList - 1); JSystem.println("second list page changed to " + (object)this.m_currPageSecondList); break; } if (this.m_currPageFirstList == 0 || this.m_numPagesFirstList == 0) { this.m_attrEditButtons[0].hide(); } if (this.m_currPageFirstList == this.m_numPagesFirstList - 1 || this.m_numPagesFirstList == 0) { this.m_attrEditButtons[1].hide(); } if (this.m_currPageSecondList == 0 || this.m_numPagesSecondList == 0) { this.m_attrEditButtons[2].hide(); } if (this.m_currPageSecondList != this.m_numPagesSecondList - 1 && this.m_numPagesSecondList != 0) { return; } this.m_attrEditButtons[3].hide(); }
private void processInputPan(int _event, int[] args) { switch (_event) { case 4: int num1 = args[1]; int num2 = args[2]; this.m_startDragScreenX = num1; this.m_startDragScreenY = num2; this.m_startDragTopLeftTileX = this.m_topLeftTileX; this.m_startDragTopLeftTileY = this.m_topLeftTileY; break; case 5: int num3 = args[1]; int num4 = args[2]; int num5 = (num3 - this.m_startDragScreenX) / this.m_tileSize; int num6 = (num4 - this.m_startDragScreenY) / this.m_tileSize; this.m_topLeftTileX = this.m_startDragTopLeftTileX - num5; this.m_topLeftTileY = this.m_startDragTopLeftTileY - num6; break; case 7: JSystem.println(" double tap"); this.editStateTransition(2); break; case 9: int num7 = args[5]; int num8 = args[6]; int num9 = args[7]; int num10 = args[8]; this.m_tileSize = (int)(5.0 + 45.0 * (double)JMath.min(1f, JMath.max(0.0f, JMath.max(150f, JMath.min(400f, MathExt.mag2((float)(num9 - num7), (float)(num10 - num8)))) / 400f))); break; } }
internal void logEvent(int EVT_SIMS3_CAS_HAIR, int hairType, int hairColor) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
internal void logEvent(int EVT_SIMS3_CAS_SKIN, int skin) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
internal void logEventDuration(int EVT_SIMS3_PLAYTIME, int duration) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
internal void logEvent(int EVT_SIMS3_RESETDATA) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
internal void logEvent(int EVT_SIMS3_NEWGAME, string simName, string slotStr) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
internal void logEvent(int eventId, string str) { JSystem.println("TODO: Figure out what EASpywaremanager.logEvent() is supposed to do"); }
private void initStateEditAttributes() { this.m_lookupsFirstList = (string[])null; this.m_numPagesFirstList = 0; this.m_currPageFirstList = 0; this.m_lookupSizeFirstList = 0; this.m_lookupsSecondList = (string[])null; this.m_numPagesSecondList = 0; this.m_currPageSecondList = 0; this.m_lookupSizeFirstList = 0; this.m_currSelectionFirstList = 0; this.m_currSelectionSecondList = 0; this.m_currentFacingSelectionButtonId = -1; this.m_attrEditButtons[4].hide(); this.m_attrEditButtons[5].hide(); this.m_attrEditButtons[6].hide(); this.m_attrEditButtons[7].hide(); this.m_attrEditButtons[0].hide(); this.m_attrEditButtons[2].hide(); this.m_attrEditButtons[1].hide(); this.m_attrEditButtons[3].hide(); if (house.Room.house_cast(this.m_selectedObject) != null) { house.Room room = house.Room.house_cast(this.m_selectedObject); this.m_lookupsFirstList = GlobalConstants.LOOKUP_FLOOR; this.m_lookupSizeFirstList = this.m_simWorld.getFloorCount(); this.m_currSelectionFirstList = room.getFloor(); this.m_lookupsSecondList = GlobalConstants.LOOKUP_WALL; this.m_lookupSizeSecondList = this.m_simWorld.getWallCount(); this.m_currSelectionSecondList = room.getWall(); } else if (Door.house_cast(this.m_selectedObject) != null) { Door door = Door.house_cast(this.m_selectedObject); this.m_lookupsFirstList = GlobalConstants.LOOKUP_OBJECT; this.m_lookupSizeFirstList = this.m_simWorld.getDoorTypeNthCount(); this.m_currSelectionFirstList = this.m_simWorld.getObjectOfTypeIndexFromObjectArrayIndex(15, door.getType() == -1 ? 70 : door.getType()); JSystem.println("door count = " + (object)this.m_lookupSizeFirstList); } else if (HouseObject.house_cast(this.m_selectedObject) != null) { HouseObject houseObject = HouseObject.house_cast(this.m_selectedObject); this.m_attrEditButtons[4].show(); this.m_attrEditButtons[5].show(); this.m_attrEditButtons[6].show(); this.m_attrEditButtons[7].show(); switch (houseObject.getFacing()) { case 0: this.m_currentFacingSelectionButtonId = 4; break; case 1: this.m_currentFacingSelectionButtonId = 6; break; case 2: this.m_currentFacingSelectionButtonId = 5; break; case 3: this.m_currentFacingSelectionButtonId = 7; break; } this.m_lookupsFirstList = GlobalConstants.LOOKUP_OBJECT; this.m_lookupSizeFirstList = this.m_simWorld.getBuildableNthCount(); JSystem.println("object count = " + (object)this.m_lookupSizeFirstList); this.m_currSelectionFirstList = this.m_simWorld.getBuildableObjectIndexFromObjectArrayIndex(houseObject.getType()); } else if (Window.house_cast(this.m_selectedObject) != null) { Window window = Window.house_cast(this.m_selectedObject); this.m_lookupsFirstList = GlobalConstants.LOOKUP_OBJECT; this.m_lookupSizeFirstList = this.m_simWorld.getWindowTypeNthCount(); JSystem.println("window count = " + (object)this.m_lookupSizeFirstList); this.m_currSelectionFirstList = this.m_simWorld.getObjectOfTypeIndexFromObjectArrayIndex(32, window.getType()); } if (this.m_lookupsFirstList != null) { this.m_numPagesFirstList = 1 + (this.m_lookupSizeFirstList - 1) / this.m_numListRows; if (this.m_numPagesFirstList > 1) { this.m_attrEditButtons[1].show(); } } if (this.m_lookupsSecondList == null) { return; } this.m_numPagesSecondList = 1 + (this.m_lookupSizeSecondList - 1) / this.m_numListRows; if (this.m_numPagesSecondList <= 1) { return; } this.m_attrEditButtons[3].show(); }
private void processInputMainEdit(int _event, int[] args) { switch (_event) { case 0: this.coordScreenToTile(args[1], args[2], ref this.m_activeTileX, ref this.m_activeTileY); break; case 3: JSystem.println(" single tap"); int screenX1 = args[1]; int screenY1 = args[2]; this.coordScreenToTile(screenX1, screenY1, ref this.m_activeTileX, ref this.m_activeTileY); int mainEditButtonId1 = this.getMainEditButtonId(screenX1, screenY1); if (mainEditButtonId1 == 5) { this.writeCurrentHouseToFile(); this.editStateTransition(5); } if (mainEditButtonId1 == 6) { this.writeCurrentHouseToFile(); this.m_simWorld.editHouse(this.m_currentHouse.getId(), this.m_currentHouse); this.loadMap(this.m_currentHouse.getId()); this.editStateTransition(5); break; } if (mainEditButtonId1 == 4 && this.m_selectedObject != null) { JSystem.println("object dropped on the trash button..."); if (house.Room.house_cast(this.m_selectedObject) != null) { this.m_currentHouse.deleteRoom((house.Room) this.m_selectedObject); } else if (Window.house_cast(this.m_selectedObject) != null) { this.m_currentHouse.deleteWindow((Window)this.m_selectedObject); } else if (HouseObject.house_cast(this.m_selectedObject) != null) { this.m_currentHouse.deleteHouseObject((HouseObject)this.m_selectedObject); } else if (Door.house_cast(this.m_selectedObject) != null) { this.m_currentHouse.deleteDoor((Door)this.m_selectedObject); } this.m_selectedObject = (PlaceableObject)null; break; } this.m_selectedObject = this.getObjectAt(this.m_activeTileX, this.m_activeTileY); break; case 4: int screenX2 = args[1]; int screenY2 = args[2]; this.m_startDragScreenX = screenX2; this.m_startDragScreenY = screenY2; this.m_prevActiveTileX = this.m_activeTileX; this.m_prevActiveTileY = this.m_activeTileY; this.coordScreenToTile(screenX2, screenY2, ref this.m_activeTileX, ref this.m_activeTileY); int mainEditButtonId2 = this.getMainEditButtonId(screenX2, screenY2); JSystem.println("Drag started in button w id " + (object)mainEditButtonId2); if (mainEditButtonId2 != -1 && mainEditButtonId2 != 4 && this.m_currentHouse != null) { switch (mainEditButtonId2) { case 0: house.Room room1 = new house.Room(this.m_activeTileX, this.m_activeTileY, 2, 2, 0, 0); this.m_currentHouse.addRoom(room1); this.m_selectedObject = (PlaceableObject)room1; break; case 1: Door door1 = new Door(this.m_activeTileX, this.m_activeTileY, 1, 70); this.m_currentHouse.addDoor(door1); this.m_selectedObject = (PlaceableObject)door1; break; case 2: Window window1 = new Window(this.m_activeTileX, this.m_activeTileY, 1, 138); this.m_currentHouse.addWindow(window1); this.m_selectedObject = (PlaceableObject)window1; break; case 3: HouseObject @object = new HouseObject(this.m_activeTileX, this.m_activeTileY, this.m_prevAddedObjectType < 0 ? 82 : this.m_prevAddedObjectType, 1); this.m_currentHouse.addHouseObject(@object); this.m_selectedObject = (PlaceableObject)@object; break; } } if (this.m_selectedObject == null) { break; } this.m_selectedObject.setPosition(this.m_selectedObject.getX() + this.m_activeTileX - this.m_prevActiveTileX, this.m_selectedObject.getY() + this.m_activeTileY - this.m_prevActiveTileY); break; case 5: int screenX3 = args[1]; int screenY3 = args[2]; this.m_prevActiveTileX = this.m_activeTileX; this.m_prevActiveTileY = this.m_activeTileY; this.coordScreenToTile(screenX3, screenY3, ref this.m_activeTileX, ref this.m_activeTileY); if (this.m_selectedObject == null) { break; } this.m_selectedObject.setPosition(this.m_selectedObject.getX() + (this.m_activeTileX - this.m_prevActiveTileX), this.m_selectedObject.getY() + (this.m_activeTileY - this.m_prevActiveTileY)); break; case 6: JSystem.println(" single drag end"); break; case 7: JSystem.println(" double tap"); if (this.isDoubleTapHorizontal(args)) { if (this.m_selectedObject == null) { break; } this.editStateTransition(4); break; } this.editStateTransition(3); break; case 9: int num1 = args[1]; int num2 = args[2]; int num3 = args[3]; int num4 = args[4]; int viewportHeight = this.m_simWorld.getViewportHeight(); bool flag1 = num1 <40 && num2> viewportHeight - 40; bool flag2 = num1 <40 && num4> viewportHeight - 40; if ((!flag1 || flag2) && (flag1 || !flag2) || this.m_selectedObject == null) { break; } int screenX4 = flag1 ? num3 : num1; int screenY4 = flag2 ? num2 : num4; this.m_prevActiveTileX = this.m_activeTileX; this.m_prevActiveTileY = this.m_activeTileY; this.coordScreenToTile(screenX4, screenY4, ref this.m_activeTileX, ref this.m_activeTileY); house.Room room2 = house.Room.house_cast(this.m_selectedObject); Door door2 = Door.house_cast(this.m_selectedObject); Window window2 = Window.house_cast(this.m_selectedObject); int num5 = this.m_activeTileX - this.m_prevActiveTileX; int num6 = this.m_activeTileY - this.m_prevActiveTileY; if (room2 != null) { room2.setSize(JMath.max(1, room2.getWidth() + num5), JMath.max(1, room2.getHeight() + num6)); break; } if (door2 != null) { door2.setSize(door2.getWidth() + num5, door2.getHeight()); break; } window2?.setSize(JMath.min(2, window2.getWidth() + num5), window2.getHeight()); break; } }
private void processInputAttrEdit(int _event, int[] args) { switch (_event) { case 3: int num1 = args[1]; int num2 = args[2]; int attrEditButtonId = this.getAttrEditButtonId(num1, num2); switch (attrEditButtonId) { case 0: this.changeAttributePage(0, -1); JSystem.println("col 1 prev pressed"); break; case 1: this.changeAttributePage(0, 1); JSystem.println("col 1 next pressed"); break; case 2: this.changeAttributePage(1, -1); JSystem.println("col 2 prev pressed"); break; case 3: this.changeAttributePage(1, 1); JSystem.println("col 2 next pressed"); break; case 4: JSystem.println("x p facing button pressed"); this.m_currentFacingSelectionButtonId = attrEditButtonId; break; case 5: JSystem.println("x n facing button pressed"); this.m_currentFacingSelectionButtonId = attrEditButtonId; break; case 6: JSystem.println("z p facing button pressed"); this.m_currentFacingSelectionButtonId = attrEditButtonId; break; case 7: JSystem.println("z n facing button pressed"); this.m_currentFacingSelectionButtonId = attrEditButtonId; break; case 8: int listItemIndex1 = this.getListItemIndex(num1, num2); this.processAttributeListSelection(0, listItemIndex1); JSystem.println("list 1 tapped, " + (object)listItemIndex1 + " selected"); break; case 9: int listItemIndex2 = this.getListItemIndex(num1, num2); this.processAttributeListSelection(1, listItemIndex2); JSystem.println("list 2 tapped, " + (object)listItemIndex2 + " selected"); break; } break; case 7: this.editStateTransition(2); break; } this.setSelectedObjectAttributes(); }
public static void drawSubString( SDKString _string, int offset, int len, int xConst, int yConst, int anchor, SDKTextUtils.DrawRegionRoutineDelegate DrawRegionRoutine) { int num1 = xConst; int num2 = yConst; if (SDKTextUtils.s_currentFont == null) { return; } object fontImage = SDKTextUtils.s_currentFont.getFontImage(); int ascent = SDKTextUtils.s_currentFont.getAscent(); int lineSize = SDKTextUtils.s_currentFont.getLineSize(); int textDir = SDKTextUtils.s_currentFont.getTextDir(); int lineDir = SDKTextUtils.s_currentFont.getLineDir(); if (SDKTextUtils.s_currentFont.m_charData == null) { return; } int num3 = 0; int num4 = 0; if ((anchor & 32) != 0) { num3 -= SDKTextUtils.getSubStringSize(_string, offset, len); } else if ((anchor & 16) != 0) { num3 -= SDKTextUtils.getSubStringSize(_string, offset, len) >> 1; } if ((anchor & 64) != 0) { num4 -= ascent; } else if ((anchor & 4) != 0) { num4 -= lineSize; } switch (textDir) { case 1: num1 += num3; num2 += num4; break; case 2: num1 -= num4; num2 += num3; break; case 4: num1 -= num3; num2 -= num4; break; case 8: num1 -= num4; num2 -= num3; break; } int[] p = new int[2] { num1, num2 }; int encoding = _string.getEncoding(); switch (encoding) { case 0: case 1: bool flag1 = (textDir & 5) != 0; sbyte num5 = (sbyte)((textDir & 4) >> 1); sbyte num6 = (sbyte)(((lineDir & 1) << 1) + ((~lineDir & 2) >> 1)); sbyte num7 = flag1 ? num5 : num6; bool flag2 = (textDir & 10) != 0; sbyte num8 = (sbyte)((textDir & 8) >> 2); sbyte num9 = (sbyte)((lineDir & 2) + (~lineDir & 1)); sbyte num10 = flag2 ? num8 : num9; for (int index1 = offset; index1 != offset + len; ++index1) { ushort code = _string.charCodeAt(index1); if (code != (ushort)173 || index1 == offset + len - 1) { ushort charOffset = SDKTextUtils.getCharOffset(code, encoding); int charAdvance = SDKTextUtils.s_currentFont.getCharAdvance(charOffset); if (charOffset == ushort.MaxValue) { if (code == (ushort)32) { ; } } else { ushort num11 = (ushort)((uint)charOffset + 1U); sbyte[] mCharData1 = SDKTextUtils.s_currentFont.m_charData; int index2 = (int)num11; ushort num12 = (ushort)(index2 + 1); int num13 = (int)mCharData1[index2] & (int)byte.MaxValue; for (int index3 = 0; index3 != num13; ++index3) { sbyte[] mCharData2 = SDKTextUtils.s_currentFont.m_charData; int index4 = (int)num12; ushort num14 = (ushort)(index4 + 1); int num15 = (int)mCharData2[index4] & (int)byte.MaxValue; sbyte[] mCharData3 = SDKTextUtils.s_currentFont.m_charData; int index5 = (int)num14; ushort num16 = (ushort)(index5 + 1); int num17 = (int)mCharData3[index5] & (int)byte.MaxValue; sbyte[] mCharData4 = SDKTextUtils.s_currentFont.m_charData; int index6 = (int)num16; ushort num18 = (ushort)(index6 + 1); int num19 = (int)mCharData4[index6]; sbyte[] mCharData5 = SDKTextUtils.s_currentFont.m_charData; int index7 = (int)num18; ushort num20 = (ushort)(index7 + 1); int num21 = (int)mCharData5[index7]; sbyte[] mCharData6 = SDKTextUtils.s_currentFont.m_charData; int index8 = (int)num20; ushort num22 = (ushort)(index8 + 1); int num23 = (int)mCharData6[index8] & (int)byte.MaxValue; sbyte[] mCharData7 = SDKTextUtils.s_currentFont.m_charData; int index9 = (int)num22; num12 = (ushort)(index9 + 1); int num24 = (int)mCharData7[index9] & (int)byte.MaxValue; int[] numArray = new int[4] { num19, num21 - ascent, -num19 - num23, ascent - num21 - num24 }; int num25 = p[0] + numArray[(int)num7]; int num26 = p[1] + numArray[(int)num10]; DrawRegionRoutine(fontImage, (short)num25, (short)num26, (short)num23, (short)num24, (short)num15, (short)num17); } } SDKTextUtils.s_currentFont.advance(p, charAdvance); } } break; default: if (encoding != SDKTextUtils.s_currentLanguage.encoding) { JSystem.println("ERROR: SDKTextUtils::drawString: SDKString has encoding " + encoding.ToString() + ", but the currently set language has encoding " + SDKTextUtils.s_currentLanguage.encoding.ToString()); goto case 0; } else { goto case 0; } } }