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

Function CreatureVault

TombEngine/Game/control/box.cpp:2142–2228  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2140}
2141
2142int CreatureVault(short itemNumber, short angle, int vault, int shift)
2143{
2144 auto* item = &g_Level.Items[itemNumber];
2145 auto* creature = GetCreatureInfo(item);
2146
2147 int xBlock = item->Pose.Position.x / BLOCK(1);
2148 int zBlock = item->Pose.Position.z / BLOCK(1);
2149 int y = item->Pose.Position.y;
2150 short roomNumber = item->RoomNumber;
2151
2152 CreatureAnimation(itemNumber, angle, 0);
2153
2154 if (item->Floor > (y + CLICK(4.5f)))
2155 {
2156 vault = 0;
2157 }
2158 else if (item->Floor > (y + CLICK(3.5f)) && IsCreatureVaultAvailable(item, -4))
2159 {
2160 vault = -4;
2161 }
2162 else if (item->Floor > (y + CLICK(2.5f)) && IsCreatureVaultAvailable(item, -3))
2163 {
2164 vault = -3;
2165 }
2166 else if (item->Floor > (y + CLICK(1.5f)) && IsCreatureVaultAvailable(item, -2))
2167 {
2168 vault = -2;
2169 }
2170 else if (item->Pose.Position.y > (y - CLICK(1.5f)))
2171 {
2172 return 0;
2173 }
2174 else if (item->Pose.Position.y > (y - CLICK(2.5f)))
2175 {
2176 vault = 2;
2177 }
2178 else if (item->Pose.Position.y > (y - CLICK(3.5f)))
2179 {
2180 vault = 3;
2181 }
2182 else if (item->Pose.Position.y > (y - CLICK(4.5f)))
2183 {
2184 vault = 4;
2185 }
2186
2187 // Jump
2188 int newXblock = item->Pose.Position.x / BLOCK(1);
2189 int newZblock = item->Pose.Position.z / BLOCK(1);
2190
2191 if (zBlock == newZblock)
2192 {
2193 if (xBlock == newXblock)
2194 return 0;
2195
2196 if (xBlock < newXblock)
2197 {
2198 item->Pose.Position.x = (newXblock * BLOCK(1)) - shift;
2199 item->Pose.Orientation.y = ANGLE(90.0f);

Callers 14

SmallSpiderControlFunction · 0.85
YetiControlFunction · 0.85
CivvyControlFunction · 0.85
RaptorControlFunction · 0.85
SophiaLeighControlFunction · 0.85
LizardControlFunction · 0.85
MPStickControlFunction · 0.85
MonkeyControlFunction · 0.85
ApeVaultFunction · 0.85
GuardControlFunction · 0.85
Mafia2ControlFunction · 0.85
CyborgControlFunction · 0.85

Calls 5

GetCreatureInfoFunction · 0.85
CreatureAnimationFunction · 0.85
IsCreatureVaultAvailableFunction · 0.85
ANGLEFunction · 0.85
ItemNewRoomFunction · 0.85

Tested by

no test coverage detected