diff mm7_5.cpp @ 515:cb0ad52d6a26

LayingItem -> SpriteObject (long-waited rename, old name was inaccurate and confused people) Some object-related subs moved to SpriteObject.cpp
author Nomad
date Fri, 01 Mar 2013 21:13:12 +0200
parents 3ee1e351e710
children 663c4f618f56
line wrap: on
line diff
--- a/mm7_5.cpp	Fri Mar 01 18:23:49 2013 +0200
+++ b/mm7_5.cpp	Fri Mar 01 21:13:12 2013 +0200
@@ -22,7 +22,7 @@
 #include "Viewport.h"
 #include "FrameTableInc.h"
 #include "Math.h"
-#include "LayingItem.h"
+#include "SpriteObject.h"
 #include "ObjectList.h"
 #include "Chest.h"
 #include "PaletteManager.h"
@@ -1783,7 +1783,7 @@
           }
           if ( v45 == 2 )
           {
-            v47 = (pObjectList->pObjects[pLayingItems[v46].uObjectDescID].uFlags & 0x10) == 0;
+            v47 = (pObjectList->pObjects[pSpriteObjects[v46].uObjectDescID].uFlags & 0x10) == 0;
 //LABEL_400:
             if ( !v47 )
               continue;
@@ -4679,7 +4679,7 @@
   char *v1; // esi@2
   int v2; // ecx@3
   signed int v3; // eax@3
-  LayingItem *v4; // eax@4
+  SpriteObject *v4; // eax@4
   signed int v5; // eax@4
   signed int v6; // eax@6
   unsigned int v7; // edi@6
@@ -4711,7 +4711,7 @@
   int v33; // ST24_4@29
   Vec3_int_ v34; // ST04_12@30
   Vec3_int_ *v35; // eax@31
-  LayingItem *v36; // [sp+0h] [bp-28h]@0
+  SpriteObject *v36; // [sp+0h] [bp-28h]@0
   signed int v37; // [sp+4h] [bp-24h]@5
   int v38; // [sp+4h] [bp-24h]@15
   signed int v39; // [sp+8h] [bp-20h]@3
@@ -4738,7 +4738,7 @@
       v39 = (signed int)*((short *)v1 - 300) >> 3;
       if ( v2 == 2 )
       {
-        v4 = &pLayingItems[v3];
+        v4 = &pSpriteObjects[v3];
         v36 = v4;
         v5 = v4->field_58_pid;
         v2 = v5 & 7;
@@ -4904,12 +4904,12 @@
 void DamageMonsterFromParty(signed int a1, unsigned int uActorID_Monster, Vec3_int_ *pVelocity)
 {
   //signed int v3; // eax@1
-  LayingItem *v4; // ebx@1
+  SpriteObject *v4; // ebx@1
   //int v5; // edx@3
   //bool uPlayerID; // eax@3
   //Player *pPlayer; // edi@4
   Actor *pMonster; // esi@7
-  LayingItem *v9; // ebx@12
+  SpriteObject *v9; // ebx@12
   int v10; // eax@12
   int v11; // ebx@12
   unsigned int v12; // ecx@12
@@ -4978,7 +4978,7 @@
   v62 = 0;
   if ( (a1 & 7) == OBJECT_Item)
   {
-    v4 = &pLayingItems[a1 >> 3];
+    v4 = &pSpriteObjects[a1 >> 3];
     //uDamageAmount = (int)v4;
     v61 = v4->field_60_distance_related_prolly_lod;
     a1 = v4->field_58_pid;
@@ -5054,7 +5054,7 @@
   v61 = v4->field_60_distance_related_prolly_lod;
   if ( !v19 )
   {
-    v9 = (LayingItem *)uDamageAmount;
+    v9 = (SpriteObject *)uDamageAmount;
     v50 = pParty->vPosition.x - *(int *)(uDamageAmount + 4);
     //v55 = abs(v50);
     pMonsterName = (char *)(pParty->vPosition.y - v9->vPosition.y);
@@ -5094,7 +5094,7 @@
     {
       v61 = 1;
     }
-    v4 = (LayingItem *)uDamageAmount;
+    v4 = (SpriteObject *)uDamageAmount;
   }
 
   v15 = v4->field_48;
@@ -5409,7 +5409,7 @@
   int v34; // edi@61
   int v35; // eax@70
   double v36; // st7@70
-  LayingItem *v37; // ebx@77
+  SpriteObject *v37; // ebx@77
   int v38; // edi@77
   int v39; // esi@77
   int v40; // eax@77
@@ -5650,7 +5650,7 @@
     viewparams->bRedrawGameUI = 1;
     return;
   }
-  v37 = &pLayingItems[uActorID];
+  v37 = &pSpriteObjects[uActorID];
   v38 = v37->field_58_pid & 7;
   v39 = v37->field_58_pid >> 3;
   v40 = v37->field_58_pid & 7;
@@ -5666,8 +5666,8 @@
       a4 = stru_50C198.which_player_would_attack(v44);
     v45 = &pParty->pPlayers[a4];
     v77 = Actor::_43B3E0_CalcDamage(v44, v74);
-    v46 = v37->uItemType;
-    if ( v37->uItemType == 545 )
+    v46 = v37->uType;
+    if ( v37->uType == 545 )
     {
       LOBYTE(v51) = v45->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
       v52 = v51;
@@ -5892,29 +5892,29 @@
   v6 = uLayingItemID;
   v2 = uLayingItemID;
   v3 = a2 >> 3;
-  v4 = pLayingItems[uLayingItemID].field_58_pid & 7;
+  v4 = pSpriteObjects[uLayingItemID].field_58_pid & 7;
   v5 = (a2 & 7) - 3;
   if ( v5 )
   {
     if ( v5 == 1 )
     {
-      layingitem_vel_50FDFC.x = pLayingItems[v2].vVelocity.x;
-      layingitem_vel_50FDFC.y = pLayingItems[v2].vVelocity.y;
-      layingitem_vel_50FDFC.z = pLayingItems[v2].vVelocity.z;
+      layingitem_vel_50FDFC.x = pSpriteObjects[v2].vVelocity.x;
+      layingitem_vel_50FDFC.y = pSpriteObjects[v2].vVelocity.y;
+      layingitem_vel_50FDFC.z = pSpriteObjects[v2].vVelocity.z;
       Vec3_int_::Normalize(&layingitem_vel_50FDFC.x, &layingitem_vel_50FDFC.y, &layingitem_vel_50FDFC.z);
-      DamagePlayerFromMonster(8 * v6 | 2, pLayingItems[v2].field_61, &layingitem_vel_50FDFC, 0xFFFFFFFFu);
-    }
-  }
-  else
-  {
-    layingitem_vel_50FDFC.x = pLayingItems[v2].vVelocity.x;
-    layingitem_vel_50FDFC.y = pLayingItems[v2].vVelocity.y;
-    layingitem_vel_50FDFC.z = pLayingItems[v2].vVelocity.z;
+      DamagePlayerFromMonster(8 * v6 | 2, pSpriteObjects[v2].field_61, &layingitem_vel_50FDFC, 0xFFFFFFFFu);
+    }
+  }
+  else
+  {
+    layingitem_vel_50FDFC.x = pSpriteObjects[v2].vVelocity.x;
+    layingitem_vel_50FDFC.y = pSpriteObjects[v2].vVelocity.y;
+    layingitem_vel_50FDFC.z = pSpriteObjects[v2].vVelocity.z;
     Vec3_int_::Normalize(&layingitem_vel_50FDFC.x, &layingitem_vel_50FDFC.y, &layingitem_vel_50FDFC.z);
     switch ( v4 )
     {
       case OBJECT_Actor:
-        sub_43B1B0(8 * v6 | AI_OBJECT_LAYING_ITEM, v3, &layingitem_vel_50FDFC, pLayingItems[v2].field_61);
+        sub_43B1B0(8 * v6 | AI_OBJECT_LAYING_ITEM, v3, &layingitem_vel_50FDFC, pSpriteObjects[v2].field_61);
         break;
       case OBJECT_Player:
         DamageMonsterFromParty(8 * v6 | AI_OBJECT_LAYING_ITEM, v3, &layingitem_vel_50FDFC);
@@ -6053,7 +6053,7 @@
 void __fastcall sub_43B057(unsigned int uObjID, unsigned int uActorID, Vec3_int_ *pVelocity)
 {
   Actor *pActor; // esi@1
-  LayingItem *v4; // eax@3
+  SpriteObject *v4; // eax@3
   int v5; // ecx@3
   int v6; // eax@4
   int v7; // edi@4
@@ -6068,7 +6068,7 @@
   {
     if ( (a2 & 7) == OBJECT_Item)
     {
-      v4 = &pLayingItems[(signed int)a2 >> 3];
+      v4 = &pSpriteObjects[(signed int)a2 >> 3];
       v5 = v4->field_48;
       if ( v5 )
       {
@@ -6108,7 +6108,7 @@
 void sub_43B1B0(signed int a1, unsigned int a2, Vec3_int_ *pVelocity, signed int a4)
 {
   int v4; // ebx@1
-  LayingItem *v5; // eax@2
+  SpriteObject *v5; // eax@2
   bool v6; // eax@3
   Actor *v7; // esi@4
   Actor *v8; // edi@4
@@ -6127,7 +6127,7 @@
   v17 = a1;
   if ( (a1 & 7) == OBJECT_Item)
   {
-    v5 = &pLayingItems[a1 >> 3];
+    v5 = &pSpriteObjects[a1 >> 3];
     v4 = v5->field_60_distance_related_prolly_lod;
     v17 = v5->field_58_pid;
   }
@@ -10844,10 +10844,10 @@
   else
   {
     v10 = v2;
-    v63 = pLayingItems[v10].vPosition.x;
-    v64 = pLayingItems[v10].vPosition.y;
-    v11 = pLayingItems[v10].vPosition.z;
-    v7 = pLayingItems[v10].uSectorID;
+    v63 = pSpriteObjects[v10].vPosition.x;
+    v64 = pSpriteObjects[v10].vPosition.y;
+    v11 = pSpriteObjects[v10].vPosition.z;
+    v7 = pSpriteObjects[v10].uSectorID;
     v65 = v11;
   }
   v66 = v7;
@@ -10893,10 +10893,10 @@
   else
   {
     v22 = v12;
-    v18 = pLayingItems[v22].vPosition.x;
-    v17 = pLayingItems[v22].vPosition.z;
-    v60 = pLayingItems[v22].vPosition.y;
-    v19 = pLayingItems[v22].uSectorID;
+    v18 = pSpriteObjects[v22].vPosition.x;
+    v17 = pSpriteObjects[v22].vPosition.z;
+    v60 = pSpriteObjects[v22].vPosition.y;
+    v19 = pSpriteObjects[v22].uSectorID;
   }
   v62 = v19;
   v23 = v18 - v63;
@@ -12116,15 +12116,15 @@
 }
 
 //----- (00408896) --------------------------------------------------------
-void InitializeLayingItems()
-{
-  for (uint i = 0; i < uNumLayingItems; ++i)
-  {
-    auto item = pLayingItems + i;
-
-    if (item->uItemType &&
-        (item->uSoundID & 8 || pObjectList->pObjects[item->uItemType].uFlags & 0x10))
-      LayingItem::OnItemPickup(i);
+void InitializeSpriteObjects()
+{
+  for (uint i = 0; i < uNumSpriteObjects; ++i)
+  {
+    auto item = pSpriteObjects + i;
+
+    if (item->uType &&
+        (item->uSoundID & 8 || pObjectList->pObjects[item->uType].uFlags & 0x10))
+      SpriteObject::OnInteraction(i);
   }
 
   for (uint i = 0; i < 100; ++i)
@@ -16426,9 +16426,9 @@
         goto LABEL_132;
       }
       v7 = v6 >> 3;
-      if ( pObjectList->pObjects[pLayingItems[v7].uObjectDescID].uFlags & 0x10 )
+      if ( pObjectList->pObjects[pSpriteObjects[v7].uObjectDescID].uFlags & 0x10 )
         goto LABEL_132;
-      v8 = &pLayingItems[v7].stru_24;
+      v8 = &pSpriteObjects[v7].stru_24;
     }
     GameUI_DrawItemInfo(v8);
     goto LABEL_132;