From 88e3d2502797e0a4b35ea2419c65de6f3e054832 Mon Sep 17 00:00:00 2001 From: luismk Date: Wed, 21 Feb 2024 19:28:16 -0300 Subject: [PATCH 1/5] Update Source Lib IFF code improvements: - change in structure - data correction - 'IFFFile' can now be inherited - added new models - old models have been updated - IFFFILE can reimplemented and added new functions - Faster data detection Co-Authored-By: Luiz Lopes --- PangLib.IFF/Extensions/PangyaBinaryReader.cs | 682 ++++++++++++++++++ PangLib.IFF/Extensions/PangyaBinaryWriter.cs | 439 +++++++++++ PangLib.IFF/IFFFile.cs | 353 +++++++-- PangLib.IFF/Models/Data/Ability.cs | 22 + PangLib.IFF/Models/Data/Achievement.cs | 39 + PangLib.IFF/Models/Data/AuxPart.cs | 46 +- PangLib.IFF/Models/Data/Ball.cs | 53 +- PangLib.IFF/Models/Data/Caddie.cs | 18 +- PangLib.IFF/Models/Data/CaddieItem.cs | 31 + PangLib.IFF/Models/Data/CadieMagicBox.cs | 55 ++ .../Models/Data/CadieMagicBoxRandom.cs | 18 + PangLib.IFF/Models/Data/Card.cs | 158 +++- PangLib.IFF/Models/Data/Character.cs | 38 +- PangLib.IFF/Models/Data/Club.cs | 21 +- PangLib.IFF/Models/Data/ClubSet.cs | 43 +- PangLib.IFF/Models/Data/Course.cs | 36 +- PangLib.IFF/Models/Data/CutinInfomation.cs | 29 + PangLib.IFF/Models/Data/Desc.cs | 28 +- PangLib.IFF/Models/Data/Enchant.cs | 14 +- PangLib.IFF/Models/Data/Furniture.cs | 24 + PangLib.IFF/Models/Data/FurnitureAbility.cs | 23 + PangLib.IFF/Models/Data/GrandPrixData.cs | 235 ++++++ .../Models/Data/GrandPrixRankReward.cs | 23 + .../Models/Data/GrandPrixSpecialHole.cs | 21 + PangLib.IFF/Models/Data/HairStyle.cs | 16 +- PangLib.IFF/Models/Data/Item.cs | 21 + PangLib.IFF/Models/Data/LevelUpPrizeItem.cs | 35 + PangLib.IFF/Models/Data/Mascot.cs | 37 +- PangLib.IFF/Models/Data/Match.cs | 26 +- .../Models/Data/MemorialShopCoinItem.cs | 61 ++ .../Models/Data/MemorialShopRareItem.cs | 167 +++++ PangLib.IFF/Models/Data/Part.cs | 65 ++ PangLib.IFF/Models/Data/QuestItem.cs | 26 + PangLib.IFF/Models/Data/QuestStuff.cs | 24 + PangLib.IFF/Models/Data/SetEffectTable.cs | 40 + PangLib.IFF/Models/Data/SetItem.cs | 34 + PangLib.IFF/Models/Data/Skin.cs | 22 + PangLib.IFF/Models/Data/TikiPointTable.cs | 18 + PangLib.IFF/Models/Data/TikiRecipe.cs | 18 + PangLib.IFF/Models/Data/TikiSpecialTable.cs | 19 + PangLib.IFF/Models/Flags/CardEffectFlag.cs | 68 -- PangLib.IFF/Models/Flags/Definitions.cs | 601 +++++++++++++++ PangLib.IFF/Models/Flags/MoneyFlag.cs | 53 -- PangLib.IFF/Models/Flags/ShopFlag.cs | 53 -- PangLib.IFF/Models/General/IFFCommon.cs | 292 ++++++-- PangLib.IFF/Models/General/IFFHeader.cs | 37 + PangLib.IFF/Models/General/IFFLevel.cs | 75 ++ PangLib.IFF/Models/General/IFFShopData.cs | 229 ++++++ PangLib.IFF/Models/General/IFFTikiShopData.cs | 31 + PangLib.IFF/Models/General/IFFTime.cs | 161 +++++ PangLib.IFF/Models/General/SystemTime.cs | 51 -- PangLib.IFF/PangLib.IFF.csproj | 6 +- 52 files changed, 4226 insertions(+), 509 deletions(-) create mode 100644 PangLib.IFF/Extensions/PangyaBinaryReader.cs create mode 100644 PangLib.IFF/Extensions/PangyaBinaryWriter.cs create mode 100644 PangLib.IFF/Models/Data/Ability.cs create mode 100644 PangLib.IFF/Models/Data/Achievement.cs create mode 100644 PangLib.IFF/Models/Data/CaddieItem.cs create mode 100644 PangLib.IFF/Models/Data/CadieMagicBox.cs create mode 100644 PangLib.IFF/Models/Data/CadieMagicBoxRandom.cs create mode 100644 PangLib.IFF/Models/Data/CutinInfomation.cs create mode 100644 PangLib.IFF/Models/Data/Furniture.cs create mode 100644 PangLib.IFF/Models/Data/FurnitureAbility.cs create mode 100644 PangLib.IFF/Models/Data/GrandPrixData.cs create mode 100644 PangLib.IFF/Models/Data/GrandPrixRankReward.cs create mode 100644 PangLib.IFF/Models/Data/GrandPrixSpecialHole.cs create mode 100644 PangLib.IFF/Models/Data/Item.cs create mode 100644 PangLib.IFF/Models/Data/LevelUpPrizeItem.cs create mode 100644 PangLib.IFF/Models/Data/MemorialShopCoinItem.cs create mode 100644 PangLib.IFF/Models/Data/MemorialShopRareItem.cs create mode 100644 PangLib.IFF/Models/Data/Part.cs create mode 100644 PangLib.IFF/Models/Data/QuestItem.cs create mode 100644 PangLib.IFF/Models/Data/QuestStuff.cs create mode 100644 PangLib.IFF/Models/Data/SetEffectTable.cs create mode 100644 PangLib.IFF/Models/Data/SetItem.cs create mode 100644 PangLib.IFF/Models/Data/Skin.cs create mode 100644 PangLib.IFF/Models/Data/TikiPointTable.cs create mode 100644 PangLib.IFF/Models/Data/TikiRecipe.cs create mode 100644 PangLib.IFF/Models/Data/TikiSpecialTable.cs delete mode 100644 PangLib.IFF/Models/Flags/CardEffectFlag.cs create mode 100644 PangLib.IFF/Models/Flags/Definitions.cs delete mode 100644 PangLib.IFF/Models/Flags/MoneyFlag.cs delete mode 100644 PangLib.IFF/Models/Flags/ShopFlag.cs create mode 100644 PangLib.IFF/Models/General/IFFHeader.cs create mode 100644 PangLib.IFF/Models/General/IFFLevel.cs create mode 100644 PangLib.IFF/Models/General/IFFShopData.cs create mode 100644 PangLib.IFF/Models/General/IFFTikiShopData.cs create mode 100644 PangLib.IFF/Models/General/IFFTime.cs delete mode 100644 PangLib.IFF/Models/General/SystemTime.cs diff --git a/PangLib.IFF/Extensions/PangyaBinaryReader.cs b/PangLib.IFF/Extensions/PangyaBinaryReader.cs new file mode 100644 index 0000000..1066e07 --- /dev/null +++ b/PangLib.IFF/Extensions/PangyaBinaryReader.cs @@ -0,0 +1,682 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Extensions +{ + public class PangyaBinaryReader : BinaryReader + { + public PangyaBinaryReader(Stream input) : base(input) + { + } + + public PangyaBinaryReader(Stream input, Encoding encoding) : base(input, encoding) + { + } + + public PangyaBinaryReader(Stream input, Encoding encoding, bool leaveOpen) : base(input, encoding, leaveOpen) + { + } + + public void Skip(int count) + { + Seek(count, 1); + } + + public void Seek(long offset, int origin) + { + BaseStream.Seek(offset, (SeekOrigin)origin); + } + public void Seek(uint offset, int origin) + { + BaseStream.Seek(offset, (SeekOrigin)origin); + } + + public void Seek(int offset, int origin) + { + BaseStream.Seek(offset, (SeekOrigin)origin); + } + public uint GetSize() + { + return (uint)BaseStream.Length; + } + + public byte[] GetRemainingData(int Count) + { + int previousOffset; + previousOffset = (int)BaseStream.Position; + var array = ReadBytes(Count); + BaseStream.Position = previousOffset; + return array; + } + public byte[] GetRemainingData() + { + int previousOffset; + previousOffset = (int)BaseStream.Position; + var array = ReadBytes((int)GetSize()); + BaseStream.Position = previousOffset; + return array; + } + + public bool ReadPStr(out string value, uint Count) + { + try + { + var data = new byte[Count]; + //ler os dados + BaseStream.Read(data, 0, (int)Count); + + value = Encoding.UTF7.GetString(data); + } + catch + { + value = null; + return false; + } + return true; + } + + public bool ReadPStr(out string[] value, uint Length, uint Count) + { + try + { + value = new string[Count / Length]; + for (int i = 0; i < Count / Length; i++) + { + value[i] = ReadPStr(Length); + } + } + catch + { + value = null; + return false; + } + return true; + } + public bool ReadPStr(out string value) + { + try + { + var size = ReadUInt16(); + value = Encoding.UTF7.GetString(ReadBytes(size)); + } + catch + { + value = null; + return false; + } + return true; + } + + public string ReadPStr() + { + try + { + var size = ReadUInt16(); + + return Encoding.UTF7.GetString(ReadBytes(size)); + } + catch + { + return ""; + } + } + public string ReadPStr(uint Count) + { + try + { + var data = new byte[Count]; + //ler os dados + BaseStream.Read(data, 0, (int)Count); + + return Encoding.UTF7.GetString(data).Replace("\0", ""); + } + catch + { + return ""; + } + } + + public short[] ReadShorts(uint Count) + { + try + { + var data = new short[Count]; + for (int i = 0; i < Count; i++) + { + data[i] = ReadInt16(); + } + return data; + } + catch + { + return new short[0]; + } + } + + public uint GetPosition() + { + return (uint)BaseStream.Position; + } + + public bool ReadDouble(out Double value) + { + try + { + value = ReadDouble(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadByte(out byte value) + { + try + { + value = ReadByte(); + } + catch + { + value = 0; + return false; + } + return true; + } + public bool ReadInt16(out short value) + { + try + { + value = ReadInt16(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadBytes(out byte[] value, int size) + { + try + { +#pragma warning disable CS0652 // Comparação com constante integral é inútil; a constante está fora do intervalo do tipo "int" + if (uint.MaxValue < size) + { + value = new byte[0]; + return false; + } +#pragma warning restore CS0652 // Comparação com constante integral é inútil; a constante está fora do intervalo do tipo "int" + value = ReadBytes(size); + } + catch + { + value = new byte[0]; + return false; + } + return true; + } + + public bool ReadBytes(out byte[] value) + { + try + { + int size = ReadInt16(); + + if (ushort.MaxValue < size) + { + value = new byte[0]; + return false; + } + value = ReadBytes(size); + } + catch + { + value = new byte[0]; + return false; + } + return true; + } + public bool ReadUInt16(out ushort value) + { + try + { + value = ReadUInt16(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadUInt32(out uint value) + { + try + { + value = ReadUInt32(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadInt32(out int value) + { + try + { + value = ReadInt32(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadUInt64(out ulong value) + { + try + { + value = ReadUInt64(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadInt64(out long value) + { + try + { + value = ReadInt64(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public bool ReadSingle(out float value) + { + try + { + value = ReadSingle(); + } + catch + { + value = 0; + return false; + } + return true; + } + + public DateTime ReadDateTime() + { + DateTime result; + try + { + var Year = ReadUInt16(); + var Month = ReadUInt16(); + var DayOfWeek = ReadUInt16(); + var Day = ReadUInt16(); + var Hour = ReadUInt16(); + var Minute = ReadUInt16(); + var Second = ReadUInt16(); + var Millisecond = ReadUInt16(); + + result = new DateTime(Year, Month, Day, Hour, Minute, Second, Millisecond); + return result; + } + catch + { + result = new DateTime(); + return result; + } + } + + public IEnumerable Read(uint count) + { + for (int i = 0; i < count; i++) + { + yield return ReadUInt32(); + } + } + //não testado + public bool Read(out object value, int Count) + { + try + { + var obj = new object(); + byte[] recordData = ReadBytes(Count); + + IntPtr ptr = Marshal.AllocHGlobal(Count); + + Marshal.Copy(recordData, 0, ptr, Count); + + value = Marshal.PtrToStructure(ptr, obj.GetType()); + Marshal.FreeHGlobal(ptr); + } + catch + { + value = 0; + return false; + } + return true; + } + + public T ReadStruct() + { + var byteLength = Marshal.SizeOf(typeof(T)); + var bytes = ReadBytes(byteLength); + var pinned = GCHandle.Alloc(bytes, GCHandleType.Pinned); + var stt = (T)Marshal.PtrToStructure( + pinned.AddrOfPinnedObject(), + typeof(T)); + pinned.Free(); + return stt; + } + public T Read() where T : class + { + T local; + int count = (typeof(T) == typeof(bool)) ? 1 : Marshal.SizeOf(typeof(T)); + GCHandle handle = GCHandle.Alloc(this.ReadBytes(count), GCHandleType.Pinned); + try + { + local = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T)); + } + finally + { + handle.Free(); + } + return local; + } + public object Read(object value) + { + var count = Marshal.SizeOf(value); + + byte[] recordData = ReadBytes(count); + + if (recordData.Length != count) + { + throw new Exception( + $"The record({value.GetType().Name}) length ({recordData.Length}) mismatches the length of the passed structure ({count})"); + } + + + IntPtr ptr = Marshal.AllocHGlobal(count); + + Marshal.Copy(recordData, 0, ptr, count); + + value = Marshal.PtrToStructure(ptr, value.GetType()); + Marshal.FreeHGlobal(ptr); + return value; + } + + public object Read(object value, object value_ori) + { + var Count = Marshal.SizeOf(value_ori); + + byte[] recordData = ReadBytes(Count); + + if (recordData.Length != Count) + { + throw new Exception( + $"The record length ({recordData.Length}) mismatches the length of the passed structure ({Count})"); + } + + IntPtr ptr = Marshal.AllocHGlobal(Count); + + Marshal.Copy(recordData, 0, ptr, Count); + + value = Marshal.PtrToStructure(ptr, value.GetType()); + Marshal.FreeHGlobal(ptr); + return value; + } + + public object Read(object value, int Count) + { + byte[] recordData = ReadBytes(Count); + + IntPtr ptr = Marshal.AllocHGlobal(Count); + + Marshal.Copy(recordData, 0, ptr, Count); + + value = Marshal.PtrToStructure(ptr, value.GetType()); + Marshal.FreeHGlobal(ptr); + return value; + } + public Object ReadObject(object obj) + { + foreach (var property in obj.GetType().GetProperties()) + { + Type type = property.PropertyType; + + TypeCode typeCode = Type.GetTypeCode(type); + switch (typeCode) + { + case TypeCode.Empty: + break; + case TypeCode.Object: + { + if (type.Name == "Byte[]") + { + property.SetValue(obj, ReadBytes()); + } + if (obj.GetType().FullName == "Int16") + { + property.SetValue(obj, ReadInt16()); + + } + if (type.Name == "UInt32") + { + property.SetValue(obj, ReadInt16()); + } + } + break; + case TypeCode.DBNull: + break; + case TypeCode.Boolean: + { + property.SetValue(obj, ReadBoolean()); + } + break; + case TypeCode.Char: + { + property.SetValue(obj, ReadChar()); + } + break; + case TypeCode.SByte: + { + property.SetValue(obj, ReadSByte()); + } + break; + case TypeCode.Byte: + { + property.SetValue(obj, ReadByte()); + } + break; + case TypeCode.Int16: + { + property.SetValue(obj, ReadInt16()); + } + break; + case TypeCode.UInt16: + { + property.SetValue(obj, ReadUInt16()); + } + break; + case TypeCode.Int32: + { + property.SetValue(obj, ReadInt32()); + } + break; + case TypeCode.UInt32: + property.SetValue(obj, ReadUInt32()); + break; + case TypeCode.Int64: + { + property.SetValue(obj, ReadInt64()); + } + break; + case TypeCode.UInt64: + { + property.SetValue(obj, ReadUInt64()); + } + break; + case TypeCode.Single: + { + property.SetValue(obj, ReadSingle()); + } + break; + case TypeCode.Double: + { + property.SetValue(obj, ReadDouble()); + } + break; + case TypeCode.Decimal: + { + property.SetValue(obj, ReadDecimal()); + } + break; + case TypeCode.DateTime: + { + property.SetValue(obj, ReadDateTime()); + } + break; + case TypeCode.String: + { + property.SetValue(obj, ReadPStr()); + } + break; + default: + { + Console.WriteLine("Object Type Name: " + typeCode); + } + break; + } + } + return obj; + } + public void ReadObject(out object obj) + { + obj = new object(); + foreach (var property in obj.GetType().GetProperties()) + { + Type type = property.PropertyType; + + TypeCode typeCode = Type.GetTypeCode(type); + switch (typeCode) + { + case TypeCode.Empty: + break; + case TypeCode.Object: + break; + case TypeCode.DBNull: + break; + case TypeCode.Boolean: + { + property.SetValue(obj, ReadBoolean()); + } + break; + case TypeCode.Char: + { + property.SetValue(obj, ReadChar()); + } + break; + case TypeCode.SByte: + { + property.SetValue(obj, ReadSByte()); + } + break; + + case TypeCode.Byte: + { + property.SetValue(obj, ReadByte()); + } + break; + case TypeCode.Int16: + { + property.SetValue(obj, ReadInt16()); + } + break; + case TypeCode.UInt16: + { + property.SetValue(obj, ReadUInt16()); + } + break; + case TypeCode.Int32: + { + property.SetValue(obj, ReadInt32()); + } + break; + case TypeCode.UInt32: + property.SetValue(obj, ReadUInt32()); + break; + case TypeCode.Int64: + { + property.SetValue(obj, ReadInt64()); + } + break; + case TypeCode.UInt64: + { + property.SetValue(obj, ReadUInt64()); + } + break; + case TypeCode.Single: + { + property.SetValue(obj, ReadSingle()); + } + break; + case TypeCode.Double: + { + property.SetValue(obj, ReadDouble()); + } + break; + case TypeCode.Decimal: + { + property.SetValue(obj, ReadDecimal()); + } + break; + case TypeCode.DateTime: + { + property.SetValue(obj, ReadDateTime()); + } + break; + case TypeCode.String: + { + property.SetValue(obj, ReadPStr()); + } + break; + default: + { + Console.WriteLine("Object Type Name: " + typeCode); + } + break; + } + } + // return obj; + } + + public byte[] ReadBytes() + { + return ReadBytes((int)GetSize()); + } + } +} diff --git a/PangLib.IFF/Extensions/PangyaBinaryWriter.cs b/PangLib.IFF/Extensions/PangyaBinaryWriter.cs new file mode 100644 index 0000000..09dddb2 --- /dev/null +++ b/PangLib.IFF/Extensions/PangyaBinaryWriter.cs @@ -0,0 +1,439 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Extensions +{ + public class PangyaBinaryWriter : BinaryWriter + { + public PangyaBinaryWriter(Stream output) { } + public PangyaBinaryWriter(Stream output, Encoding encoding) : base(output, encoding) + { + } + + public PangyaBinaryWriter(Stream output, Encoding encoding, bool leaveOpen) : base(output, encoding, leaveOpen) + { + } + public PangyaBinaryWriter() + { + this.OutStream = new MemoryStream(); + } + + public uint GetSize + { + get { return (uint)BaseStream.Length; } + } + public uint Size + { + get { return (uint)BaseStream.Length; } + } + public byte[] GetBytes => CreateBytes(); + + + public void Clear() + { + this.Flush(); + this.Close(); + this.OutStream = new MemoryStream(); + } + + + public bool WriteStr(string message, int length) + { + + try + { + if (message == null) + { + message = string.Empty; + } + + var ret = new byte[length]; + Encoding.UTF7.GetBytes(message).Take(length).ToArray().CopyTo(ret, 0); + + Write(ret); + } + catch + { + return false; + } + return true; + } + + public bool WriteStr(string message) + { + try + { + WriteStr(message, message.Length); + + } + catch + { + return false; + } + return true; + + } + + public bool WritePStr(string data) + { + if (data == null) data = ""; + try + { + var encoded = Encoding.UTF7.GetBytes(data); + var length = encoded.Length; + if (length >= ushort.MaxValue) + { + return false; + } + Write((short)length); + Write(encoded); + } + catch + { + return false; + } + return true; + } + + + public bool WriteBytes(byte[] message, int length) + { + try + { + if (message == null) + message = new byte[length]; + + var result = new byte[length]; + + Buffer.BlockCopy(message, 0, result, 0, length); + + Write(result); + } + catch + { + return false; + } + return true; + } + public bool Write(byte[] message, int length) + { + try + { + if (message == null) + message = new byte[length]; + + var result = new byte[length]; + + Buffer.BlockCopy(message, 0, result, 0, message.Length); + + Write(result); + } + catch + { + return false; + } + return true; + } + public bool WriteZero(int Lenght) + { + try + { + Write(new byte[Lenght]); + } + catch + { + return false; + } + return true; + } + public bool WriteUInt16(ushort value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + public bool WriteUInt16(int value) + { + try + { + Write((ushort)value); + } + catch + { + return false; + } + return true; + } + + public bool WriteUInt16(uint value) + { + try + { + Write((ushort)value); + } + catch + { + return false; + } + return true; + } + + + public bool WriteByte(byte value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteByte(int value) + { + try + { + Write(Convert.ToByte(value)); + } + catch + { + return false; + } + return true; + } + + public bool WriteSingle(float value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteUInt32(uint value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteInt32(int value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteUInt64(ulong value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteInt64(long value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + + public bool WriteDouble(double value) + { + try + { + Write(value); + } + catch + { + return false; + } + return true; + } + public bool WriteStruct(object value) + { + try + { + int size = Marshal.SizeOf(value); + byte[] arr = new byte[size]; + + IntPtr ptr = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(value, ptr, true); + Marshal.Copy(ptr, arr, 0, size); + Marshal.FreeHGlobal(ptr); + Write(arr); + } + catch (Exception ex) + { + return false; + } + return true; + } + + public void WriteFile(string file) + { + File.WriteAllBytes(file, GetBytes); + } + public bool WriteStruct(object value, object value_ori) + { + try + { + int size = Marshal.SizeOf(value_ori); + byte[] arr = new byte[size]; + + IntPtr ptr = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(value, ptr, true); + Marshal.Copy(ptr, arr, 0, size); + Marshal.FreeHGlobal(ptr); + + // Converte as strings para bytes usando a codificação Shift-JIS + PropertyInfo[] properties = value.GetType().GetProperties(); + foreach (var property in properties) + { + if (property.PropertyType == typeof(string)) + { + string stringValue = (string)property.GetValue(value); + byte[] stringBytes = Encoding.GetEncoding("Shift-JIS").GetBytes(stringValue); + Array.Copy(stringBytes, 0, arr, (int)property.GetCustomAttribute().Value, stringBytes.Length); + } + } + Write(arr); + } + catch + { + return false; + } + return true; + } + public bool WriteHexArray(string _value) + { + try + { + _value = _value.Replace(" ", ""); + int _size = _value.Length / 2; + byte[] _result = new byte[_size]; + for (int ii = 0; ii < _size; ii++) + WriteByte(Convert.ToByte(_value.Substring(ii * 2, 2), 16)); + } + catch + { + return false; + } + return true; + } + /// + /// Write Pangya Time + /// + /// + public bool WriteTime(DateTime? date) + { + try + { + if (date.HasValue == false || date?.Ticks == 0) + { + Write(new byte[16]); + return true; + } + WriteUInt16((ushort)date?.Year); + WriteUInt16((ushort)date?.Month); + WriteUInt16(Convert.ToUInt16(date?.DayOfWeek)); + WriteUInt16((ushort)date?.Day); + WriteUInt16((ushort)date?.Hour); + WriteUInt16((ushort)date?.Minute); + WriteUInt16((ushort)date?.Second); + WriteUInt16((ushort)date?.Millisecond); + return true; + } + catch + { + return false; + } + } + + /// + /// Write Pangya Time + /// + /// + public bool WriteTime() + { + DateTime date = DateTime.Now; + try + { + WriteUInt16((ushort)date.Year); + WriteUInt16((ushort)date.Month); + WriteUInt16((ushort)date.DayOfWeek); + WriteUInt16((ushort)date.Day); + WriteUInt16((ushort)date.Hour); + WriteUInt16((ushort)date.Minute); + WriteUInt16((ushort)date.Second); + WriteUInt16((ushort)date.Millisecond); + return true; + } + catch + { + return false; + } + } + byte[] CreateBytes() + { + if (OutStream is MemoryStream stream) + return stream.ToArray(); + + + using (var memoryStream = new MemoryStream()) + { + memoryStream.GetBuffer(); + OutStream.CopyTo(memoryStream); + return memoryStream.ToArray(); + } + } + + public void SaveWrite(string name) + { + File.WriteAllBytes(name, GetBytes); + } + } +} diff --git a/PangLib.IFF/IFFFile.cs b/PangLib.IFF/IFFFile.cs index cc2ade8..bb962c5 100644 --- a/PangLib.IFF/IFFFile.cs +++ b/PangLib.IFF/IFFFile.cs @@ -1,120 +1,335 @@ -using System; +using PangLib.IFF.Extensions; +using PangLib.IFF.Models.General; +using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; +using System.Linq; using System.Runtime.InteropServices; +using System.Windows.Forms; namespace PangLib.IFF { /// - /// Main IFF file class + /// new version create By LuisMK D: /// - public class IFFFile where T : new() + /// + [DebuggerDisplay("{" + nameof(GetDebuggerDisplay) + "(),nq}")] + public partial class IFFFile : List { /// - /// List of IFF file entries + /// Header IFF(cabeçario do IFF, contem Contagem dos itens existentes no *.iff, ID de ligacao, Versão do IFF /// - public List Entries { get; } = new List(); - - /// - /// ID determining relation to other IFF files - /// - public ushort BindingID { get; set; } - + public IFFHeader Header { get; set; } = new IFFHeader(); /// - /// Version of this IFF file + /// Atualiza o IFF/Update for IFF /// - public uint Version { get; set; } + public bool Update { get; set; } + public IFFFile() + { + Header = new IFFHeader(); + Update = false; + } /// - /// Constructs a new IFFFile instance + /// class construtor(classe construtura do IFFList) /// - public IFFFile() { } + /// local onde fica o arquivo/ local + public IFFFile(string path) + { + Header = new IFFHeader(); + Update = false; + Load(File.ReadAllBytes(path)); + } - /// - /// Initializes a new IFFFile instance from a stream of IFF file data - /// - /// Stream containing IFF file data - public IFFFile(Stream data) + public bool CheckVersionIFF() { - Parse(data); + if (Header.Version == 13) + { + return true; + } + else if (Header.Version == 13) + { + throw new Exception( + $"[IFFFile::Error]: version-incompatible file structure: ({Marshal.SizeOf((T)Activator.CreateInstance(typeof(T)))})"); + + } + else if (Header.Version != 13) + { + throw new Exception($"[IFFFile::Error]:" + + $"Version Actual: 13 \n " + + $"Version File: {Header.Version} \n" + + $"Version-incompatible file structure\n"); + } + else + { + throw new Exception($"[IFFFile::Error]: Versao Atual: 13 \n Versao Arquivo: {Header.Version} \nVersao do IFF esta incorreta\n por favor coloque a versão atual"); + } } - + + public virtual string GetItemName(uint TypeID) + { + try + { + foreach (var item in this) + { + if (item is IFFCommon)//verifica se IFFCommon + { + var item2 = item as IFFCommon; + if (item2.ID == TypeID) + { + return item2.Name; + } + } + else + { + return ""; + } + } + } + catch { return ""; } + return ""; + } + /// - /// Parses the data from the IFF file and saves it into the Entries property - /// - /// The bytes of a single entry are then marshalled into the structure provided by the - /// generic type of the IFFFile instance + ///so obtem se for IFFCommon /// - /// Stream containing IFF file data - /// Is thrown when the size of a single record mismatches the size of the given generic structure - private void Parse(Stream stream) + /// + /// retorna o tipo + public T GetItem(uint TypeID) { - using (BinaryReader reader = new BinaryReader(stream)) + foreach (var item in this) { - if (new string(reader.ReadChars(2)) == "PK") + if (item is IFFCommon)//verifica se IFFCommon + { + var item2 = item as IFFCommon; + if (item2.ID == TypeID) + { + return item; + } + } + else { - throw new NotSupportedException("The given IFF file is a ZIP file, please unpack it before attempting to parse it"); + return CreateItem(); } + } + return CreateItem(); + } - reader.BaseStream.Seek(0, SeekOrigin.Begin); + public IFFCommon GetItemCommon(uint TypeID) + { + foreach (var item in this) + { + if (item is IFFCommon)//verifica se IFFCommon + { + var item2 = item as IFFCommon; + if (item2.ID == TypeID) + { + return item2; + } + } + else + { + return new IFFCommon().CreateNewItem(); + } + } + return new IFFCommon().CreateNewItem(); + } - ushort recordCount = reader.ReadUInt16(); - long recordLength = ((reader.BaseStream.Length - 8L) / (recordCount)); - BindingID = reader.ReadUInt16(); - Version = reader.ReadUInt32(); + public virtual uint GetPrice(uint TypeID) + { + return GetItemCommon(TypeID).Shop.Price; + } - for (int i = 0; i < recordCount; i++) - { - reader.BaseStream.Seek(8L + (recordLength * i), System.IO.SeekOrigin.Begin); + public virtual sbyte GetShopPriceType(uint TypeID) + { + return (sbyte)GetItemCommon(TypeID).Shop.flag_shop.ShopFlag; + } - byte[] recordData = reader.ReadBytes((int) recordLength); + public virtual bool IsBuyable(uint TypeID) + { + var item = GetItemCommon(TypeID); + if (item.Active == 1 && item.Shop.flag_shop.MoneyFlag == 0 || (int)item.Shop.flag_shop.MoneyFlag == 1 || (int)item.Shop.flag_shop.MoneyFlag == 2) + { + return true; + } + return false; + } - T data = new T(); + public virtual bool IsExist(uint TypeID) + { + var item = GetItemCommon(TypeID); - int size = Marshal.SizeOf(data); - IntPtr ptr = Marshal.AllocHGlobal(size); + return Convert.ToBoolean(item.Active); + } - if (recordData.Length != size) - { - throw new InvalidCastException( - $"The record length ({recordData.Length}) mismatches the length of the passed structure ({size})"); - } + public virtual bool LoadItem(uint ID, ref T item) + { + if (!this.TryGetValue(ID, out T value)) + { + return false; + } + item = value; + return true; + } + + public virtual bool TryGetValue(uint ID, out T value) + { + if (GetItem(ID) != null) + { + value = GetItem(ID); + return true; + } + value = CreateItem(); + return false; + } - Marshal.Copy(recordData, 0, ptr, size); + //adiciona e atualiza o cabecario do iff + public virtual void AddItem(T item) + { + var OldCount = Count; + this.Add(item); + if (Count > Header.Count)//so atualiza se o contador for maior + { + Header.Count = (short)Count; + Update = true; + Debug.WriteLine($"IFFFile::AddItemRange: Atualizou o IFF, Contador=> Novo({Count}), Antigo({OldCount}) "); + } + } - data = (T) Marshal.PtrToStructure(ptr, data.GetType()); - Marshal.FreeHGlobal(ptr); + public virtual void AddItemRange(IEnumerable item) + { + var OldCount = Count; + this.AddRange(item); + if (Count > Header.Count)//so atualiza se o contador for maior + { + Header.Count = (short)Count; + Update = true; + Debug.WriteLine($"IFFFile::AddItemRange: Atualizou o IFF, Contador=> Novo({Count}), Antigo({OldCount}) "); + } + } - Entries.Add(data); + public bool CheckItemSize(long size) + { + long recordLength = (size - 8L) / Header.Count; + if (recordLength != Marshal.SizeOf(CreateItem())) + { + throw new Exception( + $"The record({CreateItem().GetType().Name}) length ({recordLength}) mismatches the length of the passed structure ({Marshal.SizeOf(CreateItem())})"); + } + return true; + } + + /// + /// parses the *.iff file, if all goes well it should read all data present + /// + /// contains all Information about the *.iff file, size, item count, version, link id + /// if I get exception, I must have done something wrong, correct me please? + public virtual void Load(byte[] data) + { + PangyaBinaryReader Reader = null; + + try + { + Reader = new PangyaBinaryReader(new MemoryStream(data)); + Header = Reader.Read(); + CheckVersionIFF(); + CheckItemSize(Reader.GetSize()); + for (int i = 0; i < Header.Count; i++) + { + //reader object and convert is class IFF + var item = (T)Reader.Read(CreateItem()); + //add item in List + AddItem(item); } } + catch (Exception ex) + { + //show log error :( + MessageBox.Show(ex.Message); + } + finally + { + //is dispose memory :D + Reader.Dispose(); + } } + public virtual void Load(byte[] data, int _count) + { + PangyaBinaryReader Reader = null; + + try + { + Reader = new PangyaBinaryReader(new MemoryStream(data)); + + for (int i = 0; i < _count; i++) + { + //reader object and convert is class IFF + var item = (T)Reader.Read(CreateItem()); + //add item in List + AddItem(item); + } + } + catch (Exception ex) + { + //show log error :( + MessageBox.Show(ex.Message); + } + finally + { + //is dispose memory :D + Reader.Dispose(); + } + } + + /// + /// save list load in iff + /// + /// local file /// /// Save a IFFFile instance to a file /// /// File path to save the IFF file to public void Save(string filePath) { - using (BinaryWriter writer = new BinaryWriter(File.Open(filePath, FileMode.Create, FileAccess.Write))) + try { - writer.Write((ushort) Entries.Count); - writer.Write(BindingID); - writer.Write(Version); - - Entries.ForEach(entry => + using (PangyaBinaryWriter writer = new PangyaBinaryWriter()) { - int size = Marshal.SizeOf(entry); - byte[] arr = new byte[size]; - - IntPtr ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(entry, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - - writer.Write(arr); - }); + writer.WriteStruct(Header); + foreach (var entry in this) + { + writer.WriteStruct(entry); + } + writer.WriteFile(filePath); + Update = false; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); } } + + private string GetDebuggerDisplay() + { + return ToString(); + } + + protected virtual T CreateItem() + { + return (T)Activator.CreateInstance(typeof(T)); + } + + public virtual int GetSize() + { + return Marshal.SizeOf(CreateItem()); + } + + ~IFFFile() + { + } } + } diff --git a/PangLib.IFF/Models/Data/Ability.cs b/PangLib.IFF/Models/Data/Ability.cs new file mode 100644 index 0000000..460c657 --- /dev/null +++ b/PangLib.IFF/Models/Data/Ability.cs @@ -0,0 +1,22 @@ +using PangLib.IFF.Models.Flags; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct Ability.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Ability + { + public uint TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public uint[] Effect_Active { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public AbilityEffect[] Effect_Type { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public float[] Effect_Flag { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] + public byte[] Unknown_Object { get; set; } + public uint Flag1 { get; set; } + public uint Flag2 { get; set; } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/Achievement.cs b/PangLib.IFF/Models/Data/Achievement.cs new file mode 100644 index 0000000..f7bcc40 --- /dev/null +++ b/PangLib.IFF/Models/Data/Achievement.cs @@ -0,0 +1,39 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Models.Data +{ + #region Struct Achievement.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Achievement : IFFCommon + { + public uint TypeID_Quest_Index { get; set; } + public uint Achievement_Type { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName1 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName2 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName3 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName4 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName5 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName6 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName7 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName8 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] + public string QuestName9 { get; set; } + public short S_Unknown { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public uint[] Quest_TypeID { get; set; } + public uint T_Unknown { get; set; } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/AuxPart.cs b/PangLib.IFF/Models/Data/AuxPart.cs index aad2365..f0e839d 100644 --- a/PangLib.IFF/Models/Data/AuxPart.cs +++ b/PangLib.IFF/Models/Data/AuxPart.cs @@ -1,41 +1,35 @@ +using PangLib.IFF.Models.General; +using System; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + #region Struct AuxPart.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct AuxPart + public class AuxPart : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } - public byte Amount { get; set; } - public byte Unknown1 { get; set; } - public byte Unknown2 { get; set; } - public byte Unknown3 { get; set; } - public byte Unknown4 { get; set; } - public byte Unknown5 { get; set; } - public byte Unknown6 { get; set; } - public byte Unknown7 { get; set; } - public byte Unknown8 { get; set; } - public byte Unknown9 { get; set; } + public ushort Price1Day { get; set; } + public ushort Price7Day { get; set; } + public ushort Price15Day { get; set; } + public ushort Price30Day { get; set; } + public ushort Price365Day { get; set; } public byte Power { get; set; } public byte Control { get; set; } - public byte Accuracy { get; set; } + public byte Impact { get; set; } public byte Spin { get; set; } public byte Curve { get; set; } public byte PowerSlot { get; set; } public byte ControlSlot { get; set; } - public byte AccuracySlot { get; set; } + public byte ImpactSlot { get; set; } public byte SpinSlot { get; set; } public byte CurveSlot { get; set; } - public ushort ClubDistance { get; set; } - public ushort Luck { get; set; } - public ushort PowerGauge { get; set; } - public ushort PangBonus { get; set; } - public ushort ExperiencePercentage { get; set; } - public byte Unknown24 { get; set; } - public byte Unknown25 { get; set; } - public byte Unknown26 { get; set; } - public byte Unknown27 { get; set; } + public ushort Power_Drive { get; set; } + public ushort Drop_Rate { get; set; } + public ushort Power_Gauge { get; set; } + public ushort Pang_Rate { get; set; } + public ushort Exp_Rate { get; set; } + public ushort ItemSlot { get; set; } + public ushort Bonus_Pang { get; set; } + public ushort Bonus_Flag { get; set; } } + #endregion } diff --git a/PangLib.IFF/Models/Data/Ball.cs b/PangLib.IFF/Models/Data/Ball.cs index 55f52e2..de5406f 100644 --- a/PangLib.IFF/Models/Data/Ball.cs +++ b/PangLib.IFF/Models/Data/Ball.cs @@ -1,37 +1,52 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + #region Struct Ball.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Ball + public class Ball : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 36)] - public string Unknown1 { get; set; } + public uint Unknown0 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Texture { get; set; } + public string Model { get; set; } public uint Unknown2 { get; set; } public uint Unknown3 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence0 { get; set; } + public string BallFx1 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx2 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx3 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx4 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence1 { get; set; } + public string BallFx5 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence2 { get; set; } + public string BallFx6 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence3 { get; set; } + public string BallFx7 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence4 { get; set; } + public string BallFx8 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence5 { get; set; } + public string BallFx9 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string BallSequence6 { get; set; } + public string BallFx10 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string EffectName { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 240)] - public string Unknown4 { get; set; } - public uint PangBonus { get; set; } + public string BallFx11 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx12 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx13 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string BallFx14 { get; set; } + public ushort Power { get; set; } + public ushort Control { get; set; } + public ushort Impact { get; set; } + public ushort Spin { get; set; } + public ushort Curve { get; set; } + public ushort Unknown4 { get; set; } } +#endregion + } diff --git a/PangLib.IFF/Models/Data/Caddie.cs b/PangLib.IFF/Models/Data/Caddie.cs index 1764d84..f89d9cd 100644 --- a/PangLib.IFF/Models/Data/Caddie.cs +++ b/PangLib.IFF/Models/Data/Caddie.cs @@ -1,20 +1,22 @@ +using PangLib.IFF.Models.General; +using System; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + + #region Struct Caddie.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Caddie + public class Caddie : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } public uint Salary { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Model { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x27 + 1)] + public string MPet { get; set; } public ushort Power { get; set; } public ushort Control { get; set; } - public ushort Accuracy { get; set; } + public ushort Impact { get; set; } public ushort Spin { get; set; } public ushort Curve { get; set; } + public ushort Un4 { get; set; } } + #endregion } diff --git a/PangLib.IFF/Models/Data/CaddieItem.cs b/PangLib.IFF/Models/Data/CaddieItem.cs new file mode 100644 index 0000000..4a99607 --- /dev/null +++ b/PangLib.IFF/Models/Data/CaddieItem.cs @@ -0,0 +1,31 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; +using System; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + + #region Struct CaddieItem.iff + enum CaddieType : byte { + COOKIE, // CASH + PANG, // PANG + ESPECIAL, // ACHO, por que não tem nenhum item com esse, não vi pelo menos + UPGRADE +} +[StructLayout(LayoutKind.Sequential, Pack = 4)] + public class CaddieItem : IFFCommon + { + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Model { get; set; } + + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string TexTure { get; set; } + public UInt16 Price1Day { get; set; } + public UInt16 Price7Day { get; set; } + public UInt16 Price15Day { get; set; } + public UInt16 Price30Day { get; set; } + public uint unit_power_guage_start { get; set; } + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/CadieMagicBox.cs b/PangLib.IFF/Models/Data/CadieMagicBox.cs new file mode 100644 index 0000000..385dbd5 --- /dev/null +++ b/PangLib.IFF/Models/Data/CadieMagicBox.cs @@ -0,0 +1,55 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; +using System; +using System.Runtime.InteropServices; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; + +namespace PangLib.IFF.Models.Data +{ + #region Struct CadieMagicBox.iff + [Serializable] + public class CadieMagicBoxA : CadieMagicBox, ICloneable + { + public object Clone() + { + MemoryStream memoryStream = new MemoryStream(); + BinaryFormatter binaryFormatter = new BinaryFormatter(); + binaryFormatter.Serialize(memoryStream, this); + memoryStream.Seek(0L, SeekOrigin.Begin); + return binaryFormatter.Deserialize(memoryStream); + } + } + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class CadieMagicBox + { + public uint MagicID { get; set; }//index + public uint Enabled { get; set; }//valido + public CadieBoxSetor Page { get; set; }//showOnPage + public CadieBoxEnum BoxType { get; set; }// + public uint Level { get; set; }//okay + public uint ProdItem { get; set; } + public uint TypeID { get; set; } + public uint Quatity { get; set; } + // + + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public uint[] TradeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public uint[] TradeQuantity { get; set; } + public uint Box_Random_ID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)] + byte[] NameInBytes { get; set; }//8 start position + public string Name { get => Encoding.UTF7.GetString(NameInBytes); set => NameInBytes = Encoding.UTF7.GetBytes(value.PadRight(40, '\0')); } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime Start { get; set; } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime End { get; set; } + public bool Check() + { + return (DateTime.Compare(Start.Time, DateTime.Now) < 0) & (DateTime.Compare(End.Time, DateTime.Now) > 0); + } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/CadieMagicBoxRandom.cs b/PangLib.IFF/Models/Data/CadieMagicBoxRandom.cs new file mode 100644 index 0000000..6a60e39 --- /dev/null +++ b/PangLib.IFF/Models/Data/CadieMagicBoxRandom.cs @@ -0,0 +1,18 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file CadieMagicBoxRandom.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class CadieMagicBoxRandom + { + public uint Index { get; set; } + public uint TypeID { get; set; } + + public uint Qty { get; set; } + + public uint Rate { get; set; } + } +} diff --git a/PangLib.IFF/Models/Data/Card.cs b/PangLib.IFF/Models/Data/Card.cs index 0c0257a..e13e389 100644 --- a/PangLib.IFF/Models/Data/Card.cs +++ b/PangLib.IFF/Models/Data/Card.cs @@ -1,23 +1,22 @@ -using System.Runtime.InteropServices; +using PangLib.IFF.Models.General; using PangLib.IFF.Models.Flags; -using PangLib.IFF.Models.General; - +using System; +using System.Runtime.InteropServices; namespace PangLib.IFF.Models.Data { + #region Struct Card.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Card + public class Card : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } public byte Rarity { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Texture { get; set; } + public string MPet { get; set; } public ushort PowerSlot { get; set; } public ushort ControlSlot { get; set; } public ushort AccuracySlot { get; set; } public ushort SpinSlot { get; set; } public ushort CurveSlot { get; set; } - public CardEffectFlag Effect { get; set; } + public ushort Effect { get; set; } public ushort EffectValue { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string AdditionalTexture1 { get; set; } @@ -26,7 +25,146 @@ public struct Card [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string AdditionalTexture3 { get; set; } public ushort EffectTime { get; set; } - public ushort Volume { get; set; } - public ushort CardID { get; set; } + public ushort Volumn { get; set; } + public UInt32 Position { get; set; } + public uint flag1 { get; set; } // !@flag que guarda alguns valores de de N, R, SR, SC e etc + public uint flag2 { get; set; } // flag que guarda alguns valores de de N, R, SR, SC e etc + + public bool IsCardPack() + { + switch (ID) + { + case 2088763415: + case 2092957696: + case 2092957697: + case 2092957698: + case 2092957699: + case 2092957702: + case 2092957700: + + case 2092957701: + + case 2092957703: + + case 2092957704: + + case 2092957705: + case 2092957706: + case 2097152000: + case 2097152002: + case 2097152003: + case 2092957707: + + case 2092957708: + + case 2092957709: + + case 2092957710: + + case 2092957711: + + case 2092957712: + + case 2092957713: + + case 2092957714: + + case 2092957715: + + case 2092957716: + + case 2092957717: + + case 2092957718: + + case 2092957719: + + case 2092957720: + + case 2092957721: + + case 2092957722: + + case 2092957723: + case 2092957724: + return true; + default: + return false; + } + } + + public string GetTypeEffect() + { + var s = new string[] { + "None", + "Single Use", + "% Pang 1", + "% Pang 2 ", + "% EXP", + "Test 5",//pode ser yard + "Cadie (Super Card)",//pode ser gauge,6 + "Cadie (Normal 1)",//pode ser Pangya Zone Impact(7 + "Cadie (SuperRare)",//pode ser Treasure,8 + "Cadie (Normal 2)",//pode ser Treasure,9 + "Cadie (Medium)",//pode ser Treasure,10 + "Cadie (high)", + "Temporary", + "Sepia Wind [Bonus]", + "Wind Hill [Bonus]", + "Pink Wind [Bonus]", +"Blue Moon [Bonus]", + "Pang Pouch[Bonus Random]", + "Treasure Point [Bonus]", + "Chance Rain [Bonus]", + "Blue Lagoon [Bonus]", + "Blue Walter [Bonus]", + "Shining Sand [Bonus]", + "Deep Inferno [Bonus]", + "Silva Cannon [Bonus]", + "Easten Valley [Bonus]", + "Lost Seaway [Bonus]", + "Inventory [Item Slot]", + "StartingGauge [Bonus]", + "Ice Inferno [Bonus]", + "Wiz City [Bonus]", + "Chance Rain [Bonus]", + "Spin [Bonus]", + "Curve [Bonus]", + "Pangya Impact Zone", + "Yard [Bonus]", + "Pangya Combo Gauge [Bonus]", + "+2 Hole Rain [Bonus]", + "% Experience", + "Power [Bonus]", + "Control Slot [Bonus]" }; + switch (Effect) + { + case 0: + { + return s[Effect]; + } + default: + break; + } + if (Rarity == 2 && flag1 == 2 && flag2 == 1) + { + return " -2 Yard [Penality]"; + } + if (Rarity == 3 && flag1 == 3 && flag2 == 1) + { + return " -1 Yard [Penality]"; + } + if (Rarity == 0 && flag1 == 2 && flag2 == 1) + { + return "Control +1"; + } + if (Rarity == 1 && flag1 == 2 && flag2 == 1) + { + return "Control +2"; + } + + return s[1]; + } } + #endregion } diff --git a/PangLib.IFF/Models/Data/Character.cs b/PangLib.IFF/Models/Data/Character.cs index c507631..9f549ab 100644 --- a/PangLib.IFF/Models/Data/Character.cs +++ b/PangLib.IFF/Models/Data/Character.cs @@ -1,15 +1,15 @@ +using PangLib.IFF.Models.General; +using System.IO; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + + #region Struct Character.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Character + public class Character : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Model { get; set; } + public string MPet { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string Texture1 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] @@ -18,24 +18,24 @@ public struct Character public string Texture3 { get; set; } public ushort Power { get; set; } public ushort Control { get; set; } - public ushort Accuracy { get; set; } + public ushort Impact { get; set; } public ushort Spin { get; set; } public ushort Curve { get; set; } public byte PowerSlot { get; set; } public byte ControlSlot { get; set; } - public byte AccuracySlot { get; set; } + public byte ImpactSlot { get; set; } public byte SpinSlot { get; set; } public byte CurveSlot { get; set; } - public byte Unknown1 { get; set; } - public uint RankS { get; set; } - public byte RankSPowerSlot { get; set; } - public byte RankSControlSlot { get; set; } - public byte RankSAccuracySlot { get; set; } - public byte RankSSpinSlot { get; set; } - public byte RankSCurveSlot { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string AdditionalTexture { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3)] - public string Unknown2 { get; set; } + public byte Un1 { get; set; } + public float Scale_club_set { get; set; } + public byte Stat1 { get; set; } + public byte Stat2 { get; set; } + public byte Stat3 { get; set; } + public byte Stat4 { get; set; } + public byte Stat5 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 43)] + public string Texture4 { get; set; } + } + #endregion } diff --git a/PangLib.IFF/Models/Data/Club.cs b/PangLib.IFF/Models/Data/Club.cs index 0d7c58b..847cf87 100644 --- a/PangLib.IFF/Models/Data/Club.cs +++ b/PangLib.IFF/Models/Data/Club.cs @@ -1,14 +1,23 @@ +using PangLib.IFF.Models.General; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + + #region Struct Club.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Club + public class Club : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Model { get; set; } + public string MPet { get; set; } + public ushort ClubType { get; set; } + public ushort Power { get; set; } + public ushort Control { get; set; } + public ushort Impact { get; set; } + public ushort Spin { get; set; } + public ushort Curve { get; set; } + } + #endregion + } diff --git a/PangLib.IFF/Models/Data/ClubSet.cs b/PangLib.IFF/Models/Data/ClubSet.cs index c4374e9..4a7d4f9 100644 --- a/PangLib.IFF/Models/Data/ClubSet.cs +++ b/PangLib.IFF/Models/Data/ClubSet.cs @@ -1,26 +1,49 @@ +using PangLib.IFF.Models.General; +using System; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + #region Struct ClubSet.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct ClubSet + public class ClubSet : IFFCommon { + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class ClubType + { + public uint Wood { get; set; } + public uint Iron { get; set; } + public uint Wedge { get; set; } + public uint Putter { get; set; } + } [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } - public uint WoodID { get; set; } - public uint IronID { get; set; } - public uint WedgeID { get; set; } - public uint PutterID { get; set; } + public ClubType Club { get; set; } public ushort Power { get; set; } public ushort Control { get; set; } - public ushort Accuracy { get; set; } + public ushort Impact { get; set; } public ushort Spin { get; set; } public ushort Curve { get; set; } public ushort PowerSlot { get; set; } public ushort ControlSlot { get; set; } - public ushort AccuracySlot { get; set; } + public ushort ImpactSlot { get; set; } public ushort SpinSlot { get; set; } public ushort CurveSlot { get; set; } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class WorkShop + { + public uint tipo { get; set; } + public uint rank_s_stat { get; set; } + public uint total_recovery { get; set; } + public float rate { get; set; } + public uint tipo_rank_s { get; set; } + public uint flag_transformar { get; set; } + // Adicione outras propriedades/flags conforme necessário + } + [field: MarshalAs(UnmanagedType.Struct)] + public WorkShop work_shop { get; set; } + public uint ulUnknown { get; set; } + public uint text_pangya { get; set; } } + #endregion + } diff --git a/PangLib.IFF/Models/Data/Course.cs b/PangLib.IFF/Models/Data/Course.cs index f8ae04e..140db17 100644 --- a/PangLib.IFF/Models/Data/Course.cs +++ b/PangLib.IFF/Models/Data/Course.cs @@ -1,22 +1,32 @@ +using PangLib.IFF.Models.General; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + /// + /// Is Struct file Course.iff + /// [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Course + public class Course : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string ShortName { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string LocalizedName { get; set; } - public byte CourseFlag { get; set; } + public string Mpet { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string PropertyFileName { get; set; } - public uint Unknown1 { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string CourseSequence { get; set; } + public string Gbin { get; set; } + public byte Star { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 43)] + public string XML { get; set; } + public float RatePang { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)] + public byte[] Seq { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] + public uint[] ulUnknown { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)] + public byte[] Par_Hole { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)] + public byte[] Min_Score_Hole { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)] + public byte[] Max_Score_Hole { get; set; } + public ushort usUnknown { get; set; } + } } diff --git a/PangLib.IFF/Models/Data/CutinInfomation.cs b/PangLib.IFF/Models/Data/CutinInfomation.cs new file mode 100644 index 0000000..c66ee1f --- /dev/null +++ b/PangLib.IFF/Models/Data/CutinInfomation.cs @@ -0,0 +1,29 @@ +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct CutinInformation.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class CutinInformation + { + public uint Enable { get; set; } + public uint TypeID { get; set; } + public uint Seq { get; set; } + public uint Sector { get; set; } + public uint Num1 { get; set; } + public uint Num2 { get; set; } + public uint NumImg1 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string IMG1 { get; set; } + public uint NumImg2 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string IMG2{ get; set; } + public uint NumImg3 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string IMG3; + public uint Time { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 41)] + public byte[] UN { get; set; } + public uint Num4 { get; set; } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/Desc.cs b/PangLib.IFF/Models/Data/Desc.cs index 2c603f6..e1d31b9 100644 --- a/PangLib.IFF/Models/Data/Desc.cs +++ b/PangLib.IFF/Models/Data/Desc.cs @@ -1,12 +1,32 @@ +using System; using System.Runtime.InteropServices; +using System.Text; namespace PangLib.IFF.Models.Data { + + #region Struct Desc.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Desc + public class Desc { - public uint ID { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)] - public string Text { get; set; } + public uint TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)] + byte[] DescriptionInBytes { get; set; }//4 start position + public string Description + { + get + { + return Encoding.UTF7.GetString(DescriptionInBytes).Replace("\0", ""); + } + set + { + + DescriptionInBytes = new byte[512]; + Buffer.BlockCopy(Encoding.UTF7.GetBytes(value), 0, DescriptionInBytes, 0, Math.Min(value.Length, 64)); + } + } + } + #endregion + } diff --git a/PangLib.IFF/Models/Data/Enchant.cs b/PangLib.IFF/Models/Data/Enchant.cs index b678140..29a9410 100644 --- a/PangLib.IFF/Models/Data/Enchant.cs +++ b/PangLib.IFF/Models/Data/Enchant.cs @@ -1,12 +1,16 @@ +using PangLib.IFF.Models.General; +using System; using System.Runtime.InteropServices; - namespace PangLib.IFF.Models.Data { + /// + /// Is Struct file Enchant.iff + /// [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Enchant + public class Enchant { - public uint Active { get; set; } - public uint ID { get; set; } - public uint Price { get; set; } + public uint Enable { get; set; } + public uint TypeID { get; set; } + public long Pang { get; set; } } } diff --git a/PangLib.IFF/Models/Data/Furniture.cs b/PangLib.IFF/Models/Data/Furniture.cs new file mode 100644 index 0000000..8e573bd --- /dev/null +++ b/PangLib.IFF/Models/Data/Furniture.cs @@ -0,0 +1,24 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file Furniture.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Furniture : IFFCommon + { + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Model { get; set; } + public ushort Unknown { get; set; } + public ushort Unknown2 { get; set; } + public ushort Unknown3 { get; set; } + public ushort Unknown4 { get; set; } + public uint Unknown5 { get; set; } + public uint Unknown6 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)] + public string Texture { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 132)] + public string Texture2 { get; set; } + } +} diff --git a/PangLib.IFF/Models/Data/FurnitureAbility.cs b/PangLib.IFF/Models/Data/FurnitureAbility.cs new file mode 100644 index 0000000..530c4f5 --- /dev/null +++ b/PangLib.IFF/Models/Data/FurnitureAbility.cs @@ -0,0 +1,23 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file FurnitureAbility.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class FurnitureAbility + { + public uint Enabled { get; set; } + public uint TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] Unknown { get; set; } + [field: MarshalAs(UnmanagedType.Struct)] + public IFFTime StartTime { get; set; } + public uint Unknown2 { get; set; } + public uint TypeID_Item { get; set; } + public uint Price { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public byte[] Unknown3 { get; set; } + } +} diff --git a/PangLib.IFF/Models/Data/GrandPrixData.cs b/PangLib.IFF/Models/Data/GrandPrixData.cs new file mode 100644 index 0000000..be86467 --- /dev/null +++ b/PangLib.IFF/Models/Data/GrandPrixData.cs @@ -0,0 +1,235 @@ +using PangLib.IFF.Models.Flags; +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Models.Data +{ + #region Struct GrandPrixData.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class GrandPrixData + { + public uint Enabled { get; set; } + public uint TypeID { get; set; } + public uint TypeID_Link { get; set; } + public GP_ABA TypeGP { get; set; } + public ushort TimeHole { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 66)]//is 64, 2 short unknown + public byte[] NameInBytes { get; set; } + public string Name { get => Encoding.UTF7.GetString(NameInBytes).Replace("\0", ""); set => NameInBytes = Encoding.UTF7.GetBytes(value.PadRight(66, '\0')); } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 8)] + public Ticket ticket { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 41)] + public string Event_Icon { get; set; }//[39 + 1]; + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 3)] + public Flag flag { get; set; } + public uint rule { get; set; } + + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 9)] + public CourseInfo course_info { get; set; } + public byte MinLevel { get; set; } + public byte MaxLevel { get; set; } + public byte Unknown0 { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] condition { get; set; } + + + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 12)] + public BOT bot { get; set; } + public uint _class { get; set; } + public uint pang { get; set; } + + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 40)] + public Reward reward { get; set; } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime Open { get; set; } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime Start { get; set; } + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime End { get; set; } + public uint Unknown1 { get; set; } + public uint Clear_GP_TypeID { get; set; } + public uint Lock_YN { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 516)] + byte[] InfoBytes { get; set; }//8 start position + public string Info { get => Encoding.UTF7.GetString(InfoBytes).Replace("\0", ""); set => InfoBytes = Encoding.UTF7.GetBytes(value.PadRight(516, '\0')); } + public GrandPrixData() + + { + Enabled = 0; + TypeID = 0; + TypeID_Link = 0; + TypeGP = GP_ABA.ROOKIE; // You need to assign a value to this property based on its type + TimeHole = 0; + Name = string.Empty; + ticket = new Ticket(); + Event_Icon = string.Empty; + flag = new Flag(); + rule = 0; + course_info = new CourseInfo(); + MinLevel = 0; + MaxLevel = 0; + Unknown0 = 0; + condition = new uint[2]; + bot = new BOT(); + _class = 0; + pang = 0; + reward = new Reward + { + _typeid = new uint[5], + qntd = new uint[5], + time = new uint[5] + }; + Open = new IFFTime(); // You need to assign a value to this property based on its type + Start = new IFFTime(); // You need to assign a value to this property based on its type + End = new IFFTime(); // You need to assign a value to this property based on its type + Unknown1 = 0; + Clear_GP_TypeID = 0; + Lock_YN = 0; + Info = string.Empty; + } + + public bool IsGPEvent() + { + return TypeGP == GP_ABA.EVENT || Open.Year >0 && Start.Year>0 && End.Year>0; + } + //tempo ja acabou + public bool Check() + { + var a = Open.Hour > 0 || Open.Minute > 0; + var b = Start.Hour > 0 || Start.Minute > 0; + var c = End.Hour > 0 || End.Minute > 0; + return a || b & c; + } + public GrandPrixData CreateEvent() + { + Enabled = 1; + TypeID = 51947265; + TypeID_Link = 51947264; + TypeGP = GP_ABA.EVENT; + TimeHole = 0; + Name = "Evento de Iniciante"; + ticket = new Ticket + { + _typeid = 436208228, + qntd = 3 + }; + //event_common01 primeiro, + + Event_Icon = "2017whiteday_event";//sao 3 + flag = new Flag + { + Natural_Mode = true, + Shot_Mode = false, + Hole_cup_x2 = 1 + }; + course_info = new CourseInfo + { + Course = 0, + Modo = 0, + Qntd_hole = 18 + }; + MinLevel = 0; + MaxLevel = 0; + Unknown0 = 0; + condition = new uint[2] { 59, 180}; + bot = new BOT + { + ScoreBotMax = -21, + ScoreBotMed = 2, + ScoreBotMin = 8 + }; + _class = 2; + pang = 600; + reward = new Reward + { + _typeid = new uint[5] { 436207632 , 335544470 , 436208243,0,0 }, + qntd = new uint[5] { 600 ,20,3, 0, 0 }, + time = new uint[5] + }; + rule = 436208271; + Open = new IFFTime + { + Hour = 0, + Minute = 15 + }; + Start = new IFFTime + { + Hour = 0, + Minute = 25 + }; + End = new IFFTime + { + Hour = 1, + Minute = 15 + }; + Unknown1 = 0; + Clear_GP_TypeID = 0; + Lock_YN = 0; + Info = "Grande Premio Evento [GameRaze]"; + return this; + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class Ticket + { + public uint _typeid { get; set; } + public uint qntd { get; set; } + } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class Flag + { + [field: MarshalAs(UnmanagedType.U1, SizeConst = 1)] + public bool Natural_Mode { get; set; } + [field: MarshalAs(UnmanagedType.U1, SizeConst = 1)] + public bool Shot_Mode { get; set; } + public byte Hole_cup_x2 { get; set; } + } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class CourseInfo + { + public uint Course { get; set; } + public uint Modo { get; set; } + public byte Qntd_hole { get; set; } + } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class BOT + { + public int ScoreBotMax { get; set; } + public int ScoreBotMed { get; set; } + public int ScoreBotMin { get; set; } + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class Reward + { + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] _typeid { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] qntd { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] time { get; set; } + public int GetQuantity() + { + + int count = 0; + + for (int i = 0; i < qntd.Length; i++) + { + if (qntd[i] > 0) + { + count++; + } + } + return count; + } + public bool SetQuantity(int idx, uint qtd) + { + qntd[idx] = qtd; + + return qntd[idx] > 0; + } + } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/GrandPrixRankReward.cs b/PangLib.IFF/Models/Data/GrandPrixRankReward.cs new file mode 100644 index 0000000..2ef36a1 --- /dev/null +++ b/PangLib.IFF/Models/Data/GrandPrixRankReward.cs @@ -0,0 +1,23 @@ +using System.Runtime.InteropServices; + +namespace PangLib.IFF.Models.Data +{ + #region Struct GrandPrixRankReward.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + + public class GrandPrixRankReward + { + public uint Enable { get; set; } + public uint TypeID { get; set; } + public uint Rank { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] RewardTypeID; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] Quantity; + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] + public string Unknown { get; set; } + public uint Trophy { get; set; } + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/GrandPrixSpecialHole.cs b/PangLib.IFF/Models/Data/GrandPrixSpecialHole.cs new file mode 100644 index 0000000..6680bb9 --- /dev/null +++ b/PangLib.IFF/Models/Data/GrandPrixSpecialHole.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace PangLib.IFF.Models.Data +{ + #region Struct GrandPrixSpecialHole.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class GrandPrixSpecialHole + { + public UInt32 Enable { get; set; } + public UInt32 TypeID { get; set; } + public UInt32 HolePOS { get; set; } + public UInt32 Map { get; set; } + public UInt32 Hole { get; set; } + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/HairStyle.cs b/PangLib.IFF/Models/Data/HairStyle.cs index b12d0e0..a3f779a 100644 --- a/PangLib.IFF/Models/Data/HairStyle.cs +++ b/PangLib.IFF/Models/Data/HairStyle.cs @@ -1,14 +1,16 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; +using System; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + #region Struct HairStyle.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct HairStyle + public class HairStyle : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } - public uint Unknown1 { get; set; } - public uint HairStyleID { get; set; } + public byte Color { get; set; } + public CharTypeByHairColor Character { get; set; } + public ushort Blank { get; set; } } + #endregion } diff --git a/PangLib.IFF/Models/Data/Item.cs b/PangLib.IFF/Models/Data/Item.cs new file mode 100644 index 0000000..18b2c41 --- /dev/null +++ b/PangLib.IFF/Models/Data/Item.cs @@ -0,0 +1,21 @@ +using PangLib.IFF.Models.General; +using System; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct Item.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Item : IFFCommon + { + public uint ItemType { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Model { get; set; } + public ushort Power { get; set; } + public ushort Control { get; set; } + public ushort Accuracy { get; set; } + public ushort Spin { get; set; } + public ushort Curve { get; set; } + public ushort Un1 { get; set; } + } + #endregion +} \ No newline at end of file diff --git a/PangLib.IFF/Models/Data/LevelUpPrizeItem.cs b/PangLib.IFF/Models/Data/LevelUpPrizeItem.cs new file mode 100644 index 0000000..874b757 --- /dev/null +++ b/PangLib.IFF/Models/Data/LevelUpPrizeItem.cs @@ -0,0 +1,35 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; +using System; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Models.Data +{ + + + + #region Struct LevelUpItem.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class LevelUpPrizeItem + { + public byte Active { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 33)] + byte[] NameInBytes { get; set; }//8 start position + public string Name { get => Encoding.UTF7.GetString(NameInBytes); set => NameInBytes = Encoding.UTF7.GetBytes(value.PadRight(33, '\0')); } + + public ushort Level { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] TypeID; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] Quantity; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] Time; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 132)] + byte[] DescriptionInBytes { get; set; }//8 start position + public string Description { get => Encoding.UTF7.GetString(DescriptionInBytes); set => DescriptionInBytes = Encoding.UTF7.GetBytes(value.PadRight(132, '\0')); } + + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/Mascot.cs b/PangLib.IFF/Models/Data/Mascot.cs index 436d7ef..c532d7a 100644 --- a/PangLib.IFF/Models/Data/Mascot.cs +++ b/PangLib.IFF/Models/Data/Mascot.cs @@ -1,20 +1,41 @@ +using PangLib.IFF.Models.General; using System.Runtime.InteropServices; -using PangLib.IFF.Models.General; - namespace PangLib.IFF.Models.Data { + #region Struct Mascot.iff [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Mascot + public class Mascot : IFFCommon { - [field: MarshalAs(UnmanagedType.Struct)] - public IFFCommon Header { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Texture1 { get; set; } + public string MPet { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Texture2 { get; set; } + public string Texture1 { get; set; } public ushort Price1Day { get; set; } public ushort Price7Day { get; set; } - public ushort Unknown1 { get; set; } + public ushort Price15Day { get; set; } + public ushort PriceUnknownDay { get; set; } public ushort Price30Day { get; set; } + public byte Power { get; set; } + public byte Control { get; set; } + public byte Impact { get; set; } + public byte Spin { get; set; } + public byte Curve { get; set; } + public byte Power_Drive { get; set; } + public byte Drop_Rate { get; set; } + public byte Power_Gauge { get; set; } + public byte Pang_Rate { get; set; } + public byte Exp_Rate { get; set; } + public byte ItemSlot { get; set; } + public ushort Active_Message { get; set; } + public ushort Flag_Message { get; set; } + public uint Change_Price { get; set; } + public ushort Bonus_Pang { get; set; } + public ushort Bonus_Flag { get; set; } + public ushort GetDay() + { + return 7; + } } + #endregion + } diff --git a/PangLib.IFF/Models/Data/Match.cs b/PangLib.IFF/Models/Data/Match.cs index c9528ef..58e2af5 100644 --- a/PangLib.IFF/Models/Data/Match.cs +++ b/PangLib.IFF/Models/Data/Match.cs @@ -1,20 +1,34 @@ +using PangLib.IFF.Models.Flags; using System.Runtime.InteropServices; +using System.Text; namespace PangLib.IFF.Models.Data { + /// + /// Is Struct file Match.iff + /// [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct Match + public class Match { - public uint Active { get; set; } - public uint ID { get; set; } - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] - public string Name { get; set; } - public byte Level { get; set; } + public uint Enable { get; set; } + public uint TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)] + byte[] NameInBytes { get; set; } + public string Name { get => Encoding.UTF7.GetString(NameInBytes).Replace("\0", ""); set => NameInBytes = Encoding.UTF7.GetBytes(value.PadRight(80, '\0')); } + public ItemLevelEnum Level { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string TrophyTexture1 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string TrophyTexture2 { get; set; } [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string TrophyTexture3 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string TrophyTexture4 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string TrophyTexture5 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string TrophyTexture6 { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public byte[] Blank { get; set; } } } diff --git a/PangLib.IFF/Models/Data/MemorialShopCoinItem.cs b/PangLib.IFF/Models/Data/MemorialShopCoinItem.cs new file mode 100644 index 0000000..cdedebe --- /dev/null +++ b/PangLib.IFF/Models/Data/MemorialShopCoinItem.cs @@ -0,0 +1,61 @@ +using PangLib.IFF.Models.Flags; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace PangLib.IFF.Models.Data +{ + #region Struct MemorialShopCoinItem.sff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class MemorialShopCoinItem + { + public uint Enable { get; set; }//4 + public uint TypeID { get; set; }//8 + public FilterCoinType CoinType { get; set; }//0 normal//12 + public uint Probabilities { get; set; }//16 + public uint Number { get; set; }//20 + public uint NumberMax { get; set; }//24 + public FilterType ItemType { get; set; }//9-28 + public uint Sex { get; set; }//Count??8-32 + public uint Value_1 { get; set; }//7-36 + public uint Item { get; set; }//6-40 + public uint CharacterType { get; set; }//5-44 + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public int[] filter { get; set; } + public bool empty() + { + return (Number == 0 && NumberMax == 0); + } + public bool isBetweenGacha(uint _number) + { + return (Number <= _number && _number <= NumberMax); + } + public bool hasFilter(int _filter) + { + var New_filter = new int[] { (int)ItemType, (int)Sex, (int)Value_1, (int)Item, (int)CharacterType, filter[0], filter[1], filter[2], filter[3], filter[4], }; + if (_filter == 0) + return false; + + for (var i = 0u; i < 10; ++i) + if (New_filter[i] == _filter) + return true; + + return false; + } + public bool emptyFilter() + { + var New_filter = new int[] { (int)ItemType, (int)Sex, (int)Value_1, (int)Item, (int)CharacterType, filter[0], filter[1], filter[2], filter[3], filter[4], }; + int count = 0; + + for (var i = 0u; i < 10; ++i) + count += New_filter[i]; + + return count == 0; + } + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/MemorialShopRareItem.cs b/PangLib.IFF/Models/Data/MemorialShopRareItem.cs new file mode 100644 index 0000000..36cea98 --- /dev/null +++ b/PangLib.IFF/Models/Data/MemorialShopRareItem.cs @@ -0,0 +1,167 @@ +using PangLib.IFF.Models.Flags; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace PangLib.IFF.Models.Data +{ + + + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class MemorialShopRareItem_GB + { + public uint Enabled { get; set; } + public uint Number { get; set; } + public uint Count { get; set; } + public uint TypeID { get; set; } + public uint Probabilities { get; set; } + public MemorialRareType RareType { get; set; }// Tipo Raro, EX: -1 - 0 normal, 1 - 2 raro, 3 - 4 Super raro + public FilterType ItemType { get; set; } + public uint Sex { get; set; } + public uint Value_1 { get; set; } + public uint Item { get; set; } + public CharacterType CharacterType { get; set; } + + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)] + public byte[] B_Bytes; + } + #region Struct MemorialRareItem.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + + public class MemorialShopRareItem + { + public uint Enabled { get; set; } + public uint Number { get; set; } + public uint Count { get; set; } + public uint TypeID { get; set; } + public uint Probabilities { get; set; } + public MemorialRareType RareType { get; set; }// Tipo Raro, EX: -1 - 0 normal, 1 - 2 raro, 3 - 4 Super raro + public FilterType ItemType { get; set; } + public FilterType Sex { get; set; } + public FilterType Value_1 { get; set; } + public FilterType Item { get; set; } + public FilterType CharacterType { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public int[] filter { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]//28 se for byte + public string Version { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]//28 se for byte + public int[] Null_Bytes { get; set; } + public MemorialShopRareItem New() + { + filter = new int[5]; + Version = "S99"; + Null_Bytes = new int[6]; + return this; + } + public int[] getFilter() + { + var New_filter = new int[] { (int)ItemType, (int)Sex, (int)Value_1, (int)Item, (int)CharacterType, filter[0], filter[1], filter[2], filter[3], filter[4], }; + + return New_filter; + } + public FilterType GetItemType(string type) + { + switch (type) + { + case "SPRING": + return FilterType.SPRING; + case "SUMMER": + return FilterType.SUMMER; + case "FALL": + return FilterType.FALL; + case "WINTER": + return FilterType.WINTER; + case "CLUBSET": + return FilterType.CLUBSET; + case "SETITEM": + return FilterType.SETITEM; + case "EAR": + return FilterType.EAR; + case "WING": + return FilterType.WING; + case "LUVA": + return FilterType.LUVA; + case "RING_R": + return FilterType.RING_R; + case "RING_L": + return FilterType.RING_L; + case "CADDIE": + return FilterType.CADDIE; + case "MASCOT": + return FilterType.MASCOT; + case "SUMMER_HOLYDAY": + return FilterType.SUMMER_HOLYDAY; + case "XMAS": + return FilterType.XMAS; + case "HALLOWEEN": + return FilterType.HALLOWEEN; + case "MAN": + return FilterType.MAN; + case "WOMAN": + return FilterType.WOMAN; + case "NURI": + return FilterType.NURI; + case "HANA": + return FilterType.HANA; + case "AZER": + return FilterType.AZER; + case "CECI": + return FilterType.CECI; + case "MAX": + return FilterType.MAX; + case "KOOH": + return FilterType.KOOH; + case "ARIN": + return FilterType.ARIN; + case "KAZ": + return FilterType.KAZ; + case "LUCIA": + return FilterType.LUCIA; + case "NELL": + return FilterType.NELL; + case "SPIKA": + return FilterType.SPIKA; + case "NURI_R": + return FilterType.NURI_R; + case "HANA_R": + return FilterType.HANA_R; + case "AZER_R": + return FilterType.AZER_R; + case "CECI_R": + return FilterType.CECI_R; + default: + break; + } + return 0; + } + + public MemorialRareType GetMemorialRareType(string type) + { + switch (type) + { + case "Default": + return MemorialRareType.Default; + case "Normal": + return MemorialRareType.Normal_Rare0; + case "NRare": + return MemorialRareType.Normal_Rare1; + case "NRare2": + return MemorialRareType.Normal_Rare2; + case "SR1": + return MemorialRareType.Super_Rare1; + case "SR2": + return MemorialRareType.Super_Rare2; + default: + break; + } + return 0; + } + + + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/Part.cs b/PangLib.IFF/Models/Data/Part.cs new file mode 100644 index 0000000..87f86c4 --- /dev/null +++ b/PangLib.IFF/Models/Data/Part.cs @@ -0,0 +1,65 @@ +using PangLib.IFF.Models.Flags; +using PangLib.IFF.Models.General; +using System; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Models.Data +{ + #region Struct Part.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Part : IFFCommon + { + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string MPet { get; set; } + public PartType type_item { get; set; }// o tipo do item, 0, 2 normal, 8 e 9 UCC, 5 acho que é base ou commom Item + public uint PosMask { get; set; } + public uint HideMask { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture1 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture2 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture3 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture4 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture5 { get; set; } + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string Texture6 { get; set; } + public ushort Power { get; set; } + public ushort Control { get; set; } + public ushort Impact { get; set; } + public ushort Spin { get; set; } + public ushort Curve { get; set; } + public ushort PowerSlot { get; set; } + public ushort ControlSlot { get; set; } + public ushort ImpactSlot { get; set; } + public ushort SpinSlot { get; set; } + public ushort CurveSlot { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)] + byte[] _EquippableWith { get; set; } + public string EquippableWith + { + get => Encoding.UTF7.GetString(_EquippableWith).Replace("\0", ""); + set => _EquippableWith = Encoding.UTF7.GetBytes(value.PadRight(64, '\0')); + } + public uint SubPart1 { get; set; } + public uint SubPart2 { get; set; } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class CardSlot + { + public ushort Slot_Char { get; set; }//Bonus Char Slot + public ushort Slot_Caddie { get; set; }//Bonus Card Slot + } + [field: MarshalAs(UnmanagedType.Struct)] + public CardSlot _CardSlot { get; set; } + public uint Points { get; set; }//mastery points? + public uint RentPang { get; set; } + public uint Un1 { get; set; } + public uint EquipmentCategory { get => Convert.ToUInt32(type_item); set => type_item = (PartType)value; } + + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/QuestItem.cs b/PangLib.IFF/Models/Data/QuestItem.cs new file mode 100644 index 0000000..b86f90d --- /dev/null +++ b/PangLib.IFF/Models/Data/QuestItem.cs @@ -0,0 +1,26 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + + + #region Struct QuestItem.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class QuestItem : IFFCommon + { + public uint Unknown { get; set; } + public uint Quest_Type { get; set; } + public uint Quest_Counter { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public uint[] Quest_TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] Reward_Item_TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] Reward_Item_Qtnd { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public uint[] Reward_Item_Time { get; set; } + public uint Unknown1 { get; set; } + + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/QuestStuff.cs b/PangLib.IFF/Models/Data/QuestStuff.cs new file mode 100644 index 0000000..69427b9 --- /dev/null +++ b/PangLib.IFF/Models/Data/QuestStuff.cs @@ -0,0 +1,24 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct QuestStuff.iff + + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class QuestStuff : IFFCommon + { + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] Counter_Item_TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] Counter_Item_Qtnd { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public uint[] Reward_Item_TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public uint[] Reward_Item_Qtnd { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public uint[] Reward_Item_Time { get; set; } + } + + #endregion + +} diff --git a/PangLib.IFF/Models/Data/SetEffectTable.cs b/PangLib.IFF/Models/Data/SetEffectTable.cs new file mode 100644 index 0000000..2eca502 --- /dev/null +++ b/PangLib.IFF/Models/Data/SetEffectTable.cs @@ -0,0 +1,40 @@ +using PangLib.IFF.Models.Flags; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct SetEffectTable.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class SetEffectTable + { + public uint ID { get; set; } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public class Effect + { + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public eEFFECT[] effect { get; set; } // eEFFECT = Effect[0~2] é o da descrição em cima + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public eEFFECT_TYPE[] type { get; set; }// eEFFECT_TYPE = type[0~2], 2 Game, 4 Room e 8 Lounge + } + [field: MarshalAs(UnmanagedType.Struct)] + public Effect effect { get; set; } + [StructLayout(LayoutKind.Sequential, Pack = 1)] + + public class Item + { + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public uint[] TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] + public byte[] Active { get; set; } + public bool IsActive(int idx) + { + return Active[idx] > 0; + } + } + [field: MarshalAs(UnmanagedType.Struct)] + public Item item { get; set; } + public byte Slot { get; set; } + public byte Effect_Add_Power { get; set; } // Força sem penalidade + public uint Unk { get; set; } // Força sem penalidade + } + #endregion +} diff --git a/PangLib.IFF/Models/Data/SetItem.cs b/PangLib.IFF/Models/Data/SetItem.cs new file mode 100644 index 0000000..94ce644 --- /dev/null +++ b/PangLib.IFF/Models/Data/SetItem.cs @@ -0,0 +1,34 @@ +using PangLib.IFF.Models.General; +using System; +using System.Runtime.InteropServices; +using PangLib.IFF.Models.Flags; +namespace PangLib.IFF.Models.Data +{ + #region Struct SetItem.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class SetItem : IFFCommon + { + public uint Total { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public uint[] Item_TypeID { get; set; } + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] + public ushort[] Item_Qty { get; set; } + public ushort Power { get; set; } + public ushort Control { get; set; } + public ushort Impact { get; set; } + public ushort Spin { get; set; } + public ushort Curve { get; set; } + public TypeSetFlag SetType { get; set; } + public string GetQntSet(int idx) + { + return Convert.ToString(Item_Qty[idx]);//retorna 1 por causa do set item + } + + public void SetQntSet(int idx, string text) + { + Item_Qty[idx] = ushort.Parse(text); + } + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/Skin.cs b/PangLib.IFF/Models/Data/Skin.cs new file mode 100644 index 0000000..da0d162 --- /dev/null +++ b/PangLib.IFF/Models/Data/Skin.cs @@ -0,0 +1,22 @@ +using PangLib.IFF.Models.General; +using PangLib.IFF.Models.Flags; +using System; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + #region Struct Skin.iff + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class Skin : IFFCommon + { + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] + public string MPet { get; set; } + public ushort Flag_Roll { get; set; } + public ushort Price1Day { get; set; } + public ushort Price7Day { get; set; } + public ushort Price15Day { get; set; } + public ushort Price30Day { get; set; } + public ushort Price365Day { get; set; } + } + #endregion + +} diff --git a/PangLib.IFF/Models/Data/TikiPointTable.cs b/PangLib.IFF/Models/Data/TikiPointTable.cs new file mode 100644 index 0000000..838803f --- /dev/null +++ b/PangLib.IFF/Models/Data/TikiPointTable.cs @@ -0,0 +1,18 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file TikiPointTable.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct TikiPointTable + { + public uint Index; + public byte TypeID; + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 35)] + public string Name; + public uint Qty; + public uint TypeID_Item; + } +} diff --git a/PangLib.IFF/Models/Data/TikiRecipe.cs b/PangLib.IFF/Models/Data/TikiRecipe.cs new file mode 100644 index 0000000..4039697 --- /dev/null +++ b/PangLib.IFF/Models/Data/TikiRecipe.cs @@ -0,0 +1,18 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file TikiRecipe.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct TikiRecipe + { + public uint Enable; + public byte TypeID; + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 35)] + public string Name; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public uint[] Unknown; + } +} diff --git a/PangLib.IFF/Models/Data/TikiSpecialTable.cs b/PangLib.IFF/Models/Data/TikiSpecialTable.cs new file mode 100644 index 0000000..51aed55 --- /dev/null +++ b/PangLib.IFF/Models/Data/TikiSpecialTable.cs @@ -0,0 +1,19 @@ +using PangLib.IFF.Models.General; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.Data +{ + /// + /// Is Struct file TikiSpecialTable.iff + /// + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct TikiSpecialTable + { + public uint Enable; + public byte TypeID; + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 35)] + public string Name; + public uint Qty; + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public uint[] TypeID_Item; + } +} diff --git a/PangLib.IFF/Models/Flags/CardEffectFlag.cs b/PangLib.IFF/Models/Flags/CardEffectFlag.cs deleted file mode 100644 index 1940752..0000000 --- a/PangLib.IFF/Models/Flags/CardEffectFlag.cs +++ /dev/null @@ -1,68 +0,0 @@ -namespace PangLib.IFF.Models.Flags -{ - /// - /// This flag is handling different card effects - /// - public enum CardEffectFlag : ushort - { - /// - /// No card effect - /// - None = 0, - - /// - /// This card grants an experience bonus - /// - Experience = 1, - - /// - /// This card grants a percentual pang increase - /// - PercentPang = 2, - - /// - /// This card grants a percentual experience increase - /// - PercentExperience = 3, - - /// - /// This card adds a fixed pang bonus - /// - Pang = 4, - - /// - /// This card increases the Power statistic - /// - Power = 5, - - /// - /// This card increases the Control statistic - /// - Control = 6, - - /// - /// This card increases the Accuracy statistic - /// - Accuracy = 7, - - /// - /// This card increases the Spin statistic - /// - Spin = 8, - - /// - /// This card increases the Curve statistic - /// - Curve = 9, - - /// - /// This card increases the Power shot gauge at the beginning of a match - /// - StartingGauge = 10, - - /// - /// TODO: Figure out what this effect does again - /// - Inventory = 11 - } -} diff --git a/PangLib.IFF/Models/Flags/Definitions.cs b/PangLib.IFF/Models/Flags/Definitions.cs new file mode 100644 index 0000000..e1d06dd --- /dev/null +++ b/PangLib.IFF/Models/Flags/Definitions.cs @@ -0,0 +1,601 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace PangLib.IFF.Models.Flags +{ + public enum TypeSetFlag : ushort + { + UNKNOWN_0, + CHARACTER_SET, + CHARACTER_SET_NEW, + UNKNOWN_3, + CLUB_SET, + BALL, + CHARACTER_SET_DUP_AND_ITEM_PASSIVE_AND_ACTIVE, + UNKNOWN_7, + CARD, + AUXPART, // Anel + } + public enum eEFFECT : uint + { + ANIMATION = 1, + UNKNOWN_V2, + CUTIN, + PIXEL, + BASE, + ONE_ALL_STATS, + WIND_DECREASE, + PATINHA + } + + public enum eEFFECT_TYPE : uint + { + UNKNOWN_V1 = 1, + GAME = 2, + ROOM = 4, + LOUNGE = 8 + } + public enum TypeCard + { + Pack1, + Pack2, + Pack3, + Pack4, + Rare, + All + } + + public enum AbilityEffect : uint + { + NONE, + PIXEL, // Pixel o valor em rate + PIXEL_BY_WIND_NO_ITEM, // Pixel dependendo do vento o valor em rate, se usar item ou ps cancela o efeito + PIXEL_OVER_WIND_NO_ITEM, // Pixel acima de um vento o valor em rate, se usar item ou ps cancela o efeito + PIXEL_BY_WIND, // Pixel dependendo do vento o valor em rate + PIXEL_2, // Pixel o valor em rate + PIXEL_WITH_WEAK_WIND, // Pixel quando o vento é fraco o valor em rate + POWER_GAUGE_TO_START_HOLE, // Power Gauge no começo do hole para cada hole o valor em rate + POWER_GAUGE_MORE_ONE, // Power Gauge da uma barra a+ 33 Units, o valor em rate + POWER_GUAGE_TO_START_GAME, // Power Gauge no começo do jogo o valor em rate + PAWS_NOT_ACCUMULATE, // Patinha não acumula com outro efeito de patinha, probabilidade está em rate + SWITCH_TWO_EFFECT, // Item com 2 efeitos não simutâneos, qual efeito está em rate, 0 Yards, 1 Power Gauge + EARCUFF_DIRECTION_WIND, // Muda a direção do vento, a probabilidade quem escolhe é o pangya + COMBINE_ITEM_EFFECT, // Combinação de itens, em rate tem o ID da combinação em (IFF)SetEffectTable + SAFETY_CLIENT_RANDOM, // Safety a probabilidade o cliente que decide + PIXEL_RANDOM, // Pixel aleatório o valor está em rate, a probabilidade o cliente que decide + WIND_1M_RANDOM, // Wind 1m aleatório a probabilidade está em rate + PIXEL_BY_WIND_MIDDLE_DOUBLE, // Pixel dependendo do vento, vento médio dá o dobro, o valor em rate + GROUND_100_PERCENT_RONDOM, // Terreno 100% aleatório, a probabilidade está em rate + ASSIST_MIRACLE_SIGN, // Assist Olho Mágico + VECTOR_SIGN, // Mostra uma seta na bola, dependendo do vento, tipo trajetória do assist + ASSIST_TRAJECTORY_SHOT, // Assist Trajectory Shot + PAWS_ACCUMULATE, // Patinha acumula com outro efeito de patinha, a probabilidade está em rate + POWER_GAUGE_FREE, // Power Gauge, ganha 1 Power Gauge de graça para usar na tacada + SAFETY_RANDOM, // Safety aleatório a probabilidade está em rate + ONE_IN_ALL_STATS, // [UNKNOWN] mas vou deixar o (Combine Itens) ONE IN ALL STATS, dá 1 para todos os stats, power, cltr, accuracy, spin e curve + POWER_GAUGE_BY_MISS_SHOT, // Power Gauge mesmo que erre pangya ou use item de Power Gauge ele ainda dá Power Gauge + PIXEL_BY_WIND_2, // Pixel dependendo do vento o valor está em rate + PIXEL_WITH_RAIN, // Pixel quando estiver chovendo(recovery) o valor está em rate + NO_RAIN_EFFECT, // Sem efeito dá chuva no terreno + PUTT_MORE_10Y_RANDOM, // +10y no Putt aleatório a probabilidade está em rate + UNKNOWN_31, + MIRACLE_SIGN_RANDOM, // Olho Mágico aleatório a probabilidade está em rate + UNKNOWN_33, + DECREASE_1M_OF_WIND, // Diminui 1m do vento + } + public enum CardTypeFlag + { + Normal = 0x0, + Caddie = 0x40, + NPC = 0x41, + Special = 0x80 + } + + public enum CharTypeByHairColor : byte + { + Nuri, + Hana, + Arthur, + Cesillia, + Max, + Kooh, + Arin, + Kaz, + Lucia, + Nell, + Spika, + Nuri_R = 11, + Hana_R = 12, + Azer_R = 13, + Cesillia_R = 14 + } + public enum CharacterType : uint + { + Nuri, + Hana, + Arthur, + Cesillia, + Max, + Kooh, + Arin, + Kaz, + Lucia, + Nell, + Spika, + Nuri_R = 11, + Hana_R = 12, + Azer_R = 13, + Cesillia_R = 14 + } + + public enum SubType + { + UNKNOWN_0, + CHARACTER_SET, + CHARACTER_SET_NEW, + UNKNOWN_3, + CLUB_SET, + BALL, + CHARACTER_SET_DUP_AND_ITEM_PASSIVE_AND_ACTIVE, + UNKNOWN_7, + CARD_PACK = 71, + AUXPART + } + public enum CadieBoxSetor : uint + { + Unknown = uint.MaxValue, + Beginner = 0, + Intermediary = 1, + Advance = 2, + Special = 3, + Event = 4 + } + public enum CadieBoxEnum : uint + { + MASCOT = 4294967295, + PART = 4294967294, + NURI = 0, + HANA = 1, + AZER = 2, + CESILLIA = 3, + MAX = 4, + KOOH = 5, + ARIN = 6, + KAZ = 7, + LUCIA = 8, + NELL = 9, + SPIKA = 10, + NURI_R = 11, + HANA_R = 12, + AZER_R = 13, + CESILLIA_R = 14 + } + public enum PartType : uint + { + TOP, + BOTTOM, + HEAD, + GLOVES, + SHOES, + ACCESSORY_OR_BASE, + SUB_LEG, + UNKNOWN, + UCC_BLANK = 8, + UCC_COPY, + } + public enum ItemTypeEnum : int + { + Active = 0, + consumable = 1, + All = -1, + Passive = 128, + GM = 252, + } + + + public enum ItemLevelEnum : byte + { + ROOKIE_F = 0x00, + ROOKIE_E = 0x01, + ROOKIE_D = 0x02, + ROOKIE_C = 0x03, + ROOKIE_B = 0x04, + ROOKIE_A = 0x05, + BEGINNER_E = 0x06, + BEGINNER_D = 0x07, + BEGINNER_C = 0x08, + BEGINNER_B = 0x09, + BEGINNER_A = 0x0A, + JUNIOR_E = 0x0B, + JUNIOR_D = 0x0C, + JUNIOR_C = 0x0D, + JUNIOR_B = 0x0E, + JUNIOR_A = 0x0F, + SENIOR_E = 0x10, + SENIOR_D = 0x11, + SENIOR_C = 0x12, + SENIOR_B = 0x13, + SENIOR_A = 0x14, + AMATEUR_E = 0x15, + AMATEUR_D = 0x16, + AMATEUR_C = 0x17, + AMATEUR_B = 0x18, + AMATEUR_A = 0x19, + SEMI_PRO_E = 0x1A, + SEMI_PRO_D = 0x1B, + SEMI_PRO_C = 0x1C, + SEMI_PRO_B = 0x1D, + SEMI_PRO_A = 0x1E, + PRO_E = 0x1F, + PRO_D = 0x20, + PRO_C = 0x21, + PRO_B = 0x22, + PRO_A = 0x23, + NATIONAL_PRO_E = 0x24, + NATIONAL_PRO_D = 0x25, + NATIONAL_PRO_C = 0x26, + NATIONAL_PRO_B = 0x27, + NATIONAL_PRO_A = 0x28, + WORLD_PRO_E = 0x29, + WORLD_PRO_D = 0x2A, + WORLD_PRO_C = 0x2B, + WORLD_PRO_B = 0x2C, + WORLD_PRO_A = 0x2D, + MASTER_E = 0x2E, + MASTER_D = 0x2F, + MASTER_C = 0x30, + MASTER_B = 0x31, + MASTER_A = 0x32, + TOP_MASTER_E = 0x33, + TOP_MASTER_D = 0x34, + TOP_MASTER_C = 0x35, + TOP_MASTER_B = 0x36, + TOP_MASTER_A = 0x37, + WORLD_MASTER_E = 0x38, + WORLD_MASTER_D = 0x39, + WORLD_MASTER_C = 0x3A, + WORLD_MASTER_B = 0x3B, + WORLD_MASTER_A = 0x3C, + LEGEND_E = 0x3D, + LEGEND_D = 0x3E, + LEGEND_C = 0x3F, + LEGEND_B = 0x40, + LEGEND_A = 0x41, + INFINITY_LEGEND_E = 0x42, + INFINITY_LEGEND_D = 0x43, + INFINITY_LEGEND_C = 0x44, + INFINITY_LEGEND_B = 0x45, + INFINITY_LEGEND_A = 0x46, + INFINITY_LEGEND_F = 0x8F, + LEVEL_UNKNOWN = 0x9F + + } + public enum GP_ABA : uint + { + UNKNOWN = uint.MaxValue, + ROOKIE = 0, + BEGINNER = 1, + JUNIOR = 2, + EVENT = 3 + } + /// + /// This flag is handling buying conditions + /// + public enum ShopFlag : byte + { + + Display = 85, + /// + /// Unknown value + /// + Only_Display = 128, + + /// + /// Unknown value + /// + Unknown03 = 3, + + /// + /// Unknown value + /// + Unknown64 = 64, + + /// + /// CP + /// + Cookies_0 = 33, + + /// + /// Unknown value + /// + Unknown32 = 32, + + Active = 37, + PersonalShop_Active = 18, //oou 19? + /// + /// Unknown value + /// + Unknown16 = 16, + + /// + /// Unknown value + /// + Unknown8 = 8, + + Tradeable = 7, + + Unknown5 = 5, + /// + /// This shop item is a coupon + /// + Coupon = 4, + + /// + /// This shop item is not giftable + /// + NonGiftable1 = 69, + NonGiftable = 2, + + /// + /// This shop item is giftable + /// + Giftable = 0x01, + + /// + /// No special buying conditions + /// + None = 0x00, + } + public enum MoneyFlag : byte + { + /// + /// Unknown value + /// + Unknown1 = 128, + + /// + /// Displays a "Special" banner on a shop item + /// + BannerSpecial = 64, + + /// + /// Displays a "Hot" banner on a shop item + /// + BannerHot = 32, + + /// + /// Displays a "New" banner on a shop item + /// + BannerNew = 0x02, + + /// + /// Unknown value + /// + Unknown2 = 0x08, + + /// + /// Item is for display only + /// + DisplayOnly = 0x04, + + /// + /// This shop item is active + /// + Active = 0x01, + + /// + /// No special shop display condition + /// + None = 0x00 + } + + /// + /// use HairColor.iff(type for character) + /// + public enum HairColorFlag : byte + { + Nuri = 0, + Hana = 1, + Azer = 2, + Cecilia = 3, + Max = 4, + Kooh = 5, + Arin = 6, + Kaz = 7, + Lucia = 8, + Nell = 9, + Spika = 10, + NR = 11, + HR = 12, + CR = 14 + } + public enum IFFGROUP + { + ITEM_TYPE_CHARACTER = 0x1, + ITEM_TYPE_PART = 0x2, + ITEM_TYPE_CLUB = 0x4, + ITEM_TYPE_BALL = 0x5, + ITEM_TYPE_USE = 0x6, + ITEM_TYPE_CADDIE = 0x7, + ITEM_TYPE_CADDIE_ITEM = 0x8, + ITEM_TYPE_SETITEM = 0x9, + ITEM_TYPE_SKIN = 0xE, + ITEM_TYPE_MASCOT = 0x10, + ITEM_TYPE_CARD = 0x1F, + ITEM_TYPE_AUX = 0x1C, + ITEM_TYPE_HAIR_STYLE = 0xF + } + + /// + /// This flag is handling different card effects + /// + public enum CardEffectFlag : ushort + { + /// + /// No card effect + /// + None = 0, + + /// + /// This card grants an experience bonus + /// + Experience = 1, + + /// + /// This card grants a percentual pang increase + /// + PercentPang = 2, + + /// + /// This card grants a percentual experience increase + /// + PercentExperience = 3, + + /// + /// This card adds a fixed pang bonus + /// + Pang = 4, + + /// + /// This card increases the Power statistic + /// + Power = 5, + + /// + /// This card increases the Control statistic + /// + Control = 6, + + /// + /// This card increases the Accuracy statistic + /// + Accuracy = 7, + + /// + /// This card increases the Spin statistic + /// + Spin = 8, + + /// + /// This card increases the Curve statistic + /// + Curve = 9, + + /// + /// This card increases the Power shot gauge at the beginning of a match + /// + StartingGauge = 10, + + /// + /// TODO: Figure out what this effect does again + /// + Inventory = 11 + } + + // 0 = ITEM COMUM + // 1 = ITEM NORMAL ASA FECHADA + // 2 = ITEM NORMAL ASA ABERTA + // 3 = ITEM RARO ASA FECHADA + // 4 = ITEM RARO ASA ABERTA + public enum MemorialRareType : uint + { + Default = uint.MaxValue, + Normal_Rare0 = 0, + Normal_Rare1 = 1, + Normal_Rare2 = 2, + Super_Rare1 = 3, + Super_Rare2 = 4 + } + public enum FilterCoinType : uint + { + NORMAL, + PREMIUM, + SPECIAL, + CHARACTER + } + public enum FilterType : uint + { + NORMAL = 0, + SPRING = 1, + SUMMER, + FALL, + WINTER, + CLUBSET = 5, + SETITEM, + EAR, + WING, + LUVA, + RING_R, + RING_L, + CADDIE, + MASCOT, + SUMMER_HOLYDAY, + XMAS, + HALLOWEEN, + MAN = 17, + WOMAN = 18, + NURI, + HANA, + AZER, + CECI, + MAX, + KOOH, + ARIN, + KAZ, + LUCIA, + NELL, + SPIKA, + NURI_R, + HANA_R, + AZER_R, + CECI_R, + } + + public enum Effect_Type + { + NONE, + PIXEL, // Pixel o valor em rate + PIXEL_BY_WIND_NO_ITEM, // Pixel dependendo do vento o valor em rate, se usar item ou ps cancela o efeito + PIXEL_OVER_WIND_NO_ITEM, // Pixel acima de um vento o valor em rate, se usar item ou ps cancela o efeito + PIXEL_BY_WIND, // Pixel dependendo do vento o valor em rate + PIXEL_2, // Pixel o valor em rate + PIXEL_WITH_WEAK_WIND, // Pixel quando o vento é fraco o valor em rate + POWER_GAUGE_TO_START_HOLE, // Power Gauge no começo do hole para cada hole o valor em rate + POWER_GAUGE_MORE_ONE, // Power Gauge da uma barra a+ 33 Units, o valor em rate + POWER_GUAGE_TO_START_GAME, // Power Gauge no começo do jogo o valor em rate + PAWS_NOT_ACCUMULATE, // Patinha não acumula com outro efeito de patinha, probabilidade está em rate + SWITCH_TWO_EFFECT, // Item com 2 efeitos não simutâneos, qual efeito está em rate, 0 Yards, 1 Power Gauge + EARCUFF_DIRECTION_WIND, // Muda a direção do vento, a probabilidade quem escolhe é o pangya + COMBINE_ITEM_EFFECT, // Combinação de itens, em rate tem o ID da combinação em (IFF)SetEffectTable + SAFETY_CLIENT_RANDOM, // Safety a probabilidade o cliente que decide + PIXEL_RANDOM, // Pixel aleatório o valor está em rate, a probabilidade o cliente que decide + WIND_1M_RANDOM, // Wind 1m aleatório a probabilidade está em rate + PIXEL_BY_WIND_MIDDLE_DOUBLE, // Pixel dependendo do vento, vento médio dá o dobro, o valor em rate + GROUND_100_PERCENT_RONDOM, // Terreno 100% aleatório, a probabilidade está em rate + ASSIST_MIRACLE_SIGN, // Assist Olho Mágico + VECTOR_SIGN, // Mostra uma seta na bola, dependendo do vento, tipo trajetória do assist + ASSIST_TRAJECTORY_SHOT, // Assist Trajectory Shot + PAWS_ACCUMULATE, // Patinha acumula com outro efeito de patinha, a probabilidade está em rate + POWER_GAUGE_FREE, // Power Gauge, ganha 1 Power Gauge de graça para usar na tacada + SAFETY_RANDOM, // Safety aleatório a probabilidade está em rate + ONE_IN_ALL_STATS, // [UNKNOWN] mas vou deixar o (Combine Itens) ONE IN ALL STATS, dá 1 para todos os stats, power, cltr, accuracy, spin e curve + POWER_GAUGE_BY_MISS_SHOT, // Power Gauge mesmo que erre pangya ou use item de Power Gauge ele ainda dá Power Gauge + PIXEL_BY_WIND_2, // Pixel dependendo do vento o valor está em rate + PIXEL_WITH_RAIN, // Pixel quando estiver chovendo(recovery) o valor está em rate + NO_RAIN_EFFECT, // Sem efeito dá chuva no terreno + PUTT_MORE_10Y_RANDOM, // +10y no Putt aleatório a probabilidade está em rate + UNKNOWN_31, + MIRACLE_SIGN_RANDOM, // Olho Mágico aleatório a probabilidade está em rate + UNKNOWN_33, + DECREASE_1M_OF_WIND, // Diminui 1m do vento + } + public enum IFF_REGION + { + Default = -1, + Usa = 0, + Japan = 1, + Korea = 2, + Thaiwan = 3 + } +} diff --git a/PangLib.IFF/Models/Flags/MoneyFlag.cs b/PangLib.IFF/Models/Flags/MoneyFlag.cs deleted file mode 100644 index b8581fd..0000000 --- a/PangLib.IFF/Models/Flags/MoneyFlag.cs +++ /dev/null @@ -1,53 +0,0 @@ -namespace PangLib.IFF.Models.Flags -{ - /// - /// This flag is handling shop display related values - /// - public enum MoneyFlag : byte - { - /// - /// Unknown value - /// - Unknown1 = 128, - - /// - /// Displays a "Special" banner on a shop item - /// - BannerSpecial = 64, - - /// - /// Displays a "Hot" banner on a shop item - /// - BannerHot = 32, - - /// - /// Displays a "New" banner on a shop item - /// - BannerNew = 16, - - /// - /// Unknown value - /// - Unknown2 = 8, - - /// - /// Item is for display only - /// - DisplayOnly = 4, - - /// - /// TODO: Figure out what this value is again - /// - Type = 2, - - /// - /// This shop item is active - /// - Active = 1, - - /// - /// No special shop display condition - /// - None = 0 - } -} diff --git a/PangLib.IFF/Models/Flags/ShopFlag.cs b/PangLib.IFF/Models/Flags/ShopFlag.cs deleted file mode 100644 index ada9324..0000000 --- a/PangLib.IFF/Models/Flags/ShopFlag.cs +++ /dev/null @@ -1,53 +0,0 @@ -namespace PangLib.IFF.Models.Flags -{ - /// - /// This flag is handling buying conditions - /// - public enum ShopFlag : byte - { - /// - /// Unknown value - /// - Unknown1 = 128, - - /// - /// Unknown value - /// - Unknown2 = 64, - - /// - /// Unknown value - /// - Unknown3 = 32, - - /// - /// Unknown value - /// - Unknown4 = 16, - - /// - /// Unknown value - /// - Unknown5 = 8, - - /// - /// This shop item is a coupon - /// - Coupon = 4, - - /// - /// This shop item is not giftable - /// - NonGiftable = 2, - - /// - /// This shop item is giftable - /// - Giftable = 1, - - /// - /// No special buying conditions - /// - None = 0 - } -} diff --git a/PangLib.IFF/Models/General/IFFCommon.cs b/PangLib.IFF/Models/General/IFFCommon.cs index 91a347b..9efd701 100644 --- a/PangLib.IFF/Models/General/IFFCommon.cs +++ b/PangLib.IFF/Models/General/IFFCommon.cs @@ -1,91 +1,239 @@ +using System.IO; +using System; using System.Runtime.InteropServices; +using System.Windows.Forms; using PangLib.IFF.Models.Flags; +using PangLib.IFF.Extensions; namespace PangLib.IFF.Models.General { /// + /// Ref's: + /// my code first: https://github.com/oung/Py_Source_JP/tree/master/Src/PangyaFileCore + /// + /// replace: https://github.com/Acrisio-Filho/SuperSS-Dev/blob/master/Server%20Lib/Projeto%20IOCP/TYPE/data_iff.h + /// update in 30/06/2023 - 10:40 AM by LuisMK + /// /// Common data structure found at the head of many IFF datasets + /// + /// Size 192 bytes ? /// [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct IFFCommon + public partial class IFFCommon : ICloneable { - /// - /// Status of this object - /// - public uint Active { get; set; } - - /// - /// ID of this object - /// - public uint ID { get; set; } - - /// - /// Name of this object - /// - [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Name { get; set; } - - /// - /// Level requirement for this object - /// - public byte Level { get; set; } - - /// - /// Icon for this object - /// + //------------------- IFF BASIC ----------------------------\\ + public uint Active { get; set; }//0 start position + public uint ID { get; set; }//4 start position [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] - public string Icon { get; set; } - - /// - /// Price of this object - /// - public uint Price { get; set; } - - /// - /// Discounted price of this object - /// - public uint DiscountPrice { get; set; } - - /// - /// Used price of this object - /// - public uint UsedPrice { get; set; } - - /// - /// Instance of - /// - public ShopFlag ShopFlag { get; set; } - - /// - /// Instance of - /// - public MoneyFlag MoneyFlag { get; set; } - - /// - /// A time flag - /// - public byte TimeFlag { get; set; } - - /// - /// A time byte - /// - public byte TimeByte { get; set; } - + public string Name { get; set; }//8 start position + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 1)] + public IFFLevel Level { get; set; }//72 start position + [field: MarshalAs(UnmanagedType.ByValTStr, SizeConst = 43)] + public string Icon { get; set; }//73 start position + //--------------------------end--------------------------------\\ + + //------------------ SHOP DADOS ---------------------------------\\ + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFShopData Shop { get; set; } = new IFFShopData(); + //------------------- END ------------------------------\\ + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 24)] + public IFFTikiShopData tiki { get; set; } = new IFFTikiShopData(); + //-------------------- TIME IFF--------------\\ + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 36)] + public IFFDate date { get; set; } = new IFFDate(); /// - /// Point price of this object + /// voce pode carregar qualquer iff(que contem o Base) /// - public uint Point { get; set; } - + /// binario de leitura + /// tamanho do string name + public void Load(ref PangyaBinaryReader reader, uint LenghtStr, long recordLength = 0, uint version = 11, bool jump = false) + { + //------------------- IFF BASIC ----------------------------\\ + Active = reader.ReadUInt32(); + ID = reader.ReadUInt32(); + Name = reader.ReadPStr(LenghtStr); + Level = new IFFLevel + { + level = reader.ReadByte() //49 start position + }; + Icon = reader.ReadPStr(43); //89 start position + //--------------------------end--------------------------------\\ + //------------------ SHOP DADOS ---------------------------------\\ + Shop = (IFFShopData)reader.Read(new IFFShopData()); + //------------------- END ------------------------------\\ + //------------------ Tiki SHOP---------------------\\ + if (version != 11) + { + tiki = (IFFTikiShopData)reader.Read(new IFFTikiShopData()); + } + //-----------------------------------------------\\ + + //-------------------- TIME IFF--------------\\ + date = (IFFDate)reader.Read(new IFFDate()); + //--------------------------------------------------\\ + if (jump) + { + reader.BaseStream.Seek(8L + (recordLength), SeekOrigin.Begin); + } + } /// - /// Time this object becomes available + /// Envia uma notificao ao Editor/Dev + /// voce não pode listar este item pois o valor ira + /// ativar um codigo no ProjectG de alerta /// - [field: MarshalAs(UnmanagedType.Struct)] - public SystemTime StartTime { get; set; } - + public void SendMessage() + { + bool result = Shop.flag_shop.can_send_mail_and_personal_shop + || Shop.flag_shop.block_mail_and_personal_shop + || Shop.flag_shop.is_saleable; + if (result && Shop.Price >= 1000000) + MessageBox.Show($"\nBe careful, you activated an item, but did not change its value\n check this item({ID})", "Pangya Editor v2", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); + } + + + public string GetItemName() + { + return Name; + } + public int ShopFlag + { + get { return (int)(Shop == null ? 0 : Shop.flag_shop.ShopFlag); } + set + { + Shop.flag_shop.ShopFlag = (ShopFlag)value; + } + } + public int MoneyFlag + { + get { return (int)(Shop == null ? 0 : Shop.flag_shop.MoneyFlag); } + set + { + Shop.flag_shop.MoneyFlag = (MoneyFlag)value; + } + } + public uint Price + { + get => Shop == null ? 0 : Shop.Price; + set => Shop.Price = value; + } + public byte ItemLevel + { + get => (byte)(Level == null ? 0 : Level.level); + set => Level.level = value; + } + public uint DiscountPrice + { + get => Shop == null ? 0 : Shop.DiscountPrice; + set => Shop.DiscountPrice = value; + } + public sbyte GetShopPriceType() + { + return (sbyte)Shop.flag_shop.ShopFlag; + } + + public bool IsBuyable() + { + if (Active == 1 && Shop.flag_shop.MoneyFlag == 0 || (int)Shop.flag_shop.MoneyFlag == 1 || (int)Shop.flag_shop.MoneyFlag == 2) + { + return true; + } + return false; + } + + public bool IsNormal() + { + return Active == 1 && Shop.flag_shop.IsNormal || Shop.flag_shop.is_saleable; + } + public bool IsExist() + { + return Convert.ToBoolean(Active); + } + + public object Clone() + { + return MemberwiseClone(); + } + public IFFCommon() + { + Name = "[NEW ITEM] by LuisMK"; + Icon = "Icon.tga"; + date = new IFFDate(); + tiki = new IFFTikiShopData(); + Shop = new IFFShopData(); + } + //conversion this + public virtual IFFCommon CreateNewItem() + { + Name = "[NEW ITEM] by LuisMK"; + Icon = "[NEW ICON] by LuisMK"; + date = new IFFDate(); + tiki = new IFFTikiShopData(); + Shop = new IFFShopData(); + return this; + } + + public uint TypeItem() + { + return (uint)(int)Math.Round((ID & 0xFC000000) / Math.Pow(2.0, 26.0)); + } + + public bool IsDupItem() + { + return (Active == 1 && Shop.flag_shop.IsDuplication); + } + + public bool IsSellItem() + { + return (Active == 1 && Shop.flag_shop.is_saleable); + } + + public bool IsGiftItem() + { + // É saleable ou giftable nunca os 2 juntos por que é a flag composta Somente Purchase(compra) + // então faço o xor nas 2 flag se der o valor de 1 é por que ela é um item que pode presentear + // Ex: 1 + 1 = 2 Não é + // Ex: 1 + 0 = 1 OK + // Ex: 0 + 1 = 1 OK + // Ex: 0 + 0 = 0 Não é + byte is_giftable = Convert.ToByte(Shop.flag_shop.IsGift); + byte _is_saleable = Convert.ToByte(Shop.flag_shop.is_saleable); + return (Active == 1 && Shop.flag_shop.IsTypeCash + && (_is_saleable ^ is_giftable) == 1); + } + + public bool IsOnlyDisplay() + { + return (Active == 1 && Shop.flag_shop.IsDisplay); + } + + public bool IsOnlyPurchase() + { + return (Active == 1 && Shop.flag_shop.is_saleable + && Shop.flag_shop.IsGift); + } + + public bool IsOnlyGift() + { + return (Active == 1 && Shop.flag_shop.IsTypeCash + && Shop.flag_shop.is_saleable && Shop.flag_shop.IsGift == false); + } + + public bool IsPSQ() + { + return (Active == 1 && Shop.flag_shop.can_send_mail_and_personal_shop || Shop.flag_shop.IsPSQ || Shop.flag_shop.IsTradeable); + } /// - /// Time this object stops being available + /// verifica é pang, cookie ou esta oculto dentro do shopping /// - [field: MarshalAs(UnmanagedType.Struct)] - public SystemTime EndTime { get; set; } + /// 0= cookies, 1= pang, 2= hide + public int GetTypeCash() + { + //se testar o flag do tipo de moeda antes, não vai dar certo + //tem que testar o flag hide primeiro + var result = Shop.flag_shop.IsHide ? 2 : Shop.flag_shop.IsTypeCash ? 0 : 1; + return result; + } + + } } diff --git a/PangLib.IFF/Models/General/IFFHeader.cs b/PangLib.IFF/Models/General/IFFHeader.cs new file mode 100644 index 0000000..7b3f342 --- /dev/null +++ b/PangLib.IFF/Models/General/IFFHeader.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Text; + +namespace PangLib.IFF.Models.General +{ + /// + /// Have Struct for IFF Header/ Contem a estrutura do IFF Cabecario + /// + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 8)] + public class IFFHeader + { + /// + /// size file data + /// + public short Count { get; set; } + + /// + /// ID determining relation to other IFF files + /// + public short BindingID { get; set; } + + /// + /// Version of this IFF file + /// + public uint Version { get; set; } + /// + /// Construtor/Construção + /// + public IFFHeader() + { + + } + } +} diff --git a/PangLib.IFF/Models/General/IFFLevel.cs b/PangLib.IFF/Models/General/IFFLevel.cs new file mode 100644 index 0000000..b9b09c9 --- /dev/null +++ b/PangLib.IFF/Models/General/IFFLevel.cs @@ -0,0 +1,75 @@ +using System; +using System.Runtime.InteropServices; +using System.Collections; +using PangLib.IFF.Models.Flags; + +namespace PangLib.IFF.Models.General +{ + + [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 1)] + public class IFFLevel + { + private ItemLevelEnum _level;//ler somente esse ;D + + public bool GoodLevel(byte _stlevel) + { + if (is_max && _stlevel <= level) + return true; + else if (!is_max && _stlevel >= level) + return true; + + return false; + } + + public byte level + { + get + { + return (byte)_level; + } + set + { + _level =(ItemLevelEnum)value; + } + } + public bool is_max + { + get { + bool _is_max = false; + BitArray bits = new BitArray(BitConverter.GetBytes(level)); + bits = PadToFullByte(bits); + if (bits.Get(7)) + { + _is_max = true; + bits.Set(7, false); + } + else + { + _is_max = false; + } + return _is_max; + } + } + + BitArray PadToFullByte(BitArray bits) + { + BitArray array = new BitArray(8, false); + if (bits.Count > 0) + { + for (int i = 0; i < bits.Count; i++) + { + if ((bits.Count > 8) && (i < 8)) + { + array.Set(i, bits[i]); + } + } + } + return array; + } + + public static explicit operator int(IFFLevel v) + { + return v.level; + } + } +} diff --git a/PangLib.IFF/Models/General/IFFShopData.cs b/PangLib.IFF/Models/General/IFFShopData.cs new file mode 100644 index 0000000..2442337 --- /dev/null +++ b/PangLib.IFF/Models/General/IFFShopData.cs @@ -0,0 +1,229 @@ +using PangLib.IFF.Models.Flags; +using System; +using System.Collections; +using System.Runtime.InteropServices; + +namespace PangLib.IFF.Models.General +{ + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 16)] + public partial class IFFShopData + { + public uint Price { get; set; }//116 start position + public uint DiscountPrice { get; set; }//120 start position + public uint UsedPrice { get; set; }//124 start position(Aqui é a condição do angel wing seu valor é 6, as outras angel wings do outros characters variam entre 1, 5, 6 e 0 (acho que seja a sexta condição de quit rate menor que 3%) + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 4)] + public FlagShop flag_shop { get; set; } + } + + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 4)] + public class FlagShop + { + /// + /// shop flag + /// + public ShopFlag ShopFlag { get; set; }//128 start position + public MoneyFlag MoneyFlag { get; set; }//129 start position(0x01 in stock; 0x02 disable gift; 0x03 Special; 0x08 new; 0x10 hot) + //-------------------- TIME IFF--------------\\ + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 2)] + public TimeShop time_shop { get; set; } + //-------------------- TIME IFF--------------\\ + /// + /// true = cookie, false is Pang + /// + public bool IsTypeCash + { + get { return ((int)ShopFlag & 0b00000001) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b00000001; + else + _PriceType &= 0b11111110; + + ShopFlag = (ShopFlag)_PriceType; + } + } + /// + /// IsReserve + /// + public bool can_send_mail_and_personal_shop + { + get { return ((int)ShopFlag & 0b00000010) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b00000010; + else + _PriceType &= 0b11111101; + ShopFlag = (ShopFlag)_PriceType; + } + } + + public bool IsDuplication + { + get { return ((int)ShopFlag & 0b00000100) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b00000100; + else + _PriceType &= 0b11111011; + ShopFlag = (ShopFlag)_PriceType; + } + } + + public bool IsSpecial + { + + get => (ShopFlag == (ShopFlag)0x20 && MoneyFlag == (MoneyFlag)3) || (ShopFlag == (ShopFlag)0x21 && MoneyFlag == (MoneyFlag)3); + } + /// + /// IsNew + /// + public bool block_mail_and_personal_shop + { + get { return ((int)ShopFlag & 0b00010000) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b00010000; + else + _PriceType &= 0b11101111; + ShopFlag = (ShopFlag)_PriceType; + } + } + /// + /// is hot ou sale + /// + public bool is_saleable + { + get { return ((int)ShopFlag & 0b00100000) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b00100000; + else + _PriceType &= 0b11011111; + ShopFlag = (ShopFlag)_PriceType; + } + } + + public bool IsGift + { + get { return Get(6); } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b01000000; + else + _PriceType &= 0b10111111; + ShopFlag = (ShopFlag)_PriceType; + } + } + + public bool IsDisplay + { + get { return ((int)ShopFlag & 0b10000000) != 0; } + set + { + int _PriceType = (int)ShopFlag; + if (value) + _PriceType |= 0b10000000; + else + _PriceType &= 0b01111111; + ShopFlag = (ShopFlag)_PriceType; + } + } + + public bool IsNormal + { + + get + { + return (ShopFlag == (ShopFlag)98 && MoneyFlag == 0) || (ShopFlag == (ShopFlag)0x20 && MoneyFlag == 0) || (ShopFlag == (ShopFlag)21 && MoneyFlag == 0); + } + } + public bool IsHide + { + get + { + return can_send_mail_and_personal_shop == false + & IsDuplication == false & IsSpecial == false & block_mail_and_personal_shop == false + & is_saleable == false & IsGift == false & IsDisplay == false && IsPSQ == false; + } + } + public bool IsHot + { + get + { + return (ShopFlag == (ShopFlag)0x20 && MoneyFlag == (MoneyFlag)2) || (ShopFlag == (ShopFlag)0x21 && MoneyFlag == (MoneyFlag)2); + } + } + + public bool IsTradeable + { + get + { + return ShopFlag == (ShopFlag)6 && MoneyFlag == 0 && IsTypeCash == false; + } + set + { + ShopFlag = (ShopFlag)6; + MoneyFlag = 0; + } + } + + public bool IsNew { get => (ShopFlag == (ShopFlag)4 && MoneyFlag == (MoneyFlag)1) || (ShopFlag == (ShopFlag)0x21 && MoneyFlag == (MoneyFlag)1); } + public bool IsPSQ { get => (ShopFlag == (ShopFlag)98 && MoneyFlag == MoneyFlag.None) || (ShopFlag == (ShopFlag)7 && MoneyFlag == MoneyFlag.None); } + + BitArray PadToFullByte(BitArray bits) + { + BitArray array = new BitArray(8, false); + if (bits.Count > 0) + { + for (int i = 0; i < bits.Count; i++) + { + if ((bits.Count > 8) && (i < 8)) + { + array.Set(i, bits[i]); + } + } + } + return array; + } + bool Get(int value) + { + BitArray bits = new BitArray(BitConverter.GetBytes((short)ShopFlag)); + bits = PadToFullByte(bits); + + return bits.Get(value); + } + + public void setFlag(int v, bool value) + { + BitArray bits = new BitArray(BitConverter.GetBytes((short)ShopFlag)); + bits = PadToFullByte(bits); + bits.Set(v, value); + ShopFlag = (ShopFlag)ConvertToByte(bits); + } + byte ConvertToByte(BitArray bits) + { + byte[] array = new byte[1]; + bits.CopyTo(array, 0); + return array[0]; + } + } + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 2)] + public class TimeShop + { + [field: MarshalAs(UnmanagedType.U1, SizeConst = 1)] + public bool active { get; set; }//130 start position(Item por tempo) + public byte dia { get; set; }//131 start position(Tempo por dias=1, 7, 15, 30 e 365 && 0xFF fica 0x6D, por que é 0x16D = 365) + } +} diff --git a/PangLib.IFF/Models/General/IFFTikiShopData.cs b/PangLib.IFF/Models/General/IFFTikiShopData.cs new file mode 100644 index 0000000..23a2ec3 --- /dev/null +++ b/PangLib.IFF/Models/General/IFFTikiShopData.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace PangLib.IFF.Models.General +{ + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 24)] + public class IFFTikiShopData + { + public IFFTikiShopData() + { + Bonus = new short[2]; + } + public bool IsActived() + { + return (Type_TikiShop == 1u || Type_TikiShop == 2u || Type_TikiShop == 3u) && Tiki_Pang > 0u && Mileage_Pts > 0u; + } + + public uint Tiki_Qnt_Pts { get; set; }//132 start position,4 + public uint Tiki_Pts { get; set; }// 136 positon,8 + public ushort Mileage_Pts { get; set; }// 140 start position,10 + public ushort Bonus_Prob { get; set; }// 142 start position,12 + [field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public short[] Bonus { get; set; }// (bonus[0] min_bonus, bonus[1] max_bonus)144 start position,16 + public uint Type_TikiShop { get; set; }// 148 start position,20 + public uint Tiki_Pang { get; set; }// 152 start position,24 + } +} diff --git a/PangLib.IFF/Models/General/IFFTime.cs b/PangLib.IFF/Models/General/IFFTime.cs new file mode 100644 index 0000000..6a4a048 --- /dev/null +++ b/PangLib.IFF/Models/General/IFFTime.cs @@ -0,0 +1,161 @@ +using System; +using System.Runtime.InteropServices; +namespace PangLib.IFF.Models.General +{ + /// + /// System time structure based on Windows internal SYSTEMTIME struct + /// + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 16)] + public class IFFTime + { + /// + /// Year + /// + public ushort Year { get; set; } + + /// + /// Month + /// + public ushort Month { get; set; } + + /// + /// Day of Week + /// + public ushort DayOfWeek { get; set; } + + /// + /// Day + /// + public ushort Day { get; set; } + + /// + /// Hour + /// + public ushort Hour { get; set; } + + /// + /// Minute + /// + public ushort Minute { get; set; } + + /// + /// Second + /// + public ushort Second { get; set; } + + /// + /// Millisecond + /// + public ushort MilliSecond { get; set; } + + public bool TimeActive + { + get + { + return Year > 0 && Month > 0 && Day > 0; + } + } + + public DateTime Time + { + get + { + if (TimeActive)//normal item + { + return new DateTime(Year, Month, Day, Hour, Minute, Second, MilliSecond); + } + //for grand prix :D + else if(Hour > 0 || Minute > 0) + { + + var value = DateTime.Now; Year = (ushort)value.Year; + Month = (ushort)value.Month; + DayOfWeek = (ushort)value.DayOfWeek; + Day = (ushort)value.Day; + return new DateTime(value.Year, value.Month, value.Day, Hour, Minute, 0, 0);//aqui tem que setar, dia mes e ano + } + return DateTime.Now; + } + set + { + Year = (ushort)value.Year; + Month = (ushort)value.Month; + DayOfWeek = (ushort)value.DayOfWeek; + Day = (ushort)value.Day; + Hour = (ushort)value.Hour; + Minute = (ushort)value.Minute; + MilliSecond = (ushort)value.Millisecond == 0? (ushort)DateTime.Now.Millisecond: (ushort)value.Millisecond; + Second = (ushort)value.Second; + } + } + public DateTime TimeGP + { + get + { + var value = DateTime.Now; + + Year = (ushort)value.Year; + Month = (ushort)value.Month; + DayOfWeek = (ushort)value.DayOfWeek; + Day = (ushort)value.Day; + return new DateTime(value.Year, value.Month, Day, Hour, Minute, 0, 0);//aqui tem que setar, dia mes e ano + } + set + { + Year = (ushort)value.Year; + Month = (ushort)value.Month; + DayOfWeek = (ushort)value.DayOfWeek; + Day = (ushort)value.Day; + Hour = (ushort)value.Hour; + Minute = (ushort)value.Minute; + MilliSecond = (ushort)value.Millisecond == 0 ? (ushort)DateTime.Now.Millisecond : (ushort)value.Millisecond; + Second = (ushort)value.Second; + } + } + + public void ClearTime() + { + Year = 0; + Month = 0; + DayOfWeek = 0; + Day = 0; + Hour = 0; + Minute = 0; + Second = 0; + } + + public string ToString(string format) + { + return Time.ToString(format); + } + + public IFFTime() + { } + public IFFTime + (DateTime date) + { + Time = date; + } + + } + [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 36)] + public class IFFDate + { + public IFFDate() + { + Start = new IFFTime(); + End = new IFFTime(); + } + //-------------------- TIME IFF--------------\\ + public uint active { get; set; }//156 start position + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime Start { get; set; }// 160 start position + [field: MarshalAs(UnmanagedType.Struct, SizeConst = 16)] + public IFFTime End { get; set; }// 176 start position + //--------------------------------------------------\\ + public bool Check() + { + return (DateTime.Compare(Start.Time, DateTime.Now) < 0) & (DateTime.Compare(End.Time, DateTime.Now) > 0); + } + } +} diff --git a/PangLib.IFF/Models/General/SystemTime.cs b/PangLib.IFF/Models/General/SystemTime.cs deleted file mode 100644 index 4e6684b..0000000 --- a/PangLib.IFF/Models/General/SystemTime.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Runtime.InteropServices; - -namespace PangLib.IFF.Models.General -{ - /// - /// System time structure based on Windows internal SYSTEMTIME struct - /// - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct SystemTime - { - /// - /// Year - /// - public ushort Year { get; set; } - - /// - /// Month - /// - public ushort Month { get; set; } - - /// - /// Day of Week - /// - public ushort DayOfWeek { get; set; } - - /// - /// Day - /// - public ushort Day { get; set; } - - /// - /// Hour - /// - public ushort Hour { get; set; } - - /// - /// Minute - /// - public ushort Minute { get; set; } - - /// - /// Second - /// - public ushort Second { get; set; } - - /// - /// Millisecond - /// - public ushort MilliSecond { get; set; } - } -} diff --git a/PangLib.IFF/PangLib.IFF.csproj b/PangLib.IFF/PangLib.IFF.csproj index c069ba9..7723d2c 100644 --- a/PangLib.IFF/PangLib.IFF.csproj +++ b/PangLib.IFF/PangLib.IFF.csproj @@ -2,7 +2,7 @@ PangLib.IFF - 5.0.0 + 5.5 pixeldesu PangLib.IFF is a library that enables handling and parsing of PangYa meta data/item (IFF) files pangya;iff;game-files @@ -18,7 +18,9 @@ - + + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Windows.Forms.dll + From 61f528fdbb0c98278798d0d4247ad37a2deefb9e Mon Sep 17 00:00:00 2001 From: luismk Date: Wed, 21 Feb 2024 19:36:06 -0300 Subject: [PATCH 2/5] Removal "System.Windows.Forms" Co-Authored-By: Luiz Lopes --- PangLib.IFF/IFFFile.cs | 8 +++----- PangLib.IFF/Models/General/IFFCommon.cs | 8 +++++--- PangLib.IFF/PangLib.IFF.csproj | 6 ------ 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/PangLib.IFF/IFFFile.cs b/PangLib.IFF/IFFFile.cs index bb962c5..18c3f4f 100644 --- a/PangLib.IFF/IFFFile.cs +++ b/PangLib.IFF/IFFFile.cs @@ -6,8 +6,6 @@ using System.IO; using System.Linq; using System.Runtime.InteropServices; -using System.Windows.Forms; - namespace PangLib.IFF { /// @@ -246,7 +244,7 @@ public virtual void Load(byte[] data) catch (Exception ex) { //show log error :( - MessageBox.Show(ex.Message); + } finally { @@ -273,7 +271,7 @@ public virtual void Load(byte[] data, int _count) catch (Exception ex) { //show log error :( - MessageBox.Show(ex.Message); + } finally { @@ -308,7 +306,7 @@ public void Save(string filePath) } catch (Exception ex) { - MessageBox.Show(ex.Message); + } } diff --git a/PangLib.IFF/Models/General/IFFCommon.cs b/PangLib.IFF/Models/General/IFFCommon.cs index 9efd701..62e926a 100644 --- a/PangLib.IFF/Models/General/IFFCommon.cs +++ b/PangLib.IFF/Models/General/IFFCommon.cs @@ -1,7 +1,6 @@ using System.IO; using System; using System.Runtime.InteropServices; -using System.Windows.Forms; using PangLib.IFF.Models.Flags; using PangLib.IFF.Extensions; @@ -81,13 +80,16 @@ public void Load(ref PangyaBinaryReader reader, uint LenghtStr, long recordLengt /// voce não pode listar este item pois o valor ira /// ativar um codigo no ProjectG de alerta /// - public void SendMessage() + public bool SendMessage() { bool result = Shop.flag_shop.can_send_mail_and_personal_shop || Shop.flag_shop.block_mail_and_personal_shop || Shop.flag_shop.is_saleable; if (result && Shop.Price >= 1000000) - MessageBox.Show($"\nBe careful, you activated an item, but did not change its value\n check this item({ID})", "Pangya Editor v2", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); + return true; + + return false; + } diff --git a/PangLib.IFF/PangLib.IFF.csproj b/PangLib.IFF/PangLib.IFF.csproj index 7723d2c..8636b3b 100644 --- a/PangLib.IFF/PangLib.IFF.csproj +++ b/PangLib.IFF/PangLib.IFF.csproj @@ -17,10 +17,4 @@ 7.3 - - - ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Windows.Forms.dll - - - From ca524ca46ca488c3242800218194e82c53ca8092 Mon Sep 17 00:00:00 2001 From: luismk Date: Wed, 21 Feb 2024 19:51:35 -0300 Subject: [PATCH 3/5] Add DevTools 'Pangya Modern Editor IFF' version First ;) Co-Authored-By: Luiz Lopes --- DevTools/Pangya Modern Editor IFF.sln | 31 + DevTools/Pangya Modern Editor IFF/App.config | 6 + .../Extensions/Util.cs | 1072 ++++++++++ .../Editors/FrmEditorCaddies.Designer.cs | 1874 +++++++++++++++++ .../Forms/Editors/FrmEditorCaddies.cs | 977 +++++++++ .../Forms/Editors/FrmEditorCaddies.resx | 312 +++ .../Pangya Modern Editor IFF.csproj | 374 ++++ DevTools/Pangya Modern Editor IFF/Program.cs | 23 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 973 +++++++++ .../Properties/Resources.resx | 394 ++++ .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../AlterarPre\303\247oToolStripMenuItem.png" | Bin 0 -> 779 bytes .../ApagarTodosToolStripMenuItem.png | Bin 0 -> 386 bytes .../AtivarTodosToolStripMenuItem.png | Bin 0 -> 658 bytes .../Resources/Button1.png | Bin 0 -> 1929 bytes .../Resources/Button6.png | Bin 0 -> 1929 bytes .../DesativarTodosToolStripMenuItem.png | Bin 0 -> 601 bytes .../LevelMinimoToolStripMenuItem.png | Bin 0 -> 674 bytes ...rca\303\247\303\243oToolStripMenuItem.png" | Bin 0 -> 669 bytes .../Resources/Pang.png | Bin 0 -> 800 bytes .../Resources/PictureBox4.png | Bin 0 -> 16939 bytes ...rca\303\247\303\243oToolStripMenuItem.png" | Bin 0 -> 728 bytes .../Resources/_error.png | Bin 0 -> 4051 bytes .../Resources/accept.png | Bin 0 -> 1777 bytes .../Resources/accept1.png | Bin 0 -> 658 bytes .../Resources/add.png | Bin 0 -> 1735 bytes .../Resources/add1.png | Bin 0 -> 650 bytes .../Resources/ajax_loader.png | Bin 0 -> 653 bytes .../Resources/application_put.png | Bin 0 -> 900 bytes .../Resources/arin.png | Bin 0 -> 1265 bytes .../Resources/asterisk_yellow.png | Bin 0 -> 2042 bytes .../Resources/backup_manager.png | Bin 0 -> 1809 bytes .../Resources/ball_03.png | Bin 0 -> 6780 bytes .../Resources/bg_transparent.png | Bin 0 -> 159 bytes .../Resources/box_closed.png | Bin 0 -> 1695 bytes .../Resources/box_open.png | Bin 0 -> 2272 bytes .../Resources/btnAbrirArquivo.png | Bin 0 -> 1457 bytes .../Resources/btnIron.png | Bin 0 -> 767 bytes .../Resources/btnPutter.png | Bin 0 -> 767 bytes .../Resources/btnWedge.png | Bin 0 -> 767 bytes .../Resources/building_edit.png | Bin 0 -> 1802 bytes .../Resources/card_icon_pack_04.png | Bin 0 -> 7487 bytes .../Resources/cecilia.png | Bin 0 -> 1159 bytes .../Resources/chart_organisation.png | Bin 0 -> 1145 bytes .../Resources/compress.png | Bin 0 -> 1764 bytes .../Resources/computer_key.png | Bin 0 -> 2399 bytes .../Resources/data_sort.png | Bin 0 -> 1364 bytes .../Resources/database_lightning.png | Bin 0 -> 2084 bytes .../Resources/delete.png | Bin 0 -> 1910 bytes .../Resources/delete1.png | Bin 0 -> 601 bytes .../Resources/disconnect.png | Bin 0 -> 1069 bytes .../Resources/disk.png | Bin 0 -> 1802 bytes .../Resources/disk_multiple.png | Bin 0 -> 1863 bytes .../Resources/document_editing.png | Bin 0 -> 515 bytes .../Resources/eye__minus.png | Bin 0 -> 548 bytes .../Resources/flag_1.png | Bin 0 -> 1226 bytes .../Resources/folder_explore.png | Bin 0 -> 850 bytes .../Resources/folder_explore1.png | Bin 0 -> 1929 bytes .../Resources/fred.png | Bin 0 -> 3283 bytes .../Resources/hana.png | Bin 0 -> 1210 bytes .../Resources/hand_point_090.png | Bin 0 -> 1771 bytes .../Resources/hand_point_270.png | Bin 0 -> 1766 bytes .../Resources/ico_11.png | Bin 0 -> 5788 bytes .../Resources/ico_14.png | Bin 0 -> 4499 bytes .../Resources/ico_15.png | Bin 0 -> 4977 bytes .../Resources/ico_18.png | Bin 0 -> 5245 bytes .../Resources/ico_19.png | Bin 0 -> 5468 bytes .../Resources/ico_22.png | Bin 0 -> 4514 bytes .../Resources/ico_23.png | Bin 0 -> 3035 bytes .../Resources/ico_26.png | Bin 0 -> 5392 bytes .../Resources/ico_29.png | Bin 0 -> 5036 bytes .../Resources/ico_38.png | Bin 0 -> 3619 bytes .../Resources/ico_43.png | Bin 0 -> 5180 bytes .../Resources/ico_44.png | Bin 0 -> 4422 bytes .../Resources/kaz.png | Bin 0 -> 1227 bytes .../Resources/key.png | Bin 0 -> 1662 bytes .../Resources/kooh.png | Bin 0 -> 1317 bytes .../Resources/list_arthur.png | Bin 0 -> 2881 bytes .../Resources/lucia.png | Bin 0 -> 1207 bytes .../Resources/marketwatch.png | Bin 0 -> 445 bytes .../Resources/mascot_02.png | Bin 0 -> 5096 bytes .../Resources/max.png | Bin 0 -> 1115 bytes .../Resources/money_bag.png | Bin 0 -> 779 bytes .../Resources/money_delete.png | Bin 0 -> 728 bytes .../Resources/nell.png | Bin 0 -> 1337 bytes .../Resources/nenhum.png | Bin 0 -> 661 bytes .../Resources/nuri.png | Bin 0 -> 1124 bytes .../Resources/package_add.png | Bin 0 -> 1511 bytes .../Resources/package_go.png | Bin 0 -> 1425 bytes .../Resources/plugin.png | Bin 0 -> 1786 bytes .../Resources/plugin_add.png | Bin 0 -> 713 bytes .../Resources/plugin_delete.png | Bin 0 -> 729 bytes .../Resources/points.png | Bin 0 -> 975 bytes .../Resources/search_plus.png | Bin 0 -> 879 bytes .../Resources/stamp_pattern.png | Bin 0 -> 1307 bytes .../Resources/textfield_key.png | Bin 0 -> 1271 bytes .../Resources/to_do_list.png | Bin 0 -> 1487 bytes .../Resources/to_do_list_cheked_all.png | Bin 0 -> 1603 bytes .../Resources/user.png | Bin 0 -> 1706 bytes .../Resources/winrar_add.png | Bin 0 -> 1577 bytes .../Resources/winrar_extract.png | Bin 0 -> 1603 bytes .../Resources/zoom.png | Bin 0 -> 767 bytes 104 files changed, 6105 insertions(+) create mode 100644 DevTools/Pangya Modern Editor IFF.sln create mode 100644 DevTools/Pangya Modern Editor IFF/App.config create mode 100644 DevTools/Pangya Modern Editor IFF/Extensions/Util.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.Designer.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.resx create mode 100644 DevTools/Pangya Modern Editor IFF/Pangya Modern Editor IFF.csproj create mode 100644 DevTools/Pangya Modern Editor IFF/Program.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Properties/AssemblyInfo.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Properties/Resources.Designer.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Properties/Resources.resx create mode 100644 DevTools/Pangya Modern Editor IFF/Properties/Settings.Designer.cs create mode 100644 DevTools/Pangya Modern Editor IFF/Properties/Settings.settings create mode 100644 "DevTools/Pangya Modern Editor IFF/Resources/AlterarPre\303\247oToolStripMenuItem.png" create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ApagarTodosToolStripMenuItem.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/AtivarTodosToolStripMenuItem.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/Button1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/Button6.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/DesativarTodosToolStripMenuItem.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/LevelMinimoToolStripMenuItem.png create mode 100644 "DevTools/Pangya Modern Editor IFF/Resources/MudarMarca\303\247\303\243oToolStripMenuItem.png" create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/Pang.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/PictureBox4.png create mode 100644 "DevTools/Pangya Modern Editor IFF/Resources/RemoverMarca\303\247\303\243oToolStripMenuItem.png" create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/_error.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/accept.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/accept1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/add.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/add1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ajax_loader.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/application_put.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/arin.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/asterisk_yellow.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/backup_manager.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ball_03.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/bg_transparent.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/box_closed.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/box_open.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/btnAbrirArquivo.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/btnIron.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/btnPutter.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/btnWedge.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/building_edit.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/card_icon_pack_04.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/cecilia.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/chart_organisation.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/compress.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/computer_key.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/data_sort.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/database_lightning.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/delete.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/delete1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/disconnect.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/disk.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/disk_multiple.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/document_editing.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/eye__minus.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/flag_1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/folder_explore.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/folder_explore1.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/fred.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/hana.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/hand_point_090.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/hand_point_270.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_11.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_14.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_15.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_18.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_19.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_22.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_23.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_26.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_29.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_38.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_43.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/ico_44.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/kaz.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/key.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/kooh.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/list_arthur.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/lucia.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/marketwatch.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/mascot_02.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/max.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/money_bag.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/money_delete.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/nell.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/nenhum.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/nuri.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/package_add.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/package_go.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/plugin.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/plugin_add.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/plugin_delete.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/points.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/search_plus.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/stamp_pattern.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/textfield_key.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/to_do_list.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/to_do_list_cheked_all.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/user.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/winrar_add.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/winrar_extract.png create mode 100644 DevTools/Pangya Modern Editor IFF/Resources/zoom.png diff --git a/DevTools/Pangya Modern Editor IFF.sln b/DevTools/Pangya Modern Editor IFF.sln new file mode 100644 index 0000000..be19b15 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33723.286 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pangya Modern Editor IFF", "Pangya Modern Editor IFF\Pangya Modern Editor IFF.csproj", "{1740BABD-9FA7-433C-919E-D6C148E5F265}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PangLib.IFF", "..\PangLib.IFF\PangLib.IFF.csproj", "{5838F474-6352-43C7-B3CB-7579D2C652C1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1740BABD-9FA7-433C-919E-D6C148E5F265}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1740BABD-9FA7-433C-919E-D6C148E5F265}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1740BABD-9FA7-433C-919E-D6C148E5F265}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1740BABD-9FA7-433C-919E-D6C148E5F265}.Release|Any CPU.Build.0 = Release|Any CPU + {5838F474-6352-43C7-B3CB-7579D2C652C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5838F474-6352-43C7-B3CB-7579D2C652C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5838F474-6352-43C7-B3CB-7579D2C652C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5838F474-6352-43C7-B3CB-7579D2C652C1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7AEFF01B-265B-4C01-A14F-3CC4313486CB} + EndGlobalSection +EndGlobal diff --git a/DevTools/Pangya Modern Editor IFF/App.config b/DevTools/Pangya Modern Editor IFF/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DevTools/Pangya Modern Editor IFF/Extensions/Util.cs b/DevTools/Pangya Modern Editor IFF/Extensions/Util.cs new file mode 100644 index 0000000..22d66f1 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Extensions/Util.cs @@ -0,0 +1,1072 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Text; +using System.Windows.Forms; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using PangLib.IFF.Models.Data; + +namespace Pangya_Modern_Editor.Extensions +{ + public class Util + { + public Util() + { + } + + public static string ByteArrayToString(byte[] ba) + { + StringBuilder stringBuilder = new StringBuilder(checked(ba.Length * 2)); + foreach (byte b in ba) + { + stringBuilder.AppendFormat("{0:x2}", b); + } + return stringBuilder.ToString(); + } + + public static string ByteToString(byte ba) + { + StringBuilder stringBuilder = new StringBuilder(2); + stringBuilder.AppendFormat("{0:x2}", ba); + return stringBuilder.ToString(); + } + + public static object lerArquivo(string arquivo, ref byte[] Inicio, ref long Qtd, int totalB) + { + //Discarded unreachable code: IL_00ca, IL_00d6 + byte[] array = File.ReadAllBytes(arquivo); + List list = new List(); + List list2 = new List(); + int num = 1; + int num2 = 0; + checked + { + int num3 = array.Length - 1; + int num4 = 0; + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + if (num4 < 8) + { + list.Add(array[num4]); + } + list2.Add(ByteToString(array[num4])); + num4++; + } + Inicio = list.ToArray(); + string value = ByteToString(list[3]) + ByteToString(list[2]) + ByteToString(list[1]) + ByteToString(list[0]); + Qtd = Convert.ToInt32(value, 16); + if (Conversions.ToBoolean(verificarEstrutura(array.Length, (int)Qtd, totalB))) + { + return list2; + } + return false; + } + } + + public static object lerArquivoCauldron(string arquivo, ref byte[] Inicio, ref long Qtd, int totalB) + { + //Discarded unreachable code: IL_00b0, IL_00bc + byte[] array = File.ReadAllBytes(arquivo); + List list = new List(); + List list2 = new List(); + int num = 1; + int num2 = 0; + checked + { + int num3 = array.Length - 1; + int num4 = 0; + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + if (num4 < 8) + { + list.Add(array[num4]); + } + list2.Add(ByteToString(array[num4])); + num4++; + } + Inicio = list.ToArray(); + string value = ByteToString(list[1]) + ByteToString(list[0]); + Qtd = Convert.ToInt32(value, 16); + if (Conversions.ToBoolean(verificarEstrutura(array.Length, (int)Qtd, totalB))) + { + return list2; + } + return false; + } + } + + public static object verificarEstrutura(int bytes, int qtd, int total) + { + //Discarded unreachable code: IL_0031, IL_003d + checked + { + double number = (double)(bytes + 8) / (double)total; + if ((Conversion.Int(number) < (double)(qtd + 100)) & (Conversion.Int(number) > (double)(qtd - 100))) + { + return true; + } + return false; + } + } + + public static object StringToByte(string Str) + { + ASCIIEncoding aSCIIEncoding = new ASCIIEncoding(); + return aSCIIEncoding.GetBytes(Str); + } + + public static string HexToString(string hex) + { + string text = ""; + checked + { + int num = hex.Length - 2; + int num2 = 0; + while (true) + { + int num3 = num2; + int num4 = num; + if (num3 > num4) + { + break; + } + char c = Strings.Chr(Convert.ToByte(hex.Substring(num2, 2), 16)); + text += Conversions.ToString(c); + num2 += 2; + } + return Strings.RTrim(text.ToString()); + } + } + + public static bool checkN(string s) + { + if (s == null) + { + return false; + } + s = s.Trim(Conversions.ToChar(new string('\0', 1))); + return string.IsNullOrEmpty(s); + } + + public static List> dividirArquivo(List Lista, int tamanho) + { + List> list = new List>(); + List list2 = new List(); + List list3 = new List(); + int num = 0; + int num2 = 0; + checked + { + int num3 = Lista.Count - 1; + int num4 = 0; + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + if (num4 >= 8) + { + if (num < tamanho - 1) + { + num++; + } + else + { + num2++; + num = 0; + } + list2.Add(Lista[num4]); + if (unchecked(num == 0 && num2 > 0)) + { + list.Add(list2); + list2 = new List(); + } + } + num4++; + } + return list; + } + } + + //public static object findItemName(List Lista, string Valor) + //{ + + // List list = new List(); + // checked + // { + // int num = Lista.Count - 1; + // int num2 = 0; + // while (true) + // { + // int num3 = num2; + // int num4 = num; + // if (num3 > num4) + // { + // break; + // } + // if (Lista[num2].ItemName.ToLower().Contains(Valor.ToLower())) + // { + // list.Add(Lista[num2]); + // } + // num2++; + // } + // return list; + // } + //} + + public static bool gravarArquivo(byte[] Bs, string caminho, ref BackgroundWorker BW) + { + //Discarded unreachable code: IL_0053, IL_0084, IL_008b, IL_00a6 + try + { + BW.ReportProgress(1); + } + catch (Exception projectError) + { + ProjectData.SetProjectError(projectError); + ProjectData.ClearProjectError(); + } + try + { + if (File.Exists(caminho)) + { + File.Delete(caminho); + } + File.WriteAllBytes(caminho, Bs); + MessageBox.Show("Arquivo salvo com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + return true; + } + catch (Exception ex) + { + ProjectData.SetProjectError(ex); + Exception ex2 = ex; + MessageBox.Show("Erro ao gravar o arquivo: " + ex2.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand); + bool result = false; + ProjectData.ClearProjectError(); + return result; + } + } + + public static bool gravarArquivoDividido(byte[] Bs, string caminho) + { + //Discarded unreachable code: IL_0026, IL_0039, IL_0040 + try + { + if (File.Exists(caminho)) + { + File.Delete(caminho); + } + File.WriteAllBytes(caminho, Bs); + return true; + } + catch (Exception ex) + { + ProjectData.SetProjectError(ex); + Exception ex2 = ex; + bool result = false; + ProjectData.ClearProjectError(); + return result; + } + } + + public static object gerarBackup(byte[] bs, string caminho, bool Data = true, int TotalProc = 0) + { + //Discarded unreachable code: IL_0088, IL_00a1, IL_00a8 + try + { + TotalProc = 1; + string fileName = Path.GetFileName(caminho); + string text = Path.GetDirectoryName(caminho) + "\\"; + string path = ((!Data) ? (text + fileName + ".bak") : (text + DateAndTime.Now.ToString("ddMMyyyy_HHmmss_") + fileName + ".bak")); + if (File.Exists(path)) + { + File.Delete(path); + } + TotalProc = 30; + File.WriteAllBytes(path, bs); + TotalProc = 100; + return true; + } + catch (Exception ex) + { + ProjectData.SetProjectError(ex); + Exception ex2 = ex; + object result = false; + ProjectData.ClearProjectError(); + return result; + } + } + + public static string Bytes_To_String(byte[] bytes_Input) + { + string text = ""; + int upperBound = bytes_Input.GetUpperBound(0); + int num = 0; + while (true) + { + int num2 = num; + int num3 = upperBound; + if (num2 > num3) + { + break; + } + text += int.Parse(bytes_Input[num].ToString()).ToString("X").PadLeft(2, '0'); + num = checked(num + 1); + } + return text; + } + + public static object String_TO_Bytes(string Str) + { + List list = new List(); + byte[] bytes = Encoding.Default.GetBytes(Str); + byte[] array = bytes; + foreach (byte b in array) + { + list.Add(Convert.ToByte(b.ToString("x").ToUpper(), 16)); + } + while (list.Count < 40) + { + list.Add(default(byte)); + } + return list.ToArray(); + } + + public static object Long_TO_Bytes(long Num) + { + List list = new List(); + string text = Conversion.Hex(Num); + string text2 = ""; + string text3 = ""; + int num = Strings.Len(text) % 2; + if (num == 1) + { + text = "0" + text; + } + while (Strings.Len(text) < 8) + { + text = "0" + text; + } + int num2 = Strings.Len(text); + int num3 = 1; + while (true) + { + int num4 = num3; + int num5 = num2; + if (num4 > num5) + { + break; + } + text3 = Strings.Mid(text, num3, 2); + list.Add(Convert.ToByte(text3.PadRight(2, '0'), 16)); + text2 = text3.PadRight(2, '0') + text2; + num3 = checked(num3 + 2); + } + byte[] array = list.ToArray(); + Array.Reverse(array); + return array; + } + + public static object Short_TO_Bytes(short Num) + { + List list = new List(); + string text = Conversion.Hex(Num); + string text2 = ""; + string text3 = ""; + int num = Strings.Len(text) % 2; + if (num == 1) + { + text = "0" + text; + } + while (Strings.Len(text) < 4) + { + text = "0" + text; + } + int num2 = Strings.Len(text); + int num3 = 1; + while (true) + { + int num4 = num3; + int num5 = num2; + if (num4 > num5) + { + break; + } + text3 = Strings.Mid(text, num3, 2); + list.Add(Convert.ToByte(text3.PadRight(2, '0'), 16)); + text2 = text3.PadRight(2, '0') + text2; + num3 = checked(num3 + 2); + } + byte[] array = list.ToArray(); + Array.Reverse(array); + return array; + } + + public static object Byte_To_Hex(byte Num) + { + List list = new List(); + string text = Conversion.Hex(Num); + int num = Strings.Len(text) % 2; + if (num == 1) + { + text = "0" + text; + } + return Convert.ToByte(text.PadRight(2, '0'), 16); + } + + public static object setValues(object Itens, byte[] Inicio, long qtdItens, bool BytesVazios = true) + { + List list = new List(); + string text = ""; + int num = 0; + int num2 = 0; + list.AddRange((IEnumerable)Long_TO_Bytes(qtdItens)); + list.Add(Convert.ToByte("0B", 16)); + list.Add(default(byte)); + list.Add(default(byte)); + list.Add(default(byte)); + int num3 = Conversions.ToInteger(Operators.SubtractObject(NewLateBinding.LateGet(Itens, null, "Count", new object[0], null, null, null), 1)); + int num4 = 0; + checked + { + short num7 = default(short); + long num10 = default(long); + byte b = default(byte); + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + object objectValue = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)); + PropertyInfo[] properties = objectValue.GetType().GetProperties(); + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo in array) + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, num7.GetType().Name, false) == 0) + { + short num8 = Conversions.ToShort(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array2 = (byte[])Short_TO_Bytes(num8); + byte[] array3 = array2; + foreach (byte item in array3) + { + list.Add(item); + } + num2 += 2; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, text.GetType().Name, false) == 0) + { + string str = Conversions.ToString(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array4 = (byte[])String_TO_Bytes(str); + int num9 = 0; + byte[] array5 = array4; + foreach (byte item2 in array5) + { + list.Add(item2); + num9++; + } + num2 += 40; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, num10.GetType().Name, false) == 0) + { + long num11 = Conversions.ToLong(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + string text2 = Conversion.Hex(num11); + byte[] array6 = (byte[])Long_TO_Bytes(num11); + byte[] array7 = array6; + foreach (byte item3 in array7) + { + list.Add(item3); + } + num2 += 4; + } + else + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, b.GetType().Name, false) != 0) + { + throw new Exception("Tipo de propriedade não encontrada"); + } + byte num12 = Conversions.ToByte(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte item4 = Conversions.ToByte(Byte_To_Hex(num12)); + list.Add(item4); + num2++; + } + } + num4++; + } + return list.ToArray(); + } + } + + public static object setValuesCalderao(object Itens, byte[] Inicio, long qtdItens, bool BytesVazios = true) + { + List list = new List(); + string text = ""; + int num = 0; + int num2 = 0; + checked + { + list.AddRange((IEnumerable)Short_TO_Bytes((short)qtdItens)); + list.Add(Inicio[2]); + list.Add(Inicio[3]); + list.Add(Inicio[4]); + list.Add(Inicio[5]); + list.Add(Inicio[6]); + list.Add(Inicio[7]); + int num3 = Conversions.ToInteger(Operators.SubtractObject(NewLateBinding.LateGet(Itens, null, "Count", new object[0], null, null, null), 1)); + int num4 = 0; + short num7 = default(short); + long num10 = default(long); + byte b = default(byte); + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + object objectValue = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)); + PropertyInfo[] properties = objectValue.GetType().GetProperties(); + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo in array) + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, num7.GetType().Name, false) == 0) + { + short num8 = Conversions.ToShort(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array2 = (byte[])Short_TO_Bytes(num8); + byte[] array3 = array2; + foreach (byte item in array3) + { + list.Add(item); + } + num2 += 2; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, text.GetType().Name, false) == 0) + { + string str = Conversions.ToString(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array4 = (byte[])String_TO_Bytes(str); + int num9 = 0; + byte[] array5 = array4; + foreach (byte item2 in array5) + { + list.Add(item2); + num9++; + } + num2 += 40; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, num10.GetType().Name, false) == 0) + { + long num11 = Conversions.ToLong(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + string text2 = Conversion.Hex(num11); + byte[] array6 = (byte[])Long_TO_Bytes(num11); + int num12 = 0; + byte[] array7 = array6; + foreach (byte item3 in array7) + { + if (num12 < 4) + { + list.Add(item3); + num12++; + } + } + num2 += 4; + } + else + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, b.GetType().Name, false) != 0) + { + throw new Exception("Tipo de propriedade não encontrada"); + } + byte num13 = Conversions.ToByte(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte item4 = Conversions.ToByte(Byte_To_Hex(num13)); + list.Add(item4); + num2++; + } + } + num4++; + } + return list.ToArray(); + } + } + + public static object setValuesDividido(object Itens, int qtdItens) + { + List list = new List(); + string text = ""; + int num = 0; + int num2 = 0; + list.AddRange((IEnumerable)Long_TO_Bytes(qtdItens)); + list.Add(Convert.ToByte("0B", 16)); + list.Add(default(byte)); + list.Add(default(byte)); + list.Add(default(byte)); + int num3 = Conversions.ToInteger(Operators.SubtractObject(NewLateBinding.LateGet(Itens, null, "Count", new object[0], null, null, null), 1)); + int num4 = 0; + checked + { + short num7 = default(short); + long num10 = default(long); + byte b = default(byte); + while (true) + { + int num5 = num4; + int num6 = num3; + if (num5 > num6) + { + break; + } + object objectValue = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)); + PropertyInfo[] properties = objectValue.GetType().GetProperties(); + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo in array) + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, num7.GetType().Name, false) == 0) + { + short num8 = Conversions.ToShort(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array2 = (byte[])Short_TO_Bytes(num8); + byte[] array3 = array2; + foreach (byte item in array3) + { + list.Add(item); + } + num2 += 2; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, text.GetType().Name, false) == 0) + { + string str = Conversions.ToString(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte[] array4 = (byte[])String_TO_Bytes(str); + int num9 = 0; + byte[] array5 = array4; + foreach (byte item2 in array5) + { + list.Add(item2); + num9++; + } + num2 += 40; + } + else if (Operators.CompareString(propertyInfo.PropertyType.Name, num10.GetType().Name, false) == 0) + { + long num11 = Conversions.ToLong(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + string text2 = Conversion.Hex(num11); + byte[] array6 = (byte[])Long_TO_Bytes(num11); + byte[] array7 = array6; + foreach (byte item3 in array7) + { + list.Add(item3); + } + num2 += 4; + } + else + { + if (Operators.CompareString(propertyInfo.PropertyType.Name, b.GetType().Name, false) != 0) + { + throw new Exception("Tipo de propriedade não encontrada"); + } + byte num12 = Conversions.ToByte(propertyInfo.GetValue(RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(Itens, new object[1] { num4 }, null)), null)); + byte item4 = Conversions.ToByte(Byte_To_Hex(num12)); + list.Add(item4); + num2++; + } + } + num4++; + } + return list.ToArray(); + } + } + + //public static object Part_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + // //Discarded unreachable code: IL_0249 + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (Part listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(listum.ItemType); + // string text8 = Conversions.ToString(num2); + // text += "-- PART: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,TYPE = {5}"; + // text += "\t\t,IS_SALABLE = {6} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, text7, text8); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + + //public static object Item_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + // //Discarded unreachable code: IL_023f + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (Item listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(num2); + // text += "-- ITEM: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,TYPE = {5}"; + // text += "\t\t,IS_SALABLE = {6} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, 0, text7); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + + //public static object SetItem_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + // //Discarded unreachable code: IL_023f + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (SetItem listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(num2); + // text += "-- SETITEM: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,TYPE = {5}"; + // text += "\t\t,IS_SALABLE = {6} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, 0, text7); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + + //public static object ClubSet_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (ClubSet listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(num2); + // text += "-- CLUBSET: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,TYPE = {5}"; + // text += "\t\t,IS_SALABLE = {6} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, 0, text7); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + + public static object Caddie_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + { + + BW.ReportProgress(0); + string text = ""; + StreamWriter streamWriter = new StreamWriter(Arquivo, true); + text += "USE [Pangya_S4_TH]\r\n"; + text += "GO\r\n\r\n"; + List list = new List(); + int num = 0; + checked + { + foreach (Caddie listum in lista) + { + num++; + double a = 100.0 * ((double)num / (double)lista.Count); + BW.ReportProgress((int)Math.Round(a)); + int num2 = 0; + if ((int)listum.MoneyFlag != 2) + { + num2 = 1; + } + string text2 = listum.Name.Replace("\0", ""); + string text3 = listum.Icon.Replace("\0", ""); + string text4 = Conversions.ToString(listum.ID); + string text5 = Conversions.ToString(listum.Price); + string text6 = Conversions.ToString(listum.MoneyFlag); + string text7 = Conversions.ToString(num2); + text += "-- CLUBSET: {0}\r\n"; + text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + text += "BEGIN\r\n"; + text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + text += "\t\tNAME = '{0}'"; + text += "\t\t,ICON = '{2}' "; + text += "\t\t,PRICE = {3}"; + text += "\t\t,ISCASH = {4}"; + text += "\t\t,TYPE = {5}"; + text += "\t\t,IS_SALABLE = {6} "; + text += "\t WHERE TYPEID = {1}\r\n"; + text += "END\r\nELSE\r\nBEGIN\r\n"; + text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + text += "END\r\n\r\n"; + text = string.Format(text, text2, text4, text3, text5, text6, 0, text7); + streamWriter.Write(text); + text = ""; + } + streamWriter.Close(); + return true; + } + } + + //public static object CaddieItem_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (CaddieItem listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(num2); + // text += "-- CLUBSET: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,TYPE = {5}"; + // text += "\t\t,IS_SALABLE = {6} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}','{6}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, 0, text7); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + + //public static object Ball_gerarSql(List lista, string Arquivo, ref BackgroundWorker BW) + //{ + // BW.ReportProgress(0); + // string text = ""; + // StreamWriter streamWriter = new StreamWriter(Arquivo, true); + // text += "USE [Pangya_S4_TH]\r\n"; + // text += "GO\r\n\r\n"; + // List list = new List(); + // int num = 0; + // checked + // { + // foreach (Ball listum in lista) + // { + // num++; + // double a = 100.0 * ((double)num / (double)lista.Count); + // BW.ReportProgress((int)Math.Round(a)); + // int num2 = 0; + // if (listum.MoneyFlag != 2) + // { + // num2 = 1; + // } + // string text2 = listum.ItemName.Replace("\0", ""); + // string text3 = listum.Icon.Replace("\0", ""); + // string text4 = Conversions.ToString(listum.ItemID); + // string text5 = Conversions.ToString(listum.Price); + // string text6 = Conversions.ToString(listum.MoneyFlag); + // string text7 = Conversions.ToString(num2); + // text += "-- BALL: {0}\r\n"; + // text += "IF EXISTS ( SELECT TYPEID FROM PANGYA_ITEM_TYPELIST WHERE TYPEID = {1} ) \r\n"; + // text += "BEGIN\r\n"; + // text += "\tUPDATE PANGYA_ITEM_TYPELIST SET \r\n"; + // text += "\t\tNAME = '{0}'"; + // text += "\t\t,ICON = '{2}' "; + // text += "\t\t,PRICE = {3}"; + // text += "\t\t,ISCASH = {4}"; + // text += "\t\t,IS_SALABLE = {5} "; + // text += "\t WHERE TYPEID = {1}\r\n"; + // text += "END\r\nELSE\r\nBEGIN\r\n"; + // text += "\tINSERT INTO PANGYA_ITEM_TYPELIST\r\n"; + // text += "\t ( [TYPEID], [NAME], [ICON], [PRICE], [ISCASH],[TYPE], [IS_SALABLE] )\r\n"; + // text += "\tVALUES ('{1}','{0}','{2}','{3}','{4}','{5}')\r\n"; + // text += "END\r\n\r\n"; + // text = string.Format(text, text2, text4, text3, text5, text6, text7); + // streamWriter.Write(text); + // text = ""; + // } + // streamWriter.Close(); + // return true; + // } + //} + } + +} diff --git a/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.Designer.cs b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.Designer.cs new file mode 100644 index 0000000..b1cebc1 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.Designer.cs @@ -0,0 +1,1874 @@ +using PangLib.IFF; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace Pangya_Modern_Editor.Forms.Editors +{ + partial class FrmEditorCaddies + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmEditorCaddies)); + this.StatusStrip1 = new System.Windows.Forms.StatusStrip(); + this.ToolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbTotalItens = new System.Windows.Forms.ToolStripStatusLabel(); + this.ToolStripStatusLabel4 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbIndices = new System.Windows.Forms.ToolStripStatusLabel(); + this.ToolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbStatus = new System.Windows.Forms.ToolStripStatusLabel(); + this.pbStatus = new System.Windows.Forms.ToolStripProgressBar(); + this.ToolStrip1 = new System.Windows.Forms.ToolStrip(); + this.btnAbrirArquivo = new System.Windows.Forms.ToolStripButton(); + this.menuSalvarComo = new System.Windows.Forms.ToolStripButton(); + this.menuGerarSql = new System.Windows.Forms.ToolStripButton(); + this.menuTypeid = new System.Windows.Forms.ToolStripButton(); + this.menuBackup = new System.Windows.Forms.ToolStripButton(); + this.menuDividir = new System.Windows.Forms.ToolStripDropDownButton(); + this.DividirArquivoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.UnirArquivoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menuMassa = new System.Windows.Forms.ToolStripDropDownButton(); + this.AlterarPreçoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.AlterarDescontoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.DesativarTodosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.AtivarTodosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.MudarMarcaçãoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.RemoverMarcaçãoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.LevelMinimoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ToolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.ApagarTodosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menuGerarCache = new System.Windows.Forms.ToolStripButton(); + this.SplitContainer1 = new System.Windows.Forms.SplitContainer(); + this.Panel3 = new System.Windows.Forms.Panel(); + this.ListaItem = new System.Windows.Forms.DataGridView(); + this.Panel2 = new System.Windows.Forms.Panel(); + this.PictureBox2 = new System.Windows.Forms.PictureBox(); + this.lbArquivo = new System.Windows.Forms.Label(); + this.Panel1 = new System.Windows.Forms.Panel(); + this.Label39 = new System.Windows.Forms.Label(); + this.imgStatus = new System.Windows.Forms.PictureBox(); + this.PictureBox4 = new System.Windows.Forms.PictureBox(); + this.PictureBox1 = new System.Windows.Forms.PictureBox(); + this.ComboBox2 = new System.Windows.Forms.ComboBox(); + this.txtPesquisa = new System.Windows.Forms.TextBox(); + this.Label33 = new System.Windows.Forms.Label(); + this.Label37 = new System.Windows.Forms.Label(); + this.Panel4 = new System.Windows.Forms.Panel(); + this.tabForm = new System.Windows.Forms.TabControl(); + this.TabPage1 = new System.Windows.Forms.TabPage(); + this.btnVerificarTYPEID = new System.Windows.Forms.Button(); + this.ckTempoAtivo = new System.Windows.Forms.CheckBox(); + this.Panel10 = new System.Windows.Forms.Panel(); + this.attCurva = new System.Windows.Forms.NumericUpDown(); + this.attSpin = new System.Windows.Forms.NumericUpDown(); + this.attPrecisao = new System.Windows.Forms.NumericUpDown(); + this.attControle = new System.Windows.Forms.NumericUpDown(); + this.attForca = new System.Windows.Forms.NumericUpDown(); + this.Panel9 = new System.Windows.Forms.Panel(); + this.barraCurva = new System.Windows.Forms.Panel(); + this.Panel8 = new System.Windows.Forms.Panel(); + this.barraSpin = new System.Windows.Forms.Panel(); + this.Panel7 = new System.Windows.Forms.Panel(); + this.barraPrecisao = new System.Windows.Forms.Panel(); + this.Panel6 = new System.Windows.Forms.Panel(); + this.barraControle = new System.Windows.Forms.Panel(); + this.Panel5 = new System.Windows.Forms.Panel(); + this.barraForca = new System.Windows.Forms.Panel(); + this.Label9 = new System.Windows.Forms.Label(); + this.Label14 = new System.Windows.Forms.Label(); + this.Label13 = new System.Windows.Forms.Label(); + this.Label12 = new System.Windows.Forms.Label(); + this.Label11 = new System.Windows.Forms.Label(); + this.Label10 = new System.Windows.Forms.Label(); + this.Label15 = new System.Windows.Forms.Label(); + this.GroupBox1 = new System.Windows.Forms.GroupBox(); + this.ckNew = new System.Windows.Forms.CheckBox(); + this.ckDesativado = new System.Windows.Forms.CheckBox(); + this.ckNormal = new System.Windows.Forms.CheckBox(); + this.ckHot = new System.Windows.Forms.CheckBox(); + this.ckGift = new System.Windows.Forms.CheckBox(); + this.Label29 = new System.Windows.Forms.Label(); + this.Label2 = new System.Windows.Forms.Label(); + this.rbLevelMax = new System.Windows.Forms.RadioButton(); + this.rbLevelMin = new System.Windows.Forms.RadioButton(); + this.cbLevel = new System.Windows.Forms.ComboBox(); + this.cbTipo = new System.Windows.Forms.ComboBox(); + this.ckAtivo = new System.Windows.Forms.CheckBox(); + this.imgIcone = new System.Windows.Forms.PictureBox(); + this.txtIcone = new System.Windows.Forms.TextBox(); + this.txtTypeID = new System.Windows.Forms.TextBox(); + this.Label6 = new System.Windows.Forms.Label(); + this.Label8 = new System.Windows.Forms.Label(); + this.txtDesconto = new System.Windows.Forms.TextBox(); + this.txtPreco = new System.Windows.Forms.TextBox(); + this.txtNome = new System.Windows.Forms.TextBox(); + this.Label7 = new System.Windows.Forms.Label(); + this.Label3 = new System.Windows.Forms.Label(); + this.lbContNome = new System.Windows.Forms.Label(); + this.Label18 = new System.Windows.Forms.Label(); + this.Label4 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.gbTempoVenda = new System.Windows.Forms.GroupBox(); + this.dtTermino = new System.Windows.Forms.DateTimePicker(); + this.dtInicio = new System.Windows.Forms.DateTimePicker(); + this.Label28 = new System.Windows.Forms.Label(); + this.Label27 = new System.Windows.Forms.Label(); + this.TabPage2 = new System.Windows.Forms.TabPage(); + this.imgPersonagem = new System.Windows.Forms.PictureBox(); + this.Label36 = new System.Windows.Forms.Label(); + this.ComboBox1 = new System.Windows.Forms.ComboBox(); + this.GroupBox3 = new System.Windows.Forms.GroupBox(); + this.Label23 = new System.Windows.Forms.Label(); + this.txtSalary = new System.Windows.Forms.TextBox(); + this.labeladd = new System.Windows.Forms.Label(); + this.txtSprite = new System.Windows.Forms.TextBox(); + this.gbBotoes = new System.Windows.Forms.GroupBox(); + this.btnReabrir = new System.Windows.Forms.Button(); + this.btnNovo = new System.Windows.Forms.Button(); + this.btnRemover = new System.Windows.Forms.Button(); + this.btnBackup = new System.Windows.Forms.Button(); + this.btnSalvar = new System.Windows.Forms.Button(); + this.bwSalvar = new System.ComponentModel.BackgroundWorker(); + this.bwGerarSql = new System.ComponentModel.BackgroundWorker(); + this.ImageList1 = new System.Windows.Forms.ImageList(this.components); + this.ImageList2 = new System.Windows.Forms.ImageList(this.components); + this.diagSalvarArquivo = new System.Windows.Forms.SaveFileDialog(); + this.diagAbrirArquivo = new System.Windows.Forms.OpenFileDialog(); + this.diagSalvarSql = new System.Windows.Forms.SaveFileDialog(); + this.diagPasta = new System.Windows.Forms.FolderBrowserDialog(); + this.ToolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.ToolStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainer1)).BeginInit(); + this.SplitContainer1.Panel1.SuspendLayout(); + this.SplitContainer1.Panel2.SuspendLayout(); + this.SplitContainer1.SuspendLayout(); + this.Panel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ListaItem)).BeginInit(); + this.Panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox2)).BeginInit(); + this.Panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgStatus)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox1)).BeginInit(); + this.Panel4.SuspendLayout(); + this.tabForm.SuspendLayout(); + this.TabPage1.SuspendLayout(); + this.Panel10.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.attCurva)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.attSpin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.attPrecisao)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.attControle)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.attForca)).BeginInit(); + this.Panel9.SuspendLayout(); + this.Panel8.SuspendLayout(); + this.Panel7.SuspendLayout(); + this.Panel6.SuspendLayout(); + this.Panel5.SuspendLayout(); + this.GroupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgIcone)).BeginInit(); + this.gbTempoVenda.SuspendLayout(); + this.TabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgPersonagem)).BeginInit(); + this.GroupBox3.SuspendLayout(); + this.gbBotoes.SuspendLayout(); + this.SuspendLayout(); + // + // StatusStrip1 + // + this.StatusStrip1.Location = new System.Drawing.Point(0, 526); + this.StatusStrip1.Name = "StatusStrip1"; + this.StatusStrip1.Size = new System.Drawing.Size(809, 22); + this.StatusStrip1.SizingGrip = false; + this.StatusStrip1.TabIndex = 1; + this.StatusStrip1.Text = "StatusStrip1"; + // + // ToolStripStatusLabel1 + // + this.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1"; + this.ToolStripStatusLabel1.Size = new System.Drawing.Size(81, 17); + this.ToolStripStatusLabel1.Text = "Total de Itens:"; + // + // lbTotalItens + // + this.lbTotalItens.Name = "lbTotalItens"; + this.lbTotalItens.Size = new System.Drawing.Size(13, 17); + this.lbTotalItens.Text = "0"; + // + // ToolStripStatusLabel4 + // + this.ToolStripStatusLabel4.Name = "ToolStripStatusLabel4"; + this.ToolStripStatusLabel4.Size = new System.Drawing.Size(47, 17); + this.ToolStripStatusLabel4.Text = "Indices:"; + // + // lbIndices + // + this.lbIndices.Name = "lbIndices"; + this.lbIndices.Size = new System.Drawing.Size(13, 17); + this.lbIndices.Text = "0"; + // + // ToolStripStatusLabel2 + // + this.ToolStripStatusLabel2.Name = "ToolStripStatusLabel2"; + this.ToolStripStatusLabel2.Size = new System.Drawing.Size(494, 17); + this.ToolStripStatusLabel2.Spring = true; + // + // lbStatus + // + this.lbStatus.Name = "lbStatus"; + this.lbStatus.Size = new System.Drawing.Size(44, 17); + this.lbStatus.Text = "Parado"; + // + // pbStatus + // + this.pbStatus.Name = "pbStatus"; + this.pbStatus.Size = new System.Drawing.Size(100, 16); + this.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Continuous; + // + // ToolStrip1 + // + this.ToolStrip1.AutoSize = false; + this.ToolStrip1.BackColor = System.Drawing.Color.White; + this.ToolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btnAbrirArquivo, + this.menuSalvarComo, + this.menuGerarSql, + this.menuTypeid, + this.menuBackup, + this.menuDividir, + this.menuMassa, + this.menuGerarCache}); + this.ToolStrip1.Location = new System.Drawing.Point(0, 0); + this.ToolStrip1.Name = "ToolStrip1"; + this.ToolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; + this.ToolStrip1.Size = new System.Drawing.Size(809, 40); + this.ToolStrip1.TabIndex = 2; + this.ToolStrip1.Text = "ToolStrip1"; + // + // btnAbrirArquivo + // + this.btnAbrirArquivo.Image = global::Pangya_Modern_Editor.Properties.Resources.btnAbrirArquivo; + this.btnAbrirArquivo.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.btnAbrirArquivo.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnAbrirArquivo.Name = "btnAbrirArquivo"; + this.btnAbrirArquivo.Size = new System.Drawing.Size(36, 37); + this.btnAbrirArquivo.ToolTipText = "Abrir arquivo"; + this.btnAbrirArquivo.Click += new System.EventHandler(this.btnAbrirArquivo_Click); + // + // menuSalvarComo + // + this.menuSalvarComo.Enabled = false; + this.menuSalvarComo.Image = global::Pangya_Modern_Editor.Properties.Resources.disk_multiple; + this.menuSalvarComo.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuSalvarComo.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuSalvarComo.Name = "menuSalvarComo"; + this.menuSalvarComo.Size = new System.Drawing.Size(36, 37); + this.menuSalvarComo.ToolTipText = "Salvar como"; + this.menuSalvarComo.Click += new System.EventHandler(this.MenuSalvarComo_Click); + // + // menuGerarSql + // + this.menuGerarSql.Enabled = false; + this.menuGerarSql.Image = global::Pangya_Modern_Editor.Properties.Resources.database_lightning; + this.menuGerarSql.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuGerarSql.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuGerarSql.Name = "menuGerarSql"; + this.menuGerarSql.Size = new System.Drawing.Size(36, 37); + this.menuGerarSql.ToolTipText = "Gerar arquivo de SQL"; + this.menuGerarSql.Click += new System.EventHandler(this.MenuSalvarSQL_Click); + // + // menuTypeid + // + this.menuTypeid.Enabled = false; + this.menuTypeid.Image = global::Pangya_Modern_Editor.Properties.Resources.textfield_key; + this.menuTypeid.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuTypeid.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuTypeid.Name = "menuTypeid"; + this.menuTypeid.Size = new System.Drawing.Size(36, 37); + this.menuTypeid.ToolTipText = "Gerar TYPEID"; + this.menuTypeid.Visible = false; + // + // menuBackup + // + this.menuBackup.Enabled = false; + this.menuBackup.Image = global::Pangya_Modern_Editor.Properties.Resources.backup_manager; + this.menuBackup.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuBackup.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuBackup.Name = "menuBackup"; + this.menuBackup.Size = new System.Drawing.Size(36, 37); + this.menuBackup.ToolTipText = "Backup"; + // + // menuDividir + // + this.menuDividir.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.menuDividir.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.DividirArquivoToolStripMenuItem, + this.UnirArquivoToolStripMenuItem}); + this.menuDividir.Enabled = false; + this.menuDividir.Image = global::Pangya_Modern_Editor.Properties.Resources.plugin; + this.menuDividir.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuDividir.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuDividir.Name = "menuDividir"; + this.menuDividir.Size = new System.Drawing.Size(45, 37); + this.menuDividir.ToolTipText = "Dividir Arquivo"; + this.menuDividir.Visible = false; + // + // DividirArquivoToolStripMenuItem + // + this.DividirArquivoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.plugin_delete; + this.DividirArquivoToolStripMenuItem.Name = "DividirArquivoToolStripMenuItem"; + this.DividirArquivoToolStripMenuItem.Size = new System.Drawing.Size(151, 22); + this.DividirArquivoToolStripMenuItem.Text = "Dividir arquivo"; + // + // UnirArquivoToolStripMenuItem + // + this.UnirArquivoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.plugin_add; + this.UnirArquivoToolStripMenuItem.Name = "UnirArquivoToolStripMenuItem"; + this.UnirArquivoToolStripMenuItem.Size = new System.Drawing.Size(151, 22); + this.UnirArquivoToolStripMenuItem.Text = "Unir arquivo"; + // + // menuMassa + // + this.menuMassa.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.menuMassa.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.AlterarPreçoToolStripMenuItem, + this.AlterarDescontoToolStripMenuItem, + this.DesativarTodosToolStripMenuItem, + this.AtivarTodosToolStripMenuItem, + this.MudarMarcaçãoToolStripMenuItem, + this.RemoverMarcaçãoToolStripMenuItem, + this.LevelMinimoToolStripMenuItem, + this.ToolStripMenuItem1, + this.ApagarTodosToolStripMenuItem}); + this.menuMassa.Enabled = false; + this.menuMassa.Image = global::Pangya_Modern_Editor.Properties.Resources.chart_organisation; + this.menuMassa.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuMassa.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuMassa.Name = "menuMassa"; + this.menuMassa.Size = new System.Drawing.Size(45, 37); + this.menuMassa.Text = "ToolStripDropDownButton1"; + this.menuMassa.ToolTipText = "Operações em massa"; + this.menuMassa.Visible = false; + // + // AlterarPreçoToolStripMenuItem + // + this.AlterarPreçoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.AlterarPreçoToolStripMenuItem; + this.AlterarPreçoToolStripMenuItem.Name = "AlterarPreçoToolStripMenuItem"; + this.AlterarPreçoToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.AlterarPreçoToolStripMenuItem.Text = "Alterar preço"; + // + // AlterarDescontoToolStripMenuItem + // + this.AlterarDescontoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.money_delete; + this.AlterarDescontoToolStripMenuItem.Name = "AlterarDescontoToolStripMenuItem"; + this.AlterarDescontoToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.AlterarDescontoToolStripMenuItem.Text = "Alterar Desconto"; + // + // DesativarTodosToolStripMenuItem + // + this.DesativarTodosToolStripMenuItem.Enabled = false; + this.DesativarTodosToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.DesativarTodosToolStripMenuItem; + this.DesativarTodosToolStripMenuItem.Name = "DesativarTodosToolStripMenuItem"; + this.DesativarTodosToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.DesativarTodosToolStripMenuItem.Text = "Desativar todos"; + // + // AtivarTodosToolStripMenuItem + // + this.AtivarTodosToolStripMenuItem.Enabled = false; + this.AtivarTodosToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.AtivarTodosToolStripMenuItem; + this.AtivarTodosToolStripMenuItem.Name = "AtivarTodosToolStripMenuItem"; + this.AtivarTodosToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.AtivarTodosToolStripMenuItem.Text = "Ativar todos"; + // + // MudarMarcaçãoToolStripMenuItem + // + this.MudarMarcaçãoToolStripMenuItem.Enabled = false; + this.MudarMarcaçãoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.MudarMarcaçãoToolStripMenuItem; + this.MudarMarcaçãoToolStripMenuItem.Name = "MudarMarcaçãoToolStripMenuItem"; + this.MudarMarcaçãoToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.MudarMarcaçãoToolStripMenuItem.Text = "Mudar marcação"; + // + // RemoverMarcaçãoToolStripMenuItem + // + this.RemoverMarcaçãoToolStripMenuItem.Enabled = false; + this.RemoverMarcaçãoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.RemoverMarcaçãoToolStripMenuItem; + this.RemoverMarcaçãoToolStripMenuItem.Name = "RemoverMarcaçãoToolStripMenuItem"; + this.RemoverMarcaçãoToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.RemoverMarcaçãoToolStripMenuItem.Text = "Remover marcação"; + // + // LevelMinimoToolStripMenuItem + // + this.LevelMinimoToolStripMenuItem.Enabled = false; + this.LevelMinimoToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.LevelMinimoToolStripMenuItem; + this.LevelMinimoToolStripMenuItem.Name = "LevelMinimoToolStripMenuItem"; + this.LevelMinimoToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.LevelMinimoToolStripMenuItem.Text = "Alterar Level"; + // + // ToolStripMenuItem1 + // + this.ToolStripMenuItem1.Name = "ToolStripMenuItem1"; + this.ToolStripMenuItem1.Size = new System.Drawing.Size(173, 6); + // + // ApagarTodosToolStripMenuItem + // + this.ApagarTodosToolStripMenuItem.Enabled = false; + this.ApagarTodosToolStripMenuItem.Image = global::Pangya_Modern_Editor.Properties.Resources.ApagarTodosToolStripMenuItem; + this.ApagarTodosToolStripMenuItem.Name = "ApagarTodosToolStripMenuItem"; + this.ApagarTodosToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.ApagarTodosToolStripMenuItem.Text = "Apagar todos"; + // + // menuGerarCache + // + this.menuGerarCache.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.menuGerarCache.Enabled = false; + this.menuGerarCache.Image = global::Pangya_Modern_Editor.Properties.Resources.package_add; + this.menuGerarCache.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.menuGerarCache.ImageTransparentColor = System.Drawing.Color.Magenta; + this.menuGerarCache.Name = "menuGerarCache"; + this.menuGerarCache.Size = new System.Drawing.Size(36, 37); + this.menuGerarCache.Text = "ToolStripDropDownButton1"; + this.menuGerarCache.ToolTipText = "Gerar Cache de Imagens"; + // + // SplitContainer1 + // + this.SplitContainer1.BackColor = System.Drawing.Color.Silver; + this.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.SplitContainer1.IsSplitterFixed = true; + this.SplitContainer1.Location = new System.Drawing.Point(0, 40); + this.SplitContainer1.Name = "SplitContainer1"; + // + // SplitContainer1.Panel1 + // + this.SplitContainer1.Panel1.Controls.Add(this.Panel3); + this.SplitContainer1.Panel1.Controls.Add(this.Panel2); + this.SplitContainer1.Panel1.Controls.Add(this.Panel1); + this.SplitContainer1.Panel1MinSize = 200; + // + // SplitContainer1.Panel2 + // + this.SplitContainer1.Panel2.BackColor = System.Drawing.Color.White; + this.SplitContainer1.Panel2.Controls.Add(this.Panel4); + this.SplitContainer1.Panel2.Padding = new System.Windows.Forms.Padding(3); + this.SplitContainer1.Panel2MinSize = 0; + this.SplitContainer1.Size = new System.Drawing.Size(809, 486); + this.SplitContainer1.SplitterDistance = 277; + this.SplitContainer1.SplitterWidth = 2; + this.SplitContainer1.TabIndex = 3; + // + // Panel3 + // + this.Panel3.Controls.Add(this.ListaItem); + this.Panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.Panel3.Location = new System.Drawing.Point(0, 27); + this.Panel3.Name = "Panel3"; + this.Panel3.Size = new System.Drawing.Size(277, 390); + this.Panel3.TabIndex = 2; + // + // ListaItem + // + this.ListaItem.AllowUserToAddRows = false; + this.ListaItem.AllowUserToDeleteRows = false; + this.ListaItem.AllowUserToResizeColumns = false; + this.ListaItem.AllowUserToResizeRows = false; + this.ListaItem.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.ListaItem.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.ListaItem.DefaultCellStyle = dataGridViewCellStyle1; + this.ListaItem.Dock = System.Windows.Forms.DockStyle.Fill; + this.ListaItem.Location = new System.Drawing.Point(0, 0); + this.ListaItem.Name = "ListaItem"; + this.ListaItem.ReadOnly = true; + this.ListaItem.RowHeadersVisible = false; + this.ListaItem.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.ListaItem.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.ListaItem.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.ListaItem.ShowCellErrors = false; + this.ListaItem.ShowEditingIcon = false; + this.ListaItem.ShowRowErrors = false; + this.ListaItem.Size = new System.Drawing.Size(277, 390); + this.ListaItem.TabIndex = 0; + this.ListaItem.DefaultCellStyleChanged += new System.EventHandler(this.ListaItem_DefaultCellStyleChanged); + this.ListaItem.RowsDefaultCellStyleChanged += new System.EventHandler(this.ListaItem_RowsDefaultCellStyleChanged); + this.ListaItem.SelectionChanged += new System.EventHandler(this.listaItem_SelectedIndexChanged); + this.ListaItem.Sorted += new System.EventHandler(this.ListaItem_Sorted); + // + // Panel2 + // + this.Panel2.BackColor = System.Drawing.Color.DimGray; + this.Panel2.Controls.Add(this.PictureBox2); + this.Panel2.Controls.Add(this.lbArquivo); + this.Panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.Panel2.Location = new System.Drawing.Point(0, 0); + this.Panel2.Name = "Panel2"; + this.Panel2.Size = new System.Drawing.Size(277, 27); + this.Panel2.TabIndex = 1; + // + // PictureBox2 + // + this.PictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PictureBox2.BackColor = System.Drawing.Color.Transparent; + this.PictureBox2.Image = global::Pangya_Modern_Editor.Properties.Resources.document_editing; + this.PictureBox2.Location = new System.Drawing.Point(3, 4); + this.PictureBox2.Name = "PictureBox2"; + this.PictureBox2.Size = new System.Drawing.Size(20, 20); + this.PictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PictureBox2.TabIndex = 1; + this.PictureBox2.TabStop = false; + // + // lbArquivo + // + this.lbArquivo.AutoSize = true; + this.lbArquivo.BackColor = System.Drawing.Color.Transparent; + this.lbArquivo.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbArquivo.ForeColor = System.Drawing.Color.White; + this.lbArquivo.Location = new System.Drawing.Point(24, 6); + this.lbArquivo.Name = "lbArquivo"; + this.lbArquivo.Size = new System.Drawing.Size(139, 16); + this.lbArquivo.TabIndex = 0; + this.lbArquivo.Text = "Nenhum arquivo aberto"; + // + // Panel1 + // + this.Panel1.BackColor = System.Drawing.Color.White; + this.Panel1.Controls.Add(this.Label39); + this.Panel1.Controls.Add(this.imgStatus); + this.Panel1.Controls.Add(this.PictureBox4); + this.Panel1.Controls.Add(this.PictureBox1); + this.Panel1.Controls.Add(this.ComboBox2); + this.Panel1.Controls.Add(this.txtPesquisa); + this.Panel1.Controls.Add(this.Label33); + this.Panel1.Controls.Add(this.Label37); + this.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.Panel1.Location = new System.Drawing.Point(0, 417); + this.Panel1.Name = "Panel1"; + this.Panel1.Size = new System.Drawing.Size(277, 69); + this.Panel1.TabIndex = 0; + // + // Label39 + // + this.Label39.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.Label39.Location = new System.Drawing.Point(4, 27); + this.Label39.Name = "Label39"; + this.Label39.Size = new System.Drawing.Size(270, 2); + this.Label39.TabIndex = 22; + // + // imgStatus + // + this.imgStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imgStatus.BackColor = System.Drawing.Color.Transparent; + this.imgStatus.Image = global::Pangya_Modern_Editor.Properties.Resources.fred; + this.imgStatus.Location = new System.Drawing.Point(5, 30); + this.imgStatus.Name = "imgStatus"; + this.imgStatus.Size = new System.Drawing.Size(35, 35); + this.imgStatus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgStatus.TabIndex = 1; + this.imgStatus.TabStop = false; + // + // PictureBox4 + // + this.PictureBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PictureBox4.BackColor = System.Drawing.Color.Transparent; + this.PictureBox4.Image = global::Pangya_Modern_Editor.Properties.Resources.search_plus; + this.PictureBox4.Location = new System.Drawing.Point(202, 5); + this.PictureBox4.Name = "PictureBox4"; + this.PictureBox4.Size = new System.Drawing.Size(20, 20); + this.PictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PictureBox4.TabIndex = 1; + this.PictureBox4.TabStop = false; + // + // PictureBox1 + // + this.PictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PictureBox1.BackColor = System.Drawing.Color.Transparent; + this.PictureBox1.Image = global::Pangya_Modern_Editor.Properties.Resources.zoom; + this.PictureBox1.Location = new System.Drawing.Point(5, 5); + this.PictureBox1.Name = "PictureBox1"; + this.PictureBox1.Size = new System.Drawing.Size(20, 20); + this.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PictureBox1.TabIndex = 1; + this.PictureBox1.TabStop = false; + // + // ComboBox2 + // + this.ComboBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ComboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ComboBox2.FormattingEnabled = true; + this.ComboBox2.ItemHeight = 13; + this.ComboBox2.Items.AddRange(new object[] { + "Todos", + "Ativos", + "Desativados"}); + this.ComboBox2.Location = new System.Drawing.Point(46, 44); + this.ComboBox2.Name = "ComboBox2"; + this.ComboBox2.Size = new System.Drawing.Size(223, 21); + this.ComboBox2.TabIndex = 1; + this.ComboBox2.SelectedIndexChanged += new System.EventHandler(this.ComboBox2_SelectedIndexChanged); + // + // txtPesquisa + // + this.txtPesquisa.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtPesquisa.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtPesquisa.Enabled = false; + this.txtPesquisa.Location = new System.Drawing.Point(27, 5); + this.txtPesquisa.Name = "txtPesquisa"; + this.txtPesquisa.Size = new System.Drawing.Size(173, 20); + this.txtPesquisa.TabIndex = 0; + this.txtPesquisa.TextChanged += new System.EventHandler(this.txtPesquisa_TextChanged); + // + // Label33 + // + this.Label33.AutoSize = true; + this.Label33.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label33.Location = new System.Drawing.Point(224, 7); + this.Label33.Name = "Label33"; + this.Label33.Size = new System.Drawing.Size(14, 16); + this.Label33.TabIndex = 10; + this.Label33.Text = "0"; + // + // Label37 + // + this.Label37.AutoSize = true; + this.Label37.Location = new System.Drawing.Point(46, 30); + this.Label37.Name = "Label37"; + this.Label37.Size = new System.Drawing.Size(37, 13); + this.Label37.TabIndex = 10; + this.Label37.Text = "Status"; + // + // Panel4 + // + this.Panel4.Controls.Add(this.tabForm); + this.Panel4.Controls.Add(this.gbBotoes); + this.Panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.Panel4.Location = new System.Drawing.Point(3, 3); + this.Panel4.Name = "Panel4"; + this.Panel4.Padding = new System.Windows.Forms.Padding(5, 3, 5, 3); + this.Panel4.Size = new System.Drawing.Size(524, 480); + this.Panel4.TabIndex = 2; + // + // tabForm + // + this.tabForm.Controls.Add(this.TabPage1); + this.tabForm.Controls.Add(this.TabPage2); + this.tabForm.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabForm.Enabled = false; + this.tabForm.Location = new System.Drawing.Point(5, 3); + this.tabForm.Name = "tabForm"; + this.tabForm.SelectedIndex = 0; + this.tabForm.Size = new System.Drawing.Size(514, 404); + this.tabForm.TabIndex = 0; + // + // TabPage1 + // + this.TabPage1.BackColor = System.Drawing.Color.White; + this.TabPage1.Controls.Add(this.btnVerificarTYPEID); + this.TabPage1.Controls.Add(this.ckTempoAtivo); + this.TabPage1.Controls.Add(this.Panel10); + this.TabPage1.Controls.Add(this.GroupBox1); + this.TabPage1.Controls.Add(this.Label29); + this.TabPage1.Controls.Add(this.Label2); + this.TabPage1.Controls.Add(this.rbLevelMax); + this.TabPage1.Controls.Add(this.rbLevelMin); + this.TabPage1.Controls.Add(this.cbLevel); + this.TabPage1.Controls.Add(this.cbTipo); + this.TabPage1.Controls.Add(this.ckAtivo); + this.TabPage1.Controls.Add(this.imgIcone); + this.TabPage1.Controls.Add(this.txtIcone); + this.TabPage1.Controls.Add(this.txtTypeID); + this.TabPage1.Controls.Add(this.Label6); + this.TabPage1.Controls.Add(this.Label8); + this.TabPage1.Controls.Add(this.txtDesconto); + this.TabPage1.Controls.Add(this.txtPreco); + this.TabPage1.Controls.Add(this.txtNome); + this.TabPage1.Controls.Add(this.Label7); + this.TabPage1.Controls.Add(this.Label3); + this.TabPage1.Controls.Add(this.lbContNome); + this.TabPage1.Controls.Add(this.Label18); + this.TabPage1.Controls.Add(this.Label4); + this.TabPage1.Controls.Add(this.Label1); + this.TabPage1.Controls.Add(this.gbTempoVenda); + this.TabPage1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TabPage1.Location = new System.Drawing.Point(4, 22); + this.TabPage1.Name = "TabPage1"; + this.TabPage1.Padding = new System.Windows.Forms.Padding(3); + this.TabPage1.Size = new System.Drawing.Size(506, 378); + this.TabPage1.TabIndex = 0; + this.TabPage1.Text = "Informações Básicas"; + // + // btnVerificarTYPEID + // + this.btnVerificarTYPEID.Image = global::Pangya_Modern_Editor.Properties.Resources.search_plus; + this.btnVerificarTYPEID.Location = new System.Drawing.Point(257, 41); + this.btnVerificarTYPEID.Name = "btnVerificarTYPEID"; + this.btnVerificarTYPEID.Size = new System.Drawing.Size(25, 25); + this.btnVerificarTYPEID.TabIndex = 28; + this.ToolTip1.SetToolTip(this.btnVerificarTYPEID, "Verificar TYPEID"); + this.btnVerificarTYPEID.UseVisualStyleBackColor = true; + this.btnVerificarTYPEID.Click += new System.EventHandler(this.btnVerificarTYPEID_Click); + // + // ckTempoAtivo + // + this.ckTempoAtivo.AutoSize = true; + this.ckTempoAtivo.BackColor = System.Drawing.Color.Transparent; + this.ckTempoAtivo.Location = new System.Drawing.Point(318, 159); + this.ckTempoAtivo.Name = "ckTempoAtivo"; + this.ckTempoAtivo.Size = new System.Drawing.Size(51, 19); + this.ckTempoAtivo.TabIndex = 27; + this.ckTempoAtivo.Text = "Ativo"; + this.ckTempoAtivo.UseVisualStyleBackColor = false; + this.ckTempoAtivo.CheckedChanged += new System.EventHandler(this.ckTempoAtivo_CheckedChanged); + // + // Panel10 + // + this.Panel10.Controls.Add(this.attCurva); + this.Panel10.Controls.Add(this.attSpin); + this.Panel10.Controls.Add(this.attPrecisao); + this.Panel10.Controls.Add(this.attControle); + this.Panel10.Controls.Add(this.attForca); + this.Panel10.Controls.Add(this.Panel9); + this.Panel10.Controls.Add(this.Panel8); + this.Panel10.Controls.Add(this.Panel7); + this.Panel10.Controls.Add(this.Panel6); + this.Panel10.Controls.Add(this.Panel5); + this.Panel10.Controls.Add(this.Label9); + this.Panel10.Controls.Add(this.Label14); + this.Panel10.Controls.Add(this.Label13); + this.Panel10.Controls.Add(this.Label12); + this.Panel10.Controls.Add(this.Label11); + this.Panel10.Controls.Add(this.Label10); + this.Panel10.Controls.Add(this.Label15); + this.Panel10.Location = new System.Drawing.Point(0, 223); + this.Panel10.Name = "Panel10"; + this.Panel10.Size = new System.Drawing.Size(372, 154); + this.Panel10.TabIndex = 25; + // + // attCurva + // + this.attCurva.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.attCurva.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.attCurva.Location = new System.Drawing.Point(321, 123); + this.attCurva.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.attCurva.Name = "attCurva"; + this.attCurva.Size = new System.Drawing.Size(44, 21); + this.attCurva.TabIndex = 19; + this.attCurva.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.attCurva.ValueChanged += new System.EventHandler(this.attCurva_ValueChanged); + // + // attSpin + // + this.attSpin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.attSpin.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.attSpin.Location = new System.Drawing.Point(321, 98); + this.attSpin.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.attSpin.Name = "attSpin"; + this.attSpin.Size = new System.Drawing.Size(44, 21); + this.attSpin.TabIndex = 17; + this.attSpin.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.attSpin.ValueChanged += new System.EventHandler(this.attSpin_ValueChanged); + // + // attPrecisao + // + this.attPrecisao.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.attPrecisao.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.attPrecisao.Location = new System.Drawing.Point(321, 73); + this.attPrecisao.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.attPrecisao.Name = "attPrecisao"; + this.attPrecisao.Size = new System.Drawing.Size(44, 21); + this.attPrecisao.TabIndex = 15; + this.attPrecisao.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.attPrecisao.ValueChanged += new System.EventHandler(this.attPrecisao_ValueChanged); + // + // attControle + // + this.attControle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.attControle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.attControle.Location = new System.Drawing.Point(321, 48); + this.attControle.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.attControle.Name = "attControle"; + this.attControle.Size = new System.Drawing.Size(44, 21); + this.attControle.TabIndex = 13; + this.attControle.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.attControle.ValueChanged += new System.EventHandler(this.attControle_ValueChanged); + // + // attForca + // + this.attForca.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.attForca.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.attForca.Location = new System.Drawing.Point(321, 24); + this.attForca.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.attForca.Name = "attForca"; + this.attForca.Size = new System.Drawing.Size(44, 21); + this.attForca.TabIndex = 11; + this.attForca.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.attForca.ValueChanged += new System.EventHandler(this.attForca_ValueChanged); + // + // Panel9 + // + this.Panel9.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel9.Controls.Add(this.barraCurva); + this.Panel9.Location = new System.Drawing.Point(78, 125); + this.Panel9.Name = "Panel9"; + this.Panel9.Size = new System.Drawing.Size(237, 18); + this.Panel9.TabIndex = 24; + // + // barraCurva + // + this.barraCurva.BackColor = System.Drawing.Color.SlateBlue; + this.barraCurva.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.barraCurva.Location = new System.Drawing.Point(0, 0); + this.barraCurva.Name = "barraCurva"; + this.barraCurva.Size = new System.Drawing.Size(0, 18); + this.barraCurva.TabIndex = 24; + // + // Panel8 + // + this.Panel8.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel8.Controls.Add(this.barraSpin); + this.Panel8.Location = new System.Drawing.Point(78, 100); + this.Panel8.Name = "Panel8"; + this.Panel8.Size = new System.Drawing.Size(237, 18); + this.Panel8.TabIndex = 24; + // + // barraSpin + // + this.barraSpin.BackColor = System.Drawing.Color.MediumTurquoise; + this.barraSpin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.barraSpin.Location = new System.Drawing.Point(0, 0); + this.barraSpin.Name = "barraSpin"; + this.barraSpin.Size = new System.Drawing.Size(0, 18); + this.barraSpin.TabIndex = 24; + // + // Panel7 + // + this.Panel7.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel7.Controls.Add(this.barraPrecisao); + this.Panel7.Location = new System.Drawing.Point(78, 75); + this.Panel7.Name = "Panel7"; + this.Panel7.Size = new System.Drawing.Size(237, 18); + this.Panel7.TabIndex = 24; + // + // barraPrecisao + // + this.barraPrecisao.BackColor = System.Drawing.Color.LimeGreen; + this.barraPrecisao.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.barraPrecisao.Location = new System.Drawing.Point(0, 0); + this.barraPrecisao.Name = "barraPrecisao"; + this.barraPrecisao.Size = new System.Drawing.Size(0, 18); + this.barraPrecisao.TabIndex = 24; + // + // Panel6 + // + this.Panel6.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel6.Controls.Add(this.barraControle); + this.Panel6.Location = new System.Drawing.Point(78, 50); + this.Panel6.Name = "Panel6"; + this.Panel6.Size = new System.Drawing.Size(237, 18); + this.Panel6.TabIndex = 24; + // + // barraControle + // + this.barraControle.BackColor = System.Drawing.Color.Orange; + this.barraControle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.barraControle.Location = new System.Drawing.Point(0, 0); + this.barraControle.Name = "barraControle"; + this.barraControle.Size = new System.Drawing.Size(0, 18); + this.barraControle.TabIndex = 24; + // + // Panel5 + // + this.Panel5.BackColor = System.Drawing.Color.WhiteSmoke; + this.Panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Panel5.Controls.Add(this.barraForca); + this.Panel5.Location = new System.Drawing.Point(78, 25); + this.Panel5.Name = "Panel5"; + this.Panel5.Size = new System.Drawing.Size(237, 18); + this.Panel5.TabIndex = 24; + // + // barraForca + // + this.barraForca.BackColor = System.Drawing.Color.Red; + this.barraForca.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.barraForca.Location = new System.Drawing.Point(0, 0); + this.barraForca.Name = "barraForca"; + this.barraForca.Size = new System.Drawing.Size(0, 18); + this.barraForca.TabIndex = 24; + // + // Label9 + // + this.Label9.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.Label9.Location = new System.Drawing.Point(12, 3); + this.Label9.Name = "Label9"; + this.Label9.Size = new System.Drawing.Size(356, 2); + this.Label9.TabIndex = 21; + // + // Label14 + // + this.Label14.AutoSize = true; + this.Label14.Location = new System.Drawing.Point(29, 127); + this.Label14.Name = "Label14"; + this.Label14.Size = new System.Drawing.Size(47, 15); + this.Label14.TabIndex = 7; + this.Label14.Text = "CURVA"; + // + // Label13 + // + this.Label13.AutoSize = true; + this.Label13.Location = new System.Drawing.Point(41, 102); + this.Label13.Name = "Label13"; + this.Label13.Size = new System.Drawing.Size(35, 15); + this.Label13.TabIndex = 7; + this.Label13.Text = "SPIN"; + // + // Label12 + // + this.Label12.AutoSize = true; + this.Label12.Location = new System.Drawing.Point(8, 77); + this.Label12.Name = "Label12"; + this.Label12.Size = new System.Drawing.Size(68, 15); + this.Label12.TabIndex = 7; + this.Label12.Text = "PRECISÃO"; + // + // Label11 + // + this.Label11.AutoSize = true; + this.Label11.Location = new System.Drawing.Point(2, 52); + this.Label11.Name = "Label11"; + this.Label11.Size = new System.Drawing.Size(74, 15); + this.Label11.TabIndex = 7; + this.Label11.Text = "CONTROLE"; + // + // Label10 + // + this.Label10.AutoSize = true; + this.Label10.Location = new System.Drawing.Point(28, 26); + this.Label10.Name = "Label10"; + this.Label10.Size = new System.Drawing.Size(48, 15); + this.Label10.TabIndex = 7; + this.Label10.Text = "FORÇA"; + // + // Label15 + // + this.Label15.AutoSize = true; + this.Label15.Location = new System.Drawing.Point(320, 8); + this.Label15.Name = "Label15"; + this.Label15.Size = new System.Drawing.Size(48, 15); + this.Label15.TabIndex = 10; + this.Label15.Text = "Atributo"; + // + // GroupBox1 + // + this.GroupBox1.Controls.Add(this.ckNew); + this.GroupBox1.Controls.Add(this.ckDesativado); + this.GroupBox1.Controls.Add(this.ckNormal); + this.GroupBox1.Controls.Add(this.ckHot); + this.GroupBox1.Controls.Add(this.ckGift); + this.GroupBox1.Location = new System.Drawing.Point(379, 148); + this.GroupBox1.Name = "GroupBox1"; + this.GroupBox1.Size = new System.Drawing.Size(118, 154); + this.GroupBox1.TabIndex = 10; + this.GroupBox1.TabStop = false; + this.GroupBox1.Text = "Marcação"; + // + // ckNew + // + this.ckNew.AutoSize = true; + this.ckNew.Location = new System.Drawing.Point(11, 23); + this.ckNew.Name = "ckNew"; + this.ckNew.Size = new System.Drawing.Size(81, 19); + this.ckNew.TabIndex = 0; + this.ckNew.Text = "Item Novo"; + this.ckNew.UseVisualStyleBackColor = true; + // + // ckDesativado + // + this.ckDesativado.AutoSize = true; + this.ckDesativado.Location = new System.Drawing.Point(11, 127); + this.ckDesativado.Name = "ckDesativado"; + this.ckDesativado.Size = new System.Drawing.Size(61, 19); + this.ckDesativado.TabIndex = 5; + this.ckDesativado.Text = "Oculto"; + this.ckDesativado.UseVisualStyleBackColor = true; + this.ckDesativado.CheckedChanged += new System.EventHandler(this.ckDesativado_CheckedChanged); + // + // ckNormal + // + this.ckNormal.AutoSize = true; + this.ckNormal.Location = new System.Drawing.Point(11, 101); + this.ckNormal.Name = "ckNormal"; + this.ckNormal.Size = new System.Drawing.Size(94, 19); + this.ckNormal.TabIndex = 5; + this.ckNormal.Text = "Item Normal"; + this.ckNormal.UseVisualStyleBackColor = true; + // + // ckHot + // + this.ckHot.AutoSize = true; + this.ckHot.Location = new System.Drawing.Point(11, 49); + this.ckHot.Name = "ckHot"; + this.ckHot.Size = new System.Drawing.Size(93, 19); + this.ckHot.TabIndex = 1; + this.ckHot.Text = "Item Quente"; + this.ckHot.UseVisualStyleBackColor = true; + // + // ckGift + // + this.ckGift.AutoSize = true; + this.ckGift.Location = new System.Drawing.Point(11, 75); + this.ckGift.Name = "ckGift"; + this.ckGift.Size = new System.Drawing.Size(76, 19); + this.ckGift.TabIndex = 3; + this.ckGift.Text = "Presente"; + this.ckGift.UseVisualStyleBackColor = true; + // + // Label29 + // + this.Label29.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.Label29.Location = new System.Drawing.Point(13, 143); + this.Label29.Name = "Label29"; + this.Label29.Size = new System.Drawing.Size(483, 2); + this.Label29.TabIndex = 21; + // + // Label2 + // + this.Label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.Label2.Location = new System.Drawing.Point(13, 107); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(483, 2); + this.Label2.TabIndex = 21; + // + // rbLevelMax + // + this.rbLevelMax.AutoSize = true; + this.rbLevelMax.Location = new System.Drawing.Point(397, 77); + this.rbLevelMax.Name = "rbLevelMax"; + this.rbLevelMax.Size = new System.Drawing.Size(99, 19); + this.rbLevelMax.TabIndex = 7; + this.rbLevelMax.Text = "Level Máximo"; + this.rbLevelMax.UseVisualStyleBackColor = true; + // + // rbLevelMin + // + this.rbLevelMin.AutoSize = true; + this.rbLevelMin.Checked = true; + this.rbLevelMin.Location = new System.Drawing.Point(297, 77); + this.rbLevelMin.Name = "rbLevelMin"; + this.rbLevelMin.Size = new System.Drawing.Size(97, 19); + this.rbLevelMin.TabIndex = 6; + this.rbLevelMin.TabStop = true; + this.rbLevelMin.Text = "Level Mínimo"; + this.rbLevelMin.UseVisualStyleBackColor = true; + // + // cbLevel + // + this.cbLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbLevel.FormattingEnabled = true; + this.cbLevel.Items.AddRange(new object[] { + "00 - Rookie F", + "01 - Rookie E", + "02 - Rookie D", + "03 - Rookie C", + "04 - Rookie B", + "05 - Rookie A", + "06 - Beginner E", + "07 - Beginner D", + "08 - Beginner C", + "09 - Beginner B", + "10 - Beginner A", + "11 - Junior E", + "12 - Junior D", + "13 - Junior C", + "14 - Junior B", + "15 - Junior A", + "16 - Senior E", + "17 - Senior D", + "18 - Senior C", + "19 - Senior B", + "20 - Senior A", + "21 - Amateur E", + "22 - Amateur D", + "23 - Amateur C", + "24 - Amateur B", + "25 - Amateur A", + "26 - Semi-Pro E", + "27 - Semi-Pro D", + "28 - Semi-Pro C", + "29 - Semi-Pro B", + "30 - Semi-Pro A", + "31 - Pro E", + "32 - Pro D", + "33 - Pro C", + "34 - Pro B", + "35 - Pro A", + "36 - National Pro E", + "37 - National Pro D", + "38 - National Pro C", + "39 - National Pro B", + "40 - National Pro A", + "41 - World Pro E", + "42 - World Pro D", + "43 - World Pro C", + "44 - World Pro B", + "45 - World Pro A", + "46 - Master E", + "47 - Master D", + "48 - Master C", + "49 - Master B", + "50 - Master A", + "51 - Top Master E", + "52 - Top Master D", + "53 - Top Master C", + "54 - Top Master B", + "55 - Top Master A", + "56 - Jungle Master E", + "57 - Jungle Master D", + "58 - Jungle Master C", + "59 - Jungle Master B", + "60 - Jungle Master A", + "61 - Legend E", + "62 - Legend D", + "63 - Legend C", + "64 - Legend B", + "65 - Legend A", + "66 - Infinity Legend E", + "67 - Infinity Legend D", + "68 - Infinity Legend C", + "69 - Infinity Legend B", + "70 - Infinity Legend A "}); + this.cbLevel.Location = new System.Drawing.Point(154, 74); + this.cbLevel.Name = "cbLevel"; + this.cbLevel.Size = new System.Drawing.Size(127, 23); + this.cbLevel.TabIndex = 5; + // + // cbTipo + // + this.cbTipo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbTipo.FormattingEnabled = true; + this.cbTipo.Items.AddRange(new object[] { + "Oculto", + "Points", + "Pangs"}); + this.cbTipo.Location = new System.Drawing.Point(395, 114); + this.cbTipo.Name = "cbTipo"; + this.cbTipo.Size = new System.Drawing.Size(101, 23); + this.cbTipo.TabIndex = 9; + // + // ckAtivo + // + this.ckAtivo.AutoSize = true; + this.ckAtivo.Location = new System.Drawing.Point(444, 45); + this.ckAtivo.Name = "ckAtivo"; + this.ckAtivo.Size = new System.Drawing.Size(58, 19); + this.ckAtivo.TabIndex = 4; + this.ckAtivo.Text = "ATIVO"; + this.ckAtivo.UseVisualStyleBackColor = true; + // + // imgIcone + // + this.imgIcone.BackgroundImage = global::Pangya_Modern_Editor.Properties.Resources.bg_transparent; + this.imgIcone.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.imgIcone.ErrorImage = global::Pangya_Modern_Editor.Properties.Resources._error; + this.imgIcone.InitialImage = global::Pangya_Modern_Editor.Properties.Resources.ajax_loader; + this.imgIcone.Location = new System.Drawing.Point(17, 14); + this.imgIcone.Name = "imgIcone"; + this.imgIcone.Size = new System.Drawing.Size(85, 85); + this.imgIcone.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgIcone.TabIndex = 14; + this.imgIcone.TabStop = false; + // + // txtIcone + // + this.txtIcone.Location = new System.Drawing.Point(323, 43); + this.txtIcone.Name = "txtIcone"; + this.txtIcone.Size = new System.Drawing.Size(115, 21); + this.txtIcone.TabIndex = 3; + // + // txtTypeID + // + this.txtTypeID.Location = new System.Drawing.Point(154, 43); + this.txtTypeID.Name = "txtTypeID"; + this.txtTypeID.Size = new System.Drawing.Size(101, 21); + this.txtTypeID.TabIndex = 2; + // + // Label6 + // + this.Label6.AutoSize = true; + this.Label6.Location = new System.Drawing.Point(109, 78); + this.Label6.Name = "Label6"; + this.Label6.Size = new System.Drawing.Size(36, 15); + this.Label6.TabIndex = 8; + this.Label6.Text = "Level"; + // + // Label8 + // + this.Label8.AutoSize = true; + this.Label8.Location = new System.Drawing.Point(345, 117); + this.Label8.Name = "Label8"; + this.Label8.Size = new System.Drawing.Size(44, 15); + this.Label8.TabIndex = 7; + this.Label8.Text = "Moeda"; + // + // txtDesconto + // + this.txtDesconto.Location = new System.Drawing.Point(238, 116); + this.txtDesconto.MaxLength = 40; + this.txtDesconto.Name = "txtDesconto"; + this.txtDesconto.Size = new System.Drawing.Size(96, 21); + this.txtDesconto.TabIndex = 8; + // + // txtPreco + // + this.txtPreco.Location = new System.Drawing.Point(49, 116); + this.txtPreco.MaxLength = 40; + this.txtPreco.Name = "txtPreco"; + this.txtPreco.Size = new System.Drawing.Size(100, 21); + this.txtPreco.TabIndex = 8; + // + // txtNome + // + this.txtNome.Location = new System.Drawing.Point(154, 11); + this.txtNome.MaxLength = 40; + this.txtNome.Name = "txtNome"; + this.txtNome.Size = new System.Drawing.Size(312, 21); + this.txtNome.TabIndex = 0; + this.txtNome.TextChanged += new System.EventHandler(this.txtNome_TextChanged); + // + // Label7 + // + this.Label7.AutoSize = true; + this.Label7.Location = new System.Drawing.Point(283, 46); + this.Label7.Name = "Label7"; + this.Label7.Size = new System.Drawing.Size(37, 15); + this.Label7.TabIndex = 11; + this.Label7.Text = "Icone"; + // + // Label3 + // + this.Label3.AutoSize = true; + this.Label3.Location = new System.Drawing.Point(109, 46); + this.Label3.Name = "Label3"; + this.Label3.Size = new System.Drawing.Size(19, 15); + this.Label3.TabIndex = 11; + this.Label3.Text = "ID"; + // + // lbContNome + // + this.lbContNome.AutoSize = true; + this.lbContNome.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbContNome.ForeColor = System.Drawing.Color.Gray; + this.lbContNome.Location = new System.Drawing.Point(468, 14); + this.lbContNome.Name = "lbContNome"; + this.lbContNome.Size = new System.Drawing.Size(28, 14); + this.lbContNome.TabIndex = 9; + this.lbContNome.Text = "0/40"; + // + // Label18 + // + this.Label18.AutoSize = true; + this.Label18.Location = new System.Drawing.Point(177, 119); + this.Label18.Name = "Label18"; + this.Label18.Size = new System.Drawing.Size(60, 15); + this.Label18.TabIndex = 10; + this.Label18.Text = "Desconto"; + // + // Label4 + // + this.Label4.AutoSize = true; + this.Label4.Location = new System.Drawing.Point(10, 119); + this.Label4.Name = "Label4"; + this.Label4.Size = new System.Drawing.Size(39, 15); + this.Label4.TabIndex = 10; + this.Label4.Text = "Preço"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(109, 14); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(41, 15); + this.Label1.TabIndex = 10; + this.Label1.Text = "Nome"; + // + // gbTempoVenda + // + this.gbTempoVenda.Controls.Add(this.dtTermino); + this.gbTempoVenda.Controls.Add(this.dtInicio); + this.gbTempoVenda.Controls.Add(this.Label28); + this.gbTempoVenda.Controls.Add(this.Label27); + this.gbTempoVenda.Enabled = false; + this.gbTempoVenda.Location = new System.Drawing.Point(13, 148); + this.gbTempoVenda.Name = "gbTempoVenda"; + this.gbTempoVenda.Size = new System.Drawing.Size(359, 73); + this.gbTempoVenda.TabIndex = 10; + this.gbTempoVenda.TabStop = false; + this.gbTempoVenda.Text = "Venda Programada"; + // + // dtTermino + // + this.dtTermino.CustomFormat = "dd/MM/yyyy HH:mm:ss"; + this.dtTermino.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtTermino.Location = new System.Drawing.Point(185, 42); + this.dtTermino.Name = "dtTermino"; + this.dtTermino.Size = new System.Drawing.Size(164, 21); + this.dtTermino.TabIndex = 26; + // + // dtInicio + // + this.dtInicio.CustomFormat = "dd/MM/yyyy HH:mm:ss"; + this.dtInicio.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtInicio.Location = new System.Drawing.Point(13, 42); + this.dtInicio.Name = "dtInicio"; + this.dtInicio.Size = new System.Drawing.Size(166, 21); + this.dtInicio.TabIndex = 26; + // + // Label28 + // + this.Label28.AutoSize = true; + this.Label28.Location = new System.Drawing.Point(183, 23); + this.Label28.Name = "Label28"; + this.Label28.Size = new System.Drawing.Size(107, 15); + this.Label28.TabIndex = 10; + this.Label28.Text = "Término da Venda"; + // + // Label27 + // + this.Label27.AutoSize = true; + this.Label27.Location = new System.Drawing.Point(36, 24); + this.Label27.Name = "Label27"; + this.Label27.Size = new System.Drawing.Size(90, 15); + this.Label27.TabIndex = 10; + this.Label27.Text = "Início da Venda"; + // + // TabPage2 + // + this.TabPage2.Controls.Add(this.imgPersonagem); + this.TabPage2.Controls.Add(this.Label36); + this.TabPage2.Controls.Add(this.ComboBox1); + this.TabPage2.Controls.Add(this.GroupBox3); + this.TabPage2.Location = new System.Drawing.Point(4, 22); + this.TabPage2.Name = "TabPage2"; + this.TabPage2.Padding = new System.Windows.Forms.Padding(3); + this.TabPage2.Size = new System.Drawing.Size(506, 378); + this.TabPage2.TabIndex = 1; + this.TabPage2.Text = "Avançado"; + this.TabPage2.UseVisualStyleBackColor = true; + // + // imgPersonagem + // + this.imgPersonagem.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imgPersonagem.BackColor = System.Drawing.Color.Transparent; + this.imgPersonagem.Image = global::Pangya_Modern_Editor.Properties.Resources.fred; + this.imgPersonagem.Location = new System.Drawing.Point(9, 338); + this.imgPersonagem.Name = "imgPersonagem"; + this.imgPersonagem.Size = new System.Drawing.Size(35, 35); + this.imgPersonagem.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgPersonagem.TabIndex = 15; + this.imgPersonagem.TabStop = false; + this.imgPersonagem.Visible = false; + // + // Label36 + // + this.Label36.AutoSize = true; + this.Label36.Location = new System.Drawing.Point(46, 335); + this.Label36.Name = "Label36"; + this.Label36.Size = new System.Drawing.Size(66, 13); + this.Label36.TabIndex = 16; + this.Label36.Text = "Personagem"; + this.Label36.Visible = false; + // + // ComboBox1 + // + this.ComboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ComboBox1.FormattingEnabled = true; + this.ComboBox1.ItemHeight = 13; + this.ComboBox1.Items.AddRange(new object[] { + "Todos", + "Nico", + "Hana", + "Fred", + "Cecilia", + "Max", + "Kooh", + "Arin", + "Kaz", + "Lucia", + "Nell"}); + this.ComboBox1.Location = new System.Drawing.Point(49, 351); + this.ComboBox1.Name = "ComboBox1"; + this.ComboBox1.Size = new System.Drawing.Size(89, 21); + this.ComboBox1.TabIndex = 14; + this.ComboBox1.Visible = false; + // + // GroupBox3 + // + this.GroupBox3.Controls.Add(this.Label23); + this.GroupBox3.Controls.Add(this.txtSalary); + this.GroupBox3.Controls.Add(this.labeladd); + this.GroupBox3.Controls.Add(this.txtSprite); + this.GroupBox3.Location = new System.Drawing.Point(6, 4); + this.GroupBox3.Name = "GroupBox3"; + this.GroupBox3.Size = new System.Drawing.Size(493, 88); + this.GroupBox3.TabIndex = 13; + this.GroupBox3.TabStop = false; + // + // Label23 + // + this.Label23.AutoSize = true; + this.Label23.Location = new System.Drawing.Point(9, 52); + this.Label23.Name = "Label23"; + this.Label23.Size = new System.Drawing.Size(39, 13); + this.Label23.TabIndex = 12; + this.Label23.Text = "Salario"; + // + // txtSalary + // + this.txtSalary.Location = new System.Drawing.Point(60, 48); + this.txtSalary.MaxLength = 40; + this.txtSalary.Name = "txtSalary"; + this.txtSalary.Size = new System.Drawing.Size(135, 20); + this.txtSalary.TabIndex = 11; + this.txtSalary.Text = "0"; + // + // labeladd + // + this.labeladd.AutoSize = true; + this.labeladd.Location = new System.Drawing.Point(9, 22); + this.labeladd.Name = "labeladd"; + this.labeladd.Size = new System.Drawing.Size(28, 13); + this.labeladd.TabIndex = 12; + this.labeladd.Text = "PET"; + // + // txtSprite + // + this.txtSprite.Location = new System.Drawing.Point(60, 18); + this.txtSprite.MaxLength = 40; + this.txtSprite.Name = "txtSprite"; + this.txtSprite.Size = new System.Drawing.Size(427, 20); + this.txtSprite.TabIndex = 11; + // + // gbBotoes + // + this.gbBotoes.Controls.Add(this.btnReabrir); + this.gbBotoes.Controls.Add(this.btnNovo); + this.gbBotoes.Controls.Add(this.btnRemover); + this.gbBotoes.Controls.Add(this.btnBackup); + this.gbBotoes.Controls.Add(this.btnSalvar); + this.gbBotoes.Dock = System.Windows.Forms.DockStyle.Bottom; + this.gbBotoes.Enabled = false; + this.gbBotoes.Location = new System.Drawing.Point(5, 407); + this.gbBotoes.Name = "gbBotoes"; + this.gbBotoes.Size = new System.Drawing.Size(514, 70); + this.gbBotoes.TabIndex = 1; + this.gbBotoes.TabStop = false; + // + // btnReabrir + // + this.btnReabrir.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnReabrir.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnReabrir.Image = global::Pangya_Modern_Editor.Properties.Resources.accept; + this.btnReabrir.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnReabrir.Location = new System.Drawing.Point(308, 14); + this.btnReabrir.Name = "btnReabrir"; + this.btnReabrir.Size = new System.Drawing.Size(97, 48); + this.btnReabrir.TabIndex = 0; + this.btnReabrir.TabStop = false; + this.btnReabrir.Text = "Aplicar"; + this.btnReabrir.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.btnReabrir.UseVisualStyleBackColor = true; + this.btnReabrir.Click += new System.EventHandler(this.btnReabrir_Click); + // + // btnNovo + // + this.btnNovo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnNovo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnNovo.Image = global::Pangya_Modern_Editor.Properties.Resources.add; + this.btnNovo.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnNovo.Location = new System.Drawing.Point(8, 14); + this.btnNovo.Name = "btnNovo"; + this.btnNovo.Size = new System.Drawing.Size(97, 48); + this.btnNovo.TabIndex = 0; + this.btnNovo.TabStop = false; + this.btnNovo.Text = "Novo"; + this.btnNovo.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.btnNovo.UseVisualStyleBackColor = true; + this.btnNovo.Click += new System.EventHandler(this.btnNovo_Click); + // + // btnRemover + // + this.btnRemover.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnRemover.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnRemover.Image = global::Pangya_Modern_Editor.Properties.Resources.delete; + this.btnRemover.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnRemover.Location = new System.Drawing.Point(108, 14); + this.btnRemover.Name = "btnRemover"; + this.btnRemover.Size = new System.Drawing.Size(97, 48); + this.btnRemover.TabIndex = 0; + this.btnRemover.TabStop = false; + this.btnRemover.Text = "Remover"; + this.btnRemover.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.btnRemover.UseVisualStyleBackColor = true; + this.btnRemover.Click += new System.EventHandler(this.btnRemover_Click); + // + // btnBackup + // + this.btnBackup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnBackup.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnBackup.Image = global::Pangya_Modern_Editor.Properties.Resources.stamp_pattern; + this.btnBackup.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnBackup.Location = new System.Drawing.Point(208, 14); + this.btnBackup.Name = "btnBackup"; + this.btnBackup.Size = new System.Drawing.Size(97, 48); + this.btnBackup.TabIndex = 0; + this.btnBackup.TabStop = false; + this.btnBackup.Text = "Clonar"; + this.btnBackup.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.btnBackup.UseVisualStyleBackColor = true; + this.btnBackup.Click += new System.EventHandler(this.btnBackup_Click); + // + // btnSalvar + // + this.btnSalvar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.btnSalvar.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSalvar.Image = global::Pangya_Modern_Editor.Properties.Resources.disk; + this.btnSalvar.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnSalvar.Location = new System.Drawing.Point(408, 14); + this.btnSalvar.Name = "btnSalvar"; + this.btnSalvar.Size = new System.Drawing.Size(97, 48); + this.btnSalvar.TabIndex = 0; + this.btnSalvar.TabStop = false; + this.btnSalvar.Text = "Salvar"; + this.btnSalvar.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.btnSalvar.UseVisualStyleBackColor = true; + this.btnSalvar.Click += new System.EventHandler(this.btnSalvar_Click); + // + // bwSalvar + // + this.bwSalvar.WorkerReportsProgress = true; + this.bwSalvar.WorkerSupportsCancellation = true; + this.bwSalvar.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bwSalvar_DoWork); + this.bwSalvar.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bwSalvar_ProgressChanged); + this.bwSalvar.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bwSalvar_RunWorkerCompleted); + // + // bwGerarSql + // + this.bwGerarSql.WorkerReportsProgress = true; + this.bwGerarSql.WorkerSupportsCancellation = true; + // + // ImageList1 + // + this.ImageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ImageList1.ImageStream"))); + this.ImageList1.TransparentColor = System.Drawing.Color.Transparent; + this.ImageList1.Images.SetKeyName(0, "nenhum.png"); + this.ImageList1.Images.SetKeyName(1, "nuri.png"); + this.ImageList1.Images.SetKeyName(2, "hana.png"); + this.ImageList1.Images.SetKeyName(3, "fred.png"); + this.ImageList1.Images.SetKeyName(4, "cecilia.png"); + this.ImageList1.Images.SetKeyName(5, "max.png"); + this.ImageList1.Images.SetKeyName(6, "kooh.png"); + this.ImageList1.Images.SetKeyName(7, "arin.png"); + this.ImageList1.Images.SetKeyName(8, "kaz.png"); + this.ImageList1.Images.SetKeyName(9, "lucia.png"); + this.ImageList1.Images.SetKeyName(10, "nell.png"); + // + // ImageList2 + // + this.ImageList2.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ImageList2.ImageStream"))); + this.ImageList2.TransparentColor = System.Drawing.Color.Transparent; + this.ImageList2.Images.SetKeyName(0, "fred.png"); + this.ImageList2.Images.SetKeyName(1, "accept.png"); + this.ImageList2.Images.SetKeyName(2, "delete.png"); + // + // diagSalvarArquivo + // + this.diagSalvarArquivo.DefaultExt = "iff"; + this.diagSalvarArquivo.Filter = "Imagem (*.iff)|*.iff"; + this.diagSalvarArquivo.RestoreDirectory = true; + this.diagSalvarArquivo.Title = "Salvar arquivo Caddie.iff"; + // + // diagAbrirArquivo + // + this.diagAbrirArquivo.DefaultExt = "iff"; + this.diagAbrirArquivo.Filter = "Pangya (*.iff)|*.iff"; + this.diagAbrirArquivo.RestoreDirectory = true; + this.diagAbrirArquivo.Title = "Abrir arquivo (Caddie.iff)"; + // + // diagSalvarSql + // + this.diagSalvarSql.DefaultExt = "sql"; + this.diagSalvarSql.FileName = "Caddie.iff.sql"; + this.diagSalvarSql.Filter = "SQL (*.sql)|*.sql"; + this.diagSalvarSql.RestoreDirectory = true; + this.diagSalvarSql.Title = "Salvar arquivo SQL"; + // + // diagPasta + // + this.diagPasta.Description = "Selecione a pasta de arquivos"; + // + // FrmEditorCaddies + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(809, 548); + this.Controls.Add(this.SplitContainer1); + this.Controls.Add(this.StatusStrip1); + this.Controls.Add(this.ToolStrip1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.MaximizeBox = false; + this.Name = "FrmEditorCaddies"; + this.ShowIcon = false; + this.Text = "Caddie - Editor IFF "; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmEditorCaddies_Closing); + this.Load += new System.EventHandler(this.FrmEditorCaddies_Load); + this.ToolStrip1.ResumeLayout(false); + this.ToolStrip1.PerformLayout(); + this.SplitContainer1.Panel1.ResumeLayout(false); + this.SplitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.SplitContainer1)).EndInit(); + this.SplitContainer1.ResumeLayout(false); + this.Panel3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.ListaItem)).EndInit(); + this.Panel2.ResumeLayout(false); + this.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox2)).EndInit(); + this.Panel1.ResumeLayout(false); + this.Panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgStatus)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PictureBox1)).EndInit(); + this.Panel4.ResumeLayout(false); + this.tabForm.ResumeLayout(false); + this.TabPage1.ResumeLayout(false); + this.TabPage1.PerformLayout(); + this.Panel10.ResumeLayout(false); + this.Panel10.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.attCurva)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.attSpin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.attPrecisao)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.attControle)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.attForca)).EndInit(); + this.Panel9.ResumeLayout(false); + this.Panel8.ResumeLayout(false); + this.Panel7.ResumeLayout(false); + this.Panel6.ResumeLayout(false); + this.Panel5.ResumeLayout(false); + this.GroupBox1.ResumeLayout(false); + this.GroupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgIcone)).EndInit(); + this.gbTempoVenda.ResumeLayout(false); + this.gbTempoVenda.PerformLayout(); + this.TabPage2.ResumeLayout(false); + this.TabPage2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.imgPersonagem)).EndInit(); + this.GroupBox3.ResumeLayout(false); + this.GroupBox3.PerformLayout(); + this.gbBotoes.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + DataGridViewCellStyle style = new DataGridViewCellStyle(); + StatusStrip StatusStrip1; + ToolStripStatusLabel ToolStripStatusLabel1; + ToolStripStatusLabel lbTotalItens; + ToolStripStatusLabel ToolStripStatusLabel4; + ToolStripStatusLabel lbIndices; + ToolStripStatusLabel ToolStripStatusLabel2; + ToolStripStatusLabel lbStatus; + ToolStripProgressBar pbStatus; + ToolStrip ToolStrip1; + ToolStripButton btnAbrirArquivo; + ToolStripButton menuSalvarComo; + ToolStripButton menuGerarSql; + ToolStripButton menuTypeid; + ToolStripButton menuBackup; + ToolStripDropDownButton menuDividir; + ToolStripMenuItem DividirArquivoToolStripMenuItem; + ToolStripMenuItem UnirArquivoToolStripMenuItem; + ToolStripDropDownButton menuMassa; + ToolStripMenuItem AlterarPreçoToolStripMenuItem; + ToolStripMenuItem AlterarDescontoToolStripMenuItem; + ToolStripMenuItem DesativarTodosToolStripMenuItem; + ToolStripMenuItem AtivarTodosToolStripMenuItem; + ToolStripMenuItem MudarMarcaçãoToolStripMenuItem; + ToolStripMenuItem RemoverMarcaçãoToolStripMenuItem; + ToolStripMenuItem LevelMinimoToolStripMenuItem; + ToolStripSeparator ToolStripMenuItem1; + ToolStripMenuItem ApagarTodosToolStripMenuItem; + ToolStripButton menuGerarCache; + SplitContainer SplitContainer1; + Panel Panel3; + DataGridView ListaItem; + Panel Panel2; + PictureBox PictureBox2; + Label lbArquivo; + Panel Panel1; + Label Label39; + PictureBox imgStatus; + PictureBox PictureBox4; + PictureBox PictureBox1; + ComboBox ComboBox2; + TextBox txtPesquisa; + Label Label33; + Label Label37; + Panel Panel4; + TabControl tabForm; + TabPage TabPage1; + Button btnVerificarTYPEID; + CheckBox ckTempoAtivo; + GroupBox GroupBox1; + CheckBox ckNew; + CheckBox ckDesativado; + CheckBox ckNormal; + CheckBox ckHot; + CheckBox ckGift; + Label Label29; + Label Label2; + RadioButton rbLevelMax; + RadioButton rbLevelMin; + ComboBox cbLevel; + ComboBox cbTipo; + CheckBox ckAtivo; + PictureBox imgIcone; + TextBox txtIcone; + TextBox txtTypeID; + Label Label6; + Label Label8; + TextBox txtDesconto; + TextBox txtPreco; + TextBox txtNome; + Label Label7; + Label Label3; + Label lbContNome; + Label Label18; + Label Label4; + Label Label1; + GroupBox gbTempoVenda; + DateTimePicker dtTermino; + DateTimePicker dtInicio; + Label Label28; + Label Label27; + TabPage TabPage2; + PictureBox imgPersonagem; + Label Label36; + ComboBox ComboBox1; + GroupBox GroupBox3; + Label Label23; + TextBox txtSalary; + Label labeladd; + TextBox txtSprite; + GroupBox gbBotoes; + Button btnReabrir; + Button btnNovo; + Button btnRemover; + Button btnBackup; + Button btnSalvar; + System.ComponentModel.BackgroundWorker bwSalvar; + System.ComponentModel.BackgroundWorker bwGerarSql; + ImageList ImageList1; + ImageList ImageList2; + SaveFileDialog diagSalvarArquivo; + OpenFileDialog diagAbrirArquivo; + SaveFileDialog diagSalvarSql; + FolderBrowserDialog diagPasta; + ToolTip ToolTip1; + Label Label15; + Label Label10; + Label Label11; + Label Label12; + Label Label13; + Label Label14; + Label Label9; + Panel Panel5; + Panel barraForca; + Panel Panel6; + Panel barraControle; + Panel Panel7; + Panel barraPrecisao; + Panel Panel8; + Panel barraSpin; + Panel Panel9; + Panel barraCurva; + NumericUpDown attForca; + NumericUpDown attControle; + NumericUpDown attPrecisao; + NumericUpDown attSpin; + NumericUpDown attCurva; + Panel Panel10; + public string Arquivo; + private PangLib.IFF.Models.Data.Caddie oIff; + public IFFFile lsItens; + public IFFFile lsTemp; + public byte[] bStart; + private bool Alterado; + private BindingSource bs; + private int lastRow; + public long qtdItem; + private string arquivog; + private string caminho; + #endregion + } +} \ No newline at end of file diff --git a/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.cs b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.cs new file mode 100644 index 0000000..218cf95 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.cs @@ -0,0 +1,977 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Windows.Forms; +using Microsoft.VisualBasic; +using Microsoft.VisualBasic.CompilerServices; +using PangLib.IFF; +using PangLib.IFF.Models.Data; +using Pangya_Modern_Editor.Extensions; + +namespace Pangya_Modern_Editor.Forms.Editors +{ + public partial class FrmEditorCaddies : Form + { + public FrmEditorCaddies() + { + Arquivo = ""; + this.bs = new BindingSource(); + InitializeComponent(); + } + + private void AlterarDescontoToolStripMenuItem_Click(object sender, EventArgs e) + { + //MyProject.Forms.frmItemMassaDesconto.Show(); + } + + private void Alterou() + { + this.Alterado = true; + } + + private void attControle_ValueChanged(object sender, EventArgs e) + { + this.gerarBarra(this.barraControle, RuntimeHelpers.GetObjectValue(sender)); + } + + private void attCurva_ValueChanged(object sender, EventArgs e) + { + this.gerarBarra(this.barraCurva, RuntimeHelpers.GetObjectValue(sender)); + } + + private void attForca_ValueChanged(object sender, EventArgs e) + { + this.gerarBarra(this.barraForca, RuntimeHelpers.GetObjectValue(sender)); + } + + private void attPrecisao_ValueChanged(object sender, EventArgs e) + { + this.gerarBarra(this.barraPrecisao, RuntimeHelpers.GetObjectValue(sender)); + } + + private void attSpin_ValueChanged(object sender, EventArgs e) + { + this.gerarBarra(this.barraSpin, RuntimeHelpers.GetObjectValue(sender)); + } + + private void FrmEditorCaddies_Closing(object sender, FormClosingEventArgs e) + { + if (this.bwGerarSql.IsBusy | this.bwSalvar.IsBusy) + { + MessageBox.Show("Existem tarefas ainda em execu\x00e7\x00e3o, \x00e9 necess\x00e1rio aguardar o t\x00e9rmino destas tarefas", "Tarefas pendentes", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + e.Cancel = true; + } + } + private void FrmEditorCaddies_Load(object sender, EventArgs e) + { + if (this.Arquivo != "") + { + this.lsItens = new IFFFile(); + this.lsTemp = new IFFFile(); + this.Arquivo = this.diagAbrirArquivo.FileName; + // MySettingsProperty.Settings.ArquivoIff = this.Arquivo; + try + { + this.lsItens = new IFFFile(Arquivo); + //this.ls = Util.dividirArquivo((List)Util.lerArquivo(this.Arquivo, ref this.bStart, ref this.qtdItem, 200), 200); + } + catch (Exception exception1) + { + MessageBox.Show("Arquivo danificado ou desconhecido", "Erro de leitura", MessageBoxButtons.OK, MessageBoxIcon.Hand); + + return; + } + this.lsTemp = this.lsItens; + + int length = 0x19; + if (Strings.Len(this.Arquivo) > 0x19) + { + this.lbArquivo.Text = "..." + this.Arquivo.Substring(Strings.Len(this.Arquivo) - length, length); + } + else + { + this.lbArquivo.Text = this.Arquivo; + } + this.ListaItem.DataSource = null; + this.CarregarGrid(this.lsTemp); + this.lbIndices.Text = Conversions.ToString(this.qtdItem); + } + this.ComboBox1.SelectedIndex = 0; + this.ComboBox2.SelectedIndex = 0; + } + + private void btnAbrirArquivo_Click(object sender, EventArgs e) + { + if ((this.diagAbrirArquivo.ShowDialog() == DialogResult.OK) && (this.diagAbrirArquivo.FileName != "")) + { + this.lsItens = new IFFFile(); + this.lsTemp = new IFFFile(); + this.Arquivo = this.diagAbrirArquivo.FileName; + // MySettingsProperty.Settings.ArquivoIff = this.Arquivo; + try + { + this.lsItens = new IFFFile(Arquivo); + //this.ls = Util.dividirArquivo((List)Util.lerArquivo(this.Arquivo, ref this.bStart, ref this.qtdItem, 200), 200); + } + catch (Exception exception1) + { + MessageBox.Show("Arquivo danificado ou desconhecido", "Erro de leitura", MessageBoxButtons.OK, MessageBoxIcon.Hand); + + return; + } + this.lsTemp = this.lsItens; + this.nomeArquivo(); + this.ListaItem.DataSource = null; + this.CarregarGrid(this.lsTemp); + this.lbIndices.Text = Conversions.ToString(this.qtdItem); + } + } + + + private void btnBackup_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Deseja clonar o item selecionado?", "Confirma\x00e7\x00e3o", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) + { + Caddie item = new Caddie(); + this.lastRow = this.ListaItem.SelectedCells[0].RowIndex + 1; + item = (Caddie)this.lsTemp[Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value)]; + try + { + this.lsTemp.Insert(Conversions.ToInteger(Operators.AddObject(this.ListaItem.SelectedRows[0].Cells[0].Value, 1)), item); + } + catch (Exception exception1) + { + MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + this.lsTemp.Insert(Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value), item); + + } + this.CarregarGrid(this.lsTemp); + } + } + + private void btnNovo_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Deseja adicionar um novo item?", "Confirma\x00e7\x00e3o", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) + { + Caddie item = new Caddie() + { + Name = "[NOVO ITEM]" + }; + Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value); + try + { + this.lsTemp.Insert(this.ListaItem.SelectedCells[0].RowIndex + 1, item); + } + catch (Exception exception1) + { + MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + this.lsTemp.Insert(this.ListaItem.SelectedCells[0].RowIndex, item); + + } + this.lastRow = this.ListaItem.SelectedCells[0].RowIndex + 1; + this.CarregarGrid(this.lsTemp); + try + { + this.ListaItem.FirstDisplayedScrollingRowIndex = this.lastRow; + this.ListaItem.Rows[this.lastRow].Selected = true; + } + catch (Exception exception3) + { + ProjectData.SetProjectError(exception3); + this.ListaItem.FirstDisplayedScrollingRowIndex = this.lastRow - 1; + this.ListaItem.Rows[this.lastRow - 1].Selected = true; + + } + } + } + + private void btnReabrir_Click(object sender, EventArgs e) + { + this.salvarAlteracoes(); + this.pintarLinhas(); + } + + private void btnRemover_Click(object sender, EventArgs e) + { + if (this.ListaItem.SelectedRows.Count <= 1) + { + this.lastRow = this.ListaItem.SelectedCells[0].RowIndex - 1; + if (MessageBox.Show(Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject("Deseja remover o item: ", this.ListaItem.SelectedRows[0].Cells[1].Value), " ?")), "Confirma\x00e7\x00e3o", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) + { + int num2 = Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value); + this.lsTemp.Remove(this.lsTemp[num2]); + this.CarregarGrid(this.lsTemp); + } + } + else + { + this.lastRow = this.ListaItem.SelectedRows[0].Index - 1; + if (MessageBox.Show("Deseja remover os " + Conversions.ToString(this.ListaItem.SelectedRows.Count) + " itens selecionados?", "Confirma\x00e7\x00e3o", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) + { + int num3 = this.ListaItem.SelectedRows.Count - 1; + int num = 0; + while (true) + { + if (num > num3) + { + break; + } + try + { + this.lsTemp.Remove(this.lsTemp[Conversions.ToInteger(this.ListaItem.SelectedRows[num].Cells[0].Value)]); + } + catch (Exception exception1) + { + MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + + } + num++; + } + this.CarregarGrid(this.lsTemp); + } + } + } + + private void btnSalvar_Click(object sender, EventArgs e) + { + this.bs.Filter = ""; + this.ComboBox1.SelectedIndex = 0; + this.ComboBox2.SelectedIndex = 0; + this.salvarAlteracoes(); + this.btnSalvar.Enabled = false; + this.ToolStrip1.Enabled = false; + this.pbStatus.Style = ProgressBarStyle.Marquee; + this.bwSalvar.RunWorkerAsync(); + } + + private void btnVerificarTYPEID_Click(object sender, EventArgs e) + { + if (this.verificarTYPEID(0)) + { + MessageBox.Show("Este TYPEID j\x00e1 est\x00e1 em uso!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + this.txtTypeID.BackColor = Color.LightSalmon; + } + else + { + MessageBox.Show("TYPEID dispon\x00edvel para uso!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + this.txtTypeID.BackColor = Color.White; + } + } + + private void bwGerarSql_DoWork(object sender, DoWorkEventArgs e) + { + BackgroundWorker bW = (BackgroundWorker)sender; + this.gerarSql(bW); + if (bW.CancellationPending) + { + e.Cancel = true; + } + } + + private void bwGerarSql_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + this.pbStatus.Value = e.ProgressPercentage; + this.lbStatus.Text = "Gerando arquivo SQL - " + Conversions.ToString(e.ProgressPercentage) + "%"; + } + + private void bwGerarSql_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + this.pbStatus.Value = 0; + this.btnSalvar.Enabled = true; + this.ToolStrip1.Enabled = true; + this.lbStatus.Text = "parado"; + } + + private void bwSalvar_DoWork(object sender, DoWorkEventArgs e) + { + BackgroundWorker bW = (BackgroundWorker)sender; + this.lbStatus.Text = "Salvando..."; + this.salvar(bW); + if (bW.CancellationPending) + { + e.Cancel = true; + } + } + + private void bwSalvar_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + this.pbStatus.Style = ProgressBarStyle.Marquee; + this.lbStatus.Text = "Salvando..."; + } + + private void bwSalvar_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + this.pbStatus.Style = ProgressBarStyle.Blocks; + this.pbStatus.Value = 0; + this.lbStatus.Text = "parado"; + this.btnSalvar.Enabled = true; + this.ToolStrip1.Enabled = true; + this.lbIndices.Text = Conversions.ToString(this.qtdItem); + this.nomeArquivo(); + } + + public void CarregarGrid(List Lista) + { + DataTable table = new DataTable(); + table.Columns.Add("ID", typeof(int)); + table.Columns.Add("Item", typeof(string)); + table.Columns.Add("Status", typeof(Image)); + table.Columns.Add("Personagem", typeof(string)); + table.Columns.Add("Status2", typeof(string)); + table.Columns.Add("Tipo", typeof(Image)); + table.Columns.Add("Alterado", typeof(int)); + + for (int num3 = 0; num3 < Lista.Count; num3++) + { + Caddie oIff = Lista[num3]; + Image statusImage = (oIff.Active == 1) ? Properties.Resources.accept1 : Properties.Resources.delete1; + Image tipoImage; + + if ((int)oIff.Shop.flag_shop.ShopFlag == 1) + { + tipoImage = Properties.Resources.points; + } + else if ((int)(oIff.ShopFlag) == 2) + { + tipoImage = Properties.Resources.Pang; + } + else + { + tipoImage = Properties.Resources.eye__minus; + } + + int num4 = 0; + + try + { + num4 = Conversions.ToInteger(ListaItem["Alterado", num3].Value); + } + catch (Exception) + { + num4 = 0; + // Handle exception if needed + } + + table.Rows.Add(new object[] { num3, oIff.Name.Replace("\0", ""), statusImage, 0, oIff.Active, tipoImage, num4 }); + } + + ListaItem.DataSource = null; + bs = new BindingSource(); + bs.DataSource = table; + ListaItem.DataMember = table.TableName; + ListaItem.DataSource = bs; + + lbTotalItens.Text = Conversions.ToString(ListaItem.Rows.Count); + + ListaItem.Columns[0].Width = 0x2d; + ListaItem.Columns[2].Width = 30; + ListaItem.Columns[5].Width = 30; + + ListaItem.Columns[0].ValueType = typeof(int); + ListaItem.Columns[2].HeaderText = " "; + ListaItem.Columns[5].HeaderText = " "; + + for (int i = 0; i < ListaItem.Rows.Count; i++) + { + ListaItem.Rows[i].Selected = false; + } + + ListaItem.Columns[3].Visible = false; + ListaItem.Columns[4].Visible = false; + ListaItem.Columns[6].Visible = false; + + filtrar(); + + try + { + ListaItem.FirstDisplayedScrollingRowIndex = lastRow; + ListaItem.Rows[lastRow].Selected = true; + } + catch (Exception) + { + // Handle exception if needed + } + + pintarLinhas(); + } + + private void carregarImagem(string img, ref PictureBox obj) + { + try + { + obj.Image = Pangya_Modern_Editor.Properties.Resources.ajax_loader; + } + catch (Exception exception1) + { + MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + + } + try + { + obj.ImageLocation = img; + } + catch (Exception exception3) + { + ProjectData.SetProjectError(exception3); + obj.Image = Pangya_Modern_Editor.Properties.Resources._error; + + } + } + + private void CarregarItem() + { + if (this.ListaItem.SelectedCells[0].RowIndex > -1) + { + int num2 = Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value); + int lvlReq = 0; + this.txtNome.Text = this.lsTemp[num2].Name; + this.txtTypeID.Text = Conversions.ToString(this.lsTemp[num2].ID); + this.ckAtivo.Checked = this.lsTemp[num2].Active > 0; + this.txtIcone.Text = this.lsTemp[num2].Icon; + this.txtPreco.Text = Conversions.ToString(this.lsTemp[num2].Price); + this.txtDesconto.Text = Conversions.ToString(this.lsTemp[num2].DiscountPrice); + this.attForca.Value = new decimal(this.lsTemp[num2].Power); + this.attControle.Value = new decimal(this.lsTemp[num2].Control); + this.attPrecisao.Value = new decimal(this.lsTemp[num2].Impact); + this.attSpin.Value = new decimal(this.lsTemp[num2].Spin); + this.attCurva.Value = new decimal(this.lsTemp[num2].Curve); + this.txtSprite.Text = this.lsTemp[num2].MPet; + this.txtSalary.Text = Conversions.ToString(this.lsTemp[num2].Salary); + if (this.lsTemp[num2].ItemLevel <= 0x48) + { + lvlReq = this.lsTemp[num2].ItemLevel; + this.rbLevelMin.Checked = true; + } + else + { + lvlReq = this.lsTemp[num2].ItemLevel - 0x80; + this.rbLevelMax.Checked = true; + } + cbTipo.SelectedIndex = lsTemp[num2].GetTypeCash(); + + ckNormal.Checked = lsTemp[num2].Shop.flag_shop.IsNormal || lsTemp[num2].Shop.flag_shop.is_saleable; + ckDesativado.Checked = lsTemp[num2].Shop.flag_shop.IsHide; + ckNew.Checked = lsTemp[num2].Shop.flag_shop.IsNew; + ckGift.Checked = lsTemp[num2].Shop.flag_shop.IsGift; + ckHot.Checked = lsTemp[num2].Shop.flag_shop.IsHot; + this.cbLevel.SelectedIndex = lvlReq; + dtInicio.Value = lsTemp[num2].date.Start.Time; + dtTermino.Value = lsTemp[num2].date.End.Time; + ckTempoAtivo.Checked = lsTemp[num2].date.Check(); + + } + this.Alterado = false; + + } + + private void ckDesativado_CheckedChanged(object sender, EventArgs e) + { + if (ckDesativado.Checked) + { + ckNew.Checked = false; + ckNormal.Checked = false; + ckHot.Checked = false; + ckGift.Checked = false; + } + } + + private void ckTempoAtivo_CheckedChanged(object sender, EventArgs e) + { + this.gbTempoVenda.Enabled = this.ckTempoAtivo.Checked; + } + private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + this.filtrar(); + this.imgPersonagem.Image = this.ImageList1.Images[this.ComboBox1.SelectedIndex]; + } + + private void ComboBox2_SelectedIndexChanged(object sender, EventArgs e) + { + this.filtrar(); + this.imgStatus.Image = (this.ComboBox2.SelectedIndex != 0) ? ((this.ComboBox2.SelectedIndex != 1) ? this.ImageList2.Images[2] : this.ImageList2.Images[1]) : this.ImageList2.Images[0]; + } + + public void filtrar() + { + try + { + int num = 0; + num = (this.ComboBox2.SelectedIndex != 1) ? 0 : 1; + if (!(((this.ComboBox1.SelectedIndex > 0) & (this.ComboBox2.SelectedIndex > 0)) & (this.txtPesquisa.Text.Length > 0))) + { + this.bs.Filter = !((this.ComboBox1.SelectedIndex > 0) & (this.txtPesquisa.Text.Length > 0)) ? (!((this.ComboBox2.SelectedIndex > 0) & (this.txtPesquisa.Text.Length > 0)) ? (!((this.ComboBox1.SelectedIndex > 0) & (this.ComboBox2.SelectedIndex > 0)) ? ((this.txtPesquisa.Text.Length <= 0) ? ((this.ComboBox1.SelectedIndex <= 0) ? ((this.ComboBox2.SelectedIndex <= 0) ? "" : ("Status2 = " + Conversions.ToString(num))) : ("Personagem = " + Conversions.ToString((int)(this.ComboBox1.SelectedIndex - 1)))) : ("Item LIKE '%" + this.txtPesquisa.Text + "%'")) : ("Personagem = " + Conversions.ToString((int)(this.ComboBox1.SelectedIndex - 1)) + " AND Status2 = " + Conversions.ToString(num))) : ("Item LIKE '%" + this.txtPesquisa.Text + "%' AND Status2 = " + Conversions.ToString(num))) : ("Item LIKE '%" + this.txtPesquisa.Text + "%' AND Personagem = " + Conversions.ToString((int)(this.ComboBox1.SelectedIndex - 1))); + } + else + { + string[] strArray = new string[] { "Item LIKE '%", this.txtPesquisa.Text, "%' AND Personagem = ", Conversions.ToString((int)(this.ComboBox1.SelectedIndex - 1)), " AND Status2 = ", Conversions.ToString(num) }; + this.bs.Filter = string.Concat(strArray); + } + this.Label33.Text = Conversions.ToString(this.bs.Count); + this.ListaItem.Columns[0].Width = 0x2d; + this.ListaItem.Columns[2].Width = 30; + this.ListaItem.Columns[5].Width = 30; + this.ListaItem.Columns[0].ValueType = typeof(int); + this.ListaItem.Columns[2].HeaderText = " "; + this.ListaItem.Columns[5].HeaderText = " "; + } + catch (Exception exception1) + { + Exception ex = exception1; + ProjectData.SetProjectError(ex); + Exception exception = ex; + ProjectData.ClearProjectError(); + } + } + private void frmClubSet_FormClosing(object sender, FormClosingEventArgs e) + { + if (this.bwGerarSql.IsBusy | this.bwSalvar.IsBusy) + { + MessageBox.Show("Existem tarefas ainda em execu\x00e7\x00e3o, \x00e9 necess\x00e1rio aguardar o t\x00e9rmino destas tarefas", "Tarefas pendentes", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + e.Cancel = true; + } + // MyProject.Forms.frmPrincipal.Show(); + } + + //private void frmClubSet_Load(object sender, EventArgs e) + //{ + // if (this.Arquivo != "") + // { + // try + // { + // this.ls = Util.dividirArquivo((List)Util.lerArquivo(this.Arquivo, ref this.bStart, ref this.qtdItem, 200), 200); + // } + // catch (Exception exception1) + // { + // MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + // Interaction.MsgBox("Tipo de arquivo descnhecido", MsgBoxStyle.ApplicationModal, null); + + // return; + // } + // this.lsItens = new PangLib.IFF.IFFFile(); + // int num3 = this.ls.Count - 1; + // for (int i = 0; i <= num3; i++) + // { + // this.oIff = new Caddie(this.ls[i]); + // this.lsItens.Add(this.oIff); + // } + // this.lsTemp.AddRange(this.lsItens.GetRange(0, this.lsItens.Count)); + // int length = 0x19; + // if (Strings.Len(this.Arquivo) > 0x19) + // { + // this.lbArquivo.Text = "..." + this.Arquivo.Substring(Strings.Len(this.Arquivo) - length, length); + // } + // else + // { + // this.lbArquivo.Text = this.Arquivo; + // } + // this.ListaItem.DataSource = null; + // this.CarregarGrid(this.lsTemp); + // this.lbIndices.Text = Conversions.ToString(this.qtdItem); + // } + // this.ComboBox1.SelectedIndex = 0; + // this.ComboBox2.SelectedIndex = 0; + //} + + private void gerarBarra(Control Barra, object sender1) + { + try + { + // Definindo algumas variáveis + int num2 = 0; + double num6 = 5.9; + + // Calculando a largura da barra com base no valor fornecido + Barra.Width = Conversions.ToInteger(Operators.MultiplyObject( + NewLateBinding.LateGet(sender1, null, "value", new object[0], null, null, null), num6)); + + } + catch (Exception ex) + { + // Lidando com exceções, se ocorrerem + Console.WriteLine("Ocorreu uma exceção: " + ex.Message); + } + } + + + public void gerarSql(BackgroundWorker BW) + { + if (this.Arquivo == null) + { + MessageBox.Show("Arquivo inv\x00e1lido!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + //else if (Convert.ToBoolean(Util.Caddie_gerarSql(this.lsTemp, this.Arquivo, ref BW))) + //{ + // MessageBox.Show("SQL gerado com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + //} + //else + //{ + // MessageBox.Show("Arquivo salvo com erro!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand); + //} + } + private void ListaItem_DefaultCellStyleChanged(object sender, EventArgs e) + { + try + { + this.pintarLinhas(); + } + catch (Exception exception1) + { + MessageBox.Show("Pangya Modern Editor IFF", exception1.Message); + + } + } + + private void ListaItem_MouseHover(object sender, EventArgs e) + { + if (this.Alterado) + { + if (MessageBox.Show("Existem altera\x00e7\x00f5es que n\x00e3o foram salvas, desaja salva-las agora?", "Confirma\x00e7\x00e3o", MessageBoxButtons.YesNo) == DialogResult.Yes) + { + this.salvarAlteracoes(); + } + else + { + this.Alterado = false; + } + } + } + + private void ListaItem_RowsDefaultCellStyleChanged(object sender, EventArgs e) + { + this.pintarLinhas(); + } + + private void listaItem_SelectedIndexChanged(object sender, EventArgs e) + { + try + { + if (this.bwGerarSql.IsBusy | this.bwSalvar.IsBusy) + { + this.btnSalvar.Enabled = false; + } + if (this.ListaItem.SelectedRows.Count > 1) + { + this.gbBotoes.Enabled = true; + this.tabForm.Enabled = false; + this.txtPesquisa.Enabled = false; + this.btnNovo.Enabled = false; + this.btnBackup.Enabled = false; + this.btnSalvar.Enabled = false; + this.btnReabrir.Enabled = false; + this.menuSalvarComo.Enabled = true; + this.menuTypeid.Enabled = true; + this.menuBackup.Enabled = true; + this.menuGerarSql.Enabled = true; + this.menuMassa.Enabled = true; + this.menuDividir.Enabled = true; + this.menuGerarCache.Enabled = true; + } + else if (ListaItem.SelectedCells.Count > 0 && ListaItem.SelectedCells[0].RowIndex >= 0) + { + this.btnNovo.Enabled = true; + this.btnBackup.Enabled = true; + this.btnSalvar.Enabled = true; + this.btnReabrir.Enabled = true; + this.gbBotoes.Enabled = true; + this.tabForm.Enabled = true; + this.txtPesquisa.Enabled = true; + this.menuSalvarComo.Enabled = true; + this.menuTypeid.Enabled = true; + this.menuBackup.Enabled = true; + this.menuGerarSql.Enabled = true; + this.menuMassa.Enabled = true; + this.menuDividir.Enabled = true; + this.menuGerarCache.Enabled = true; + this.CarregarItem(); + } + else + { + this.gbBotoes.Enabled = false; + this.tabForm.Enabled = false; + this.txtPesquisa.Enabled = false; + this.menuSalvarComo.Enabled = false; + this.menuTypeid.Enabled = false; + this.menuBackup.Enabled = false; + this.menuGerarSql.Enabled = false; + this.menuMassa.Enabled = false; + this.menuDividir.Enabled = false; + this.menuGerarCache.Enabled = false; + } + if (this.bwGerarSql.IsBusy | this.bwSalvar.IsBusy) + { + this.btnSalvar.Enabled = false; + } + if (this.verificarTYPEID(0)) + { + this.txtTypeID.BackColor = Color.LightSalmon; + } + else + { + this.txtTypeID.BackColor = Color.White; + } + } + catch (Exception projectError) + { + ProjectData.SetProjectError(projectError); + ProjectData.ClearProjectError(); + } + } + + private void ListaItem_Sorted(object sender, EventArgs e) + { + this.pintarLinhas(); + } + + private void menuGerarCache_Click(object sender, EventArgs e) + { + List list = new List(); + List list2 = new List(); + foreach (Caddie caddie in this.lsTemp) + { + list.Add((int)caddie.ID); + list2.Add(caddie.Icon); + } + //new frmCache + //{ + // ls = list, + // ls1 = list2, + // tipo = 1, + // TopMost = true + //}.Show(); + } + + public void nomeArquivo() + { + int length = 0x19; + if (Strings.Len(this.Arquivo) > 0x19) + { + this.lbArquivo.Text = "..." + this.Arquivo.Substring(Strings.Len(this.Arquivo) - length, length); + } + else + { + this.lbArquivo.Text = this.Arquivo; + } + } + + public void pintarLinhas() + { + int num2 = this.ListaItem.Rows.Count - 1; + for (int i = 0; i <= num2; i++) + { + this.ListaItem.Rows[i].DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#FFFFFF"); + if (Operators.ConditionalCompareObjectEqual(this.ListaItem["Alterado", i].Value, 1, false)) + { + this.ListaItem.Rows[i].DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#FFCC00"); + } + if (Operators.ConditionalCompareObjectEqual(this.ListaItem["Alterado", i].Value, 2, false)) + { + this.ListaItem.Rows[i].DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#33CCFF"); + } + } + this.ListaItem.Columns[0].Width = 0x2d; + this.ListaItem.Columns[2].Width = 30; + this.ListaItem.Columns[5].Width = 30; + } + + public void salvar(BackgroundWorker BW) + { + var bck = Path.ChangeExtension(Arquivo, ".bak"); + lsItens.Save(bck); + lsTemp.Save(Arquivo); + + } + + private void salvarAlteracoes() + { + int num = Conversions.ToInteger(this.ListaItem.SelectedRows[0].Cells[0].Value); + var caddie = lsTemp[num]; + if (this.ckAtivo.Checked) + { + caddie.Active = (byte)Conversions.ToLong("&H01"); + } + else + { + caddie.Active = (byte)Conversions.ToLong("&H00"); + } + caddie.MoneyFlag =Conversions.ToInteger("&H00"); + if (this.ckNew.Checked & this.ckGift.Checked) + { + caddie.MoneyFlag =Conversions.ToInteger("&H11"); + } + else if (this.ckNew.Checked) + { + caddie.MoneyFlag = Conversions.ToInteger("&H13"); + } + if (this.ckHot.Checked & this.ckGift.Checked) + { + caddie.MoneyFlag = Conversions.ToInteger("&H21"); + } + else if (this.ckHot.Checked) + { + caddie.MoneyFlag = Conversions.ToInteger("&H23"); + } + if (this.ckNormal.Checked & this.ckGift.Checked) + { + caddie.MoneyFlag = Conversions.ToInteger("&H01"); + } + else if (this.ckNormal.Checked) + { + caddie.MoneyFlag = Conversions.ToInteger("&H03"); + } + caddie.Name = this.txtNome.Text; + caddie.Price = Conversions.ToUInteger(this.txtPreco.Text); + caddie.ID = Conversions.ToUInteger(this.txtTypeID.Text); + caddie.Icon = this.txtIcone.Text; + caddie.ItemLevel = (byte)this.cbLevel.SelectedIndex; + caddie.DiscountPrice = Conversions.ToUInteger(this.txtDesconto.Text); + caddie.Power = Convert.ToUInt16(this.attForca.Value); + caddie.Control = Convert.ToUInt16(this.attControle.Value); + caddie.Impact = Convert.ToUInt16(this.attPrecisao.Value); + caddie.Spin = Convert.ToUInt16(this.attSpin.Value); + caddie.Curve = Convert.ToUInt16(this.attCurva.Value); + caddie.Salary = Conversions.ToUInteger(this.txtSalary.Text); + caddie.MPet = this.txtSprite.Text; + if (this.rbLevelMin.Checked) + { + caddie.ItemLevel = (byte)this.cbLevel.SelectedIndex; + } + else + { + caddie.ItemLevel = (byte)(Conversions.ToLong("&H80") + this.cbLevel.SelectedIndex); + } + switch (this.cbTipo.SelectedIndex) + { + case 0: + caddie.ShopFlag = Conversions.ToInteger("&H00"); + break; + + case 1: + caddie.ShopFlag = (int)Conversions.ToLong("&H01"); + break; + + case 2: + caddie.ShopFlag = (int)Conversions.ToLong("&H02"); + break; + } + if (this.ckTempoAtivo.Checked) + { + caddie.date.End.Day = (ushort)this.dtTermino.Value.Day; + caddie.date.End.Month = (ushort)this.dtTermino.Value.Month; + caddie.date.End.Year = (ushort)this.dtTermino.Value.Year; + caddie.date.End.Hour = (ushort)this.dtTermino.Value.Hour; + caddie.date.End.Minute = (ushort)this.dtTermino.Value.Minute; + caddie.date.End.Second = (ushort)this.dtTermino.Value.Second; + caddie.date.Start.Day = (ushort)this.dtInicio.Value.Day; + caddie.date.Start.Month = (ushort)this.dtInicio.Value.Month; + caddie.date.Start.Year = (ushort)this.dtInicio.Value.Year; + caddie.date.Start.Hour = (ushort)this.dtInicio.Value.Hour; + caddie.date.Start.Minute = (ushort)this.dtInicio.Value.Minute; + caddie.date.Start.Second = (ushort)this.dtInicio.Value.Second; + + } + this.ListaItem.SelectedRows[0].Cells[1].Value = this.txtNome.Text; + this.ListaItem.SelectedRows[0].Cells["Alterado"].Value = 1; + this.Alterado = false; + this.qtdItem = this.ListaItem.Rows.Count; + } + + private void MenuSalvarComo_Click(object sender, EventArgs e) + { + this.caminho = Conversions.ToString((int)this.diagSalvarArquivo.ShowDialog()); + this.Arquivo = this.diagSalvarArquivo.FileName; + if (this.Arquivo != null) + { + this.bs.Filter = ""; + this.ComboBox1.SelectedIndex = 0; + this.ComboBox2.SelectedIndex = 0; + this.salvarAlteracoes(); + this.btnSalvar.Enabled = false; + this.ToolStrip1.Enabled = false; + this.bs.Filter = ""; + this.pbStatus.Style = ProgressBarStyle.Marquee; + this.bwSalvar.RunWorkerAsync(); + } + } + + private void MenuSalvarSQL_Click(object sender, EventArgs e) + { + this.caminho = Conversions.ToString((int)this.diagSalvarSql.ShowDialog()); + this.Arquivo = this.diagSalvarSql.FileName; + if (this.Arquivo != null) + { + if (File.Exists(this.Arquivo)) + { + File.Delete(this.Arquivo); + } + this.btnSalvar.Enabled = false; + this.ToolStrip1.Enabled = false; + this.bwGerarSql.RunWorkerAsync(); + } + } + + private void MenuSalvarBackup_Click(object sender, EventArgs e) + { + byte[] bs = (byte[])Util.setValues(this.lsTemp, this.bStart, this.qtdItem, true); + bool data = true; + int totalProc = 0; + //if (Convert.ToBoolean(Util.gerarBackup(bs, MySettingsProperty.Settings.ArquivoIff, ref data, ref totalProc))) + //{ + // MessageBox.Show("Backup gerado com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + //} + //else + //{ + // MessageBox.Show("Erro ao gerar o backup", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand); + //} + } + + private void txtIcone_TextChanged(object sender, EventArgs e) + { + //PictureBox imgIcone = this.imgIcone; + //this.carregarImagem(Conversions.ToString(Util.getImage(this.txtTypeID.Text, this.txtIcone.Text)), ref imgIcone); + //this.imgIcone = imgIcone; + } + + private void txtNome_TextChanged(object sender, EventArgs e) + { + this.lbContNome.Text = Conversions.ToString(this.txtNome.Text.Length) + "/40"; + } + + private void txtPesquisa_TextChanged(object sender, EventArgs e) + { + this.filtrar(); + } + + private bool verificarTYPEID(int typeid) + { + int num = 0; + bool flag = false; + if (typeid == 0) + { + typeid = Conversions.ToInteger(this.txtTypeID.Text); + } + else + { + flag = true; + } + foreach (Caddie caddie in this.lsTemp) + { + if (caddie.ID == typeid) + { + num++; + } + } + if (flag) + { + return (num >= 1); + } + return (num > 1); + } + + } +} diff --git a/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.resx b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.resx new file mode 100644 index 0000000..53a7735 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Forms/Editors/FrmEditorCaddies.resx @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 134, 17 + + + 246, 56 + + + 241, 17 + + + 341, 17 + + + 455, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+ + FwAAAk1TRnQBSQFMAgEBCwEAASABAAEgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAAQ4BFQGuAW0BEwHr + Ae8B6wHtAfcCFAHsAZMCGgFDARYBlAGNAewBvQEWARwCvQGOAZQB8QEHAewBkwEUAvIC/wG7AfMB1AHb + AboBuQG7AfAD8hAAAQ8B6gETARIBcwGuAe0B6wHtAfcBbQHtAewB9wLvAREBjgEWAbYBaAEHAY4B7wHw + AfcB6gH3Ae8B7AHtAfcBFAHyAfAB8gH0AbQBuQHfAdsBuQG0Ae8E8hAAARUBBwHqARUCHAESAe0BHAJu + AQcBEgHtAewB9wERAY0BsQGUAY4BkwGOApMBtwG2AewBbgGNAbYB8gEUAvIB8QG7AbwB7wEHAbwBHALx + AfAB8gHxAfIQAAEUAcMBGgHrAe0B7AG8AxoBmQGSAZMB9wHwAfEBQwJvA44BkwIaARsBkwHsAe0BjgHv + AfIBFATyAgcCGgIHAe8CBwHxAfIQAAEVAhoBZwEVAZMFGgFpARIBBwLxAQwBaQFoAY4BbwGUAZMBvQIa + Ab0BGgFoAZMBkgHtARQC8gHxARwBGgP2Ab0B8QEHArwB8QHwEAABFQGSAe0BaAFuAxoBbwEaAZoBkwGu + AesBvAHxAQ4BjgJoAY4BkwEHAb0DGgG9AQcBbQG2ARMBFAHyAbwB9wEaAcMC9gGNAewBkwG8ARoBBwEb + Ad8QAAEUAfEBBwFnAUUB7AFLAWgB7QFuAUoBkwFFAZMBFAEHARABEgKNAZQBjgEaAW4B7wIaAZMB9wFD + ARMBkgENAfcB7wEcARoB8wL2AY0BEAGTAbwCBwHvAbsQAAEUAe8BjAE+AWgBbwFFAT8BkwFpAZMBaAE+ + AY0BZgETAQ8B6wFuAW8BlAGIAZMB6gFuARsBGgG8AewBFAHvAfIBEQGSAfcBBwG1Ae0BwwEbAfcBmQG8 + AQcC8QG7AboQAAEUAQcDPgJiAT8BRQFoAUUBPgI/AWgBRAEPARQBFQGNAZQBbwGOAQcBCAMaAZoB7ALy + ARQB9wIHAusBvQG8ARoB7wG8ARoB8wEHAYsBuhAAARQB8QHtAUUDPwFAAj8BPgI/AT4BRQFEARUB6wFn + ARUBtgFvAo4BBwQaAY4B8QHyARQCvAHzAe0CkwHzAQgB9gG8AvMB7QGuAesQAAEUAfEB6gU/AUYBRQFG + AT8BPgFDARUB7wEUAe8BiAGNAXQBbwOUAZMBGgKaAbAB8QHyARQB8AH3AfMDkwH0AQcB/wL0Af8BtQG6 + AZIQAAEUAQcB6gEUAT8DPgFhAWgBPgE/AUQBFAHrAfEBFAHxAWgBmgHDAZMBlAS9AQcCkwLyARECvAEH + ARoBBwLzAfYB9AL2AQcBtAEHAboQAAEUAvEBEwEMAT8BPgEMAT4CPwETAQ8BEwLxARQB8gGNAY4BGgGO + AbYB3gG9AfMBGwH0Ab0B9wLyARUB9wGuAe0BGgH0AvMC9AHzARkBuwEHAZIB8RAAARQC8QH3ARADRAE+ + ARQBBQFnARAB7wLxARQB8gHwAe0BtgEWAQcBlAG3Ab0B8gEHAe8B8QLyARUB6AG0Ae0B7AHxA/QBCAEZ + AeEBCAH3AfEB8hAAARQD8QFDARQCBwLvAQcB6gEVA/EBFALyAfEBHAK2AQcBlAEHAZIBBwTyARQBBwK0 + AbsB6wGQAQcB2gHoAfEB7wEHA/IQAAEOAxQCDwEVBBQBEAEPAxQBDgYUAREBEAEVBhQBDgEUAUMBFQMU + AUMCEQEVBRQQAAEUAZoBGgEHARQBBwGZARoBvQGaARoBmgHyAbUB7wHxARQB8gEHAZoHGgK9AxoBFAIH + AfcBEQEVAREBEAHtAe8BkgGuAu8B7QG1ARQB7QHrAfMCBwG9AfQB/wH2AbUBBwHyAfMB8QG8ARQBmgIa + Ae0B7AIHARsBmgG9AZoBBwG8AQcB8gEUAvIB7wGaAb0DGgG9ApoBvQMaARUC2AHvAeoBEwHqAfcB6wES + Aa4B7QGTAW0CEgEUAewBEgEHAvcB7wGTAb0B8gG0AQcB8gH/AfMB8QEVAbcBvQGSAewBkgLtAe8BkwGa + AZkB7wH3AfIB8QEUA/IB9wHtARwCvQKaBRoBFAHDARoB7wLrAewB6wGuAeoBtQKCARIBFQFmARQBGgGu + AQcBkgGGAWYBzwFnAagBjAGzAewC8gHwARUBkwG9AQcB7AHtAe8BmQMaAZoBcwLvAfIBFALyA+0BBwEa + Ae8BHAMaAQcBmgEaARUC7wHsAW0B7AHvAW0CFQPsAesBEwFmARQDvQEaAZMBZgFnAZMBmgH3AWcBrQES + AeoBZgEUApoB8AFzAY0BGgGaAb0BGgG9AZoBegHvAesB8gEUAfIB8QLsAZMBdAGaAewBkgFuARwCmQGT + AeoBEQEUAe0BBwH3Au0B7AG9AbcBlALsAW0BEwEUAQ8EvQGNAZMBGgG9ARoBvQGTAWYBrQJmARQBmQGa + AQcBdAEHBRoBvQF6AZIB7wHyARQB8AEHAe0BvQGaAZQBmgHtAZMB9wGaA5MBbQEUARMBFAHtAW0BEgG8 + ARoC8wEHAZIBbQETAewB7QEPAeoBGgG9AZQB6wK9ARoBvQIaAZIBpwJmARQBHAGaAXMBHAGSAZACGgHw + AfcBGgF6AZoB7wHyARQB9wHrAbUBkwEHAZoBkwEHAY0C7QEHAe8BkgHrARQBEgEUAe8BEwEUAb0B8wMb + Ae8B9wFDAeoB8QEUAewBFAG9AewBvAEHAb0CGgEbAb0BkwGtAWYBhgEUAu8BHAF0AZMCGgEbAUMBEQEc + AZ8BBwGTAfIBEQGSA+wBlAEaAZIB8gEHBO8CkgEVAesBEwHvARUBbQFuAfQBwwHyARoC7wEVAe0BbQEU + AQcBtQESAWwB6wFmAQcCGgG2AQcBkwGnAYYBzwEUAvEBmQF0Ab0CGgGaAXkBBwGaAXoBmQHvAfIBQwHv + AfcBkwFtA+0B9wEHAbABHAG8AZIBvAGSARQB7wEUAe0BFQHqAUMB9gHzAeoBEgEHAZIBEgGUAesBFAG8 + AfABZgESAW4BkwIaAb0BEAETAY0BZgGuAbwBFAHyAfABmQF0AZoBGgGZAXoBeQF6AXkBegGTAfAB8gFD + Au0BBwH3Ae0BkgG8AQcBvAGTAQcB9wEHAe8B6wEUAfEBFQHqAUMBjQEaARsBBwERAUMB7QEUAUMBlAHr + ARQBvAHwAWYBhgFtAa0BkwG8ARMB6gGTARQBZgGtAbUBFAHyAfABeQF0AW8EegF0AnoBHAHxAfIBFQG8 + AvAB8QG8Ae8BGwHxAewBkwG8AfcB8QH3AQcBFAHwARQB7QEUAeoBvQESAW0B7AHqA0MBEgERARQBBwHw + Aa4ChgGLAa4DhgGMAoYBZgHtARQC8gEcBXoBmgGTAnoB7QHxAfIBEQH3AQcB7wHwA/MB8gEHAfICBwG8 + Ae0B7wFDAfEB7AHtARQC7AGSARMBbQHrAUMB6wJDARABFAHtAfEB7wHrAoYB1AOtAoYBZgHaAa0BFAG8 + Ae8BBwEcAnoCmgGUAnoBGgHtAbwB8gEUAZIB7wHxA/MB9AEHAfAB8gEHAfIB8AHvAQcBEwHxAe8BEwHs + ARIC7AHtAesBEwHsAW0BEQEQAREBFAEHAfIB8QG7AQkBrgGGAWYBhgGzARIBkAERAYYBEwEUAfIB8AMH + ARwBmQGgAnoBtwF0AQcB8gHxARQB8gHtAbwBBwHyAfQB8AEbAfMB8AH0AfEB7wG8AfIBEwH0AfMBBwES + ARQBQwISAa4B6wEUAREBZgGuAewBFAHyAfcB8wH0AfAC7AEJAewBrgHtAdsBiwHVAfABFAXyAfEBvAHv + AQgBnwGZAe0B6wLtARQC8gHvAQcC8QHyAfMB8gH0AfEB9wHxAvIBEwL0Ae8B7QEHAUMBDwEQAREDEAHr + AewBrgEUAfIB8QHvA/8BugHzAvQB8gHzARUB8AHyAQ4HFAMQAUMDFAERAQ4DFAFDARUDFAETARQBEQQU + AQ4FEwERBA4BDwEUAhMBQwEOAxQBQwITAQ0EEwFDAxQBDg+SARQB8QHrAc8CuQOaAZkB3wO5AesB8QEU + BPIBmQEaAfACmgG9ArYB8gHvAfEBDgFDARMBEgHvAhUBkwGSARUBFAETARQDEwEOD5IBFAHyAfEBswHb + AbMBlAGaA5QBtAG5AboBtAHyARQB8gHxAe8B7AGNAbwBvQKUAZoBGgHxAQcC8gEOAUMCEgGZAhIBHAEa + AQcBFQEUAUMBEwISAQ4PkgEUAvIB8AG6AbQBtQEHAZoBmQHtAfcBugPyARUB7AGNAWgBjQHdAa8BmgGZ + AZIBBwLvAbwC8gEOAUMBEQEUARwBwwEcAbwCGgEcARQBFQMSAQ4GkgHzAfQHkgEUAfIB7wHxAfcBmgMa + Ab0BHAHrAfED8gEQAo4BaQFuAewBbgEaAb0BtwEaARwB8gHxAvIBDgEVAhQB7AGSA5MB7QEHAeoBFQET + ARQB7QEOBpIC/wH3BpIBFAHxARMBvAGaBBoBmgGZAZMB7QG8AvIBEAHtAbwBbgGNAZoBvQIaAbwBGgG9 + AXMD8gEOARQBEwEVARMBmgF0AZMBmgKTAW4BFAHsAvIBDgaSAvcHkgEUAewBEgHqARwB6wIaAfMBbAHv + ARMBmgHtAvIBFALyAW4BaQGTAZkBbQHzAhoB7QGTAgcBggEOARQCEgEUApMBCAEHA5MBEgHvAvIBDgaS + Av8HkgIUARICFAETAhoB7wFDAhQBHAGTAfAB7QEUAfIB8AFoAWkBbgJmAfYBGgEIAWYBHAESAY0BggEO + ARMCEgHtAZMCBwKaAZMB6wGTAQcB7wHyAQ4GkgHyAf8B8waSARQBEwEUAW4BbQGZARoB7AGTAUoBFAIT + AeoBbQHtARQB8gHsAmgBbwFKARQBBwEaAb0BQwGSAWgBaQH3AQ8B7QHvAfABkwG9ApoBvQIaAW4CkwEc + AfIBFAeSAfQB/wH0BZIBEQFtARQBEwF0AZoB7AFtAQcB6wEUARIBFAETAeoB8QEUAfIB6wJoAW8BSwEH + AQgBmgF0AW8BdQFoAY0B8QEVA/IBkwEaApoBBwF4AZoBbgHsAZMBkgHyARQEkgHxAe8CkgHzAv8EkgEP + ARMBFAETAXQB7QFtAewBbQESAeoBEgEUARIB6wEHARQB8gGNAmgBiAFvAQcBmgGOAWgBkwGIAWgBkgG8 + ARQD8gEcAW0BcwGZAm4BjQHqARQBbQEVAfIBFAOSAe8C/wOSAv8EkgEVBBMB6gHrAW0B6gESAm0CEwFt + AfIBDwFnAY0BiAFvAWkC4wGTAW8B4wRpAYIBFAPyAewDmgIaAZoBEgIUARMBBwEUBJIC/wHyAQcC/wH0 + BJIBFAGSARMBbQLrAW0B6wHqAesBbQHrAuoBBwHyARABjQESAY4E4wGIA+MBiAFvAe0B8QEUA/IBbQKZ + A+0BEwQUAewBFAWSAfID/wHxBZIBFAHyAesBbQPrAxIB6wJtAesC8gERAe0BBwEaAbABFgNvA+MB7QHv + AvIBFALyAe0BEgEUARMBFAFDARUBFAHrAeoCEgG8ARQHkgH3B5IBFALyAe0BbQLrAeoBEwFtAusB7QPy + AREBwwG9AbcBmgEHAe0BiAFvARYBkwHvAbwD8gEUAvIBkgITAeoBjAESAuoB6wESAewB8AHyARQPkgEU + A/IB8AH3AeoBEgETAeoB9wHwBPIBFAHDApoBwwHvAfIBBwHDARoBmQG8BPIBFALyAfEB7ALqAW0CbgHs + AesBBwPyAQ4HFAIVBhQBDg8UAQ4DFAERBhQBQwQUAQ4HFAIVBhQBQgFNAT4HAAE+AwABKAMAAUADAAEw + AwABAQEAAQEFAAGAAQEWAAP//wCCAAs= + + + + 565, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD8 + CQAAAk1TRnQBSQFMAgEBAwEAASABAAEgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wIAD5IEAAL/BPMB9AL/ + BwAC/wTzAfQC/xQAD5IDAAH/AfEBLgE0Ai8BNQE0AfgB9AH/BQAB/wHxAUYBTAIXAUwBRgH4AfQB/xMA + D5ICAAH/AesBNQF+AToDNgFcATYBLgHzAf8DAAH/AesB4wGUAXUDFwF1ARcBRgHzAf8SAAaSAfMB9AeS + AQAB/wHrATYBOgc2AX4BNAH0Af8BAAH/AesCdQcXAXUBRgH0Af8RAAaSAv8B9waSAQAB8gE1AToJNgF9 + AS4B/wEAAfICdQkXAXUBRgH/EQAGkgL3B5IB/wEuAVwCNgE6Av8BOgU2ATUB9AH/AUYBtwsXASYB9BEA + BpIC/weSAf8BNAE6AjYE/wE6BDYBXQHsAf8BdQFNCxcBTQHsEQAGkgHyAf8B8waSAf8BLwI2AfYB/wKf + Av8BOgM2AVwBLgH/AbcBRwEXAb0H/wFHARcBlAFGEAABEAeSAfQB/wH0BZIB/wQ2ARsCNgGfAv8BOgI2 + AVwBLgH/Ab0BFwFHCP8BFwFHAZQBRhAAARAEkgHxAe8CkgHzAv8EkgH/AVcHNgGfAv8CNgF+AS4B/wG9 + AxcHJgIXAZQBRhAAARADkgHvAv8DkgL/BJIB/wE1AXkHNgGfAf8DNgG8Af8BTAGUDBcBvBAAARAEkgL/ + AfIBBwL/AfQEkgEAAfgBfgo2AVwBNAH/AQAB7QGaAUwJFwF1AU0B/xAAARAFkgHyA/8B8QWSAQAB/wE1 + ARoINgE6ATUB7wIAAf8BTQGaASYHTAEXAXUB7xEAARAHkgH3B5ICAAH/AX4BGgY2AVwBNQH4BAAB/wF0 + AZoBTAEmAkwCJgJ1AfgSAAEQD5IDAAH/AS4B8wIbAn4BXQE0Ae8GAAH/AUYBmgS9AZQBTQHvFAAHEAEP + BxAFAAH/AfgDLgG8CgAB/wHtAiQBRgG8FQABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGA + FwAD/wMAAfABBwHwAQcEAAHgAQMB4AEDBAABwAEBAcABAQQAAYABAAGABQABgAEAAYA1AAGAAQABgAUA + AYABAQGAAQEEAAHAAQMBwAEDBAAB4AEHAeABBwQAAfgBHwH4AR8CAAs= + + + + 675, 17 + + + 825, 17 + + + 17, 56 + + + 142, 56 + + \ No newline at end of file diff --git a/DevTools/Pangya Modern Editor IFF/Pangya Modern Editor IFF.csproj b/DevTools/Pangya Modern Editor IFF/Pangya Modern Editor IFF.csproj new file mode 100644 index 0000000..1ba82bd --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Pangya Modern Editor IFF.csproj @@ -0,0 +1,374 @@ + + + + + Debug + AnyCPU + {1740BABD-9FA7-433C-919E-D6C148E5F265} + WinExe + Pangya_Modern_Editor + Pangya Modern Editor IFF + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + Form + + + FrmEditorCaddies.cs + + + Form + + + Main.cs + + + + + FrmEditorCaddies.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {5838f474-6352-43c7-b3cb-7579d2c652c1} + PangLib.IFF + + + + \ No newline at end of file diff --git a/DevTools/Pangya Modern Editor IFF/Program.cs b/DevTools/Pangya Modern Editor IFF/Program.cs new file mode 100644 index 0000000..80d3975 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Program.cs @@ -0,0 +1,23 @@ +using Pangya_Modern_Editor.Forms.Editors; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Pangya_Modern_Editor +{ + internal static class Program + { + /// + /// Ponto de entrada principal para o aplicativo. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrmEditorCaddies()); + } + } +} diff --git a/DevTools/Pangya Modern Editor IFF/Properties/AssemblyInfo.cs b/DevTools/Pangya Modern Editor IFF/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e28552c --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// As informações gerais sobre um assembly são controladas por +// conjunto de atributos. Altere estes valores de atributo para modificar as informações +// associadas a um assembly. +[assembly: AssemblyTitle("Pangya Modern Editor")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Pangya Modern Editor")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Definir ComVisible como false torna os tipos neste assembly invisíveis +// para componentes COM. Caso precise acessar um tipo neste assembly de +// COM, defina o atributo ComVisible como true nesse tipo. +[assembly: ComVisible(false)] + +// O GUID a seguir será destinado à ID de typelib se este projeto for exposto para COM +[assembly: Guid("1740babd-9fa7-433c-919e-d6c148e5f265")] + +// As informações da versão de um assembly consistem nos quatro valores a seguir: +// +// Versão Principal +// Versão Secundária +// Número da Versão +// Revisão +// +// É possível especificar todos os valores ou usar como padrão os Números de Build e da Revisão +// usando o "*" como mostrado abaixo: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DevTools/Pangya Modern Editor IFF/Properties/Resources.Designer.cs b/DevTools/Pangya Modern Editor IFF/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d90f88f --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Properties/Resources.Designer.cs @@ -0,0 +1,973 @@ +//------------------------------------------------------------------------------ +// +// O código foi gerado por uma ferramenta. +// Versão de Tempo de Execução:4.0.30319.42000 +// +// As alterações ao arquivo poderão causar comportamento incorreto e serão perdidas se +// o código for gerado novamente. +// +//------------------------------------------------------------------------------ + +namespace Pangya_Modern_Editor.Properties { + using System; + + + /// + /// Uma classe de recurso de tipo de alta segurança, para pesquisar cadeias de caracteres localizadas etc. + /// + // Essa classe foi gerada automaticamente pela classe StronglyTypedResourceBuilder + // através de uma ferramenta como ResGen ou Visual Studio. + // Para adicionar ou remover um associado, edite o arquivo .ResX e execute ResGen novamente + // com a opção /str, ou recrie o projeto do VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Retorna a instância de ResourceManager armazenada em cache usada por essa classe. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Pangya_Modern_Editor.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Substitui a propriedade CurrentUICulture do thread atual para todas as + /// pesquisas de recursos que usam essa classe de recurso de tipo de alta segurança. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap _error { + get { + object obj = ResourceManager.GetObject("_error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap accept { + get { + object obj = ResourceManager.GetObject("accept", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap accept1 { + get { + object obj = ResourceManager.GetObject("accept1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add { + get { + object obj = ResourceManager.GetObject("add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add1 { + get { + object obj = ResourceManager.GetObject("add1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ajax_loader { + get { + object obj = ResourceManager.GetObject("ajax_loader", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap AlterarPreçoToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("AlterarPreçoToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ApagarTodosToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("ApagarTodosToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap application_put { + get { + object obj = ResourceManager.GetObject("application_put", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arin { + get { + object obj = ResourceManager.GetObject("arin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap asterisk_yellow { + get { + object obj = ResourceManager.GetObject("asterisk_yellow", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap AtivarTodosToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("AtivarTodosToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap backup_manager { + get { + object obj = ResourceManager.GetObject("backup_manager", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ball_03 { + get { + object obj = ResourceManager.GetObject("ball_03", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bg_transparent { + get { + object obj = ResourceManager.GetObject("bg_transparent", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap box_closed { + get { + object obj = ResourceManager.GetObject("box_closed", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap box_open { + get { + object obj = ResourceManager.GetObject("box_open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap btnAbrirArquivo { + get { + object obj = ResourceManager.GetObject("btnAbrirArquivo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap btnIron { + get { + object obj = ResourceManager.GetObject("btnIron", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap btnPutter { + get { + object obj = ResourceManager.GetObject("btnPutter", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap btnWedge { + get { + object obj = ResourceManager.GetObject("btnWedge", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap building_edit { + get { + object obj = ResourceManager.GetObject("building_edit", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Button1 { + get { + object obj = ResourceManager.GetObject("Button1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Button6 { + get { + object obj = ResourceManager.GetObject("Button6", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap card_icon_pack_04 { + get { + object obj = ResourceManager.GetObject("card_icon_pack_04", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap cecilia { + get { + object obj = ResourceManager.GetObject("cecilia", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap chart_organisation { + get { + object obj = ResourceManager.GetObject("chart_organisation", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap compress { + get { + object obj = ResourceManager.GetObject("compress", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap computer_key { + get { + object obj = ResourceManager.GetObject("computer_key", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap data_sort { + get { + object obj = ResourceManager.GetObject("data_sort", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap database_lightning { + get { + object obj = ResourceManager.GetObject("database_lightning", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete { + get { + object obj = ResourceManager.GetObject("delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete1 { + get { + object obj = ResourceManager.GetObject("delete1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap DesativarTodosToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("DesativarTodosToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disconnect { + get { + object obj = ResourceManager.GetObject("disconnect", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disk { + get { + object obj = ResourceManager.GetObject("disk", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disk_multiple { + get { + object obj = ResourceManager.GetObject("disk_multiple", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap document_editing { + get { + object obj = ResourceManager.GetObject("document_editing", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap eye__minus { + get { + object obj = ResourceManager.GetObject("eye__minus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap flag_1 { + get { + object obj = ResourceManager.GetObject("flag_1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap folder_explore { + get { + object obj = ResourceManager.GetObject("folder_explore", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap folder_explore1 { + get { + object obj = ResourceManager.GetObject("folder_explore1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap fred { + get { + object obj = ResourceManager.GetObject("fred", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hana { + get { + object obj = ResourceManager.GetObject("hana", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hand_point_090 { + get { + object obj = ResourceManager.GetObject("hand_point_090", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hand_point_270 { + get { + object obj = ResourceManager.GetObject("hand_point_270", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_11 { + get { + object obj = ResourceManager.GetObject("ico_11", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_14 { + get { + object obj = ResourceManager.GetObject("ico_14", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_15 { + get { + object obj = ResourceManager.GetObject("ico_15", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_18 { + get { + object obj = ResourceManager.GetObject("ico_18", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_19 { + get { + object obj = ResourceManager.GetObject("ico_19", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_22 { + get { + object obj = ResourceManager.GetObject("ico_22", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_23 { + get { + object obj = ResourceManager.GetObject("ico_23", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_26 { + get { + object obj = ResourceManager.GetObject("ico_26", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_29 { + get { + object obj = ResourceManager.GetObject("ico_29", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_38 { + get { + object obj = ResourceManager.GetObject("ico_38", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_43 { + get { + object obj = ResourceManager.GetObject("ico_43", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ico_44 { + get { + object obj = ResourceManager.GetObject("ico_44", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap kaz { + get { + object obj = ResourceManager.GetObject("kaz", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap key { + get { + object obj = ResourceManager.GetObject("key", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap kooh { + get { + object obj = ResourceManager.GetObject("kooh", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap LevelMinimoToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("LevelMinimoToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap list_arthur { + get { + object obj = ResourceManager.GetObject("list_arthur", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap lucia { + get { + object obj = ResourceManager.GetObject("lucia", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap marketwatch { + get { + object obj = ResourceManager.GetObject("marketwatch", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap mascot_02 { + get { + object obj = ResourceManager.GetObject("mascot_02", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap max { + get { + object obj = ResourceManager.GetObject("max", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap money_bag { + get { + object obj = ResourceManager.GetObject("money_bag", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap money_delete { + get { + object obj = ResourceManager.GetObject("money_delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MudarMarcaçãoToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("MudarMarcaçãoToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap nell { + get { + object obj = ResourceManager.GetObject("nell", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap nenhum { + get { + object obj = ResourceManager.GetObject("nenhum", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap nuri { + get { + object obj = ResourceManager.GetObject("nuri", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap package_add { + get { + object obj = ResourceManager.GetObject("package_add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap package_go { + get { + object obj = ResourceManager.GetObject("package_go", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Pang { + get { + object obj = ResourceManager.GetObject("Pang", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap PictureBox4 { + get { + object obj = ResourceManager.GetObject("PictureBox4", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plugin { + get { + object obj = ResourceManager.GetObject("plugin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plugin_add { + get { + object obj = ResourceManager.GetObject("plugin_add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plugin_delete { + get { + object obj = ResourceManager.GetObject("plugin_delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap points { + get { + object obj = ResourceManager.GetObject("points", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap RemoverMarcaçãoToolStripMenuItem { + get { + object obj = ResourceManager.GetObject("RemoverMarcaçãoToolStripMenuItem", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap search_plus { + get { + object obj = ResourceManager.GetObject("search_plus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap stamp_pattern { + get { + object obj = ResourceManager.GetObject("stamp_pattern", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap textfield_key { + get { + object obj = ResourceManager.GetObject("textfield_key", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap to_do_list { + get { + object obj = ResourceManager.GetObject("to_do_list", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap to_do_list_cheked_all { + get { + object obj = ResourceManager.GetObject("to_do_list_cheked_all", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap user { + get { + object obj = ResourceManager.GetObject("user", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap winrar_add { + get { + object obj = ResourceManager.GetObject("winrar_add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap winrar_extract { + get { + object obj = ResourceManager.GetObject("winrar_extract", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Consulta um recurso localizado do tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom { + get { + object obj = ResourceManager.GetObject("zoom", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/DevTools/Pangya Modern Editor IFF/Properties/Resources.resx b/DevTools/Pangya Modern Editor IFF/Properties/Resources.resx new file mode 100644 index 0000000..d3763e3 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Properties/Resources.resx @@ -0,0 +1,394 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\accept.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\accept1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ajax_loader.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\AlterarPreçoToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ApagarTodosToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\application_put.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\asterisk_yellow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\AtivarTodosToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\backup_manager.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ball_03.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bg_transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\box_closed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\box_open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\btnAbrirArquivo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\btnIron.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\btnPutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\btnWedge.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\building_edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Button1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Button6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\card_icon_pack_04.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\cecilia.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\chart_organisation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\compress.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\computer_key.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\database_lightning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\data_sort.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DesativarTodosToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\disconnect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\disk.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\disk_multiple.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\document_editing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\eye__minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\flag_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\folder_explore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\folder_explore1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fred.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hana.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hand_point_090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hand_point_270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_18.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_19.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_22.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_23.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_26.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_29.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_38.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_43.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ico_44.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\kaz.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\key.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\kooh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\LevelMinimoToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\list_arthur.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lucia.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\marketwatch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mascot_02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\max.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\money_bag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\money_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MudarMarcaçãoToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\nell.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\nenhum.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\nuri.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\package_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\package_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Pang.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\PictureBox4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plugin.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plugin_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plugin_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\points.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\RemoverMarcaçãoToolStripMenuItem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\search_plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\stamp_pattern.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\textfield_key.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\to_do_list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\to_do_list_cheked_all.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\user.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\winrar_add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\winrar_extract.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\_error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/DevTools/Pangya Modern Editor IFF/Properties/Settings.Designer.cs b/DevTools/Pangya Modern Editor IFF/Properties/Settings.Designer.cs new file mode 100644 index 0000000..e5a8044 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// O código foi gerado por uma ferramenta. +// Versão de Tempo de Execução:4.0.30319.42000 +// +// As alterações ao arquivo poderão causar comportamento incorreto e serão perdidas se +// o código for gerado novamente. +// +//------------------------------------------------------------------------------ + +namespace Pangya_Modern_Editor.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/DevTools/Pangya Modern Editor IFF/Properties/Settings.settings b/DevTools/Pangya Modern Editor IFF/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/DevTools/Pangya Modern Editor IFF/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git "a/DevTools/Pangya Modern Editor IFF/Resources/AlterarPre\303\247oToolStripMenuItem.png" "b/DevTools/Pangya Modern Editor IFF/Resources/AlterarPre\303\247oToolStripMenuItem.png" new file mode 100644 index 0000000000000000000000000000000000000000..735393c8180ce0796bf73b44711c5b735e949311 GIT binary patch literal 779 zcmV+m1N8ifP)JNR5(wa zlIu&8VHn2ukAxpWX(<$H5FMaAq^a|q&LxpJ)6}_xI=4K#sp;l4PjjeCr>0Y<;+mzQ zP*NGySVfxPfh0PK6%hpX;p%=LS20>&y5Q!4`@XK<`@YZp^1MkNA8?{Ta6qFx7dTg* zesouvbQtcDhXAi_9#54Lh#s{FGsY_PmuEm6?t9xk^3Xp4qLV)6Pp`W0eXAe%Jd7r# zpvXP)kXL{t+V5?xI0Uk|<9KW@!?(>IShQ)l9N|0Sw*1y#07;BrZdd6AY&h>><^CP) zzQ2J7wkmwxwBlNk5CqS2TbVonbZJ7h@CcqQOkk$70<%U9mTVOm(#Wy%(ukEsJ1WwT zf%CZ|e*n^0ewr#Z7|!`II6BHOsVl_YktS@cIq>L~2~$l7^K|7GrsN2yb@gu(~>qjjfw-Juzcgn+=;mfhC6pYGE)a=feO}0sqHz zZ!HFDF4F3R=qsZ;_%Man+jcmYy0KuZ$Cyq6OJxSkr6LS!GGT2|f^yG)0WjE5fYyR2 zbQL9_yCenIubjtpuL_H^dV)=0{oOcvN>X7`CZSChjnO>-F$Z?J8Q|NNYLtvP9Hnh2m;saKO30)rwM#Yu<2&U-uG9qSR1XEaa83BHUGg?rvL02Dv7DO-bRy#NsS-xFG7V{Dvl z$hF=De2r+Cdk|wreybC}SqTLD@qku^q!_c7;VyP;0K^b~*rRnZr5c@C#zGhX1(1G+ zHl;_$$n0fE0|c+#ZPB)zag6K&5JdpI{Mn>kuKydu1 z)8X}5j2Zc@&H?;2-{`kiV&jbL{1H4DKdjaZz+C!&ud=OWBek~y5MNT3jUs&*0P!ye gM^#QQfcs6}3HBxM7MjgPE&u=k07*qoM6N<$g4&UnrT_o{ literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/AtivarTodosToolStripMenuItem.png b/DevTools/Pangya Modern Editor IFF/Resources/AtivarTodosToolStripMenuItem.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0633e4de15f77d3cb78d055eba6490c541284f GIT binary patch literal 658 zcmV;D0&V??P)wrJd5`wARJz6_7PNWV0XQ=%R?6Ow7wgyY{r42MwsTndIf(K`FGkA8ku>+A z%aCHwUJIbPczN(Q0+?T5`Y4|UL z5R>LKfnnJzg8msnM>+)1*Ys>Hi7bm@4f8C*8Y6IGRWMKw;2Xfh#glM8a$G*fZZej6 zh#v%nH9=n~Quhc$;`Wyg!*&lM|A~v=>Inl>jqzJjQM!((%>&bZ=vs4H3(Spbs0XN;n!Dvv8_z@!Nl#is*P7EB sdpxshH-IY2IL6R_UN|(TwW<{907*qoM6N<$f=rAnQUCw| literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/Button1.png b/DevTools/Pangya Modern Editor IFF/Resources/Button1.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb959c383c7295737c7314bae496765f5fea629 GIT binary patch literal 1929 zcmV;42X^?0P)^&Q3PZa1Vv=I z2?_>LZmFxGW^kj3w`ej(LIR=zNn~MR1(vBI0{jio(t|7cGHm-y-r%5Eemv&hMQO-sm zdLfd5$yPX8R>PrQ2S;nvP1K|%65hTetcI3G?-FMx;5A4ls1>w&eghLK3a*8tEr!J2 zMl?U8F?Hl!vIb7|n>4OrB^C(-5BVhnW6Ho~INPG&)NCMeK@j%^u~Yc}cg;#HiQ>EK zX+Y|q5Wi$#(7<9~>>`|3W8iF;k&XWqSLY_Uwej%i5@sPDUY(5Zu7;{mT7uaO)WFq2 z*BzTk{H(aO3GnI@p+ELFe6c%}EC^1X;3+omQ)ns(Wdn<*oEhnvrt}*at%gg>%=mIw z*Jil867NKp$gGm!HExBW^6$_q|Lkuv`&DV3gED#hy*7??XFyZZ0QZ5Ba}-XXND@58 zWO%!YNw6&dpE(7_%6~wAbOk)^QSfTs0yGh1C2(~LaorXHPwOhUTHb`Cd73wvh#cA4 zUN=8OM-)7o7`QlHPL8;@?+~nwg(zD8yKU6|$t?y>OBoNmL_|}k8ePXD@z}2({5`dQ zC>dxH28K@n*HU3P{vvD_8%%yj*U;+7o7+>za^^>?^$_d&8{MeVBarrh(B4z><#UlBIAM zOW|XwTv|>98`8xFoW^I^3{!m)cH|aI0vjq#D7$Qfe$WYZza6!Paa6PoVQW=Ca_R=9 z@9fxB1k>jUfb9SV8g}8`jemHXx<3=*BDe(4atx1RvON(R#dF;EPr+@@gIm9aB+uY6 zBm?FxDEn6$T2!q#+H@UdjW+a-xS_I4;#1=oPHIPRhz4>R29flc71hQGG+$BU-|w&r zdooE@0O%#Q48+J% z;9~_|Rd(Y7Ge5<$i_C?1v2FqivmFO}>?qYwV3%eb9{VKXHm9NgqX;Cv^y^os8E`6w zG#7_qv^53YA8C;n?E|nX<&>a_Ep%6Vd==n*3_LC=(8ZJ)`~5)HthIv2nCuklo}?PxeE%4mzy2v z>oFrGH61$(6i9pJkqGMj*e`oCLR6*Uqr!yfg(gnKY%~`>i>oDzQIxg@SvhZ`|C$-6 zTdl~vJd7;W81mXDQKWO?Q_~Q7yN$@q%tE>H2=qPu$SpY{mf%Nz*_$Euua5j8 zF)10PiZUE1KY{kzcY(f29!@gUBY@r^k7t!GYaV^ezVQ$IE^yNVL zT;S+$fjW-*;5l3>2onZ=O1{+)=6*?*yr1@0nwSS1{|(d?uU1_w2p0x|{zkml5n$qo z{4c0T`;!oVf_&>0n2u=^3rQFe;=dr@xCibggqX-!lwJJ&pNfA)%$f5abtgbY5y!GP P00000NkvXXu0mjfDPxbZ literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/Button6.png b/DevTools/Pangya Modern Editor IFF/Resources/Button6.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb959c383c7295737c7314bae496765f5fea629 GIT binary patch literal 1929 zcmV;42X^?0P)^&Q3PZa1Vv=I z2?_>LZmFxGW^kj3w`ej(LIR=zNn~MR1(vBI0{jio(t|7cGHm-y-r%5Eemv&hMQO-sm zdLfd5$yPX8R>PrQ2S;nvP1K|%65hTetcI3G?-FMx;5A4ls1>w&eghLK3a*8tEr!J2 zMl?U8F?Hl!vIb7|n>4OrB^C(-5BVhnW6Ho~INPG&)NCMeK@j%^u~Yc}cg;#HiQ>EK zX+Y|q5Wi$#(7<9~>>`|3W8iF;k&XWqSLY_Uwej%i5@sPDUY(5Zu7;{mT7uaO)WFq2 z*BzTk{H(aO3GnI@p+ELFe6c%}EC^1X;3+omQ)ns(Wdn<*oEhnvrt}*at%gg>%=mIw z*Jil867NKp$gGm!HExBW^6$_q|Lkuv`&DV3gED#hy*7??XFyZZ0QZ5Ba}-XXND@58 zWO%!YNw6&dpE(7_%6~wAbOk)^QSfTs0yGh1C2(~LaorXHPwOhUTHb`Cd73wvh#cA4 zUN=8OM-)7o7`QlHPL8;@?+~nwg(zD8yKU6|$t?y>OBoNmL_|}k8ePXD@z}2({5`dQ zC>dxH28K@n*HU3P{vvD_8%%yj*U;+7o7+>za^^>?^$_d&8{MeVBarrh(B4z><#UlBIAM zOW|XwTv|>98`8xFoW^I^3{!m)cH|aI0vjq#D7$Qfe$WYZza6!Paa6PoVQW=Ca_R=9 z@9fxB1k>jUfb9SV8g}8`jemHXx<3=*BDe(4atx1RvON(R#dF;EPr+@@gIm9aB+uY6 zBm?FxDEn6$T2!q#+H@UdjW+a-xS_I4;#1=oPHIPRhz4>R29flc71hQGG+$BU-|w&r zdooE@0O%#Q48+J% z;9~_|Rd(Y7Ge5<$i_C?1v2FqivmFO}>?qYwV3%eb9{VKXHm9NgqX;Cv^y^os8E`6w zG#7_qv^53YA8C;n?E|nX<&>a_Ep%6Vd==n*3_LC=(8ZJ)`~5)HthIv2nCuklo}?PxeE%4mzy2v z>oFrGH61$(6i9pJkqGMj*e`oCLR6*Uqr!yfg(gnKY%~`>i>oDzQIxg@SvhZ`|C$-6 zTdl~vJd7;W81mXDQKWO?Q_~Q7yN$@q%tE>H2=qPu$SpY{mf%Nz*_$Euua5j8 zF)10PiZUE1KY{kzcY(f29!@gUBY@r^k7t!GYaV^ezVQ$IE^yNVL zT;S+$fjW-*;5l3>2onZ=O1{+)=6*?*yr1@0nwSS1{|(d?uU1_w2p0x|{zkml5n$qo z{4c0T`;!oVf_&>0n2u=^3rQFe;=dr@xCibggqX-!lwJJ&pNfA)%$f5abtgbY5y!GP P00000NkvXXu0mjfDPxbZ literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/DesativarTodosToolStripMenuItem.png b/DevTools/Pangya Modern Editor IFF/Resources/DesativarTodosToolStripMenuItem.png new file mode 100644 index 0000000000000000000000000000000000000000..1e7e4b3343de0d4df6f49e3adb24fdb4017246be GIT binary patch literal 601 zcmV-f0;c_mP)q$gGR5(wK zl1)ogaTvw#C-5W8D#&@uR8ngkBNs#3^n%eyN@N+-6edzu3&TycZjl8oglG{CLi>U- zr>{{hf~c`9$y@hMnWyLX=gwFv*nz`;p6B_U!!V4uS&Ny(%*(FkV4-uj>SksiAq`22 zKA9@rsT}a@o0s)%ZdT#*X9{1K?PX@q9WIJ&6jZXQ+^d5v`ugOdg85l3PmZWM*rWG{ zcDa|CJ$E>Ga*YC-SDrr7>b+@I^KJUjm)6JpUURE^nb~uPgD2+-7Bk72H&f&Ke*ccD z{d-hB+ODPJ`?PeTW5YJH=MD!?&J`@|kB9#JV=WJK>GR>VKIM|;#5PX4I~+W@s34*6 z!Cieh(qi+@f`cb#vVu%f!L3oP*jM}?!NHR=SwVM7VezC^3q20lNpSGwOrBTHrfdF% zV+uy|@`rlm8{nVHZZ&(mJI;7=uAtNzpL<*A)vvKZ*Bo3LP;hY@+nzfdJULfjit%;) zVnJ&YXY_M?ShcG|Tg;w296Y&tfj1qGU8&eV?8n$?>Bf1jUmwx>wX^zd=4EEj9S)vc zqrlX}vTVQXyWxJVO`el(7o{n)z0B;nN8u(ye-|K@?WK<9QaO{V0hbS$d2MFTJ>r}; n7t|Fqx0-?LW@i77Bzb=TW<)nkl{{Yw00000NkvXXu0mjf!15gl literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/LevelMinimoToolStripMenuItem.png b/DevTools/Pangya Modern Editor IFF/Resources/LevelMinimoToolStripMenuItem.png new file mode 100644 index 0000000000000000000000000000000000000000..82cabb208bc0e71e7f1b65675d177265e0ea643c GIT binary patch literal 674 zcmV;T0$u%yP)kY33I^*)RuuQ7yZ-=c2}4%4uk&0E@8N3{vAw+-zHQTI6iTb2P_ zDWr5JMa=+Od^u;tn5h!qo;<`fhokqK@u{i;<7N||v~aFlHsIPsDjA@CGa*oR0HIe! z2=(gW+nb60Vjadg>?_QJKPMAE*cW-A>>&6-PUZkQQdhxWn1k*tCGcH?S#LV}D^%qekwkbFPiRwww>S%5ll~v04g)}c0MCBj=h#C#%K!iX07*qo IM6N<$f*3I;WB>pF literal 0 HcmV?d00001 diff --git "a/DevTools/Pangya Modern Editor IFF/Resources/MudarMarca\303\247\303\243oToolStripMenuItem.png" "b/DevTools/Pangya Modern Editor IFF/Resources/MudarMarca\303\247\303\243oToolStripMenuItem.png" new file mode 100644 index 0000000000000000000000000000000000000000..c00f05176cbadfb376731588aad1e348ddb8d09b GIT binary patch literal 669 zcmV;O0%HA%P)-be+UfiXOYd zGviBwXYV0791gvrO)eH$ON)s@zB0N<(@>PtL$gT67vgN4@s53DBai4-?httWhKnYH zHeD~>wA(2bRSMZOQrj@?uNG+$E4GY$6LJ7HAlP{jKAZ&a0j5S|+KlE+S;H;@*4Nfi z^Epsg#l;QN8dyNO{2Yy7hbA`)`7pS2JUD-3ORl1~TCJ3Sm)R((VxlTG@o&oQ`{CUQ zAs>SNy*Mu%+a}l0_x4&U5@oToAn$2_qynLCaPATE@g3zFdhJK4;p}SW=|eM2_TfBt zbXU2C{)V^{`>j5Vtxd>hPBDGExo)|J*8F$vfF%6^bw$uE83NR@00000NkvXXu0mjf D18F!o literal 0 HcmV?d00001 diff --git a/DevTools/Pangya Modern Editor IFF/Resources/Pang.png b/DevTools/Pangya Modern Editor IFF/Resources/Pang.png new file mode 100644 index 0000000000000000000000000000000000000000..6becf04dbb6c7b34228ae4f158ca839628965aaa GIT binary patch literal 800 zcmV+*1K<3KP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000XU000XU0RWnu7ytkOKy*b|bVF}#ZDnqB07G(RVRU6=Aa`kWXdqB>Zy-%? zbZKvHAT1z4ZfR{{bZKvHAX9Hi_@(N=ZaPR5(wC zl3i>|VHn4sHr=UN*@YWnZY698k+eDsS*VYgN|<4rk`y;Cbg8f=u9OQGM1rglQ4@A! z4Uvh8gddK8c6p4=x->1&PP}BnJeCu11ob|}4Dl+&k`Mk{poKKgK)?SZz!J&? zqC|V3>4!{&4rt{Pe%G*sAf0d0`HBx1-AH>j zJ>kzgW7G{Ra!E$(kzD6Y;jk-!>n>e%KF?==9e|?-ot%b<&k^8y+8g#MY6h~k2-Q^C z^S1>qxLjpqbsmoxJXsHP2JRI1$y{4N4>I1gy7GeoE&K zfA&Kudg=&!BROTRI^=XI8$iEY* ez=0WQi^wlCr}V+7q$b1w00006vFdqP4&+=#mX0fI{cF|=`a>-Vo!+577c2y{<3G%%C*dFsiRWbdlIzqM*vty=XT z6L>kuG*H?f{vQ1R_I--5byW)dZv_yFST)1Td z{|eZkw(MuQW~yO6i>JV2{zvd%HVqjT8pwArM2@vK+M|82CCC+9{2Y;~xeO)tdIQ_i zqW&V>K7qFxIVNjnMk&re?*7?_2wgo3`zi}?=gLKV@x>Py57$l~N4}jdN^P`m?cS97 z*X|90KNY%~z}tj$J-Huc87PDVubBSOd%+|m>&W2zk$nQ0pT*-%}6qzWYBf@h>Z(8KEPCrX$lx`Ip7EI_??z@_T}pO+}jOLUhIl!?|PZ)?3&mH9|hTY_?DBRsr!j}!RO!$+Lx*Dhb<#Qx&(7r1um8g5;`#s7cf z#tjMa`wtCZ-=MjOMet9H|Mw;b1MUud<>F2 zDVi&<)p}SQZ3=Jv~cD45GO7X{K|zZk{M6L zC)~Sxk2Ap|rXGfdhQ^357=61-hfuyg2wfWj&>G}?ds|ZIr@}DLAXP^ugn~(7vU9ML zxr)Qx&1g*uN3EX&B3I8siLLg@rcn3!!sQcqRcH_Q2+Gr1h6IHR0pOp!s(#S&Gi1(#E_Z75YM30 zURNugjYnQaiK77?+!>Q7BKB1mAy)2FWNWXu*&6Npe}vm6@Uqe1WBY?D2i;S-dNRn- zT`kf31Ty%}pE}Pa!NUg+aq;tuTpirLaT`~!UX>94$bqBSTQ!RM@XbiqRc15a1+5`& zp285%Am2j$cNy9%FA{ncLlnD)se=I~3H~PB{`%1wuLP{Kt=Cc-n1`0ji*6>Z%GJ6 zr2Jgeds>`njrRGY(8cRPN2J&Hdo~0()_Gdgmor^i<*0{7Kl_Mkck|x}m%Mdo4s`l$ zxveIOO_k6c>nD8mV-Rfs68%quB*Et=KF68kXRxb$D^hg~Q0r}j&gk`>Z4ur-6S{u} z%)nG(g#RLV=~U!csN>Q7F=O+2xO?piV%3%*&sd46r<{FV@j*Wly83R>8SD46-qeW1 za!XZIG1sQa&mM71hiy>$3~iyV{frTw>*~DeD7Dr&(d_Slwh&kTg-hektvlQfxOeAC zLR~t0iT{15?*J0kYGIR=KHcBn85j86mA?`Py`M1Ae?E{|`~`;cICo^f(A$f#zqSx`~8 z`a5U}x4czgDjFhh(y)ltG7e;w8ZeP9#QW={J+usUoOAJ}s z;Az41tT`@^9OdsP4RQf*T)lydXD)I^ptgN;KC&&f5U2PVIwHLfH-~!tUFdFHl-TQ8 zdWbm9RqT6~V`|EGtI*}EN3ECD&)OrrisR)!#eu3q;c>nM z&5m0a&tYp~Ff!IIMx5*{B(iI_xS4i02Ri>l=;n<_Pki7n8`oPi*Ubdy`=2kC>3zvC zq;_R=5Xssy$kUfaN7VXMp{sFGXsi9J46PNHQk6eLoctVI7&s{O`1Mg0=!(rIif9dX zx!xM)@k^oWSBthVcfTz4rD%=t#1}&7b38n}cNcr|lTpPC!xA$UY&KRvlds*G){u2? zMf|%f#%Cd^fX+xS9N*R^ywz9Z{;iv6iS$OI>Y^K+@j+ItF@EEQaf_|gy?quJ36zZ>LR<$zO1^3!R-SmVm-&l0V`M=u|=!9A~Q|vF!mJsOcfF{NPW~5~pD4=e= zO?7j)=MzkyXS(J;Q#F=d4qx#JT7q1-#3WE4iDC@oW?sK?{VT^jxu+Li3nrn`P8%K3 zK2}2auLew{DHWNod61>P7{i^7!XrE%_ikRtshwTeSD22IJ36sDFA4P?=BThzL$R^^ zqqa~tw>nSDH#(Zt5$>_O&_oH_5`yvg;X~ogzCKRx-GNx8`N%YoKiU}NvPS6kKPsIK z6C+kmM;^12KHtBKUrWR%JA#LqS)F6YF25gsxh_RQX13^rHeR9_Fzfg{|ya29(vrJ~wV7iEkIk`(8n%0aia z*2DaF!Z2?fnDo*ihGkL59a4TH?We-Sv53)66@B3~lbq;dE9RZ4(tixl$PJjl#C1kTq?=E~s|U!C*_Z@D}6a{_UICks66DT5_mdG9AtG3vk522-gPt zc_?{nW-K-+%w>l0A|$KKM}?aeuAaZd@1@m6n(?%dBodsMf&L~&97Rxukr-~?zhgIC z7fxf}rxuvaa-%E8_vIUcy=jqYHO~6z$&ADO`%gZMG{^-!P?CeA4HYjGmyaGkz-Ui1 zg)y<&KnAt0#%S`fIn@#A^`S828v~}Meo*gaRYS&LwTmI{UcD^5#gll<-l;3b4^>Kw zkUjHVoOCh82`3YDt1d&8t~{5BMA+f2ZAj6PLA1;)?5-^5@dE;_C{hsV!s!d#wIq=E zCkD8C>n{JDKz$rPew-7ZmYHipvsqt@xZAxeE4Em8?3af|f5+cf*y}!`2;a$(A)GjI zf^+H9xN+_bc4o%l)UKWvdIlos8p@?>_O$~Al8TMwuw|Xm0P_-F=r_L(FzGZmS9=9l zT|FE8apUZ1Mu;chaj2~pH5#i>zHll=>)-L$tV>qD^@*de*Lx5TDuw#sKZC zwIzf~@(Bn;WSZ?X>qUY~gC-gMpF9GJFAzxj^5jy=E$kR(eKsL@#az_5nxNU=;cREr z`j?+5!a5I0Q~r#Jnq(Z_IVfQQdJxKSzjxz02I@+=B}<>b31~))bTy*bL=k1?DquE; zzA*e7g9d-6wG`E)gwP`PoVPDu5T2gR%8{ek;pd1h)#d27(3BAWMvyCxu-|jd)KM87 zh*M00N)!9~LZgcbI#iZmz*0*>e6j;Nbrn&t&IPT>H8|Ek^hAJ% zK3~0Xl@pp8NduAa)FkOWK7yH93Qf zC>EVj-bh@#44WLhu%qB04m6LV|L_2|)>Wa@-vvjQ(f5Sjm*Vn&1`qGvq1lfDeHoOP zuj#MzvV3Dy!A296N{ZUGGDA;#78B@qQh&_`D%fYZ21l*5u~ls)S`-(d%{LIOi4E9O zIf9|1!{gp7W)o5HhuY=ym$}{-uf1~R3MYR5L8kX>k7M7KQDoX0BT9K8T0_>|?c5Of zYvD0pK6Yep_|JnC`MI0S*1&h=EEKx~t`)Wr~o45hBDY48NJ;>F8_`swSpMKG= zi#wMuQn;A(?A1nJyI%>9@mi5tu2|*+2=|7S_xq+>Tu({W!FJP@)pfpJxV(v?TZjxOVC|v$O-z9O&F6 z4F6iO$x8Eg8`drzAO<+IZ!BW>JP^~LJT%ITvqrQhw_;auKhFjxgN?R>-Mo2Ixbmw( zeG$Wunx)h-KJytPbr&@tgV_}uUCdAy>QPtWZTCarQC}^#X2<`cJt;h$1`n5;hfFhL z^lsY69_j?&?IJS4>C>mjbrZiXPB5FIEo2>9f}G8Tpl8o9JJA>??Xwk!f<=OWYE1YMb({NWC?jBvX^d{N4n{bxaTM0a8+ zGE^6$E5>(y+p7p`{u8KlGj*eIHLYKKRT%jGz5BRw@d}@@BEdQFr5J!3Z4)C&dF|RY zzG0NUCt?b6@km05#va{!Xxk8jP~gO#GkV-w8=bk_ys{ z@S;W&=^)+D2v6=_eRLku%{7srErT3ey@666$4SCtz8=&^tpC}rg7oS%eFa1_?;wkb zr6Sh=Y|HKA+n)}0kLf&m8CtaXx^@8>kF+jcp}!Mk87aRP zt2F;wjLb}IOAg~P{uhBZgq#{36WPT42bxB)HD@O_T6iGW(i1xi5A&H!Ou-r9DXBn> zW;|^lJJ`+$&)htb_$A)qOwzJhzs>@szK(+>K92uec+A&}w)o)xY>)O$sSNf&nyDJX z6y_tx(h@z{+pxF%IQG{wX~2vZdO4B?q|<2mlB5EOJ`#D)lMch34X9*Hup>PRWtM9x zE&Ez$q?c=3sM~jvQkJH@x`(!7r7{Mm_{3L%0y&fhPJ}(wGlcC0yO6ADfPe+F5TmdR z4G|f9au7j@5%xEZa%Ld4NiH@0F6w!)^_3h$v1b5cRF@#xKoOh0Y#S^5oTdwp_-3Fj zA>=201!=x@kv?_#ZdOQS9zvRl7787G(UsoAU+VC#!ErgB8ikal-A56WNi^Kiz!y-u zVtn{QM}>_BwkL%qcE|d?(ixCztn5nr@!}Nb;@sgE@B1f^4j&yJGX-A^F)Hf6xolQ~1Bv(&Tm^}4c=j;6Yigo60r8Zgv zMK;=xD}8-YwmuT|5k+W;t3_vKE7~$DP!k!C&EC$4QCp6DS4)(6*^HL^IIQ3g_oicK zVaAkgxrs83v4Iik#%mD9T*WB)CCIl~kH*L{?5$>Ej)}iL<)diXP=_*)4am^9L6)&2 zHaQ32(7t_qFTJ$)Kn!v7{O1^9D&atB4oQHqY-1yNv;@0^)p}X|SQ!3WBil&%=Nk5)hM~GRw3i<9fh*e*SBL8*R-Q9t~!9gw!r2S=D zXE?K`7yY%xJVCQF(i@bPmT#uo*Bs>Xt}ygBMzXfd4+_oJ)cGu&j7WufuKA7aA~j~+f%|QpAcJI z3@N?r9w{`lzeG11RlzA~RUcr(T> zvQkG|gqM3mfYWyqo_$+TAGGe5n;rCD_@y+Y#QdKv@!`cq0j?52}Fxi8N{(MUvT>tzO z@As>4<+89e%e)#|plM9XN1XCPGZI`~MQUpTM_8TXMt?cWg}dC~~(#GINuN z30gPj;=t}czMyjZ_HBtYATQxKlLUM6Q?S1%6AfOL*cu;rY~SV#6QR2&kfAR>kCu1+ zmQ6=%avWdC`6^Hjq@>v6!K2t&bPy@J>d0m@zt+|GUPsh=W1;&AyezaPgnVynMyz~o zl;2>cl{V6?Ng9};wJ?XNg#)}64-tkKfii9>BYCu|i7`PI4;t;vjJ>@lKRJO(1xYoo z0t>YtW$DT8@Lw_oiCQu^IWY80-u=@ci8C@X!impg{mkdjvi3rv@_dw8YoIgQ$4}^f z0LC=;7Mv#7F7i z^a>RoaRRRzooUhE@5$WoSzCN?^#;w=+%BL9VoQD&4j(+gi6mwu-MM<1sf2FyWpCiS zlWCtnm0t5@x}WM6hy^VuA(I$@HfBBzvNNO;JPvgaqbYU^64or^dmG!s+z+(`Ie%Yx zya{|)sE_de-u8^xbSYr zeL3Ghzu8JdvSXPD&I>%AzVJ+?FLDb-(JzL3x90RBbooraeXZDh&7*Rz7m%3d z!slbNpVGIe&M%dCuMG%7iG?b!%UAAX@ZDDAn!wk?!Lp4iUC};h3toq|=ujkUX)(U%i1ka*0mC-;x){5}oZi+5u9gv8>fES=7@awhth^F&o<`47~sw|T3oo&DRO zFE`=)to^1ddi^jJcl28D5jH5!MJcn`Y5$%G+LSrou3VA^VshtLO7=2V;}oYF_AhM@Dp_FvJAjWNfz8UJ@xc=XTQC#n`neO(5|YXvZz(@IO8KZ(RTK zfCtK9q}ji-q7OA*)+n}IOFsY2&S;yPW$d!qUv(VW_U72AwVZY;-|OBGs3i>XTx<>V`1$r&f5qPTAm!dz z{}--CPT&7k&5$2;^aO>vc`&M>KIZ@-=}pyeU{#i#dGw@@XM{?;ogW>;dz@r!) zYXaR0^TZd~@pzmWhnpep_}tGK)f#e0{P-PoSn8(GvzA-y{I<#8A+;^UHKQZaJF42v z;*Bed_g10QLI0h2rTMp0)-FMNd=MVqzt7|QRArMO*59Q@r+pEg5d9SEZyx3Q^$P7A zk-2su+?noA&{xEsxdX}f*%Ca#Pe!%%B2@^n`rZtnXiUostM+$<$x|88sm zZbz)=pGUkMkT`cTQf9r6Lb*i`nq15*GYu5_;#N#Y35;YUy+|D=+2Jf|z62-T?cJRMF0usB-BHWPSP`5?0SdlF9-! z1g*+o{Gr%~T5alJ2L-AI1Ku9v_MR zQzwN&4y=*ex2tFX;j%LPh}J?ArR&ummLE|6-O1q}cSLyZqJ4-|=9S9eHV3(&h)J7a zp%m=>_+YN{AEie>L40awnEpS+7~s6W3n%#X0GB8JPk$2|RTJH7pp4x4lM%+ABW&e# zT5&wID<|H$e!b0~_zO?qNn{%<$7QQ8Mx(DCZd@EIut)@^CZ6m`jjDGLQxF4)n>zUH zXKvr#$`PdM+aOhGKFTcCV2g*jz0f_!_SDF~GA8Kij`iggOtYAn-mS013HTr>3}D13 z1`u`r(*(Z8+S7l3UZd+tDpW3?g_zmzVgr)~1$wJ#>)YoIehvz?>utw9XZYU|n{2e@ zlGZN0m$G&#&i5aX5S)Hez=xQDYyh#=zPR>JTe(FBpt^lEL3s#WI*W<_spO`$me^@O zv!k~w-1Em34tmF4SIy)HM`voUq#aMK^?nW$N5vM|>3)Bs>6&KR&ATN!i0gGCGKG1? zSudWrLAswnv41+qQ6xSkdh971Lb8?-Ki)1weaZbQH}i3~nfJ!{{iDJ`_eQJn8nmk{ z!R2so3GpALG0`s&m=Ef7C_~JMB%-Yj2EW%v<1$ z!0sVi;)|>e7;(4a3>P}{UE~`oAdlHPTN6XN>V0g#(|Sp79GEz?-N-~^iK7ul_Z{TK zC(ut?&!+_+vi?Z|h~-wv02CQOOz|rBPC@j_Pm#^szOERbDxv!)usz&!Mq8ls*VZS1>NsGmiq9EwkFh>? z*%_nFL<0@F$~fp@hfyCVTx0h=N{!-U+=vT8&8j&_pY<-%nBkeSW+558d$xF5{(GjQ zmAV*z5Th{nevalc9PMb4h<%X>M9?A5B=YI+4UlEocr-1=vhJ`tO& ze$xHi@Vhjo76y+AOT7ny{xFjSx5B+RvAC3ADuNh=t|dt! zZ5vP{2B7O6vFk=$%+N&f0F~uDa71c>_v!0`hf+*%im8qog#}1w>VS^hDbSaB$W)?Q zt*7O`cHpQj%-uLwcl9GG33G9lS8-$zz|YkWNtlvGe;q(BE& z4OO`qkDJ$DXRW=jV(}-q#%8}ruv6>IC7;RIBOhOy0j@9tKcZDgA{M!ZB=*_0MEH}= zrZ~oC@G+(;jx(uom5F%zpBP6V;vV;~MxTK)DijzatX+)`Q!VUuwZSUP4iFywUk?qwcB<*B3m?(JQndS*3_1$>P_%D6klv^N69bG4 zjqT_?+&9Q8cSfv|#Rj>#X!Nl;*Wl|gZe5`!CzD?n$$f^Jm2)@)5CJdwIB+5o;iSdB z$OJ^xdyJSwBx?6I1WA~M?jN$%N0ZuW)M_bUw~HkXvwKKgkQyNyfjkAe?=EvGkFskU zR9B*yF~Sy2c?lCd5SZXmS`@AZIHN~xC1O5(AIYkWVH|WG)_Yp23a{|5gGv{p|5stB zeW=t<2m4ENd5oXLK1KS7(6r1;x}HS7xW}I?eVzbP=k*+n%P%rx#n$%@DF$US}CBlismu7zLY=lE`kc*i%-0$B1$98S z#bsXy?9h=%x$07s7|Em1Q2ykWbtbcg*LeF;?x6Qy)h>qHsd5*cGf3y|Q8FhTvnD;u zNg|Nm=Zim#G3fKz6KBT^KZ^CY4kA_85>C^npwLJWjQC%9ylS1kvSr{ueh1gT{2HF` z{08=a{x#B<&O#|O)KV8sM~mTF?02{2L>y$gUknU!(a#7jt?%zd`be1La`<|*=qhnZ zu+zZ=2bk+euA`_D?!^Uib#RYa{)a8K(W)WCUBo(VB|g@`dMDgrwu2aaBCn!OW*#woBV3t-es-ay*4Hwa3S{T|?Y7i8T)lkOrBwN-lnt0#rW+jFe#$cUiZf(j{1e^YZjo%*H*HjL&5+;u!oz4(AxE{?qaFdSkUeY_ZY*{T4UNU$sYi=P+C3X4H}? zaD4ywD3V)waKVU=Bli?Y&vPbV1QnTpjJiXPCTP-MgJvT& z32|uwNt7NG5xmO!K5V9rD%ts{QI|!hnKt&j*+`gx)W(CPa2zt%MBMa$pg?UE^0bzt zE!163c>K2yWp>)ZDXI&xWxWkQd|Dcm>2ve?SfU3p0oeewm5UgGn1DpT81LU%--8Gl zMT9J!gF^GQyGk8R{w56ZjnEb0{qyEP=U=phdHkWuLFaCY!W<;c`%n_xA@SXBrGtt^ zQ*qSIniG^7Wd-rsN=!hKK#&%9lOwRlLJRd;@~CHGeyg}<{tFGWSL64Qb#D2KTJPtBEX)U4ML<517{)7?}B~&}<@2~f?`oF>> ze|Kn0j`&eyq|fqFPaDqyN2APi)3q&`=4#EErmC&kCMxZ@*4i~S-ZtrF-nQXeLfkD{ z(JrIG! z>qxwlXF!sGh>5MfH>ny@ zGt`C{Llns`Lj1Dnyn<>+ghx-k*DEYDpJk@@qvCaDiwd1hypnX~+hW%&I-ja5iz22A zyRs56+|!DSgGX@v^a)%)L+vC#O8y%AeXzR)&52>CU|&q8r6$5w%>*TO)_Ysw^5~bx zvW^F01WNX#p9C?*i}Loi=kJBz;w1=OHUs&F@+XQN3}5;zsB|*WN?klgKTftXnzAX8;NFN@RYYo{SR_RB?@uB=k5 z^1>7T%RWH~BlzgfZeDyrBntf`Jxw!|L^Q3*(`WJjPlHOiTp1nwTIE`w22~N|MVre9 zk!9k-48Q4A#p775pYtDu$9<__#$W&~NM$ej7^fIPM50o7_Yq@)emi}%DJ?>WrW~Km z&t(F-N0{B*IAl^`)Y~4l?7m`!C1}u7L7$_k#6u9L_xzl+*#OB$Bka5#+|z z0*x6ze-d)km!Q_o^zarJqnDdZlA$N7?YDI511h?7sH#vP!i>u-hv;cCOr7!#hcNJ~HNffM!M{ zS_-BwpJuhV5Omy)&3==$=+;+3ubuG|Oz<>8?=V|HTtlFChFSQfJS4n|M+3JqB1_v5 zJi2ISfF>ph$erxA(3PkHid2$RD3qCxlm(NqNoNJ>TuoozF}%4ZDu0WXpL@%j89*J( z0C{@G(yXUgy*Se;GDmuwj5Y$r=_!cwJW24+g6an!Vg7!5QVRl@%a@_LjOqh+SG!xj zvZBo`K`w@yw3j1$;bbID|2uQfwD__x8E&);ObH;589~o8!)=d&GWx9acyg%71Y{VV z^?NdTdw?n3Z{10>WWt(aLUAFFO+`jbX3ECoP#*?@gLAiKD zbaLT{IS9lc;^%J*I)tjPp$`Fz7QuV&R20%N^v)))w1@-Kt3PfHa@kkPBu(*Wlb9s< zNMg8M2yo$+JLL=zAulsx?Kf6M2a^Ol984ulK#fAd*QJ<%Ru3h10b?MF9F{Q#C{bL> znV^KJg)>Y=h}U0bs(`YJE7&#UMv^T+j7WV`ydZnQR20phj5-gC!72;&Z@*$#?rN${ zhFa)~PcXW*O(4OOAi_%Tzb6sROR_NcO(Z%o12M&mK*gOd3>?6jJ=?i$abGA2`!wj# zsr}st;JIiieCJQa7FT05hI+m7qRm~Q9{=6sWp$VsfPDXqxs%aitj@*n316o%BQH6e zGr?IlTX*TmqfJXr67&(ekSFc><%!X;YA(xPZAoUVE!NZC{=HBcRz%|Bo&DN<)n@b5S(!BP7pw7gcI9{L2?({CA>! z_^dw9zB5V*J7RByeXd`62h_+-pqjC(4eP`#7Tcdp~iC5xftsTkNwS%W2Cf}a_0kCJJ#7KeEs8t!n5S3 zi;W_5d|jToYQzXy-lh-?Nj;0tmrDM@co@1_7Cu=*~ns_CTr=4HU zriC8z>-+Q+(Qm1ZgN`QLc#|d?#rcV8#5Dx5(LMxHCs)~L+LAVCtH+5?{Sxs>A{=H6 zC*9XcHg4(SPq4*N4|VH|zj77yxyUqK`^(UkGagc<&CZNC;cI^uB-UxcMw<9E+llBT z1x62?#{Sx|^K>aWlNM~G8R7JB_{VoP;21-s7^UgJAKy}P+%Z9&ae;%uZ$p=V0yoA0bxbEoLnH+KB%@E7_%!PW zkB-IXsq7k^uhWyY6`@MYVLSU>c+8!SG;K4q#Mj|K+b}nDmacX>`QZ5{EsWWCGIb(vm=Iq#jSNGw1&!+d=vs zu?@Rgpj2NDJ5$1Kg-846QR1j?;W7Usgsq;5OTz=g*Zn2&2^8X$Ccfk(ZE9?GQ`xoN zO$U&qrOxa3)OuMR%r#Q#jh0`CIAtYN`)6Ta^>G|#vv=U|VI0_$jXl0D=wUi?M@Bq$ zvYFrC-_K`1?d}~9^gI_vuQMrg5+%WLu$c5dViZ=;mZ~Gdt9+;E2zFiF9_n_yTzL^H znI2A=`5u}LRJof-#36TWEP^;jT>5#EF~X>mF$UOs4+t}wuDkM7 zJ9GNE#20b($~9i#u_?Y1W|Q87@4`7~^0nI|yvlcutx-Pj?97NBt}|D|##!$ncG92F zsHGrL3DhVKAiYv}o*BFQ4A<~2WFwBoe4pTmup3#rU1MUO0!h+D7aK8Ii?#wvE!9Wb zJgvWZg|adi<3Gj9%mf{&+C^Ef0;Cy1Ov4h1FKyxX3kNFGS;5Jws(c&P7BA~3R;MbQ zja>qkeex(#Ux^={yuW2|?2LVOKY0hzV|^8<#5*0!-j&_~i^=c9d*K4~#0MQ0hI%d7 z8sYtm&JcI)dS|1N%+EeTCNmB zh4bZOT4$hHPZ7WI5>%-X@heqVAy;YPoo08-1;S%|Gt~P#t;o<^j*#Wk(7-HL5h79O zr#Sncp84V)Jc`lBDXJn~ZZ3+fG)s!CpUugu^0YP#mz{Gra?KLdBu3!Kp)q|=jV%1H z3##{buxl7Q3iiY5;}78U$rNS-xZWspv;LJZ)N4a$nCFzO2|z;V^)AwxN@&oK zeI_zUh94~!5hGB7DY<{NSCCT5E`@k-i6MQxbUVQ82UBwZEjT zS@Hm#pYQoq2B?E}MpXcF89j!u*iZApPA480iIuaBYBS&ZD)y)}rzu%~}LT%e{f%xgtg zgx4o^Zl-tX%z=azpCEtX6l`Af37T}3n34EoV2C^h67ggwkURGx!c(KgrgG*Lg&29pkp{A; zb~SsV_`-O|Fj4*QES=RCA{0JD8MBlRZQqWQqbKisxi@A9q!`)5eDZsU zm;V&i?iPl^5U(Ar!LGk+333UmbkMs)Sv!qRhDc>z5gCcy=Gqb?@#{89A>$$6#nVt= zu6AihTGThU_{T%OnQF7kTxL67^OsY*BVH?G9{_T;d?@5xVbYYSP2S~nAAyVSCC) zk)UA+|HV_0tneu+oD5}z?w*ScYRlg7Uh>H;duA=i$p(_;%i)Ogje)8}89M?in4 zj9{Amby3BzpE?O)D?UT1jpoi`8=W`yH18ehQL@ec4&BZE_GnyZf&!)%YL?H$US