changeset 337:d27e30e0158a

Merge
author Gloval
date Thu, 21 Feb 2013 00:35:45 +0400
parents ea55d6414029 (current diff) 4e63b7396b24 (diff)
children 1c681ad45653
files Player.cpp mm7_5.cpp mm7_data.cpp
diffstat 2 files changed, 250 insertions(+), 158 deletions(-) [+]
line wrap: on
line diff
--- a/mm7_5.cpp	Thu Feb 21 00:33:12 2013 +0400
+++ b/mm7_5.cpp	Thu Feb 21 00:35:45 2013 +0400
@@ -7005,11 +7005,11 @@
 //----- (0043CC7C) --------------------------------------------------------
 void __fastcall CharacterUI_DrawPaperdoll(unsigned int uPlayerID)
 {
-  Player **ppPlayer; // esi@1
+  //Player **ppPlayer; // esi@1
   Player *pPlayer; // ebx@1
-  enum CHARACTER_RACE pRace; // edi@1
+  //enum CHARACTER_RACE pRace; // edi@1
   signed int pSex; // eax@1
-  int v5; // edi@4
+  //int v5; // edi@4
   unsigned int v6; // ecx@9
   int v7; // ecx@10
   unsigned int v8; // eax@14
@@ -7072,7 +7072,7 @@
   int v65; // edi@148
   char *v66; // eax@148
   Texture *v67; // edi@149
-  Player *v68; // ebx@155
+  //Player *v68; // ebx@155
   unsigned int v69; // edx@155
   int v70; // edx@156
   unsigned int v71; // eax@160
@@ -7221,7 +7221,7 @@
   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
+  //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
@@ -7254,28 +7254,23 @@
   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
-
-  ppPlayer = &pPlayers[uPlayerID];
-  pPlayer = *ppPlayer;
+  //signed int v250; // [sp+44h] [bp-8h]@1
+
+  pPlayer = pPlayers[uPlayerID];
   uPlayerID_ = uPlayerID;
-  v217 = *ppPlayer;
   pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE);
-  pRace = pPlayer->GetRace();
   pSex = pPlayer->GetSexByVoice();
-  v250 = pSex;
-  if ( pRace && pRace != 1 && pRace != 2 )
+  if ( pPlayer->GetRace() && pPlayer->GetRace() != 1 && pPlayer->GetRace() != 2 )
   {
     IsDwarf = 1;
-    v5 = (pSex != 0) + 2;
+    pBodyComplection = (pSex != 0) + 2;
   }
   else
   {
     IsDwarf = 0;
-    v5 = pSex != 0;
-  }
-  pBodyComplection = v5;
-  v244 = (*ppPlayer)->uFace;
+    pBodyComplection = pSex != 0;
+  }
+  v244 = pPlayer->uFace;
   pRenderer->ResetClip();
   pRenderer->DrawTextureIndexed(0x1D3u, 0, (Texture *)(uTextureID_BACKDOLL != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BACKDOLL] : 0));//Подложка
   if ( !IsPlayerWearingWatersuit[uPlayerID_] )
@@ -7284,7 +7279,7 @@
     if ( !v21 )
       goto LABEL_59;
     v230 = pPlayer->pEquipment.uBow;
-    v22 = (int)&v217->pInventoryItems[v21-1];
+    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;
@@ -7316,11 +7311,11 @@
       if ( !bRingsShownInCharScreen )
         pRenderer->_4A612A(v24, a3b, v27, v230);
 LABEL_59:
-      v31 = v217->pEquipment.uCloak;// потом плащ
+      v31 = pPlayer->pEquipment.uCloak;// потом плащ
       if ( !v31 )
         goto LABEL_93;
-      v231 = v217->pEquipment.uCloak;
-      v32 = (int)&v217->pInventoryItems[v31-1];
+      v231 = pPlayer->pEquipment.uCloak;
+      v32 = (int)&pPlayer->pInventoryItems[v31-1];
       v219 = v32;
       if ( *(int *)v32 != 525 )
       {
@@ -7368,11 +7363,11 @@
                 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 = v217->pEquipment.uBody;// потом тело
+                v43 = pPlayer->pEquipment.uBody;// потом тело
                 if ( !v43 )
                   goto LABEL_127;
-                v232 = v217->pEquipment.uBody;
-                v44 = (int)&v217->pInventoryItems[v43-1];
+                v232 = pPlayer->pEquipment.uBody;
+                v44 = (int)&pPlayer->pInventoryItems[v43-1];
                 v220 = v44;
                 if ( *(int *)v44 != 504 )
                 {
@@ -7427,11 +7422,11 @@
                           if ( !bRingsShownInCharScreen )
                             pRenderer->_4A612A(a2d, a3d, v54, v232);
 LABEL_127:
-                          v56 = v217->pEquipment.field_20;
+                          v56 = pPlayer->pEquipment.field_20;
                           if ( !v56 )
                             goto LABEL_155;
-                          v233 = v217->pEquipment.field_20;
-                          v57 = (int)&v217->pInventoryItems[v56-1];
+                          v233 = pPlayer->pEquipment.field_20;
+                          v57 = (int)&pPlayer->pInventoryItems[v56-1];
                           v221 = v57;
                           v58 = *(int *)v57;
                           if ( *(int *)v57 == 529 )
@@ -7492,19 +7487,18 @@
                             if ( !bRingsShownInCharScreen )
                               pRenderer->_4A612A(a2e, a3e, v67, v233);
 LABEL_155:
-                            v68 = v217;
-                            v69 = v217->pEquipment.uMainHand;
+                            v69 = pPlayer->pEquipment.uMainHand;
                             uPlayerID_a = 2 * pBodyComplection;
-                            if ( !v69 || (v70 = *(int *)&v217->pInventoryItems[v69-1], pItemsTable->pItems[v70].uEquipType != 1)
-                              && (pItemsTable->pItems[v70].uSkillType != 4 || v217->pEquipment.uOffHand) )
+                            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 = v217->pEquipment.uBelt;
+                            v71 = pPlayer->pEquipment.uBelt;
                             if ( v71 )
                             {
-                              v234 = v217->pEquipment.uBelt;
-                              v72 = (int)&v217->pInventoryItems[v71-1];
+                              v234 = pPlayer->pEquipment.uBelt;
+                              v72 = (int)&pPlayer->pInventoryItems[v71-1];
                               v222 = v72;
                               if ( *(int *)v72 == 524 )
                               {
@@ -7529,8 +7523,8 @@
                                   v75 = stru_511718.texids[v74];
                                 else
                                   v75 = stru_511718.texids[v73 + 7 * (pBodyComplection - 2)];
-                                v76 = *(int *)&v217->field_1F5[36 * v71 + 15];
-                                if ( !(*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) )
+                                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];
@@ -7554,12 +7548,11 @@
                                   }
                                   if ( !bRingsShownInCharScreen )
                                     pRenderer->_4A612A(a2f, a3f, v81, v234);
-                                    v68 = v217;
                                     goto LABEL_192;
                                 }
-                                if ( (*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) != 16 )
+                                if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) != 16 )
                                 {
-                                  if ( (*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) == 32 )
+                                  if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 32 )
                                   {
                                     v172 = "sp28a";
                                     v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
@@ -7572,10 +7565,9 @@
                                     }
                                     v78 = (double)GetTickCount() * 0.1;
                                     pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
-                                    v68 = v217;
                                     goto LABEL_192;
                                   }
-                                  if ( (*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) == 64 )
+                                  if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 64 )
                                   {
                                     v172 = "sp30a";
                                     v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
@@ -7588,10 +7580,9 @@
                                     }
                                     v78 = (double)GetTickCount() * 0.1;
                                     pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
-                                    v68 = v217;
                                     goto LABEL_192;
                                   }
-                                  if ( (*(int *)&v217->field_1F5[36 * v71 + 15] & 0xF0) == 128 )
+                                  if ( (*(int *)&pPlayer->field_1F5[36 * v71 + 15] & 0xF0) == 128 )
                                   {
                                     v172 = "sp91a";
                                     v77 = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(v172, TEXTURE_16BIT_PALETTE)];
@@ -7604,7 +7595,6 @@
                                     }
                                     v78 = (double)GetTickCount() * 0.1;
                                     pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
-                                    v68 = v217;
                                     goto LABEL_192;
                                   }
                                 }
@@ -7619,24 +7609,23 @@
                                 }
                                 v78 = (double)GetTickCount() * 0.1;
                                 pRenderer->_4A63E6(a2f, a3f, (Texture *)(v75 != -1 ? (int)&pIcons_LOD->pTextures[v75] : 0), v77, (signed __int64)v78, 0, 255);
-                                v68 = v217;
                                 goto LABEL_192;
                               }
                             }
 LABEL_192:
