mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-08 03:28:03 +03:00
Remove optional TestTriggers argument
This commit is contained in:
parent
bb445660e7
commit
f79d6436a3
39 changed files with 72 additions and 70 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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))
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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++;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue