diff UI/UICharacter.cpp @ 1822:5f9eeb7bf8e6

Finishing Player.cpp, fixing some bugs
author Grumpy7
date Wed, 09 Oct 2013 08:06:26 +0200
parents 0f1543750bf8
children 211dfe2d8db1
line wrap: on
line diff
--- a/UI/UICharacter.cpp	Tue Oct 08 07:41:00 2013 +0200
+++ b/UI/UICharacter.cpp	Wed Oct 09 08:06:26 2013 +0200
@@ -1137,9 +1137,11 @@
                      pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1]));
       }
       //--------------------------------(Shoulder/Плечи)---------------------------------------------
-      item = player->GetArmorItem();
-      switch ( item->uItemID )
+      if (player->GetItem(&PlayerEquipment::uArmor))
       {
+        item = player->GetArmorItem();
+        switch ( item->uItemID )
+        {
         case ITEM_ARTIFACT_GOVERNORS_ARMOR:
           index = 15;
           break;
@@ -1155,107 +1157,108 @@
         default:
           index = item->uItemID - 66;
           break;
-      }
-      if ( index >= 0 && index < 17 )
-      {
-        if ( player->GetItem(&PlayerEquipment::uMainHand)
-          && (player->GetMainHandItem()->GetItemEquipType() == EQUIP_MAIN_HAND
-          ||  player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR
-          && !player->GetItem(&PlayerEquipment::uShield) ))//без щита
+        }
+        if ( index >= 0 && index < 17 )
         {
-          v94 = paperdoll_armor_texture[pBodyComplection][index][2];
-          if ( paperdoll_armor_texture[pBodyComplection][index][2] == pIcons_LOD->FindTextureByName("pending") )
-          {
-            v94 = paperdoll_armor_texture[pBodyComplection][index][1];
-            item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0];
-            item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1];
-          }
-          else
+          if ( player->GetItem(&PlayerEquipment::uMainHand)
+            && (player->GetMainHandItem()->GetItemEquipType() == EQUIP_MAIN_HAND
+            ||  player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR
+            && !player->GetItem(&PlayerEquipment::uShield) ))//без щита
           {
-            item_X = pPaperdoll_BodyX + paperdoll_shoulder_second_coord[pBodyComplection][index][0];
-            item_Y = pPaperdoll_BodyY + paperdoll_shoulder_second_coord[pBodyComplection][index][1];
-          }
-          if ( v94 != pIcons_LOD->FindTextureByName("pending") )
-          {
-            if ( !(item->uAttributes & 0xF0) )
+            v94 = paperdoll_armor_texture[pBodyComplection][index][2];
+            if ( paperdoll_armor_texture[pBodyComplection][index][2] == pIcons_LOD->FindTextureByName("pending") )
             {
-              if ( item->uAttributes & 2 )
-                pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
-              else
-              {
-                if ( item->uAttributes & 1 )
-                  pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v94));
-                else
-                  pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
-              }
+              v94 = paperdoll_armor_texture[pBodyComplection][index][1];
+              item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0];
+              item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1];
             }
             else
             {
-              if ( paperdoll_armor_texture[pBodyComplection][index][2] != pIcons_LOD->FindTextureByName("pending") )
+              item_X = pPaperdoll_BodyX + paperdoll_shoulder_second_coord[pBodyComplection][index][0];
+              item_Y = pPaperdoll_BodyY + paperdoll_shoulder_second_coord[pBodyComplection][index][1];
+            }
+            if ( v94 != pIcons_LOD->FindTextureByName("pending") )
+            {
+              if ( !(item->uAttributes & 0xF0) )
               {
-                if ( item->uAttributes & 0xF0 )
+                if ( item->uAttributes & 2 )
+                  pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
+                else
+                {
+                  if ( item->uAttributes & 1 )
+                    pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v94));
+                  else
+                    pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
+                }
+              }
+              else
+              {
+                if ( paperdoll_armor_texture[pBodyComplection][index][2] != pIcons_LOD->FindTextureByName("pending") )
                 {
-                  if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED )
-                    container = "sptext01";
-                  if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE )
-                    container = "sp28a";
-                  if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN )
-                    container = "sp30a";
-                  if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE )
-                    container = "sp91a";
-                  _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed;
-                  if ( _50C9A8_item_enchantment_timer <= 0 )
+                  if ( item->uAttributes & 0xF0 )
                   {
-                    _50C9A8_item_enchantment_timer = 0;
-                    item->uAttributes &= 0xFFFFFF0Fu;
-                    ptr_50C9A4_ItemToEnchant = 0;
+                    if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED )
+                      container = "sptext01";
+                    if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE )
+                      container = "sp28a";
+                    if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN )
+                      container = "sp30a";
+                    if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE )
+                      container = "sp91a";
+                    _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed;
+                    if ( _50C9A8_item_enchantment_timer <= 0 )
+                    {
+                      _50C9A8_item_enchantment_timer = 0;
+                      item->uAttributes &= 0xFFFFFF0Fu;
+                      ptr_50C9A4_ItemToEnchant = 0;
+                    }
+                    pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v94), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE),
+                      GetTickCount() * 0.1, 0, 255);
                   }
-                  pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v94), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE),
-                                GetTickCount() * 0.1, 0, 255);
                 }
               }
             }
           }
-        }
-        else//без ничего или с щитом
-        {
-          //v94 = paperdoll_armor_texture[pBodyComplection][index][1];
-          if ( paperdoll_armor_texture[pBodyComplection][index][1] != pIcons_LOD->FindTextureByName("pending") )
+          else//без ничего или с щитом
           {
-            item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0];
-            item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1];
-            if ( !(item->uAttributes & 0xF0) )
+            //v94 = paperdoll_armor_texture[pBodyComplection][index][1];
+            if ( paperdoll_armor_texture[pBodyComplection][index][1] != pIcons_LOD->FindTextureByName("pending") )
             {
-              if ( item->uAttributes & 2 )
-                pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+              item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0];
+              item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1];
+              if ( !(item->uAttributes & 0xF0) )
+              {
+                if ( item->uAttributes & 2 )
+                  pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+                else
+                {
+                  if ( item->uAttributes & 1 )
+                    pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+                  else
+                    pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+                }
+              }
               else
               {
-                if ( item->uAttributes & 1 )
-                  pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
-                else
-                  pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+                if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED )
+                  container = "sptext01";
+                if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE )
+                  container = "sp28a";
+                if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN )
+                  container = "sp30a";
+                if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE )
+                  container = "sp91a";
+                _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed;
+                if ( _50C9A8_item_enchantment_timer <= 0 )
+                {
+                  _50C9A8_item_enchantment_timer = 0;
+                  item->uAttributes &= 0xFFFFFF0Fu;
+                  ptr_50C9A4_ItemToEnchant = 0;
+                }
+                pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]),
+                  pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255);
               }
             }
-            else
-            {
-              if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED )
-                container = "sptext01";
-              if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE )
-                container = "sp28a";
-              if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN )
-                container = "sp30a";
-              if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE )
-                container = "sp91a";
-              _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed;
-              if ( _50C9A8_item_enchantment_timer <= 0 )
-              {
-                _50C9A8_item_enchantment_timer = 0;
-                item->uAttributes &= 0xFFFFFF0Fu;
-                ptr_50C9A4_ItemToEnchant = 0;
-              }
-              pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]),
-                    pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255);
-            }
           }
         }
       }