-                            v82 = v68->pEquipment.uMainHand;
+                            v82 = pPlayer->pEquipment.uMainHand;
                             if ( v82 )
                             {
-                              v83 = *(int *)&v68->pInventoryItems[v82-1];
+                              v83 = *(int *)&pPlayer->pInventoryItems[v82-1];
                               if ( pItemsTable->pItems[v83].uEquipType == 1
-                                || pItemsTable->pItems[v83].uSkillType == 4 && !v68->pEquipment.uOffHand )
+                                || 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 = v68->pEquipment.uBody;
+                            v84 = pPlayer->pEquipment.uBody;
                             v235 = v84;
-                            v85 = (int)((char *)v68 + 36 * v84);
+                            v85 = (int)((char *)pPlayer + 36 * v84);
                             v242 = v85;
                             v86 = *(int *)(v85 + 496);
                             v87 = *(int *)(v85 + 496) - 504;
@@ -7655,11 +7644,11 @@
                                     if ( v90 < 0 || v90 > 17 )
                                     {
 LABEL_259:
-                                      v111 = v68->pEquipment.uCloak;
+                                      v111 = pPlayer->pEquipment.uCloak;
                                       if ( !v111 )
                                         goto LABEL_293;
-                                      v236 = v68->pEquipment.uCloak;
-                                      v112 = (int)&v68->pInventoryItems[v111-1];
+                                      v236 = pPlayer->pEquipment.uCloak;
+                                      v112 = (int)&pPlayer->pInventoryItems[v111-1];
                                       v225 = v112;
                                       v113 = *(int *)v112;
                                       if ( v113 != 525 )
@@ -7692,7 +7681,6 @@
                                               if ( v116 == pIcons_LOD->FindTextureByName("pending") )
                                               {
 LABEL_292:
-                                                v68 = v217;
 LABEL_293:
                                                 if ( v244 == 12 || v244 == 13 )
                                                 {
@@ -7702,11 +7690,11 @@
                                                       pPaperdoll_BodyY + pPaperdoll_Beards[2 * v244 - 23],
                                                       (Texture *)(v122 != -1 ? (int)&pIcons_LOD->pTextures[v122] : 0));
                                                 }
-                                                v123 = v68->pEquipment.uHelm;
+                                                v123 = pPlayer->pEquipment.uHelm;
                                                 if ( !v123 )
                                                   goto LABEL_335;
                                                 v237 = v123;
-                                                v124 = (int)&v217->pInventoryItems[v123-1];
+                                                v124 = (int)&pPlayer->pInventoryItems[v123-1];
                                                 v226 = v124;
                                                 if ( *(int *)v124 != 521 )
                                                 {
@@ -7738,7 +7726,7 @@
                                                   a2j = pPaperdoll_BodyX + dword_4E58D0[v126];
                                                   a3i = pPaperdoll_BodyY + dword_4E58D4[v126];
                                                   if ( IsDwarf != 1 || *(int *)v124 != 92 )
-                                                    v127 = stru_511698.texids[v125 + 16 * v250];
+                                                    v127 = stru_511698.texids[v125 + 16 * pSex];
                                                   else
                                                     v127 = papredoll_dbrds[11];
                                                   v128 = *(int *)(v124 + 20);
@@ -7832,11 +7820,11 @@
                                                   if ( !bRingsShownInCharScreen )
                                                     pRenderer->_4A612A(a2j, a3i, v133, v237);
 LABEL_335:
-                                                  v134 = v217->pEquipment.uMainHand;
+                                                  v134 = pPlayer->pEquipment.uMainHand;
                                                   if ( !v134 )
                                                     goto LABEL_358;
-                                                  v238 = v217->pEquipment.uMainHand;
-                                                  v135 = (int)&v217->pInventoryItems[v134-1];
+                                                  v238 = pPlayer->pEquipment.uMainHand;
+                                                  v135 = (int)&pPlayer->pInventoryItems[v134-1];
                                                   v227 = v135;
                                                   v136 = *(int *)v135;
                                                   v137 = *(int *)v135;
@@ -7873,11 +7861,11 @@
                                                     if ( !bRingsShownInCharScreen )
                                                       pRenderer->_4A612A(a2k, a3j, v144, v238);
 LABEL_358:
-                                                    v145 = v217->pEquipment.uOffHand;
-                                                    v249 = v217->pEquipment.uOffHand;
+                                                    v145 = pPlayer->pEquipment.uOffHand;
+                                                    v249 = pPlayer->pEquipment.uOffHand;
                                                     if ( !v145 )
                                                       goto LABEL_393;
-                                                    v146 = (int)&v217->pInventoryItems[v145-1];
+                                                    v146 = (int)&pPlayer->pInventoryItems[v145-1];
                                                     v228 = v146;
                                                     v147 = *(int *)v146;
                                                     v148 = *(int *)v146;
@@ -8204,10 +8192,10 @@
                                       goto LABEL_272;
                                     }
 LABEL_209:
-                                    if ( v68->pEquipment.uMainHand
-                                      && (v68->GetEquippedItemEquipType(1u) == 1
-                                       || v68->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4
-                                       && !v68->pEquipment.uOffHand) )
+                                    if ( pPlayer->pEquipment.uMainHand
+                                      && (pPlayer->GetEquippedItemEquipType(1u) == 1
+                                       || pPlayer->GetEquippedItemSkillType(EQUIP_TWO_HANDED) == 4
+                                       && !pPlayer->pEquipment.uOffHand) )
                                     {
                                       v91 = 17 * pBodyComplection + v90;
                                       v92 = v91;
@@ -8227,10 +8215,7 @@
                                       }
                                       a3g = pPaperdoll_BodyY + v95;
                                       if ( v94 == pIcons_LOD->FindTextureByName("pending") )
-                                      {
-                                        v68 = v217;
                                         goto LABEL_259;
-                                      }
                                       if ( *(int *)(v242 + 516) & 0xF0 )
                                       {
                                         if ( (*(int *)(v242 + 516) & 0xF0) != 16 )
@@ -8251,7 +8236,6 @@
                                             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);
-                                            v68 = v217;
                                             goto LABEL_259;
                                           }
                                           if ( (*(int *)(v242 + 516) & 0xF0) == 64 )
@@ -8270,7 +8254,6 @@
                                             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);
