MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / GetAIPickups

Function GetAIPickups

TombEngine/Specific/level.cpp:1976–2009  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1974}
1975
1976void GetAIPickups()
1977{
1978 for (int i = 0; i < g_Level.NumItems; ++i)
1979 {
1980 auto* item = &g_Level.Items[i];
1981 if (Objects[item->ObjectNumber].intelligent)
1982 {
1983 item->AIBits = 0;
1984
1985 for (int number = 0; number < g_Level.AIObjects.size(); ++number)
1986 {
1987 auto* object = &g_Level.AIObjects[number];
1988
1989 if (abs(object->pos.Position.x - item->Pose.Position.x) < CLICK(2) &&
1990 abs(object->pos.Position.z - item->Pose.Position.z) < CLICK(2) &&
1991 object->roomNumber == item->RoomNumber &&
1992 object->objectNumber < ID_AI_PATROL2)
1993 {
1994 item->AIBits |= (1 << (object->objectNumber - ID_AI_GUARD)) & 0x1F;
1995 item->ItemFlags[3] = object->triggerFlags;
1996
1997 if (object->objectNumber != ID_AI_PATROL1)
1998 object->roomNumber = NO_VALUE;
1999 }
2000 }
2001
2002 if (item->Data.is<CreatureInfo>())
2003 {
2004 auto* creature = GetCreatureInfo(item);
2005 creature->Tosspad |= item->AIBits << 8 | (char)item->ItemFlags[3];
2006 }
2007 }
2008 }
2009}
2010
2011void BuildOutsideRoomsTable()
2012{

Callers 1

LoadLevelFunction · 0.85

Calls 2

GetCreatureInfoFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected