Mercurial > mm7
changeset 1091:9c7eb4037567
data moving
author | Gloval |
---|---|
date | Sun, 26 May 2013 14:13:22 +0400 |
parents | 7033eb155558 |
children | 38890b8385e4 |
files | Player.cpp Player.h UICharacter.cpp mm7_1.cpp mm7_5.cpp mm7_data.cpp mm7_data.h |
diffstat | 7 files changed, 437 insertions(+), 498 deletions(-) [+] |
line wrap: on
line diff
--- a/Player.cpp Sun May 26 00:03:16 2013 +0400 +++ b/Player.cpp Sun May 26 14:13:22 2013 +0400 @@ -3251,8 +3251,8 @@ //----- (0048D676) -------------------------------------------------------- bool Player::IsUnarmed() { - return HasItemEquipped(EQUIP_MAIN_HAND) != EQUIP_MAIN_HAND && - !(HasItemEquipped(EQUIP_OFF_HAND) == EQUIP_MAIN_HAND && GetEquippedItemEquipType(EQUIP_OFF_HAND) != EQUIP_SHIELD); + return HasItemEquipped(EQUIP_MAIN_HAND) != 0 && + !(HasItemEquipped(EQUIP_OFF_HAND) == 0 && GetEquippedItemEquipType(EQUIP_OFF_HAND) != EQUIP_SHIELD); } //----- (0048D6AA) -------------------------------------------------------- @@ -3288,7 +3288,7 @@ { v6 = 0; while ( !HasItemEquipped((ITEM_EQUIP_TYPE)v6) - || this->pInventoryItems[pEquipment.pIndices[v6] - 1].uItemID != item_id ) + || pInventoryItems[pEquipment.pIndices[v6] - 1].uItemID != item_id ) { ++v6; if ( (signed int)v6 >= 16 ) @@ -3940,7 +3940,7 @@ //----- (0048E1A3) -------------------------------------------------------- unsigned int Player::GetSpellSchool(unsigned int uSpellID) { - return LOBYTE(pSpellStats->pInfos[uSpellID].uSchool); + return pSpellStats->pInfos[uSpellID].uSchool; } //----- (0048E1B5) --------------------------------------------------------
--- a/Player.h Sun May 26 00:03:16 2013 +0400 +++ b/Player.h Sun May 26 14:13:22 2013 +0400 @@ -201,7 +201,7 @@ }; /* 328 */ -enum PLAYER_SKILL_TYPE: unsigned __int8 +enum PLAYER_SKILL_TYPE: __int8 { PLAYER_SKILL_STAFF = 0, PLAYER_SKILL_SWORD = 1,
--- a/UICharacter.cpp Sun May 26 00:03:16 2013 +0400 +++ b/UICharacter.cpp Sun May 26 14:13:22 2013 +0400 @@ -71,6 +71,201 @@ unsigned int ui_book_journal_text_color; unsigned int ui_book_journal_text_shadow; +unsigned int papredoll_dbrds[16]; +unsigned int papredoll_drhs[4]; +unsigned int papredoll_dlhus[4]; +unsigned int papredoll_dlhs[4]; +unsigned int papredoll_dbods[5]; +int paperdoll_armor_texture[4][17][3]; +//int paperdoll_array_51132C[165]; +unsigned int papredoll_dlaus[5]; +unsigned int papredoll_dlads[4]; +int papredoll_flying_feet[777]; // idb +int paperdoll_boots_texture[4][6];//0x511638 +int paperdoll_cloak_collar_texture[4][10]; // weak +int paperdoll_cloak_texture[4][10]; +int paperdoll_helm_texture[2][16]; //511698 +int paperdoll_belt_texture[2][7]; //511718 + + +const int paperdoll_Weapon[4][16][2] = {//4E4C30 + {{128, 205}, {30, 144}, {88, 85}, {0, 0}, {0, 0}, {0, 0}, {17, 104}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, + {{131, 201}, {38, 158}, {98, 87}, {0, 0}, {0, 0}, {0, 0}, {21, 100}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, + {{131, 216}, {29, 186}, {88, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, + {{123, 216}, {35, 184}, {98, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, + }; + + + +const int paperdoll_Boot[4][7][2] = //4E5490 + { + 0xE, 0x11D, 0xD, 0x11D, 0xC, 0x10A, 0xA, 0xFF, 0xD, 0xF9, 0xD, 0x137, 0xC, 0x10E, + 0x14, 0x125, 0x13, 0x122, 0x15, 0x120, 0x15, 0x114, 0x13, 0x10A, 0x11, 0x13E, 0x11, 0x116, + 0x1D, 0x121, 0x1C, 0x11F, 0x1B, 0x11B, 0x1C, 0x117, 0x16, 0x116, 0x1B, 0x137, 0x1B, 0x11B, + 0x1F, 0x127, 0x1F, 0x122, 0x1B, 0x11B, 0x1D, 0x117, 0x1D, 0x116, 0x1D, 0x137, 0x1B, 0x11F, + }; +const int paperdoll_Cloak[4][10][2] = //4E5570 + { + 0x11, 0x68, 0xF, 0x68, 0x14, 0x71, 0x19, 0x6B, 0x21, 0x6F, 0x5, 0x68, 0x5, 0x68, 0x14, 0x71, 0x3, 0x6B, 0xF, 0x6F, + 0x15, 0x64, 0xB, 0x6B, 0xE, 0x67, 0x15, 0x6B, 0x1B, 0x6F, 0x3, 0x6B, 0, 0x6B, 0xE, 0x67, 0, 0x6B, 0x3, 0x6F, + 0x10, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x25, 0x91, 0x29, 0x90, 0x8, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x3, 0x91, 0x3, 0x90, + 0x14, 0x92, 0x10, 0x92, 0x15, 0x98, 0x1F, 0x91, 0x22, 0x90, 0x8, 0x92, 0xC, 0x92, 0x15, 0x98, 0x3, 0x91, 0x3, 0x90, + }; +const int paperdoll_CloakCollar[4][10][2] = //4E56B0 + { + 0x11, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x20, 0x67, 0x21, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x1F, 0x67, + 0x13, 0x64, 0x35, 0x66, 0x29, 0x68, 0x1F, 0x68, 0x1F, 0x6A, 0x21, 0x6A, 0x2B, 0x66, 0x26, 0x68, 0x1F, 0x68, 0x1F, 0x6A, + 0, 0, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, 0x21, 0x87, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, + 0, 0, 0x38, 0x8A, 0x24, 0x8B, 0x1D, 0x8B, 0x21, 0x8C, 0x27, 0x8A, 0x34, 0x8A, 0x24, 0x8B, 0x25, 0x8B, 0x21, 0x8C, + }; +//int dword_4E56B4; // weak +const int paperdoll_Belt[4][7][2] = //4E57F0 + { + 0x3A, 0xB6, 0x37, 0xB2, 0x34, 0xB9, 0x3A, 0xB9, 0x37, 0xB7, 0x38, 0xAC, 0x37, 0xB7, + 0x3E, 0xAD, 0x3A, 0xAC, 0x37, 0xB0, 0x3A, 0xB1, 0x39, 0xB0, 0x3C, 0xA5, 0x39, 0xB0, + 0x3B, 0xD5, 0x37, 0xD2, 0x31, 0xD5, 0x39, 0xD6, 0x37, 0xD8, 0x37, 0xD1, 0x37, 0xD8, + 0x42, 0xD2, 0x3F, 0xD0, 0x3B, 0xD7, 0x3C, 0xD5, 0x3B, 0xD6, 0x3E, 0xCF, 0x36, 0xD6, + }; +const int paperdoll_Helm[4][16][2] = //4E58D0 + { + 0x3E, 0x1F, 0x41, 0x2C, 0x37, 0x2F, 0x31, 0x32, 0x37, 0x2A, 0x39, 0x28, 0x36, 0x34, 0x41, 0x38, 0x40, 0x31, 0x40, 0x21, 0x40, 0x31, 0x3C, 0x33, 0x3D, 0x24, 0x3A, 0x1A, 0x37, 0x2A, 0x41, 0x48, + 0x41, 0x1E, 0x42, 0x2B, 0x37, 0x2F, 0x34, 0x30, 0x39, 0x29, 0x3A, 0x26, 0x36, 0x34, 0x41, 0x37, 0x42, 0x32, 0x40, 0x21, 0x40, 0x31, 0x40, 0x2F, 0x3E, 0x22, 0x3B, 0x1A, 0x39, 0x29, 0x42, 0x47, + 0x3F, 0x47, 0x41, 0x56, 0x37, 0x59, 0x32, 0x5E, 0x37, 0x58, 0x39, 0x54, 0x34, 0x61, 0x40, 0x61, 0x41, 0x5D, 0x3E, 0x4F, 0x3E, 0x5B, 0x3D, 0x5B, 0x3F, 0x4C, 0x3B, 0x45, 0x37, 0x58, 0x41, 0x74, + 0x45, 0x45, 0x46, 0x54, 0x3A, 0x55, 0x38, 0x58, 0x3C, 0x54, 0x3F, 0x52, 0x39, 0x5B, 0x45, 0x5C, 0x47, 0x5C, 0x44, 0x4B, 0x44, 0x57, 0x43, 0x55, 0x44, 0x4A, 0x3E, 0x45, 0x3C, 0x54, 0x47, 0x70, + }; +const int pPaperdoll_Beards[4] = //4E5AD0 + { + 52, 130, 56, 136, + }; +const int pPaperdoll_LeftHand[4][2] = //4E5AE0 + { + 0x67, 0x6A, + 0x65, 0x6C, + 0x74, 0x8D, + 0x74, 0x93, + }; +const int pPaperdoll_SecondLeftHand[4][2] = //4E5B00 + { + 0x1A, 0x6B, + 0x28, 0x6D, + 0x19, 0x8D, + 0x20, 0x92, + }; +const int pPaperdoll_RightHand[4][2] = //4E5B20 + { + 0x1E, 0x90, + 0x22, 0x9E, + 0x19, 0xBA, + 0x1F, 0xB8, + }; +const int pPaperdollLeftEmptyHand[4][2] = //4E5B40 + { + 0x80, 0xCD, + 0x83, 0xC9, + 0x83, 0xD8, + 0x7B, 0xD8, + }; + +int pPaperdoll_BodyX = 481; // 004E4C28 +int pPaperdoll_BodyY = 0; // 004E4C2C +const int paperdoll_Armor[4][17][2] = //4E4E30 + { + // X Y + 0x2C, 0x67, 0x30, 0x69, 0x2D, 0x67, 0x2C, 0x64, 0x14, 0x66, 0x22, 0x67, 0x20, 0x66, 0x25, 0x66, 0x12, 0x66,//Human + 0x0A, 0x66, 0x13, 0x64, 0x0E, 0x64, 0x0A, 0x63, 0x14, 0x66, 0x0A, 0x63, 0x0A, 0x66, 0x25, 0x66, + + 0x32, 0x68, 0x32, 0x69, 0x35, 0x69, 0x33, 0x68, 0x24, 0x67, 0x30, 0x69, 0x33, 0x68, 0x31, 0x69, 0x19, 0x69, + 0x19, 0x6A, 0x16, 0x66, 0x16, 0x65, 0x0F, 0x6B, 0x24, 0x67, 0x0F, 0x6B, 0x19, 0x6A, 0x31, 0x69, + + 0x2A, 0x8C, 0x29, 0x8C, 0x2A, 0x89, 0x29, 0x86, 0x12, 0x87, 0x2D, 0x89, 0x2A, 0x88, 0x25, 0x87, 0x12, 0x8B, + 0x12, 0x8B, 0x11, 0x8A, 0x15, 0x87, 0x09, 0x89, 0x12, 0x87, 0x09, 0x89, 0x12, 0x8B, 0x25, 0x87, + + 0x33, 0x90, 0x32, 0x90, 0x34, 0x91, 0x32, 0x8E, 0x21, 0x8B, 0x31, 0x8B, 0x33, 0x8E, 0x2F, 0x8F, 0x16, 0x8D, + 0x18, 0x8C, 0x19, 0x8C, 0x1B, 0x8E, 0x0C, 0x8C, 0x21, 0x8B, 0x0C, 0x8C, 0x18, 0x8C, 0x2F, 0x8F, + }; +const int paperdoll_shoulder[4][17][2] = //4E5050 + { + 0x64, 0x67, 0x61, 0x67, 0x65, 0x68, 0x6E, 0x74, 0x6C, 0x68, 0x61, 0x67, 0x66, 0x68, 0x6C, 0x6A, 0x6E, 0x6D, + 0x67, 0x69, 0x70, 0x67, 0x6E, 0x6D, 0x6C, 0x6F, 0x6C, 0x68, 0x6C, 0x6F, 0x67, 0x69, 0x6C, 0x6A, + + 0x60, 0x6B, 0x60, 0x6C, 0x60, 0x6B, 0x61, 0x6A, 0x60, 0x69, 0x60, 0x6A, 0x60, 0x6A, 0x61, 0x69, 0x63, 0x6A, + 0x64, 0x6A, 0x61, 0x66, 0x66, 0x67, 0x64, 0x6C, 0x60, 0x69, 0x64, 0x6C, 0x64, 0x6A, 0x61, 0x69, + + 0x6D, 0x8C, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x6A, 0x89, 0, 0, 0x73, 0x8C, 0x69, 0x8C, 0x6E, 0x8D, + 0x71, 0x8D, 0x70, 0x8D, 0x72, 0x8D, 0x74, 0x8E, 0x6A, 0x89, 0x74, 0x8E, 0x71, 0x8D, 0x69, 0x8C, + + 0x72, 0x91, 0x72, 0x91, 0, 0, 0x6E, 0x92, 0x6F, 0x91, 0, 0, 0, 0, 0x6E, 0x91, 0x71, 0x90, + 0x72, 0x8D, 0x72, 0x90, 0x73, 0x93, 0x73, 0x90, 0x6F, 0x91, 0x73, 0x90, 0x72, 0x8D, 0x6E, 0x91, + }; +const int dword_4E5270[4][2] = + { + 0, 0, + 0x61, 0x67, + 0, 0, + 0x64, 0x69, + }; + +const char *dlad_texnames_by_face[25] = + { + "pc01lad", "pc02lad", "pc03lad", "pc04lad", "pc05lad", "pc06lad", + "pc07lad", "pc08lad", "pc09lad", "pc10lad", "pc11lad", "pc12lad", + "pc13lad", "pc14lad", "pc15lad", "pc16lad", "pc17lad", "pc18lad", + "pc19lad", "pc20lad", "pc21lad", "pc22lad", "pc23lad", "pc24lad", + "pc25lad" + }; +const char *dlau_texnames_by_face[25] = + { + "pc01lau", "pc02lau", "pc03lau", "pc04lau", "pc05lau", "pc06lau", + "pc07lau", "pc08lau", "pc09lau", "pc10lau", "pc11lau", "pc12lau", + "pc13lau", "pc14lau", "pc15lau", "pc16lau", "pc17lau", "pc18lau", + "pc19lau", "pc20lau", "pc21lau", "pc22lau", "pc23lau", "pc24lau", + "pc25lau" + }; +const char *dbod_texnames_by_face[25] = + { + "pc01bod", "pc02bod", "pc03bod", "pc04bod", "pc05bod", "pc06bod", + "pc07bod", "pc08bod", "pc09bod", "pc10bod", "pc11bod", "pc12bod", + "pc13bod", "pc14bod", "pc15bod", "pc16bod", "pc17bod", "pc18bod", + "pc19bod", "pc20bod", "pc21bod", "pc22bod", "pc23bod", "pc24bod", + "pc25bod" + }; +const char *drh_texnames_by_face[25] = + { + + "pc01rh", "pc02rh", "pc03rh", "pc04rh", "pc05rh", "pc06rh", + "pc07rh", "pc08rh", "pc09rh", "pc10rh", "pc11rh", "pc12rh", + "pc13rh", "pc14rh", "pc15rh", "pc16rh", "pc17rh", "pc18rh", + "pc19rh", "pc20rh", "pc21rh", "pc22rh", "pc23rh", "pc24rh", + "pc25rh" + }; +const char *dlh_texnames_by_face[25] = + { + "pc01lh", "pc02lh", "pc03lh", "pc04lh", "pc05lh", "pc06lh", + "pc07lh", "pc08lh", "pc09lh", "pc10lh", "pc11lh", "pc12lh", + "pc13lh", "pc14lh", "pc15lh", "pc16lh", "pc17lh", "pc18lh", + "pc19lh", "pc20lh", "pc21lh", "pc22lh", "pc23lh", "pc24lh", + "pc25lh" + }; +const char *dlhu_texnames_by_face[25] = + { + "pc01lhu", "pc02lhu", "pc03lhu", "pc04lhu", "pc05lhu", "pc06lhu", + "pc07lhu", "pc08lhu", "pc09lhu", "pc10lhu", "pc11lhu", "pc12lhu", + "pc13lhu", "pc14lhu", "pc15lhu", "pc16lhu", "pc17lhu", "pc18lhu", + "pc19lhu", "pc20lhu", "pc21lhu", "pc22lhu", "pc23lhu", "pc24lhu", + "pc25lhu" + }; + +const int pArmorSkills[5] = {PLAYER_SKILL_LEATHER, PLAYER_SKILL_CHAIN, PLAYER_SKILL_PLATE, PLAYER_SKILL_SHIELD, PLAYER_SKILL_DODGE}; +const int pWeaponSkills[9] = {PLAYER_SKILL_AXE, PLAYER_SKILL_BOW, PLAYER_SKILL_DAGGER, PLAYER_SKILL_MACE, PLAYER_SKILL_SPEAR, + PLAYER_SKILL_STAFF, PLAYER_SKILL_SWORD, PLAYER_SKILL_UNARMED, PLAYER_SKILL_BLASTER}; +const int pMiscSkills[12] = {PLAYER_SKILL_ALCHEMY, PLAYER_SKILL_ARMSMASTER, PLAYER_SKILL_BODYBUILDING, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_MONSTER_ID, + PLAYER_SKILL_LEARNING, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MERCHANT, PLAYER_SKILL_PERCEPTION, + PLAYER_SKILL_REPAIR, PLAYER_SKILL_STEALING}; +const int pMagicSkills[9] = {PLAYER_SKILL_FIRE, PLAYER_SKILL_AIR, PLAYER_SKILL_WATER, PLAYER_SKILL_EARTH, PLAYER_SKILL_SPIRIT, + PLAYER_SKILL_MIND, PLAYER_SKILL_BODY, PLAYER_SKILL_LIGHT, PLAYER_SKILL_DARK}; + + + void set_default_ui_skin() { @@ -244,7 +439,7 @@ -static int CharacterUI_SkillsTab_Draw__DrawSkillTable(Player *player, int x, int y, int *skill_list, int skill_list_size, int right_margin, const char *skill_group_name) +static int CharacterUI_SkillsTab_Draw__DrawSkillTable(Player *player, int x, int y, const int *skill_list, int skill_list_size, int right_margin, const char *skill_group_name) { int y_offset = y; @@ -295,20 +490,19 @@ } else { - const char *v46 = nullptr; + const char *skill_level_str = nullptr; switch (SkillToMastery(skill_value)) { - case 4: v46 = pGlobalTXT_LocalizationStrings[96]; break; // "Grand" - case 3: v46 = pGlobalTXT_LocalizationStrings[432]; break; // Master - case 2: v46 = pGlobalTXT_LocalizationStrings[433]; break; // Expert + case 4: skill_level_str = pGlobalTXT_LocalizationStrings[96]; break; // "Grand" + case 3: skill_level_str = pGlobalTXT_LocalizationStrings[432]; break; // Master + case 2: skill_level_str = pGlobalTXT_LocalizationStrings[433]; break; // Expert } if (!skill_mastery_color) skill_mastery_color = ui_character_header_text_color; - - sprintfex(pTmpBuf, "%s \f%05d%s\f%05d\r%03d%2d", pSkillNames[skill], skill_mastery_color, v46, skill_color, right_margin, skill_level); + sprintfex(pTmpBuf, "%s \f%05d%s\f%05d\r%03d%2d", pSkillNames[skill], skill_mastery_color, skill_level_str, skill_color, right_margin, skill_level); pGUIWindow_CurrentMenu->DrawText(pFontLucida, x, v8->uY, skill_color, pTmpBuf, 0, 0, 0); } } @@ -507,7 +701,7 @@ break; case WINDOW_CharacterWindow_Skills: // skills - if (dword_507CC0 != uActiveCharacter) + if (dword_507CC0_activ_ch != uActiveCharacter) { CharacterUI_ReleaseButtons(); CharacterUI_SkillsTab_CreateButtons(); @@ -834,19 +1028,19 @@ item_Cloak = &pPlayers[uPlayerID]->pInventoryItems[pCloakNum - 1]; switch ( item_Cloak->uItemID ) { - case 525: + case ITEM_RELIC_TWILIGHT: v33 = 5; break; - case 530: + case ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP: v33 = 6; break; - case 547: + case ITEM_RARE_SUN_CLOAK: v33 = 7; break; - case 548: + case ITEM_RARE_MOON_CLOAK: v33 = 8; break; - case 550: + case ITEM_RARE_VAMPIRES_CAPE: v33 = 9; break; default: @@ -902,13 +1096,13 @@ case 504: v45 = 15; break; - case 505: + case ITEM_ARTIFACT_YORUBA: v45 = 14; break; - case 516: + case ITEM_RELIC_HARECS_LEATHER: v45 = 13; break; - case 533: + case ITEM_ELVEN_CHAINMAIL: v45 = 16; break; default: @@ -992,13 +1186,13 @@ { if ( item_Armor->uAttributes & 0xF0 ) { - if ( (item_Armor->uAttributes & 0xF0) == 16 ) + if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) v173 = "sptext01"; - if ( (item_Armor->uAttributes & 0xF0) == 32 ) + if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) v173 = "sp28a"; - if ( ( item_Armor->uAttributes & 0xF0) == 64 ) + if ( ( item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) v173 = "sp30a"; - if ( (item_Armor->uAttributes & 0xF0) == 128 ) + if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) v173 = "sp91a"; v96 = (char *)pIcons_LOD->LoadTexturePtr(v173, TEXTURE_16BIT_PALETTE); _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; @@ -1136,10 +1330,10 @@ item_Belt = &pPlayers[uPlayerID]->pInventoryItems[pBeltNum - 1]; switch ( item_Belt->uItemID ) { - case 524: + case ITEM_RILIC_TITANS_BELT: v73 = 5; break; - case 535: + case ITEM_ARTIFACT_HEROS_BELT: v73 = 6; break; default: @@ -1919,121 +2113,94 @@ //----- (00419401) -------------------------------------------------------- void CharacterUI_SkillsTab_CreateButtons() -{ - unsigned int v0; // ecx@3 + { + // unsigned int v0; // ecx@3 GUIButton *pButton; // eax@3 - GUIFont *v2; // eax@8 - unsigned int v3; // esi@8 - int v4; // eax@10 - unsigned int v5; // esi@14 - int v6; // eax@17 - unsigned int v7; // esi@19 - int v8; // eax@21 - unsigned int v9; // esi@25 - int v10; // eax@27 - int a2; // [sp+10h] [bp-14h]@1 - int v12; // [sp+14h] [bp-10h]@8 - int v13; // [sp+14h] [bp-10h]@19 - int *v14; // [sp+18h] [bp-Ch]@8 - int *v15; // [sp+18h] [bp-Ch]@14 - int *v16; // [sp+18h] [bp-Ch]@19 - int *v17; // [sp+18h] [bp-Ch]@25 - Player *v18; // [sp+1Ch] [bp-8h]@8 - int a5; // [sp+20h] [bp-4h]@8 + unsigned int current_Y; // esi@8 + int buttons_count; // [sp+10h] [bp-14h]@1 + int first_rows; // [sp+14h] [bp-10h]@19 + int skill_id; // [sp+18h] [bp-Ch]@8 + Player *curr_player; // [sp+1Ch] [bp-8h]@8 + int i; + int uCurrFontHeght; - a2 = 0; - if ( dword_507CC0 ) + buttons_count = 0; + if ( dword_507CC0_activ_ch ) CharacterUI_ReleaseButtons(); - v0 = uActiveCharacter; - dword_507CC0 = uActiveCharacter; + dword_507CC0_activ_ch = uActiveCharacter; for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext ) - { + { if ( pButton->msg == UIMSG_InventoryLeftClick ) - { - dword_50698C = pButton->uX; - dword_506988 = pButton->uY; - dword_506984 = pButton->uZ; - dword_506980 = pButton->uW; + { + dword_50698C_uX = pButton->uX; + dword_506988_uY = pButton->uY; + dword_506984_uZ = pButton->uZ; + dword_506980_uW = pButton->uW; pButton->uW = 0; pButton->uZ = 0; pButton->uY = 0; pButton->uX = 0; - v0 = uActiveCharacter; + } + } + first_rows = 0; + // a5 = pGUIWindow_CurrentMenu->uNumControls; + curr_player = &pParty->pPlayers[uActiveCharacter-1]; + + uCurrFontHeght=pFontLucida->uFontHeight; + current_Y = 2 *uCurrFontHeght + 13; + for(i=0; i<9;++i) + { + skill_id = pWeaponSkills[i]; + if ( curr_player->pActiveSkills[skill_id] & 0x3F ) + { + current_Y += uCurrFontHeght - 3; + ++buttons_count; + ++first_rows; + pGUIWindow_CurrentMenu->CreateButton(24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); } } - v12 = 0; - a5 = pGUIWindow_CurrentMenu->uNumControls; - v18 = &pParty->pPlayers[v0-1]; - v2 = pFontLucida; - v14 = pWeaponSkills; - v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; - do + if ( !first_rows ) + current_Y += uCurrFontHeght - 3; + current_Y += 2 * uCurrFontHeght - 6; + for(i=0; i<9;++i) { - if ( v18->pActiveSkills[*v14] & 0x3F )//crash + skill_id = pMagicSkills[i]; + if ( curr_player->pActiveSkills[skill_id] & 0x3F && buttons_count < 15 ) { - v4 = LOBYTE(v2->uFontHeight); - v3 = v3 + v4 - 3; - ++a2; - ++v12; - pGUIWindow_CurrentMenu->CreateButton(0x18u, v3, 0xCCu, v4 - 3, 3, *v14 | 0x8000, UIMSG_SkillUp, *v14, 0, "", 0, 0); - v2 = pFontLucida; - } - ++v14; - } - while ( v14 <= &pWeaponSkills[8] ); - if ( !v12 ) - v3 = v3 + LOBYTE(v2->uFontHeight) - 3; - v15 = pMagicSkills; - v5 = v3 + 2 * LOBYTE(v2->uFontHeight) - 6; - do - { - if ( v18->pActiveSkills[*v15] & 0x3F && a2 < 15 ) - { - v6 = LOBYTE(v2->uFontHeight); - v5 = v5 + v6 - 3; - ++a2; - pGUIWindow_CurrentMenu->CreateButton(0x18u, v5, 0xCCu, v6 - 3, 3, *v15 | 0x8000, UIMSG_SkillUp, *v15, 0, "", 0, 0); - v2 = pFontLucida; - } - ++v15; + current_Y += uCurrFontHeght - 3; + ++buttons_count; + pGUIWindow_CurrentMenu->CreateButton(24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); } - while ( v15 <= &pMagicSkills[8] ); - v13 = 0; - v16 = pArmorSkills; - v7 = 2 * LOBYTE(v2->uFontHeight) + 13; - do - { - if ( v18->pActiveSkills[*v16] & 0x3F ) - { - v8 = LOBYTE(v2->uFontHeight); - v7 = v7 + v8 - 3; - ++a2; - ++v13; - pGUIWindow_CurrentMenu->CreateButton(0xF6u, v7, 0xCCu, v8 - 3, 3, *v16 | 0x8000, UIMSG_SkillUp, *v16, 0, "", 0, 0); - v2 = pFontLucida; - } - ++v16; - } - while ( v16 <= &pArmorSkills[4] ); - if ( !v13 ) - v7 = v7 + LOBYTE(v2->uFontHeight) - 3; - v17 = pMiscSkills; - v9 = v7 + 2 * LOBYTE(v2->uFontHeight) - 6; - do - { - if ( v18->pActiveSkills[*v17] & 0x3F ) - { - v10 = LOBYTE(v2->uFontHeight); - v9 = v9 + v10 - 3; - ++a2; - pGUIWindow_CurrentMenu->CreateButton(0xF6u, v9, 0xCCu, v10 - 3, 3, *v17 | 0x8000, UIMSG_SkillUp, *v17, 0, "", 0, 0); - v2 = pFontLucida; - } - ++v17; - } - while ( v17 <= &pMiscSkills[11] ); - if ( a2 ) - pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(a2, 1, 0, a5); + } + first_rows = 0; + current_Y = 2 * uCurrFontHeght + 13; + for(i=0; i<5;++i) + { + skill_id = pArmorSkills[i]; + if ( curr_player->pActiveSkills[skill_id] & 0x3F ) + { + current_Y+= uCurrFontHeght - 3; + ++buttons_count; + ++first_rows; + pGUIWindow_CurrentMenu->CreateButton(246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); + } + } + if ( !first_rows ) + current_Y += uCurrFontHeght - 3; + current_Y += 2 * uCurrFontHeght - 6; + for(i=0; i<12; ++i) + { + skill_id = pMiscSkills[i]; + if ( curr_player->pActiveSkills[skill_id] & 0x3F ) + { + current_Y += uCurrFontHeght - 3; + ++buttons_count; + pGUIWindow_CurrentMenu->CreateButton(246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); + } + } + + if ( buttons_count ) + pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(buttons_count, 1, 0, pGUIWindow_CurrentMenu->uNumControls); } @@ -2377,3 +2544,66 @@ } } } + + +//----- (0043EF2B) -------------------------------------------------------- +void WetsuitOn( unsigned int uPlayerID ) + { + CHARACTER_RACE player_race; // edi@2 + signed int player_sex; // eax@2 + int texture_num; // ecx@5 + char pContainer[20]; // [sp+4h] [bp-1Ch]@7 + + if ( uPlayerID> 0 ) + { + player_race = pPlayers[uPlayerID]->GetRace(); + player_sex = pPlayers[uPlayerID]->GetSexByVoice(); + if ( player_race == CHARACTER_RACE_DWARF ) + texture_num = (player_sex != 0) + 3; + else + texture_num = (player_sex != 0) + 1; + wsprintfA(pContainer, "pc23v%dBod", texture_num); + papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfA(pContainer, "pc23v%dlad", texture_num); + papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfA(pContainer, "pc23v%dlau", texture_num); + papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfA(pContainer, "pc23v%drh", texture_num); + papredoll_drhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfA(pContainer, "pc23v%dlh", texture_num); + papredoll_dlhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + wsprintfA(pContainer, "pc23v%dlhu", texture_num); + papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + + if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) + papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = 0; + + papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = 0; + IsPlayerWearingWatersuit[uPlayerID] = 1; + } + } + +//----- (0043F0BD) -------------------------------------------------------- +void WetsuitOff( unsigned int uPlayerID ) + { + char pContainer[20]; // [sp+0h] [bp-18h]@4 + + if (uPlayerID > 0 ) + { + papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_drhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(drh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dlhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(dlh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); + + if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) + { + wsprintfA(pContainer, "pc%02dbrd", pPlayers[uPlayerID]->uCurrentFace + 1); + papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + } + wsprintfA(pContainer, "item281pc%02d", pPlayers[uPlayerID]->uCurrentFace + 1); + papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + IsPlayerWearingWatersuit[uPlayerID] = 0; + } + }
--- a/mm7_1.cpp Sun May 26 00:03:16 2013 +0400 +++ b/mm7_1.cpp Sun May 26 14:13:22 2013 +0400 @@ -67,9 +67,9 @@ GUIButton *i; // esi@2 GUIButton *j; // esi@7 - if ( dword_507CC0 ) + if ( dword_507CC0_activ_ch ) { - dword_507CC0 = 0; + dword_507CC0_activ_ch = 0; for ( i = pGUIWindow_CurrentMenu->pControlsHead; i; i = j ) { j=i->pNext; @@ -83,10 +83,10 @@ { if ( j->msg == UIMSG_InventoryLeftClick) { - j->uX = dword_50698C; - j->uY = dword_506988; - j->uZ = dword_506984; - j->uW = dword_506980; + j->uX = dword_50698C_uX; + j->uY = dword_506988_uY; + j->uZ = dword_506984_uZ; + j->uW = dword_506980_uW; pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(1, 0, 0, 0); } } @@ -296,49 +296,49 @@ return true; } case VK_NEXT: - { - if ( pWindowList[v3].field_30 != 0 ) - { - pMouse->GetClickPos(&uClickX, &uClickY); - v4 = pWindowList[v3].pStartingPosActiveItem; - v29 = v4 + pWindowList[v3].pNumPresenceButton; - if ( v4 < v4 + pWindowList[v3].pNumPresenceButton ) - { - while ( 1 ) - { - pButton = pWindowList[v3].pControlsHead; - if ( v4 > 0 ) - { - v15 = v4; - do - { - pButton = pButton->pNext; - --v15; - } - while ( v15 ); - } - if ( (signed int)uClickX >= (signed int)pButton->uX - && (signed int)uClickX <= (signed int)pButton->uZ - && (signed int)uClickY >= (signed int)pButton->uY - && (signed int)uClickY <= (signed int)pButton->uW ) - { - pWindowList[v3].pCurrentPosActiveItem = v4; - return true; - } - ++v4; - if ( v4 >= v29 ) - { - //v1 = 0; - //v2 = pMessageQueue_50CBD0->uNumMessages; - break; - } - } - } - else - { - //v2 = pMessageQueue_50CBD0->uNumMessages; - } - } + { + //if ( pWindowList[v3].field_30 != 0 ) //crashed at skill draw + //{ + // pMouse->GetClickPos(&uClickX, &uClickY); + // v4 = pWindowList[v3].pStartingPosActiveItem; + // v29 = v4 + pWindowList[v3].pNumPresenceButton; //num buttons more than buttons + // if ( v4 < v29 ) + // { + // while ( 1 ) + // { + // pButton = pWindowList[v3].pControlsHead; + // if ( v4 > 0 ) + // { + // v15 = v4; + // do + // { + // pButton = pButton->pNext; + // --v15; + // } + // while ( v15 ); + // } + // if ( (signed int)uClickX >= (signed int)pButton->uX + // && (signed int)uClickX <= (signed int)pButton->uZ + // && (signed int)uClickY >= (signed int)pButton->uY + // && (signed int)uClickY <= (signed int)pButton->uW ) + // { + // pWindowList[v3].pCurrentPosActiveItem = v4; + // return true; + // } + // ++v4; + // if ( v4 >= v29 ) + // { + // //v1 = 0; + // //v2 = pMessageQueue_50CBD0->uNumMessages; + // break; + // } + // } + // } + // else + // { + // //v2 = pMessageQueue_50CBD0->uNumMessages; + // } + //} break; } default:
--- a/mm7_5.cpp Sun May 26 00:03:16 2013 +0400 +++ b/mm7_5.cpp Sun May 26 14:13:22 2013 +0400 @@ -5938,89 +5938,6 @@ } // A750D8: using guessed type __int64 qword_A750D8; -//----- (0043EF2B) -------------------------------------------------------- -void __fastcall WetsuitOn(unsigned int uPlayerID) -{ - unsigned int v1; // ebx@1 - Player **v2; // esi@2 - enum CHARACTER_RACE v3; // edi@2 - signed int v4; // eax@2 - int v5; // ecx@5 - unsigned __int8 v6; // al@7 - char pContainer[20]; // [sp+4h] [bp-1Ch]@7 - unsigned int v8; // [sp+18h] [bp-8h]@1 - int v9; // [sp+1Ch] [bp-4h]@7 - - v1 = uPlayerID - 1; - v8 = uPlayerID; - if ( (uPlayerID - 1) >= 0 ) - { - v2 = &pPlayers[uPlayerID]; - v3 = (*v2)->GetRace(); - v4 = (*v2)->GetSexByVoice(); - if ( v3 && v3 != 1 && v3 != 2 ) - v5 = (v4 != 0) + 3; - else - v5 = (v4 != 0) + 1; - v9 = v5; - wsprintfA(pContainer, "pc23v%dBod", v5); - papredoll_dbods[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - wsprintfA(pContainer, "pc23v%dlad", v9); - papredoll_dlads[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - wsprintfA(pContainer, "pc23v%dlau", v9); - papredoll_dlaus[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - wsprintfA(pContainer, "pc23v%drh", v9); - papredoll_drhs[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - wsprintfA(pContainer, "pc23v%dlh", v9); - papredoll_dlhs[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - wsprintfA(pContainer, "pc23v%dlhu", v9); - papredoll_dlhus[v1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - v6 = pPlayers[v1 + 1]->uCurrentFace; - if ( v6 == 12 || v6 == 13 ) - papredoll_dbrds[pPlayers[v8]->uCurrentFace] = 0; - papredoll_flying_feet[pPlayers[v8]->uCurrentFace] = 0; - IsPlayerWearingWatersuit[v8] = 1; - } -} - -//----- (0043F0BD) -------------------------------------------------------- -unsigned int __fastcall WetsuitOff(unsigned int uPlayerID) -{ - unsigned int result; // eax@1 - Player **v2; // edi@2 - unsigned int v3; // ebx@2 - int v4; // ebx@2 - char v5; // al@2 - char pContainer[20]; // [sp+0h] [bp-18h]@4 - unsigned int v7; // [sp+14h] [bp-4h]@1 - - result = uPlayerID - 1; - v7 = uPlayerID; - if ( ((uPlayerID - 1) & 0x80000000u) == 0 ) - { - v2 = &pPlayers[uPlayerID]; - v3 = uPlayerID - 1; - papredoll_dbods[v3] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlads[v3] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlaus[v3] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_drhs[v3] = pIcons_LOD->LoadTexture(drh_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhs[v3] = pIcons_LOD->LoadTexture(dlh_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - papredoll_dlhus[v3] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[(*v2)->uCurrentFace], TEXTURE_16BIT_PALETTE); - v4 = (int)&(*v2)->uCurrentFace; - v5 = *(char *)v4; - if ( *(char *)v4 == 12 || v5 == 13 ) - { - wsprintfA(pContainer, "pc%02dbrd", v5 + 1); - v4 = (int)&(*v2)->uCurrentFace; - papredoll_dbrds[*(char *)v4] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - } - wsprintfA(pContainer, "item281pc%02d", *(char *)v4 + 1); - papredoll_flying_feet[(*v2)->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - result = v7; - IsPlayerWearingWatersuit[v7] = 0; - } - return result; -} //----- (0043F333) -------------------------------------------------------- void BspRenderer::MakeVisibleSectorList() @@ -11044,10 +10961,10 @@ { if ( i->msg == UIMSG_InventoryLeftClick ) { - dword_50698C = i->uX; - dword_506988 = i->uY; - dword_506984 = i->uZ; - dword_506980 = i->uW; + dword_50698C_uX = i->uX; + dword_506988_uY = i->uY; + dword_506984_uZ = i->uZ; + dword_506980_uW = i->uW; i->uW = 0; i->uZ = 0; i->uY = 0; @@ -11089,10 +11006,10 @@ { if ( pButton->msg == UIMSG_InventoryLeftClick ) { - pButton->uX = dword_50698C; - pButton->uY = dword_506988; - pButton->uZ = dword_506984; - pButton->uW = dword_506980; + pButton->uX = dword_50698C_uX; + pButton->uY = dword_506988_uY; + pButton->uZ = dword_506984_uZ; + pButton->uW = dword_506980_uW; pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(1, 0, 0, 0); } }
--- a/mm7_data.cpp Sun May 26 00:03:16 2013 +0400 +++ b/mm7_data.cpp Sun May 26 14:13:22 2013 +0400 @@ -270,14 +270,7 @@ #include "MM7.h" -int paperdoll_Weapon[4][16][2] = {//4E4C30 - {{128, 205}, {30, 144}, {88, 85}, {0, 0}, {0, 0}, {0, 0}, {17, 104}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, - {{131, 201}, {38, 158}, {98, 87}, {0, 0}, {0, 0}, {0, 0}, {21, 100}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, - {{131, 216}, {29, 186}, {88, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, - {{123, 216}, {35, 184}, {98, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, -}; -int paperdoll_helm_texture[2][16]; //511698 -int paperdoll_belt_texture[2][7]; //511718 + stat_coord stat_string_coord[26] = //4E2940 { {0x1A, 0x39, 0xDC, 0x12}, @@ -495,10 +488,7 @@ __int16 RightClickPortraitXmin[4]={0x14, 0x83, 0xF2, 0x165}; __int16 RightClickPortraitXmax[4]={0x53, 0xC6, 0x138, 0x1A7}; void *off_4E2A12; // stat_string_control_button_count -int pArmorSkills[5] = {PLAYER_SKILL_LEATHER, PLAYER_SKILL_CHAIN, PLAYER_SKILL_PLATE, PLAYER_SKILL_SHIELD, PLAYER_SKILL_DODGE}; -int pWeaponSkills[9] = {PLAYER_SKILL_AXE, PLAYER_SKILL_BOW, PLAYER_SKILL_DAGGER, PLAYER_SKILL_MACE, PLAYER_SKILL_SPEAR, PLAYER_SKILL_STAFF, PLAYER_SKILL_SWORD, PLAYER_SKILL_UNARMED, PLAYER_SKILL_BLASTER}; -int pMiscSkills[12] = {PLAYER_SKILL_ALCHEMY, PLAYER_SKILL_ARMSMASTER, PLAYER_SKILL_BODYBUILDING, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_MONSTER_ID, PLAYER_SKILL_LEARNING, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MERCHANT, PLAYER_SKILL_PERCEPTION, PLAYER_SKILL_REPAIR, PLAYER_SKILL_STEALING}; -int pMagicSkills[9] = {PLAYER_SKILL_FIRE, PLAYER_SKILL_AIR, PLAYER_SKILL_WATER, PLAYER_SKILL_EARTH, PLAYER_SKILL_SPIRIT, PLAYER_SKILL_MIND, PLAYER_SKILL_BODY, PLAYER_SKILL_LIGHT, PLAYER_SKILL_DARK}; + unsigned int pHealthBarPos[4] = {22, 137, 251, 366}; unsigned int pManaBarPos[4] = {102, 217, 331, 447}; char _4E2B21_buff_spell_tooltip_colors[80]; @@ -533,112 +523,7 @@ int dword_4E4A40[777]; // weak int dword_4E4A44[777]; // weak float flt_4E4A80[10]; -int pPaperdoll_BodyX = 481; // 004E4C28 -int pPaperdoll_BodyY = 0; // 004E4C2C -int paperdoll_Armor[4][17][2] = //4E4E30 -{ -// X Y - 0x2C, 0x67, 0x30, 0x69, 0x2D, 0x67, 0x2C, 0x64, 0x14, 0x66, 0x22, 0x67, 0x20, 0x66, 0x25, 0x66, 0x12, 0x66,//Human - 0x0A, 0x66, 0x13, 0x64, 0x0E, 0x64, 0x0A, 0x63, 0x14, 0x66, 0x0A, 0x63, 0x0A, 0x66, 0x25, 0x66, - 0x32, 0x68, 0x32, 0x69, 0x35, 0x69, 0x33, 0x68, 0x24, 0x67, 0x30, 0x69, 0x33, 0x68, 0x31, 0x69, 0x19, 0x69, - 0x19, 0x6A, 0x16, 0x66, 0x16, 0x65, 0x0F, 0x6B, 0x24, 0x67, 0x0F, 0x6B, 0x19, 0x6A, 0x31, 0x69, - - 0x2A, 0x8C, 0x29, 0x8C, 0x2A, 0x89, 0x29, 0x86, 0x12, 0x87, 0x2D, 0x89, 0x2A, 0x88, 0x25, 0x87, 0x12, 0x8B, - 0x12, 0x8B, 0x11, 0x8A, 0x15, 0x87, 0x09, 0x89, 0x12, 0x87, 0x09, 0x89, 0x12, 0x8B, 0x25, 0x87, - - 0x33, 0x90, 0x32, 0x90, 0x34, 0x91, 0x32, 0x8E, 0x21, 0x8B, 0x31, 0x8B, 0x33, 0x8E, 0x2F, 0x8F, 0x16, 0x8D, - 0x18, 0x8C, 0x19, 0x8C, 0x1B, 0x8E, 0x0C, 0x8C, 0x21, 0x8B, 0x0C, 0x8C, 0x18, 0x8C, 0x2F, 0x8F, -}; -int paperdoll_shoulder[4][17][2] = //4E5050 -{ - 0x64, 0x67, 0x61, 0x67, 0x65, 0x68, 0x6E, 0x74, 0x6C, 0x68, 0x61, 0x67, 0x66, 0x68, 0x6C, 0x6A, 0x6E, 0x6D, - 0x67, 0x69, 0x70, 0x67, 0x6E, 0x6D, 0x6C, 0x6F, 0x6C, 0x68, 0x6C, 0x6F, 0x67, 0x69, 0x6C, 0x6A, - - 0x60, 0x6B, 0x60, 0x6C, 0x60, 0x6B, 0x61, 0x6A, 0x60, 0x69, 0x60, 0x6A, 0x60, 0x6A, 0x61, 0x69, 0x63, 0x6A, - 0x64, 0x6A, 0x61, 0x66, 0x66, 0x67, 0x64, 0x6C, 0x60, 0x69, 0x64, 0x6C, 0x64, 0x6A, 0x61, 0x69, - - 0x6D, 0x8C, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x6A, 0x89, 0, 0, 0x73, 0x8C, 0x69, 0x8C, 0x6E, 0x8D, - 0x71, 0x8D, 0x70, 0x8D, 0x72, 0x8D, 0x74, 0x8E, 0x6A, 0x89, 0x74, 0x8E, 0x71, 0x8D, 0x69, 0x8C, - - 0x72, 0x91, 0x72, 0x91, 0, 0, 0x6E, 0x92, 0x6F, 0x91, 0, 0, 0, 0, 0x6E, 0x91, 0x71, 0x90, - 0x72, 0x8D, 0x72, 0x90, 0x73, 0x93, 0x73, 0x90, 0x6F, 0x91, 0x73, 0x90, 0x72, 0x8D, 0x6E, 0x91, -}; -int dword_4E5270[4][2] = -{ - 0, 0, - 0x61, 0x67, - 0, 0, - 0x64, 0x69, -}; -int paperdoll_Boot[4][7][2] = //4E5490 -{ - 0xE, 0x11D, 0xD, 0x11D, 0xC, 0x10A, 0xA, 0xFF, 0xD, 0xF9, 0xD, 0x137, 0xC, 0x10E, - 0x14, 0x125, 0x13, 0x122, 0x15, 0x120, 0x15, 0x114, 0x13, 0x10A, 0x11, 0x13E, 0x11, 0x116, - 0x1D, 0x121, 0x1C, 0x11F, 0x1B, 0x11B, 0x1C, 0x117, 0x16, 0x116, 0x1B, 0x137, 0x1B, 0x11B, - 0x1F, 0x127, 0x1F, 0x122, 0x1B, 0x11B, 0x1D, 0x117, 0x1D, 0x116, 0x1D, 0x137, 0x1B, 0x11F, -}; -int paperdoll_Cloak[4][10][2] = //4E5570 -{ - 0x11, 0x68, 0xF, 0x68, 0x14, 0x71, 0x19, 0x6B, 0x21, 0x6F, 0x5, 0x68, 0x5, 0x68, 0x14, 0x71, 0x3, 0x6B, 0xF, 0x6F, - 0x15, 0x64, 0xB, 0x6B, 0xE, 0x67, 0x15, 0x6B, 0x1B, 0x6F, 0x3, 0x6B, 0, 0x6B, 0xE, 0x67, 0, 0x6B, 0x3, 0x6F, - 0x10, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x25, 0x91, 0x29, 0x90, 0x8, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x3, 0x91, 0x3, 0x90, - 0x14, 0x92, 0x10, 0x92, 0x15, 0x98, 0x1F, 0x91, 0x22, 0x90, 0x8, 0x92, 0xC, 0x92, 0x15, 0x98, 0x3, 0x91, 0x3, 0x90, -}; -int paperdoll_CloakCollar[4][10][2] = //4E56B0 -{ - 0x11, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x20, 0x67, 0x21, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x1F, 0x67, - 0x13, 0x64, 0x35, 0x66, 0x29, 0x68, 0x1F, 0x68, 0x1F, 0x6A, 0x21, 0x6A, 0x2B, 0x66, 0x26, 0x68, 0x1F, 0x68, 0x1F, 0x6A, - 0, 0, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, 0x21, 0x87, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, - 0, 0, 0x38, 0x8A, 0x24, 0x8B, 0x1D, 0x8B, 0x21, 0x8C, 0x27, 0x8A, 0x34, 0x8A, 0x24, 0x8B, 0x25, 0x8B, 0x21, 0x8C, -}; -//int dword_4E56B4; // weak -int paperdoll_Belt[4][7][2] = //4E57F0 -{ - 0x3A, 0xB6, 0x37, 0xB2, 0x34, 0xB9, 0x3A, 0xB9, 0x37, 0xB7, 0x38, 0xAC, 0x37, 0xB7, - 0x3E, 0xAD, 0x3A, 0xAC, 0x37, 0xB0, 0x3A, 0xB1, 0x39, 0xB0, 0x3C, 0xA5, 0x39, 0xB0, - 0x3B, 0xD5, 0x37, 0xD2, 0x31, 0xD5, 0x39, 0xD6, 0x37, 0xD8, 0x37, 0xD1, 0x37, 0xD8, - 0x42, 0xD2, 0x3F, 0xD0, 0x3B, 0xD7, 0x3C, 0xD5, 0x3B, 0xD6, 0x3E, 0xCF, 0x36, 0xD6, -}; -int paperdoll_Helm[4][16][2] = //4E58D0 -{ - 0x3E, 0x1F, 0x41, 0x2C, 0x37, 0x2F, 0x31, 0x32, 0x37, 0x2A, 0x39, 0x28, 0x36, 0x34, 0x41, 0x38, 0x40, 0x31, 0x40, 0x21, 0x40, 0x31, 0x3C, 0x33, 0x3D, 0x24, 0x3A, 0x1A, 0x37, 0x2A, 0x41, 0x48, - 0x41, 0x1E, 0x42, 0x2B, 0x37, 0x2F, 0x34, 0x30, 0x39, 0x29, 0x3A, 0x26, 0x36, 0x34, 0x41, 0x37, 0x42, 0x32, 0x40, 0x21, 0x40, 0x31, 0x40, 0x2F, 0x3E, 0x22, 0x3B, 0x1A, 0x39, 0x29, 0x42, 0x47, - 0x3F, 0x47, 0x41, 0x56, 0x37, 0x59, 0x32, 0x5E, 0x37, 0x58, 0x39, 0x54, 0x34, 0x61, 0x40, 0x61, 0x41, 0x5D, 0x3E, 0x4F, 0x3E, 0x5B, 0x3D, 0x5B, 0x3F, 0x4C, 0x3B, 0x45, 0x37, 0x58, 0x41, 0x74, - 0x45, 0x45, 0x46, 0x54, 0x3A, 0x55, 0x38, 0x58, 0x3C, 0x54, 0x3F, 0x52, 0x39, 0x5B, 0x45, 0x5C, 0x47, 0x5C, 0x44, 0x4B, 0x44, 0x57, 0x43, 0x55, 0x44, 0x4A, 0x3E, 0x45, 0x3C, 0x54, 0x47, 0x70, -}; -int pPaperdoll_Beards[4] = //4E5AD0 -{ - 52, 130, 56, 136, -}; -int pPaperdoll_LeftHand[4][2] = //4E5AE0 -{ - 0x67, 0x6A, - 0x65, 0x6C, - 0x74, 0x8D, - 0x74, 0x93, -}; -int pPaperdoll_SecondLeftHand[4][2] = //4E5B00 -{ - 0x1A, 0x6B, - 0x28, 0x6D, - 0x19, 0x8D, - 0x20, 0x92, -}; -int pPaperdoll_RightHand[4][2] = //4E5B20 -{ - 0x1E, 0x90, - 0x22, 0x9E, - 0x19, 0xBA, - 0x1F, 0xB8, -}; -int pPaperdollLeftEmptyHand[4][2] = //4E5B40 -{ - 0x80, 0xCD, - 0x83, 0xC9, - 0x83, 0xD8, - 0x7B, 0xD8, -}; int pPartySpellbuffsUI_XYs[14][2] = { @@ -710,55 +595,7 @@ "pc21-", "pc22-", "pc23", "pc24-", "pc25-" }; -const char *dlad_texnames_by_face[25] = -{ - "pc01lad", "pc02lad", "pc03lad", "pc04lad", "pc05lad", "pc06lad", - "pc07lad", "pc08lad", "pc09lad", "pc10lad", "pc11lad", "pc12lad", - "pc13lad", "pc14lad", "pc15lad", "pc16lad", "pc17lad", "pc18lad", - "pc19lad", "pc20lad", "pc21lad", "pc22lad", "pc23lad", "pc24lad", - "pc25lad" -}; -const char *dlau_texnames_by_face[25] = -{ - "pc01lau", "pc02lau", "pc03lau", "pc04lau", "pc05lau", "pc06lau", - "pc07lau", "pc08lau", "pc09lau", "pc10lau", "pc11lau", "pc12lau", - "pc13lau", "pc14lau", "pc15lau", "pc16lau", "pc17lau", "pc18lau", - "pc19lau", "pc20lau", "pc21lau", "pc22lau", "pc23lau", "pc24lau", - "pc25lau" -}; -const char *dbod_texnames_by_face[25] = -{ - "pc01bod", "pc02bod", "pc03bod", "pc04bod", "pc05bod", "pc06bod", - "pc07bod", "pc08bod", "pc09bod", "pc10bod", "pc11bod", "pc12bod", - "pc13bod", "pc14bod", "pc15bod", "pc16bod", "pc17bod", "pc18bod", - "pc19bod", "pc20bod", "pc21bod", "pc22bod", "pc23bod", "pc24bod", - "pc25bod" -}; -const char *drh_texnames_by_face[25] = -{ - "pc01rh", "pc02rh", "pc03rh", "pc04rh", "pc05rh", "pc06rh", - "pc07rh", "pc08rh", "pc09rh", "pc10rh", "pc11rh", "pc12rh", - "pc13rh", "pc14rh", "pc15rh", "pc16rh", "pc17rh", "pc18rh", - "pc19rh", "pc20rh", "pc21rh", "pc22rh", "pc23rh", "pc24rh", - "pc25rh" -}; -const char *dlh_texnames_by_face[25] = -{ - "pc01lh", "pc02lh", "pc03lh", "pc04lh", "pc05lh", "pc06lh", - "pc07lh", "pc08lh", "pc09lh", "pc10lh", "pc11lh", "pc12lh", - "pc13lh", "pc14lh", "pc15lh", "pc16lh", "pc17lh", "pc18lh", - "pc19lh", "pc20lh", "pc21lh", "pc22lh", "pc23lh", "pc24lh", - "pc25lh" -}; -const char *dlhu_texnames_by_face[25] = -{ - "pc01lhu", "pc02lhu", "pc03lhu", "pc04lhu", "pc05lhu", "pc06lhu", - "pc07lhu", "pc08lhu", "pc09lhu", "pc10lhu", "pc11lhu", "pc12lhu", - "pc13lhu", "pc14lhu", "pc15lhu", "pc16lhu", "pc17lhu", "pc18lhu", - "pc19lhu", "pc20lhu", "pc21lhu", "pc22lhu", "pc23lhu", "pc24lhu", - "pc25lhu" -}; unsigned char byte_4ECF08[48][25] = // 4ECF08 { @@ -1160,10 +997,10 @@ //unsigned __int8 bMonsterInfoUI_bDollInitialized; char *aSpellNames[44]; int pMainScreenNum; // weak -int dword_506980; // weak -int dword_506984; // weak -int dword_506988; // weak -int dword_50698C; // weak +int dword_506980_uW; // weak +int dword_506984_uZ; // weak +int dword_506988_uY; // weak +int dword_50698C_uX; // weak int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68 unsigned int pPrevVirtualCidesMapping[27]; int KeyboardPageNum; // weak @@ -1201,7 +1038,7 @@ unsigned int uActiveCharacter; int dword_507BF0_is_there_popup_onscreen; // weak int dword_507CBC; // weak -int dword_507CC0; // weak +int dword_507CC0_activ_ch; // weak __int64 GameUI_RightPanel_BookFlashTimer; // weak int _507CD4_RestUI_hourglass_anim_controller; // weak int dword_507CD8; // weak @@ -1259,19 +1096,7 @@ unsigned __int8 IsPlayerWearingWatersuit[5]; char party_has_equipment[54]; char byte_5111F6[16]; -unsigned int papredoll_dbrds[16]; -unsigned int papredoll_drhs[4]; -unsigned int papredoll_dlhus[4]; -unsigned int papredoll_dlhs[4]; -unsigned int papredoll_dbods[5]; -int paperdoll_armor_texture[4][17][3]; -//int paperdoll_array_51132C[165]; -unsigned int papredoll_dlaus[5]; -unsigned int papredoll_dlads[4]; -int papredoll_flying_feet[777]; // idb -int paperdoll_boots_texture[4][6];//0x511638 -int paperdoll_cloak_collar_texture[4][10]; // weak -int paperdoll_cloak_texture[4][10]; + int _unused000; // weak unsigned __int16 pOdmMinimap[117][137];
--- a/mm7_data.h Sun May 26 00:03:16 2013 +0400 +++ b/mm7_data.h Sun May 26 14:13:22 2013 +0400 @@ -332,7 +332,6 @@ extern char aIcons[]; // idb extern char aPending[]; // idb extern char aCanTFindS[]; // idb -extern int paperdoll_Weapon[4][16][2]; extern char *spellbook_texture_filename_suffices[]; // weak extern __int16 word_4E1D3A[]; // weak extern __int16 pTownPortalBook_xs[6]; @@ -427,10 +426,10 @@ extern __int16 RightClickPortraitXmin[4]; extern __int16 RightClickPortraitXmax[4]; extern void *off_4E2A12; // weak -extern int pArmorSkills[5]; -extern int pWeaponSkills[9]; -extern int pMiscSkills[12]; -extern int pMagicSkills[9]; +//extern int pArmorSkills[5]; +//extern int pWeaponSkills[9]; +//extern int pMiscSkills[12]; +//extern int pMagicSkills[9]; extern unsigned int pHealthBarPos[4]; extern unsigned int pManaBarPos[4]; extern char _4E2B21_buff_spell_tooltip_colors[80]; @@ -455,23 +454,7 @@ extern int dword_4E4A40[]; // weak extern int dword_4E4A44[]; // weak extern float flt_4E4A80[10]; -extern int pPaperdoll_BodyX; // weak -extern int pPaperdoll_BodyY; // weak -extern int paperdoll_Armor[4][17][2]; -extern int paperdoll_shoulder[4][17][2]; -extern int paperdoll_helm_texture[2][16]; -extern int paperdoll_belt_texture[2][7]; -extern int dword_4E5270[4][2]; -extern int paperdoll_Boot[4][7][2]; -extern int paperdoll_Cloak[4][10][2]; -extern int paperdoll_CloakCollar[4][10][2]; -extern int paperdoll_Belt[4][7][2]; -extern int paperdoll_Helm[4][16][2]; -extern int pPaperdoll_Beards[4]; // weak -extern int pPaperdoll_LeftHand[4][2]; -extern int pPaperdoll_SecondLeftHand[4][2]; -extern int pPaperdoll_RightHand[4][2]; -extern int pPaperdollLeftEmptyHand[4][2]; + extern int pPartySpellbuffsUI_XYs[14][2]; extern unsigned char byte_4E5DD8[]; // weak extern unsigned __int8 pPartySpellbuffsUI_smthns[14]; @@ -499,12 +482,7 @@ extern int dword_4EC2A8; // weak extern int dword_4EC2AC; // weak extern const char *pPlayerPortraitsNames[25]; -extern const char *dlad_texnames_by_face[25]; -extern const char *dlau_texnames_by_face[25]; -extern const char *dbod_texnames_by_face[25]; -extern const char *drh_texnames_by_face[25]; -extern const char *dlh_texnames_by_face[25]; -extern const char *dlhu_texnames_by_face[25]; + extern unsigned char byte_4ECF08[48][25]; extern unsigned char SoundSetAction[110][8]; // weak extern __int16 pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[4]; @@ -651,10 +629,10 @@ //extern unsigned __int8 bMonsterInfoUI_bDollInitialized; extern char *aSpellNames[44]; extern int pMainScreenNum; // weak -extern int dword_506980; // weak -extern int dword_506984; // weak -extern int dword_506988; // weak -extern int dword_50698C; // weak +extern int dword_506980_uW; // weak +extern int dword_506984_uZ; // weak +extern int dword_506988_uY; // weak +extern int dword_50698C_uX; // weak extern int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68 extern bool GameMenuUI_InvaligKeyBindingsFlags[28]; // 506E6C extern unsigned int pPrevVirtualCidesMapping[27]; @@ -693,7 +671,7 @@ extern unsigned int uActiveCharacter; extern int dword_507BF0_is_there_popup_onscreen; // weak extern int dword_507CBC; // weak -extern int dword_507CC0; // weak +extern int dword_507CC0_activ_ch; // weak extern __int64 GameUI_RightPanel_BookFlashTimer; // weak extern int _507CD4_RestUI_hourglass_anim_controller; // weak extern int dword_507CD8; // weak @@ -752,18 +730,7 @@ extern char party_has_equipment[54]; extern char byte_5111F6[]; extern unsigned int papredoll_dbrds[16]; -extern unsigned int papredoll_drhs[4]; -extern unsigned int papredoll_dlhus[4]; -extern unsigned int papredoll_dlhs[4]; -extern unsigned int papredoll_dbods[5]; -extern int paperdoll_armor_texture[4][17][3];//0x511290 -//extern int paperdoll_array_51132C[165]; -extern unsigned int papredoll_dlaus[5]; -extern unsigned int papredoll_dlads[4]; -extern int papredoll_flying_feet[]; // idb -extern int paperdoll_boots_texture[4][6]; -extern int paperdoll_cloak_collar_texture[4][10]; // weak -extern int paperdoll_cloak_texture[4][10]; + extern int bRingsShownInCharScreen; // weak extern int _unused000; // weak @@ -1343,8 +1310,8 @@ bool __thiscall sub_43EDB9_get_some_race_sex_relation_2(unsigned int _this); bool __fastcall Player_has_item(unsigned int uItemID, struct Player *pPlayer, char a3); bool __fastcall sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(signed int a1); -void __fastcall WetsuitOn(unsigned int uPlayerID); // idb -unsigned int __fastcall WetsuitOff(unsigned int uPlayerID); +void WetsuitOn(unsigned int uPlayerID); // idb +void WetsuitOff(unsigned int uPlayerID); void __fastcall PrepareDrawLists_BLV(struct IndoorLocation_drawstru *_this); int /*__usercall*/ sr_sub_4D6FB0/*<eax>*/(struct stru315 *a1/*<ebp>*/); int /*__usercall*/ sr_sub_4D705A/*<eax>*/(struct stru315 *a1/*<ebp>*/);