changeset 905:6daea87a3fe3

m
author Ritor1
date Fri, 19 Apr 2013 18:11:01 +0600
parents addae461eeb4
children 23655ae9cd18
files Player.h UICharacter.cpp mm7_data.cpp mm7_data.h
diffstat 4 files changed, 889 insertions(+), 1789 deletions(-) [+]
line wrap: on
line diff
--- a/Player.h	Wed Apr 03 19:33:02 2013 +0600
+++ b/Player.h	Fri Apr 19 18:11:01 2013 +0600
@@ -338,7 +338,7 @@
       unsigned int uBelt;
       unsigned int uCloak;
       unsigned int field_1C;
-      unsigned int field_20;
+      unsigned int uBoot;
       unsigned int field_24;
       unsigned int field_28;
       unsigned int field_2C;
--- a/UICharacter.cpp	Wed Apr 03 19:33:02 2013 +0600
+++ b/UICharacter.cpp	Fri Apr 19 18:11:01 2013 +0600
@@ -1183,95 +1183,70 @@
             }
         }
 
-    //----- (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
+//----- (0043CC7C) --------------------------------------------------------
+void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID)
+{
+  signed int pSex; // eax@1
+  unsigned int v6; // ecx@9
         int v7; // ecx@10
-        unsigned int v8; // eax@14
-        int v9; // eax@15
+        unsigned int pMainHandNum4; // eax@14
+        ItemGen *item_MainHand4; // eax@15
         int v10; // edx@15
-        int v11; // ecx@15
-        int v12; // eax@15
-        unsigned int v13; // edi@15
+        unsigned int pX_MainHand4; // 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
+        unsigned int pBowNum; // eax@37
+        ItemGen *itemBow; // edi@38
+        int pX_Bow; // ebx@38
         double v28; // st7@51
-        char v29; // zf@54
         char *v30; // eax@54
-        unsigned int v31; // eax@59
-        int v32; // edx@60
+        unsigned int pCloakNum; // eax@59
+        ItemGen *item_Cloak; // 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
+        unsigned int pBodyNum; // eax@93
+        ItemGen *body; // 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
+        //Texture *pBodyTexture; // edi@121
         char *v55; // eax@122
-        unsigned int v56; // eax@127
-        int v57; // edi@128
-        int v58; // ecx@128
+        unsigned int pBootNum; // eax@127
+        ItemGen *item_Boot; // edi@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
+        unsigned int pMainHandNum; // edx@155
         int v70; // edx@156
-        unsigned int v71; // eax@160
-        int v72; // edi@161
+        unsigned int pBeltNum; // eax@160
+        ItemGen *item_Belt; // 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
+        unsigned int pMainHandNum2; // eax@192
         int v83; // eax@193
-        int v84; // eax@197
-        int v85; // eax@197
-        int v86; // ecx@197
+        int pBodyNum2; // eax@197
+        ItemGen *body2; // ecx@197
         int v87; // eax@197
         int v88; // eax@198
         int v89; // eax@199
@@ -1285,20 +1260,17 @@
         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 pX_armor; // eax@237
+        int pY_armor; // 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
+        unsigned int pCloakNum2; // eax@259
+        ItemGen *item_Cloak2; // eax@260
         int v114; // eax@265
         int v115; // eax@274
         int v116; // ebx@274
@@ -1306,51 +1278,35 @@
         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 pHelmNum; // ebx@297
+        ItemGen *item_Helm; // 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 pMainHandNum3; // eax@335
+        ItemGen *item_MainHand3; // 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
+        unsigned int pOffHandNum; // eax@358
+        ItemGen *item_OffHand; // eax@359
         int v149; // edx@359
-        int v150; // ebx@362
+        int pX_OffHand; // 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
+        unsigned int pMainHandNum5; // eax@393
+        ItemGen *item_MainHand5; // eax@394
         char *v166; // [sp-8h] [bp-54h]@16
         const char *v167; // [sp-8h] [bp-54h]@23
         const char *v168; // [sp-8h] [bp-54h]@43
@@ -1359,1736 +1315,880 @@
         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 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
+        int pY_MainHand4; // [sp+10h] [bp-3Ch]@15
+        int pY_Bow; // [sp+10h] [bp-3Ch]@38
+        unsigned int pY_Cloak; // [sp+10h] [bp-3Ch]@74
+        unsigned int pY_Body; // [sp+10h] [bp-3Ch]@106
+        int pY_Boot; // [sp+10h] [bp-3Ch]@129
+        int pY_Belt; // [sp+10h] [bp-3Ch]@168
+        unsigned int pY_shoulder; // [sp+10h] [bp-3Ch]@216
         unsigned int 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
+        int pY_Helm; // [sp+10h] [bp-3Ch]@312
+        int pY_MainHand3; // [sp+10h] [bp-3Ch]@336
+        int pY_OffHand; // [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 pX_Cloak; // [sp+14h] [bp-38h]@74
+        int pX_Body; // [sp+14h] [bp-38h]@106
+        int pX_Boot; // [sp+14h] [bp-38h]@129
+        int pX_Belt; // [sp+14h] [bp-38h]@168
+        int pX_shoulder; // [sp+14h] [bp-38h]@214
         int 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 pX_Helm; // [sp+14h] [bp-38h]@312
+        int pX_MainHand3; // [sp+14h] [bp-38h]@336
         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
+        unsigned int pBowTextureNum; // [sp+2Ch] [bp-20h]@38
         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;
-            }
+  pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE);
+  pSex = pPlayers[uPlayerID]->GetSexByVoice();
+  if ( pPlayers[uPlayerID]->GetRace() && pPlayers[uPlayerID]->GetRace() != 1 && pPlayers[uPlayerID]->GetRace() != 2 )
+  {
+    IsDwarf = 1;
+    pBodyComplection = (pSex != 0) + 2;
+  }
+  else
+  {
+    IsDwarf = 0;
+    pBodyComplection = pSex != 0;
+  }
+  pRenderer->ResetTextureClipRect();
+  pRenderer->DrawTextureIndexed(0x1D3u, 0, pIcons_LOD->GetTexture(uTextureID_BACKDOLL));//Подложка
+  if ( !IsPlayerWearingWatersuit[uPlayerID] )
+  {
+    pBowNum = pPlayers[uPlayerID]->pEquipment.uBow; //сначала рисуется лук
+    if ( pBowNum )
+    {
+      itemBow = &pPlayers[uPlayerID]->pInventoryItems[pBowNum - 1];
+      pX_Bow = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[itemBow->uItemID].uEquipX;
+      pY_Bow = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[itemBow->uItemID].uEquipY;
+      pBowTextureNum = pIcons_LOD->LoadTexture(pItemsTable->pItems[itemBow->uItemID].pIconName, TEXTURE_16BIT_PALETTE);
+      if ( !(itemBow->uAttributes & 0xF0) )
+      {
+        if ( itemBow->uAttributes & 2 )
+          pRenderer->DrawTransparentRedShade(pX_Bow, pY_Bow, (Texture *)(pBowTextureNum != -1 ? (int)&pIcons_LOD->pTextures[pBowTextureNum] : 0));
+        else
+        {
+          v30 = (char *)&pIcons_LOD->pTextures[pBowTextureNum];
+          if ( !(itemBow->uAttributes & 1) )
+            pRenderer->DrawTransparentGreenShade(pX_Bow, pY_Bow, (Texture *)(pBowTextureNum != -1 ? (int)v30 : 0));
+          else
+            pRenderer->DrawTextureTransparent(pX_Bow, pY_Bow, (Texture *)(pBowTextureNum != -1 ? (int)v30 : 0));
+        }
+      }
+      else
+      {
+        if ( (itemBow->uAttributes & 0xF0) == 16 )//(itemBow->uAttributes & 0xF0) - ???
+          v168 = "sptext01";
+        if ( (itemBow->uAttributes & 0xF0) == 32 )
+          v168 = "sp28a";
+        if ( (itemBow->uAttributes & 0xF0) == 64 )
+          v168 = "sp30a";
+        if ( (itemBow->uAttributes & 0xF0) == 128 )
+          v168 = "sp91a";
+        a2b = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v168, TEXTURE_16BIT_PALETTE)];
+        dword_50C9A8 -= pEventTimer->uTimeElapsed;
+        if ( dword_50C9A8 <= 0 )
+        {
+          dword_50C9A8 = 0;
+          itemBow->uAttributes &= 0xFu;
+          ptr_50C9A4 = 0;
+        }
+        v28 = (double)GetTickCount() * 0.1;
+        pRenderer->_4A63E6(pX_Bow, pY_Bow, (Texture *)(pBowTextureNum != -1 ? (int)&pIcons_LOD->pTextures[pBowTextureNum] : 0), a2b, (signed __int64)v28, 0, 255);
+      }
+      if ( !bRingsShownInCharScreen )
+        pRenderer->DrawMaskToZBuffer(pX_Bow, pY_Bow, (Texture *)(pBowTextureNum != -1 ? (int)&pIcons_LOD->pTextures[pBowTextureNum] : 0), pBowNum);
+    }
+    pCloakNum = pPlayers[uPlayerID]->pEquipment.uCloak;// потом плащ
+    if ( pCloakNum )
+    {
+      item_Cloak = &pPlayers[uPlayerID]->pInventoryItems[pCloakNum - 1];
+      switch ( item_Cloak->uItemID )
+      {
+        case 525:
+          v33 = 5;
+          break;
+        case 530:
+          v33 = 6;
+          break;
+        case 547:
+          v33 = 7;
+          break;
+        case 548:
+          v33 = 8;
+          break;
+        case 550:
+          v33 = 9;
+          break;
+        default:
+          v33 = item_Cloak->uItemID - 105;
+          break;
+      }
+      if ( v33 >= 0 && v33 < 10 )
+      {
+        v34 = v33 + 10 * pBodyComplection;
+        v35 = paperdoll_array_511828[0][v34];//Texture_Cloak
+        pX_Cloak = pPaperdoll_BodyX + paperdoll_Cloak[0][v34][0];
+        pY_Cloak = pPaperdoll_BodyY + paperdoll_Cloak[0][v34][1];
+        if ( !(item_Cloak->uAttributes & 0xF0) )
+        {
+          v41 = v35 + 1;
+          if ( item_Cloak->uAttributes & 2 )
+            pRenderer->DrawTransparentRedShade(pX_Cloak, pY_Cloak, (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0));
+          else
+            pRenderer->DrawTextureTransparent(pX_Cloak, pY_Cloak, (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0));
+        }
         else
-            {
-            IsDwarf = 0;
-            pBodyComplection = pSex != 0;
-            }
-        v244 = pPlayer->uFace;
-        pRenderer->ResetTextureClipRect();
-        pRenderer->DrawTextureIndexed(0x1D3u, 0, pIcons_LOD->GetTexture(uTextureID_BACKDOLL));//Подложка
-        if ( !IsPlayerWearingWatersuit[uPlayerID_] )
+        {
+          if ( (item_Cloak->uAttributes & 0xF0) == 16 )
+            v169 = "sptext01";
+          if ( (item_Cloak->uAttributes & 0xF0) == 32 )
+            v169 = "sp28a";
+          if ( (item_Cloak->uAttributes & 0xF0) != 64 )
+            v169 = "sp30a";
+          if ( (item_Cloak->uAttributes & 0xF0) == 128 )
+            v169 = "sp91a";
+          v39 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v169, TEXTURE_16BIT_PALETTE)];
+          dword_50C9A8 -= pEventTimer->uTimeElapsed;
+          if ( dword_50C9A8 <= 0 )
+          {
+            dword_50C9A8 = 0;
+            item_Cloak->uAttributes &= 0xFu;
+            ptr_50C9A4 = 0;
+          }
+          v40 = (double)GetTickCount() * 0.1;
+          pRenderer->_4A63E6(pX_Cloak, pY_Cloak, (Texture *)(v35 != -1 ? (int)&pIcons_LOD->pTextures[v35] : 0), v39, (signed __int64)v40, 0, 255);
+        }
+        if ( !bRingsShownInCharScreen )
+          pRenderer->DrawMaskToZBuffer(pX_Cloak, pY_Cloak, (Texture *)(v41 != 0 ? (int)&pIcons_LOD->pTextures[v35] : 0), pCloakNum);
+      }
+    }
+    pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY,//рисуется кукла
+            (Texture *)(papredoll_dbods[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dbods[uPlayerID - 1]] : 0));
+    pBodyNum = pPlayers[uPlayerID]->pEquipment.uBody;// потом броня
+    if ( pBodyNum )
+    {
+      body = &pPlayers[uPlayerID]->pInventoryItems[pBodyNum-1];
+      switch ( body->uItemID )
+      {
+        case 504:
+          v45 = 15;
+          break;
+        case 505:
+          v45 = 14;
+          break;
+        case 516:
+          v45 = 13;
+          break;
+        case 533:
+          v45 = 16;
+          break;
+        default:
+          v45 = body->uItemID - 66;
+          break;
+      }
+      if ( v45 >= 0 && v45 < 17 )
+      {
+        v46 = 17 * pBodyComplection + v45;
+        pX_Body = pPaperdoll_BodyX + paperdoll_Armor[0][v46][0];
+        pY_Body = pPaperdoll_BodyY + paperdoll_Armor[0][v46][1];
+        v48 = paperdoll_array_511290[0][v46][0];//Texture_Armor
+        if ( !(body->uAttributes & 0xF0) )
+        {
+          v53 = v48 + 1;
+          if ( body->uAttributes & 2 )
+            pRenderer->DrawTransparentRedShade(pX_Body, pY_Body, (Texture *)(v53 != 0 ? (int)&pIcons_LOD->pTextures[v48] : 0));
+          else
+          {
+            v55 = (char *)&pIcons_LOD->pTextures[v48];
+            if ( !(body->uAttributes & 1) )
+              pRenderer->DrawTransparentGreenShade(pX_Body, pY_Body, (Texture *)(v53 != 0 ? (int)v55 : 0));
+            else
+              pRenderer->DrawTextureTransparent(pX_Body, pY_Body, (Texture *)(v53 != 0 ? (int)v55 : 0));
+          }
+        }
+        else
+        {
+          if ( (body->uAttributes & 0xF0) == 16 )
+            v170 = "sptext01";
+          if ( (body->uAttributes & 0xF0) == 32 )
+            v170 = "sp28a";
+          if ( (body->uAttributes & 0xF0) == 64 )
+            v170 = "sp30a";
+          if ( (body->uAttributes & 0xF0) == 128 )
+            v170 = "sp91a";
+          v51 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v170, TEXTURE_16BIT_PALETTE)];
+          dword_50C9A8 -= pEventTimer->uTimeElapsed;
+          if ( dword_50C9A8 <= 0 )
+          {
+            dword_50C9A8 = 0;
+            body->uAttributes &= 0xFu;
+            ptr_50C9A4 = 0;
+          }
+          v52 = (double)GetTickCount() * 0.1;
+          pRenderer->_4A63E6(pX_Body, pY_Body, (Texture *)(v48 != -1 ? (int)&pIcons_LOD->pTextures[v48] : 0), v51, (signed __int64)v52, 0, 255);
+        }
+        if ( !bRingsShownInCharScreen )
+          pRenderer->DrawMaskToZBuffer(pX_Body, pY_Body, (Texture *)(v53 != 0 ? (int)v55 : 0), pBodyNum);
+      }
+      pBootNum = pPlayers[uPlayerID]->pEquipment.uBoot;//обувь
+      if ( pBootNum )
+      {
+        item_Boot = &pPlayers[uPlayerID]->pInventoryItems[pBootNum - 1];
+        switch ( item_Boot->uItemID )
+        {
+          case 529:
+            v60 = 5;
+            v59 = papredoll_flying_feet[pPlayers[uPlayerID]->uFace];
+            break;
+          case 512:
+            v60 = 6;
+            v59 = dword_511638[pBodyComplection][5];
+            break;
+          default:
+            v60 = item_Boot->uItemID - 115;
+            v59 = dword_511638[0][v60 + 6 * pBodyComplection];
+            break;
+        }
+        if ( v60 >= 0 && v60 < 7 )
+        {
+          v61 = v60 + 7 * pBodyComplection;
+          pY_Boot = pPaperdoll_BodyY + paperdoll_Boot[0][v61][1];
+          pX_Boot = pPaperdoll_BodyX + paperdoll_Boot[0][v61][0];
+          if ( !(item_Boot->uAttributes & 0xF0) )
+          {
+            v65 = v59 + 1;
+            v66 = (char *)&pIcons_LOD->pTextures[v59];
+            if ( item_Boot->uAttributes & 2 )
+              pRenderer->DrawTransparentRedShade(pX_Boot, pY_Boot, (Texture *)(v65 != 0 ? (int)v66 : 0));
+            else
             {
-            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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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(EQUIP_MAIN_HAND) == EQUIP_MAIN_HAND ||
-                                                                                pPlayer->GetEquippedItemSkillType(EQUIP_MAIN_HAND) == EQUIP_SHIELD &&
-                                                                                !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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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->DrawMaskToZBuffer(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)];
+              if ( item_Boot->uAttributes & 1 )
+                pRenderer->DrawTextureTransparent(pX_Boot, pY_Boot, (Texture *)(v65 != 0 ? (int)v66 : 0));
+              else
+                pRenderer->DrawTransparentGreenShade(pX_Boot, pY_Boot, (Texture *)(v65 != 0 ? (int)v66 : 0));
+            }
+          }
+          else
+          {
+            if ( (item_Boot->uAttributes & 0xF0) == 16 )
+              v171 = "sptext01";
+            if ( (item_Boot->uAttributes & 0xF0) == 32 )
+              v171 = "sp28a";
+            if ( (item_Boot->uAttributes & 0xF0) == 64 )
+              v171 = "sp30a";
+            if ( (item_Boot->uAttributes & 0xF0) == 128 )
+              v171 = "sp91a";
+            v63 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v171, TEXTURE_16BIT_PALETTE)];
+            dword_50C9A8 -= pEventTimer->uTimeElapsed;
+            if ( dword_50C9A8 <= 0 )
+            {
+              dword_50C9A8 = 0;
+              item_Boot->uAttributes &= 0xFu;
+              ptr_50C9A4 = 0;
+            }
+            v64 = (double)GetTickCount() * 0.1;
+            pRenderer->_4A63E6(pX_Boot, pY_Boot, (Texture *)(v59 != -1 ? (int)&pIcons_LOD->pTextures[v59] : 0), v63, (signed __int64)v64, 0, 255);
+          }
+          if ( !bRingsShownInCharScreen )
+            pRenderer->DrawMaskToZBuffer(pX_Boot, pY_Boot, (Texture *)(v65 != 0 ? (int)v66 : 0), pBootNum);
+        }
+      }
+        pMainHandNum = pPlayers[uPlayerID]->pEquipment.uMainHand;
+        uPlayerID_a = 2 * pBodyComplection;
+        if ( !pMainHandNum || (v70 = *(int *)&pPlayers[uPlayerID]->pInventoryItems[pMainHandNum -1], pItemsTable->pItems[v70].uEquipType != 1)
+              && (pItemsTable->pItems[v70].uSkillType != 4 || pPlayers[uPlayerID]->pEquipment.uOffHand) )
+          pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0],
+                     pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
+                     (Texture *)(papredoll_dlads[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlads[uPlayerID - 1]] : 0));
+        pBeltNum = pPlayers[uPlayerID]->pEquipment.uBelt;// ремень
+        if ( pBeltNum )
+        {
+          item_Belt = &pPlayers[uPlayerID]->pInventoryItems[pBeltNum - 1];
+        switch ( item_Belt->uItemID )
+        {
+          case 524:
+            v73 = 5;
+            break;
+          case 535:
+            v73 = 6;
+            break;
+          default:
+            v73 = item_Belt->uItemID - 100;
+            break;
+        }
+        if ( v73 >= 0 && v73 < 7 )
+        {
+          v74 = 7 * pBodyComplection + v73;
+          pX_Belt = pPaperdoll_BodyX + paperdoll_Belt[0][v74][0];
+          pY_Belt = 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];
+          if ( !(item_Belt->uAttributes & 0xF0) )
+          {
+            v79 = v75 + 1;
+            v80 = (char *)&pIcons_LOD->pTextures[v75];
+            if ( item_Belt->uAttributes & 2 )
+              pRenderer->DrawTransparentRedShade(pX_Belt, pY_Belt, (Texture *)(v79 != 0 ? (int)v80 : 0));
+            else
+            {
+              if ( item_Belt->uAttributes & 1 )
+                pRenderer->DrawTextureTransparent(pX_Belt, pY_Belt, (Texture *)(v79 != 0 ? (int)v80 : 0));
+              else
+                pRenderer->DrawTransparentGreenShade(pX_Belt, pY_Belt, (Texture *)(v79 != 0 ? (int)v80 : 0));
+            }
+            if ( !bRingsShownInCharScreen )
+              pRenderer->DrawMaskToZBuffer(pX_Belt, pY_Belt, (Texture *)(v79 != 0 ? (int)v80 : 0), pBeltNum);
+          }
+          else
+          {
+            if ( (item_Belt->uAttributes & 0xF0) == 16 )
+              v172 = "sptext01";
+            if ( (item_Belt->uAttributes & 0xF0) == 32 )
+              v172 = "sp28a";
+            if ( (item_Belt->uAttributes & 0xF0) == 64 )
+              v172 = "sp30a";
+            if ( (item_Belt->uAttributes & 0xF0) == 128 )
+              v172 = "sp91a";
+            v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
             dword_50C9A8 -= pEventTimer->uTimeElapsed;
             if ( dword_50C9A8 <= 0 )
-                {
+            {
+              dword_50C9A8 = 0;
+              item_Belt->uAttributes &= 0xFu;
+              ptr_50C9A4 = 0;
+            }
+            v78 = (double)GetTickCount() * 0.1;
+            pRenderer->_4A63E6(pX_Belt, pY_Belt, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
+          }
+        }
+      }
+      pMainHandNum2 = pPlayers[uPlayerID]->pEquipment.uMainHand;
+      if ( pMainHandNum2 )
+      {
+        v83 = *(int *)&pPlayers[uPlayerID]->pInventoryItems[pMainHandNum2 - 1];
+        if ( pItemsTable->pItems[v83].uEquipType == 1
+             || pItemsTable->pItems[v83].uSkillType == 4 && !pPlayers[uPlayerID]->pEquipment.uOffHand )
+          pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a],
+             pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1],
+             (Texture *)(papredoll_dlaus[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlaus[uPlayerID - 1]] : 0));
+      }
+      pBodyNum2 = pPlayers[uPlayerID]->pEquipment.uBody;
+      if ( pBodyNum2 )
+      {
+        body2 = &pPlayers[uPlayerID]->pInventoryItems[pBodyNum2 - 1];
+        switch ( body2->uItemID )
+        {
+          case 504:
+            v90 = 15;
+            break;
+          case 505:
+            v90 = 14;
+            break;
+          case 516:
+            v90 = 13;
+            break;
+          case 533:
+            v90 = 16;
+            break;
+          default:
+            v90 = body2->uItemID - 66;
+            break;
+        }
+        if ( v90 >= 0 && v90 < 17 )
+        {
+          v102 = 17 * pBodyComplection + v90;
+          v94 = paperdoll_array_511290[0][v102][1];
+          if ( v94 != pIcons_LOD->FindTextureByName("pending") )
+          {
+            pX_armor = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0];
+            pY_armor = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1];
+            if ( !(body2->uAttributes & 0xF0) )
+            {
+              v109 = v94 + 1;
+              v110 = (char *)&pIcons_LOD->pTextures[v94];
+              if ( body2->uAttributes & 2 )
+                pRenderer->DrawTransparentRedShade(pX_armor, pY_armor, (Texture *)(v109 != 0 ? (int)v110 : 0));
+              else
+              {
+                if ( body2->uAttributes & 1 )
+                  pRenderer->DrawTextureTransparent(pX_armor, pY_armor, (Texture *)(v109 != 0 ? (int)v110 : 0));
+                else
+                  pRenderer->DrawTransparentGreenShade(pX_armor, pY_armor, (Texture *)(v109 != 0 ? (int)v110 : 0));
+              }
+            }
+            else
+            {
+              if ( (item_Belt->uAttributes & 0xF0) == 16 )
+                v178 = "sptext01";
+              if ( (item_Belt->uAttributes & 0xF0) == 32 )
+                v178 = "sp28a";
+              if ( (item_Belt->uAttributes & 0xF0) == 64 )
+                v178 = "sp30a";
+              if ( (item_Belt->uAttributes & 0xF0) == 128 )
+                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 *)(v22 + 20) &= 0xFu;
+                body2->uAttributes &= 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;;
+              }
+              v97 = (double)GetTickCount();
+              pRenderer->_4A63E6(pX_armor, pY_armor, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0), (Texture *)v96, (signed __int64)(v97 * 0.1), 0, 255);
             }
-        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->DrawMaskToZBuffer(pX_armor, pY_armor, (Texture *)(v109 != 0 ? (int)v110 : 0), pBodyNum2);
+        }
+      }
+      pCloakNum2 = pPlayers[uPlayerID]->pEquipment.uCloak;
+      if ( pCloakNum2 )
+      {
+        item_Cloak2 = &pPlayers[uPlayerID]->pInventoryItems[pCloakNum2 - 1];
+        switch ( item_Cloak2->uItemID )
+        {
+          case 525:
+            v114 = 5;
+            break;
+          case 530:
+            v114 = 6;
+            break;
+          case 547:
+            v114 = 7;
+            break;
+          case 548:
+            v114 = 8;
+            break;
+          case 550:
+            v114 = 9;
+            break;
+          default:
+            v114 = item_Cloak2->uItemID - 105;
+        }
+        if ( v114 >= 0 && v114 < 10 )
+        {
+          v115 = v114 + 10 * pBodyComplection;
+          v116 = dword_511788[v115];
+          v115 *= 8;
+          v117 = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0[v115][0]);//Cloak
+          a2h = pPaperdoll_BodyX + *(int *)((char *)&dword_4E56B0[v115][0]);
+          a3h = pPaperdoll_BodyY + *(int *)((char *)&dword_4E56B0[v115][1]);
+          if ( v116 == pIcons_LOD->FindTextureByName("pending") )
+          {
+            if ( !(item_Cloak2->uAttributes & 0xF0) )
+            {
+              v119 = v116 + 1;
+              v120 = (char *)&pIcons_LOD->pTextures[v116];
+              if ( item_Cloak2->uAttributes & 2 )
+                pRenderer->DrawTransparentRedShade(a2h, a3h, (Texture *)(v119 != 0 ? (int)v120 : 0));
+              else
+                pRenderer->DrawTextureTransparent(a2h, a3h, (Texture *)(v119 != 0 ? (int)v120 : 0));
+            }
+            else
+            {
+              if ( (item_Cloak2->uAttributes & 0xF0) == 16 )
+                v179 = "sptext01";
+              if ( (item_Cloak2->uAttributes & 0xF0) == 32 )
+                v179 = "sp28a";
+              if ( (item_Cloak2->uAttributes & 0xF0) == 64 )
+                v179 = "sp30a";
+              if ( (item_Cloak2->uAttributes & 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;
+                item_Cloak2->uAttributes &= 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);
+            }
+          }
+        }
         if ( !bRingsShownInCharScreen )
-            pRenderer->DrawMaskToZBuffer(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 )
+          pRenderer->DrawMaskToZBuffer(a2h, a3h, (Texture *)(v119 != 0 ? (int)v120 : 0), pCloakNum2);
+      }
+      if ( pPlayers[uPlayerID]->uFace == 12 || pPlayers[uPlayerID]->uFace == 13 )
+      {
+        v122 = papredoll_dbrds[pPlayers[uPlayerID]->uFace];
+        if ( v122 != pIcons_LOD->FindTextureByName("Pending") )
+          pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uFace - 24],
+                     pPaperdoll_BodyY + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uFace - 23],
+                     (Texture *)(v122 != -1 ? (int)&pIcons_LOD->pTextures[v122] : 0));
+      }
+      pHelmNum = pPlayers[uPlayerID]->pEquipment.uHelm;
+      if ( pHelmNum )
+      {
+        item_Helm = &pPlayers[uPlayerID]->pInventoryItems[pHelmNum-1];
+        switch ( item_Helm->uItemID )
+        {
+          case 521:
+            v125 = 11;
+            break;
+          case 522:
+            v125 = 12;
+            break;
+          case 523:
+            v125 = 13;
+            break;
+          case 532:
+            v125 = 14;
+            break;
+          case 544:
+            v125 = 15;
+            break;
+          default:
+            v125 = item_Helm->uItemID - 89;
+        }
+        if ( v125 >= 0 && v125 < 16 )
+        {
+          v126 = 2 * (v125 + 16 * pBodyComplection);
+          pX_Helm = pPaperdoll_BodyX + paperdoll_Helm[v126][0];
+          pY_Helm = pPaperdoll_BodyY + paperdoll_Helm[v126][1];
+          v131 = v127 + 1;
+          v132 = (char *)&pIcons_LOD->pTextures[v127];
+          if ( item_Helm->uAttributes & 2 )
+            pRenderer->DrawTransparentRedShade(pX_Helm, pY_Helm, (Texture *)(v131 != 0 ? (int)v132 : 0));
+          else
+          {
+            if ( item_Helm->uAttributes & 1 )
+              pRenderer->DrawTextureTransparent(pX_Helm, pY_Helm, (Texture *)(v131 != 0 ? (int)v132 : 0));
+            else
+              pRenderer->DrawTransparentGreenShade(pX_Helm, pY_Helm, (Texture *)(v131 != 0 ? (int)v132 : 0));
+          }
+          if ( IsDwarf != 1 || item_Helm->uItemID != 92 )
+            v127 = stru_511698[0].texids[v125 + 16 * pSex];
+          else
+            v127 = papredoll_dbrds[11];
+          if ( item_Helm->uAttributes & 0xF0 )
+          {
+            if ( (item_Helm->uAttributes & 0xF0) == 16 )
+              v180 = "sptext01";
+            if ( (item_Helm->uAttributes & 0xF0) == 32 )
+              v180 = "sp28a";
+            if ( (item_Helm->uAttributes & 0xF0) == 64 )
+              v180 = "sp30a";
+            if ( (item_Helm->uAttributes & 0xF0) == 128 )
+              v180 = "sp91a";
+            v129 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v180, TEXTURE_16BIT_PALETTE)];
+            dword_50C9A8 -= pEventTimer->uTimeElapsed;
+            if ( dword_50C9A8 <= 0 )
             {
-            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";
+              dword_50C9A8 = 0;
+              item_Helm->uAttributes &= 0xFu;
+              ptr_50C9A4 = 0;
+            }
+            v130 = (double)GetTickCount() * 0.1;
+            pRenderer->_4A63E6(pX_Helm, pY_Helm, (Texture *)(v127 != -1 ? (int)&pIcons_LOD->pTextures[v127] : 0), v129, (signed __int64)v130, 0, 255);
+          }
+          if ( !bRingsShownInCharScreen )
+            pRenderer->DrawMaskToZBuffer(pX_Helm, pY_Helm, (Texture *)(v131 != 0 ? (int)v132 : 0), pHelmNum);
+        }
+      }
+      pMainHandNum3 = pPlayers[uPlayerID]->pEquipment.uMainHand;
+      if ( pMainHandNum3 )
+      {
+        item_MainHand3 = &pPlayers[uPlayerID]->pInventoryItems[pMainHandNum3 - 1];
+        pX_MainHand3 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item_MainHand3->uItemID].uEquipX;
+        pY_MainHand3 = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item_MainHand3->uItemID].uEquipY;
+        if ( item_MainHand3->uItemID == 64 )
+          v181 = "item64v1";
+        else
+          v181 = pItemsTable->pItems[item_MainHand3->uItemID].pIconName;
+        v138 = pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE);
+        if ( !(item_MainHand3->uAttributes & 0xF0) )
+        {
+          v142 = v138 + 1;
+          v143 = (char *)&pIcons_LOD->pTextures[v138];
+          if ( item_MainHand3->uAttributes & 2 )
+            pRenderer->DrawTransparentRedShade(pX_MainHand3, pY_MainHand3, (Texture *)(v142 != 0 ? (int)v143 : 0));
+          else
+          {
+            if ( item_MainHand3->uAttributes & 1 )
+              pRenderer->DrawTextureTransparent(pX_MainHand3, pY_MainHand3, (Texture *)(v142 != 0 ? (int)v143 : 0));
             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->DrawMaskToZBuffer(a2a, a3a, v20, v229);
-            }
+              pRenderer->DrawTransparentGreenShade(pX_MainHand3, pY_MainHand3, (Texture *)(v142 != 0 ? (int)v143 : 0));
+          }
+        }
+        else
+        {
+          if ( (item_MainHand3->uAttributes & 0xF0) == 16 )
+            v182 = "sptext01";
+          if ( (item_MainHand3->uAttributes & 0xF0) == 32 )
+            v182 = "sp28a";
+          if ( (item_MainHand3->uAttributes & 0xF0) == 64 )
+            v182 = "sp30a";
+          if ( (item_MainHand3->uAttributes & 0xF0) == 128 )
+            v182 = "sp91a";
+          v140 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v182, TEXTURE_16BIT_PALETTE)];
+          dword_50C9A8 -= pEventTimer->uTimeElapsed;
+          if ( dword_50C9A8 <= 0 )
+          {
+            dword_50C9A8 = 0;
+            item_MainHand3->uAttributes &= 0xFu;
+            ptr_50C9A4 = 0;
+          }
+          v141 = (double)GetTickCount() * 0.1;
+          pRenderer->_4A63E6(pX_MainHand3, pY_MainHand3, (Texture *)(v138 != -1 ? (int)&pIcons_LOD->pTextures[v138] : 0), v140, (signed __int64)v141, 0, 255);
+        }
+        if ( !bRingsShownInCharScreen )
+          pRenderer->DrawMaskToZBuffer(pX_MainHand3, pY_MainHand3, (Texture *)(v142 != 0 ? (int)v143 : 0), pMainHandNum3);
+      }
+      pOffHandNum = pPlayers[uPlayerID]->pEquipment.uOffHand;
+      if ( !pOffHandNum )
+        goto LABEL_393;
+      item_OffHand = &pPlayers[uPlayerID]->pInventoryItems[pOffHandNum - 1];
+      v149 = pItemsTable->pItems[item_OffHand->uItemID].uSkillType;
+      if ( v149 != 2 && v149 != 1 )
+      {
+        v245 = 0;
+        pX_OffHand = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item_OffHand->uItemID].uEquipX;
+        pY_OffHand = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item_OffHand->uItemID].uEquipY;
+        goto LABEL_370;
+      }
+      v151 = item_OffHand->uItemID - 400;
+      v245 = 1;
+                                                     if ( v151 )
+                                                     {
+                                                       v152 = v151 - 3;
+                                                       if ( v152 )
+                                                       {
+                                                         if ( v152 != 12 )
+                                                         {
+                                                           pX_OffHand = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item_OffHand->uItemID].uEquipX;
+                                                           pY_OffHand = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item_OffHand->uItemID].uEquipY;
+                                                           goto LABEL_370;
+                                                         }
+                                                         pX_OffHand = 595;
+                                                         pY_OffHand = 33;
+LABEL_370:
+                                                         v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[item_OffHand->uItemID].pIconName, TEXTURE_16BIT_PALETTE);
+                                                         if ( !(item_OffHand->uAttributes & 0xF0) )
+                                                         {
+                                                           if ( item_OffHand->uAttributes & 2 )
+                                                             pRenderer->DrawTransparentRedShade(pX_OffHand, pY_OffHand, (Texture *)(v153 != -1 ? (int)&pIcons_LOD->pTextures[v153] : 0));
+                                                           else
+                                                           {
+                                                             v160 = (char *)&pIcons_LOD->pTextures[v153];
+                                                             if ( !(item_OffHand->uAttributes & 1) )
+                                                               pRenderer->DrawTransparentGreenShade(pX_OffHand, pY_OffHand, (Texture *)(v153 != -1 ? (int)v160 : 0));
+                                                             else
+                                                               pRenderer->DrawTextureTransparent(pX_OffHand, pY_OffHand, (Texture *)(v153 != -1 ? (int)v160 : 0));
+                                                           }
+                                                           if ( !bRingsShownInCharScreen )
+                                                             pRenderer->DrawMaskToZBuffer(pX_OffHand, pY_OffHand, (Texture *)(v153 != -1 ? (int)&pIcons_LOD->pTextures[v153] : 0), pOffHandNum);
+                                                           if ( v245 )
+                                                             pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
+                                                                        pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
+                                                                        (Texture *)(papredoll_dlhs[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlhs[uPlayerID - 1]] : 0));
+                                                           goto LABEL_393;
+                                                         }
+                                                         else
+                                                         {
+                                                           if ( (item_OffHand->uAttributes & 0xF0) == 16 )
+                                                             v183 = "sptext01";
+                                                           if ( (item_OffHand->uAttributes & 0xF0) == 32 )
+                                                             v183 = "sp28a";
+                                                           if ( (item_OffHand->uAttributes & 0xF0) == 64 )
+                                                             v183 = "sp30a";
+                                                           if ( (item_OffHand->uAttributes & 0xF0) == 128 )
+                                                             v183 = "sp91a";
+                                                           v157 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v183, TEXTURE_16BIT_PALETTE)];
+                                                           dword_50C9A8 -= pEventTimer->uTimeElapsed;
+                                                           if ( dword_50C9A8 <= 0 )
+                                                           {
+                                                             dword_50C9A8 = 0;
+                                                             item_OffHand->uAttributes &= 0xFu;
+                                                             ptr_50C9A4 = 0;
+                                                           }
+                                                           v158 = (double)GetTickCount() * 0.1;
+                                                           pRenderer->_4A63E6(pX_OffHand, pY_OffHand, (Texture *)(v153 != -1 ? (int)&pIcons_LOD->pTextures[v153] : 0),
+                                                                               v157, (signed __int64)v158, 0, 255);
+                                                           if ( v245 )
+                                                             pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[uPlayerID_a],
+                                                                        pPaperdoll_BodyY + pPaperdollLeftEmptyHand[uPlayerID_a + 1],
+                                                                        (Texture *)(papredoll_dlhs[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlhs[uPlayerID - 1]] : 0));
+                                                           goto LABEL_393;
+                                                         }
+                                                       }
+                                                       pY_OffHand = 28;
+                                                     }
+                                                     else
+                                                     {
+                                                       pY_OffHand = 86;
+                                                     }
+                                                     pX_OffHand = 596;
+                                                     goto LABEL_370;
+                                                   }
+                                         if ( pPlayers[uPlayerID]->pEquipment.uMainHand
+                                              && (pPlayers[uPlayerID]->GetEquippedItemEquipType(EQUIP_MAIN_HAND) == EQUIP_MAIN_HAND ||
+                                              pPlayers[uPlayerID]->GetEquippedItemSkillType(EQUIP_MAIN_HAND) == EQUIP_SHIELD &&
+                                              !pPlayers[uPlayerID]->pEquipment.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];
+                                             pX_shoulder = pPaperdoll_BodyX + paperdoll_shoulder[0][0][v93];
+                                             v95 = paperdoll_shoulder[0][0][v93 + 1];
+                                           }
+                                           else
+                                           {
+                                             v94 = v223;
+                                             pX_shoulder = pPaperdoll_BodyX + dword_4E5270[2 * v91];
+                                             v95 = dword_4E5270[2 * v91 + 1];
+                                           }
+                                           pY_shoulder = pPaperdoll_BodyY + v95;
+                                           if ( !(body2->uAttributes & 0xF0) )
+                                           {
+                                             v98 = v94 + 1;
+                                             v99 = (char *)&pIcons_LOD->pTextures[v94];
+                                             if ( body2->uAttributes & 2 )
+                                               pRenderer->DrawTransparentRedShade(pX_shoulder, pY_shoulder, (Texture *)(v98 != 0 ? (int)v99 : 0));
+                                             else
+                                             {
+                                               if ( body2->uAttributes & 1 )
+                                                 pRenderer->DrawTextureTransparent(pX_shoulder, pY_shoulder, (Texture *)(v98 != 0 ? (int)v99 : 0));
+                                               else
+                                                 pRenderer->DrawTransparentGreenShade(pX_shoulder, pY_shoulder, (Texture *)(v98 != 0 ? (int)v99 : 0));
+                                             }
+                                           }
+                                           else
+                                           {
+                                             if ( v94 != pIcons_LOD->FindTextureByName("pending") )
+                                             {
+                                               if ( body2->uAttributes & 0xF0 )//v242 + 516
+                                               {
+                                                 if ( (body2->uAttributes & 0xF0) == 16 )
+                                                   v173 = "sptext01";
+                                                 if ( (body2->uAttributes & 0xF0) == 32 )
+                                                   v173 = "sp28a";
+                                                 if ( ( body2->uAttributes & 0xF0) == 64 )
+                                                   v173 = "sp30a";
+                                                 if ( (body2->uAttributes & 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;
+                                                   body2->uAttributes &= 0xFu;
+                                                   ptr_50C9A4 = 0;
+                                                 }
+                                                 v97 = (double)GetTickCount();
+                                                 pRenderer->_4A63E6(pX_shoulder, pY_shoulder, (Texture *)(v94 != -1 ? (int)&pIcons_LOD->pTextures[v94] : 0),
+                                                           (Texture *)v96, (signed __int64)(v97 * 0.1), 0, 255);
+                                               }
+                                             }
+                                           }
+                                           if ( !bRingsShownInCharScreen )
+                                             pRenderer->DrawMaskToZBuffer(pX_shoulder, pY_shoulder, (Texture *)(v98 != 0 ? (int)v99 : 0), pBodyNum2);
+                                         }
+                                       }
+         a3 = pPaperdoll_BodyY;
+         a2 = pPaperdoll_BodyX;
+         pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY,
+            (Texture *)(papredoll_dbods[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dbods[uPlayerID - 1]] : 0));
+         if ( !bRingsShownInCharScreen )
+           pRenderer->DrawMaskToZBuffer(a2, a3,
+                     (Texture *)(papredoll_dbods[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dbods[uPlayerID - 1]] : 0),
+                     pPlayers[uPlayerID]->pEquipment.uBody);
+         uPlayerID_a = 2 * pBodyComplection;
+         v6 = pPlayers[uPlayerID]->pEquipment.uMainHand;
+         if ( !v6 || (v7 = *(int *)&pPlayers[uPlayerID]->pInventoryItems[v6-1], pItemsTable->pItems[v7].uEquipType != 1)
+            && (pItemsTable->pItems[v7].uSkillType != 4 || pPlayers[uPlayerID]->pEquipment.uOffHand) )
+            pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
+            (Texture *)(papredoll_dlads[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlads[uPlayerID - 1]] : 0));
+         pMainHandNum4 = pPlayers[uPlayerID]->pEquipment.uMainHand;
+         if ( pMainHandNum4 )
+         {
+           item_MainHand4 = &pPlayers[uPlayerID]->pInventoryItems[pMainHandNum4 - 1];
+           pX_MainHand4 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item_MainHand4->uItemID].uEquipX;
+           pY_MainHand4 = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item_MainHand4->uItemID].uEquipY;
+           if ( item_MainHand4->uItemID == 64 )
+             v166 = "item64v1";
+           else
+             v166 = pItemsTable->pItems[item_MainHand4->uItemID].pIconName;
+           v14 = pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE);
+           if ( !( item_MainHand4->uAttributes & 0xF0 ) )
+           {
+             v18 = v14 + 1;
+             v19 = (char *)&pIcons_LOD->pTextures[v14];
+             if ( item_MainHand4->uAttributes & 2 )
+               pRenderer->DrawTransparentRedShade(pX_MainHand4, pY_MainHand4, (Texture *)(v18 != 0 ? (int)v19 : 0));
+             else
+             {
+               if ( item_MainHand4->uAttributes & 1 )
+                 pRenderer->DrawTextureTransparent(pX_MainHand4, pY_MainHand4, (Texture *)(v18 != 0 ? (int)v19 : 0));
+               else
+                 pRenderer->DrawTransparentGreenShade(pX_MainHand4, pY_MainHand4, (Texture *)(v18 != 0 ? (int)v19 : 0));
+             }
+           }
+           if ( item_MainHand4->uAttributes & 0xF0 )
+           {
+             if ( ( item_MainHand4->uAttributes & 0xF0) != 16 )
+               v167 = "sptext01";
+             if ( ( item_MainHand4->uAttributes & 0xF0) == 32 )
+               v167 = "sp28a";
+             if ( (item_MainHand4->uAttributes & 0xF0) == 64 )
+               v167 = "sp30a";
+             if ( (item_MainHand4->uAttributes & 0xF0) == 128 )
+               v167 = "sp91a";
+             v16 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v167, TEXTURE_16BIT_PALETTE)];
+             dword_50C9A8 -= pEventTimer->uTimeElapsed;
+             if ( dword_50C9A8 <= 0 )
+             {
+               dword_50C9A8 = 0;
+               item_MainHand4->uAttributes &= 0xFu;
+               ptr_50C9A4 = 0;
+             }
+             v17 = (double)GetTickCount() * 0.1;
+             pRenderer->_4A63E6(pX_MainHand4, pY_MainHand4, (Texture *)(v14 != -1 ? (int)&pIcons_LOD->pTextures[v14] : 0), v16, (signed __int64)v17, 0, 255);
+           }
+           if ( !bRingsShownInCharScreen )
+             pRenderer->DrawMaskToZBuffer(pX_MainHand4, pY_MainHand4, (Texture *)(v18 != 0 ? (int)v19 : 0), pMainHandNum4);
+         }
 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));
-        }
+  pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[uPlayerID_a], pPaperdoll_BodyY + pPaperdoll_RightHand[uPlayerID_a + 1],
+             (Texture *)(papredoll_drhs[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_drhs[uPlayerID - 1]] : 0));
+  pMainHandNum5 = pPlayers[uPlayerID]->pEquipment.uMainHand;
+  if ( pMainHandNum5 )
+  {
+    item_MainHand5 = &pPlayers[uPlayerID]->pInventoryItems[pMainHandNum5-1];
+    if ( pItemsTable->pItems[item_MainHand5->uItemID].uEquipType == 1 || pItemsTable->pItems[item_MainHand5->uItemID].uSkillType == 4 && !pPlayers[uPlayerID]->pEquipment.uOffHand )
+      pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[0][uPlayerID_a], pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[0][uPlayerID_a + 1],
+                 (Texture *)(papredoll_dlhus[uPlayerID - 1] != -1 ? (int)&pIcons_LOD->pTextures[papredoll_dlhus[uPlayerID - 1]] : 0));
+  }
+  if ( !bRingsShownInCharScreen )//рисование лупы
+    pRenderer->DrawTextureTransparent(603, 299, (Texture *)(uTextureID_MAGNIF_B != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_MAGNIF_B] : 0));
+  pRenderer->DrawTextureTransparent(468, 0, (Texture *)(uTextureID_507B04 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_507B04] : 0));//обрамление
+}
 
 
     //----- (0043E825) --------------------------------------------------------
