Remove optional TestTriggers argument

This commit is contained in:
Lwmte 2021-09-15 16:58:53 +03:00
parent bb445660e7
commit f79d6436a3
39 changed files with 72 additions and 70 deletions

View file

@ -59,7 +59,8 @@ ITEM_INFO* LaraItem;
COLL_INFO lara_coll = {}; COLL_INFO lara_coll = {};
byte LaraNodeUnderwater[NUM_LARA_MESHES]; byte LaraNodeUnderwater[NUM_LARA_MESHES];
function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] = { function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] =
{
lara_as_walk, lara_as_walk,
lara_as_run, lara_as_run,
lara_as_stop, lara_as_stop,
@ -217,6 +218,7 @@ function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] = {
lara_as_stepoff_left, lara_as_stepoff_left,
lara_as_stepoff_right lara_as_stepoff_right
}; };
function<LaraRoutineFunction> lara_collision_routines[NUM_LARA_STATES + 1] = { function<LaraRoutineFunction> lara_collision_routines[NUM_LARA_STATES + 1] = {
lara_col_walk, lara_col_walk,
lara_col_run, lara_col_run,
@ -932,7 +934,7 @@ void LaraAboveWater(ITEM_INFO* item, COLL_INFO* coll) //hmmmm
// Test for flags & triggers // Test for flags & triggers
ProcessSectorFlags(item); ProcessSectorFlags(item);
TestTriggers(item, false, NULL); TestTriggers(item, false);
TestVolumes(item); TestVolumes(item);
} }
@ -1043,7 +1045,7 @@ void LaraUnderWater(ITEM_INFO* item, COLL_INFO* coll)
LaraGun(); LaraGun();
ProcessSectorFlags(item); ProcessSectorFlags(item);
TestTriggers(item, false, NULL); TestTriggers(item, false);
TestVolumes(item); TestVolumes(item);
} }
@ -1101,7 +1103,7 @@ void LaraSurface(ITEM_INFO* item, COLL_INFO* coll)
LaraGun(); LaraGun();
ProcessSectorFlags(item); ProcessSectorFlags(item);
TestTriggers(item, false, NULL); TestTriggers(item, false);
TestVolumes(item); TestVolumes(item);
} }

View file

