mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-30 16:57:57 +03:00
Improve FindItem()
This commit is contained in:
parent
12ebf162ad
commit
ad446ad534
4 changed files with 11 additions and 36 deletions
|
@ -271,13 +271,13 @@ void PoseidonSFX(ITEM_INFO* item)
|
|||
|
||||
void RubbleFX(ITEM_INFO* item)
|
||||
{
|
||||
int itemNumber = FindItemNumber(ID_EARTHQUAKE);
|
||||
const auto itemList = FindItem(ID_EARTHQUAKE);
|
||||
|
||||
if (itemNumber != NO_ITEM)
|
||||
if (itemList.size() > 0)
|
||||
{
|
||||
ITEM_INFO* eq = &g_Level.Items[itemNumber];
|
||||
ITEM_INFO* eq = &g_Level.Items[itemList[0]];
|
||||
|
||||
AddActiveItem(itemNumber);
|
||||
AddActiveItem(itemList[0]);
|
||||
eq->status = ITEM_ACTIVE;
|
||||
eq->flags |= IFLAG_ACTIVATION_MASK;
|
||||
}
|
||||
|
|
|
@ -491,38 +491,15 @@ int GlobalItemReplace(short search, short replace)
|
|||
return changed;
|
||||
}
|
||||
|
||||
ITEM_INFO* find_a_fucking_item(short objectNum)
|
||||
std::vector<int> FindItem(short objectNumber)
|
||||
{
|
||||
int itemNumber = FindItemNumber(objectNum);
|
||||
return (itemNumber != NO_ITEM ? &g_Level.Items[itemNumber] : NULL);
|
||||
}
|
||||
std::vector<int> itemList;
|
||||
|
||||
int FindItemNumber(short objectNum)
|
||||
{
|
||||
for (int i = 0; i < g_Level.NumItems; i++)
|
||||
{
|
||||
ITEM_INFO* item = &g_Level.Items[i];
|
||||
if (item->objectNumber == objectNum)
|
||||
return i;
|
||||
if (g_Level.Items[i].objectNumber == objectNumber)
|
||||
itemList.push_back(i);
|
||||
}
|
||||
|
||||
return NO_ITEM;
|
||||
return itemList;
|
||||
}
|
||||
|
||||
ITEM_INFO* FindItem(short objectNumber)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
printf("Called FindItem()\n");
|
||||
#endif
|
||||
|
||||
if (g_Level.NumItems > 0)
|
||||
{
|
||||
for (int i = 0; i < g_Level.NumItems; i++)
|
||||
{
|
||||
if (g_Level.Items[i].objectNumber == objectNumber)
|
||||
return &g_Level.Items[i];
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -110,6 +110,4 @@ void KillEffect(short fxNumber);
|
|||
void InitialiseItem(short itemNum);
|
||||
void InitialiseItemArray(int numItems);
|
||||
void KillItem(short itemNum);
|
||||
ITEM_INFO* find_a_fucking_item(short objectNum);
|
||||
int FindItemNumber(short objectNumber);
|
||||
ITEM_INFO* FindItem(short objectNumber);
|
||||
std::vector<int> FindItem(short objectNumber);
|
||||
|
|
|
@ -397,7 +397,7 @@ void InitialiseWreckingBall(short itemNumber)
|
|||
short room;
|
||||
|
||||
item = &g_Level.Items[itemNumber];
|
||||
item->itemFlags[3] = find_a_fucking_item(ID_ANIMATING16) - g_Level.Items.data();
|
||||
item->itemFlags[3] = FindItem(ID_ANIMATING16)[0];
|
||||
room = item->roomNumber;
|
||||
item->pos.yPos = GetCeiling(GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &room), item->pos.xPos, item->pos.yPos, item->pos.zPos) + 1644;
|
||||
GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &room);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue