Mercurial > mm7
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;