@ -1308,7 +1308,7 @@ void GetAITarget(CREATURE_INFO* creature)
abs(enemy->pos.zPos - item->pos.zPos) < REACHED_GOAL_RADIUS abs(enemy->pos.zPos - item->pos.zPos) < REACHED_GOAL_RADIUS
|| Objects[item->objectNumber].waterCreature) || Objects[item->objectNumber].waterCreature)
{ {
TestTriggers(enemy, true, NULL); TestTriggers(enemy, true);
creature->patrol2 = !creature->patrol2; creature->patrol2 = !creature->patrol2;
} }
} }
@ -1331,7 +1331,7 @@ void GetAITarget(CREATURE_INFO* creature)
abs(enemy->pos.yPos - item->pos.yPos) < REACHED_GOAL_RADIUS && abs(enemy->pos.yPos - item->pos.yPos) < REACHED_GOAL_RADIUS &&
abs(enemy->pos.zPos - item->pos.zPos) < REACHED_GOAL_RADIUS) abs(enemy->pos.zPos - item->pos.zPos) < REACHED_GOAL_RADIUS)
{ {
TestTriggers(enemy, true, NULL); TestTriggers(enemy, true);
creature->reachedGoal = true; creature->reachedGoal = true;
creature->enemy = LaraItem; creature->enemy = LaraItem;

View file

@ -479,7 +479,7 @@ GAME_STATUS ControlPhase(int numFrames, int demoMode)
TestTriggers(SmashedMesh[SmashedMeshCount]->pos.xPos, TestTriggers(SmashedMesh[SmashedMeshCount]->pos.xPos,
SmashedMesh[SmashedMeshCount]->pos.yPos, SmashedMesh[SmashedMeshCount]->pos.yPos,
SmashedMesh[SmashedMeshCount]->pos.zPos, SmashedMesh[SmashedMeshCount]->pos.zPos,
SmashedMeshRoom[SmashedMeshCount], true, 0); SmashedMeshRoom[SmashedMeshCount], true);
floor->Stopper = false; floor->Stopper = false;
SmashedMesh[SmashedMeshCount] = 0; SmashedMesh[SmashedMeshCount] = 0;

View file

@ -63,9 +63,9 @@ int SwitchTrigger(short itemNum, short timer);
int TriggerActive(ITEM_INFO* item); int TriggerActive(ITEM_INFO* item);
short* GetTriggerIndex(FLOOR_INFO* floor, int x, int y, int z); short* GetTriggerIndex(FLOOR_INFO* floor, int x, int y, int z);
short* GetTriggerIndex(ITEM_INFO* item); short* GetTriggerIndex(ITEM_INFO* item);
void TestTriggers(short* data, bool heavy, int heavyFlags); void TestTriggers(short* data, bool heavy, int heavyFlags = 0);
void TestTriggers(int x, int y, int z, short roomNumber, bool heavy, int heavyFlags); void TestTriggers(int x, int y, int z, short roomNumber, bool heavy, int heavyFlags = 0);
void TestTriggers(ITEM_INFO* item, bool heavy, int heavyFlags); void TestTriggers(ITEM_INFO* item, bool heavy, int heavyFlags = 0);
void ProcessSectorFlags(FLOOR_INFO* floor); void ProcessSectorFlags(FLOOR_INFO* floor);
void ProcessSectorFlags(int x, int y, int z, short roomNumber); void ProcessSectorFlags(int x, int y, int z, short roomNumber);
void ProcessSectorFlags(ITEM_INFO* item); void ProcessSectorFlags(ITEM_INFO* item);

View file

@ -817,7 +817,7 @@ bool SaveGame::readGameStatusChunks(ChunkId* chunkId, int maxSize, int arg)
TestTriggers(g_Level.Rooms[roomIndex].mesh[staticIndex].pos.xPos, TestTriggers(g_Level.Rooms[roomIndex].mesh[staticIndex].pos.xPos,
g_Level.Rooms[roomIndex].mesh[staticIndex].pos.yPos, g_Level.Rooms[roomIndex].mesh[staticIndex].pos.yPos,
g_Level.Rooms[roomIndex].mesh[staticIndex].pos.zPos, roomIndex, true, NULL); g_Level.Rooms[roomIndex].mesh[staticIndex].pos.zPos, roomIndex, true);
floor->Stopper = false; floor->Stopper = false;
} }

View file

@ -561,13 +561,13 @@ void CalculateSpotCameras()
Camera.type = HEAVY_CAMERA; Camera.type = HEAVY_CAMERA;
if (CurrentLevel != 0) if (CurrentLevel != 0)
{ {
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true);
TestVolumes(&Camera); TestVolumes(&Camera);
} }
else else
{ {
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, false, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, false);
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true);
TestVolumes(&Camera); TestVolumes(&Camera);
} }
Camera.type = oldType; Camera.type = oldType;
@ -757,13 +757,13 @@ void CalculateSpotCameras()
Camera.type = HEAVY_CAMERA; Camera.type = HEAVY_CAMERA;
if (CurrentLevel) if (CurrentLevel)
{ {
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true);
TestVolumes(&Camera); TestVolumes(&Camera);
} }
else else
{ {
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, false, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, false);
TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true, NULL); TestTriggers(Camera.pos.x, Camera.pos.y, Camera.pos.z, Camera.pos.roomNumber, true);
TestVolumes(&Camera); TestVolumes(&Camera);
} }
Camera.type = oldType; Camera.type = oldType;

View file