--- a/mm7_data.cpp	Wed Apr 03 19:33:02 2013 +0600
+++ b/mm7_data.cpp	Fri Apr 19 18:11:01 2013 +0600
@@ -707,8 +707,8 @@
   0x10, 0x8A,  0x9, 0x8B,  0x18, 0x98,  0x25, 0x91,  0x29, 0x90,  0x8, 0x8A,  0x9, 0x8B,  0x18, 0x98,  0x3, 0x91,  0x3, 0x90,
   0x14, 0x92,  0x10, 0x92, 0x15, 0x98,  0x1F, 0x91,  0x22, 0x90,  0x8, 0x92,  0xC, 0x92,  0x15, 0x98,  0x3, 0x91,  0x3, 0x90,
 };
-int dword_4E56B0; // weak
-int dword_4E56B4; // weak
+int dword_4E56B0[64][2]; // weak
+//int dword_4E56B4; // weak
 int paperdoll_Belt[4][7][2] = //0x4E57F0
 {
   0x3A, 0xB6,  0x37, 0xB2,  0x34, 0xB9,  0x3A, 0xB9,  0x37, 0xB7,  0x38, 0xAC,  0x37, 0xB7,
@@ -716,8 +716,8 @@
   0x3B, 0xD5,  0x37, 0xD2,  0x31, 0xD5,  0x39, 0xD6,  0x37, 0xD8,  0x37, 0xD1,  0x37, 0xD8,
   0x42, 0xD2,  0x3F, 0xD0,  0x3B, 0xD7,  0x3C, 0xD5,  0x3B, 0xD6,  0x3E, 0xCF,  0x36, 0xD6,
 };