-                                            v68 = v217;
                                             goto LABEL_259;
                                           }
                                           if ( (*(int *)(v242 + 516) & 0xF0) == 128 )
@@ -8289,7 +8272,6 @@
                                             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);
-                                            v68 = v217;
                                             goto LABEL_259;
                                           }
                                         }
@@ -8307,7 +8289,6 @@
                                         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);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       v98 = v94 + 1;
@@ -8322,7 +8303,6 @@
                                         v100->DrawTransparentRedShade(v163, v175, v188);
                                         if ( !bRingsShownInCharScreen )
                                           pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       if ( *(char *)(v242 + 516) & 1 )
@@ -8334,7 +8314,6 @@
                                         pRenderer->DrawTextureTransparent(v164, v176, v189);
                                         if ( !bRingsShownInCharScreen )
                                           pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       v101 = (Texture *)(v98 != 0 ? (int)v99 : 0);
@@ -8344,16 +8323,12 @@
                                       pRenderer->DrawTransparentGreenShade(v165, v177, v190);
                                       if ( !bRingsShownInCharScreen )
                                         pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                      v68 = v217;
                                       goto LABEL_259;
                                     }
                                     v102 = 17 * pBodyComplection + v90;
                                     v94 = paperdoll_array_511290[0][v102][1];
                                     if ( v94 == pIcons_LOD->FindTextureByName("pending") )
-                                    {
-                                      v68 = v217;
                                       goto LABEL_259;
-                                    }
                                     v103 = pPaperdoll_BodyX + paperdoll_shoulder[0][v102][0];
                                     v104 = pPaperdoll_BodyY + paperdoll_shoulder[0][v102][1];
                                     v224 = *(int *)(v242 + 516);
@@ -8374,7 +8349,6 @@
                                         v100->DrawTransparentRedShade(v163, v175, v188);
                                         if ( !bRingsShownInCharScreen )
                                           pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       if ( v224 & 1 )
@@ -8387,7 +8361,6 @@
                                         pRenderer->DrawTextureTransparent(v164, v176, v189);
                                         if ( !bRingsShownInCharScreen )
                                           pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       v101 = (Texture *)(v109 != 0 ? (int)v110 : 0);
@@ -8398,7 +8371,6 @@
                                       pRenderer->DrawTransparentGreenShade(v165, v177, v190);
                                       if ( !bRingsShownInCharScreen )
                                         pRenderer->_4A612A(a2g, a3g, v101, v235);
-                                      v68 = v217;
                                       goto LABEL_259;
                                     }
                                     v106 = v105 - 16;
@@ -8421,7 +8393,6 @@
                                         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);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       v108 = v107 - 32;
@@ -8441,7 +8412,6 @@
                                         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);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                       if ( v108 == 64 )
@@ -8460,7 +8430,6 @@
                                         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);
-                                        v68 = v217;
                                         goto LABEL_259;
                                       }
                                     }
@@ -8478,7 +8447,6 @@
                                     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);
-                                    v68 = v217;
                                     goto LABEL_259;
                                   }
                                   v186 = 16;
@@ -8806,23 +8774,23 @@
     pRenderer->_4A612A(a2, a3,
       (Texture *)(*(unsigned int *)((char *)papredoll_dbods + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dbods + v240)] : 0),
       pPlayer->pEquipment.uBody);