@ -26,7 +26,7 @@ void ProcessExplodingSwitchType8(ITEM_INFO* item)
pos.y = 0; pos.y = 0;
pos.z = 0; pos.z = 0;
GetJointAbsPosition(item, &pos, 0); GetJointAbsPosition(item, &pos, 0);
TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true, NULL); TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true);
ExplodeItemNode(item, Objects[item->objectNumber].nmeshes - 1, 0, 64); ExplodeItemNode(item, Objects[item->objectNumber].nmeshes - 1, 0, 64);
item->meshBits |= 1 << ((Objects[item->objectNumber].nmeshes & 0xFF) - 2); item->meshBits |= 1 << ((Objects[item->objectNumber].nmeshes & 0xFF) - 2);
} }

View file

@ -37,7 +37,7 @@ namespace TEN::Entities::Doors
else else
item->goalAnimState = 0; item->goalAnimState = 0;
TestTriggers(item, true, NULL); TestTriggers(item, true);
} }
CurrentSequence = 4; CurrentSequence = 4;

View file

@ -122,11 +122,11 @@ void DoppelgangerControl(short itemNum)
floor = GetFloor(x, y, z, &room_num); floor = GetFloor(x, y, z, &room_num);
h = GetFloorHeight(floor, x, y, z); h = GetFloorHeight(floor, x, y, z);
item->floor = h; item->floor = h;
TestTriggers(x, y, z, item->roomNumber, true, NULL); TestTriggers(x, y, z, item->roomNumber, true);
if (item->pos.yPos >= h) if (item->pos.yPos >= h)
{ {
item->floor = item->pos.yPos = h; item->floor = item->pos.yPos = h;
TestTriggers(x, h, z, item->roomNumber, true, NULL); TestTriggers(x, h, z, item->roomNumber, true);
item->gravityStatus = false; item->gravityStatus = false;
item->fallspeed = 0; item->fallspeed = 0;

View file

@ -211,7 +211,7 @@ void AbortionControl(short itemNum)
SoundEffect(171, &item->pos, NULL); SoundEffect(171, &item->pos, NULL);
ExplodingDeath(itemNum, 0xffffffff, ABORT_PART_DAMAGE); ExplodingDeath(itemNum, 0xffffffff, ABORT_PART_DAMAGE);
TestTriggers(item, true, NULL); TestTriggers(item, true);
KillItem(itemNum); KillItem(itemNum);
item->status = ITEM_DEACTIVATED; item->status = ITEM_DEACTIVATED;

View file

@ -904,8 +904,8 @@ void SpeedBoatControl(short itemNumber)
if (Lara.Vehicle == itemNumber) if (Lara.Vehicle == itemNumber)
{ {
TestTriggers(boat, true, NULL); TestTriggers(boat, true);
TestTriggers(boat, false, NULL); TestTriggers(boat, false);
} }
binfo->water = water = GetWaterHeight(boat->pos.xPos, boat->pos.yPos, boat->pos.zPos, roomNumber); binfo->water = water = GetWaterHeight(boat->pos.xPos, boat->pos.yPos, boat->pos.zPos, roomNumber);

View file

@ -936,8 +936,8 @@ bool SkidooControl()
FLOOR_INFO* floor = GetFloor(skidoo->pos.xPos, skidoo->pos.yPos, skidoo->pos.zPos, &roomNumber); FLOOR_INFO* floor = GetFloor(skidoo->pos.xPos, skidoo->pos.yPos, skidoo->pos.zPos, &roomNumber);
int height = GetFloorHeight(floor, skidoo->pos.xPos, skidoo->pos.yPos, skidoo->pos.zPos); int height = GetFloorHeight(floor, skidoo->pos.xPos, skidoo->pos.yPos, skidoo->pos.zPos);
TestTriggers(skidoo, true, NULL); TestTriggers(skidoo, true);
TestTriggers(skidoo, false, NULL); TestTriggers(skidoo, false);
bool dead = false; bool dead = false;
int drive = 0; int drive = 0;

View file

@ -1263,7 +1263,7 @@ int KayakControl()
FLOOR_INFO* floor = GetFloor(v->pos.xPos, v->pos.yPos, v->pos.zPos, &roomNumber); FLOOR_INFO* floor = GetFloor(v->pos.xPos, v->pos.yPos, v->pos.zPos, &roomNumber);
int h = GetFloorHeight(floor, v->pos.xPos, v->pos.yPos, v->pos.zPos); int h = GetFloorHeight(floor, v->pos.xPos, v->pos.yPos, v->pos.zPos);
TestTriggers(v, false, NULL); TestTriggers(v, false);
int water; int water;
if ((kayak->Water = water = GetWaterHeight(v->pos.xPos, v->pos.yPos, v->pos.zPos, roomNumber)) == NO_HEIGHT) if ((kayak->Water = water = GetWaterHeight(v->pos.xPos, v->pos.yPos, v->pos.zPos, roomNumber)) == NO_HEIGHT)

View file

@ -214,7 +214,7 @@ static void CartToBaddieCollision(ITEM_INFO* v)
if ((frame >= 12) && (frame <= 22)) if ((frame >= 12) && (frame <= 22))
{ {
SoundEffect(220, &item->pos, 2); SoundEffect(220, &item->pos, 2);
TestTriggers(item, true, NULL); TestTriggers(item, true);
item->frameNumber++; item->frameNumber++;
} }
} }
@ -859,7 +859,7 @@ int MineCartControl(void)
ItemNewRoom(Lara.itemNumber, roomNumber); ItemNewRoom(Lara.itemNumber, roomNumber);
} }
TestTriggers(v, false, NULL); TestTriggers(v, false);
if (!(cart->Flags & CF_DEAD)) if (!(cart->Flags & CF_DEAD))
{ {

View file

@ -1285,7 +1285,7 @@ int QuadBikeControl(void)
int hfl = TestQuadHeight(item, QUAD_FRONT, -QUAD_SIDE, &fl); int hfl = TestQuadHeight(item, QUAD_FRONT, -QUAD_SIDE, &fl);
int hfr = TestQuadHeight(item, QUAD_FRONT, QUAD_SIDE, &fr); int hfr = TestQuadHeight(item, QUAD_FRONT, QUAD_SIDE, &fr);
TestTriggers(item, false, NULL); TestTriggers(item, false);
if (LaraItem->hitPoints <= 0) if (LaraItem->hitPoints <= 0)
{ {

View file

@ -889,8 +889,8 @@ void RubberBoatControl(short itemNum)
if (Lara.Vehicle == itemNum) if (Lara.Vehicle == itemNum)
{ {
TestTriggers(boat, false, NULL); TestTriggers(boat, false);
TestTriggers(boat, true, NULL); TestTriggers(boat, true);
} }
binfo->water = water = GetWaterHeight(boat->pos.xPos, boat->pos.yPos, boat->pos.zPos, roomNumber); binfo->water = water = GetWaterHeight(boat->pos.xPos, boat->pos.yPos, boat->pos.zPos, roomNumber);

View file

@ -1004,7 +1004,7 @@ int SubControl(void)
} }
} }
TestTriggers(v, false, NULL); TestTriggers(v, false);
SubEffects(Lara.Vehicle); SubEffects(Lara.Vehicle);
if ((Lara.Vehicle != NO_ITEM) && (!(sub->Flags & UPV_DEAD))) if ((Lara.Vehicle != NO_ITEM) && (!(sub->Flags & UPV_DEAD)))

