Mercurial > mm7
changeset 1455:bfe342ae0c1f
DrawPaperdoll cleaning
author | Ritor1 |
---|---|
date | Fri, 09 Aug 2013 17:30:33 +0600 |
parents | 7d3bed7772cb |
children | 9dc33590f93e b330df6a2183 cfd99b6177a3 |
files | CastSpellInfo.cpp CastSpellInfo.h GUIButton.cpp Items.h Player.cpp Render.cpp Render.h UI/Books/UISpellBook.cpp UI/UIBooks.cpp UI/UICharacter.cpp mm7_5.cpp mm7_data.h |
diffstat | 12 files changed, 518 insertions(+), 756 deletions(-) [+] |
line wrap: on
line diff
--- a/CastSpellInfo.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/CastSpellInfo.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -4386,7 +4386,7 @@ ++pIcons_LOD->uTexturePacksCount; if ( !pIcons_LOD->uNumPrevLoadedFiles ) pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; - pGUIWindow_Settings = pCastSpellInfo[result].sub_4219BE(); + pGUIWindow_Settings = pCastSpellInfo[result].GetCastSpellInInventoryWindow(); unk_50C9A0 = 1; some_active_character = uActiveCharacter; sub_421B2C_PlaceInInventory_or_DropPickedItem();
--- a/CastSpellInfo.h Thu Aug 08 16:34:37 2013 +0600 +++ b/CastSpellInfo.h Fri Aug 09 17:30:33 2013 +0600 @@ -19,7 +19,7 @@ void _427D48(unsigned int uPlayerID); unsigned int PushCastSpellInfo(__int16 a2, __int16 uPlayerID, __int16 skill_level, __int16 a5, int sound_id); - struct GUIWindow *sub_4219BE(); + struct GUIWindow *GetCastSpellInInventoryWindow(); void _427E01_cast_spell(); __int16 spellnum;
--- a/GUIButton.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/GUIButton.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -208,25 +208,25 @@ } } //----- (00419220) -------------------------------------------------------- -void __cdecl sub_419220() +void __cdecl CreateAwardsScrollBar() { - GUIButton *i; // eax@2 + GUIButton *pButton; // eax@2 if ( !dword_507CBC ) { dword_507CBC = 1; - for ( i = pGUIWindow_CurrentMenu->pControlsHead; i; i = i->pNext ) + for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext ) { - if ( i->msg == UIMSG_InventoryLeftClick ) + if ( pButton->msg == UIMSG_InventoryLeftClick ) { - 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; - i->uX = 0; + 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; } } pBtn_Up = pGUIWindow_CurrentMenu->CreateButton(438, 46,
--- a/Items.h Thu Aug 08 16:34:37 2013 +0600 +++ b/Items.h Fri Aug 09 17:30:33 2013 +0600 @@ -23,10 +23,10 @@ ITEM_IDENTIFIED = 0x1, ITEM_BROKEN = 0x2, ITEM_TEMP_BONUS = 0x8, - ITEM_AURA_EFFECT_RED = 0x10, - ITEM_AURA_EFFECT_BLUE = 0x20, - ITEM_AURA_EFFECT_GREEN = 0x40, - ITEM_AURA_EFFECT_PURPLE = 0x80, + ITEM_AURA_EFFECT_RED = 0x10,//16 + ITEM_AURA_EFFECT_BLUE = 0x20,//32 + ITEM_AURA_EFFECT_GREEN = 0x40,//64 + ITEM_AURA_EFFECT_PURPLE = 0x80,//128 ITEM_STOLEN = 0x100, ITEM_ENCHANTED = 0x200, }; @@ -67,7 +67,8 @@ ITEM_DEVIL_ICHOR = 0xD6, ITEM_OOZE_ECTOPLASM_BOTTLE = 0xD9, ITEM_POTION_BOTTLE = 0xDC, - ITEM_SPELLBOOK_FIRE_STRIKE = 0x191, + ITEM_SPELLBOOK_TORCHLIGHT = 400,//0x190 + ITEM_SPELLBOOK_FIRE_STRIKE = 401,//0x191, ITEM_SPELLBOOK_AIR_FEATHER_FALL = 0x19C, ITEM_SPELLBOOK_WATER_POISON_SPRAY = 0x1A7, ITEM_SPELLBOOK_EARTH_SLOW = 0x1B2, @@ -79,7 +80,7 @@ ITEM_SPELLBOOK_LIGHT_LIGHT_BOLT = 0x1DD, ITEM_SPELLBOOK_LIGHT_SUN_BURST = 0x1E6, ITEM_SPELLBOOK_LIGHT_DIVINE_INTERVENTION = 0x1E7, - ITEM_ARTIFACT_PUCK = 0x1F4, + ITEM_ARTIFACT_PUCK = 500,//0x1F4, ITEM_ARTICACT_GOVERNONS_ARMOR = 504,//1F8 ITEM_ARTIFACT_YORUBA = 505,//1F9 ITEM_ARTIFACT_SPLITTER = 506,//1FA
--- a/Player.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/Player.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -7047,7 +7047,7 @@ || var_type > VAR_History_28 || (v22 = var_type - 276, pParty->field_3C.field_4F0[2 * v22 + 1] | pParty->field_3C.field_4F0[2 * v22]) || (pParty->field_3C.field_4F0[2 * (var_type - 276)] = LODWORD(pParty->uTimePlayed), - v23 = pStorylineText->StoreLine[v22].pText==0,//*(&pStorylineText->field_0 + 3 * v22) == 0, + v23 = pStorylineText->StoreLine[v22].pText == 0,//*(&pStorylineText->field_0 + 3 * v22) == 0, pParty->field_3C.field_4F0[2 * (var_type - 276) + 1] = HIDWORD(pParty->uTimePlayed), v23) ) return;
--- a/Render.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/Render.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -7842,7 +7842,7 @@ } //----- (004A63E6) -------------------------------------------------------- -void Render::_4A63E6(unsigned int a2, unsigned int a3, Texture *a4, Texture *a5, int a6, int a7, int a8) +void Render::DrawAura(unsigned int a2, unsigned int a3, Texture *a4, Texture *a5, int a6, int a7, int a8) { Texture *v8; // eax@2 Texture *v9; // ebx@4
--- a/Render.h Thu Aug 08 16:34:37 2013 +0600 +++ b/Render.h Fri Aug 09 17:30:33 2013 +0600 @@ -344,7 +344,7 @@ void ZBuffer_Fill_2(signed int a2, signed int a3, struct Texture *pTexture, int a5); void DrawMaskToZBuffer(signed int uOutX, unsigned int uOutY, struct Texture *pTexture, int zVal); void DrawTextureTransparent(unsigned int uX, unsigned int uY, struct Texture *pTexture); - void _4A63E6(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8); + void DrawAura(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8); void _4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8); void DrawTransparentRedShade(unsigned int a2, unsigned int a3, struct Texture *a4); void DrawTransparentGreenShade(signed int a2, signed int a3, struct Texture *pTexture);
--- a/UI/Books/UISpellBook.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/UI/Books/UISpellBook.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -3,7 +3,6 @@ #endif #include <assert.h> - #include "..\..\MM7.h" #include "..\..\Render.h" #include "..\..\Mouse.h" @@ -16,10 +15,8 @@ #include "..\..\Allocator.h" #include "..\..\Viewport.h" #include "..\..\texts.h" -// #include "..\..\mm7_data.h" - std::array<char *, 9> spellbook_texture_filename_suffices = {{"f", "a", "w", "e", "s", "m", "b", "l", "d"}}; // weak //----- (00411300) -------------------------------------------------------- @@ -66,12 +63,10 @@ //----- (00412AF9) -------------------------------------------------------- static void BookUI_Spellbook_DrawCurrentSchoolBackground() { - int v0; // ecx@1 - - v0 = 0; + int pTexID = 0; if ( uActiveCharacter ) - v0 = pParty->pPlayers[uActiveCharacter - 1].lastOpenedSpellbookPage;//*((char *)&pParty->pPartyBuffs[5].uExpireTime + 6972 * uActiveCharacter + 2); - pRenderer->DrawTextureIndexed(8, 8, pSpellBookPagesTextr[v0]); + pTexID = pParty->pPlayers[uActiveCharacter - 1].lastOpenedSpellbookPage; + pRenderer->DrawTextureIndexed(8, 8, pSpellBookPagesTextr[pTexID]); pRenderer->DrawTextureIndexed(476, 450, pSBQuickSpellBtnTextr); pRenderer->DrawTextureIndexed(561, 450, pSpellBookCloseBtnTextr); }
--- a/UI/UIBooks.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/UI/UIBooks.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -3,9 +3,7 @@ #endif #include <assert.h> - #include "..\MM7.h" - #include "UIBooks.h" #include "..\Render.h" #include "..\GUIWindow.h" @@ -13,15 +11,8 @@ #include "..\AudioPlayer.h" #include "..\LOD.h" #include "..\Allocator.h" - - #include "..\mm7_data.h" - - - - - //----- (00413CC6) -------------------------------------------------------- void BookUI_Draw(WindowType book) { @@ -42,20 +33,16 @@ //----- (0041192C) -------------------------------------------------------- void InitializeBookTextures() { - pAudioPlayer->StopChannels(-1, -1); - ++pIcons_LOD->uTexturePacksCount; if ( !pIcons_LOD->uNumPrevLoadedFiles ) pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; - pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); pSpellBookPagesTextr_9 = pIcons_LOD->LoadTexturePtr("book", TEXTURE_16BIT_PALETTE); pTexture_pagemask = pIcons_LOD->LoadTexturePtr("pagemask", TEXTURE_16BIT_PALETTE); pSpellBookCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-u", TEXTURE_16BIT_PALETTE); pSpellBookClickCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-d", TEXTURE_16BIT_PALETTE); pSBQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-u",TEXTURE_16BIT_PALETTE); - //v0 = 1; static const char *texNames[9] = // 004E24EC { @@ -64,13 +51,12 @@ }; pSBClickQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-d",TEXTURE_16BIT_PALETTE); - for (uint i = 0; i < 9; ++i) + for ( uint i = 0; i < 9; ++i ) { pSpellBookPagesTextr[i] = pIcons_LOD->LoadTexturePtr(texNames[i], TEXTURE_16BIT_PALETTE); - - sprintf(pTmpBuf.data(), "tab%da", i+1); + sprintf(pTmpBuf.data(), "tab%da", i + 1); pTextures_tabs[i][0] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE); - sprintf(pTmpBuf.data(), "tab%db", i+1); + sprintf(pTmpBuf.data(), "tab%db", i + 1); pTextures_tabs[i][1] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE); } } @@ -79,11 +65,9 @@ void InitializeBookFonts() { pAudioPlayer->StopChannels(-1, -1); - ++pIcons_LOD->uTexturePacksCount; if ( !pIcons_LOD->uNumPrevLoadedFiles ) pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; - pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); pTexture_mapbordr = pIcons_LOD->LoadTexturePtr("mapbordr", TEXTURE_16BIT_PALETTE); pBookFont = LoadFont("book.fnt", "FONTPAL", NULL); @@ -96,7 +80,6 @@ void OnCloseSpellBookPage() { GUIButton *pNextButton; // esi@4 - for ( uint i = 1; i <= 11; i++ ) { SBPageCSpellsTextureList[i]->Release(); @@ -124,7 +107,7 @@ pTexture_pagemask->Release(); pSpellBookCloseBtnTextr->Release(); pSBQuickSpellBtnTextr->Release(); - for (uint i = 0; i < 9; ++i) + for ( uint i = 0; i < 9; ++i ) { pSpellBookPagesTextr[i]->Release(); pTextures_tabs[i][0]->Release();
--- a/UI/UICharacter.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/UI/UICharacter.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -3,11 +3,8 @@ #endif #include <assert.h> - #include <algorithm> - #include "..\MM7.h" - #include "..\MapInfo.h" #include "..\Game.h" #include "..\GUIWindow.h" @@ -23,7 +20,6 @@ #include "..\Awards.h" #include "..\CastSpellInfo.h" #include "..\texts.h" - #include "..\mm7_data.h" #include "..\Mouse.h" #include "..\Allocator.h" @@ -31,7 +27,6 @@ int bRingsShownInCharScreen; // 5118E0 - unsigned int ui_mainmenu_copyright_color; unsigned int ui_character_tooltip_header_default_color; @@ -91,7 +86,6 @@ unsigned int ui_house_player_cant_interact_color; - void set_default_ui_skin() { ui_mainmenu_copyright_color = TargetColor(255, 255, 255); @@ -202,7 +196,6 @@ int paperdoll_helm_texture[2][16]; //511698 int paperdoll_belt_texture[4][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}}, @@ -210,8 +203,6 @@ {{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, @@ -379,7 +370,6 @@ 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}; - //----- (00421626) -------------------------------------------------------- GUIWindow *CharacterUI_Initialize(unsigned int _this) { @@ -441,29 +431,29 @@ } //----- (004219BE) -------------------------------------------------------- -GUIWindow *CastSpellInfo::sub_4219BE() +GUIWindow *CastSpellInfo::GetCastSpellInInventoryWindow() { - GUIWindow *v2; // ebx@1 + GUIWindow *CS_inventory_window; // ebx@1 pEventTimer->Pause(); pAudioPlayer->StopChannels(-1, -1); bRingsShownInCharScreen = 0; CharacterUI_LoadPaperdollTextures(); pCurrentScreen = SCREEN_CASTING; - v2 = GUIWindow::Create(0, 0, 640, 480, WINDOW_CastSpell_InInventory, (int)this, 0); - pCharacterScreen_ExitBtn = v2->CreateButton(394, 318, 75, 33, 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, + CS_inventory_window = GUIWindow::Create(0, 0, 640, 480, WINDOW_CastSpell_InInventory, (int)this, 0); + pCharacterScreen_ExitBtn = CS_inventory_window->CreateButton(394, 318, 75, 33, 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, pGlobalTXT_LocalizationStrings[79], // Close pIcons_LOD->GetTexture(papredoll_dbrds[2]), pIcons_LOD->GetTexture(papredoll_dbrds[1]), 0); - v2->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); - pCharacterScreen_DollBtn = v2->CreateButton(0x1DCu, 0, 0xA4u, 0x159u, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); + CS_inventory_window->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); + pCharacterScreen_DollBtn = CS_inventory_window->CreateButton(0x1DCu, 0, 0xA4u, 0x159u, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); - v2->CreateButton( 61, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 1, '1', "", 0); - v2->CreateButton(177, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 2, '2', "", 0); - v2->CreateButton(292, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 3, '3', "", 0); - v2->CreateButton(407, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 4, '4', "", 0); + CS_inventory_window->CreateButton( 61, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 1, '1', "", 0); + CS_inventory_window->CreateButton(177, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 2, '2', "", 0); + CS_inventory_window->CreateButton(292, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 3, '3', "", 0); + CS_inventory_window->CreateButton(407, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 4, '4', "", 0); - return v2; + return CS_inventory_window; } 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) @@ -474,7 +464,7 @@ pGUIWindow_CurrentMenu->DrawText(pFontArrus, x, y, ui_character_header_text_color, pTmpBuf.data(), 0, 0, 0); int num_skills_drawn = 0; - for (uint i = 0; i < skill_list_size; ++i) + for (int i = 0; i < skill_list_size; ++i) { auto skill = (PLAYER_SKILL_TYPE)skill_list[i]; for (uint j = 0; j < pGUIWindow_CurrentMenu->uNumControls; ++j) @@ -528,7 +518,6 @@ if (!skill_mastery_color) skill_mastery_color = ui_character_header_text_color; - sprintfex(pTmpBuf.data(), "%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.data(), 0, 0, 0); } @@ -544,8 +533,6 @@ return y_offset; } - - //----- (00419719) -------------------------------------------------------- void CharacterUI_SkillsTab_Draw(Player *player) { @@ -573,40 +560,13 @@ y = CharacterUI_SkillsTab_Draw__DrawSkillTable(player, 248, y, pMiscSkills, 12, 177, pGlobalTXT_LocalizationStrings[143]); //"Misc" } - - - - - - - - - //----- (0041A000) -------------------------------------------------------- void CharacterUI_AwardsTab_Draw(Player *player) { - //unsigned int v1; // esi@1 - //unsigned int v2; // ebx@1 - //unsigned int award_texture_id; // eax@1 - unsigned int result; // eax@1 - int v5; // eax@15 - char *v6; // ebx@15 - int v7; // eax@23 - int v8; // eax@24 - int v9; // eax@25 - //int v10; // eax@27 - int v11; // eax@32 - int v12; // eax@33 - int v13; // eax@34 - //signed int v14; // eax@43 - //unsigned int v15; // eax@43 - //int v16; // eax@43 - //int v17; // [sp-4h] [bp-D4h]@16 - char Source[100]; // [sp+Ch] [bp-C4h]@1 - GUIWindow a1; // [sp+70h] [bp-60h]@1 - //unsigned int v20; // [sp+C4h] [bp-Ch]@15 - //int v21; // [sp+C8h] [bp-8h]@14 - //int v22; // [sp+CCh] [bp-4h]@40 + unsigned int result; // eax@1 + char *v6; // ebx@15 + char Source[100]; // [sp+Ch] [bp-C4h]@1 + GUIWindow awards_window; // [sp+70h] [bp-60h]@1 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("fr_award", TEXTURE_16BIT_PALETTE)); sprintfex(pTmpBuf.data(), "%s \f%05d", pGlobalTXT_LocalizationStrings[LOCSTR_AVARDS_FOR], ui_character_header_text_color); @@ -616,12 +576,12 @@ pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf.data(), 0, 0, 0); result = books_primary_item_per_page; - a1.uFrameX = 12; - a1.uFrameY = 48; - a1.uFrameWidth = 424; - a1.uFrameHeight = 290; - a1.uFrameZ = 435; - a1.uFrameW = 337; + awards_window.uFrameX = 12; + awards_window.uFrameY = 48; + awards_window.uFrameWidth = 424; + awards_window.uFrameHeight = 290; + awards_window.uFrameZ = 435; + awards_window.uFrameW = 337; if (BtnDown_flag && num_achieved_awards + books_primary_item_per_page < full_num_items_in_book) result = books_primary_item_per_page++ + 1; if (BtnUp_flag && result) @@ -630,70 +590,60 @@ books_primary_item_per_page = result; } - if ( books_page_number < 0 ) - { - result += num_achieved_awards; - books_primary_item_per_page = result; - if ( (signed int)(num_achieved_awards + result) > full_num_items_in_book ) - { - result = full_num_items_in_book - num_achieved_awards; - books_primary_item_per_page = result; - } - } - else if ( books_page_number > 0 ) - { - result -= num_achieved_awards; - books_primary_item_per_page = result; - if ( (result & 0x80000000u) != 0 ) - { - result = 0; - books_primary_item_per_page = result; - } - } - //LABEL_14: - BtnDown_flag = 0; - BtnUp_flag = 0; - num_achieved_awards = 0; - books_page_number = 0; - - - for (uint i = result; i < full_num_items_in_book; ++i) + if ( books_page_number < 0 ) + { + result += num_achieved_awards; + books_primary_item_per_page = result; + if ( (signed int)(num_achieved_awards + result) > full_num_items_in_book ) { - v5 = achieved_awards[i]; - v6 = (char *)pAwards[v5].pText;//(char *)dword_723E80_award_related[v20 / 4]; + result = full_num_items_in_book - num_achieved_awards; + books_primary_item_per_page = result; + } + } + else if ( books_page_number > 0 ) + { + result -= num_achieved_awards; + books_primary_item_per_page = result; + if ( (result & 0x80000000u) != 0 ) + { + result = 0; + books_primary_item_per_page = result; + } + } + BtnDown_flag = 0; + BtnUp_flag = 0; + num_achieved_awards = 0; + books_page_number = 0; - pTmpBuf[0] = 0; - switch (v5) - { - case Award_Arena_PageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaPageWins); break; - case Award_Arena_SquireWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaSquireWins); break; - case Award_Arena_KnightWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaKnightWins); break; - case Award_Arena_LordWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaLordWins); break; - case Award_ArcomageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageWins); break; - case Award_ArcomageLoses: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageLoses); break; - case Award_Deaths: sprintf(pTmpBuf.data(), v6, pParty->uNumDeaths); break; - case Award_BountiesCollected: sprintf(pTmpBuf.data(), v6, pParty->uNumBountiesCollected); break; - case Award_Fine: sprintf(pTmpBuf.data(), v6, pParty->uFine); break; - case Award_PrisonTerms: sprintf(pTmpBuf.data(), v6, pParty->uNumPrisonTerms); break; - } + for ( int i = result; i < full_num_items_in_book; ++i) + { + v6 = (char *)pAwards[achieved_awards[i]].pText;//(char *)dword_723E80_award_related[v20 / 4]; + pTmpBuf[0] = 0; + switch (achieved_awards[i]) + { + case Award_Arena_PageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaPageWins); break; + case Award_Arena_SquireWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaSquireWins); break; + case Award_Arena_KnightWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaKnightWins); break; + case Award_Arena_LordWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaLordWins); break; + case Award_ArcomageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageWins); break; + case Award_ArcomageLoses: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageLoses); break; + case Award_Deaths: sprintf(pTmpBuf.data(), v6, pParty->uNumDeaths); break; + case Award_BountiesCollected: sprintf(pTmpBuf.data(), v6, pParty->uNumBountiesCollected); break; + case Award_Fine: sprintf(pTmpBuf.data(), v6, pParty->uFine); break; + case Award_PrisonTerms: sprintf(pTmpBuf.data(), v6, pParty->uNumPrisonTerms); break; + } - if (*pTmpBuf.data()) - v6 = pTmpBuf.data(); - - - a1.DrawText(pFontArrus, 0, 0, ui_character_award_color[pAwards[v5].uPriority % 6], v6, 0, 0, 0); - a1.uFrameY = pFontArrus->CalcTextHeight(v6, &a1, 0, 0) + a1.uFrameY + 4; - if (a1.uFrameY > a1.uFrameHeight) - break; + if (*pTmpBuf.data()) + v6 = pTmpBuf.data(); - ++num_achieved_awards; - } - } + awards_window.DrawText(pFontArrus, 0, 0, ui_character_award_color[pAwards[achieved_awards[i]].uPriority % 6], v6, 0, 0, 0); + awards_window.uFrameY = pFontArrus->CalcTextHeight(v6, &awards_window, 0, 0) + awards_window.uFrameY + 8; + if (awards_window.uFrameY > awards_window.uFrameHeight) + break; - - - - + ++num_achieved_awards; + } +} //----- (0041A2C1) -------------------------------------------------------- unsigned int __fastcall GetSizeInInventorySlots(unsigned int uNumPixels) @@ -703,15 +653,12 @@ return ((signed int)(uNumPixels - 14) >> 5) + 1; } - - //----- (0041A556) -------------------------------------------------------- void draw_leather() { pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->GetTexture(uTextureID_Leather)); } - //----- (0041ABFD) -------------------------------------------------------- void CharacterUI_CharacterScreen_Draw(Player *player) { @@ -743,7 +690,7 @@ case WINDOW_CharacterWindow_Awards: // awards CharacterUI_ReleaseButtons(); sub_419379(); - sub_419220(); + CreateAwardsScrollBar(); CharacterUI_AwardsTab_Draw(player); pRenderer->DrawTextureIndexed(pCharacterScreen_AwardsBtn->uX, pCharacterScreen_AwardsBtn->uY, @@ -771,155 +718,22 @@ //----- (0043CC7C) -------------------------------------------------------- void CharacterUI_DrawPaperdoll(Player *player) { - //signed int pSex; // eax@1 - unsigned int v6; // ecx@9 - int v7; // ecx@10 - unsigned int pMainHandNum4; // eax@14 - ItemGen *item_MainHand4; // eax@15 - int v10; // edx@15 - unsigned int pX_MainHand4; // edi@15 - unsigned int v14; // ebx@18 - Texture *v16; // ebp@27 - double v17; // st7@29 - int v18; // edi@30 - char *v19; // eax@30 - unsigned int pBowNum; // eax@37 - ItemGen *itemBow; // edi@38 - int pX_Bow; // ebx@38 - double v28; // st7@51 - char *v30; // eax@54 - unsigned int pCloakNum; // eax@59 - ItemGen *item_Cloak; // edx@60 - int v33; // eax@65 - int v34; // eax@74 - int v35; // ebx@74 - LODFile_IconsBitmaps *v38; // ecx@78 - Texture *v39; // edi@85 - double v40; // st7@87 - int v41; // edi@88 - unsigned int pArmorNum; // eax@93 - ItemGen *item_Armor; // edx@94 - int v45; // eax@98 - int v48; // ebx@106 - LODFile_IconsBitmaps *v50; // ecx@110 - Texture *v51; // edi@117 - double v52; // st7@119 - int v53; // edi@120 - char *v55; // eax@122 - unsigned int pBootNum; // eax@127 - ItemGen *item_Boot; // edi@128 + ItemGen *item; // edi@38 + int item_X; // ebx@38 + int index; // eax@65 int v59; // ebx@129 - int v60; // ecx@132 - Texture *v63; // edi@145 - double v64; // st7@147 - int v65; // edi@148 - char *v66; // eax@148 - unsigned int pMainHandNum; // edx@155 - int v70; // edx@156 - unsigned int pBeltNum; // eax@160 - ItemGen *item_Belt; // edi@161 - int v73; // edx@163 unsigned int v75; // ebx@170 - Texture *v77; // edi@181 - double v78; // st7@183 - int v79; // edi@184 - char *v80; // eax@184 - unsigned int pMainHandNum2; // eax@192 - int v83; // eax@193 int pArmorShoulderNum; // eax@197 - int v87; // eax@197 - int v88; // eax@198 - int v89; // eax@199 int v94; // ebx@214 - int v95; // eax@214 - char *v96; // edi@226 - double v97; // st7@228 - int v98; // edi@229 - char *v99; // eax@229 - int pX_ArmorShoulder; // eax@237 - int pY_ArmorShoulder; // ecx@237 - int v106; // edx@238 - int v107; // edx@239 - int v108; // edx@240papredoll_flying_feet - int v109; // edi@250 - char *v110; // edx@250 - unsigned int pCloakCollarNum; // eax@259 - ItemGen *item_CloakCollar; // eax@260 - int v114; // eax@265 - int v116; // ebx@274 - double v118; // st7@286 - int v119; // edi@287 - char *v120; // eax@287 - unsigned int v122; // edi@295 - int pHelmNum; // ebx@297 - ItemGen *item_Helm; // edi@298 - int v125; // ecx@303 - unsigned int v127; // ebx@314 - Texture *v129; // edi@325 - double v130; // st7@327 - int v131; // edi@328 - char *v132; // eax@328 - unsigned int pMainHandNum3; // eax@335 - ItemGen *item_MainHand3; // eax@336 - unsigned int v138; // ebx@339 - Texture *v140; // edi@348 - double v141; // st7@350 - int v142; // edi@351 - char *v143; // eax@351 - unsigned int pShieldNum; // eax@358 - ItemGen *item_Shield; // eax@359 - int v149; // edx@359 - int pX_Shield; // ebx@362 - int v151; // ecx@363 - int v152; // ecx@364 - unsigned int v153; // eax@370 - Texture *v157; // ebp@381 - double v158; // st7@383 - char *v160; // eax@386 - unsigned int pMainHandNum5; // eax@393 - ItemGen *item_MainHand5; // eax@394 - char *v166; // [sp-8h] [bp-54h]@16 - const char *v167; // [sp-8h] [bp-54h]@23 - const char *v168; // [sp-8h] [bp-54h]@43 - const char *v169; // [sp-8h] [bp-54h]@79 - const char *v170; // [sp-8h] [bp-54h]@111 - const char *v171; // [sp-8h] [bp-54h]@141 - const char *v172; // [sp-8h] [bp-54h]@177 - const char *v173; // [sp-8h] [bp-54h]@222 - const char *v178; // [sp-8h] [bp-54h]@242 - const char *v179; // [sp-8h] [bp-54h]@280 - const char *v180; // [sp-8h] [bp-54h]@321 - char *v181; // [sp-8h] [bp-54h]@337 - const char *v182; // [sp-8h] [bp-54h]@344 - const char *v183; // [sp-8h] [bp-54h]@375 - signed int v186; // [sp-4h] [bp-50h]@202 - signed int v191; // [sp-4h] [bp-50h]@266 - signed int v192; // [sp-4h] [bp-50h]@304 - int pY_MainHand4; // [sp+10h] [bp-3Ch]@15 - int pY_Bow; // [sp+10h] [bp-3Ch]@38 - unsigned int pY_Cloak; // [sp+10h] [bp-3Ch]@74 - unsigned int pY_Armor; // [sp+10h] [bp-3Ch]@106 - int pY_Boot; // [sp+10h] [bp-3Ch]@129 - int pY_Belt; // [sp+10h] [bp-3Ch]@168 - unsigned int pY_shoulder; // [sp+10h] [bp-3Ch]@216 - unsigned int pY_CloakCollar; // [sp+10h] [bp-3Ch]@274 - int pY_Helm; // [sp+10h] [bp-3Ch]@312 - int pY_MainHand3; // [sp+10h] [bp-3Ch]@336 - int pY_Shield; // [sp+10h] [bp-3Ch]@362 - Texture *a2b; // [sp+14h] [bp-38h]@49 - int pX_Cloak; // [sp+14h] [bp-38h]@74 - int pX_Armor; // [sp+14h] [bp-38h]@106 - int pX_Boot; // [sp+14h] [bp-38h]@129 - int pX_Belt; // [sp+14h] [bp-38h]@168 - int pX_shoulder; // [sp+14h] [bp-38h]@214 - int pX_CloakCollar; // [sp+14h] [bp-38h]@274 - Texture *a2i; // [sp+14h] [bp-38h]@284 - int pX_Helm; // [sp+14h] [bp-38h]@312 - int pX_MainHand3; // [sp+14h] [bp-38h]@336 - int pBodyComplection; // [sp+24h] [bp-28h]@6 - unsigned int pBowTextureNum; // [sp+2Ch] [bp-20h]@38 - signed int v245; // [sp+34h] [bp-18h]@361 - signed int IsDwarf; // [sp+40h] [bp-Ch]@4 + unsigned int v127; // ebx@314 + unsigned int v153; // eax@370 + char *v166; // [sp-8h] [bp-54h]@16 + const char *container; // [sp-8h] [bp-54h]@79 + char *v181; // [sp-8h] [bp-54h]@337 + int item_Y; // [sp+10h] [bp-3Ch]@38 + int pBodyComplection; // [sp+24h] [bp-28h]@6 + signed int v245; // [sp+34h] [bp-18h]@361 + signed int IsDwarf; // [sp+40h] [bp-Ch]@4 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); if (player->GetRace() == CHARACTER_RACE_DWARF) @@ -948,760 +762,735 @@ pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); if ( !bRingsShownInCharScreen ) pRenderer->DrawMaskToZBuffer(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]), player->pEquipment.uArmor); - v6 = player->pEquipment.uMainHand; - if ( !v6 || (v7 = *(int *)&pPlayers[uPlayerID]->pInventoryItemList[v6-1], pItemsTable->pItems[v7].uEquipType != 1) - && (pItemsTable->pItems[v7].uSkillType != 4 || pPlayers[uPlayerID]->pEquipment.uShield) ) - pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], - pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); - pMainHandNum4 = pPlayers[uPlayerID]->pEquipment.uMainHand; - if ( pMainHandNum4 ) + //Рука не занята или ... + if ( !player->pEquipment.uMainHand + || ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[player->pEquipment.uMainHand - 1].uItemID].uEquipType != EQUIP_MAIN_HAND) + && (pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[player->pEquipment.uMainHand - 1].uItemID].uSkillType != PLAYER_SKILL_SPEAR + || pPlayers[uPlayerID]->pEquipment.uShield) ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], + pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); + //-----------------------------------------------------(Hand/Рука)--------------------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) { - item_MainHand4 = &pPlayers[uPlayerID]->pInventoryItemList[pMainHandNum4 - 1]; - pX_MainHand4 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item_MainHand4->uItemID].uEquipX; - pY_MainHand4 = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item_MainHand4->uItemID].uEquipY; - if ( item_MainHand4->uItemID == 64 ) //blaster + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; + item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item->uItemID].uEquipX; + item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item->uItemID].uEquipY; + if ( item->uItemID == 64 ) //blaster v166 = "item64v1"; else - v166 = pItemsTable->pItems[item_MainHand4->uItemID].pIconName; - v14 = pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE); - if ( !( item_MainHand4->uAttributes & 0xF0 ) ) + v166 = pItemsTable->pItems[item->uItemID].pIconName; + if ( !( item->uAttributes & 0xF0 ) ) { - v18 = v14 + 1; - v19 = (char *)pIcons_LOD->GetTexture(v14); - if ( item_MainHand4->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_MainHand4, pY_MainHand4, (Texture *)v19); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); else { - if ( item_MainHand4->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_MainHand4, pY_MainHand4, (Texture *)v19); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); else - pRenderer->DrawTransparentGreenShade(pX_MainHand4, pY_MainHand4, (Texture *)v19); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); } } - if ( item_MainHand4->uAttributes & 0xF0 ) + if ( item->uAttributes & 0xF0 ) { - if ( ( item_MainHand4->uAttributes & 0xF0) == 16 ) - v167 = "sptext01"; - if ( ( item_MainHand4->uAttributes & 0xF0) == 32 ) - v167 = "sp28a"; - if ( (item_MainHand4->uAttributes & 0xF0) == 64 ) - v167 = "sp30a"; - if ( (item_MainHand4->uAttributes & 0xF0) == 128 ) - v167 = "sp91a"; - v16 = pIcons_LOD->LoadTexturePtr(v167, TEXTURE_16BIT_PALETTE); + if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_MainHand4->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v17 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_MainHand4, pY_MainHand4, pIcons_LOD->GetTexture(v14), v16, (signed __int64)v17, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_MainHand4, pY_MainHand4, (Texture *)v19, pMainHandNum4); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), pPlayers[uPlayerID]->pEquipment.uMainHand); } } else// без акваланга { - pBowNum = pPlayers[uPlayerID]->pEquipment.uBow; //сначала рисуется лук - if ( pBowNum ) + //----------------(Bow/ Лук)------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uBow ) { - itemBow = &pPlayers[uPlayerID]->pInventoryItemList[pBowNum - 1]; - pX_Bow = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[itemBow->uItemID].uEquipX; - pY_Bow = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[itemBow->uItemID].uEquipY; - pBowTextureNum = pIcons_LOD->LoadTexture(pItemsTable->pItems[itemBow->uItemID].pIconName, TEXTURE_16BIT_PALETTE); - if ( !(itemBow->uAttributes & 0xF0) )// если не применён закл + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBow - 1]; + item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[item->uItemID].uEquipX; + item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[item->uItemID].uEquipY; + if ( !(item->uAttributes & 0xF0) )// если не применён закл { - if ( itemBow->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Bow, pY_Bow, pIcons_LOD->GetTexture(pBowTextureNum)); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); else { - v30 = (char *)pIcons_LOD->GetTexture(pBowTextureNum); - if ( !(itemBow->uAttributes & 1) )//не опознанный лук зелёный - pRenderer->DrawTransparentGreenShade(pX_Bow, pY_Bow, (Texture *)v30); + if ( !(item->uAttributes & 1) )//не опознанный лук зелёный + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); else // опознанный лук - pRenderer->DrawTextureTransparent(pX_Bow, pY_Bow, (Texture *)v30); + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); } } else { - if ( (itemBow->uAttributes & 0xF0) == 16 ) - v168 = "sptext01"; - if ( (itemBow->uAttributes & 0xF0) == 32 ) - v168 = "sp28a"; - if ( (itemBow->uAttributes & 0xF0) == 64 ) - v168 = "sp30a"; - if ( (itemBow->uAttributes & 0xF0) == 128 ) - v168 = "sp91a"; - a2b = pIcons_LOD->LoadTexturePtr(v168, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - itemBow->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v28 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Bow, pY_Bow, pIcons_LOD->GetTexture(pBowTextureNum), a2b, (signed __int64)v28, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Bow, pY_Bow, pIcons_LOD->GetTexture(pBowTextureNum), pBowNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)), + pPlayers[uPlayerID]->pEquipment.uBow); } - pCloakNum = pPlayers[uPlayerID]->pEquipment.uCloak;// потом плащ - if ( pCloakNum ) + //-----------------------------(Cloak/Плащ)--------------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uCloak ) { - item_Cloak = &pPlayers[uPlayerID]->pInventoryItemList[pCloakNum - 1]; - switch ( item_Cloak->uItemID ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uCloak - 1]; + switch ( item->uItemID ) { case ITEM_RELIC_TWILIGHT: - v33 = 5; + index = 5; break; case ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP: - v33 = 6; + index = 6; break; case ITEM_RARE_SUN_CLOAK: - v33 = 7; + index = 7; break; case ITEM_RARE_MOON_CLOAK: - v33 = 8; + index = 8; break; case ITEM_RARE_VAMPIRES_CAPE: - v33 = 9; + index = 9; break; default: - v33 = item_Cloak->uItemID - 105; + index = item->uItemID - 105; break; } - if ( v33 >= 0 && v33 < 10 ) + if ( index >= 0 && index < 10 ) { - v35 = paperdoll_cloak_texture[pBodyComplection][v33];//Texture_Cloak - pX_Cloak = pPaperdoll_BodyX + paperdoll_Cloak[pBodyComplection][v33][0]; - pY_Cloak = pPaperdoll_BodyY + paperdoll_Cloak[pBodyComplection][v33][1]; - if ( !(item_Cloak->uAttributes & 0xF0) ) + item_X = pPaperdoll_BodyX + paperdoll_Cloak[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_Cloak[pBodyComplection][index][1]; + if ( !(item->uAttributes & 0xF0) ) { - v41 = v35 + 1; - if ( item_Cloak->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Cloak, pY_Cloak, pIcons_LOD->GetTexture(v35)); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); else - pRenderer->DrawTextureTransparent(pX_Cloak, pY_Cloak, pIcons_LOD->GetTexture(v35)); + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); } else { - if ( (item_Cloak->uAttributes & 0xF0) == 16 ) - v169 = "sptext01"; - if ( (item_Cloak->uAttributes & 0xF0) == 32 ) - v169 = "sp28a"; - if ( (item_Cloak->uAttributes & 0xF0) != 64 ) - v169 = "sp30a"; - if ( (item_Cloak->uAttributes & 0xF0) == 128 ) - v169 = "sp91a"; - v39 = pIcons_LOD->LoadTexturePtr(v169, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Cloak->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v40 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Cloak, pY_Cloak, pIcons_LOD->GetTexture(v35), v39, (signed __int64)v40, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Cloak, pY_Cloak, pIcons_LOD->GetTexture(v35), pCloakNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), + pPlayers[uPlayerID]->pEquipment.uCloak); } } - pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY,//рисуется кукла - pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); - pArmorNum = pPlayers[uPlayerID]->pEquipment.uArmor;// потом броня - if ( pArmorNum ) + //-------------------------------(Paperdoll/Кукла)------------------------------------------- + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); + //-------------------------------(Armor/Броня)----------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uArmor ) { - item_Armor = &pPlayers[uPlayerID]->pInventoryItemList[pArmorNum - 1]; - switch ( item_Armor->uItemID ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uArmor - 1]; + switch ( item->uItemID ) { - case 504: - v45 = 15; + case ITEM_ARTICACT_GOVERNONS_ARMOR: + index = 15; break; case ITEM_ARTIFACT_YORUBA: - v45 = 14; + index = 14; break; case ITEM_RELIC_HARECS_LEATHER: - v45 = 13; + index = 13; break; case ITEM_ELVEN_CHAINMAIL: - v45 = 16; + index = 16; break; default: - v45 = item_Armor->uItemID - 66; + index = item->uItemID - 66; break; } - if ( v45 >= 0 && v45 < 17 ) + if ( index >= 0 && index < 17 ) { - pX_Armor = pPaperdoll_BodyX + paperdoll_Armor[pBodyComplection][v45][0]; - pY_Armor = pPaperdoll_BodyY + paperdoll_Armor[pBodyComplection][v45][1]; - v48 = paperdoll_armor_texture[pBodyComplection][v45][0]; - if ( !(item_Armor->uAttributes & 0xF0) ) + item_X = pPaperdoll_BodyX + paperdoll_Armor[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_Armor[pBodyComplection][index][1]; + if ( !(item->uAttributes & 0xF0) ) { - v53 = v48 + 1; - if ( item_Armor->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Armor, pY_Armor, pIcons_LOD->GetTexture(v48)); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0])); else { - v55 = (char *)&pIcons_LOD->pTextures[v48]; - if ( !(item_Armor->uAttributes & 1) ) - pRenderer->DrawTransparentGreenShade(pX_Armor, pY_Armor, (Texture *)v55); + if ( !(item->uAttributes & 1) ) + pRenderer->DrawTransparentGreenShade(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); else - pRenderer->DrawTextureTransparent(pX_Armor, pY_Armor, (Texture *)v55); + pRenderer->DrawTextureTransparent(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); } } else { - if ( (item_Armor->uAttributes & 0xF0) == 16 ) - v170 = "sptext01"; - if ( (item_Armor->uAttributes & 0xF0) == 32 ) - v170 = "sp28a"; - if ( (item_Armor->uAttributes & 0xF0) == 64 ) - v170 = "sp30a"; - if ( (item_Armor->uAttributes & 0xF0) == 128 ) - v170 = "sp91a"; - v51 = pIcons_LOD->LoadTexturePtr(v170, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Armor->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v52 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Armor, pY_Armor, pIcons_LOD->GetTexture(v48), v51, (signed __int64)v52, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0]), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } - if ( pPlayers[uPlayerID]->pEquipment.uMainHand //далее плечи брони + //--------------------------------(Shoulder/Плечи)--------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uMainHand && (pPlayers[uPlayerID]->GetEquippedItemEquipType(EQUIP_MAIN_HAND) == EQUIP_MAIN_HAND || pPlayers[uPlayerID]->GetEquippedItemSkillType(EQUIP_MAIN_HAND) == EQUIP_SHIELD && - !pPlayers[uPlayerID]->pEquipment.uShield) ) + !pPlayers[uPlayerID]->pEquipment.uShield) )//без щита { - v94 = paperdoll_armor_texture[pBodyComplection][v45][2]; - if ( v94 == pIcons_LOD->FindTextureByName("pending") ) + v94 = paperdoll_armor_texture[pBodyComplection][index][2]; + if ( paperdoll_armor_texture[pBodyComplection][index][2] == pIcons_LOD->FindTextureByName("pending") ) { - v94 = paperdoll_armor_texture[pBodyComplection][v45][1]; - pX_shoulder = pPaperdoll_BodyX + paperdoll_shoulder[pBodyComplection][v45][0]; - pY_shoulder = pPaperdoll_BodyY + paperdoll_shoulder[pBodyComplection][v45][1]; + v94 = paperdoll_armor_texture[pBodyComplection][index][1]; + item_X = pPaperdoll_BodyX + paperdoll_shoulder[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_shoulder[pBodyComplection][index][1]; } else { - pX_shoulder = pPaperdoll_BodyX + dword_4E5270[v45][0]; - pY_shoulder = pPaperdoll_BodyY + dword_4E5270[v45][1]; + item_X = pPaperdoll_BodyX + dword_4E5270[index][0]; + item_Y = pPaperdoll_BodyY + dword_4E5270[index][1]; } - if ( !(item_Armor->uAttributes & 0xF0) ) + if ( !(item->uAttributes & 0xF0) ) { - v98 = v94 + 1; - v99 = (char *)pIcons_LOD->GetTexture(v94); - if ( item_Armor->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_shoulder, pY_shoulder, (Texture *)v99); + //v98 = v94 + 1; + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); else { - if ( item_Armor->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_shoulder, pY_shoulder, (Texture *)v99); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v94)); else - pRenderer->DrawTransparentGreenShade(pX_shoulder, pY_shoulder, (Texture *)v99); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); } } else { - if ( v94 != pIcons_LOD->FindTextureByName("pending") ) + if ( paperdoll_armor_texture[pBodyComplection][index][2] != pIcons_LOD->FindTextureByName("pending") ) { - if ( item_Armor->uAttributes & 0xF0 ) + if ( item->uAttributes & 0xF0 ) { - if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) - v173 = "sptext01"; - if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) - v173 = "sp28a"; - if ( ( item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) - v173 = "sp30a"; - if ( (item_Armor->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) - v173 = "sp91a"; - v96 = (char *)pIcons_LOD->LoadTexturePtr(v173, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Armor->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v97 = (double)GetTickCount(); - pRenderer->_4A63E6(pX_shoulder, pY_shoulder, pIcons_LOD->GetTexture(v94), (Texture *)v96, (signed __int64)(v97 * 0.1), 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v94), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); } } } } - else + else//с щитом { - v94 = paperdoll_armor_texture[pBodyComplection][v45][1]; - if ( v94 != pIcons_LOD->FindTextureByName("pending") ) + //v94 = paperdoll_armor_texture[pBodyComplection][index][1]; + if ( paperdoll_armor_texture[pBodyComplection][index][1] != pIcons_LOD->FindTextureByName("pending") ) { - pX_ArmorShoulder = pPaperdoll_BodyX + paperdoll_shoulder[pBodyComplection][v45][0]; - pY_ArmorShoulder = pPaperdoll_BodyY + paperdoll_shoulder[pBodyComplection][v45][1]; - if ( !(item_Armor->uAttributes & 0xF0) ) + item_X = pPaperdoll_BodyX + paperdoll_shoulder[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_shoulder[pBodyComplection][index][1]; + if ( !(item->uAttributes & 0xF0) ) { - v109 = v94 + 1; - v110 = (char *)pIcons_LOD->GetTexture(v94); - if ( item_Armor->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_ArmorShoulder, pY_ArmorShoulder, (Texture *)v110); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][2])); else { - if ( item_Armor->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_ArmorShoulder, pY_ArmorShoulder, (Texture *)v110); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][2])); else - pRenderer->DrawTransparentGreenShade(pX_ArmorShoulder, pY_ArmorShoulder, (Texture *)v110); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][2])); } } else { - if ( (item_Armor->uAttributes & 0xF0) == 16 ) - v178 = "sptext01"; - if ( (item_Armor->uAttributes & 0xF0) == 32 ) - v178 = "sp28a"; - if ( (item_Armor->uAttributes & 0xF0) == 64 ) - v178 = "sp30a"; - if ( (item_Armor->uAttributes & 0xF0) == 128 ) - v178 = "sp91a"; - v96 = (char *)pIcons_LOD->LoadTexturePtr(v178, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Armor->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v97 = (double)GetTickCount(); - pRenderer->_4A63E6(pX_ArmorShoulder, pY_ArmorShoulder, pIcons_LOD->GetTexture(v94), (Texture *)v96, (signed __int64)(v97 * 0.1), 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } } } + if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Armor, pY_Armor, (Texture *)v55, pArmorNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]], + pPlayers[uPlayerID]->pEquipment.uArmor); } } - pBootNum = pPlayers[uPlayerID]->pEquipment.uBoot;//далее обувь - if ( pBootNum ) + //----------------------------------(End of Armor/Конец Брони)------------------------------------------ + //----------------------------------(Boot/Обувь)-------------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uBoot ) { - item_Boot = &pPlayers[uPlayerID]->pInventoryItemList[pBootNum - 1]; - switch ( item_Boot->uItemID ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBoot - 1]; + switch ( item->uItemID ) { - case 529: - v60 = 5; + case ITEM_ARTIFACT_HERMES_SANDALS: + index = 5; v59 = papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace]; break; - case 512: - v60 = 6; + case ITEM_ARTIFACT_LEAGUE_BOOTS: + index = 6; v59 = paperdoll_boots_texture[pBodyComplection][5]; break; default: - v60 = item_Boot->uItemID - 115; - v59 = paperdoll_boots_texture[pBodyComplection][v60]; + index = item->uItemID - 115; + v59 = paperdoll_boots_texture[pBodyComplection][index]; break; } - if ( v60 >= 0 && v60 < 7 ) + if ( index >= 0 && index < 7 ) { - pX_Boot = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][v60][0]; - pY_Boot = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][v60][1]; - if ( !(item_Boot->uAttributes & 0xF0) ) + item_X = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][index][1]; + if ( !(item->uAttributes & 0xF0) ) { - v65 = v59 + 1; - v66 = (char *)pIcons_LOD->GetTexture(v59); - if ( item_Boot->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Boot, pY_Boot, (Texture *)v66); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); else { - if ( item_Boot->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_Boot, pY_Boot, (Texture *)v66); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v59)); else - pRenderer->DrawTransparentGreenShade(pX_Boot, pY_Boot, (Texture *)v66); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); } } else { - if ( (item_Boot->uAttributes & 0xF0) == 16 ) - v171 = "sptext01"; - if ( (item_Boot->uAttributes & 0xF0) == 32 ) - v171 = "sp28a"; - if ( (item_Boot->uAttributes & 0xF0) == 64 ) - v171 = "sp30a"; - if ( (item_Boot->uAttributes & 0xF0) == 128 ) - v171 = "sp91a"; - v63 = pIcons_LOD->LoadTexturePtr(v171, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Boot->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v64 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Boot, pY_Boot, pIcons_LOD->GetTexture(v59), v63, (signed __int64)v64, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v59), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Boot, pY_Boot, (Texture *)v66, pBootNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v59), pPlayers[uPlayerID]->pEquipment.uBoot); } } - pMainHandNum = pPlayers[uPlayerID]->pEquipment.uMainHand; - if ( !pMainHandNum || (v70 = *(int *)&pPlayers[uPlayerID]->pInventoryItemList[pMainHandNum -1], pItemsTable->pItems[v70].uEquipType != 1) - && (pItemsTable->pItems[v70].uSkillType != 4 || pPlayers[uPlayerID]->pEquipment.uShield) ) - pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], - pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); - pBeltNum = pPlayers[uPlayerID]->pEquipment.uBelt;// далее пояс - if ( pBeltNum ) - { - item_Belt = &pPlayers[uPlayerID]->pInventoryItemList[pBeltNum - 1]; - switch ( item_Belt->uItemID ) + //--------------------------------------------(Hand/Рука)------------------------------------------------------ + if ( !pPlayers[uPlayerID]->pEquipment.uMainHand + || ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand -1].uItemID].uEquipType != EQUIP_MAIN_HAND) + && (pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand -1].uItemID].uSkillType != PLAYER_SKILL_SPEAR + || pPlayers[uPlayerID]->pEquipment.uShield) ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], + pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); + //--------------------------------------------(Belt/Пояс)------------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uBelt ) + { + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBelt - 1]; + switch ( item->uItemID ) { case ITEM_RILIC_TITANS_BELT: - v73 = 5; + index = 5; break; case ITEM_ARTIFACT_HEROS_BELT: - v73 = 6; + index = 6; break; default: - v73 = item_Belt->uItemID - 100; + index = item->uItemID - 100; break; } - if ( v73 >= 0 && v73 < 7 ) + if ( index >= 0 && index < 7 ) { - pX_Belt = pPaperdoll_BodyX + paperdoll_Belt[pBodyComplection][v73][0]; - pY_Belt = pPaperdoll_BodyY + paperdoll_Belt[pBodyComplection][v73][1]; - if ( IsDwarf != 1 || v73 == 5 ) - v75 = paperdoll_belt_texture[pBodyComplection][v73]; + item_X = pPaperdoll_BodyX + paperdoll_Belt[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_Belt[pBodyComplection][index][1]; + if ( IsDwarf != 1 || index == 5 ) + v75 = paperdoll_belt_texture[pBodyComplection][index]; else - v75 = paperdoll_belt_texture[pBodyComplection - 2][v73]; - if ( !(item_Belt->uAttributes & 0xF0) ) + v75 = paperdoll_belt_texture[pBodyComplection - 2][index]; + if ( !(item->uAttributes & 0xF0) ) { - v79 = v75 + 1; - v80 = (char *)pIcons_LOD->GetTexture(v75); - if ( item_Belt->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Belt, pY_Belt, (Texture *)v80); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); else { - if ( item_Belt->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_Belt, pY_Belt, (Texture *)v80); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v75)); else - pRenderer->DrawTransparentGreenShade(pX_Belt, pY_Belt, (Texture *)v80); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Belt, pY_Belt, (Texture *)v80, pBeltNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v75), pPlayers[uPlayerID]->pEquipment.uBelt); } else { - if ( (item_Belt->uAttributes & 0xF0) == 16 ) - v172 = "sptext01"; - if ( (item_Belt->uAttributes & 0xF0) == 32 ) - v172 = "sp28a"; - if ( (item_Belt->uAttributes & 0xF0) == 64 ) - v172 = "sp30a"; - if ( (item_Belt->uAttributes & 0xF0) == 128 ) - v172 = "sp91a"; - v77 = pIcons_LOD->LoadTexturePtr(v172, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Belt->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v78 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Belt, pY_Belt, pIcons_LOD->GetTexture(v75), v77, (signed __int64)v78, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v75), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); } } } - pMainHandNum2 = pPlayers[uPlayerID]->pEquipment.uMainHand; - if ( pMainHandNum2 ) + //---------------------------------------------(Hand2/Рука2)-------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) { - v83 = pPlayers[uPlayerID]->pInventoryItemList[pMainHandNum2 - 1].uItemID; - if ( pItemsTable->pItems[v83].uEquipType == 1 - || pItemsTable->pItems[v83].uSkillType == PLAYER_SKILL_SPEAR && !pPlayers[uPlayerID]->pEquipment.uShield ) + if ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1].uItemID].uEquipType == EQUIP_MAIN_HAND + || pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1].uItemID].uSkillType == PLAYER_SKILL_SPEAR + && !pPlayers[uPlayerID]->pEquipment.uShield ) pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], - pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); + pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); } - pCloakCollarNum = pPlayers[uPlayerID]->pEquipment.uCloak;//далее воротник плаща - if ( pCloakCollarNum ) + //----------------------------------------------(Cloak collar/воротник плаща)------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uCloak ) { - item_CloakCollar = &pPlayers[uPlayerID]->pInventoryItemList[pCloakCollarNum - 1]; - switch ( item_CloakCollar->uItemID ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uCloak - 1]; + switch ( item->uItemID ) { - case 525: - v114 = 5; + case ITEM_RELIC_TWILIGHT: + index = 5; break; - case 530: - v114 = 6; + case ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP: + index = 6; break; - case 547: - v114 = 7; + case ITEM_RARE_SUN_CLOAK: + index = 7; break; - case 548: - v114 = 8; + case ITEM_RARE_MOON_CLOAK: + index = 8; break; - case 550: - v114 = 9; + case ITEM_RARE_VAMPIRES_CAPE: + index = 9; break; default: - v114 = item_CloakCollar->uItemID - 105; + index = item->uItemID - 105; } - if ( v114 >= 0 && v114 < 10 ) + if ( index >= 0 && index < 10 ) { - v116 = paperdoll_cloak_collar_texture[pBodyComplection][v114]; - pX_CloakCollar = pPaperdoll_BodyX + paperdoll_CloakCollar[pBodyComplection][v114][0]; - pY_CloakCollar = pPaperdoll_BodyY + paperdoll_CloakCollar[pBodyComplection][v114][1]; - if ( v116 != pIcons_LOD->FindTextureByName("pending") ) + item_X = pPaperdoll_BodyX + paperdoll_CloakCollar[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_CloakCollar[pBodyComplection][index][1]; + if ( paperdoll_cloak_collar_texture[pBodyComplection][index] != pIcons_LOD->FindTextureByName("pending") ) { - if ( !(item_CloakCollar->uAttributes & 0xF0) ) + if ( !(item->uAttributes & 0xF0) ) { - v119 = v116 + 1; - v120 = (char *)pIcons_LOD->GetTexture(v116); - if ( item_CloakCollar->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_CloakCollar, pY_CloakCollar, (Texture *)v120); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); else - pRenderer->DrawTextureTransparent(pX_CloakCollar, pY_CloakCollar, (Texture *)v120); + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_CloakCollar, pY_CloakCollar, (Texture *)v120, pCloakCollarNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), + pPlayers[uPlayerID]->pEquipment.uCloak); } else { - if ( (item_CloakCollar->uAttributes & 0xF0) == 16 ) - v179 = "sptext01"; - if ( (item_CloakCollar->uAttributes & 0xF0) == 32 ) - v179 = "sp28a"; - if ( (item_CloakCollar->uAttributes & 0xF0) == 64 ) - v179 = "sp30a"; - if ( (item_CloakCollar->uAttributes & 0xF0) == 128 ) - v179 = "sp91a"; - a2i = pIcons_LOD->LoadTexturePtr(v179, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_CloakCollar->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v118 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_CloakCollar, pY_CloakCollar, pIcons_LOD->GetTexture(v116), a2i, (signed __int64)v118, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } } } } + //--------------------------------------------(Beards/Борода)------------------------------------------------------- if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) { - v122 = papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace]; - if ( v122 != pIcons_LOD->FindTextureByName("Pending") ) + if ( papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] != pIcons_LOD->FindTextureByName("Pending") ) pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uCurrentFace - 24], pPaperdoll_BodyY + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uCurrentFace - 23], - pIcons_LOD->GetTexture(v122)); + pIcons_LOD->GetTexture(papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace])); } - pHelmNum = pPlayers[uPlayerID]->pEquipment.uHelm;//далее шлем - if ( pHelmNum ) + //--------------------------------------------(Helm/Шлем)------------------------------------------------------------ + if ( pPlayers[uPlayerID]->pEquipment.uHelm ) { - item_Helm = &pPlayers[uPlayerID]->pInventoryItemList[pHelmNum-1]; - switch ( item_Helm->uItemID ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uHelm - 1]; + switch ( item->uItemID ) { - case 521: - v125 = 11; + case ITEM_RELIC_TALEDONS_HELM: + index = 11; break; - case 522: - v125 = 12; + case ITEM_RELIC_SCHOLARS_CAP: + index = 12; break; - case 523: - v125 = 13; + case ITEM_RELIC_PHYNAXIAN_CROWN: + index = 13; break; - case 532: - v125 = 14; + case ITEM_ARTIFACT_MINDS_EYE: + index = 14; break; - case 544: - v125 = 15; + case ITEM_RARE_SHADOWS_MASK: + index = 15; break; default: - v125 = item_Helm->uItemID - 89; + index = item->uItemID - 89; } - if ( v125 >= 0 && v125 < 16 ) + if ( index >= 0 && index < 16 ) { - pX_Helm = pPaperdoll_BodyX + paperdoll_Helm[pBodyComplection][v125][0]; - pY_Helm = pPaperdoll_BodyY + paperdoll_Helm[pBodyComplection][v125][1]; - if ( IsDwarf != 1 || item_Helm->uItemID != 92 ) - v127 = paperdoll_helm_texture[player->GetSexByVoice()][v125]; + item_X = pPaperdoll_BodyX + paperdoll_Helm[pBodyComplection][index][0]; + item_Y = pPaperdoll_BodyY + paperdoll_Helm[pBodyComplection][index][1]; + if ( IsDwarf != 1 || item->uItemID != 92 ) + v127 = paperdoll_helm_texture[player->GetSexByVoice()][index]; else v127 = papredoll_dbrds[11]; - if ( item_Helm->uAttributes & 0xF0 ) + if ( item->uAttributes & 0xF0 ) { - if ( (item_Helm->uAttributes & 0xF0) == 16 ) - v180 = "sptext01"; - if ( (item_Helm->uAttributes & 0xF0) == 32 ) - v180 = "sp28a"; - if ( (item_Helm->uAttributes & 0xF0) == 64 ) - v180 = "sp30a"; - if ( (item_Helm->uAttributes & 0xF0) == 128 ) - v180 = "sp91a"; - v129 = pIcons_LOD->LoadTexturePtr(v180, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Helm->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v130 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Helm, pY_Helm, pIcons_LOD->GetTexture(v127), v129, (signed __int64)v130, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v127), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); } else { - v131 = v127 + 1; - v132 = (char *)pIcons_LOD->GetTexture(v127); - if ( item_Helm->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Helm, pY_Helm, (Texture *)v132); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); else { - if ( item_Helm->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_Helm, pY_Helm, (Texture *)v132); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v127)); else - pRenderer->DrawTransparentGreenShade(pX_Helm, pY_Helm, (Texture *)v132); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); } } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Helm, pY_Helm, (Texture *)v132, pHelmNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v127), pPlayers[uPlayerID]->pEquipment.uHelm); } } - pMainHandNum3 = pPlayers[uPlayerID]->pEquipment.uMainHand;//weapon in right hand - if ( pMainHandNum3 ) + //------------------------------------------------(Hand3/Рука3)------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) { - item_MainHand3 = &pPlayers[uPlayerID]->pInventoryItemList[pMainHandNum3 - 1]; - pX_MainHand3 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item_MainHand3->uItemID].uEquipX; - pY_MainHand3 = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item_MainHand3->uItemID].uEquipY; - if ( item_MainHand3->uItemID == 64 ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; + item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item->uItemID].uEquipX; + item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item->uItemID].uEquipY; + if ( item->uItemID == 64 ) v181 = "item64v1"; else - v181 = pItemsTable->pItems[item_MainHand3->uItemID].pIconName; - v138 = pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE); - if ( !(item_MainHand3->uAttributes & 0xF0) ) + v181 = pItemsTable->pItems[item->uItemID].pIconName; + if ( !(item->uAttributes & 0xF0) ) { - v142 = v138 + 1; - v143 = (char *)pIcons_LOD->GetTexture(v138); - if ( item_MainHand3->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_MainHand3, pY_MainHand3, (Texture *)v143); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); else { - if ( item_MainHand3->uAttributes & 1 ) - pRenderer->DrawTextureTransparent(pX_MainHand3, pY_MainHand3, (Texture *)v143); + if ( item->uAttributes & 1 ) + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); else - pRenderer->DrawTransparentGreenShade(pX_MainHand3, pY_MainHand3, (Texture *)v143); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); } } else { - if ( (item_MainHand3->uAttributes & 0xF0) == 16 ) - v182 = "sptext01"; - if ( (item_MainHand3->uAttributes & 0xF0) == 32 ) - v182 = "sp28a"; - if ( (item_MainHand3->uAttributes & 0xF0) == 64 ) - v182 = "sp30a"; - if ( (item_MainHand3->uAttributes & 0xF0) == 128 ) - v182 = "sp91a"; - v140 = pIcons_LOD->LoadTexturePtr(v182, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_MainHand3->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v141 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_MainHand3, pY_MainHand3, pIcons_LOD->GetTexture(v138), v140, (signed __int64)v141, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), + pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_MainHand3, pY_MainHand3, (Texture *)v143, pMainHandNum3); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), + pPlayers[uPlayerID]->pEquipment.uMainHand); } - pShieldNum = pPlayers[uPlayerID]->pEquipment.uShield;// далее щит - if ( pShieldNum ) + //--------------------------------------------------(Shield/Щит)--------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uShield ) { - item_Shield = &pPlayers[uPlayerID]->pInventoryItemList[pShieldNum - 1]; - v149 = pItemsTable->pItems[item_Shield->uItemID].uSkillType; - if ( v149 == 2 || v149 == 1 ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uShield - 1]; + if ( pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_DAGGER + || pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_SWORD ) { - v151 = item_Shield->uItemID - 400; - pX_Shield = 596; + //v151 = item->uItemID - 400; + item_X = 596; v245 = 1; - switch ( item_Shield->uItemID ) + switch ( item->uItemID ) { case 400: - pY_Shield = 86; + item_Y = 86; break; case 403: - pY_Shield = 28; + item_Y = 28; break; case 415: - pX_Shield = 595; - pY_Shield = 33; + item_X = 595; + item_Y = 33; break; default: - pX_Shield = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item_Shield->uItemID].uEquipX; - pY_Shield = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item_Shield->uItemID].uEquipY; + item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; + item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; break; } } else { v245 = 0; - pX_Shield = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item_Shield->uItemID].uEquipX; - pY_Shield = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item_Shield->uItemID].uEquipY; + item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; + item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; } - v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[item_Shield->uItemID].pIconName, TEXTURE_16BIT_PALETTE); - if ( !(item_Shield->uAttributes & 0xF0) ) + v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE); + if ( !(item->uAttributes & 0xF0) ) { - if ( item_Shield->uAttributes & 2 ) - pRenderer->DrawTransparentRedShade(pX_Shield, pY_Shield, pIcons_LOD->GetTexture(v153)); + if ( item->uAttributes & 2 ) + pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); else { - v160 = (char *)pIcons_LOD->GetTexture(v153); - if ( !(item_Shield->uAttributes & 1) ) - pRenderer->DrawTransparentGreenShade(pX_Shield, pY_Shield, (Texture *)v160); + //v160 = (char *)pIcons_LOD->GetTexture(v153); + if ( !(item->uAttributes & 1) ) + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); else - pRenderer->DrawTextureTransparent(pX_Shield, pY_Shield, (Texture *)v160); + pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v153)); } } else { - if ( (item_Shield->uAttributes & 0xF0) == 16 ) - v183 = "sptext01"; - if ( (item_Shield->uAttributes & 0xF0) == 32 ) - v183 = "sp28a"; - if ( (item_Shield->uAttributes & 0xF0) == 64 ) - v183 = "sp30a"; - if ( (item_Shield->uAttributes & 0xF0) == 128 ) - v183 = "sp91a"; - v157 = pIcons_LOD->LoadTexturePtr(v183, TEXTURE_16BIT_PALETTE); + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) + container = "sptext01"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) + container = "sp28a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) + container = "sp30a"; + if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) + container = "sp91a"; _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; if ( _50C9A8_item_enchantment_timer <= 0 ) { _50C9A8_item_enchantment_timer = 0; - item_Shield->uAttributes &= 0xFFFFFF0Fu; + item->uAttributes &= 0xFFFFFF0Fu; ptr_50C9A4 = 0; } - v158 = (double)GetTickCount() * 0.1; - pRenderer->_4A63E6(pX_Shield, pY_Shield, pIcons_LOD->GetTexture(v153), v157, (signed __int64)v158, 0, 255); + pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v153), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), + GetTickCount() * 0.1, 0, 255); if ( v245 ) pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhs[uPlayerID - 1])); } if ( !bRingsShownInCharScreen ) - pRenderer->DrawMaskToZBuffer(pX_Shield, pY_Shield, pIcons_LOD->GetTexture(v153), pShieldNum); + pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v153), pPlayers[uPlayerID]->pEquipment.uShield); } } + //--------------------------------------------------------(RightHand/Правая рука)-------------------------------------------------- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1])); - pMainHandNum5 = pPlayers[uPlayerID]->pEquipment.uMainHand; - if ( pMainHandNum5 ) + //--------------------------------------------------------(LeftHand/Левая рука)---------------------------------------------------- + if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) { - item_MainHand5 = &pPlayers[uPlayerID]->pInventoryItemList[pMainHandNum5 - 1]; - if ( pItemsTable->pItems[item_MainHand5->uItemID].uEquipType == 1 || - pItemsTable->pItems[item_MainHand5->uItemID].uSkillType == PLAYER_SKILL_SPEAR && - !pPlayers[uPlayerID]->pEquipment.uShield ) + item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; + if ( pItemsTable->pItems[item->uItemID].uEquipType == EQUIP_MAIN_HAND + || pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_SPEAR + && !pPlayers[uPlayerID]->pEquipment.uShield ) pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhus[uPlayerID - 1])); @@ -1711,12 +1500,6 @@ pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));//обрамление } - - - - - - //----- (0041A2D1) -------------------------------------------------------- void CharacterUI_InventoryTab_Draw(Player *player, bool a2) { @@ -1784,7 +1567,7 @@ ptr_50C9A4 = 0; } - pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, GetTickCount() * 0.1, 0, 255); + pRenderer->DrawAura(uCellX, uCellY, v7, pTexture, GetTickCount() * 0.1, 0, 255); ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, item_idx); } else @@ -1829,7 +1612,7 @@ item->uAttributes &= 0xFFFFFF0F; ptr_50C9A4 = 0; } - pRenderer->_4A63E6(x, y, item_texture, enchantment_texture, GetTickCount() * 0.1, 0, 255); + pRenderer->DrawAura(x, y, item_texture, enchantment_texture, GetTickCount() * 0.1, 0, 255); } else {
--- a/mm7_5.cpp Thu Aug 08 16:34:37 2013 +0600 +++ b/mm7_5.cpp Fri Aug 09 17:30:33 2013 +0600 @@ -2930,7 +2930,7 @@ case UIMSG_ClickAwardsBtn: sub_419379(); CharacterUI_ReleaseButtons(); - sub_419220(); + CreateAwardsScrollBar(); pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] = 102; GUIWindow::Create(pCharacterScreen_AwardsBtn->uX, pCharacterScreen_AwardsBtn->uY, 0, 0, WINDOW_CharactersPressedButton, (int)pCharacterScreen_AwardsBtn, 0); FillAwardsData();
--- a/mm7_data.h Thu Aug 08 16:34:37 2013 +0600 +++ b/mm7_data.h Fri Aug 09 17:30:33 2013 +0600 @@ -1118,7 +1118,7 @@ unsigned int __fastcall UI_GetHealthManaStringColor(signed int a1, signed int a2); signed int __thiscall GetConditionDrawColor(unsigned int uConditionIdx); // idb void FillAwardsData(); -void sub_419220(); +void CreateAwardsScrollBar(); void sub_419379(); unsigned int __fastcall GetSizeInInventorySlots(unsigned int uNumPixels); struct GUIButton *__fastcall GUI_HandleHotkey(unsigned __int8 uHotkey); // idb @@ -1135,7 +1135,7 @@ void __fastcall party_finds_gold(unsigned int uNumGold, int _1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal); // idb void OnChestLeftClick(); void __cdecl GameUI_WritePointedObjectStatusString(); -//struct GUIWindow *__thiscall sub_4219BE(void *a4); +//struct GUIWindow *__thiscall GetCastSpellInInventoryWindow(void *a4); bool __cdecl sub_421B2C_PlaceInInventory_or_DropPickedItem(); void __fastcall GameUI_OnPlayerPortraitLeftClick(unsigned int uPlayerID); // idb void OnInventoryLeftClick();