<commit_before>using Tibia.Addresses;

namespace Tibia
{
    public partial class Version
    {
        public static void SetVersion870()
        {
            BattleList.Start = 0x63FDE8;
            BattleList.StepCreatures = 172;
            BattleList.MaxCreatures = 1300;
            BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

            Client.StartTime = 0x80CAF0;
            //Client.XTeaKey = <KEY>;
            //Client.SocketStruct = 0x7BC6B8;
            //Client.RecvPointer = 0x5B25E4;
            //Client.SendPointer = 0x5B2610;
            //Client.LastRcvPacket = 0x7B7E98;
            //Client.DecryptCall = 0x45A775;
            Client.ParserFunc = 0x45C670;
            //Client.GetNextPacketCall = 0x45A775;
            Client.RecvStream = 0x7C5CDC;
            Client.FrameRatePointer = 0x7C9DD4;
            Client.FrameRateCurrentOffset = 0x60;
            Client.FrameRateLimitOffset = 0x58;
            //Client.MultiClient = 0x5079B4;
            Client.Status = 0x7C928C;
            Client.SafeMode = 0x7C6114;
            Client.FollowMode = Client.SafeMode + 4;
            Client.AttackMode = Client.FollowMode + 4;
            Client.ActionState = 0x7C92EC;
            //Client.ActionStateFreezer = 0x518F90;
            //Client.LastMSGText = 0x789CF8;
            //Client.LastMSGAuthor = Client.LastMSGText - 0x28;
            Client.StatusbarText = 0x80CB10;
            Client.StatusbarTime = Client.StatusbarText - 4;
            Client.ClickId = 0x7C9320;
            Client.ClickCount = Client.ClickId + 4;
            Client.ClickZ = Client.ClickId - 0x68;
            Client.SeeId = Client.ClickId + 12;
            Client.SeeCount = Client.SeeId + 4;
            Client.SeeZ = Client.SeeId - 0x68;
            //Client.ClickContextMenuItemId = 0x7BFD30;
            ////Client.ClickContextMenuItemGroundId = ?
            //Client.ClickContextMenuCreatureId = 0x7BFD34;
            Client.LoginServerStart = 0x7C0C28;
            Client.StepLoginServer = 112;
            Client.DistancePort = 100;
            Client.MaxLoginServers = 10;
            //Client.RSA = 0x5B2980;
            Client.LoginCharList = 0x7C9240;
            Client.LoginCharListLength = Client.LoginCharList + 4;
            Client.LoginSelectedChar = Client.LoginCharList - 4;
            Client.GameWindowRectPointer = 0x67868C;
            Client.GameWindowBar = 0x80CB00;
            Client.DatPointer = 0x7C5D0C;
            //Client.EventTriggerPointer = 0x51AA90;
            //Client.DialogPointer = 0x6723EC;
            //Client.DialogLeft = 0x14;
            //Client.DialogTop = 0x18;
            //Client.DialogWidth = 0x1C;
            //Client.DialogHeight = 0x20;
            //Client.DialogCaption = 0x50;
            Client.LoginAccountNum = 0;
            Client.LoginPassword = Client.LoginCharList + 8;
            Client.LoginAccount = Client.LoginPassword + 32;
            Client.LoginPatch = 0;
            Client.LoginPatch2 = 0;
            Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
            Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

            Container.Start = 0x679140;
            Container.StepContainer = 492;
            Container.StepSlot = 12;
            Container.MaxContainers = 16;
            Container.MaxStack = 100;
            Container.DistanceIsOpen = 0;
            Container.DistanceId = 4;
            Container.DistanceName = 16;
            Container.DistanceVolume = 48;
            Container.DistanceAmount = 56;
            Container.DistanceItemId = 60;
            Container.DistanceItemCount = 64;
            Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

            //ContextMenus.AddContextMenuPtr = 0x450C90;
            //ContextMenus.OnClickContextMenuPtr = 0x44D870;
            //ContextMenus.OnClickContextMenuVf = 0x5B7878;
            //ContextMenus.AddSetOutfitContextMenu = 0x451BAC;
            //ContextMenus.AddPartyActionContextMenu = 0x451AD4;
            //ContextMenus.AddCopyNameContextMenu = 0x451C14;
            //ContextMenus.AddTradeWithContextMenu = 0x451839;
            //ContextMenus.AddLookContextMenu = 0x4516EF;

            Creature.DistanceId = 0;
            Creature.DistanceType = 3;
            Creature.DistanceName = 4;
            Creature.DistanceX = 36;
            Creature.DistanceY = 40;
            Creature.DistanceZ = 44;
            Creature.DistanceScreenOffsetHoriz = 48;
            Creature.DistanceScreenOffsetVert = 52;
            Creature.DistanceIsWalking = 76;
            Creature.DistanceDirection = 80;
            Creature.DistanceOutfit = 96;
            Creature.DistanceColorHead = 100;
            Creature.DistanceColorBody = 104;
            Creature.DistanceColorLegs = 108;
            Creature.DistanceColorFeet = 112;
            Creature.DistanceAddon = 116;
            Creature.DistanceMountId = 120;
            Creature.DistanceLight = 124;
            Creature.DistanceLightColor = 128;
            Creature.DistanceBlackSquare = 136;
            Creature.DistanceHPBar = 140;
            Creature.DistanceWalkSpeed = 144;
            Creature.DistanceIsVisible = 148;
            Creature.DistanceSkull = 152;
            Creature.DistanceParty = 156;
            Creature.DistanceWarIcon = 164;
            Creature.DistanceIsBlocking = 168;

            DatItem.StepItems = 0x4C;
            DatItem.Width = 0;
            DatItem.Height = 4;
            DatItem.MaxSizeInPixels = 8;
            DatItem.Layers = 12;
            DatItem.PatternX = 16;
            DatItem.PatternY = 20;
            DatItem.PatternDepth = 24;
            DatItem.Phase = 28;
            DatItem.Sprite = 32;
            DatItem.Flags = 36;
            DatItem.CanLookAt = 0;
            DatItem.WalkSpeed = 40;
            DatItem.TextLimit = 44;
            DatItem.LightRadius = 48;
            DatItem.LightColor = 52;
            DatItem.ShiftX = 56;
            DatItem.ShiftY = 60;
            DatItem.WalkHeight = 64;
            DatItem.Automap = 68;
            DatItem.LensHelp = 72;

            //DrawItem.DrawItemFunc = 0x4B1B30;

            //DrawSkin.DrawSkinFunc = 0x4B57A0;

            //Hotkey.SendAutomaticallyStart = 0x7BCD08;
            //Hotkey.SendAutomaticallyStep = 0x01;
            //Hotkey.TextStart = 0x7BCD30;
            //Hotkey.TextStep = 0x100;
            //Hotkey.ObjectStart = 0x7BCC78;
            //Hotkey.ObjectStep = 0x04;
            //Hotkey.ObjectUseTypeStart = 0x7BCB58;
            //Hotkey.ObjectUseTypeStep = 0x04;
            //Hotkey.MaxHotkeys = 36;

            Map.MapPointer = 0x680548;
            Map.StepTile = 168;
            Map.StepTileObject = 12;
            Map.DistanceTileObjectCount = 0;
            Map.DistanceTileObjects = 4;
            Map.DistanceObjectId = 0;
            Map.DistanceObjectData = 4;
            Map.DistanceObjectDataEx = 8;
            Map.MaxTileObjects = 10;
            Map.MaxX = 18;
            Map.MaxY = 14;<commit_msg>Added decrypt, getnextpacket, and hotkey addresses.<commit_after>using Tibia.Addresses;

namespace Tibia
{
    public partial class Version
    {
        public static void SetVersion870()
        {
            BattleList.Start = 0x63FDE8;
            BattleList.StepCreatures = 172;
            BattleList.MaxCreatures = 1300;
            BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

            Client.StartTime = 0x80CAF0;
            //Client.XTeaKey = <KEY>;
            //Client.SocketStruct = 0x7BC6B8;
            //Client.RecvPointer = 0x5B25E4;
            //Client.SendPointer = 0x5B2610;
            //Client.LastRcvPacket = 0x7B7E98;
            Client.DecryptCall = 0x0045C6A5;
            Client.ParserFunc = 0x45C670;
            Client.GetNextPacketCall = 0x45C6A5;
            Client.RecvStream = 0x7C5CDC;
            Client.FrameRatePointer = 0x7C9DD4;
            Client.FrameRateCurrentOffset = 0x60;
            Client.FrameRateLimitOffset = 0x58;
            //Client.MultiClient = 0x5079B4;
            Client.Status = 0x7C928C;
            Client.SafeMode = 0x7C6114;
            Client.FollowMode = Client.SafeMode + 4;
            Client.AttackMode = Client.FollowMode + 4;
            Client.ActionState = 0x7C92EC;
            //Client.ActionStateFreezer = 0x518F90;
            //Client.LastMSGText = 0x789CF8;
            //Client.LastMSGAuthor = Client.LastMSGText - 0x28;
            Client.StatusbarText = 0x80CB10;
            Client.StatusbarTime = Client.StatusbarText - 4;
            Client.ClickId = 0x7C9320;
            Client.ClickCount = Client.ClickId + 4;
            Client.ClickZ = Client.ClickId - 0x68;
            Client.SeeId = Client.ClickId + 12;
            Client.SeeCount = Client.SeeId + 4;
            Client.SeeZ = Client.SeeId - 0x68;
            //Client.ClickContextMenuItemId = 0x7BFD30;
            ////Client.ClickContextMenuItemGroundId = ?
            //Client.ClickContextMenuCreatureId = 0x7BFD34;
            Client.LoginServerStart = 0x7C0C28;
            Client.StepLoginServer = 112;
            Client.DistancePort = 100;
            Client.MaxLoginServers = 10;
            //Client.RSA = 0x5B2980;
            Client.LoginCharList = 0x7C9240;
            Client.LoginCharListLength = Client.LoginCharList + 4;
            Client.LoginSelectedChar = Client.LoginCharList - 4;
            Client.GameWindowRectPointer = 0x67868C;
            Client.GameWindowBar = 0x80CB00;
            Client.DatPointer = 0x7C5D0C;
            //Client.EventTriggerPointer = 0x51AA90;
            //Client.DialogPointer = 0x6723EC;
            //Client.DialogLeft = 0x14;
            //Client.DialogTop = 0x18;
            //Client.DialogWidth = 0x1C;
            //Client.DialogHeight = 0x20;
            //Client.DialogCaption = 0x50;
            Client.LoginAccountNum = 0;
            Client.LoginPassword = Client.LoginCharList + 8;
            Client.LoginAccount = Client.LoginPassword + 32;
            Client.LoginPatch = 0;
            Client.LoginPatch2 = 0;
            Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
            Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

            Container.Start = 0x679140;
            Container.StepContainer = 492;
            Container.StepSlot = 12;
            Container.MaxContainers = 16;
            Container.MaxStack = 100;
            Container.DistanceIsOpen = 0;
            Container.DistanceId = 4;
            Container.DistanceName = 16;
            Container.DistanceVolume = 48;
            Container.DistanceAmount = 56;
            Container.DistanceItemId = 60;
            Container.DistanceItemCount = 64;
            Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

            //ContextMenus.AddContextMenuPtr = 0x450C90;
            //ContextMenus.OnClickContextMenuPtr = 0x44D870;
            //ContextMenus.OnClickContextMenuVf = 0x5B7878;
            //ContextMenus.AddSetOutfitContextMenu = 0x451BAC;
            //ContextMenus.AddPartyActionContextMenu = 0x451AD4;
            //ContextMenus.AddCopyNameContextMenu = 0x451C14;
            //ContextMenus.AddTradeWithContextMenu = 0x451839;
            //ContextMenus.AddLookContextMenu = 0x4516EF;

            Creature.DistanceId = 0;
            Creature.DistanceType = 3;
            Creature.DistanceName = 4;
            Creature.DistanceX = 36;
            Creature.DistanceY = 40;
            Creature.DistanceZ = 44;
            Creature.DistanceScreenOffsetHoriz = 48;
            Creature.DistanceScreenOffsetVert = 52;
            Creature.DistanceIsWalking = 76;
            Creature.DistanceDirection = 80;
            Creature.DistanceOutfit = 96;
            Creature.DistanceColorHead = 100;
            Creature.DistanceColorBody = 104;
            Creature.DistanceColorLegs = 108;
            Creature.DistanceColorFeet = 112;
            Creature.DistanceAddon = 116;
            Creature.DistanceMountId = 120;
            Creature.DistanceLight = 124;
            Creature.DistanceLightColor = 128;
            Creature.DistanceBlackSquare = 136;
            Creature.DistanceHPBar = 140;
            Creature.DistanceWalkSpeed = 144;
            Creature.DistanceIsVisible = 148;
            Creature.DistanceSkull = 152;
            Creature.DistanceParty = 156;
            Creature.DistanceWarIcon = 164;
            Creature.DistanceIsBlocking = 168;

            DatItem.StepItems = 0x4C;
            DatItem.Width = 0;
            DatItem.Height = 4;
            DatItem.MaxSizeInPixels = 8;
            DatItem.Layers = 12;
            DatItem.PatternX = 16;
            DatItem.PatternY = 20;
            DatItem.PatternDepth = 24;
            DatItem.Phase = 28;
            DatItem.Sprite = 32;
            DatItem.Flags = 36;
            DatItem.CanLookAt = 0;
            DatItem.WalkSpeed = 40;
            DatItem.TextLimit = 44;
            DatItem.LightRadius = 48;
            DatItem.LightColor = 52;
            DatItem.ShiftX = 56;
            DatItem.ShiftY = 60;
            DatItem.WalkHeight = 64;
            DatItem.Automap = 68;
            DatItem.LensHelp = 72;

            //DrawItem.DrawItemFunc = 0x4B1B30;

            //DrawSkin.DrawSkinFunc = 0x4B57A0;

            Hotkey.SendAutomaticallyStart = 0x7C630F;
            Hotkey.SendAutomaticallyStep = 0x01;
            Hotkey.TextStart = 0x7C6238;
            Hotkey.TextStep = 0x100;
            Hotkey.ObjectStart = 0x7C627C;
            Hotkey.ObjectStep = 0x04;
            Hotkey.ObjectUseTypeStart = 0x7C615C;
            Hotkey.ObjectUseTypeStep = 0x04;
            Hotkey.MaxHotkeys = 36;

            Map.MapPointer = 0x680548;
            Map.StepTile = 168;
            Map.StepTileObject = 12;
            Map.DistanceTileObjectCount = 0;
            Map.DistanceTileObjects = 4;
            Map.DistanceObjectId = 0;
            Map.DistanceObjectData = 4;
            Map.DistanceObjectDataEx = 8;
            Map.MaxTileObjects = 10;
            Map.MaxX = 18;
            Map.MaxY = 14;
{'fraction_non_alphanumeric': 0.08436185133239832, 'fraction_numerical': 0.06739130434782609, 'mean_word_length': 1.6932955618508025, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4657565', 'n_tokens_mistral': 4841, 'n_tokens_neox': 4135, 'n_words': 696}