View file

@ -54,7 +54,7 @@ namespace TEN::Entities::TR4
static void AhmetHeavyTriggers(ITEM_INFO* item) static void AhmetHeavyTriggers(ITEM_INFO* item)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
} }
static void TriggerAhmetDeathEffect(ITEM_INFO* item) static void TriggerAhmetDeathEffect(ITEM_INFO* item)

View file

@ -290,7 +290,7 @@ void BaboonControl(short itemNumber)
item->currentAnimState = BABOON_ACTIVATE_SWITCH; item->currentAnimState = BABOON_ACTIVATE_SWITCH;
item->aiBits &= ~(FOLLOW); item->aiBits &= ~(FOLLOW);
TestTriggers(item, true, NULL); TestTriggers(item, true);
baboon->enemy = nullptr; baboon->enemy = nullptr;
} }
@ -533,7 +533,7 @@ void BaboonControl(short itemNumber)
floor = GetFloor(pos.x, pos.y, pos.z, &pos.roomNumber); floor = GetFloor(pos.x, pos.y, pos.z, &pos.roomNumber);
int height = GetFloorHeight(floor, pos.x, pos.y, pos.z); int height = GetFloorHeight(floor, pos.x, pos.y, pos.z);
item->floor = height; item->floor = height;
TestTriggers(pos.x, pos.y, pos.z, pos.roomNumber, TRUE, NULL); TestTriggers(pos.x, pos.y, pos.z, pos.roomNumber, TRUE);
item->triggerFlags = 1; item->triggerFlags = 1;
} }
break; break;