-int dword_4E58D0[777]; // HelmX 62 maybe array???
-int dword_4E58D4[777]; // HelmY 31
+int paperdoll_Helm[64][2]; // HelmX 62 maybe array???
+//int dword_4E58D4[777]; // HelmY 31
 int pPaperdoll_Beards[4] = //0x4E5AD0
 {
  52, 130, 56, 136,
--- a/mm7_data.h	Wed Apr 03 19:33:02 2013 +0600
+++ b/mm7_data.h	Fri Apr 19 18:11:01 2013 +0600
@@ -606,11 +606,11 @@
 extern int dword_4E5270[8];
 extern int paperdoll_Boot[4][7][2];
 extern int paperdoll_Cloak[4][10][2];
-extern int dword_4E56B0; // weak
-extern int dword_4E56B4; // weak
+extern int dword_4E56B0[64][2]; // weak
+//extern int dword_4E56B4; // weak
 extern int paperdoll_Belt[4][7][2];
-extern int dword_4E58D0[]; // weak
-extern int dword_4E58D4[]; // weak
+extern int paperdoll_Helm[64][2]; // weak
+//extern int dword_4E58D4[]; // weak
 extern int pPaperdoll_Beards[4]; // weak
 extern int dword_4E5AD4[]; // weak
 extern int pPaperdoll_LeftHand[4][2];