-  uPlayerID_a = 2 * v5;
+  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[v5][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[v5][1],
+    pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
       (Texture *)(*(unsigned int *)((char *)papredoll_dlads + v240) != -1 ? (int)&pIcons_LOD->pTextures[*(unsigned int *)((char *)papredoll_dlads + v240)] : 0));
   v8 = pPlayer->pEquipment.uMainHand;
   if ( v8 )
   {
     v229 = pPlayer->pEquipment.uMainHand;
-    v9 = (int)&v217->pInventoryItems[v8-1];
-    v10 = v5 << 7;
+    v9 = (int)&pPlayer->pInventoryItems[v8-1];
+    v10 = pBodyComplection << 7;
     v218 = v9;
     v11 = *(int *)v9;
     v12 = *(int *)v9;
-    v13 = pPaperdoll_BodyX + paperdoll_Weapon[v5][1][0] - pItemsTable->pItems[v12].uEquipX;
+    v13 = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[v12].uEquipX;
     a2a = v13;
     a3a = pPaperdoll_BodyY + *(int *)((char *)&paperdoll_Weapon[0][1][1] + v10) - pItemsTable->pItems[v12].uEquipY;
     if ( v11 == 64 )
@@ -8925,11 +8893,11 @@
   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 = v217->pEquipment.uMainHand;
+  v161 = pPlayer->pEquipment.uMainHand;
   if ( v161 )
   {
-    v162 = *(int *)&v217->pInventoryItems[v161-1];
-    if ( pItemsTable->pItems[v162].uEquipType == 1 || pItemsTable->pItems[v162].uSkillType == 4 && !v217->pEquipment.uOffHand )
+    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));
--- a/mm7_data.cpp	Thu Feb 21 00:33:12 2013 +0400
+++ b/mm7_data.cpp	Thu Feb 21 00:35:45 2013 +0400
@@ -69,68 +69,192 @@
 #include "stru159.h"
 stru159 pAnimatedRooms[196] = 
 {
- "",                            0x00000004, 0x000001F4, 0x00000000,
- "Human Armor01",               0x00000020, 0x000002C0, 0x00003A02,
- "Necromancer Armor01",         0x00000020, 0x000002D7, 0x00004602,
- "Dwarven Armor01",             0x00000020, 0x000002EE, 0x00000502,
- "Wizard Armor",                0x00000020, 0x000003BD, 0x00001302,
- "Warlock Armor",               0x00000020, 0x000002D6, 0x00002302,
- "Elf Armor",                   0x00000020, 0x000002BC, 0x00004F02,
- "Human Alchemisht01",          0x0000000E, 0x000002BE, 0x00005F04,
- "Necromancer Alchemist01",     0x0000000E, 0x000002D6, 0x00004504,
- "Dwarven Achemist01",          0x0000000E, 0x00000387, 0x00000404,
- "Wizard Alchemist",            0x0000000E, 0x00000232, 0x00001904,
- "Warlock Alchemist",           0x0000000E, 0x000002BE, 0x00002A04,
- "Elf Alchemist",               0x0000000E, 0x0000038A, 0x00005404,
- "Human Bank01",                0x00000006, 0x00000384, 0x00003416,
- "Necromancer Bank01",          0x00000006, 0x000002D8, 0x00004716,
- "Dwarven Bank",                0x00000006, 0x000002F3, 0x00000616,
- "Wizard Bank",                 0x00000006, 0x000003BA, 0x00001416,
- "Warlock Bank",                0x00000006, 0x0000039F, 0x00002416,
- "Elf Bank",                    0x00000006, 0x000002BC, 0x00004716,
- "Boat01",                      0x0000000F, 0x0000004C, 0x0003351C,
- "Boat01d",                     0x0000000F, 0x0000004C, 0x0003351C,
- "Human Magic Shop01",          0x0000000A, 0x000002C8, 0x00003603,
- "Necromancer Magic Shop01",    0x0000000E, 0x000002DC, 0x00004203,
- "Dwarven Magic Shop01",        0x0000002A, 0x000002EF, 0x00005B03,
- "Wizard Magic Shop",           0x0000001E, 0x000002DF, 0x00000F03,
- "Warlock Magic Shop",          0x00000007, 0x000003B9, 0x00001F03,
- "Elf Magic Shop",              0x00000024, 0x000002CC, 0x00005203,
- "Human Stables01",             0x00000021, 0x00000031, 0x0003301B,
- "Necromancer Stables",         0x00000021, 0x000002DD, 0x0003431B,
- "",                            0x00000021, 0x000002F0, 0x00035B1B,
- "Wizard Stables",              0x00000021, 0x000003BA, 0x0003101B,
- "Warlock Stables",             0x00000021, 0x00000181, 0x0003201B,
- "Elf Stables",                 0x00000021, 0x00000195, 0x00034D1B,
- "Human Tavern01",              0x0000000D, 0x000002C2, 0x00003115,
- "Necromancer Tavern 01",       0x0000000D, 0x000003B0, 0x00003915,
- "Dwarven Tavern01",            0x0000000D, 0x000002FE, 0x00005E15,
- "Wizard Tavern",               0x0000000D, 0x000003BB, 0x00001115,
- "Warlock Tavern",              0x0000000D, 0x000003A8, 0x00002115,
- "Elf Tavern",                  0x0000000D, 0x000002CD, 0x00004E15,
- "Human Temple01",              0x00000024, 0x000002DB, 0x00033217,
- "Necromancer Temple",          0x00000024, 0x000002DF, 0x00033C17,
- "Dwarven Temple01",            0x00000024, 0x000002F1, 0x00035617,
- "Wizard Temple",               0x00000024, 0x000002E0, 0x00030A17,
- "Warlock Temple",              0x00000024, 0x000003A4, 0x00031B17,
- "Elf Temple",                  0x00000024, 0x000002CE, 0x00034817,
- "Human Town Hall",             0x00000010, 0x0000039C, 0x00000E11,
- "Necromancer Town Hall01",     0x00000010, 0x000003A4, 0x00003D11,
- "Dwarven Town Hall",           0x00000010, 0x000002DB, 0x00005811,
- "Wizard Town Hall",            0x00000010, 0x000003BD, 0x00000B11,
- "Warlock Town Hall",           0x00000010, 0x000002DB, 0x00001C11,
- "Elf Town Hall",               0x00000010, 0x0000027A, 0x00004911,
- "Human Training Ground01",     0x00000018, 0x000002C7, 0x00002C1E,
- "Necromancer Training Ground", 0x00000018, 0x000003AD, 0x00003E1E,
- "Dwarven Training Ground",     0x00000018, 0x000002F2, 0x0000591E,
- "Wizard Training Ground",      0x00000018, 0x000003A3, 0x00000C1E,
- "Warlock Training Ground",     0x00000018, 0x000003A6, 0x00001D1E,
- "Elf Training Ground",         0x00000018, 0x0000019F, 0x00004A1E,
- "Human Weapon Smith01",        0x00000016, 0x000002C1, 0x00042D01,
- "Necromancer Weapon Smith01",  0x00000016, 0x000002D9, 0x00043F01,
- "Dwarven Weapon Smith01",      0x00000016, 0x000002EE, 0x00045201,
- "Wizard Weapon Smith",         0x00000016, 0x000002D5, 0x00040D01,
- "Warlock Weapon Smith",        0x00000016, 0x000002D7, 0x00041701
+ "",                            0x4, 0x1F4, 0,
+ "Human Armor01",               0x20, 0x2C0, 0x3A02,
+ "Necromancer Armor01",         0x20, 0x2D7, 0x4602,
+ "Dwarven Armor01",             0x20, 0x2EE, 0x502,
+ "Wizard Armor",                0x20, 0x3BD, 0x1302,
+ "Warlock Armor",               0x20, 0x2D6, 0x2302,
+ "Elf Armor",                   0x20, 0x2BC, 0x4F02,
+ "Human Alchemisht01",          0xE, 0x2BE, 0x5F04,
+ "Necromancer Alchemist01",     0xE, 0x2D6, 0x4504,
+ "Dwarven Achemist01",          0xE, 0x387, 0x404,
+ "Wizard Alchemist",            0xE, 0x232, 0x1904,
+ "Warlock Alchemist",           0xE, 0x2BE, 0x2A04,
+ "Elf Alchemist",               0xE, 0x38A, 0x5404,
+ "Human Bank01",                0x6, 0x384, 0x3416,
+ "Necromancer Bank01",          0x6, 0x2D8, 0x4716,
+ "Dwarven Bank",                0x6, 0x2F3, 0x616,
+ "Wizard Bank",                 0x6, 0x3BA, 0x1416,
+ "Warlock Bank",                0x6, 0x39F, 0x2416,
+ "Elf Bank",                    0x6, 0x2BC, 0x4716,
+ "Boat01",                      0xF, 0x4C, 0x3351C,
+ "Boat01d",                     0xF, 0x4C, 0x3351C,
+ "Human Magic Shop01",          0xA, 0x2C8, 0x3603,
+ "Necromancer Magic Shop01",    0xE, 0x2DC, 0x4203,
+ "Dwarven Magic Shop01",        0x2A, 0x2EF, 0x5B03,
+ "Wizard Magic Shop",           0x1E, 0x2DF, 0xF03,
+ "Warlock Magic Shop",          0x7, 0x3B9, 0x1F03,
+ "Elf Magic Shop",              0x24, 0x2CC, 0x5203,
+ "Human Stables01",             0x21, 0x31, 0x3301B,
+ "Necromancer Stables",         0x21, 0x2DD, 0x3431B,
+ "",                            0x21, 0x2F0, 0x35B1B,
+ "Wizard Stables",              0x21, 0x3BA, 0x3101B,
+ "Warlock Stables",             0x21, 0x181, 0x3201B,
+ "Elf Stables",                 0x21, 0x195, 0x34D1B,
+ "Human Tavern01",              0xD, 0x2C2, 0x3115,
+ "Necromancer Tavern 01",       0xD, 0x3B0, 0x3915,
+ "Dwarven Tavern01",            0xD, 0x2FE, 0x5E15,
+ "Wizard Tavern",               0xD, 0x3BB, 0x1115,
+ "Warlock Tavern",              0xD, 0x3A8, 0x2115,
+ "Elf Tavern",                  0xD, 0x2CD, 0x4E15,
+ "Human Temple01",              0x24, 0x2DB, 0x33217,
+ "Necromancer Temple",          0x24, 0x2DF, 0x33C17,
+ "Dwarven Temple01",            0x24, 0x2F1, 0x35617,
+ "Wizard Temple",               0x24, 0x2E0, 0x30A17,
+ "Warlock Temple",              0x24, 0x3A4, 0x31B17,
+ "Elf Temple",                  0x24, 0x2CE, 0x34817,
+ "Human Town Hall",             0x10, 0x39C, 0xE11,
+ "Necromancer Town Hall01",     0x10, 0x3A4, 0x3D11,
+ "Dwarven Town Hall",           0x10, 0x2DB, 0x5811,
+ "Wizard Town Hall",            0x10, 0x3BD, 0xB11,
+ "Warlock Town Hall",           0x10, 0x2DB, 0x1C11,
+ "Elf Town Hall",               0x10, 0x27A, 0x4911,
+ "Human Training Ground01",     0x18, 0x2C7, 0x2C1E,
+ "Necromancer Training Ground", 0x18, 0x3AD, 0x3E1E,
+ "Dwarven Training Ground",     0x18, 0x2F2, 0x591E,
+ "Wizard Training Ground",      0x18, 0x3A3, 0xC1E,
+ "Warlock Training Ground",     0x18, 0x3A6, 0x1D1E,
+ "Elf Training Ground",         0x18, 0x19F, 0x4A1E,
+ "Human Weapon Smith01",        0x16, 0x2C1, 0x42D01,
+ "Necromancer Weapon Smith01",  0x16, 0x2D9, 0x43F01,
+ "Dwarven Weapon Smith01",      0x16, 0x2EE, 0x45201,
+ "Wizard Weapon Smith",         0x16, 0x2D5, 0x40D01,
+ "Warlock Weapon Smith",        0x16, 0x2D7, 0x41701,
+ "Elf Weapon Smith",            0x16, 0x2CA, 0x44B01,
+ "Air Guild",                   0x1D, 0xA4, 0x30106,
+ "Body Guild",                  0x19, 0x3BF, 0x20B,
+ "DarkGuild",                   0x19, 0x2D1, 0x30D,
+ "EarthGuild",                  0x19, 0x2CB, 0x5308,
+ "Fire Guild",                  0x1C, 0x2BF, 0x3805,
+ "Light Guild",                 0x1C, 0x2D5, 0x2E0C,
+ "Mind Guild",                  0x1C, 0xE5, 0x280A,
+ "Spirit Guild",                0x1C, 0x2D2, 0x2909,
+ "Water Guild",                 0x1B, 0x2D3, 0x1807,
+ "Lord And Judge Out01",        1, 0, 0x271D,
+ "Human Poor House 1",          8, 0, 0x1D,
+ "Human Poor House 2",          8, 0, 0x1D,
+ "Human Medium House 1",        8, 0, 0x1D,
+ "Human Medium House 2",        8, 0, 0x1D,
+ "Human Rich House 1",          8, 0, 0x1D,
+ "Human Rich House 2",          8, 0, 0x1D,
+ "Elven Poor House 1",          8, 0, 0x1D,
+ "Elven Poor House 2",          8, 0, 0x1D,
+ "Elven Poor House 3",          8, 0, 0x1D,
+ "Elven Medium House 1",        8, 0, 0x1D,
+ "Elven Medium House 2",        8, 0, 0x1D,
+ "Elven Medium House 3",        8, 0, 0x1D,
+ "Elven Rich House 1",          8, 0, 0x1D,
+ "Elven Rich House 2",          8, 0, 0x1D,
+ "Elven Rich House 3",          8, 0, 0x1D,
+ "Dwarven Poor House 1",        8, 0, 0x1D,
+ "Dwarven Poor House 2",        8, 0, 0x1D,
+ "Dwarven Poor House 3",        8, 0, 0x1D,
+ "Dwarven Medium House 1",      8, 0, 0x1D,
+ "Dwarven Medium house 2",      8, 0, 0x1D,
+ "Dwarven Medium House 3",      8, 0, 0x1D,
+ "Dwarven Rich House 1",        8, 0, 0x1D,
+ "Dwarven Rich House 2",        8, 0, 0x1D,
+ "Dwarven Rich House 3",        8, 0, 0x1D,
+ "Wizard Poor House 1",         8, 0, 0x1D,
+ "Wizard Poor House 2",         8, 0, 0x1D,
+ "Wizard Poor House 3",         8, 0, 0x1D,
+ "Wizard Medium House 1",       8, 0, 0x1D,
+ "Wizard Medium House 2",       8, 0, 0x1D,
+ "Wizard Mdeium House 3",       8, 0, 0x1D,
+ "Wizard Rich House 1",         8, 0, 0x1D,
+ "Wizard Rich House 2",         8, 0, 0x1D,
+ "Wizard Rich House 3",         8, 0, 0x1D,
+ "Necromancer Poor House 1",    8, 0, 0x1D,
+ "Necromancer Poor House 2",    8, 0, 0x1D,
+ "Necromancer Poor House 3",    8, 0, 0x1D,
+ "Necromancer Medium House 1",  8, 0, 0x1D,
+ "Necromancer Medium House 2",  8, 0, 0x1D,
+ "Necromancer Mdeium House 3",  8, 0, 0x1D,
+ "Necromancer Rich House 1",    8, 0, 0x1D,
+ "Necromancer Rich House 2",    8, 0, 0x1D,
+ "Necromancer Rich House 3",    8, 0, 0x1D,
+ "Warlock Poor House 1",        8, 0, 0x1D,
+ "Warlock Poor House 2",        8, 0, 0x1D,
+ "Warlock Poor House 3",        8, 0, 0x1D,
+ "Warlock Medium House 1",      8, 0, 0x1D,
+ "Warlock Medium House 2",      8, 0, 0x1D,
+ "Warlock Mdeium House 3",      8, 0, 0x1D,
+ "Warlock Rich House 1",        8, 0, 0x1D,
+ "Warlock Rich House 2",        8, 0, 0x1D,
+ "Warlock Rich House 3",        8, 0, 0x1D,
+ "Out01 Temple of the Moon",    0x24, 0, 0x19,
+ "Out01 Dragon Cave",           0x24, 0, 0x19,
+ "Out02 Castle Harmondy",       0x24, 0, 0x19,
+ "Out02 White Cliff Cave",      0x24, 0, 0x19,
+ "Out03 Erathian Sewer",        0x24, 0, 0x19,
+ "Out03 Fort Riverstride",      0x24, 0, 0x19,
+ "Out03 Castle Gryphonheart",   0x24, 0, 0x19,
+ "Out04 Elf Castle",            0x24, 0, 0x19,
+ "Out04 Tularean Caves",        0x24, 0, 0x19,
+ "Out04 Clanker's Laboratory",  0x24, 0, 0x19,
+ "Out05 Hall of the Pit",       0x24, 0, 0x19,
+ "Out05 Watchtower 6",          0x24, 0, 0x19,
+ "Out06 School of Sorcery",     0x24, 0, 0x19,
+ "Out06 Red Dwarf Mines",       0x24, 0, 0x19,
+ "Out07 Castle Lambert",        0x24, 0, 0x19,
+ "Out07 Walls of Mist",         0x24, 0, 0x19,
+ "Out07 Temple of the Light",   0x24, 0, 0x19,
+ "Out08 Evil Entrance",         0x24, 0, 0x19,
+ "Out08 Breeding Zone",         0x24, 0, 0x19,
+ "Out08 Temple of the Dark",    0x24, 0, 0x19,
+ "Out09 Grand Temple of the Moon", 0x24, 0, 0x19,
+ "Out09 Grand Tempple of the Sun", 0x24, 0, 0x19,
+ "Out10 Thunderfist Mountain",  0x24, 0, 0x19,
+ "Out10 The Maze",              0x24, 0, 0x19,
+ "Out10 Connecting Tunnel Cave #1", 0x24, 0, 0x19,
+ "",                            0x24, 0, 0x19,
+ "Out11 Stone City",            0x24, 0, 0x19,
+ "",                            0x24, 0, 0x19,
+ "Out12 Colony Zod",            0x24, 0, 0x19,
+ "Out12 Connecting Tunnel Cave #1", 0x24, 0, 0x19,
+ "",                            0x24, 0, 0x19,
+ "Out13 Mercenary Guild",       0x24, 0, 0x19,
+ "Out13 Tidewater Caverns",     0x24, 0, 0x19,
+ "Out13 Wine Cellar",           0x24, 0, 0x19,
+ "Out14 Titan's Stronghold",    0x24, 0, 0x19,
+ "Out14 Temple Of Baa",         0x24, 0, 0x19,
+ "Out14 Hall under the Hill",   0x24, 0, 0x19,
+ "Out15 The Linclon",           0x24, 0, 0x19,
+ "Jail",                        0x24, 0, 0x1F,
+ "Harmondale Throne Room",      0x24, 0, 0x1D,
+ "Gryphonheart Throne Room",    0x24, 0, 0x14,
+ "Elf Castle Throne Room",      0x24, 0, 0x14,
+ "Wizard Castle Throne Room",   0x24, 0, 0x14,
+ "Necromancer Casstle Trone Room", 0x24, 0, 0x14,
+ "Master Thief",                0x24, 0, 0x1D,
+ "Dwarven King",                0x24, 0, 0x14,
+ "Arms Master",                 0x24, 0, 0x1D,
+ "Warlock",                     0x24, 0, 0x1D,
+ "Lord Markam",                 0x24, 0, 0x14,
+ "Arbiter Neutral Town",        0x24, 0, 0x1D,
+ "Arbiter Good Town",           0x24, 0, 0x1D,
+ "Arbiter Evil Town",           0x24, 0, 0x1D,
+ "Necromancer Throne Room Empty", 0x24, 0, 0x14,
+ "",                            0x24, 0, 0x1D,
+ "Boat01",                      0xF, 0, 0x3351D,
+ "",                            0x24, 0, 0x1C,
+ "",                            0x24, 0, 0x1D,
+ "Arbiter Room Neutral",        0x24, 0, 0x1D,
+ "Out02 Castle Harmondy Abandoned", 0x24, 0, 0x19,
+ "Human Temple02",              0x24, 0x3AB, 0x1B17,
+ "Player Castle Good",          0x24, 0, 0x19,
+ "Player Castle Bad",           0x24, 0, 0x19,
 };
 
 #include "stru160.h"