View file

@ -267,7 +267,7 @@ void EnemyJeepControl(short itemNumber)
if (creature->reachedGoal) if (creature->reachedGoal)
{ {
TestTriggers(target->pos.xPos,target->pos.yPos,target->pos.zPos,target->roomNumber, true, 0x0); TestTriggers(target->pos.xPos,target->pos.yPos,target->pos.zPos,target->roomNumber, true);
if (Lara.location < item->itemFlags[3] && item->currentAnimState != 2 && item->goalAnimState != 2) if (Lara.location < item->itemFlags[3] && item->currentAnimState != 2 && item->goalAnimState != 2)
{ {

View file

@ -630,7 +630,7 @@ void GuideControl(short itemNumber)
if (item->animNumber != obj->animIndex + 57 if (item->animNumber != obj->animIndex + 57
&& item->frameNumber == g_Level.Anims[item->animNumber].frameEnd - 20) && item->frameNumber == g_Level.Anims[item->animNumber].frameEnd - 20)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
creature->reachedGoal = false; creature->reachedGoal = false;
creature->enemy = NULL; creature->enemy = NULL;
@ -705,7 +705,7 @@ void GuideControl(short itemNumber)
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 42) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 42)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
item->pos.yRot = enemy->pos.yRot; item->pos.yRot = enemy->pos.yRot;
creature->reachedGoal = false; creature->reachedGoal = false;
@ -740,7 +740,7 @@ void GuideControl(short itemNumber)
{ {
item->goalAnimState = STATE_GUIDE_STOP; item->goalAnimState = STATE_GUIDE_STOP;
TestTriggers(item, true, NULL); TestTriggers(item, true);
creature->reachedGoal = false; creature->reachedGoal = false;
creature->enemy = NULL; creature->enemy = NULL;
@ -802,7 +802,7 @@ void GuideControl(short itemNumber)
} }
if (enemy->flags == 42) if (enemy->flags == 42)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
creature->reachedGoal = false; creature->reachedGoal = false;
creature->enemy = NULL; creature->enemy = NULL;

View file

@ -184,7 +184,7 @@ void KnightTemplarControl(short itemNumber)
mesh->flags &= ~StaticMeshFlags::SM_VISIBLE; mesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
currentFloor->Stopper = false; currentFloor->Stopper = false;
TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true, NULL); TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true);
} }
mesh++; mesh++;

View file

@ -704,7 +704,7 @@ namespace TEN::Entities::TR4
int y = l->pos.yPos; int y = l->pos.yPos;
int z = l->pos.zPos - 512 * phd_cos(l->pos.yRot); int z = l->pos.zPos - 512 * phd_cos(l->pos.yRot);
TestTriggers(x, y, z, l->roomNumber, true, NULL); TestTriggers(x, y, z, l->roomNumber, true);
RemoveActiveItem(itemNumber); RemoveActiveItem(itemNumber);
item->status = ITEM_NOT_ACTIVE; item->status = ITEM_NOT_ACTIVE;

View file

