Mercurial > mm7
diff UICharacter.cpp @ 706:d6236f6a9882
Rough function rearranging to new files
author | Gloval |
---|---|
date | Tue, 19 Mar 2013 21:53:21 +0400 |
parents | d5b16a44d9b3 |
children | 735dab8d3c9a |
line wrap: on
line diff
--- a/UICharacter.cpp Mon Mar 18 21:50:20 2013 +0000 +++ b/UICharacter.cpp Tue Mar 19 21:53:21 2013 +0400 @@ -0,0 +1,4264 @@ +#include <assert.h> + +#include "MM7.h" + +#include "MapInfo.h" +#include "Game.h" +#include "GUIWindow.h" +#include "GUIFont.h" +#include "GUIButton.h" +#include "GUIProgressBar.h" +#include "Party.h" +#include "AudioPlayer.h" +#include "Outdoor.h" +#include "IndoorCamera.h" +#include "Overlays.h" +#include "Monsters.h" +#include "Arcomage.h" +#include "LOD.h" +#include "Actor.h" +#include "Allocator.h" +#include "Events.h" +#include "Viewport.h" +#include "FrameTableInc.h" +#include "Math.h" +#include "SpriteObject.h" +#include "ObjectList.h" +#include "Chest.h" +#include "PaletteManager.h" +#include "DecorationList.h" +#include "SaveLoad.h" +#include "stru123.h" +#include "Time.h" +#include "IconFrameTable.h" +#include "Awards.h" +#include "Autonotes.h" +#include "stru160.h" +#include "stru279.h" +#include "TurnEngine.h" +#include "stru277.h" +#include "Weather.h" +#include "stru272.h" +#include "stru298.h" +#include "StorylineTextTable.h" +#include "Events2D.h" +#include "texts.h" +#include "stru351.h" + +#include "mm7_data.h" + + + + + +//----- (00419719) -------------------------------------------------------- +char __fastcall CharacterUI_SkillsTab_Draw(unsigned int uPlayerID) + { + unsigned int v1; // esi@1 + Player *pPlayer; // ebp@1 + unsigned int v3; // eax@1 + signed int v4; // ecx@1 + int v5; // edi@3 + GUIWindow *v6; // ecx@3 + int v7; // eax@4 + GUIButton *v8; // edx@5 + int v9; // eax@7 + unsigned int v10; // ecx@9 + unsigned __int16 v11; // ax@9 + int v12; // eax@9 + unsigned __int8 v13; // cf@12 + unsigned __int8 v14; // zf@12 + unsigned int v15; // eax@12 + char *v16; // ecx@22 + GUIWindow *v17; // ecx@33 + int v18; // edx@34 + GUIButton *v19; // eax@35 + int v20; // edx@37 + unsigned __int16 v21; // cx@39 + unsigned int v22; // eax@39 + int v23; // edi@39 + unsigned int v24; // eax@42 + char v25; // sf@52 + char *v26; // ecx@52 + int v27; // edi@63 + GUIWindow *v28; // ecx@63 + int v29; // edx@64 + GUIButton *v30; // eax@65 + int v31; // edx@67 + unsigned int v32; // ecx@69 + int v33; // eax@69 + unsigned int v34; // eax@72 + char *v35; // ecx@82 + GUIWindow *v36; // ecx@93 + int v37; // edx@94 + GUIButton *v38; // eax@94 + int v39; // edx@97 + unsigned __int16 v40; // cx@99 + unsigned int v41; // eax@99 + int v42; // edi@99 + unsigned int v43; // eax@102 + char *v44; // ecx@112 + char *v46; // [sp-Ch] [bp-4Ch]@19 + char *v47; // [sp-Ch] [bp-4Ch]@49 + char *v48; // [sp-Ch] [bp-4Ch]@79 + char *v49; // [sp-Ch] [bp-4Ch]@109 + unsigned int v50; // [sp-8h] [bp-48h]@19 + unsigned int v51; // [sp-8h] [bp-48h]@49 + unsigned int v52; // [sp-8h] [bp-48h]@79 + unsigned int v53; // [sp-8h] [bp-48h]@109 + int v54; // [sp-4h] [bp-44h]@19 + int v55; // [sp-4h] [bp-44h]@49 + int v56; // [sp-4h] [bp-44h]@79 + int v57; // [sp-4h] [bp-44h]@109 + unsigned int v58; // [sp+10h] [bp-30h]@9 + unsigned int v59; // [sp+10h] [bp-30h]@39 + unsigned int v60; // [sp+10h] [bp-30h]@69 + unsigned int v61; // [sp+10h] [bp-30h]@99 + int v62; // [sp+14h] [bp-2Ch]@4 + int v63; // [sp+14h] [bp-2Ch]@34 + int v64; // [sp+14h] [bp-2Ch]@64 + int v65; // [sp+14h] [bp-2Ch]@94 + signed int i; // [sp+18h] [bp-28h]@4 + signed int v67; // [sp+18h] [bp-28h]@34 + signed int v68; // [sp+18h] [bp-28h]@64 + signed int v69; // [sp+18h] [bp-28h]@94 + int v70; // [sp+1Ch] [bp-24h]@3 + int v71; // [sp+1Ch] [bp-24h]@33 + int v72; // [sp+1Ch] [bp-24h]@63 + int v73; // [sp+1Ch] [bp-24h]@93 + int uY; // [sp+20h] [bp-20h]@9 + int uYa; // [sp+20h] [bp-20h]@33 + int uYb; // [sp+20h] [bp-20h]@69 + int uYc; // [sp+20h] [bp-20h]@93 + unsigned int a5; // [sp+24h] [bp-1Ch]@1 + unsigned int v79; // [sp+28h] [bp-18h]@1 + int *v80; // [sp+2Ch] [bp-14h]@3 + int *v81; // [sp+2Ch] [bp-14h]@33 + int *v82; // [sp+2Ch] [bp-14h]@63 + int *v83; // [sp+2Ch] [bp-14h]@93 + unsigned int v84; // [sp+30h] [bp-10h]@1 + int v85; // [sp+34h] [bp-Ch]@1 + unsigned int v86; // [sp+38h] [bp-8h]@1 + unsigned __int16 v87; // [sp+3Ch] [bp-4h]@9 + char *v88; // [sp+3Ch] [bp-4h]@24 + char *v89; // [sp+3Ch] [bp-4h]@54 + unsigned __int16 v90; // [sp+3Ch] [bp-4h]@69 + char *v91; // [sp+3Ch] [bp-4h]@84 + char *v92; // [sp+3Ch] [bp-4h]@114 + + v1 = uPlayerID; + a5 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v84 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xAFu, 0xFFu); + v85 = pGUIWindow_CurrentMenu->pCurrentPosActiveItem; + v86 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0); + v79 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0); + pPlayer = &pParty->pPlayers[v1-1]; + v3 = pIcons_LOD->LoadTexture("fr_skill", TEXTURE_16BIT_PALETTE); + pRenderer->DrawTextureIndexed(8u, 8u, (Texture *)(v3 != -1 ? (int)&pIcons_LOD->pTextures[v3] : 0)); + v4 = v79; + if ( !pPlayer->uSkillPoints ) + v4 = 65535; + sprintf( + pTmpBuf, + "%s \f%05d%s\f00000\r177%s: \f%05d%d\f00000", + pGlobalTXT_LocalizationStrings[206], // Skills for + a5, + pPlayer->pName, + pGlobalTXT_LocalizationStrings[207], // Skill Points + v4, + pPlayer->uSkillPoints); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf, 0, 0, 0); + v5 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13;// Weapons, Level + sprintf(pTmpBuf, "%s\r400%s", pGlobalTXT_LocalizationStrings[242], pGlobalTXT_LocalizationStrings[131]); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, v5, a5, pTmpBuf, 0, 0, 0); + v6 = pGUIWindow_CurrentMenu; + v70 = 0; + v80 = pWeaponSkills; + do + { + v62 = *v80; + v7 = 0; + for ( i = 0; i < (signed int)v6->uNumControls; v7 = i++ + 1 ) + { + v8 = v6->pControlsHead; + if ( v7 > 0 ) + { + do + { + v8 = v8->pNext; + --v7; + } + while ( v7 ); + } + v9 = v8->field_1C; + if ( SBYTE1(v9) >= 0 ) + continue; + BYTE1(v9) &= 0x7Fu; + if ( v9 != v62 ) + continue; + v5 = v8->uY; + v10 = pPlayer->uSkillPoints; + ++v70; + v11 = pPlayer->pActiveSkills[v62]; + v87 = pPlayer->pActiveSkills[v62]; + v12 = v11 & 0x3F; + v58 = 0; + uY = v12; + if ( v10 >= v12 + 1 ) + v58 = v84; + if ( v85 == i ) + { + v13 = v10 < v12; + v14 = v10 == v12; + v15 = v86; + if ( !(v13 | v14) ) + v15 = v79; + v58 = v15; + } + else + { + v15 = v58; + } + if ( HIBYTE(v87) & 1 ) + { + if ( !v15 ) + v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v54 = uY; + v50 = v58; + v46 = pGlobalTXT_LocalizationStrings[96]; + } + else + { + if ( !(v87 & 0xC0) ) + { + sprintf(pTmpBuf, "%s\r400%2d", pSkillNames[v62], uY); + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, v5, v58, pTmpBuf, 0, 0, 0); + v6 = pGUIWindow_CurrentMenu; + continue; + } + v16 = pGlobalTXT_LocalizationStrings[432]; + if ( (v87 & 0x80u) == 0 ) + v16 = pGlobalTXT_LocalizationStrings[433]; + v88 = v16; + if ( !v15 ) + v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v54 = uY; + v50 = v58; + v46 = v88; + } + sprintf(pTmpBuf, "%s ", pSkillNames[v62], v15, v46, v50, v54); + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, v5, v58, pTmpBuf, 0, 0, 0); + v6 = pGUIWindow_CurrentMenu; + } + ++v80; + } + while ( v80 <= &pWeaponSkills[8]); + if ( !v70 ) + { + v5 = v5 + LOBYTE(pFontLucida->uFontHeight) - 3; + v6->DrawText(pFontLucida, 24, v5, 0, pGlobalTXT_LocalizationStrings[153], 0, 0, 0); + } + uYa = v5 + 2 * LOBYTE(pFontLucida->uFontHeight) - 10; + sprintf(pTmpBuf, "%s\r400%s", pGlobalTXT_LocalizationStrings[138], pGlobalTXT_LocalizationStrings[131]); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, uYa, a5, pTmpBuf, 0, 0, 0); + v17 = pGUIWindow_CurrentMenu; + v71 = 0; + v81 = pMagicSkills; + do + { + v18 = 0; + v67 = 0; + v63 = *v81; + while ( v67 < (signed int)v17->uNumControls ) + { + v19 = v17->pControlsHead; + if ( v18 > 0 ) + { + do + { + v19 = v19->pNext; + --v18; + } + while ( v18 ); + } + v20 = v19->field_1C; + if ( SBYTE1(v20) >= 0 || (BYTE1(v20) &= 0x7Fu, v20 != v63) ) + { + v18 = v67++ + 1; + continue; + } + ++v71; + uYa = v19->uY; + v21 = pPlayer->pActiveSkills[v63]; + v22 = pPlayer->uSkillPoints; + v23 = pPlayer->pActiveSkills[v63] & 0x3F; + v59 = 0; + if ( v22 >= v23 + 1 ) + v59 = v84; + if ( v85 == v67 ) + { + v13 = v22 < v23; + v14 = v22 == v23; + v24 = v86; + if ( !(v13 | v14) ) + v24 = v79; + v59 = v24; + } + else + { + v24 = v59; + } + if ( HIBYTE(v21) & 1 ) + { + if ( !v24 ) + v24 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v55 = v23; + v51 = v59; + v47 = pGlobalTXT_LocalizationStrings[96]; + } + else + { + if ( !(v21 & 0xC0) ) + { + sprintf(pTmpBuf, "%s\r400%2d", pSkillNames[v63], v23); + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, uYa, v59, pTmpBuf, 0, 0, 0); + v17 = pGUIWindow_CurrentMenu; + v18 = v67++ + 1; + continue; + } + v25 = (v21 & 0x80u) != 0; + v26 = pGlobalTXT_LocalizationStrings[432]; + if ( !v25 ) + v26 = pGlobalTXT_LocalizationStrings[433]; + v89 = v26; + if ( !v24 ) + v24 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v55 = v23; + v51 = v59; + v47 = v89; + } + sprintf(pTmpBuf, "%s ", pSkillNames[v63], v24, v47, v51, v55); + //LABEL_58: + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 24, uYa, v59, pTmpBuf, 0, 0, 0); + v17 = pGUIWindow_CurrentMenu; + //LABEL_59: + v18 = v67++ + 1; + } + ++v81; + } + while ( v81 <= &pMagicSkills[8]); + if ( !v71 ) + v17->DrawText( + pFontLucida, + 24, + LOBYTE(pFontLucida->uFontHeight) + uYa - 3, + 0, + pGlobalTXT_LocalizationStrings[153], + 0, + 0, + 0); + v27 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; + sprintf(pTmpBuf, "%s\r177%s", pGlobalTXT_LocalizationStrings[11], pGlobalTXT_LocalizationStrings[131]); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 248, v27, a5, pTmpBuf, 0, 0, 0); + v28 = pGUIWindow_CurrentMenu; + v72 = 0; + v82 = pArmorSkills; + do + { + v29 = 0; + v68 = 0; + v64 = *v82; + while ( v68 < (signed int)v28->uNumControls ) + { + v30 = v28->pControlsHead; + if ( v29 > 0 ) + { + do + { + v30 = v30->pNext; + --v29; + } + while ( v29 ); + } + v31 = v30->field_1C; + if ( SBYTE1(v31) >= 0 || (BYTE1(v31) &= 0x7Fu, v31 != v64) ) + { + v29 = v68++ + 1; + continue; + } + v27 = v30->uY; + ++v72; + v60 = 0; + v90 = pPlayer->pActiveSkills[v64]; + v32 = pPlayer->uSkillPoints; + v33 = pPlayer->pActiveSkills[v64] & 0x3F; + uYb = v33; + if ( v32 >= v33 + 1 ) + v60 = v84; + if ( v85 == v68 ) + { + v13 = v32 < v33; + v14 = v32 == v33; + v34 = v86; + if ( !(v13 | v14) ) + v34 = v79; + v60 = v34; + } + else + { + v34 = v60; + } + if ( (pPlayer->pActiveSkills[v64] >> 8) & 1 ) + { + if ( !v34 ) + v34 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v56 = uYb; + v52 = v60; + v48 = pGlobalTXT_LocalizationStrings[96]; + } + else + { + if ( !(v90 & 0xC0) ) + { + sprintf(pTmpBuf, "%s\r177%2d", pSkillNames[v64], uYb); + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, v27, v60, pTmpBuf, 0, 0, 0); + v28 = pGUIWindow_CurrentMenu; + v29 = v68++ + 1; + continue; + } + v35 = pGlobalTXT_LocalizationStrings[432]; + if ( (v90 & 0x80u) == 0 ) + v35 = pGlobalTXT_LocalizationStrings[433]; + v91 = v35; + if ( !v34 ) + v34 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v56 = uYb; + v52 = v60; + v48 = v91; + } + sprintf(pTmpBuf, "%s ", pSkillNames[v64], v34, v48, v52, v56); + //LABEL_88: + pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, v27, v60, pTmpBuf, 0, 0, 0); + v28 = pGUIWindow_CurrentMenu; + //LABEL_89: + v29 = v68++ + 1; + } + ++v82; + } + while ( v82 <= &pArmorSkills[4]); + if ( !v72 ) + { + v27 = v27 + LOBYTE(pFontLucida->uFontHeight) - 3; + v28->DrawText(pFontLucida, 248, v27, 0, pGlobalTXT_LocalizationStrings[153], 0, 0, 0); + } + uYc = v27 + 2 * LOBYTE(pFontLucida->uFontHeight) - 10; + sprintf(pTmpBuf, "%s\r177%s", pGlobalTXT_LocalizationStrings[143], pGlobalTXT_LocalizationStrings[131]); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 248, uYc, a5, pTmpBuf, 0, 0, 0); + v36 = pGUIWindow_CurrentMenu; + v73 = 0; + v83 = pMiscSkills; + do + { + v37 = 0; + v69 = 0; + v38 = (GUIButton *)*v83; + v65 = *v83; + while ( v69 < (signed int)v36->uNumControls ) + { + v38 = v36->pControlsHead; + if ( v37 > 0 ) + { + do + { + v38 = v38->pNext; + --v37; + } + while ( v37 ); + } + v39 = v38->field_1C; + if ( SBYTE1(v39) >= 0 || (BYTE1(v39) &= 0x7Fu, v39 != v65) ) + { + //goto LABEL_119; + v37 = v69++ + 1; + continue; + } + ++v73; + uYc = v38->uY; + v40 = pPlayer->pActiveSkills[v65]; + v41 = pPlayer->uSkillPoints; + v42 = pPlayer->pActiveSkills[v65] & 0x3F; + v61 = 0; + if ( v41 >= v42 + 1 ) + v61 = v84; + if ( v85 == v69 ) + { + v13 = v41 < v42; + v14 = v41 == v42; + v43 = v86; + if ( !(v13 | v14) ) + v43 = v79; + v61 = v43; + } + else + { + v43 = v61; + } + if ( HIBYTE(v40) & 1 ) + { + if ( !v43 ) + v43 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v57 = v42; + v53 = v61; + v49 = pGlobalTXT_LocalizationStrings[96]; + } + else + { + if ( !(v40 & 0xC0) ) + { + sprintf(pTmpBuf, "%s\r177%2d", pSkillNames[v65], v42); + LOBYTE(v38) = pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, uYc, v61, pTmpBuf, 0, 0, 0); + v36 = pGUIWindow_CurrentMenu; + v37 = v69++ + 1; + continue; + } + v25 = (v40 & 0x80u) != 0; + v44 = pGlobalTXT_LocalizationStrings[432]; + if ( !v25 ) + v44 = pGlobalTXT_LocalizationStrings[433]; + v92 = v44; + if ( !v43 ) + v43 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + v57 = v42; + v53 = v61; + v49 = v92; + } + sprintf(pTmpBuf, "%s ", pSkillNames[v65], v43, v49, v53, v57); + LOBYTE(v38) = pGUIWindow_CurrentMenu->DrawText(pFontLucida, 248, uYc, v61, pTmpBuf, 0, 0, 0); + v36 = pGUIWindow_CurrentMenu; + v37 = v69++ + 1; + } + ++v83; + } + while ( v83 <= &pMiscSkills[11]); + if ( !v73 ) + LOBYTE(v38) = v36->DrawText( + pFontLucida, + 248, + LOBYTE(pFontLucida->uFontHeight) + uYc - 3, + 0, + pGlobalTXT_LocalizationStrings[153], + 0, + 0, + 0); + return (char)v38; + } + +//----- (0041A000) -------------------------------------------------------- +void CharacterUI_AwardsTab_Draw( unsigned int uPlayerID ) + { + //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 + + auto player = &pParty->pPlayers[uPlayerID - 1]; + //v1 = uPlayerID; + v2 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + award_texture_id = pIcons_LOD->LoadTexture("fr_award", TEXTURE_16BIT_PALETTE); + pRenderer->DrawTextureIndexed(8u, 8u, (Texture *)(award_texture_id != -1 ? &pIcons_LOD->pTextures[award_texture_id] : 0)); + sprintfex(pTmpBuf, "%s \f%05d", pGlobalTXT_LocalizationStrings[LOCSTR_AVARDS_FOR], v2); + sprintfex(Source, pGlobalTXT_LocalizationStrings[LOCSTR_S_THE_S], player->pName, pClassNames[player->classType]); + strcat(pTmpBuf, Source); + strcat(pTmpBuf, "\f00000"); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf, 0, 0, 0); + result = dword_506528; + a1.uFrameX = 12; + a1.uFrameY = 48; + a1.uFrameWidth = 424; + a1.uFrameHeight = 290; + a1.uFrameZ = 435; + a1.uFrameW = 337; + if ( dword_506544 && awards_count + dword_506528 < awards_count2 ) + result = dword_506528++ + 1; + if ( dword_506548 && result ) + { + --result; + dword_506528 = result; + } + if ( dword_50651C < 0 ) + { + result += awards_count; + dword_506528 = result; + if ( (signed int)(awards_count + result) > awards_count2 ) + { + result = awards_count2 - awards_count; + dword_506528 = result; + } + } + else if ( dword_50651C > 0 ) + { + result -= awards_count; + dword_506528 = result; + if ( (result & 0x80000000u) != 0 ) + { + result = 0; + dword_506528 = result; + } + } + //LABEL_14: + dword_506544 = 0; + dword_506548 = 0; + awards_count = 0; + dword_50651C = 0; + v21 = result; + if ( (signed int)result < awards_count2 ) + { + while ( 1 ) + { + v5 = achievedAwardsIndex[v21]; + v20 = achievedAwardsIndex[v21]; + v6 = (char *)pAwards[v20].pText;//(char *)dword_723E80_award_related[v20 / 4]; + if ( v5 != 1 ) + { + if (!( (v5 < 85 || v5 > 91) && (v5 < 103 || v5 > 104) )) + { + if ( v5 > 89 ) + { + if ( v5 == 90 ) + { + v10 = (unsigned __int8)pParty->uNumArenaKnightWins; + v22 = v10; + } + else if ( v5 == 91 ) + { + v10 = (unsigned __int8)pParty->uNumArenaLordWins; + v22 = v10; + } + else if ( v5 == 103 ) + { + v10 = pParty->field_874; + v22 = v10; + } + else if ( v5 == 104 ) + { + v10 = pParty->field_878; + v22 = v10; + } + } + else + { + if ( v5 == 89 ) + { + v10 = (unsigned __int8)pParty->uNumArenaSquireWins; + v22 = v10; + } + else if ( v5 == 85 ) + { + v10 = pParty->uNumDeaths; + v22 = v10; + } + else if ( v5 == 86 ) + { + v10 = pParty->uNumBountiesCollected; + v22 = v10; + } + else if ( v5 == 87 ) + { + v10 = pParty->uNumPrisonTerms; + v22 = v10; + } + else if ( v5 == 88) + { + v10 = (unsigned __int8)pParty->uNumArenaPageWins; + v22 = v10; + } + } + v17 = v22; + sprintf(pTmpBuf, v6, v17); + v6 = pTmpBuf; + } + } + else + { + v17 = pParty->uFine; + sprintf(pTmpBuf, v6, v17); + v6 = pTmpBuf; + } + v14 = pAwards[v20].uSort;//dword_723E84[v20 / 4]; + ++awards_count; + v15 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat( + pAwardsTextColors[3 * v14 % 6], + pAwardsTextColors[3 * v14 % 6 + 1], + pAwardsTextColors[3 * v14 % 6 + 2]); + a1.DrawText(pFontArrus, 0, 0, v15, v6, 0, 0, 0); + v16 = pFontArrus->CalcTextHeight(v6, &a1, 0, 0); + result = v16 + a1.uFrameY + 4; + if ( (signed int)result <= (signed int)a1.uFrameHeight ) + { + ++v21; + a1.uFrameY = result; + result = v21; + if ( v21 < awards_count2 ) + continue; + } + return; + } + + } + return; + } + + + + + + + //----- (0041A2C1) -------------------------------------------------------- + unsigned int __fastcall GetSizeInInventorySlots(unsigned int uNumPixels) + { + if ( (signed int)uNumPixels < 14 ) + uNumPixels = 14; + return ((signed int)(uNumPixels - 14) >> 5) + 1; + } + + //----- (0041A2D1) -------------------------------------------------------- + void __fastcall CharacterUI_InventoryTab_Draw(unsigned int uPlayerID, char a2) + { + Player *pPlayer; // esi@1 + char v3; // bl@1 + unsigned int v4; // eax@2 + ItemGen *pItem; // ebx@5 + unsigned int v6; // eax@6 + Texture *v7; // esi@6 + __int16 v8; // ax@6 + signed int v9; // edi@6 + signed int v10; // ecx@6 + signed int v11; // edx@6 + signed int v12; // eax@11 + int v13; // eax@13 + signed int v14; // edx@13 + int v15; // eax@13 + unsigned int v16; // ebx@15 + unsigned int v17; // edi@15 + Texture *pTexture; // ebx@24 + double v19; // st7@26 + const char *v20; // [sp-8h] [bp-40h]@20 + Player *pPlayer2; // [sp+14h] [bp-24h]@1 + int uTextureId; // [sp+18h] [bp-20h]@6 + int *v23; // [sp+1Ch] [bp-1Ch]@1 + int v24; // [sp+20h] [bp-18h]@5 + ItemGen *pItem2; // [sp+24h] [bp-14h]@5 + int v26; // [sp+28h] [bp-10h]@3 + unsigned int uCellID; // [sp+2Ch] [bp-Ch]@3 + unsigned int uCellX; // [sp+30h] [bp-8h]@5 + unsigned int uCellY; // [sp+34h] [bp-4h]@5 + + v23 = pRenderer->pActiveZBuffer; + pPlayer = pPlayers[uPlayerID]; + v3 = a2; + pPlayer2 = pPlayers[uPlayerID]; + pRenderer->DrawTextureIndexed(8, 8, (Texture *)(uTextureID_507958 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507958] : 0)); + if ( v3 ) + { + v4 = pIcons_LOD->LoadTexture("fr_strip", TEXTURE_16BIT_PALETTE); + pRenderer->DrawTextureIndexed(8u, 0x131u, (Texture *)(v4 != -1 ? (int)&pIcons_LOD->pTextures[v4] : 0)); + } + uCellID = 0; + v26 = (int)pPlayer->pInventoryIndices; + do + { + if ( *(int *)v26 > 0 ) + { + v24 = *(int *)v26 - 1; + uCellY = 32 * (uCellID / 14) + 17; + pItem = &pPlayer->pInventoryItems[v24]; + uCellX = 32 * (uCellID % 14) + 14; + pItem2 = pItem; + if ( pItem->uItemID ) + { + v6 = pIcons_LOD->LoadTexture(pItemsTable->pItems[pItem->uItemID].pIconName, TEXTURE_16BIT_PALETTE); + uTextureId = v6; + v7 = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0); + v8 = (v6 != -1 ? pIcons_LOD->pTextures[v6].uTextureWidth : 24); + v9 = v7->uTextureHeight; + v10 = v7->uTextureWidth; + v11 = v7->uTextureWidth; + if ( v10 < 14 ) + v11 = 14; + if ( (v11 - 14) >> 5 == 0 && v8 < 32 ) + uCellX += (32 - v10) / 2; + v12 = v7->uTextureWidth; + if ( v10 < 14 ) + v12 = 14; + v13 = v12 - 14; + v14 = v7->uTextureHeight; + LOBYTE(v13) = v13 & 0xE0; + v15 = v13 + 32; + if ( v9 < 14 ) + v14 = 14; + v16 = pItem->uAttributes; + v17 = uCellX + ((v15 - v10) >> 1) + pSRZBufferLineOffsets[uCellY + ((((v14 - 14) & 0xFFFFFFE0) - v9 + 32) >> 1)]; + if ( !(v16 & 0xF0) ) + { + if (pItem->Identified() || pCurrentScreen != SCREEN_HOUSE ) + { + if (pItem->Broken()) + pRenderer->DrawTransparentRedShade(uCellX, uCellY, v7); + else + pRenderer->DrawTextureTransparent(uCellX, uCellY, v7); + } + else + { + pRenderer->DrawTransparentGreenShade(uCellX, uCellY, v7); + } + ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1); + pPlayer = pPlayer2; + //goto LABEL_34; + ++uCellID; + v26 += 4; + continue; + } + if ( (unsigned __int8)(v16 & 0xF0) != 16 ) + { + if ( (unsigned __int8)(v16 & 0xF0) == 32 ) + { + v20 = "sp28a"; + pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + LOBYTE(pItem2->uAttributes) &= 0xFu; + ptr_50C9A4 = 0; + } + v19 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255); + ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1); + pPlayer = pPlayer2; + //goto LABEL_34; + ++uCellID; + v26 += 4; + continue; + } + if ( (unsigned __int8)(v16 & 0xF0) == 64 ) + { + v20 = "sp30a"; + pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + LOBYTE(pItem2->uAttributes) &= 0xFu; + ptr_50C9A4 = 0; + } + v19 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255); + ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1); + pPlayer = pPlayer2; + //goto LABEL_34; + ++uCellID; + v26 += 4; + continue; + } + if ( (unsigned __int8)(v16 & 0xF0) == 128 ) + { + v20 = "sp91a"; + pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + LOBYTE(pItem2->uAttributes) &= 0xFu; + ptr_50C9A4 = 0; + } + v19 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255); + ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1); + pPlayer = pPlayer2; + //goto LABEL_34; + ++uCellID; + v26 += 4; + continue; + } + } + v20 = "sptext01"; + pTexture = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v20, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + LOBYTE(pItem2->uAttributes) &= 0xFu; + ptr_50C9A4 = 0; + } + v19 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(uCellX, uCellY, v7, pTexture, (signed __int64)v19, 0, 255); + ZBuffer_Fill(&v23[v17], uTextureId, v24 + 1); + pPlayer = pPlayer2; + } + } + //LABEL_34: + ++uCellID; + v26 += 4; + } + while ( uCellID < 126 ); + } + + //----- (0041A556) -------------------------------------------------------- + void __cdecl draw_leather() + { + pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->GetTexture(uTextureID_Leather)); + } + + //----- (0041A57E) -------------------------------------------------------- + void QuickRefDraw() + { + unsigned int v0; // ebx@1 + //unsigned int v1; // eax@1 + Player *pPlayer; // ebp@2 + int v3; // eax@6 + int v4; // edi@6 + unsigned int v5; // eax@7 + unsigned int v6; // edi@9 + unsigned int v7; // edi@11 + signed int v8; // eax@13 + unsigned int v9; // eax@13 + unsigned int v10; // edi@13 + int v11; // eax@15 + unsigned int v12; // eax@15 + unsigned int v13; // edi@15 + int v14; // eax@17 + int v15; // ST18_4@17 + int v16; // ebx@17 + int v17; // eax@17 + unsigned int v18; // eax@17 + unsigned int v19; // edi@17 + int v20; // eax@19 + unsigned int v21; // edi@19 + char *v22; // eax@21 + unsigned int v23; // edi@21 + int v24; // eax@23 + unsigned int v25; // edi@23 + char *v26; // eax@25 + unsigned int v27; // edi@25 + int v28; // ecx@27 + char *v29; // eax@27 + signed int v30; // edx@27 + unsigned int v31; // edi@31 + unsigned int v32; // edi@33 + const char *v33; // ST10_4@35 + unsigned int v34; // eax@35 + unsigned int v35; // edi@35 + unsigned __int8 v36; // al@37 + char *v37; // eax@38 + int v38; // eax@41 + signed int v39; // edi@42 + char *v40; // eax@45 + unsigned int v41; // eax@45 + signed int v43; // [sp+10h] [bp-1Ch]@1 + unsigned int v44; // [sp+14h] [bp-18h]@2 + int v45; // [sp+18h] [bp-14h]@1 + unsigned int v46; // [sp+1Ch] [bp-10h]@1 + unsigned int v47; // [sp+20h] [bp-Ch]@1 + unsigned int v48; // [sp+24h] [bp-8h]@33 + //unsigned int v49; // [sp+28h] [bp-4h]@1 + + v0 = 0; + v47 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + //v49 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0, 0); + v46 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0); + //v1 = pIcons_LOD->LoadTexture("quikref", TEXTURE_16BIT_PALETTE); + pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("quikref", TEXTURE_16BIT_PALETTE)); + v43 = 0; + v45 = LOBYTE(pFontArrus->uFontHeight) + 1; + do + { + pPlayer = &pParty->pPlayers[v43]; + v44 = 94 * v43 + 89; + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x12u, v0, pGlobalTXT_LocalizationStrings[149], 60, v0);//Name + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 94 * v43 + 89, 0x12u, v47, pPlayer->pName, 84, v0); + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, 0x2Fu, v0, pGlobalTXT_LocalizationStrings[131], 60, v0); //Óðîâ. + v3 = pPlayer->GetActualLevel(); + sprintf(pTmpBuf, "%lu", v3); + v4 = pPlayer->GetBaseLevel(); + if ( pPlayer->GetActualLevel() <= v4 ) + v5 = pPlayer->GetExperienceDisplayColor(); + else + v5 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, v0); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, 0x2Fu, v5, pTmpBuf, 84, v0); + v6 = v45 + 47; + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v45 + 47, v0, pGlobalTXT_LocalizationStrings[41], 60, v0);//Êëàññ + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v6, v0, pClassNames[pPlayer->classType], 84, v0); + v7 = v45 + v6; + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v7, v0, pGlobalTXT_LocalizationStrings[107], 60, v0);//Çäîð. + sprintf(pTmpBuf, "%d", pPlayer->sHealth); + v8 = pPlayer->GetMaxHealth(); + v9 = UI_GetHealthManaStringColor(pPlayer->sHealth, v8); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v7, v9, pTmpBuf, 84, v0); + v10 = v45 + v7; + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v10, v0, pGlobalTXT_LocalizationStrings[209], 60, v0);//Ìàíà + sprintf(pTmpBuf, "%d", pPlayer->sMana); + v11 = pPlayer->GetMaxMana(); + v12 = UI_GetHealthManaStringColor(pPlayer->sMana, v11); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v10, v12, pTmpBuf, 84, v0); + v13 = v45 + v10; + if ( v43 == v0 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v13, v0, pGlobalTXT_LocalizationStrings[0], 60, v0);//Êëàññ áðîíè + v14 = pPlayer->GetActualAC(); + sprintf(pTmpBuf, "%d", v14); + v15 = v0; + v16 = pPlayer->GetBaseAC(); + v17 = pPlayer->GetActualAC(); + v18 = UI_GetHealthManaStringColor(v17, v16); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v13, v18, pTmpBuf, 84, v15); + v0 = 0; + v19 = v45 + v13; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v19, 0, pGlobalTXT_LocalizationStrings[18], 60, 0);//Àòàêà + v20 = pPlayer->GetActualAttack(0); + sprintf(pTmpBuf, "%+d", v20); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v19, 0, pTmpBuf, 84, 0); + v21 = v45 + v19; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v21, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Ïîâð. + v22 = pPlayer->GetMeleeDamageString(); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v21, 0, v22, 84, 0); + v23 = v45 + v21; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v23, 0, pGlobalTXT_LocalizationStrings[203], 60, 0);// Ñòðåëÿòü + v24 = pPlayer->GetRangedAttack(); + sprintf(pTmpBuf, "%+d", v24); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v23, 0, pTmpBuf, 84, 0); + v25 = v45 + v23; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v25, 0, pGlobalTXT_LocalizationStrings[66], 60, 0);//Ïîâð. + v26 = pPlayer->GetRangedDamageString(); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v25, 0, v26, 84, 0); + v27 = v45 + v25; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v27, 0, pGlobalTXT_LocalizationStrings[205], 60, 0);//Íàâûêè + v28 = 0; + v29 = (char *)pPlayer->pActiveSkills; + v30 = 36; + do + { + if ( *(short *)v29 ) + ++v28; + v29 += 2; + --v30; + } + while ( v30 ); + sprintf(pTmpBuf, "%lu", v28); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v27, 0, pTmpBuf, 84, 0); + v31 = v45 + v27; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v31, 0, pGlobalTXT_LocalizationStrings[168], 60, 0);//Î÷êè + sprintf(pTmpBuf, "%lu", pPlayer->uSkillPoints); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v31, pPlayer->uSkillPoints != 0 ? v46 : 0, pTmpBuf, 84, 0); + v32 = v45 + v31; + v48 = pPlayer->GetMajorConditionIdx(); + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v32, 0, pGlobalTXT_LocalizationStrings[45], 60, 0);//Ñîñò. + v33 = aCharacterConditionNames[v48]; + v34 = GetConditionDrawColor(v48); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v32, v34, v33, 84, 0); + v35 = v45 + v32; + if ( !v43 ) + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x16u, v35, 0, pGlobalTXT_LocalizationStrings[170], 60, 0);//Á.Ïðèì. + v36 = pPlayer->uQuickSpell; + if ( v36 ) + v37 = pSpellStats->pInfos[v36].pShortName; + else + v37 = pGlobalTXT_LocalizationStrings[153];//Íåò + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, v44, v35, 0, v37, 84, 0); + ++v43; + } + while ( v43 < 4 ); + + v38 = GetPartyReputation(); + if ( v38 >= 0 ) + { + if ( v38 <= 5 ) + v39 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFF, 0xFF, 0xFF); + else + v39 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFF, 0, 0); + } + else + v39 = v46; + + v40 = GetReputationString(v38); + sprintf(pTmpBuf, "%s: \f%05d%s\f00000", pGlobalTXT_LocalizationStrings[180], v39, v40);//Reputation + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 22, 323, 0, pTmpBuf, 0, 0, 0); + v41 = pParty->GetPartyFame(); + sprintf(pTmpBuf, "\r261%s: %d", pGlobalTXT_LocalizationStrings[84], v41);// Fame Ñëàâà + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 0, 323, 0, pTmpBuf, 0, 0, 0); + } + + //----- (0041ABFD) -------------------------------------------------------- + void __thiscall CharacterUI_CharacterScreen_Draw(unsigned int uPlayerIdx) + { + unsigned int v1; // edi@1 + unsigned int v2; // eax@6 + Texture *pTexture; // ecx@6 + GUIButton *pButton; // eax@6 + unsigned int v5; // eax@7 + unsigned int v6; // eax@10 + unsigned int v7; // eax@11 + + v1 = uPlayerIdx; + if ( uPlayerIdx ) + { + pRenderer->ClearZBuffer(0, 479); + switch ( pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0] ) + { + case WINDOW_CharacterWindow_Stats: // stats + sub_4196A0(); + sub_419379(); + CharacterUI_StatsTab_Draw(v1); + v7 = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE); + pTexture = (Texture *)(v7 != -1 ? (int)&pIcons_LOD->pTextures[v7] : 0); + pButton = pCharacterScreen_StatsBtn; + pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture); + break; + case WINDOW_CharacterWindow_Skills: // skills + if ( dword_507CC0 != uActiveCharacter ) + { + sub_4196A0(); + CharacterUI_SkillScreen_Draw(); + } + sub_419379(); + CharacterUI_SkillsTab_Draw(v1); + v6 = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE); + pTexture = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0); + pButton = pCharacterScreen_SkillsBtn; + pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture); + break; + case WINDOW_CharacterWindow_Awards: // awards + sub_4196A0(); + sub_419379(); + sub_419220(); + CharacterUI_AwardsTab_Draw(v1); + v5 = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE); + pTexture = (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0); + pButton = pCharacterScreen_AwardsBtn; + pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture); + break; + case WINDOW_CharacterWindow_Inventory: // inventory and other + sub_4196A0(); + sub_419379(); + CharacterUI_InventoryTab_Draw(v1, 0); + v2 = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE); + pTexture = (Texture *)(v2 != -1 ? (int)&pIcons_LOD->pTextures[v2] : 0); + pButton = pCharacterScreen_InventoryBtn; + pRenderer->DrawTextureIndexed(pButton->uX, pButton->uY, pTexture); + break; + default: + break; + } + if ( bRingsShownInCharScreen ) + CharacterUI_DrawPaperdollWithRingOverlay(v1); + else + CharacterUI_DrawPaperdoll(v1); + } + } + + //----- (0043CC7C) -------------------------------------------------------- + void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID) + { + //Player **ppPlayer; // esi@1 + Player *pPlayer; // ebx@1 + //enum CHARACTER_RACE pRace; // edi@1 + signed int pSex; // eax@1 + //int v5; // edi@4 + unsigned int v6; // ecx@9 + int v7; // ecx@10 + unsigned int v8; // eax@14 + int v9; // eax@15 + int v10; // edx@15 + int v11; // ecx@15 + int v12; // eax@15 + unsigned int v13; // edi@15 + unsigned int v14; // ebx@18 + int v15; // ecx@18 + Texture *v16; // ebp@27 + double v17; // st7@29 + int v18; // edi@30 + char *v19; // eax@30 + Texture *v20; // edi@31 + unsigned int v21; // eax@37 + int v22; // edi@38 + int v23; // eax@38 + int v24; // ebx@38 + int v25; // eax@38 + LODFile_IconsBitmaps *v26; // ecx@42 + Texture *v27; // edi@51 + double v28; // st7@51 + char v29; // zf@54 + char *v30; // eax@54 + unsigned int v31; // eax@59 + int v32; // edx@60 + int v33; // eax@65 + int v34; // eax@74 + int v35; // ebx@74 + unsigned int v36; // ecx@74 + int v37; // eax@74 + LODFile_IconsBitmaps *v38; // ecx@78 + Texture *v39; // edi@85 + double v40; // st7@87 + int v41; // edi@88 + Texture *v42; // edi@89 + unsigned int v43; // eax@93 + int v44; // edx@94 + int v45; // eax@98 + int v46; // eax@106 + int v47; // ecx@106 + int v48; // ebx@106 + int v49; // eax@106 + LODFile_IconsBitmaps *v50; // ecx@110 + Texture *v51; // edi@117 + double v52; // st7@119 + int v53; // edi@120 + Texture *v54; // edi@121 + char *v55; // eax@122 + unsigned int v56; // eax@127 + int v57; // edi@128 + int v58; // ecx@128 + int v59; // ebx@129 + int v60; // ecx@132 + int v61; // eax@134 + int v62; // ecx@136 + Texture *v63; // edi@145 + double v64; // st7@147 + int v65; // edi@148 + char *v66; // eax@148 + Texture *v67; // edi@149 + //Player *v68; // ebx@155 + unsigned int v69; // edx@155 + int v70; // edx@156 + unsigned int v71; // eax@160 + int v72; // edi@161 + int v73; // edx@163 + int v74; // ecx@168 + unsigned int v75; // ebx@170 + int v76; // ecx@172 + Texture *v77; // edi@181 + double v78; // st7@183 + int v79; // edi@184 + char *v80; // eax@184 + Texture *v81; // edi@185 + unsigned int v82; // eax@192 + int v83; // eax@193 + int v84; // eax@197 + int v85; // eax@197 + int v86; // ecx@197 + int v87; // eax@197 + int v88; // eax@198 + int v89; // eax@199 + int v90; // edi@201 + int v91; // edi@213 + int v92; // ebx@213 + int v93; // edi@214 + int v94; // ebx@214 + int v95; // eax@214 + char *v96; // edi@226 + double v97; // st7@228 + int v98; // edi@229 + char *v99; // eax@229 + Render *v100; // ecx@229 + Texture *v101; // edi@230 + int v102; // edi@236 + int v103; // eax@237 + int v104; // ecx@237 + int v105; // edx@237 + int v106; // edx@238 + int v107; // edx@239 + int v108; // edx@240 + int v109; // edi@250 + char *v110; // edx@250 + unsigned int v111; // eax@259 + int v112; // eax@260 + int v113; // eax@260 + int v114; // eax@265 + int v115; // eax@274 + int v116; // ebx@274 + unsigned int v117; // edi@274 + double v118; // st7@286 + int v119; // edi@287 + char *v120; // eax@287 + Texture *v121; // edi@288 + unsigned int v122; // edi@295 + int v123; // ebx@297 + int v124; // edi@298 + int v125; // ecx@303 + int v126; // eax@312 + unsigned int v127; // ebx@314 + int v128; // ecx@316 + Texture *v129; // edi@325 + double v130; // st7@327 + int v131; // edi@328 + char *v132; // eax@328 + Texture *v133; // edi@329 + unsigned int v134; // eax@335 + int v135; // eax@336 + int v136; // edx@336 + int v137; // eax@336 + unsigned int v138; // ebx@339 + int v139; // ecx@339 + Texture *v140; // edi@348 + double v141; // st7@350 + int v142; // edi@351 + char *v143; // eax@351 + Texture *v144; // edi@352 + unsigned int v145; // eax@358 + int v146; // eax@359 + int v147; // ecx@359 + int v148; // eax@359 + int v149; // edx@359 + int v150; // ebx@362 + int v151; // ecx@363 + int v152; // ecx@364 + unsigned int v153; // eax@370 + unsigned int v154; // edi@370 + int v155; // eax@370 + LODFile_IconsBitmaps *v156; // ecx@374 + Texture *v157; // ebp@381 + double v158; // st7@383 + Texture *v159; // edi@385 + char *v160; // eax@386 + unsigned int v161; // eax@393 + int v162; // eax@394 + unsigned int v163; // [sp-Ch] [bp-58h]@230 + unsigned int v164; // [sp-Ch] [bp-58h]@233 + signed int v165; // [sp-Ch] [bp-58h]@235 + 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 + int v174; // [sp-8h] [bp-54h]@228 + unsigned int v175; // [sp-8h] [bp-54h]@230 + unsigned int v176; // [sp-8h] [bp-54h]@233 + signed int v177; // [sp-8h] [bp-54h]@235 + 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 v184; // [sp-4h] [bp-50h]@66 + signed int v185; // [sp-4h] [bp-50h]@99 + signed int v186; // [sp-4h] [bp-50h]@202 + int v187; // [sp-4h] [bp-50h]@228 + Texture *v188; // [sp-4h] [bp-50h]@230 + Texture *v189; // [sp-4h] [bp-50h]@233 + Texture *v190; // [sp-4h] [bp-50h]@235 + signed int v191; // [sp-4h] [bp-50h]@266 + signed int v192; // [sp-4h] [bp-50h]@304 + unsigned int a3; // [sp+10h] [bp-3Ch]@7 + int a3a; // [sp+10h] [bp-3Ch]@15 + int a3b; // [sp+10h] [bp-3Ch]@38 + unsigned int a3c; // [sp+10h] [bp-3Ch]@74 + unsigned int a3d; // [sp+10h] [bp-3Ch]@106 + int a3e; // [sp+10h] [bp-3Ch]@129 + int a3f; // [sp+10h] [bp-3Ch]@168 + unsigned int a3g; // [sp+10h] [bp-3Ch]@216 + unsigned int a3h; // [sp+10h] [bp-3Ch]@274 + int a3i; // [sp+10h] [bp-3Ch]@312 + int a3j; // [sp+10h] [bp-3Ch]@336 + int a3k; // [sp+10h] [bp-3Ch]@362 + signed int a2; // [sp+14h] [bp-38h]@7 + unsigned int a2a; // [sp+14h] [bp-38h]@15 + Texture *a2b; // [sp+14h] [bp-38h]@49 + int a2c; // [sp+14h] [bp-38h]@74 + int a2d; // [sp+14h] [bp-38h]@106 + int a2e; // [sp+14h] [bp-38h]@129 + int a2f; // [sp+14h] [bp-38h]@168 + int a2g; // [sp+14h] [bp-38h]@214 + int a2h; // [sp+14h] [bp-38h]@274 + Texture *a2i; // [sp+14h] [bp-38h]@284 + int a2j; // [sp+14h] [bp-38h]@312 + int a2k; // [sp+14h] [bp-38h]@336 + //Player *v217; // [sp+18h] [bp-34h]@1 + int v218; // [sp+1Ch] [bp-30h]@15 + int v219; // [sp+1Ch] [bp-30h]@60 + int v220; // [sp+1Ch] [bp-30h]@94 + int v221; // [sp+1Ch] [bp-30h]@128 + int v222; // [sp+1Ch] [bp-30h]@161 + int v223; // [sp+1Ch] [bp-30h]@213 + char v224; // [sp+1Ch] [bp-30h]@237 + int v225; // [sp+1Ch] [bp-30h]@260 + int v226; // [sp+1Ch] [bp-30h]@298 + int v227; // [sp+1Ch] [bp-30h]@336 + int v228; // [sp+1Ch] [bp-30h]@359 + int v229; // [sp+20h] [bp-2Ch]@15 + int v230; // [sp+20h] [bp-2Ch]@38 + int v231; // [sp+20h] [bp-2Ch]@60 + int v232; // [sp+20h] [bp-2Ch]@94 + int v233; // [sp+20h] [bp-2Ch]@128 + int v234; // [sp+20h] [bp-2Ch]@161 + int v235; // [sp+20h] [bp-2Ch]@197 + int v236; // [sp+20h] [bp-2Ch]@260 + int v237; // [sp+20h] [bp-2Ch]@298 + int v238; // [sp+20h] [bp-2Ch]@336 + int pBodyComplection; // [sp+24h] [bp-28h]@6 + int v240; // [sp+28h] [bp-24h]@7 + unsigned int v241; // [sp+2Ch] [bp-20h]@38 + int v242; // [sp+2Ch] [bp-20h]@197 + unsigned int v243; // [sp+2Ch] [bp-20h]@370 + int v244; // [sp+34h] [bp-18h]@6 + signed int v245; // [sp+34h] [bp-18h]@361 + unsigned int uPlayerID_; // [sp+38h] [bp-14h]@1 + int uPlayerID_a; // [sp+38h] [bp-14h]@9 + signed int IsDwarf; // [sp+40h] [bp-Ch]@4 + int v249; // [sp+40h] [bp-Ch]@358 + //signed int v250; // [sp+44h] [bp-8h]@1 + + pPlayer = pPlayers[uPlayerID]; + uPlayerID_ = uPlayerID; + pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); + pSex = pPlayer->GetSexByVoice(); + if ( pPlayer->GetRace() && pPlayer->GetRace() != 1 && pPlayer->GetRace() != 2 ) + { + IsDwarf = 1; + pBodyComplection = (pSex != 0) + 2; + } + else + { + IsDwarf = 0; + pBodyComplection = pSex != 0; + } + v244 = pPlayer->uFace; + pRenderer->ResetClip(); + pRenderer->DrawTextureIndexed(0x1D3u, 0, (Texture *)(uTextureID_BACKDOLL != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BACKDOLL] : 0));//Ïîäëîæêà + if ( !IsPlayerWearingWatersuit[uPlayerID_] ) + { + v21 = pPlayer->pEquipment.uBow; //ñíà÷àëà ðèñóåòñÿ ëóê + if ( !v21 ) + goto LABEL_59; + v230 = pPlayer->pEquipment.uBow; + v22 = (int)&pPlayer->pInventoryItems[v21-1]; + v23 = *(int *)v22; + v24 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[v23].uEquipX; + a3b = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[v23].uEquipY; + v241 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v23].pIconName, TEXTURE_16BIT_PALETTE); + v25 = *(int *)(v22 + 20); + if ( !(*(int *)(v22 + 20) & 0xF0) ) + { + if ( v25 & 2 ) + { + v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0); + pRenderer->DrawTransparentRedShade(v24, a3b, v27); + } + else + { + v29 = (v25 & 1) == 0; + v30 = (char *)&pIcons_LOD->pTextures[v241]; + if ( v29 ) + { + v27 = (Texture *)(v241 != -1 ? (int)v30 : 0); + pRenderer->DrawTransparentGreenShade(v24, a3b, (Texture *)(v241 != -1 ? (int)v30 : 0)); + } + else + { + v27 = (Texture *)(v241 != -1 ? (int)v30 : 0); + pRenderer->DrawTextureTransparent(v24, a3b, (Texture *)(v241 != -1 ? (int)v30 : 0)); + } + } +LABEL_57: + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(v24, a3b, v27, v230); +LABEL_59: + v31 = pPlayer->pEquipment.uCloak;// ïîòîì ïëàù + if ( !v31 ) + goto LABEL_93; + v231 = pPlayer->pEquipment.uCloak; + v32 = (int)&pPlayer->pInventoryItems[v31-1]; + v219 = v32; + if ( *(int *)v32 != 525 ) + { + switch ( *(int *)v32 ) + { + case 0x212: + v184 = 6; + break; + case 0x223: + v184 = 7; + break; + case 0x224: + v184 = 8; + break; + default: + if ( *(int *)v32 != 550 ) + { + v33 = *(int *)v32 - 105; +LABEL_72: + if ( v33 < 0 || v33 >= 10 ) + goto LABEL_93; +LABEL_74: + v34 = v33 + 10 * pBodyComplection; + v35 = paperdoll_array_511828[0][v34];//Texture_Cloak + a2c = pPaperdoll_BodyX + paperdoll_Cloak[0][v34][0]; + v36 = pPaperdoll_BodyY + paperdoll_Cloak[0][v34][1]; + v37 = *(int *)(v32 + 20); + a3c = v36; + if ( !(v37 & 0xF0) ) + { + v41 = v35 + 1; + if ( v37 & 2 ) + { + v42 = (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0); + pRenderer->DrawTransparentRedShade(a2c, v36, v42); + } + else + { + v42 = (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0); + pRenderer->DrawTextureTransparent(a2c, v36, v42); + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2c, a3c, v42, v231); +LABEL_93: + v240 = 4 * uPlayerID_ - 4; + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, + (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0)); + v43 = pPlayer->pEquipment.uBody;// ïîòîì òåëî + if ( !v43 ) + goto LABEL_127; + v232 = pPlayer->pEquipment.uBody; + v44 = (int)&pPlayer->pInventoryItems[v43-1]; + v220 = v44; + if ( *(int *)v44 != 504 ) + { + if ( *(int *)v44 == 505 ) + { + v185 = 14; + } + else + { + if ( *(int *)v44 == 516 ) + { + v185 = 13; + } + else + { + if ( *(int *)v44 != 533 ) + { + v45 = *(int *)v44 - 66; +LABEL_104: + if ( v45 < 0 || v45 >= 17 ) + goto LABEL_127; +LABEL_106: + v46 = 17 * pBodyComplection + v45; + a2d = pPaperdoll_BodyX + paperdoll_Armor[0][v46][0]; + v47 = pPaperdoll_BodyY + paperdoll_Armor[0][v46][1]; + v48 = paperdoll_array_511290[0][v46][0];//Texture_Armor + v49 = *(int *)(v44 + 20); + a3d = v47; + if ( !(v49 & 0xF0) ) + { + v53 = v48 + 1; + if ( v49 & 2 ) + { + v54 = (Texture *)(v53 != 0 ? (int)&pIcons_LOD->pTextures[v48] : 0); + pRenderer->DrawTransparentRedShade(a2d, v47, v54); + } + else + { + v29 = (v49 & 1) == 0; + v55 = (char *)&pIcons_LOD->pTextures[v48]; + if ( v29 ) + { + v54 = (Texture *)(v53 != 0 ? (int)v55 : 0); + pRenderer->DrawTransparentGreenShade(a2d, v47, v54); + } + else + { + v54 = (Texture *)(v53 != 0 ? (int)v55 : 0); + pRenderer->DrawTextureTransparent(a2d, v47, v54); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2d, a3d, v54, v232); +LABEL_127: + v56 = pPlayer->pEquipment.field_20; + if ( !v56 ) + goto LABEL_155; + v233 = pPlayer->pEquipment.field_20; + v57 = (int)&pPlayer->pInventoryItems[v56-1]; + v221 = v57; + v58 = *(int *)v57; + if ( *(int *)v57 == 529 ) + { + a3e = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][5][1]; + a2e = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][5][0]; + v59 = papredoll_flying_feet[v244]; + } + else + { + if ( v58 == 512 ) + { + a3e = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][6][1]; + a2e = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][6][0]; + v59 = dword_511638[pBodyComplection][5]; + } + else + { + v60 = v58 - 115; + if ( v60 < 0 || v60 >= 5 ) + { + a2e = 0; + a3e = 0; + v59 = dword_511638[pBodyComplection][0]; + } + else + { + v61 = v60 + 7 * pBodyComplection; + a3e = pPaperdoll_BodyY + paperdoll_Boot[0][v61][1]; + a2e = pPaperdoll_BodyX + paperdoll_Boot[0][v61][0]; + v59 = dword_511638[0][v60 + 6 * pBodyComplection]; + } + } + } + v62 = *(int *)(v57 + 20); + if ( !(*(int *)(v57 + 20) & 0xF0) ) + { + v65 = v59 + 1; + v66 = (char *)&pIcons_LOD->pTextures[v59]; + if ( v62 & 2 ) + { + v67 = (Texture *)(v65 != 0 ? (int)v66 : 0); + pRenderer->DrawTransparentRedShade(a2e, a3e, v67); + } + else + { + if ( v62 & 1 ) + { + v67 = (Texture *)(v65 != 0 ? (int)v66 : 0); + pRenderer->DrawTextureTransparent(a2e, a3e, v67); + } + else + { + v67 = (Texture *)(v65 != 0 ? (int)v66 : 0); + pRenderer->DrawTransparentGreenShade(a2e, a3e, v67); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2e, a3e, v67, v233); +LABEL_155: + v69 = pPlayer->pEquipment.uMainHand; + uPlayerID_a = 2 * pBodyComplection; + if ( !v69 || (v70 = *(int *)&pPlayer->pInventoryItems[v69-1], pItemsTable->pItems[v70].uEquipType != 1) + && (pItemsTable->pItems[v70].uSkillType != 4 || pPlayer->pEquipment.uOffHand) ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], + pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0)); + v71 = pPlayer->pEquipment.uBelt; + if ( v71 ) + { + v234 = pPlayer->pEquipment.uBelt; + v72 = (int)&pPlayer->pInventoryItems[v71-1]; + v222 = v72; + if ( *(int *)v72 == 524 ) + { + v73 = 5; + } + else + { + if ( *(int *)v72 == 535 ) + { + v73 = 6; + goto LABEL_168; + } + v73 = *(int *)v72 - 100; + } + if ( v73 >= 0 && v73 < 7 ) + { +LABEL_168: + v74 = 7 * pBodyComplection + v73; + a2f = pPaperdoll_BodyX + paperdoll_Belt[0][v74][0]; + a3f = pPaperdoll_BodyY + paperdoll_Belt[0][v74][1]; + if ( IsDwarf != 1 || v73 == 5 ) + v75 = stru_511718[pBodyComplection].texids[v73]; + else + v75 = stru_511718[pBodyComplection - 2].texids[v73]; + v76 = *(int *)&pPlayer->field_1F5[36 * v71 + 15]; + if ( !(*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) ) + { + v79 = v75 + 1; + v80 = (char *)&pIcons_LOD->pTextures[v75]; + if ( v76 & 2 ) + { + v81 = (Texture *)(v79 != 0 ? (int)v80 : 0); + pRenderer->DrawTransparentRedShade(a2f, a3f, v81); + } + else + { + if ( v76 & 1 ) + { + v81 = (Texture *)(v79 != 0 ? (int)v80 : 0); + pRenderer->DrawTextureTransparent(a2f, a3f, v81); + } + else + { + v81 = (Texture *)(v79 != 0 ? (int)v80 : 0); + pRenderer->DrawTransparentGreenShade(a2f, a3f, v81); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2f, a3f, v81, v234); + goto LABEL_192; + } + if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) != 16 ) + { + if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 32 ) + { + v172 = "sp28a"; + v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v222 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v78 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255); + goto LABEL_192; + } + if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 64 ) + { + v172 = "sp30a"; + v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v222 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v78 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255); + goto LABEL_192; + } + if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 128 ) + { + v172 = "sp91a"; + v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v222 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v78 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255); + goto LABEL_192; + } + } + v172 = "sptext01"; + v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v222 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v78 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255); + goto LABEL_192; + } + } +LABEL_192: + v82 = pPlayer->pEquipment.uMainHand; + if ( v82 ) + { + v83 = *(int *)&pPlayer->pInventoryItems[v82-1]; + if ( pItemsTable->pItems[v83].uEquipType == 1 + || pItemsTable->pItems[v83].uSkillType == 4 && !pPlayer->pEquipment.uOffHand ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a], + pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlaus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlaus + v240)] : 0)); + } + v84 = pPlayer->pEquipment.uBody; + v235 = v84; + v85 = (int)((char *)pPlayer + 36 * v84); + v242 = v85; + v86 = *(int *)(v85 + 496); + v87 = *(int *)(v85 + 496) - 504; + if ( v87 ) + { + v88 = v87 - 1; + if ( v88 ) + { + v89 = v88 - 11; + if ( v89 ) + { + if ( v89 != 17 ) + { + v90 = v86 - 66; +LABEL_207: + if ( v90 < 0 || v90 > 17 ) + { +LABEL_259: + v111 = pPlayer->pEquipment.uCloak; + if ( !v111 ) + goto LABEL_293; + v236 = pPlayer->pEquipment.uCloak; + v112 = (int)&pPlayer->pInventoryItems[v111-1]; + v225 = v112; + v113 = *(int *)v112; + if ( v113 != 525 ) + { + switch ( v113 ) + { + case 530: + v191 = 6; + break; + case 547: + v191 = 7; + break; + case 548: + v191 = 8; + break; + default: + if ( v113 != 550 ) + { + v114 = v113 - 105; +LABEL_272: + if ( v114 < 0 || v114 >= 10 ) + goto LABEL_293; +LABEL_274: + v115 = v114 + 10 * pBodyComplection; + v116 = dword_511788[v115]; + v115 *= 8; + v117 = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0 + v115); + a2h = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0 + v115); + a3h = pPaperdoll_BodyY + *(int *)((char *)&dword_4E56B4 + v115); + if ( v116 == pIcons_LOD->FindTextureByName("pending") ) + { +LABEL_292: +LABEL_293: + if ( v244 == 12 || v244 == 13 ) + { + v122 = papredoll_dbrds[v244]; + if ( v122 != pIcons_LOD->FindTextureByName("Pending") ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * v244 - 24], + pPaperdoll_BodyY + pPaperdoll_Beards[2 * v244 - 23], + (Texture *)(v122 != -1 ? (int)&pIcons_LOD->pTextures[v122] : 0)); + } + v123 = pPlayer->pEquipment.uHelm; + if ( !v123 ) + goto LABEL_335; + v237 = v123; + v124 = (int)&pPlayer->pInventoryItems[v123-1]; + v226 = v124; + if ( *(int *)v124 != 521 ) + { + switch ( *(int *)v124 ) + { + case 0x20A: + v192 = 12; + break; + case 0x20B: + v192 = 13; + break; + case 0x214: + v192 = 14; + break; + default: + if ( *(int *)v124 != 544 ) + { + v125 = *(int *)v124 - 89; + if ( v125 < 0 || v125 >= 16 ) + goto LABEL_335; + goto LABEL_312; + } + v192 = 15; + break; + } + v125 = v192; +LABEL_312: + v126 = 2 * (v125 + 16 * pBodyComplection); + a2j = pPaperdoll_BodyX + dword_4E58D0[v126]; + a3i = pPaperdoll_BodyY + dword_4E58D4[v126]; + if ( IsDwarf != 1 || *(int *)v124 != 92 ) + v127 = stru_511698[0].texids[v125 + 16 * pSex]; + else + v127 = papredoll_dbrds[11]; + v128 = *(int *)(v124 + 20); + if ( *(int *)(v124 + 20) & 0xF0 ) + { + if ( (*(int *)(v124 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v124 + 20) & 0xF0) == 32 ) + { + v180 = "sp28a"; + v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v226 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v130 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0), + v129, (signed __int64)v130, 0, 255); + goto LABEL_335; + } + if ( (*(int *)(v124 + 20) & 0xF0) == 64 ) + { + v180 = "sp30a"; + v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v226 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v130 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0), + v129, (signed __int64)v130, 0, 255); + goto LABEL_335; + } + if ( (*(int *)(v124 + 20) & 0xF0) == 128 ) + { + v180 = "sp91a"; + v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v226 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v130 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0), + v129, (signed __int64)v130, 0, 255); + goto LABEL_335; + } + } + v180 = "sptext01"; + v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v226 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v130 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2j, a3i, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0), + v129, (signed __int64)v130, 0, 255); + goto LABEL_335; + } + v131 = v127 + 1; + v132 = (char *)&pIcons_LOD->pTextures[v127]; + if ( v128 & 2 ) + { + v133 = (Texture *)(v131 != 0 ? (int)v132 : 0); + pRenderer->DrawTransparentRedShade(a2j, a3i, v133); + } + else + { + if ( v128 & 1 ) + { + v133 = (Texture *)(v131 != 0 ? (int)v132 : 0); + pRenderer->DrawTextureTransparent(a2j, a3i, v133); + } + else + { + v133 = (Texture *)(v131 != 0 ? (int)v132 : 0); + pRenderer->DrawTransparentGreenShade(a2j, a3i, v133); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2j, a3i, v133, v237); +LABEL_335: + v134 = pPlayer->pEquipment.uMainHand; + if ( !v134 ) + goto LABEL_358; + v238 = pPlayer->pEquipment.uMainHand; + v135 = (int)&pPlayer->pInventoryItems[v134-1]; + v227 = v135; + v136 = *(int *)v135; + v137 = *(int *)v135; + a2k = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[v137].uEquipX; + a3j = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[v137].uEquipY; + if ( v136 == 64 ) + v181 = "item64v1"; + else + v181 = pItemsTable->pItems[v137].pIconName; + v138 = pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE); + v139 = *(int *)(v227 + 20); + if ( !(*(int *)(v227 + 20) & 0xF0) ) + { + v142 = v138 + 1; + v143 = (char *)&pIcons_LOD->pTextures[v138]; + if ( v139 & 2 ) + { + v144 = (Texture *)(v142 != 0 ? (int)v143 : 0); + pRenderer->DrawTransparentRedShade(a2k, a3j, v144); + } + else + { + if ( v139 & 1 ) + { + v144 = (Texture *)(v142 != 0 ? (int)v143 : 0); + pRenderer->DrawTextureTransparent(a2k, a3j, v144); + } + else + { + v144 = (Texture *)(v142 != 0 ? (int)v143 : 0); + pRenderer->DrawTransparentGreenShade(a2k, a3j, v144); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2k, a3j, v144, v238); +LABEL_358: + v145 = pPlayer->pEquipment.uOffHand; + v249 = pPlayer->pEquipment.uOffHand; + if ( !v145 ) + goto LABEL_393; + v146 = (int)&pPlayer->pInventoryItems[v145-1]; + v228 = v146; + v147 = *(int *)v146; + v148 = *(int *)v146; + v149 = pItemsTable->pItems[v148].uSkillType; + if ( v149 != 2 && v149 != 1 ) + { + v245 = 0; + v150 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[v148].uEquipX; + a3k = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[v148].uEquipY; + goto LABEL_370; + } + v151 = v147 - 400; + v245 = 1; + if ( v151 ) + { + v152 = v151 - 3; + if ( v152 ) + { + if ( v152 != 12 ) + { + v150 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[v148].uEquipX; + a3k = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[v148].uEquipY; + goto LABEL_370; + } + v150 = 595; + a3k = 33; +LABEL_370: + v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v148].pIconName, TEXTURE_16BIT_PALETTE); + v154 = v153; + v243 = v153; + v155 = *(int *)(v228 + 20); + if ( !(*(int *)(v228 + 20) & 0xF0) ) + { + if ( v155 & 2 ) + { + v159 = (Texture *)(v243 != -1 ? (int)&pIcons_LOD->pTextures[v243] : 0); + pRenderer->DrawTransparentRedShade(v150, a3k, v159); + } + else + { + v29 = (v155 & 1) == 0; + v160 = (char *)&pIcons_LOD->pTextures[v243]; + if ( v29 ) + { + v159 = (Texture *)(v243 != -1 ? (int)v160 : 0); + pRenderer->DrawTransparentGreenShade(v150, a3k, (Texture *)(v243 != -1 ? (int)v160 : 0)); + } + else + { + v159 = (Texture *)(v243 != -1 ? (int)v160 : 0); + pRenderer->DrawTextureTransparent(v150, a3k, (Texture *)(v243 != -1 ? (int)v160 : 0)); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(v150, a3k, v159, v249); + if ( v245 ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhs + + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); + goto LABEL_393; + } + if ( (*(int *)(v228 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v228 + 20) & 0xF0) == 32 ) + { + v183 = "sp28a"; + } + else + { + if ( (*(int *)(v228 + 20) & 0xF0) != 64 ) + { + v156 = pIcons_LOD; + if ( (*(int *)(v228 + 20) & 0xF0) == 128 ) + { + v183 = "sp91a"; + v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v228 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v158 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0), + v157, (signed __int64)v158, 0, 255); + if ( v245 ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhs + + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); + goto LABEL_393; + } + v183 = "sptext01"; + v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v228 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v158 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0), + v157, (signed __int64)v158, 0, 255); + if ( v245 ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhs + + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); + goto LABEL_393; + } + v183 = "sp30a"; + } + v156 = pIcons_LOD; + v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v228 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v158 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0), + v157, (signed __int64)v158, 0, 255); + if ( v245 ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhs + + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); + goto LABEL_393; + } + v156 = pIcons_LOD; + v183 = "sptext01"; + v157 = &pIcons_LOD->pTextures[v156->LoadTexture(v183, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v228 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v158 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v150, a3k, (Texture *)(v154 != -1 ? (int)&pIcons_LOD->pTextures[v154] : 0), + v157, (signed __int64)v158, 0, 255); + if ( v245 ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhs + + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhs + v240)] : 0)); + goto LABEL_393; + } + a3k = 28; + } + else + { + a3k = 86; + } + v150 = 596; + goto LABEL_370; + } + if ( (*(int *)(v227 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v227 + 20) & 0xF0) == 32 ) + { + v182 = "sp28a"; + v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v227 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v141 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0), + v140, (signed __int64)v141, 0, 255); + goto LABEL_358; + } + if ( (*(int *)(v227 + 20) & 0xF0) == 64 ) + { + v182 = "sp30a"; + v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v227 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v141 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0), + v140, (signed __int64)v141, 0, 255); + goto LABEL_358; + } + if ( (*(int *)(v227 + 20) & 0xF0) == 128 ) + { + v182 = "sp91a"; + v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v227 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v141 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0), + v140, (signed __int64)v141, 0, 255); + goto LABEL_358; + } + } + v182 = "sptext01"; + v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v227 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v141 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2k, a3j, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0), + v140, (signed __int64)v141, 0, 255); + goto LABEL_358; + } + v125 = 11; + if ( v125 < 0 || v125 >= 16 ) + goto LABEL_335; + goto LABEL_312; + } + if ( !(*(int *)(v225 + 20) & 0xF0) ) + { + v119 = v116 + 1; + v120 = (char *)&pIcons_LOD->pTextures[v116]; + if ( *(int *)(v225 + 20) & 2 ) + { + v121 = (Texture *)(v119 != 0 ? (int)v120 : 0); + pRenderer->DrawTransparentRedShade(a2h, a3h, v121); + } + else + { + v121 = (Texture *)(v119 != 0 ? (int)v120 : 0); + pRenderer->DrawTextureTransparent(a2h, a3h, v121); + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2h, a3h, v121, v236); + goto LABEL_292; + } + if ( (*(int *)(v225 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v225 + 20) & 0xF0) == 32 ) + { + v179 = "sp28a"; + a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v225 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v118 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0), + a2i, (signed __int64)v118, 0, 255); + goto LABEL_292; + } + if ( (*(int *)(v225 + 20) & 0xF0) == 64 ) + { + v179 = "sp30a"; + a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v225 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v118 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0), + a2i, (signed __int64)v118, 0, 255); + goto LABEL_292; + } + if ( (*(int *)(v225 + 20) & 0xF0) == 128 ) + { + v179 = "sp91a"; + a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v225 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v118 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0), + a2i, (signed __int64)v118, 0, 255); + goto LABEL_292; + } + } + v179 = "sptext01"; + a2i = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v179, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v225 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v118 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v117, a3h, (Texture *)(v116 != -1 ? (int)&pIcons_LOD->pTextures[v116] : 0), + a2i, (signed __int64)v118, 0, 255); + goto LABEL_292; + } + v191 = 9; + break; + } + v114 = v191; + goto LABEL_274; + } + v114 = 5; + goto LABEL_272; + } +LABEL_209: + if ( pPlayer->pEquipment.uMainHand + && (pPlayer->GetEquippedItemEquipType(1u) == 1 + || pPlayer->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4 + && !pPlayer->pEquipment.uOffHand) ) + { + v91 = 17 * pBodyComplection + v90; + v92 = v91; + v223 = paperdoll_array_511290[0][v91][2]; + if ( v223 == pIcons_LOD->FindTextureByName("pending") ) + { + v93 = 2 * v91; + v94 = paperdoll_array_511290[0][v92][1]; + a2g = pPaperdoll_BodyX + paperdoll_shoulder[0][0][v93]; + v95 = paperdoll_shoulder[0][0][v93 + 1]; + } + else + { + v94 = v223; + a2g = pPaperdoll_BodyX + dword_4E5270[2 * v91]; + v95 = dword_4E5270[2 * v91 + 1]; + } + a3g = pPaperdoll_BodyY + v95; + if ( v94 == pIcons_LOD->FindTextureByName("pending") ) + goto LABEL_259; + if ( *(int *)(v242 + 516) & 0xF0 ) + { + if ( (*(int *)(v242 + 516) & 0xF0) != 16 ) + { + if ( (*(int *)(v242 + 516) & 0xF0) == 32 ) + { + v173 = "sp28a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + if ( (*(int *)(v242 + 516) & 0xF0) == 64 ) + { + v173 = "sp30a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + if ( (*(int *)(v242 + 516) & 0xF0) == 128 ) + { + v173 = "sp91a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + } + v173 = "sptext01"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v173, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + v98 = v94 + 1; + v99 = (char *)&pIcons_LOD->pTextures[v94]; + v100 = pRenderer; + if ( *(int *)(v242 + 516) & 2 ) + { + v101 = (Texture *)(v98 != 0 ? (int)v99 : 0); + v188 = v101; + v175 = a3g; + v163 = a2g; + v100->DrawTransparentRedShade(v163, v175, v188); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + if ( *(char *)(v242 + 516) & 1 ) + { + v101 = (Texture *)(v98 != 0 ? (int)v99 : 0); + v189 = v101; + v176 = a3g; + v164 = a2g; + pRenderer->DrawTextureTransparent(v164, v176, v189); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + v101 = (Texture *)(v98 != 0 ? (int)v99 : 0); + v190 = v101; + v177 = a3g; + v165 = a2g; + pRenderer->DrawTransparentGreenShade(v165, v177, v190); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + v102 = 17 * pBodyComplection + v90; + v94 = paperdoll_array_511290[0][v102][1]; + if ( v94 == pIcons_LOD->FindTextureByName("pending") ) + goto LABEL_259; + v103 = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0]; + v104 = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1]; + v224 = *(int *)(v242 + 516); + v105 = *(int *)(v242 + 516) & 0xF0; + a2g = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0]; + a3g = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1]; + if ( !v105 ) + { + v109 = v94 + 1; + v110 = (char *)&pIcons_LOD->pTextures[v94]; + if ( v224 & 2 ) + { + v101 = (Texture *)(v109 != 0 ? (int)v110 : 0); + v188 = v101; + v175 = v104; + v163 = v103; + v100 = pRenderer; + v100->DrawTransparentRedShade(v163, v175, v188); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + if ( v224 & 1 ) + { + v101 = (Texture *)(v109 != 0 ? (int)v110 : 0); + v189 = v101; + v176 = v104; + v164 = v103; + v100 = pRenderer; + pRenderer->DrawTextureTransparent(v164, v176, v189); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + v101 = (Texture *)(v109 != 0 ? (int)v110 : 0); + v190 = v101; + v177 = v104; + v165 = v103; + v100 = pRenderer; + pRenderer->DrawTransparentGreenShade(v165, v177, v190); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2g, a3g, v101, v235); + goto LABEL_259; + } + v106 = v105 - 16; + if ( v106 ) + { + v107 = v106 - 16; + if ( !v107 ) + { + v178 = "sp28a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + v108 = v107 - 32; + if ( !v108 ) + { + v178 = "sp30a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + if ( v108 == 64 ) + { + v178 = "sp91a"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + } + v178 = "sptext01"; + v96 = (char *)&pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v178, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v242 + 516) &= 0xFu; + ptr_50C9A4 = 0; + } + v187 = 255; + v174 = 0; + v97 = (double)GetTickCount(); + pRenderer->_4A63E6(a2g, a3g, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), + (Texture *)v96, (signed __int64)(v97 * 0.1), v174, v187); + goto LABEL_259; + } + v186 = 16; + } + else + { + v186 = 13; + } + } + else + { + v186 = 14; + } + v90 = v186; + goto LABEL_209; + } + v90 = 15; + goto LABEL_207; + } + if ( (*(int *)(v57 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v57 + 20) & 0xF0) == 32 ) + { + v171 = "sp28a"; + v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v221 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v64 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63, + (signed __int64)v64, 0, 255); + goto LABEL_155; + } + if ( (*(int *)(v57 + 20) & 0xF0) == 64 ) + { + v171 = "sp30a"; + v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v221 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v64 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63, + (signed __int64)v64, 0, 255); + goto LABEL_155; + } + if ( (*(int *)(v57 + 20) & 0xF0) == 128 ) + { + v171 = "sp91a"; + v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v221 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v64 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63, + (signed __int64)v64, 0, 255); + goto LABEL_155; + } + } + v171 = "sptext01"; + v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v221 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v64 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2e, a3e, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63, + (signed __int64)v64, 0, 255); + goto LABEL_155; + } + if ( (*(int *)(v44 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v44 + 20) & 0xF0) == 32 ) + { + v170 = "sp28a"; + } + else + { + if ( (*(int *)(v44 + 20) & 0xF0) != 64 ) + { + v50 = pIcons_LOD; + if ( (*(int *)(v44 + 20) & 0xF0) == 128 ) + { + v170 = "sp91a"; + v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v220 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v52 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0), + v51, (signed __int64)v52, 0, 255); + goto LABEL_127; + } + v170 = "sptext01"; + v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v220 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v52 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0), + v51, (signed __int64)v52, 0, 255); + goto LABEL_127; + } + v170 = "sp30a"; + } + v50 = pIcons_LOD; + v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v220 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v52 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0), + v51, (signed __int64)v52, 0, 255); + goto LABEL_127; + } + v50 = pIcons_LOD; + v170 = "sptext01"; + v51 = &pIcons_LOD->pTextures[v50->LoadTexture(v170, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v220 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v52 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2d, a3d, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0), + v51, (signed __int64)v52, 0, 255); + goto LABEL_127; + } + v185 = 16; + } + } + v45 = v185; + goto LABEL_106; + } + v45 = 15; + goto LABEL_104; + } + if ( (*(int *)(v32 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v32 + 20) & 0xF0) == 32 ) + { + v169 = "sp28a"; + } + else + { + if ( (*(int *)(v32 + 20) & 0xF0) != 64 ) + { + v38 = pIcons_LOD; + if ( (*(int *)(v32 + 20) & 0xF0) == 128 ) + { + v169 = "sp91a"; + v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v219 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v40 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39, + (signed __int64)v40, 0, 255); + goto LABEL_93; + } + v169 = "sptext01"; + v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v219 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v40 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39, + (signed __int64)v40, 0, 255); + goto LABEL_93; + } + v169 = "sp30a"; + } + v38 = pIcons_LOD; + v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v219 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v40 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39, + (signed __int64)v40, 0, 255); + goto LABEL_93; + } + v38 = pIcons_LOD; + v169 = "sptext01"; + v39 = &pIcons_LOD->pTextures[v38->LoadTexture(v169, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v219 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v40 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2c, a3c, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39, + (signed __int64)v40, 0, 255); + goto LABEL_93; + } + v184 = 9; + break; + } + v33 = v184; + goto LABEL_74; + } + v33 = 5; + goto LABEL_72; + } + if ( (*(int *)(v22 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v22 + 20) & 0xF0) == 32 ) + { + v168 = "sp28a"; + } + else + { + if ( (*(int *)(v22 + 20) & 0xF0) != 64 ) + { + v26 = pIcons_LOD; + if ( (*(int *)(v22 + 20) & 0xF0) == 128 ) + { + v168 = "sp91a"; + a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v22 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0); + v28 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255); + goto LABEL_57; + } + v168 = "sptext01"; + a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v22 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0); + v28 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255); + goto LABEL_57; + } + v168 = "sp30a"; + } + v26 = pIcons_LOD; + a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v22 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0); + v28 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255); + goto LABEL_57; + } + v26 = pIcons_LOD; + v168 = "sptext01"; + a2b = &pIcons_LOD->pTextures[v26->LoadTexture(v168, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v22 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v27 = (Texture *)(v241 != -1 ? (int)&pIcons_LOD->pTextures[v241] : 0); + v28 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v24, a3b, v27, a2b, (signed __int64)v28, 0, 255); + goto LABEL_57;; + } + a3 = pPaperdoll_BodyY; + a2 = pPaperdoll_BodyX; + v240 = 4 * uPlayerID_ - 4; + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, + (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0)); + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2, a3, + (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0), + pPlayer->pEquipment.uBody); + uPlayerID_a = 2 * pBodyComplection; + v6 = pPlayer->pEquipment.uMainHand; + if ( !v6 + || (v7 = *(int *)&pPlayer->pInventoryItems[v6-1], pItemsTable->pItems[v7].uEquipType != 1) + && (pItemsTable->pItems[v7].uSkillType != 4 || pPlayer->pEquipment.uOffHand) ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0)); + v8 = pPlayer->pEquipment.uMainHand; + if ( v8 ) + { + v229 = pPlayer->pEquipment.uMainHand; + v9 = (int)&pPlayer->pInventoryItems[v8-1]; + // v10 = pBodyComplection << 7; + v218 = v9; + v11 = *(int *)v9; + v12 = *(int *)v9; + v13 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[v12].uEquipX; + a2a = v13; + a3a = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[v12].uEquipY; + if ( v11 == 64 ) + v166 = "item64v1"; + else + v166 = pItemsTable->pItems[v12].pIconName; + v14 = pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE); + v15 = *(int *)(v218 + 20); + if ( *(int *)(v218 + 20) & 0xF0 ) + { + if ( (*(int *)(v218 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v218 + 20) & 0xF0) == 32 ) + { + v167 = "sp28a"; + //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548); + v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v218 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v17 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255); + goto LABEL_393;; + } + if ( (*(int *)(v218 + 20) & 0xF0) == 64 ) + { + v167 = "sp30a"; + //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548); + v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v218 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v17 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255); + goto LABEL_393; + } + if ( (*(int *)(v218 + 20) & 0xF0) == 128 ) + { + v167 = "sp91a"; + //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548); + v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v218 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v17 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255); + goto LABEL_393; + } + } + v167 = "sptext01"; + //v16 = (Texture *)(72 * pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE) + 7145548); + v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v218 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v17 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(v13, a3a, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255); + goto LABEL_393; + } + v18 = v14 + 1; + v19 = (char *)&pIcons_LOD->pTextures[v14]; + if ( v15 & 2 ) + { + v20 = (Texture *)(v18 != 0 ? (int)v19 : 0); + pRenderer->DrawTransparentRedShade(a2a, a3a, v20); + } + else + { + if ( v15 & 1 ) + { + v20 = (Texture *)(v18 != 0 ? (int)v19 : 0); + pRenderer->DrawTextureTransparent(a2a, a3a, v20); + } + else + { + v20 = (Texture *)(v18 != 0 ? (int)v19 : 0); + pRenderer->DrawTransparentGreenShade(a2a, a3a, v20); + } + } + if ( !bRingsShownInCharScreen ) + pRenderer->_4A612A(a2a, a3a, v20, v229); + } +LABEL_393: + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[uPlayerID_a], + pPaperdoll_BodyY + pPaperdoll_RightHand[uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_drhs + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_drhs + v240)] : 0)); + v161 = pPlayer->pEquipment.uMainHand; + if ( v161 ) + { + v162 = *(int *)&pPlayer->pInventoryItems[v161-1]; + if ( pItemsTable->pItems[v162].uEquipType == 1 || pItemsTable->pItems[v162].uSkillType == 4 && !pPlayer->pEquipment.uOffHand ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a], + pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1], + (Texture *)(*(unsigned int *)((char *)papredoll_dlhus + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlhus + v240)] : 0)); + } + if ( !bRingsShownInCharScreen ) + pRenderer->DrawTextureTransparent(0x25Bu, 0x12Bu, + (Texture *)(uTextureID_MAGNIF_B != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_MAGNIF_B] : 0)); + pRenderer->DrawTextureTransparent(0x1D4u, 0, + (Texture *)(uTextureID_507B04 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507B04] : 0)); + } + + + //----- (0043E825) -------------------------------------------------------- + void __fastcall CharacterUI_DrawPaperdollWithRingOverlay(unsigned int uPlayerID) + { + unsigned int v1; // ebx@1 + Player *pPlayer; // edi@1 + int v3; // ecx@1 + int *v4; // edi@3 + unsigned int v5; // ebx@3 + int v6; // eax@3 + LODFile_IconsBitmaps *v7; // ecx@7 + double v8; // st7@16 + int v9; // edi@17 + Texture *v10; // edi@18 + unsigned __int8 v11; // zf@19 + Texture *v12; // eax@19 + char v13; // sf@24 + unsigned __int8 v14; // of@24 + unsigned int v15; // eax@25 + unsigned int v16; // ebx@26 + int v17; // eax@26 + LODFile_IconsBitmaps *v18; // ecx@30 + double v19; // st7@39 + int v20; // edi@40 + int v21; // eax@41 + signed int v22; // ebx@41 + Texture *v23; // edi@41 + int v24; // eax@42 + char *v25; // eax@42 + unsigned int v26; // eax@46 + int v27; // edi@47 + unsigned int v28; // ebx@47 + int v29; // eax@47 + LODFile_IconsBitmaps *v30; // ecx@51 + Texture *v31; // esi@58 + double v32; // st7@60 + int v33; // esi@61 + int v34; // esi@62 + Texture *v35; // eax@63 + const char *v36; // [sp-8h] [bp-38h]@8 + const char *v37; // [sp-8h] [bp-38h]@31 + const char *v38; // [sp-8h] [bp-38h]@52 + int v39; // [sp+10h] [bp-20h]@3 + Texture *v40; // [sp+10h] [bp-20h]@14 + int v41; // [sp+10h] [bp-20h]@26 + Texture *v42; // [sp+10h] [bp-20h]@37 + int v43; // [sp+10h] [bp-20h]@47 + unsigned int a3; // [sp+14h] [bp-1Ch]@3 + unsigned int a2; // [sp+18h] [bp-18h]@3 + unsigned int *v46; // [sp+1Ch] [bp-14h]@1 + Player *v47; // [sp+20h] [bp-10h]@1 + int v48; // [sp+24h] [bp-Ch]@1 + int v49; // [sp+24h] [bp-Ch]@26 + + v1 = uPlayerID; + pPlayer = pPlayers[uPlayerID]; + v47 = pPlayers[uPlayerID]; + pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); + CharacterUI_DrawPaperdoll(v1); + pRenderer->DrawTextureTransparent(0x1D9u, 0, (Texture *)(uTextureID_BACKHAND != -1 ? &pIcons_LOD->pTextures[uTextureID_BACKHAND] : 0)); + pRenderer->DrawTextureTransparent(0x1D4u, 0, (Texture *)(uTextureID_507B04 != -1 ? &pIcons_LOD->pTextures[uTextureID_507B04] : 0)); + pRenderer->DrawTextureIndexed(pCharacterScreen_DetalizBtn->uX, pCharacterScreen_DetalizBtn->uY, + (Texture *)(uTextureID_5118C8 != -1 ? &pIcons_LOD->pTextures[uTextureID_5118C8] : 0)); + v3 = 0; + v46 = &pPlayer->pEquipment.field_28; + v48 = 0; + do + { + if ( !*v46 ) + goto LABEL_24; + v39 = *v46; + v4 = (int *)&pPlayer->pInventoryItems[*v46-1].uItemID; + a3 = pPaperdollRingsY[v3]; + a2 = pPaperdollRingsX[v3]; + v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*v4].pIconName, TEXTURE_16BIT_PALETTE); + v6 = *(int *)(v4 + 20); + if ( *(int *)(v4 + 20) & 0xF0 ) + { + if ( (*(int *)(v4 + 20) & 0xF0) != 16 ) + { + if ( (*(int *)(v4 + 20) & 0xF0) == 32 ) + { + v36 = "sp28a"; + } + else + { + if ( (*(int *)(v4 + 20) & 0xF0) != 64 ) + { + v7 = pIcons_LOD; + if ( (*(int *)(v4 + 20) & 0xF0) == 128 ) + { + v36 = "sp91a"; +LABEL_14: + v40 = &pIcons_LOD->pTextures[v7->LoadTexture(v36, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v4 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v8 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(a2, a3, (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0), + v40, (signed __int64)v8, 0, 255); + goto LABEL_23; + } +LABEL_13: + v36 = "sptext01"; + goto LABEL_14; + } + v36 = "sp30a"; + } + v7 = pIcons_LOD; + goto LABEL_14; + } + v7 = pIcons_LOD; + goto LABEL_13; + } + v9 = v5 + 1; + if ( v6 & 2 ) + { + v10 = (Texture *)(v9 != 0 ? (int)&pIcons_LOD->pTextures[v5] : 0); + pRenderer->DrawTransparentRedShade(a2, a3, v10); + } + else + { + v11 = (v6 & 1) == 0; + v12 = &pIcons_LOD->pTextures[v5]; + if ( v11 ) + { + v10 = (Texture *)(v9 != 0 ? (int)v12 : 0); + pRenderer->DrawTransparentGreenShade(a2, a3, v10); + } + else + { + v10 = (Texture *)(v9 != 0 ? (int)v12 : 0); + pRenderer->DrawTextureTransparent(a2, a3, v10); + } + } + pRenderer->_4A601E(a2, a3, v10, v39); +LABEL_23: + pPlayer = v47; +LABEL_24: + v46 += 4; + v3 = v48 + 4; + v14 = __OFSUB__(v48 + 4, 20); + v11 = v48 == 16; + v13 = v48 - 16 < 0; + v48 += 4; + } + while ( (unsigned __int8)(v13 ^ v14) | v11 ); + v15 = pPlayer->pEquipment.field_24; + if ( !v15 ) + goto LABEL_46; + v41 = pPlayer->pEquipment.field_24; + v49 = (int)&pPlayer->pInventoryItems[v15-1]; + v16 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*(int *)v49].pIconName, TEXTURE_16BIT_PALETTE); + v17 = *(int *)(v49 + 20); + if ( !(*(int *)(v49 + 20) & 0xF0) ) + { + v20 = v16 + 1; + if ( v17 & 2 ) + { + v21 = 9 * v16; + v22 = 493; + v23 = (Texture *)(v20 != 0 ? (int)&pIcons_LOD->pTextures[8 * v21 / 0x48u] : 0); + pRenderer->DrawTransparentRedShade(0x1EDu, 0x5Bu, v23); + } + else + { + v11 = (v17 & 1) == 0; + v24 = 9 * v16; + v22 = 493; + v25 = (char *)&pIcons_LOD->pTextures[8 * v24 / 0x48u]; + if ( v11 ) + { + v23 = (Texture *)(v20 != 0 ? (int)v25 : 0); + pRenderer->DrawTransparentGreenShade(493, 91, v23); + } + else + { + v23 = (Texture *)(v20 != 0 ? (int)v25 : 0); + pRenderer->DrawTextureTransparent(0x1EDu, 0x5Bu, v23); + } + } + pRenderer->_4A601E(v22, 91, v23, v41); + pPlayer = v47; + goto LABEL_46; + } + if ( (*(int *)(v49 + 20) & 0xF0) == 16 ) + { + v18 = pIcons_LOD; + goto LABEL_36; + } + if ( (*(int *)(v49 + 20) & 0xF0) == 32 ) + { + v37 = "sp28a"; + goto LABEL_34; + } + if ( (*(int *)(v49 + 20) & 0xF0) == 64 ) + { + v37 = "sp30a"; +LABEL_34: + v18 = pIcons_LOD; + goto LABEL_37; + } + v18 = pIcons_LOD; + if ( (*(int *)(v49 + 20) & 0xF0) == 128 ) + { + v37 = "sp91a"; + goto LABEL_37; + } +LABEL_36: + v37 = "sptext01"; +LABEL_37: + v42 = &pIcons_LOD->pTextures[v18->LoadTexture(v37, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v49 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v19 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6( + 0x1EDu, + 0x5Bu, + (Texture *)(v16 != -1 ? (int)&pIcons_LOD->pTextures[v16] : 0), + v42, + (signed __int64)v19, + 0, + 255); +LABEL_46: + v26 = pPlayer->pEquipment.field_1C; + if ( !v26 ) + return; + v43 = pPlayer->pEquipment.field_1C; + v27 = (int)&pPlayer->pInventoryItems[v26-1]; + v28 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*(int *)v27].pIconName, TEXTURE_16BIT_PALETTE); + v29 = *(int *)(v27 + 20); + if ( !(*(int *)(v27 + 20) & 0xF0) ) + { + v33 = v28 + 1; + if ( v29 & 2 ) + { + v34 = v33 != 0 ? (int)&pIcons_LOD->pTextures[v28] : 0; + pRenderer->DrawTransparentRedShade(0x24Au, 0x58u, (Texture *)v34); + } + else + { + v11 = (v29 & 1) == 0; + v35 = &pIcons_LOD->pTextures[v28]; + if ( v11 ) + { + v34 = v33 != 0 ? (int)v35 : 0; + pRenderer->DrawTransparentGreenShade(586, 88, (Texture *)v34); + } + else + { + v34 = v33 != 0 ? (int)v35 : 0; + pRenderer->DrawTextureTransparent(0x24Au, 0x58u, (Texture *)v34); + } + } + pRenderer->_4A601E(586, 88, (Texture *)v34, v43); + return; + } + if ( (*(int *)(v27 + 20) & 0xF0) == 16 ) + { + v30 = pIcons_LOD; + goto LABEL_57; + } + if ( (*(int *)(v27 + 20) & 0xF0) == 32 ) + { + v38 = "sp28a"; + goto LABEL_55; + } + if ( (*(int *)(v27 + 20) & 0xF0) == 64 ) + { + v38 = "sp30a"; +LABEL_55: + v30 = pIcons_LOD; + goto LABEL_58; + } + v30 = pIcons_LOD; + if ( (*(int *)(v27 + 20) & 0xF0) == 128 ) + { + v38 = "sp91a"; + goto LABEL_58; + } +LABEL_57: + v38 = "sptext01"; +LABEL_58: + v31 = &pIcons_LOD->pTextures[v30->LoadTexture(v38, TEXTURE_16BIT_PALETTE)]; + dword_50C9A8 -= pEventTimer->uTimeElapsed; + if ( dword_50C9A8 <= 0 ) + { + dword_50C9A8 = 0; + *(char *)(v27 + 20) &= 0xFu; + ptr_50C9A4 = 0; + } + v32 = (double)GetTickCount() * 0.1; + pRenderer->_4A63E6(0x24Au, 0x58u, (Texture *)(v28 != -1 ? (int)&pIcons_LOD->pTextures[v28] : 0), + v31, (signed __int64)v32, 0, 255); + } + +//----- (0043BCA7) -------------------------------------------------------- +void CharacterUI_LoadPaperdollTextures() +{ + int v0; // edi@7 + enum CHARACTER_RACE pRace; // ebx@7 + signed int pSex; // eax@7 + int v3; // ebx@10 + Player *pPlayer; // edi@12 + unsigned __int8 v5; // cl@12 + int v6; // edi@16 + unsigned int v7; // eax@16 + Player *pPlayer2; // ebx@16 + char *v9; // ebx@16 + char v10; // al@16 + signed int v11; // edi@21 + Player *pPlayer3; // ebx@23 + //Player *pPlayer4; // edi@29 + //int v14; // ebp@29 + //stru331 *v15; // edi@65 + //signed int v16; // ebx@66 + //unsigned int v17; // eax@67 + //unsigned int *v18; // ecx@67 + //unsigned int *v19; // ebx@68 + //int v20; // edi@73 + int v21; // ebp@73 + unsigned int v22; // eax@76 + int v23; // ecx@76 + unsigned int v24; // eax@78 + int v25; // ecx@78 + int v26; // ebx@79 + unsigned int v27; // eax@80 + int v28; // ecx@80 + //int result; // eax@83 + int v30; // [sp+10h] [bp-28h]@5 + //signed int v31; // [sp+10h] [bp-28h]@68 + signed int v32; // [sp+10h] [bp-28h]@75 + signed int v33; // [sp+10h] [bp-28h]@77 + int v34; // [sp+10h] [bp-28h]@79 + //char *v35; // [sp+14h] [bp-24h]@65 + int v36; // [sp+14h] [bp-24h]@75 + int v37; // [sp+14h] [bp-24h]@77 + signed int v38; // [sp+14h] [bp-24h]@79 + //unsigned int *v39; // [sp+18h] [bp-20h]@66 + int *v40; // [sp+18h] [bp-20h]@73 + //unsigned int *v41; // [sp+1Ch] [bp-1Ch]@73 + int v42; // [sp+20h] [bp-18h]@6 + int v43; // [sp+20h] [bp-18h]@73 + char pContainer[128]; // [sp+24h] [bp-14h]@12 + + uTextureID_MAGNIF_B = pIcons_LOD->LoadTexture("MAGNIF-B", TEXTURE_16BIT_PALETTE); + //if ( !pParty->uAlignment || pParty->uAlignment == 1 || pParty->uAlignment == 2 ) + uTextureID_BACKDOLL = pIcons_LOD->LoadTexture("BACKDOLL", TEXTURE_16BIT_PALETTE); + uTextureID_507B04 = uTextureID_right_panel; + v30 = 0; + uTextureID_BACKHAND = pIcons_LOD->LoadTexture("BACKHAND", TEXTURE_16BIT_PALETTE); + uTextureID_5118C8 = uExitCancelTextureId; + do + { + v42 = v30 + 1; + if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(v30 + 1) ) + { + v0 = v30; + pRace = pPlayers[v30 + 1]->GetRace(); + pSex = pPlayers[v30 + 1]->GetSexByVoice(); + if ( pRace && pRace != 1 && pRace != 2 )//race == 3 + v3 = (pSex != 0) + 3; + else + v3 = (pSex != 0) + 1; + wsprintfA(pContainer, "pc23v%dBod", v3); + papredoll_dbods[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Body texture + wsprintfA(pContainer, "pc23v%dlad", v3); + papredoll_dlads[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand + wsprintfA(pContainer, "pc23v%dlau", v3); + papredoll_dlaus[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand2 + wsprintfA(pContainer, "pc23v%drh", v3); + papredoll_drhs[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Right Hand + wsprintfA(pContainer, "pc23v%dlh", v3); + papredoll_dlhs[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Fist + wsprintfA(pContainer, "pc23v%dlhu", v3); + papredoll_dlhus[v0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); // Left Fist 2 + pPlayer = pPlayers[v0 + 1]; + v5 = pPlayer->uFace; + if ( v5 == 12 || v5 == 13 ) + papredoll_dbrds[(char)v5] = 0; + papredoll_flying_feet[pPlayer->uFace] = 0; + IsPlayerWearingWatersuit[v30 + 1] = 1; + } + else + { + v6 = v30; + papredoll_dbods[v30] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + papredoll_dlads[v30] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + papredoll_dlaus[v30] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + papredoll_drhs[v30] = pIcons_LOD->LoadTexture(drh_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + papredoll_dlhs[v30] = pIcons_LOD->LoadTexture(dlh_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + v7 = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[v30 + 1]->uFace], TEXTURE_16BIT_PALETTE); + pPlayer2 = pPlayers[v30 + 1]; + papredoll_dlhus[v30] = v7; + v9 = (char *)&pPlayer2->uFace; + v10 = *v9; + if ( *v9 == 12 || v10 == 13 ) + { + wsprintfA(pContainer, "pc%02dbrd", v10 + 1); + v9 = (char *)&pPlayers[v6 + 1]->uFace; + papredoll_dbrds[*v9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + } + wsprintfA(pContainer, "item281pc%02d", *v9 + 1); + papredoll_flying_feet[pPlayers[v6 + 1]->uFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + IsPlayerWearingWatersuit[v30 + 1] = 0; + } + ++v30; + } + while ( v42 < 4 ); + uTextureID_ar_up_up = pIcons_LOD->LoadTexture("ar_up_up", TEXTURE_16BIT_PALETTE); + uTextureID_ar_up_dn = pIcons_LOD->LoadTexture("ar_up_dn", TEXTURE_16BIT_PALETTE); + uTextureID_ar_dn_up = pIcons_LOD->LoadTexture("ar_dn_up", TEXTURE_16BIT_PALETTE); + uTextureID_ar_dn_dn = pIcons_LOD->LoadTexture("ar_dn_dn", TEXTURE_16BIT_PALETTE); + papredoll_dbrds[9] = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE); + papredoll_dbrds[7] = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE); + papredoll_dbrds[5] = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE); + papredoll_dbrds[3] = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE); + papredoll_dbrds[1] = pIcons_LOD->LoadTexture("ib-cd5-d", TEXTURE_16BIT_PALETTE); + v11 = 0; + do + { + byte_5111C0[v11] = 0; + if ( pParty->pPickedItem.uItemID != v11 + 66 ) + { + pPlayer3 = pParty->pPlayers; + while ( !sub_43EE15_player_has_item(v11 + 66, pPlayer3, 0) ) + { + ++pPlayer3; + if ( (signed int)pPlayer3 >= (signed int)pParty->pHirelings ) + goto LABEL_28; + } + } + byte_5111C0[v11] = 1; +LABEL_28: + ++v11; + } + while ( v11 < 54 ); + + memset(byte_5111F6, 0, 16); + for (uint i = 0; i < 4; ++i) + { + auto player = pParty->pPlayers + i; + + if (sub_43EE15_player_has_item(ITEM_ARTICACT_GOVERNONS_ARMOR, player, 1)) byte_5111F6[0] = 1; + if (sub_43EE15_player_has_item(ITEM_ARTIFACT_YORUBA, player, 1)) byte_5111F6[1] = 1; + if (sub_43EE15_player_has_item(ITEM_RELIC_HARECS_LEATHER, player, 1)) byte_5111F6[2] = 1; + if (sub_43EE15_player_has_item(ITEM_ARTIFACT_LEAGUE_BOOTS, player, 1)) byte_5111F6[3] = 1; + if (sub_43EE15_player_has_item(ITEM_RELIC_TALEDONS_HELM, player, 1)) byte_5111F6[4] = 1; + if (sub_43EE15_player_has_item(ITEM_RELIC_SCHOLARS_CAP, player, 1)) byte_5111F6[5] = 1; + if (sub_43EE15_player_has_item(ITEM_RELIC_PHYNAXIAN_CROWN, player, 1)) byte_5111F6[6] = 1; + if (sub_43EE15_player_has_item(ITEM_ARTIFACT_MINDS_EYE, player, 1)) byte_5111F6[7] = 1; + if (sub_43EE15_player_has_item(ITEM_RARE_SHADOWS_MASK, player, 1)) byte_5111F6[8] = 1; + if (sub_43EE15_player_has_item(ITEM_RILIC_TITANS_BELT, player, 1)) byte_5111F6[9] = 1; + if (sub_43EE15_player_has_item(ITEM_ARTIFAT_HEROS_BELT, player, 1)) byte_5111F6[10] = 1; + if (sub_43EE15_player_has_item(ITEM_RELIC_TWILIGHT, player, 1)) byte_5111F6[11] = 1; + if (sub_43EE15_player_has_item(ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP, player, 1)) byte_5111F6[12] = 1; + if (sub_43EE15_player_has_item(ITEM_RARE_SUN_CLOAK, player, 1)) byte_5111F6[13] = 1; + if (sub_43EE15_player_has_item(ITEM_RARE_MOON_CLOAK, player, 1)) byte_5111F6[14] = 1; + if (sub_43EE15_player_has_item(ITEM_RARE_VAMPIRES_CAPE, player, 1)) byte_5111F6[15] = 1; + if (sub_43EE15_player_has_item(ITEM_ELVEN_CHAINMAIL, player, 1)) byte_5111F6[16] = 1; + } + + //v14 = 1; + //v15 = &stru_511698.field_2C; + //v35 = (char *)&stru_511718.field_18; + for (uint i = 0; i < 2; ++i) + { + //v16 = 0; + //v39 = (unsigned int *)(v35 - 24); + for (uint j = 0; j < 5; ++j) + { + _43C91D_FormItemTextureFilename(pContainer, j + 100, i + 1, 0); + //v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + //++v16; + //v18 = v39; + //++v39; + //*v18 = v17; + stru_511718[i].texids[j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + } + //while ( v16 < 5 ); + + //*(int *)v35 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 535, i + 1, 0); + stru_511718[i].texid2 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + + //v31 = 0; + //v19 = (unsigned int *)((char *)v15 - 44); + for (uint j = 0; j < 11; ++j) + { + _43C91D_FormItemTextureFilename(pContainer, j + 89, i + 1, 0); + //*v19 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + //++v19; + stru_511698[i].texids[j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + } + //while ( v31 < 11 ); + + _43C91D_FormItemTextureFilename(pContainer, 521, i + 1, 0); + stru_511698[i].texid1 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 522, i + 1, 0); + stru_511698[i].texid2 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 523, i + 1, 0); + stru_511698[i].texid3 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 532, i + 1, 0); + stru_511698[i].texid4 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 544, i + 1, 0); + stru_511698[i].texid5 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + if ( _43ED6F_check_party_races(true) ) + papredoll_dbrds[11] = pIcons_LOD->LoadTexture("item092v3", TEXTURE_16BIT_PALETTE); + //v35 += 28; + //++v14; + //++v15; + } + //while ( v14 - 1 < 2 ); + + v43 = 0; + //v20 = 1; + v40 = &dword_511638[0][5]; + v21 = (int)paperdoll_array_511290[0][13]; + //v41 = (unsigned int *)&stru_511718.texid1; + for (uint i = 0; i < 4; ++i) + { + if ( sub_43EDB9_get_some_race_sex_relation_2(i) ) + { + _43C91D_FormItemTextureFilename(pContainer, 524, i + 1, 0); + v32 = 66; + stru_511718[i].texid1 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + v36 = v21 - 152; + do + { + _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 0); + *(int *)(v36 - 4) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 1); + *(int *)v36 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, v32, i + 1, 2); + v22 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + v23 = v36; + v36 += 12; + ++v32; + *(int *)(v23 + 4) = v22; + } + while ( v32 - 66 < 13 ); + _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 0); + *(int *)v21 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 1); + *(int *)(v21 + 4) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 516, i + 1, 2); + *(int *)(v21 + 8) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 0); + *(int *)(v21 + 12) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 1); + *(int *)(v21 + 16) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 505, i + 1, 2); + *(int *)(v21 + 20) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 0); + *(int *)(v21 + 24) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 1); + *(int *)(v21 + 28) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 504, i + 1, 2); + *(int *)(v21 + 32) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 0); + *(int *)(v21 + 36) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 1); + *(int *)(v21 + 40) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 533, i + 1, 2); + *(int *)(v21 + 44) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + v33 = 0; + v37 = (int)(v40 - 5); + do + { + _43C91D_FormItemTextureFilename(pContainer, v33 + 115, i + 1, 0); + v24 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + ++v33; + v25 = v37; + v37 += 4; + *(int *)v25 = v24; + } + while ( v33 < 5 ); + _43C91D_FormItemTextureFilename(pContainer, 512, i + 1, 0); + v26 = v43; + v38 = 105; + v34 = v43; + *v40 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + do + { + _43C91D_FormItemTextureFilename(pContainer, v38, i + 1, 0); + *(int *)((char *)paperdoll_array_511828 + v34) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, v38, i + 1, 1); + v27 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + v28 = v34; + v34 += 4; + ++v38; + *(int *)((char *)dword_511788 + v28) = v27; + } + while ( v38 - 105 < 5 ); + _43C91D_FormItemTextureFilename(pContainer, 525, i + 1, 0); + *(int *)((char *)&paperdoll_array_511828[0][5] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 530, i + 1, 0); + *(int *)((char *)&paperdoll_array_511828[0][6] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 547, i + 1, 0); + *(int *)((char *)&paperdoll_array_511828[0][7] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 548, i + 1, 0); + *(int *)((char *)&paperdoll_array_511828[0][8] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 550, i + 1, 0); + *(int *)((char *)&paperdoll_array_511828[0][9] + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 525, i + 1, 1); + *(int *)((char *)&dword_51179C + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 530, i + 1, 1); + *(int *)((char *)&dword_5117A0 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 547, i + 1, 1); + *(int *)((char *)&dword_5117A4 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 548, i + 1, 1); + *(int *)((char *)&dword_5117A8 + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + _43C91D_FormItemTextureFilename(pContainer, 550, i + 1, 1); + *(int *)((char *)&dword_5117AC + v43) = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + } + else + { + v26 = v43; + } + //v41 += 7; + v40 += 6; + v21 += 204; + //++v20; + //result = v20 - 1; + v43 = v26 + 40; + } + //while ( v20 - 1 < 4 ); + //return result; +} + +//----- (00419401) -------------------------------------------------------- +void __cdecl CharacterUI_SkillScreen_Draw() + { + 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 + + a2 = 0; + if ( dword_507CC0 ) + sub_4196A0(); + v0 = uActiveCharacter; + dword_507CC0 = uActiveCharacter; + for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext ) + { + if ( pButton->uControlID == 120 ) + { + dword_50698C = pButton->uX; + dword_506988 = pButton->uY; + dword_506984 = pButton->uZ; + dword_506980 = pButton->uW; + pButton->uW = 0; + pButton->uZ = 0; + pButton->uY = 0; + pButton->uX = 0; + v0 = uActiveCharacter; + } + } + v12 = 0; + a5 = pGUIWindow_CurrentMenu->uNumControls; + v18 = &pParty->pPlayers[v0-1]; + v2 = pFontLucida; + v14 = pWeaponSkills; + v3 = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; + do + { + if ( v18->pActiveSkills[*v14] & 0x3F )//crash + { + v4 = LOBYTE(v2->uFontHeight); + v3 = v3 + v4 - 3; + ++a2; + ++v12; + pGUIWindow_CurrentMenu->CreateButton(0x18u, v3, 0xCCu, v4 - 3, 3, *v14 | 0x8000, 0x79u, *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, 0x79u, *v15, 0, "", 0, 0); + v2 = pFontLucida; + } + ++v15; + } + 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, 0x79u, *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, 0x79u, *v17, 0, "", 0, 0); + v2 = pFontLucida; + } + ++v17; + } + while ( v17 <= &pMiscSkills[11] ); + if ( a2 ) + pGUIWindow_CurrentMenu->_41D08F(a2, 1, 0, a5); + } + + + //----- (00418511) -------------------------------------------------------- + char __fastcall CharacterUI_StatsTab_Draw(unsigned int uPlayerID) + { + Player *pPlayer; // edi@1 + unsigned int v2; // eax@1 + unsigned int v3; // eax@1 + unsigned int v4; // eax@2 + int v5; // ST20_4@4 + int v6; // ST1C_4@4 + int v7; // ebp@4 + int v8; // eax@4 + unsigned int v9; // eax@4 + int v10; // ST34_4@4 + int v11; // ST20_4@4 + int v12; // ST1C_4@4 + int v13; // ebp@4 + int v14; // eax@4 + unsigned int v15; // eax@4 + int v16; // ST34_4@4 + int v17; // ST20_4@4 + int v18; // ST1C_4@4 + int v19; // ebp@4 + int v20; // eax@4 + unsigned int v21; // eax@4 + int v22; // ST34_4@4 + int v23; // ST20_4@4 + int v24; // ST1C_4@4 + int v25; // ebp@4 + int v26; // eax@4 + unsigned int v27; // eax@4 + int v28; // ST34_4@4 + int v29; // ST20_4@4 + int v30; // ST1C_4@4 + int v31; // ebp@4 + int v32; // eax@4 + unsigned int v33; // eax@4 + int v34; // ST34_4@4 + int v35; // ST20_4@4 + int v36; // ST1C_4@4 + int v37; // ebp@4 + int v38; // eax@4 + unsigned int v39; // eax@4 + int v40; // ST34_4@4 + int v41; // ST20_4@4 + int v42; // ST1C_4@4 + int v43; // ebp@4 + int v44; // eax@4 + unsigned int v45; // eax@4 + int v46; // ebp@4 + signed int v47; // ST20_4@6 + int v48; // ST1C_4@6 + signed int v49; // eax@6 + unsigned int v50; // eax@6 + int v51; // ST20_4@8 + int v52; // ST1C_4@8 + int v53; // eax@8 + unsigned int v54; // eax@8 + int v55; // ST34_4@8 + int v56; // ST20_4@8 + int v57; // ST1C_4@8 + int v58; // ebp@8 + int v59; // eax@8 + unsigned int v60; // eax@8 + unsigned int v61; // ebp@8 + unsigned int v62; // eax@8 + char *v63; // ST20_4@8 + signed int v64; // eax@8 + unsigned int v65; // ebp@8 + unsigned __int8 v66; // al@8 + char *v67; // eax@9 + unsigned int v68; // ST20_4@11 + unsigned int v69; // ST1C_4@11 + signed int v70; // ebp@11 + signed int v71; // eax@11 + unsigned int v72; // eax@11 + int v73; // ST20_4@13 + int v74; // ST1C_4@13 + int v75; // ebp@13 + int v76; // eax@13 + unsigned int v77; // eax@13 + char *v78; // ecx@14 + int v79; // ST20_4@16 + char *v80; // ST40_4@16 + unsigned int v81; // eax@16 + int v82; // ST34_4@16 + int v83; // eax@16 + int v84; // ST34_4@16 + char *v85; // eax@16 + int v86; // ST34_4@16 + int v87; // eax@16 + int v88; // ST34_4@16 + char *v89; // eax@16 + int v90; // eax@16 + int v91; // ST20_4@19 + unsigned int v92; // eax@19 + int v93; // eax@19 + int v94; // ST20_4@22 + unsigned int v95; // eax@22 + int v96; // eax@22 + int v97; // ST20_4@25 + unsigned int v98; // eax@25 + int v99; // eax@25 + int v100; // ST20_4@27 + unsigned int v101; // eax@27 + int v102; // eax@27 + int v103; // ST20_4@30 + unsigned int v104; // eax@30 + char *v105; // ST20_4@32 + unsigned int v106; // eax@32 + int v107; // eax@33 + int v108; // ST20_4@36 + unsigned int v109; // eax@36 + char *v110; // ST20_4@38 + unsigned int v111; // eax@38 + int uY; // [sp+10h] [bp-10h]@6 + int uYa; // [sp+10h] [bp-10h]@11 + int uYb; // [sp+10h] [bp-10h]@13 + int uYc; // [sp+10h] [bp-10h]@16 + int uYd; // [sp+10h] [bp-10h]@19 + int uYe; // [sp+10h] [bp-10h]@22 + int uYf; // [sp+10h] [bp-10h]@25 + int uYg; // [sp+10h] [bp-10h]@27 + int uYh; // [sp+10h] [bp-10h]@33 + const char *a2; // [sp+14h] [bp-Ch]@4 + const char *a2a; // [sp+14h] [bp-Ch]@6 + const char *a2b; // [sp+14h] [bp-Ch]@11 + const char *a2c; // [sp+14h] [bp-Ch]@16 + const char *a2d; // [sp+14h] [bp-Ch]@19 + const char *a2e; // [sp+14h] [bp-Ch]@22 + const char *a2f; // [sp+14h] [bp-Ch]@25 + const char *a2g; // [sp+14h] [bp-Ch]@27 + const char *a2h; // [sp+14h] [bp-Ch]@33 + int v131; // [sp+18h] [bp-8h]@16 + int v132; // [sp+18h] [bp-8h]@19 + int v133; // [sp+18h] [bp-8h]@22 + int v134; // [sp+18h] [bp-8h]@25 + int v135; // [sp+18h] [bp-8h]@27 + int v136; // [sp+18h] [bp-8h]@33 + int v137; // [sp+1Ch] [bp-4h]@27 + int v138; // [sp+1Ch] [bp-4h]@33 + + pPlayer = &pParty->pPlayers[uPlayerID-1]; + v2 = pIcons_LOD->LoadTexture("fr_stats", TEXTURE_16BIT_PALETTE); + pRenderer->DrawTextureIndexed(8, 8, (Texture *)(v2 != -1 ? (int)&pIcons_LOD->pTextures[v2] : 0)); + v3 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); + sprintf(pTmpBuf, "\f%05d", v3); + sprintf(pTmpBuf2, pGlobalTXT_LocalizationStrings[429], pPlayer->pName, pClassNames[pPlayer->classType]);//^Pi[%s] %s + strcat(pTmpBuf, pTmpBuf2); + if ( pPlayer->uSkillPoints ) + v4 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0); + else + v4 = 0xFFFFu; + sprintf(pTmpBuf2, "\f00000\r180%s: \f%05d%d\f00000\n\n\n", pGlobalTXT_LocalizationStrings[207], v4, pPlayer->uSkillPoints);//Skill points + strcat(pTmpBuf, pTmpBuf2); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, 18, 0, pTmpBuf, 0, 0, 0); + v5 = pPlayer->GetBaseStrength(); + v6 = pPlayer->GetActualMight(); + v7 = pPlayer->GetBaseStrength(); + v8 = pPlayer->GetActualMight(); + v9 = UI_GetHealthManaStringColor(v8, v7); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[144], v9, v6, v5);//Might + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, 53, 0, pTmpBuf, 0, 0, 0); + v10 = LOBYTE(pFontArrus->uFontHeight) + 51; + v11 = pPlayer->GetBaseIntelligence(); + v12 = pPlayer->GetActualIntelligence(); + v13 = pPlayer->GetBaseIntelligence(); + v14 = pPlayer->GetActualIntelligence(); + v15 = UI_GetHealthManaStringColor(v14, v13); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[116], v15, v12, v11);//Intellect + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v10, 0, pTmpBuf, 0, 0, 0); + v16 = LOBYTE(pFontArrus->uFontHeight) + v10 - 2; + v17 = pPlayer->GetBaseWillpower(); + v18 = pPlayer->GetActualWillpower(); + v19 = pPlayer->GetBaseWillpower(); + v20 = pPlayer->GetActualWillpower(); + v21 = UI_GetHealthManaStringColor(v20, v19); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[163], v21, v18, v17);// + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v16, 0, pTmpBuf, 0, 0, 0); + v22 = LOBYTE(pFontArrus->uFontHeight) + v16 - 2; + v23 = pPlayer->GetBaseEndurance(); + v24 = pPlayer->GetActualEndurance(); + v25 = pPlayer->GetBaseEndurance(); + v26 = pPlayer->GetActualEndurance(); + v27 = UI_GetHealthManaStringColor(v26, v25); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[75], v27, v24, v23);// + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v22, 0, pTmpBuf, 0, 0, 0); + v28 = LOBYTE(pFontArrus->uFontHeight) + v22 - 2; + v29 = pPlayer->GetBaseAccuracy(); + v30 = pPlayer->GetActualAccuracy(); + v31 = pPlayer->GetBaseAccuracy(); + v32 = pPlayer->GetActualAccuracy(); + v33 = UI_GetHealthManaStringColor(v32, v31); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[1], v33, v30, v29); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v28, 0, pTmpBuf, 0, 0, 0); + v34 = LOBYTE(pFontArrus->uFontHeight) + v28 - 2; + v35 = pPlayer->GetBaseSpeed(); + v36 = pPlayer->GetActualSpeed(); + v37 = pPlayer->GetBaseSpeed(); + v38 = pPlayer->GetActualSpeed(); + v39 = UI_GetHealthManaStringColor(v38, v37); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[211], v39, v36, v35); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v34, 0, pTmpBuf, 0, 0, 0); + v40 = LOBYTE(pFontArrus->uFontHeight) + v34 - 2; + v41 = pPlayer->GetBaseLuck(); + v42 = pPlayer->GetActualLuck(); + v43 = pPlayer->GetBaseLuck(); + v44 = pPlayer->GetActualLuck(); + v45 = UI_GetHealthManaStringColor(v44, v43); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[136], v45, v42, v41); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v40, 0, pTmpBuf, 0, 0, 0); + a2 = "%s\f%05u\r424%d\f00000 /\t185%d\n"; + v46 = v40 + 2 * LOBYTE(pFontArrus->uFontHeight) + 5; + if ( pPlayer->GetMaxHealth() >= 1000 ) + a2 = "%s\f%05u\r388%d\f00000 / %d\n"; + v47 = pPlayer->GetMaxHealth(); + v48 = pPlayer->sHealth; + v49 = pPlayer->GetMaxHealth(); + v50 = UI_GetHealthManaStringColor(pPlayer->sHealth, v49); + sprintf(pTmpBuf, a2, pGlobalTXT_LocalizationStrings[108], v50, v48, v47); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v46, 0, pTmpBuf, 0, 0, 0); + a2a = "%s\f%05u\r424%d\f00000 /\t185%d\n"; + uY = LOBYTE(pFontArrus->uFontHeight) + v46 - 2; + if ( pPlayer->GetMaxMana() >= 1000 ) + a2a = "%s\f%05u\r388%d\f00000 / %d\n"; + v51 = pPlayer->GetMaxMana(); + v52 = pPlayer->sMana; + v53 = pPlayer->GetMaxMana(); + v54 = UI_GetHealthManaStringColor(pPlayer->sMana, v53); + sprintf(pTmpBuf, a2a, pGlobalTXT_LocalizationStrings[212], v54, v52, v51); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, uY, 0, pTmpBuf, 0, 0, 0); + v55 = LOBYTE(pFontArrus->uFontHeight) + uY - 2; + v56 = pPlayer->GetBaseAC(); + v57 = pPlayer->GetActualAC(); + v58 = pPlayer->GetBaseAC(); + v59 = pPlayer->GetActualAC(); + v60 = UI_GetHealthManaStringColor(v59, v58); + sprintf(pTmpBuf, "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[12], v60, v57, v56); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, v55, 0, pTmpBuf, 0, 0, 0); + v61 = v55 + 2 * LOBYTE(pFontArrus->uFontHeight) - 2; + v62 = pPlayer->GetMajorConditionIdx(); + v63 = aCharacterConditionNames[v62]; + v64 = GetConditionDrawColor(v62); + sprintf(pTmpBuf, "%s: \f%05d%s\n", pGlobalTXT_LocalizationStrings[47], v64, v63); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x1Au, v61, 0, pTmpBuf, 226, 0); + v65 = LOBYTE(pFontArrus->uFontHeight) + v61 - 1; + v66 = pPlayer->uQuickSpell; + if ( v66 ) + v67 = pSpellStats->pInfos[v66].pShortName; + else + v67 = pGlobalTXT_LocalizationStrings[153]; + sprintf(pTmpBuf, "%s: %s", pGlobalTXT_LocalizationStrings[172], v67); + pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 0x1Au, v65, 0, pTmpBuf, 226, 0); + v68 = pPlayer->GetBaseAge(); + v69 = pPlayer->GetActualAge(); + v70 = pPlayer->GetBaseAge(); + v71 = pPlayer->GetActualAge(); + v72 = UI_GetHealthManaStringColor(v71, v70); + sprintf(pTmpBuf, "%s\f%05u\t100%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[5], v72, v69, v68); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, 50, 0, pTmpBuf, 0, 0, 0); + a2b = "%s\f%05u\t100%d\f00000 / %d\n"; + uYa = LOBYTE(pFontArrus->uFontHeight) + 48; + if ( pPlayer->GetBaseLevel() > 99 ) + a2b = format_4E2E68; + v73 = pPlayer->GetBaseLevel(); + v74 = pPlayer->GetActualLevel(); + v75 = pPlayer->GetBaseLevel(); + v76 = pPlayer->GetActualLevel(); + v77 = UI_GetHealthManaStringColor(v76, v75); + sprintf(pTmpBuf, a2b, pGlobalTXT_LocalizationStrings[131], v77, v74, v73); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYa, 0, pTmpBuf, 0, 0, 0); + uYb = uYa + LOBYTE(pFontArrus->uFontHeight) - 2; + if ( (signed __int64)pPlayer->uExperience <= 9999999 ) + v78 = pGlobalTXT_LocalizationStrings[83]; + else + v78 = pGlobalTXT_LocalizationStrings[17]; + v79 = LODWORD(pPlayer->uExperience); + v80 = v78; + v81 = pPlayer->GetExperienceDisplayColor(); + sprintf(pTmpBuf, "%s\r180\f%05d%lu\f00000\n\n", v80, v81, v79); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYb, 0, pTmpBuf, 0, 0, 0); + v82 = uYb + 2 * LOBYTE(pFontArrus->uFontHeight); + v83 = pPlayer->GetActualAttack(0); + sprintf(pTmpBuf, "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[18], v83); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v82, 0, pTmpBuf, 0, 0, 0); + v84 = v82 + LOBYTE(pFontArrus->uFontHeight) - 2; + v85 = pPlayer->GetMeleeDamageString(); + sprintf(pTmpBuf, "%s\t100 %s\n", pGlobalTXT_LocalizationStrings[53], v85); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v84, 0, pTmpBuf, 0, 0, 0); + v86 = v84 + LOBYTE(pFontArrus->uFontHeight) - 2; + v87 = pPlayer->GetRangedAttack(); + sprintf(pTmpBuf, "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[203], v87); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v86, 0, pTmpBuf, 0, 0, 0); + v88 = v86 + LOBYTE(pFontArrus->uFontHeight) - 2; + v89 = pPlayer->GetRangedDamageString(); + sprintf(pTmpBuf, "%s\t100 %s\n\n", pGlobalTXT_LocalizationStrings[53], v89); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, v88, 0, pTmpBuf, 0, 0, 0); + a2c = format_4E2E10; + uYc = v88 + 2 * LOBYTE(pFontArrus->uFontHeight) - 4; + v131 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE); + v90 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE); + if ( v131 > 99 || v90 > 99 ) + a2c = format_4E2E68; + v91 = v90; + v92 = UI_GetHealthManaStringColor(v131, v90); + sprintf(pTmpBuf, a2c, pGlobalTXT_LocalizationStrings[87], v92, v131, v91); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYc, 0, pTmpBuf, 0, 0, 0); + a2d = format_4E2E10; + uYd = uYc + LOBYTE(pFontArrus->uFontHeight) - 2; + v132 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR); + v93 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_AIR); + if ( v132 > 99 || v93 > 99 ) + a2d = format_4E2E68; + v94 = v93; + v95 = UI_GetHealthManaStringColor(v132, v93); + sprintf(pTmpBuf, a2d, pGlobalTXT_LocalizationStrings[6], v95, v132, v94); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYd, 0, pTmpBuf, 0, 0, 0); + a2e = format_4E2E10; + uYe = uYd + LOBYTE(pFontArrus->uFontHeight) - 2; + v133 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER); + v96 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_WATER); + if ( v133 > 99 || v96 > 99 ) + a2e = format_4E2E68; + v97 = v96; + v98 = UI_GetHealthManaStringColor(v133, v96); + sprintf(pTmpBuf, a2e, pGlobalTXT_LocalizationStrings[240], v98, v133, v97); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYe, 0, pTmpBuf, 0, 0, 0); + a2f = format_4E2E10; + uYf = uYe + LOBYTE(pFontArrus->uFontHeight) - 2; + v134 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH); + v99 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH); + if ( v134 > 99 ) + a2f = format_4E2E68; + v100 = v99; + v101 = UI_GetHealthManaStringColor(v134, v99); + sprintf(pTmpBuf, a2f, pGlobalTXT_LocalizationStrings[70], v101, v134, v100); + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYf, 0, pTmpBuf, 0, 0, 0); + a2g = format_4E2E10; + uYg = uYf + LOBYTE(pFontArrus->uFontHeight) - 2; + v135 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND); + v102 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND); + v137 = v102; + if ( v135 > 99 || v102 > 99 ) + a2g = format_4E2E68; + v103 = v102; + v104 = UI_GetHealthManaStringColor(v135, v102); + sprintf(pTmpBuf, a2g, pGlobalTXT_LocalizationStrings[142], v104, v135, v103); + if ( pPlayer->classType == PLAYER_CLASS_LICH && v137 == 200 ) + { + v105 = pGlobalTXT_LocalizationStrings[625]; + v106 = UI_GetHealthManaStringColor(v135, 200); + sprintf(pTmpBuf, format_4E2E00, pGlobalTXT_LocalizationStrings[142], v106, v105); + } + pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYg, 0, pTmpBuf, 0, 0, 0); + a2h = format_4E2E10; + uYh = uYg + LOBYTE(pFontArrus->uFontHeight) - 2; + v136 = pPlayer->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY); + v107 = pPlayer->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY); + v138 = v107; + if ( v136 > 99 || v107 > 99 ) + a2h = format_4E2E68; + v108 = v107; + v109 = UI_GetHealthManaStringColor(v136, v107); + sprintf(pTmpBuf, a2h, pGlobalTXT_LocalizationStrings[29], v109, v136, v108); + if ( pPlayer->classType == PLAYER_CLASS_LICH && v138 == 200 ) + { + v110 = pGlobalTXT_LocalizationStrings[625]; + v111 = UI_GetHealthManaStringColor(v136, 200); + sprintf(pTmpBuf, format_4E2E00, pGlobalTXT_LocalizationStrings[29], v111, v110); + } + return pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, uYh, 0, pTmpBuf, 0, 0, 0); + } + + //----- (00419100) -------------------------------------------------------- + void FillAwardsData() + { + Player *pPlayer; // esi@1 + + pPlayer = pPlayers[uActiveCharacter]; + memset(&achievedAwardsIndex, 0, 4000); + memset(pTmpBuf2, 0, 0x7D0u); + dword_506544 = 0; + dword_506548 = 0; + awards_count = 0; + dword_50651C = 0; + dword_506528 = 0; + for(int i=0; i<105; ++i) + { + if ( _449B57_test_bit((unsigned char*)&pPlayer->_guilds_member_bits, i) && pAwards[i].pText ) + achievedAwardsIndex[awards_count++] = i; + } + awards_count2 = awards_count; + awards_count = 0; + //sort awards index + if ( awards_count2>0 ) + { + for(int i=0; i<awards_count2; ++i) + achievedAwardsIndex[awards_count2 + i] = rand() % 16; + + for(int i=1; i<awards_count2-1; ++i) + { + for (int j = i; j < awards_count2-1; ++j ) + { + int tmp=achievedAwardsIndex[j]; + if(pAwards[j].uSort < pAwards[i].uSort) + { + achievedAwardsIndex[j] = achievedAwardsIndex[i]; + achievedAwardsIndex[i] = tmp; + } + } + } + } + }