diff --git a/pk3DS/Structs.cs b/pk3DS/Structs.cs index 09f1939..8a7ccdc 100644 --- a/pk3DS/Structs.cs +++ b/pk3DS/Structs.cs @@ -1022,10 +1022,11 @@ public Image Preview(int s, int ColorShift) } public class ZoneData { + internal static int Size = 0x38; public byte[] Data; public int MapMatrix { get { return BitConverter.ToUInt16(Data, 0x04); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x04);} } public int TextFile { get { return BitConverter.ToUInt16(Data, 0x06); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x06); } } - public int OverworldLocation // 0x1C - low 7 bits + public int ParentMap // 0x1C - low 7 bits { get { return BitConverter.ToUInt16(Data, 0x1C) & 0x1FF; } set { BitConverter.GetBytes((ushort)(value | (BitConverter.ToUInt16(Data, 0x1C) & ~0x1FF))).CopyTo(Data, 0x1C); } @@ -1035,9 +1036,13 @@ public class ZoneData get { return BitConverter.ToUInt16(Data, 0x1C) >> 9; } set { BitConverter.GetBytes((ushort)((value << 9) | (BitConverter.ToUInt16(Data, 0x1C) & 0x1FF))).CopyTo(Data, 0x1C); } } + public int X { get { return BitConverter.ToInt32(Data, 0x2C); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x2C); } } + public int Z { get { return BitConverter.ToInt32(Data, 0x30); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x30); } } + public int Y { get { return BitConverter.ToInt32(Data, 0x34); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x34); } } + public ZoneData(byte[] data) { - if (data.Length != 0x36) + if (data.Length != Size) return; Data = data; } @@ -1086,11 +1091,15 @@ public class ZoneEntities { public byte[] Data; // File details unknown. - public UInt32 Length; + public Int32 Length; + public Int32 FurnitureCount, NPCCount, WarpCount, TriggerCount; + public Int32 UNKNOWN; + public Byte[] UnknownBytes; public EntityFurniture[] Furniture; public EntityNPC[] NPCs; public EntityWarp[] Warps; public EntityTrigger[] Triggers; + public Int32 ScriptLength; public Byte[] ScriptData; public ZoneEntities(byte[] data) { @@ -1098,35 +1107,86 @@ public ZoneEntities(byte[] data) using (BinaryReader br = new BinaryReader(new MemoryStream(data))) { - Length = br.ReadUInt32(); - Furniture = new EntityFurniture[br.ReadByte()]; - NPCs = new EntityNPC[br.ReadByte()]; - Warps = new EntityWarp[br.ReadByte()]; - Triggers = new EntityTrigger[br.ReadByte()]; - for (int i = 0; i < Furniture.Length; i++) - Furniture[i] = new EntityFurniture(br.ReadBytes(Furniture.Length)); - for (int i = 0; i < NPCs.Length; i++) - NPCs[i] = new EntityNPC(br.ReadBytes(NPCs.Length)); - for (int i = 0; i < Warps.Length; i++) - Warps[i] = new EntityWarp(br.ReadBytes(Warps.Length)); - for (int i = 0; i < Triggers.Length; i++) - Triggers[i] = new EntityTrigger(br.ReadBytes(Triggers.Length)); - ScriptData = br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position)); + // Load Header + Length = br.ReadInt32(); + Furniture = new EntityFurniture[FurnitureCount = br.ReadByte()]; + NPCs = new EntityNPC[NPCCount = br.ReadByte()]; + Warps = new EntityWarp[WarpCount = br.ReadByte()]; + Triggers = new EntityTrigger[TriggerCount = br.ReadByte()]; + UNKNOWN = br.ReadInt32(); + + // Load Entitites + for (int i = 0; i < FurnitureCount; i++) + Furniture[i] = new EntityFurniture(br.ReadBytes(EntityFurniture.Size)); + for (int i = 0; i < NPCCount; i++) + NPCs[i] = new EntityNPC(br.ReadBytes(EntityNPC.Size)); + for (int i = 0; i < WarpCount; i++) + Warps[i] = new EntityWarp(br.ReadBytes(EntityWarp.Size)); + for (int i = 0; i < TriggerCount; i++) + Triggers[i] = new EntityTrigger(br.ReadBytes(EntityTrigger.Size)); + + int ScriptDataOffset = Length + 4; + + UnknownBytes = (br.BaseStream.Position == ScriptDataOffset) + ? new byte[0] + : br.ReadBytes(ScriptDataOffset - (int)br.BaseStream.Position); + + // Load Script Data + ScriptLength = br.ReadInt32(); + ScriptData = br.ReadBytes(ScriptLength - 4); } } public byte[] Write() { - return Data; + byte[] F = new byte[Furniture.Length * EntityFurniture.Size]; + for (int i = 0; i < Furniture.Length; i++) + Furniture[i].Write().CopyTo(F, i * EntityFurniture.Size); + + byte[] N = new byte[NPCs.Length * EntityNPC.Size]; + for (int i = 0; i < NPCs.Length; i++) + NPCs[i].Write().CopyTo(F, i * EntityNPC.Size); + + byte[] W = new byte[Warps.Length * EntityWarp.Size]; + for (int i = 0; i < Warps.Length; i++) + Warps[i].Write().CopyTo(F, i * EntityWarp.Size); + + byte[] T = new byte[Triggers.Length * EntityTrigger.Size]; + for (int i = 0; i < Triggers.Length; i++) + Triggers[i].Write().CopyTo(F, i * EntityTrigger.Size); + + // Assemble entity information + byte[] OWEntities = F.Concat(N).Concat(W).Concat(T).ToArray(); + byte[] EntityCounts = {(byte)Furniture.Length, (byte)NPCs.Length, (byte)Warps.Length, (byte)Triggers.Length}; + byte[] EntityLength = BitConverter.GetBytes(8 + OWEntities.Length + 4 + UnknownBytes.Length); + byte[] UNKNOWNCT = BitConverter.GetBytes(UNKNOWN); + + // Reassemble NPC portion + byte[] OWEntityData = EntityLength.Concat(EntityCounts).Concat(UNKNOWNCT).Concat(OWEntities).Concat(UnknownBytes).ToArray(); + + // Add padding zeroes if required (yield above section % 4 == 0) + if (OWEntityData.Length % 4 != 0) + Array.Resize(ref OWEntityData, OWEntityData.Length + 4 - (OWEntityData.Length % 4)); + + // Reassemble Script portion + byte[] OWScriptData = ScriptData; + + // Return final data + return OWEntityData.Concat(OWScriptData).ToArray(); } // Entity Classes public class EntityFurniture { - internal static readonly byte Length = 0x14; + // Usable Attributes + public int X { get { return BitConverter.ToUInt16(Raw, 0x08); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } } + public int Y { get { return BitConverter.ToUInt16(Raw, 0x0A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } } + // Next two bytes should be dealing with furniture width? + public byte[] Raw; - public EntityFurniture(byte[] data) + internal static readonly byte Size = 0x14; + public EntityFurniture(byte[] data = null) { - Raw = data; + Raw = data ?? new byte[Size]; } public byte[] Write() { @@ -1135,13 +1195,25 @@ public byte[] Write() } public class EntityNPC { - internal static readonly byte Length = 0x30; - public ushort ID; + // Usable Attributes + public int ID { get { return BitConverter.ToUInt16(Raw, 0x00); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } } + public int Model { get { return BitConverter.ToUInt16(Raw, 0x02); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } } + public int MovePermissions { get { return BitConverter.ToUInt16(Raw, 0x04); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } } + public int MovePermissions2 { get { return BitConverter.ToUInt16(Raw, 0x06); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } } + public int SpawnFlag { get { return BitConverter.ToUInt16(Raw, 0x08); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } } + public int Script { get { return BitConverter.ToUInt16(Raw, 0x0A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } } + public int FaceDirection { get { return BitConverter.ToUInt16(Raw, 0x0C); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } } + // ??? Eyecatch/Leash Stuff. + public int X { get { return BitConverter.ToUInt16(Raw, 0x28); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x28); } } + public int Y { get { return BitConverter.ToUInt16(Raw, 0x2A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2A); } } + public int ZU { get { return BitConverter.ToUInt16(Raw, 0x2C); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2C); } } + public int Z { get { return BitConverter.ToUInt16(Raw, 0x2E); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2E); } } + public byte[] Raw; - public EntityNPC(byte[] data) + internal static readonly byte Size = 0x30; + public EntityNPC(byte[] data = null) { - Raw = data; - ID = BitConverter.ToUInt16(data, 0x4); + Raw = data ?? new byte[Size]; } public byte[] Write() { @@ -1150,16 +1222,15 @@ public byte[] Write() } public class EntityWarp { - internal static readonly byte Length = 0x18; - public byte[] Raw; - public ushort DestinationMap; - public ushort DestinationTileIndex; - public EntityWarp(byte[] data) - { - Raw = data; + // Usable Attributes + public int DestinationMap { get { return BitConverter.ToUInt16(Raw, 0x00); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00);} } + public int DestinationTileIndex { get { return BitConverter.ToUInt16(Raw, 0x02); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02);} } - DestinationMap = BitConverter.ToUInt16(data, 0x4); - DestinationTileIndex = BitConverter.ToUInt16(data, 0x6); + public byte[] Raw; + internal static readonly byte Size = 0x18; + public EntityWarp(byte[] data = null) + { + Raw = data ?? new byte[Size]; } public byte[] Write() { @@ -1168,11 +1239,15 @@ public byte[] Write() } public class EntityTrigger { - internal static readonly byte Length = 0x18; + // Usable Attributes + public int X { get { return BitConverter.ToUInt16(Raw, 0x28); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x28); } } + public int Y { get { return BitConverter.ToUInt16(Raw, 0x2A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2A); } } + public byte[] Raw; - public EntityTrigger(byte[] data) + internal static readonly byte Size = 0x18; + public EntityTrigger(byte[] data = null) { - Raw = data; + Raw = data ?? new byte[Size]; } public byte[] Write() { diff --git a/pk3DS/Subforms/OWSE.cs b/pk3DS/Subforms/OWSE.cs index 3d7a7d0..2a4eb0d 100644 --- a/pk3DS/Subforms/OWSE.cs +++ b/pk3DS/Subforms/OWSE.cs @@ -51,8 +51,8 @@ private void openQuick(string[] encdata) string name = Path.GetFileNameWithoutExtension(filepaths[f]); int LocationNum = Convert.ToInt16(name.Substring(4, name.Length - 4)); - int indNum = LocationNum * 56 + 0x1C; - string LocationName = gameLocations[BitConverter.ToUInt16(zonedata, indNum) & 0x1FF]; + ZoneData zo = new ZoneData(zonedata.Skip(f * ZoneData.Size).Take(ZoneData.Size).ToArray()); + string LocationName = gameLocations[zo.ParentMap]; zdLocations[f] = (LocationNum.ToString("000") + " - " + LocationName); rawLocations[f] = LocationName; } @@ -76,26 +76,33 @@ private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) private void getEntry() { if (entry < 0) return; - RTB_F.Text = RTB_O.Text = RTB_W.Text = RTB_T.Text = string.Empty; byte[] raw = File.ReadAllBytes(filepaths[entry]); locationData = CTR.mini.unpackMini(raw, "ZO"); if (locationData == null) return; - RichTextBox[] rtba = {RTB_MapInfo, RTB_OWSC, RTB_MapSC, RTB_Encounter, RTB_File5}; - for (int i = 0; i < locationData.Length; i++) - rtba[i].Lines = Scripts.getHexLines(locationData[i], 0x10); + // Read master ZD table + byte[] zd = zonedata.Skip(ZoneData.Size * entry).Take(ZoneData.Size).ToArray(); + RTB_ZDMaster.Lines = Scripts.getHexLines(zd, 0x10); - // File 0 - ?? + // Load from location Data. + CurrentZone = new Zone(locationData); + // File 0 - ZoneData + RTB_ZD.Lines = Scripts.getHexLines(locationData[0], 0x10); + getZoneData(); // File 1 - Overworld Setup & Script + RTB_OWSC.Lines = Scripts.getHexLines(locationData[1], 0x10); getOWSData(); // File 2 - Map Script + RTB_MapSC.Lines = Scripts.getHexLines(locationData[2], 0x10); getScriptData(); // File 3 - Encounters + RTB_Encounter.Lines = Scripts.getHexLines(locationData[3], 0x10); - // File 4 - ?? + // File 4 - ?? (ORAS Only?) + RTB_File5.Lines = Scripts.getHexLines(locationData.Length <= 4 ? null : locationData[4], 0x10); } private void setEntry() { @@ -120,11 +127,8 @@ private void setEntry() //File.WriteAllBytes(filepaths[entry], raw); } - private byte[][] fData; - private byte[][] nData; - private byte[][] wData; - private byte[][] tData; private byte[] OWScriptData; + private Zone CurrentZone; private void getScriptData() { @@ -173,64 +177,45 @@ private void getScriptData() else RTB_MSCMD.Lines = RTB_MS.Lines = new[] {"No Data"}; } - private void getOWSData() - { - byte[] data = locationData[1]; - int len = BitConverter.ToInt32(data, 0); - byte[] zd = zonedata.Skip(56*entry).Take(56).ToArray(); - ushort text = BitConverter.ToUInt16(zonedata, 56*entry + 6); - ushort map = BitConverter.ToUInt16(zonedata, 56*entry + 4); - RTB_zonedata.Lines = Scripts.getHexLines(zd, 0x10); - L_ZDPreview.Text = "Text File: " + text - + Environment.NewLine + "Map File: " + map; + private void getZoneData() + { + L_ZDPreview.Text = "Text File: " + CurrentZone.ZD.TextFile + + Environment.NewLine + "Map File: " + CurrentZone.ZD.MapMatrix; // Fetch Map Image - DrawMap = map; - PB_Map.Image = getMapImage(); + DrawMap = CurrentZone.ZD.MapMatrix; + PB_Map.Image = (CHK_AutoDraw.Checked) ? getMapImage() : null; + } + private void getOWSData() + { + File.WriteAllBytes("zd.bin", CurrentZone.Entities.Data); + RTB_F.Text = RTB_N.Text = RTB_W.Text = RTB_T.Text = string.Empty; + // Set Counters + NUD_FurnCount.Value = CurrentZone.Entities.FurnitureCount; changeFurnitureCount(null, null); + NUD_NPCCount.Value = CurrentZone.Entities.NPCCount; changeNPCCount(null, null); + NUD_WarpCount.Value = CurrentZone.Entities.WarpCount; changeWarpCount(null, null); + NUD_TrigCount.Value = CurrentZone.Entities.TriggerCount; changeTriggerCount(null, null); - byte[] owData = data.Skip(4).Take(len).ToArray(); - // Process owData Header - using (var s = new MemoryStream(owData)) - using (var br = new BinaryReader(s)) - { - // Prepare Data - byte F = br.ReadByte(); fData = new byte[255][]; for (int i = 0; i < 255; i++) fData[i] = new byte[flen]; - byte N = br.ReadByte(); nData = new byte[255][]; for (int i = 0; i < 255; i++) nData[i] = new byte[nlen]; - byte W = br.ReadByte(); wData = new byte[255][]; for (int i = 0; i < 255; i++) wData[i] = new byte[wlen]; - byte T = br.ReadByte(); tData = new byte[255][]; for (int i = 0; i < 255; i++) tData[i] = new byte[tlen]; - - // Set Counters - NUD_FurnCount.Value = F; changeFurnitureCount(null, null); - NUD_NPCCount.Value = N; changeNPCCount(null, null); - NUD_WarpCount.Value = W; changeWarpCount(null, null); - NUD_TrigCount.Value = T; changeTriggerCount(null, null); - - // Collect/Load Data - for (int i = 0; i < F; i++) fData[i] = br.ReadBytes(flen); - for (int i = 0; i < N; i++) nData[i] = br.ReadBytes(nlen); - for (int i = 0; i < W; i++) wData[i] = br.ReadBytes(wlen); - for (int i = 0; i < T; i++) tData[i] = br.ReadBytes(tlen); - NUD_FE.Value = (NUD_FE.Maximum < 0) ? -1 : 0; changeFurniture(null, null); - NUD_NE.Value = (NUD_NE.Maximum < 0) ? -1 : 0; changeOverworld(null, null); - NUD_WE.Value = (NUD_WE.Maximum < 0) ? -1 : 0; changeWarp(null, null); - NUD_TE.Value = (NUD_TE.Maximum < 0) ? -1 : 0; changeTrigger(null, null); - } + // Collect/Load Data + NUD_FE.Value = (NUD_FE.Maximum < 0) ? -1 : 0; changeFurniture(null, null); + NUD_NE.Value = (NUD_NE.Maximum < 0) ? -1 : 0; changeOverworld(null, null); + NUD_WE.Value = (NUD_WE.Maximum < 0) ? -1 : 0; changeWarp(null, null); + NUD_TE.Value = (NUD_TE.Maximum < 0) ? -1 : 0; changeTrigger(null, null); // Process Scripts - OWScriptData = data.Skip(4 + owData.Length).Take(data.Length - 4 - owData.Length).ToArray(); + OWScriptData = CurrentZone.Entities.ScriptData; if (OWScriptData.Length > 4) { byte[] ScriptData = OWScriptData; - int length = BitConverter.ToInt32(ScriptData, 0); - Array.Resize(ref ScriptData, length); // Cap Size + int length = CurrentZone.Entities.ScriptLength; RTB_OS.Lines = Scripts.getHexLines(ScriptData); - int start = BitConverter.ToInt32(ScriptData, 0xC); - int moves = BitConverter.ToInt32(ScriptData, 0x10); - int finaloffset = BitConverter.ToInt32(ScriptData, 0x14); - int reserved = BitConverter.ToInt32(ScriptData, 0x18); + int start = BitConverter.ToInt32(ScriptData, 0x8) - 4; + int moves = BitConverter.ToInt32(ScriptData, 0xC) - 4; + int finaloffset = BitConverter.ToInt32(ScriptData, 0x10) - 4; + int reserved = BitConverter.ToInt32(ScriptData, 0x14) - 4; int compressedLength = length - start; int decompressedLength = finaloffset - start; @@ -264,39 +249,7 @@ private void getOWSData() RTB_OWSCMD.Lines = RTB_OS.Lines = new[] {"No Data"}; } - private byte[] setOWSData() - { - using (var s = new MemoryStream()) - using (var bw = new BinaryWriter(s)) - { - // Overworld Payload - bw.Write(0); // 4 Byte Length of 0 (Temporary) - bw.Write((byte)NUD_FurnCount.Value); - bw.Write((byte)NUD_NPCCount.Value); - bw.Write((byte)NUD_WarpCount.Value); - bw.Write((byte)NUD_TrigCount.Value); - for (int i = 0; i < NUD_FurnCount.Value; i++) bw.Write(fData[i]); - for (int i = 0; i < NUD_NPCCount.Value; i++) bw.Write(nData[i]); - for (int i = 0; i < NUD_WarpCount.Value; i++) bw.Write(wData[i]); - for (int i = 0; i < NUD_TrigCount.Value; i++) bw.Write(tData[i]); - // have to check for 00 padding - while (s.Length % 4 != 0) bw.Write((byte)0); - s.Position = 0; bw.Write((int)s.Length); - s.Position = s.Length - 1; - // Script Payload - byte[] scriptData = Util.StringToByteArray(RTB_OWSCMD.Text); - bw.Write(scriptData.Length); - bw.Write(scriptData); // ScriptData - - return s.ToArray(); - } - } - // Overworld Functions - private const int flen = 0x14; - private const int nlen = 0x30; - private const int wlen = 0x18; - private const int tlen = 0x18; #region Enabling internal static void toggleEnable(NumericUpDown master, NumericUpDown slave) { @@ -306,18 +259,46 @@ internal static void toggleEnable(NumericUpDown master, NumericUpDown slave) } private void changeFurnitureCount(object sender, EventArgs e) { + // Resize array + int count = (int)NUD_FurnCount.Value; + CurrentZone.Entities.FurnitureCount = count; + Array.Resize(ref CurrentZone.Entities.Furniture, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Furniture[i] = CurrentZone.Entities.Furniture[i] ?? new Zone.ZoneEntities.EntityFurniture(); + toggleEnable(NUD_FurnCount, NUD_FE); } private void changeNPCCount(object sender, EventArgs e) { + // Resize array + int count = (int)NUD_NPCCount.Value; + CurrentZone.Entities.NPCCount = count; + Array.Resize(ref CurrentZone.Entities.NPCs, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.NPCs[i] = CurrentZone.Entities.NPCs[i] ?? new Zone.ZoneEntities.EntityNPC(); + toggleEnable(NUD_NPCCount, NUD_NE); } private void changeWarpCount(object sender, EventArgs e) { + // Resize array + int count = (int)NUD_WarpCount.Value; + CurrentZone.Entities.WarpCount = count; + Array.Resize(ref CurrentZone.Entities.Warps, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Warps[i] = CurrentZone.Entities.Warps[i] ?? new Zone.ZoneEntities.EntityWarp(); + toggleEnable(NUD_WarpCount, NUD_WE); } private void changeTriggerCount(object sender, EventArgs e) { + // Resize array + int count = (int)NUD_TrigCount.Value; + CurrentZone.Entities.TriggerCount = count; + Array.Resize(ref CurrentZone.Entities.Triggers, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Triggers[i] = CurrentZone.Entities.Triggers[i] ?? new Zone.ZoneEntities.EntityTrigger(); + toggleEnable(NUD_TrigCount, NUD_TE); } #endregion @@ -329,14 +310,13 @@ private void changeFurniture(object sender, EventArgs e) // Set Old Data if (fEntry > 0) { - byte[] oldData = fData[fEntry]; - fData[fEntry] = oldData; + // No attributes editable atm } fEntry = (int)NUD_FE.Value; // Load New Data - byte[] data = fData[fEntry]; - RTB_F.Text = Util.getHexString(data); + var Furniture = CurrentZone.Entities.Furniture[fEntry]; + RTB_F.Text = Util.getHexString(Furniture.Raw); } private void changeOverworld(object sender, EventArgs e) { @@ -345,18 +325,32 @@ private void changeOverworld(object sender, EventArgs e) // Set Old Data if (nEntry > 0) { - byte[] oldData = nData[nEntry]; - nData[nEntry] = oldData; + var n = CurrentZone.Entities.NPCs[nEntry]; + n.ID = (int)NUD_NID.Value; + n.Model = (int)NUD_NModel.Value; + n.SpawnFlag = (int)NUD_NFlag.Value; + n.Script = (int)NUD_NScript.Value; + + n.FaceDirection = (int)NUD_NFace.Value; + n.X = (int)NUD_NX.Value; + n.Y = (int)NUD_NY.Value; } nEntry = (int)NUD_NE.Value; // Load New Data - byte[] data = nData[nEntry]; - RTB_O.Text = Util.getHexString(data); + var NPC = CurrentZone.Entities.NPCs[nEntry]; - ushort ID = BitConverter.ToUInt16(data, 0x4); + // Load new Attributes + NUD_NID.Value = NPC.ID; + NUD_NModel.Value = NPC.Model; + NUD_NFlag.Value = NPC.SpawnFlag; + NUD_NScript.Value = NPC.Script; - NUD_OID.Value = ID; + NUD_NFace.Value = NPC.FaceDirection; + NUD_NX.Value = NPC.X; + NUD_NY.Value = NPC.Y; + + RTB_N.Text = Util.getHexString(NPC.Raw); } private void changeWarp(object sender, EventArgs e) { @@ -365,24 +359,21 @@ private void changeWarp(object sender, EventArgs e) // Set Old Data if (wEntry > 0) { - byte[] oldData = wData[wEntry]; - wData[wEntry] = oldData; + CurrentZone.Entities.Warps[wEntry].DestinationMap = (int)NUD_WMap.Value; + CurrentZone.Entities.Warps[wEntry].DestinationTileIndex = (int)NUD_WTile.Value; } wEntry = (int)NUD_WE.Value; // Load New Data - byte[] data = wData[wEntry]; - RTB_W.Text = Util.getHexString(data); + var Warp = CurrentZone.Entities.Warps[wEntry]; + RTB_W.Text = Util.getHexString(Warp.Raw); - ushort Map = BitConverter.ToUInt16(data, 0x4); - ushort Dest = BitConverter.ToUInt16(data, 0x6); + // Load new Attributes + NUD_WMap.Value = Warp.DestinationMap; + NUD_WTile.Value = Warp.DestinationTileIndex; // Flavor Mods - string MapName = zdLocations[Map]; - L_WarpDest.Text = MapName; - - NUD_WMap.Value = Map; - NUD_WTile.Value = Dest; + L_WarpDest.Text = zdLocations[Warp.DestinationMap]; } private void changeTrigger(object sender, EventArgs e) { @@ -391,14 +382,13 @@ private void changeTrigger(object sender, EventArgs e) // Set Old Data if (tEntry > 0) { - byte[] oldData = tData[tEntry]; - tData[tEntry] = oldData; + // No attributes editable atm } tEntry = (int)NUD_TE.Value; // Load New Data - byte[] data = tData[tEntry]; - RTB_T.Text = Util.getHexString(data); + var Trigger = CurrentZone.Entities.Triggers[tEntry]; + RTB_T.Text = Util.getHexString(Trigger.Raw); } private void B_HLCMD_Click(object sender, EventArgs e) @@ -407,7 +397,6 @@ private void B_HLCMD_Click(object sender, EventArgs e) Util.Alert(String.Format("{0} instance{1} of \"*\" present.", ctr, ctr > 1 ? "s" : "")); } - private void tabMain_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; diff --git a/pk3DS/Subforms/OWSE.designer.cs b/pk3DS/Subforms/OWSE.designer.cs index 32c54aa..50f24fa 100644 --- a/pk3DS/Subforms/OWSE.designer.cs +++ b/pk3DS/Subforms/OWSE.designer.cs @@ -30,9 +30,9 @@ private void InitializeComponent() { this.CB_LocationID = new System.Windows.Forms.ComboBox(); this.L_Location = new System.Windows.Forms.Label(); - this.RTB_MapInfo = new System.Windows.Forms.RichTextBox(); + this.RTB_ZD = new System.Windows.Forms.RichTextBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tb_MapInfo = new System.Windows.Forms.TabPage(); + this.tb_ZoneData = new System.Windows.Forms.TabPage(); this.L_MapInfoTabData = new System.Windows.Forms.Label(); this.tb_OWSC = new System.Windows.Forms.TabPage(); this.L_OWEntities = new System.Windows.Forms.Label(); @@ -48,11 +48,11 @@ private void InitializeComponent() this.NUD_FE = new System.Windows.Forms.NumericUpDown(); this.L_FE = new System.Windows.Forms.Label(); this.tb_Overworld = new System.Windows.Forms.TabPage(); - this.NUD_OID = new System.Windows.Forms.NumericUpDown(); - this.L_OID = new System.Windows.Forms.Label(); + this.NUD_NID = new System.Windows.Forms.NumericUpDown(); + this.L_NID = new System.Windows.Forms.Label(); this.NUD_NE = new System.Windows.Forms.NumericUpDown(); this.L_NE = new System.Windows.Forms.Label(); - this.RTB_O = new System.Windows.Forms.RichTextBox(); + this.RTB_N = new System.Windows.Forms.RichTextBox(); this.tb_Warp = new System.Windows.Forms.TabPage(); this.L_WarpDest = new System.Windows.Forms.Label(); this.NUD_WTile = new System.Windows.Forms.NumericUpDown(); @@ -84,12 +84,12 @@ private void InitializeComponent() this.L_File5TabData = new System.Windows.Forms.Label(); this.tb_RAW = new System.Windows.Forms.TabPage(); this.L_File3 = new System.Windows.Forms.Label(); - this.L_ZD = new System.Windows.Forms.Label(); + this.L_ZDMaster = new System.Windows.Forms.Label(); this.L_File5 = new System.Windows.Forms.Label(); this.L_File4 = new System.Windows.Forms.Label(); this.L_File2 = new System.Windows.Forms.Label(); this.L_File1 = new System.Windows.Forms.Label(); - this.RTB_zonedata = new System.Windows.Forms.RichTextBox(); + this.RTB_ZDMaster = new System.Windows.Forms.RichTextBox(); this.RTB_File5 = new System.Windows.Forms.RichTextBox(); this.RTB_OWSC = new System.Windows.Forms.RichTextBox(); this.RTB_Encounter = new System.Windows.Forms.RichTextBox(); @@ -103,8 +103,22 @@ private void InitializeComponent() this.PB_Map = new System.Windows.Forms.PictureBox(); this.L_ZDPreview = new System.Windows.Forms.Label(); this.B_HLCMD = new System.Windows.Forms.Button(); + this.CHK_AutoDraw = new System.Windows.Forms.CheckBox(); + this.GB_N = new System.Windows.Forms.GroupBox(); + this.NUD_NModel = new System.Windows.Forms.NumericUpDown(); + this.L_NModel = new System.Windows.Forms.Label(); + this.NUD_NX = new System.Windows.Forms.NumericUpDown(); + this.L_NX = new System.Windows.Forms.Label(); + this.NUD_NY = new System.Windows.Forms.NumericUpDown(); + this.L_NY = new System.Windows.Forms.Label(); + this.NUD_NFace = new System.Windows.Forms.NumericUpDown(); + this.L_NFaceDirection = new System.Windows.Forms.Label(); + this.NUD_NScript = new System.Windows.Forms.NumericUpDown(); + this.L_NScript = new System.Windows.Forms.Label(); + this.NUD_NFlag = new System.Windows.Forms.NumericUpDown(); + this.L_NFlag = new System.Windows.Forms.Label(); this.tabControl1.SuspendLayout(); - this.tb_MapInfo.SuspendLayout(); + this.tb_ZoneData.SuspendLayout(); this.tb_OWSC.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_WarpCount)).BeginInit(); @@ -113,7 +127,7 @@ private void InitializeComponent() this.tb_Furniture.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).BeginInit(); this.tb_Overworld.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_OID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).BeginInit(); this.tb_Warp.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).BeginInit(); @@ -131,6 +145,13 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).BeginInit(); + this.GB_N.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).BeginInit(); this.SuspendLayout(); // // CB_LocationID @@ -154,22 +175,22 @@ private void InitializeComponent() this.L_Location.TabIndex = 411; this.L_Location.Text = "Loc:"; // - // RTB_MapInfo + // RTB_ZD // - this.RTB_MapInfo.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_MapInfo.Location = new System.Drawing.Point(217, 3); - this.RTB_MapInfo.Name = "RTB_MapInfo"; - this.RTB_MapInfo.ReadOnly = true; - this.RTB_MapInfo.Size = new System.Drawing.Size(266, 36); - this.RTB_MapInfo.TabIndex = 412; - this.RTB_MapInfo.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + this.RTB_ZD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_ZD.Location = new System.Drawing.Point(217, 3); + this.RTB_ZD.Name = "RTB_ZD"; + this.RTB_ZD.ReadOnly = true; + this.RTB_ZD.Size = new System.Drawing.Size(266, 36); + this.RTB_ZD.TabIndex = 412; + this.RTB_ZD.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; // // tabControl1 // this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.Controls.Add(this.tb_MapInfo); + this.tabControl1.Controls.Add(this.tb_ZoneData); this.tabControl1.Controls.Add(this.tb_OWSC); this.tabControl1.Controls.Add(this.tb_MSC); this.tabControl1.Controls.Add(this.tb_Encounters); @@ -182,16 +203,16 @@ private void InitializeComponent() this.tabControl1.Size = new System.Drawing.Size(494, 497); this.tabControl1.TabIndex = 417; // - // tb_MapInfo + // tb_ZoneData // - this.tb_MapInfo.Controls.Add(this.L_MapInfoTabData); - this.tb_MapInfo.Location = new System.Drawing.Point(4, 22); - this.tb_MapInfo.Name = "tb_MapInfo"; - this.tb_MapInfo.Padding = new System.Windows.Forms.Padding(3); - this.tb_MapInfo.Size = new System.Drawing.Size(486, 471); - this.tb_MapInfo.TabIndex = 0; - this.tb_MapInfo.Text = "Map Info"; - this.tb_MapInfo.UseVisualStyleBackColor = true; + this.tb_ZoneData.Controls.Add(this.L_MapInfoTabData); + this.tb_ZoneData.Location = new System.Drawing.Point(4, 22); + this.tb_ZoneData.Name = "tb_ZoneData"; + this.tb_ZoneData.Padding = new System.Windows.Forms.Padding(3); + this.tb_ZoneData.Size = new System.Drawing.Size(486, 471); + this.tb_ZoneData.TabIndex = 0; + this.tb_ZoneData.Text = "ZoneData"; + this.tb_ZoneData.UseVisualStyleBackColor = true; // // L_MapInfoTabData // @@ -368,11 +389,9 @@ private void InitializeComponent() // // tb_Overworld // - this.tb_Overworld.Controls.Add(this.NUD_OID); - this.tb_Overworld.Controls.Add(this.L_OID); + this.tb_Overworld.Controls.Add(this.GB_N); this.tb_Overworld.Controls.Add(this.NUD_NE); this.tb_Overworld.Controls.Add(this.L_NE); - this.tb_Overworld.Controls.Add(this.RTB_O); this.tb_Overworld.Location = new System.Drawing.Point(4, 22); this.tb_Overworld.Name = "tb_Overworld"; this.tb_Overworld.Padding = new System.Windows.Forms.Padding(3); @@ -381,26 +400,26 @@ private void InitializeComponent() this.tb_Overworld.Text = "Overworld"; this.tb_Overworld.UseVisualStyleBackColor = true; // - // NUD_OID + // NUD_NID // - this.NUD_OID.Location = new System.Drawing.Point(129, 33); - this.NUD_OID.Maximum = new decimal(new int[] { - 999, + this.NUD_NID.Location = new System.Drawing.Point(93, 16); + this.NUD_NID.Maximum = new decimal(new int[] { + 65535, 0, 0, 0}); - this.NUD_OID.Name = "NUD_OID"; - this.NUD_OID.Size = new System.Drawing.Size(53, 20); - this.NUD_OID.TabIndex = 435; + this.NUD_NID.Name = "NUD_NID"; + this.NUD_NID.Size = new System.Drawing.Size(53, 20); + this.NUD_NID.TabIndex = 435; // - // L_OID + // L_NID // - this.L_OID.Location = new System.Drawing.Point(3, 34); - this.L_OID.Name = "L_OID"; - this.L_OID.Size = new System.Drawing.Size(120, 15); - this.L_OID.TabIndex = 433; - this.L_OID.Text = "Entity ID:"; - this.L_OID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.L_NID.Location = new System.Drawing.Point(11, 16); + this.L_NID.Name = "L_NID"; + this.L_NID.Size = new System.Drawing.Size(76, 16); + this.L_NID.TabIndex = 433; + this.L_NID.Text = "Entity ID:"; + this.L_NID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // NUD_NE // @@ -424,15 +443,16 @@ private void InitializeComponent() this.L_NE.Text = "Entry:"; this.L_NE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // - // RTB_O + // RTB_N // - this.RTB_O.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_O.Location = new System.Drawing.Point(2, 268); - this.RTB_O.Name = "RTB_O"; - this.RTB_O.ReadOnly = true; - this.RTB_O.Size = new System.Drawing.Size(245, 42); - this.RTB_O.TabIndex = 414; - this.RTB_O.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + this.RTB_N.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.RTB_N.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_N.Location = new System.Drawing.Point(6, 275); + this.RTB_N.Name = "RTB_N"; + this.RTB_N.ReadOnly = true; + this.RTB_N.Size = new System.Drawing.Size(245, 42); + this.RTB_N.TabIndex = 414; + this.RTB_N.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; // // tb_Warp @@ -756,13 +776,13 @@ private void InitializeComponent() // tb_RAW // this.tb_RAW.Controls.Add(this.L_File3); - this.tb_RAW.Controls.Add(this.L_ZD); + this.tb_RAW.Controls.Add(this.L_ZDMaster); this.tb_RAW.Controls.Add(this.L_File5); this.tb_RAW.Controls.Add(this.L_File4); this.tb_RAW.Controls.Add(this.L_File2); this.tb_RAW.Controls.Add(this.L_File1); - this.tb_RAW.Controls.Add(this.RTB_zonedata); - this.tb_RAW.Controls.Add(this.RTB_MapInfo); + this.tb_RAW.Controls.Add(this.RTB_ZDMaster); + this.tb_RAW.Controls.Add(this.RTB_ZD); this.tb_RAW.Controls.Add(this.RTB_File5); this.tb_RAW.Controls.Add(this.RTB_OWSC); this.tb_RAW.Controls.Add(this.RTB_Encounter); @@ -783,14 +803,14 @@ private void InitializeComponent() this.L_File3.Text = "Map Environment [3]:"; this.L_File3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // - // L_ZD + // L_ZDMaster // - this.L_ZD.Location = new System.Drawing.Point(-4, 277); - this.L_ZD.Name = "L_ZD"; - this.L_ZD.Size = new System.Drawing.Size(141, 23); - this.L_ZD.TabIndex = 428; - this.L_ZD.Text = "ZoneData Information:"; - this.L_ZD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.L_ZDMaster.Location = new System.Drawing.Point(-4, 277); + this.L_ZDMaster.Name = "L_ZDMaster"; + this.L_ZDMaster.Size = new System.Drawing.Size(141, 23); + this.L_ZDMaster.TabIndex = 428; + this.L_ZDMaster.Text = "Master ZoneData Table:"; + this.L_ZDMaster.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // L_File5 // @@ -825,18 +845,18 @@ private void InitializeComponent() this.L_File1.Name = "L_File1"; this.L_File1.Size = new System.Drawing.Size(141, 23); this.L_File1.TabIndex = 423; - this.L_File1.Text = "Map Info [1]:"; + this.L_File1.Text = "ZoneData [1]:"; this.L_File1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // - // RTB_zonedata + // RTB_ZDMaster // - this.RTB_zonedata.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_zonedata.Location = new System.Drawing.Point(143, 279); - this.RTB_zonedata.Name = "RTB_zonedata"; - this.RTB_zonedata.ReadOnly = true; - this.RTB_zonedata.Size = new System.Drawing.Size(340, 64); - this.RTB_zonedata.TabIndex = 422; - this.RTB_zonedata.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + this.RTB_ZDMaster.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_ZDMaster.Location = new System.Drawing.Point(143, 279); + this.RTB_ZDMaster.Name = "RTB_ZDMaster"; + this.RTB_ZDMaster.ReadOnly = true; + this.RTB_ZDMaster.Size = new System.Drawing.Size(340, 64); + this.RTB_ZDMaster.TabIndex = 422; + this.RTB_ZDMaster.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55" + " 66 77 88 99 AA BB CC DD EE FF"; // @@ -882,6 +902,7 @@ private void InitializeComponent() // // tb_Map // + this.tb_Map.Controls.Add(this.CHK_AutoDraw); this.tb_Map.Controls.Add(this.B_Redraw); this.tb_Map.Controls.Add(this.L_Scale); this.tb_Map.Controls.Add(this.NUD_Scale); @@ -987,6 +1008,166 @@ private void InitializeComponent() this.B_HLCMD.UseVisualStyleBackColor = true; this.B_HLCMD.Click += new System.EventHandler(this.B_HLCMD_Click); // + // CHK_AutoDraw + // + this.CHK_AutoDraw.AutoSize = true; + this.CHK_AutoDraw.Location = new System.Drawing.Point(261, 7); + this.CHK_AutoDraw.Name = "CHK_AutoDraw"; + this.CHK_AutoDraw.Size = new System.Drawing.Size(76, 17); + this.CHK_AutoDraw.TabIndex = 10; + this.CHK_AutoDraw.Text = "Auto-Draw"; + this.CHK_AutoDraw.UseVisualStyleBackColor = true; + // + // GB_N + // + this.GB_N.Controls.Add(this.NUD_NFlag); + this.GB_N.Controls.Add(this.L_NFlag); + this.GB_N.Controls.Add(this.NUD_NScript); + this.GB_N.Controls.Add(this.L_NScript); + this.GB_N.Controls.Add(this.NUD_NFace); + this.GB_N.Controls.Add(this.L_NFaceDirection); + this.GB_N.Controls.Add(this.NUD_NY); + this.GB_N.Controls.Add(this.L_NY); + this.GB_N.Controls.Add(this.NUD_NX); + this.GB_N.Controls.Add(this.L_NX); + this.GB_N.Controls.Add(this.NUD_NModel); + this.GB_N.Controls.Add(this.L_NModel); + this.GB_N.Controls.Add(this.RTB_N); + this.GB_N.Controls.Add(this.NUD_NID); + this.GB_N.Controls.Add(this.L_NID); + this.GB_N.Location = new System.Drawing.Point(6, 60); + this.GB_N.Name = "GB_N"; + this.GB_N.Size = new System.Drawing.Size(256, 323); + this.GB_N.TabIndex = 436; + this.GB_N.TabStop = false; + this.GB_N.Text = "Info:"; + // + // NUD_NModel + // + this.NUD_NModel.Location = new System.Drawing.Point(93, 42); + this.NUD_NModel.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NModel.Name = "NUD_NModel"; + this.NUD_NModel.Size = new System.Drawing.Size(53, 20); + this.NUD_NModel.TabIndex = 437; + // + // L_NModel + // + this.L_NModel.Location = new System.Drawing.Point(11, 42); + this.L_NModel.Name = "L_NModel"; + this.L_NModel.Size = new System.Drawing.Size(76, 16); + this.L_NModel.TabIndex = 436; + this.L_NModel.Text = "Model:"; + this.L_NModel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NX + // + this.NUD_NX.Location = new System.Drawing.Point(93, 180); + this.NUD_NX.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NX.Name = "NUD_NX"; + this.NUD_NX.Size = new System.Drawing.Size(53, 20); + this.NUD_NX.TabIndex = 439; + // + // L_NX + // + this.L_NX.Location = new System.Drawing.Point(11, 180); + this.L_NX.Name = "L_NX"; + this.L_NX.Size = new System.Drawing.Size(76, 16); + this.L_NX.TabIndex = 438; + this.L_NX.Text = "X Coordinate:"; + this.L_NX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NY + // + this.NUD_NY.Location = new System.Drawing.Point(93, 206); + this.NUD_NY.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NY.Name = "NUD_NY"; + this.NUD_NY.Size = new System.Drawing.Size(53, 20); + this.NUD_NY.TabIndex = 441; + // + // L_NY + // + this.L_NY.Location = new System.Drawing.Point(11, 206); + this.L_NY.Name = "L_NY"; + this.L_NY.Size = new System.Drawing.Size(76, 16); + this.L_NY.TabIndex = 440; + this.L_NY.Text = "Y Coordinate:"; + this.L_NY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NFace + // + this.NUD_NFace.Location = new System.Drawing.Point(93, 154); + this.NUD_NFace.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NFace.Name = "NUD_NFace"; + this.NUD_NFace.Size = new System.Drawing.Size(53, 20); + this.NUD_NFace.TabIndex = 443; + // + // L_NFaceDirection + // + this.L_NFaceDirection.Location = new System.Drawing.Point(11, 154); + this.L_NFaceDirection.Name = "L_NFaceDirection"; + this.L_NFaceDirection.Size = new System.Drawing.Size(76, 16); + this.L_NFaceDirection.TabIndex = 442; + this.L_NFaceDirection.Text = "Facing:"; + this.L_NFaceDirection.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NScript + // + this.NUD_NScript.Location = new System.Drawing.Point(93, 94); + this.NUD_NScript.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NScript.Name = "NUD_NScript"; + this.NUD_NScript.Size = new System.Drawing.Size(53, 20); + this.NUD_NScript.TabIndex = 445; + // + // L_NScript + // + this.L_NScript.Location = new System.Drawing.Point(11, 94); + this.L_NScript.Name = "L_NScript"; + this.L_NScript.Size = new System.Drawing.Size(76, 16); + this.L_NScript.TabIndex = 444; + this.L_NScript.Text = "Script:"; + this.L_NScript.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NFlag + // + this.NUD_NFlag.Location = new System.Drawing.Point(93, 68); + this.NUD_NFlag.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NFlag.Name = "NUD_NFlag"; + this.NUD_NFlag.Size = new System.Drawing.Size(53, 20); + this.NUD_NFlag.TabIndex = 447; + // + // L_NFlag + // + this.L_NFlag.Location = new System.Drawing.Point(11, 68); + this.L_NFlag.Name = "L_NFlag"; + this.L_NFlag.Size = new System.Drawing.Size(76, 16); + this.L_NFlag.TabIndex = 446; + this.L_NFlag.Text = "Spawn Flag:"; + this.L_NFlag.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // // OWSE // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1003,8 +1184,8 @@ private void InitializeComponent() this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Overworld Editor"; this.tabControl1.ResumeLayout(false); - this.tb_MapInfo.ResumeLayout(false); - this.tb_MapInfo.PerformLayout(); + this.tb_ZoneData.ResumeLayout(false); + this.tb_ZoneData.PerformLayout(); this.tb_OWSC.ResumeLayout(false); this.tb_OWSC.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).EndInit(); @@ -1014,7 +1195,7 @@ private void InitializeComponent() this.tb_Furniture.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).EndInit(); this.tb_Overworld.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_OID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).EndInit(); this.tb_Warp.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).EndInit(); @@ -1037,6 +1218,13 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).EndInit(); + this.GB_N.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -1046,9 +1234,9 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox CB_LocationID; private System.Windows.Forms.Label L_Location; - private System.Windows.Forms.RichTextBox RTB_MapInfo; + private System.Windows.Forms.RichTextBox RTB_ZD; private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tb_MapInfo; + private System.Windows.Forms.TabPage tb_ZoneData; private System.Windows.Forms.TabPage tb_OWSC; private System.Windows.Forms.TabPage tb_MSC; private System.Windows.Forms.TabPage tb_Encounters; @@ -1056,7 +1244,7 @@ private void InitializeComponent() private System.Windows.Forms.TabControl tc_OWSC; private System.Windows.Forms.TabPage tb_Furniture; private System.Windows.Forms.TabPage tb_Overworld; - private System.Windows.Forms.RichTextBox RTB_O; + private System.Windows.Forms.RichTextBox RTB_N; private System.Windows.Forms.TabPage tb_Warp; private System.Windows.Forms.TabPage tb_Trigger; private System.Windows.Forms.RichTextBox RTB_OWSC; @@ -1080,7 +1268,7 @@ private void InitializeComponent() private System.Windows.Forms.NumericUpDown NUD_TE; private System.Windows.Forms.Label L_TE; private System.Windows.Forms.TabPage tb_Script; - private System.Windows.Forms.RichTextBox RTB_zonedata; + private System.Windows.Forms.RichTextBox RTB_ZDMaster; private System.Windows.Forms.RichTextBox RTB_F; private System.Windows.Forms.RichTextBox RTB_W; private System.Windows.Forms.RichTextBox RTB_T; @@ -1094,13 +1282,13 @@ private void InitializeComponent() private System.Windows.Forms.Label L_MSSCDesc; private System.Windows.Forms.RichTextBox RTB_MS; private System.Windows.Forms.Label L_WarpDest; - private System.Windows.Forms.NumericUpDown NUD_OID; - private System.Windows.Forms.Label L_OID; + private System.Windows.Forms.NumericUpDown NUD_NID; + private System.Windows.Forms.Label L_NID; private System.Windows.Forms.Label L_ZDPreview; private System.Windows.Forms.RichTextBox RTB_OS; private System.Windows.Forms.RichTextBox RTB_MSCMD; private System.Windows.Forms.Label L_Encounters; - private System.Windows.Forms.Label L_ZD; + private System.Windows.Forms.Label L_ZDMaster; private System.Windows.Forms.Label L_File5; private System.Windows.Forms.Label L_File4; private System.Windows.Forms.Label L_File2; @@ -1119,6 +1307,20 @@ private void InitializeComponent() private System.Windows.Forms.Button B_Redraw; private System.Windows.Forms.Label L_Scale; private System.Windows.Forms.NumericUpDown NUD_Scale; + private System.Windows.Forms.CheckBox CHK_AutoDraw; + private System.Windows.Forms.GroupBox GB_N; + private System.Windows.Forms.NumericUpDown NUD_NModel; + private System.Windows.Forms.Label L_NModel; + private System.Windows.Forms.NumericUpDown NUD_NY; + private System.Windows.Forms.Label L_NY; + private System.Windows.Forms.NumericUpDown NUD_NX; + private System.Windows.Forms.Label L_NX; + private System.Windows.Forms.NumericUpDown NUD_NFace; + private System.Windows.Forms.Label L_NFaceDirection; + private System.Windows.Forms.NumericUpDown NUD_NScript; + private System.Windows.Forms.Label L_NScript; + private System.Windows.Forms.NumericUpDown NUD_NFlag; + private System.Windows.Forms.Label L_NFlag; } }