@ -651,7 +651,7 @@ namespace TEN::Entities::TR4
SoundEffect(SFX_TR4_HIT_ROCK, &item->pos, 0); SoundEffect(SFX_TR4_HIT_ROCK, &item->pos, 0);
staticMesh->flags &= ~StaticMeshFlags::SM_VISIBLE; staticMesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
floor->Stopper = 0; floor->Stopper = 0;
TestTriggers(item, true, NULL); TestTriggers(item, true);
break; break;
} }
} }

View file

@ -72,7 +72,7 @@ void SphinxControl(short itemNumber)
mesh->flags &= ~StaticMeshFlags::SM_VISIBLE; mesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
floor->Stopper = false; floor->Stopper = false;
TestTriggers(x, y, z, item->roomNumber, true, NULL); TestTriggers(x, y, z, item->roomNumber, true);
} }
} }
} }
@ -205,7 +205,7 @@ void SphinxControl(short itemNumber)
case SPHINX_HIT: case SPHINX_HIT:
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
if (item->touchBits & 0x40) if (item->touchBits & 0x40)
{ {

View file

@ -649,7 +649,7 @@ void VonCroyControl(short itemNumber)
creature->aiTarget.pos.yPos, creature->aiTarget.pos.yPos,
creature->aiTarget.pos.zPos, creature->aiTarget.pos.zPos,
creature->aiTarget.roomNumber, creature->aiTarget.roomNumber,
true, NULL); true);
creature->reachedGoal = false; creature->reachedGoal = false;
creature->enemy = NULL; creature->enemy = NULL;
@ -772,7 +772,7 @@ void VonCroyControl(short itemNumber)
creature->aiTarget.pos.yPos, creature->aiTarget.pos.yPos,
creature->aiTarget.pos.zPos, creature->aiTarget.pos.zPos,
creature->aiTarget.roomNumber, creature->aiTarget.roomNumber,
true, NULL); true);
creature->reachedGoal = false; creature->reachedGoal = false;
creature->enemy = NULL; creature->enemy = NULL;

View file

@ -79,7 +79,7 @@ void ClockworkBeetleControl(short item_number)
flag = 1; flag = 1;
} }
TestTriggers(beetle, false, NULL); TestTriggers(beetle, false);
if (roomNum != beetle->roomNumber) if (roomNum != beetle->roomNumber)
ItemNewRoom(item_number, roomNum); ItemNewRoom(item_number, roomNum);

View file

@ -1644,8 +1644,8 @@ int JeepControl(void)
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber); floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
height = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos); height = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos);
TestTriggers(item, true, NULL); TestTriggers(item, true);
TestTriggers(item, false, NULL); TestTriggers(item, false);
if (LaraItem->hitPoints <= 0) if (LaraItem->hitPoints <= 0)
{ {

View file

@ -1421,8 +1421,8 @@ int MotorbikeControl(void)
floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &room_number); floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &room_number);
int height = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos); int height = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos);
TestTriggers(item, true, NULL); TestTriggers(item, true);
TestTriggers(item, false, NULL); TestTriggers(item, false);
if (LaraItem->hitPoints <= 0) if (LaraItem->hitPoints <= 0)
{ {

View file

@ -578,7 +578,7 @@ void HitmanControl(short itemNumber)
TestTriggers( TestTriggers(
creature->enemy->pos.xPos, creature->enemy->pos.xPos,
creature->enemy->pos.yPos, creature->enemy->pos.yPos,
creature->enemy->pos.zPos, roomNumber, true, NULL); creature->enemy->pos.zPos, roomNumber, true);
item->requiredAnimState = STATE_HITMAN_WALK; item->requiredAnimState = STATE_HITMAN_WALK;

View file

@ -331,7 +331,7 @@ void ControlGladiator(short itemNumber)
//SoundEffect(ShatterSounds[gfCurrentLevel - 5][*(v28 + 18)], v28, 0); //SoundEffect(ShatterSounds[gfCurrentLevel - 5][*(v28 + 18)], v28, 0);
mesh->flags &= ~StaticMeshFlags::SM_VISIBLE; mesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true, NULL); TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true);
} }
} }
} }

View file

@ -613,7 +613,7 @@ void GuardControl(short itemNum)
else else
{ {
item->triggerFlags = 0; item->triggerFlags = 0;
TestTriggers(item, true, NULL); TestTriggers(item, true);
SoundEffect(SFX_TR4_LARA_POLE_LOOP, &item->pos, 0); SoundEffect(SFX_TR4_LARA_POLE_LOOP, &item->pos, 0);
} }
if (abs(info.angle) >= 364) if (abs(info.angle) >= 364)
@ -637,7 +637,7 @@ void GuardControl(short itemNum)
case 18: case 18:
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
break; break;
} }
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 44) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 44)
@ -697,7 +697,7 @@ void GuardControl(short itemNum)
case STATE_GUARD_INSERT_CODE: case STATE_GUARD_INSERT_CODE:
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 39) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 39)
{ {
TestTriggers(item, true, NULL); TestTriggers(item, true);
} }
break; break;
case STATE_GUARD_START_USE_COMPUTER: case STATE_GUARD_START_USE_COMPUTER:
@ -741,7 +741,7 @@ void GuardControl(short itemNum)
else if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + g_Level.Anims[item->animNumber].frameEnd) else if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + g_Level.Anims[item->animNumber].frameEnd)
{ {
currentItem->meshBits = 0x1FFF; currentItem->meshBits = 0x1FFF;
TestTriggers(item, true, NULL); TestTriggers(item, true);
item->requiredAnimState = STATE_GUARD_WALK; item->requiredAnimState = STATE_GUARD_WALK;
item->swapMeshFlags = 0; item->swapMeshFlags = 0;
} }
@ -778,7 +778,7 @@ void GuardControl(short itemNum)
} }
if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 39) if (item->frameNumber == g_Level.Anims[item->animNumber].frameBase + 39)
{ {
TestTriggers(item->pos.xPos, item->pos.yPos, item->pos.zPos, enemy->roomNumber, true, NULL); TestTriggers(item->pos.xPos, item->pos.yPos, item->pos.zPos, enemy->roomNumber, true);
} }
break; break;
default: default:
@ -811,7 +811,7 @@ void GuardControl(short itemNum)
} }
else else
{ {
TestTriggers(creature->enemy->pos.xPos, creature->enemy->pos.yPos, creature->enemy->pos.zPos, enemy->roomNumber, true, NULL); TestTriggers(creature->enemy->pos.xPos, creature->enemy->pos.yPos, creature->enemy->pos.zPos, enemy->roomNumber, true);
item->requiredAnimState = STATE_GUARD_WALK; item->requiredAnimState = STATE_GUARD_WALK;
if (creature->enemy->flags & 2) if (creature->enemy->flags & 2)

View file

@ -109,7 +109,7 @@ void ControlGunShip(short itemNumber)
{ {
ShatterObject(0, hitMesh, 64, end.roomNumber, 0); ShatterObject(0, hitMesh, 64, end.roomNumber, 0);
hitMesh->flags &= ~StaticMeshFlags::SM_VISIBLE; hitMesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
TestTriggers(hitMesh->pos.xPos, hitMesh->pos.yPos, hitMesh->pos.zPos, end.roomNumber, true, NULL); TestTriggers(hitMesh->pos.xPos, hitMesh->pos.yPos, hitMesh->pos.zPos, end.roomNumber, true);
SoundEffect(GetShatterSound(hitMesh->staticNumber), &hitMesh->pos, 0); SoundEffect(GetShatterSound(hitMesh->staticNumber), &hitMesh->pos, 0);
} }

View file

@ -375,7 +375,7 @@ void LarsonControl(short itemNumber)
int y = r->minfloor + floorHeight; int y = r->minfloor + floorHeight;
int z = r->z + (item->TOSSPAD & 0xFF) * SECTOR(1) + 512; int z = r->z + (item->TOSSPAD & 0xFF) * SECTOR(1) + 512;
TestTriggers(x, y, z, roomNumber, true, NULL); TestTriggers(x, y, z, roomNumber, true);
joint0 = 0; joint0 = 0;
} }

View file

@ -263,7 +263,7 @@ void LaserHeadControl(short itemNumber)
TriggerShockwave(&item->pos, 32, 160, 64, 64, 128, 0, 36, 0x6000, 0); TriggerShockwave(&item->pos, 32, 160, 64, 64, 128, 0, 36, 0x6000, 0);
g_Level.Items[creature->puzzleItem].pos.yPos = item->pos.yPos; g_Level.Items[creature->puzzleItem].pos.yPos = item->pos.yPos;
TestTriggers(item, true, NULL); TestTriggers(item, true);
SoundEffect(SFX_TR5_GOD_HEAD_BLAST, &item->pos, 0x800004); SoundEffect(SFX_TR5_GOD_HEAD_BLAST, &item->pos, 0x800004);
SoundEffect(SFX_TR4_EXPLOSION2, &item->pos, 20971524); SoundEffect(SFX_TR4_EXPLOSION2, &item->pos, 20971524);

View file

@ -619,7 +619,7 @@ void RomanStatueControl(short itemNumber)
mesh->flags &= ~StaticMeshFlags::SM_VISIBLE; mesh->flags &= ~StaticMeshFlags::SM_VISIBLE;
floor->Stopper = false; floor->Stopper = false;
TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true, NULL); TestTriggers(pos.x, pos.y, pos.z, item->roomNumber, true);
} }
} }
} }
@ -910,7 +910,7 @@ void RomanStatueControl(short itemNumber)
int y = r->minfloor + floorHeight; int y = r->minfloor + floorHeight;
int z = r->z + (item->TOSSPAD & 0xFF) * SECTOR(1) + 512; int z = r->z + (item->TOSSPAD & 0xFF) * SECTOR(1) + 512;
TestTriggers(x, y, z, roomNumber, true, NULL); TestTriggers(x, y, z, roomNumber, true);
} }
} }
else else

View file

@ -82,7 +82,7 @@ void ControlHighObject1(short itemNumber)
targetItem->flags = (item->flags & 0xC1FF) | 0x20; targetItem->flags = (item->flags & 0xC1FF) | 0x20;
item->itemFlags[0] = 6; item->itemFlags[0] = 6;
item->itemFlags[1] = 768; item->itemFlags[1] = 768;
TestTriggers(item, true, NULL); TestTriggers(item, true);
} }
return; return;

View file

@ -293,7 +293,7 @@ void RollingBallControl(short itemNumber)
item->pos.xRot -= (abs(item->itemFlags[0]) + abs(item->itemFlags[1])) / 2; item->pos.xRot -= (abs(item->itemFlags[0]) + abs(item->itemFlags[1])) / 2;
TestTriggers(item, true, NULL); TestTriggers(item, true);
} }
void ClassicRollingBallCollision(short itemNum, ITEM_INFO* lara, COLL_INFO* coll) void ClassicRollingBallCollision(short itemNum, ITEM_INFO* lara, COLL_INFO* coll)
@ -399,7 +399,7 @@ void ClassicRollingBallControl(short itemNum)
item->floor = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos); item->floor = GetFloorHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos);
TestTriggers(item->pos.xPos, item->pos.yPos, item->pos.zPos, roomNum, true, NULL); TestTriggers(item->pos.xPos, item->pos.yPos, item->pos.zPos, roomNum, true);
if (item->pos.yPos >= (int)floor - 256) if (item->pos.yPos >= (int)floor - 256)
{ {

View file

@ -149,7 +149,7 @@ void VentilatorControl(short itemNumber)
else else
{ {
xChange = 1; xChange = 1;
TestTriggers(item, true, NULL); TestTriggers(item, true);
if (item->currentAnimState == 1) if (item->currentAnimState == 1)
{ {
//result = 5 * item->animNumber; //result = 5 * item->animNumber;