From 8cc64b17225efad00a0d3ff9b9301e11867dd9f4 Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 24 Sep 2024 00:09:03 +0200 Subject: [PATCH 1/4] typing: streamline structs and enums --- docs/progress.svg | 1224 ++++++++--------- docs/progress.txt | 700 +++++----- src/decomp/decomp.c | 20 +- src/decomp/effects.c | 8 +- src/game/background.c | 2 +- src/game/box.c | 14 +- src/game/box.h | 8 +- src/game/camera.c | 28 +- src/game/camera.h | 8 +- src/game/collide.c | 6 +- src/game/creature.c | 90 +- src/game/creature.h | 28 +- src/game/demo.c | 2 +- src/game/effects.c | 20 +- src/game/game.c | 8 +- src/game/gun/gun_misc.c | 17 +- src/game/gun/gun_misc.h | 6 +- src/game/gun/gun_rifle.c | 10 +- src/game/inventory/common.c | 2 +- src/game/items.c | 66 +- src/game/items.h | 31 +- src/game/lara/cheat.c | 10 +- src/game/lara/col.c | 103 +- src/game/lara/col.h | 102 +- src/game/lara/common.c | 2 +- src/game/lara/control.c | 18 +- src/game/lara/control.h | 8 +- src/game/lara/draw.c | 8 +- src/game/lara/draw.h | 4 +- src/game/lara/misc.c | 120 +- src/game/lara/misc.h | 62 +- src/game/lara/state.c | 140 +- src/game/lara/state.h | 134 +- src/game/level.c | 38 +- src/game/los.c | 26 +- src/game/los.h | 2 +- src/game/lot.c | 26 +- src/game/lot.h | 2 +- src/game/objects/common.c | 10 +- src/game/objects/common.h | 4 +- src/game/objects/creatures/bird.c | 10 +- src/game/objects/creatures/diver.c | 6 +- src/game/objects/effects/ember.c | 4 +- src/game/objects/effects/flame.c | 2 +- src/game/objects/general/body_part.c | 6 +- src/game/objects/general/door.c | 4 +- src/game/objects/general/door.h | 5 +- .../objects/general/final_level_counter.c | 6 +- src/game/objects/traps/ember_emitter.c | 4 +- src/game/objects/traps/flame_emitter.c | 4 +- src/game/objects/vehicles/boat.c | 44 +- src/game/objects/vehicles/boat.h | 10 +- src/game/room.c | 73 +- src/game/room.h | 16 +- src/game/room_draw.c | 48 +- src/game/room_draw.h | 4 +- src/global/funcs.h | 196 +-- src/global/types.h | 18 +- src/global/vars_decomp.h | 20 +- subprojects/libtrx | 2 +- 60 files changed, 1786 insertions(+), 1813 deletions(-) diff --git a/docs/progress.svg b/docs/progress.svg index 5ac88c59..8ef72672 100644 --- a/docs/progress.svg +++ b/docs/progress.svg @@ -164,51 +164,51 @@ void __cdecl Bird_Control(int16_t item_num); void __cdecl Boat_Initialise(int16_t item_num); int32_t __cdecl Boat_CheckGeton(int16_t item_num, COLL_INFO *coll); -void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl Boat_TestWaterHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +void __cdecl Boat_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl Boat_TestWaterHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); void __cdecl Boat_DoShift(int32_t boat_num); -void __cdecl Boat_DoWakeEffect(ITEM_INFO *boat); +void __cdecl Boat_DoWakeEffect(ITEM *boat); int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); int32_t __cdecl Boat_Dynamics(int16_t boat_num); -int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); -void __cdecl Boat_Animation(ITEM_INFO *boat, int32_t collide); +int32_t __cdecl Boat_UserControl(ITEM *boat); +void __cdecl Boat_Animation(ITEM *boat, int32_t collide); void __cdecl Boat_Control(int16_t item_num); void __cdecl Gondola_Control(int16_t item_num); void __cdecl Creature_Initialise(int16_t item_num); int32_t __cdecl Creature_Activate(int16_t item_num); -void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); +void __cdecl Creature_AIInfo(ITEM *item, AI_INFO *info); int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); -int32_t __cdecl Box_StalkBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -int32_t __cdecl Box_EscapeBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -int32_t __cdecl Box_ValidBox(const ITEM_INFO *item, int16_t zone_num, int16_t box_num); -void __cdecl Creature_Mood(ITEM_INFO *item, AI_INFO *info, int32_t violent); -TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM_INFO *item, LOT_INFO *lot); +int32_t __cdecl Box_StalkBox(const ITEM *item, const ITEM *enemy, int16_t box_num); +int32_t __cdecl Box_EscapeBox(const ITEM *item, const ITEM *enemy, int16_t box_num); +int32_t __cdecl Box_ValidBox(const ITEM *item, int16_t zone_num, int16_t box_num); +void __cdecl Creature_Mood(ITEM *item, AI_INFO *info, int32_t violent); +TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM *item, LOT_INFO *lot); int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); int32_t __cdecl Box_BadFloor(int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, LOT_INFO *lot); void __cdecl Creature_Die(int16_t item_num, int32_t explode); int32_t __cdecl Creature_Animate(int16_t item_num, int16_t angle, int16_t tilt); -int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t maximum_turn); -void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); -void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); -void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); +int16_t __cdecl Creature_Turn(ITEM *item, int16_t maximum_turn); +void __cdecl Creature_Tilt(ITEM *item, int16_t angle); +void __cdecl Creature_Head(ITEM *item, int16_t required); +void __cdecl Creature_Neck(ITEM *item, int16_t required); void __cdecl Creature_Float(int16_t item_num); -void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); -int16_t __cdecl Creature_Effect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); +void __cdecl Creature_Underwater(ITEM *item, int32_t depth); +int16_t __cdecl Creature_Effect(ITEM *item, BITE *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift); -void __cdecl Creature_Kill(ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); +void __cdecl Creature_Kill(ITEM *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody); void __cdecl Camera_Initialise(void); void __cdecl Camera_Move(const GAME_VECTOR *target, int32_t speed); void __cdecl Camera_Clip(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); void __cdecl Camera_Shift(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); -const SECTOR_INFO *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); +const SECTOR *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl Camera_SmartShift(GAME_VECTOR *target, void (*__cdecl shift)(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom)); -void __cdecl Camera_Chase(const ITEM_INFO *item); +void __cdecl Camera_Chase(const ITEM *item); int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); -void __cdecl Camera_Combat(const ITEM_INFO *item); -void __cdecl Camera_Look(const ITEM_INFO *item); +void __cdecl Camera_Combat(const ITEM *item); +void __cdecl Camera_Look(const ITEM *item); void __cdecl Camera_Fixed(void); void __cdecl Camera_Update(void); void __cdecl Game_SetCutsceneTrack(int32_t track); @@ -227,41 +227,41 @@ int32_t __cdecl Collide_CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_num, int32_t height); void __cdecl Room_GetNearbyRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); -int16_t __cdecl Room_GetTiltType(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_TakeHit(ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Creature_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Object_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Door_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Object_Collision_Trap(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_Push(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); -int32_t __cdecl Item_TestBoundsCollide(const ITEM_INFO *src_item, const ITEM_INFO *dst_item, int32_t radius); -int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM_INFO *src_item, ITEM_INFO *dst_item); -void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM_INFO *src_item, ITEM_INFO *dst_item); -int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); +void __cdecl Item_ShiftCol(ITEM *item, COLL_INFO *coll); +void __cdecl Item_UpdateRoom(ITEM *item, int32_t height); +int16_t __cdecl Room_GetTiltType(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_TakeHit(ITEM *lara_item, COLL_INFO *coll); +void __cdecl Creature_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Object_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Door_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Object_Collision_Trap(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_Push(ITEM *item, ITEM *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); +int32_t __cdecl Item_TestBoundsCollide(const ITEM *src_item, const ITEM *dst_item, int32_t radius); +int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM *src_item, ITEM *dst_item); +void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM *src_item, ITEM *dst_item); +int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM *item, ITEM *lara_item); int32_t __cdecl Misc_Move3DPosTo3DPos(PHD_3DPOS *src_pos, const PHD_3DPOS *dest_pos, int32_t velocity, PHD_ANGLE ang_add); int32_t __cdecl Game_Control(int32_t nframes, int32_t demo_mode); -void __cdecl Item_Animate(ITEM_INFO *item); -int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, const ANIM *anim); -void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); -SECTOR_INFO *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); +void __cdecl Item_Animate(ITEM *item); +int32_t __cdecl Item_GetAnimChange(ITEM *item, const ANIM *anim); +void __cdecl Item_Translate(ITEM *item, int32_t x, int32_t y, int32_t z); +SECTOR *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); int32_t __cdecl Room_GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num); -int32_t __cdecl Room_GetHeight(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); +int32_t __cdecl Room_GetHeight(const SECTOR *sector, int32_t x, int32_t y, int32_t z); void __cdecl Camera_RefreshFromTrigger(int16_t type, const int16_t *data); void __cdecl Room_TestTriggers(int16_t *data, int32_t heavy); -int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); -int32_t __cdecl Room_GetCeiling(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -int16_t __cdecl Room_GetDoor(const SECTOR_INFO *sector); +int32_t __cdecl Item_IsTriggerActive(ITEM *item); +int32_t __cdecl Room_GetCeiling(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +int16_t __cdecl Room_GetDoor(const SECTOR *sector); int32_t __cdecl LOS_Check(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); -int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR_INFO *sector); +int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR *sector); int32_t __cdecl LOS_CheckSmashable(const GAME_VECTOR *start, GAME_VECTOR *target); void __cdecl Room_FlipMap(void); -void __cdecl Room_RemoveFlipItems(ROOM_INFO *r); -void __cdecl Room_AddFlipItems(ROOM_INFO *r); +void __cdecl Room_RemoveFlipItems(ROOM *r); +void __cdecl Room_AddFlipItems(ROOM *r); void __cdecl Room_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); void __cdecl Room_TriggerMusicTrackImpl(int16_t value, int16_t flags, int16_t type); int32_t __cdecl Demo_Control(int32_t level_num); @@ -276,7 +276,7 @@ void __cdecl ControlTwinkle(int16_t fx_num); void __cdecl CreateBartoliLight(int16_t item_num); int16_t __cdecl DragonFire(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -void __cdecl DragonCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl DragonCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl DragonBones(int16_t item_num); void __cdecl DragonControl(int16_t back_num); void __cdecl InitialiseBartoli(int16_t item_num); @@ -286,15 +286,15 @@ int32_t __cdecl Game_Draw(void); void __cdecl Room_DrawAllRooms(int16_t current_room); void __cdecl Room_GetBounds(void); -void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM_INFO *parent); -void __cdecl Room_Clip(ROOM_INFO *r); +void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM *parent); +void __cdecl Room_Clip(ROOM *r); void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); void __cdecl Effect_Draw(int16_t fx_num); -void __cdecl Object_DrawSpriteItem(ITEM_INFO *item); -void __cdecl Object_DrawAnimatingItem(ITEM_INFO *item); -void __cdecl Lara_Draw(const ITEM_INFO *item); -void __cdecl Lara_Draw_I(const ITEM_INFO *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); +void __cdecl Object_DrawSpriteItem(ITEM *item); +void __cdecl Object_DrawAnimatingItem(ITEM *item); +void __cdecl Lara_Draw(const ITEM *item); +void __cdecl Lara_Draw_I(const ITEM *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); void __cdecl Matrix_InitInterpolate(int32_t frac, int32_t rate); void __cdecl Matrix_Pop_I(void); void __cdecl Matrix_Push_I(void); @@ -310,10 +310,10 @@ void __cdecl Matrix_Interpolate(void); void __cdecl Matrix_InterpolateArm(void); void __cdecl Gun_DrawFlash(LARA_GUN_TYPE weapon_type, int32_t clip); -void __cdecl Output_CalculateObjectLighting(const ITEM_INFO *item, const FRAME_INFO *frame); -int32_t __cdecl Item_GetFrames(const ITEM_INFO *item, FRAME_INFO *frmptr[], int32_t *rate); -BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); -FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *item); +void __cdecl Output_CalculateObjectLighting(const ITEM *item, const FRAME_INFO *frame); +int32_t __cdecl Item_GetFrames(const ITEM *item, FRAME_INFO *frmptr[], int32_t *rate); +BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM *item); +FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM *item); void __cdecl AddDynamicLight(int32_t x, int32_t y, int32_t z, int32_t intensity, int32_t falloff); void __cdecl BigEelControl(int16_t item_num); void __cdecl EelControl(int16_t item_num); @@ -326,61 +326,61 @@ void __cdecl Richochet(GAME_VECTOR *pos); void __cdecl ControlRichochet1(int16_t fx_num); void __cdecl CreateBubble(PHD_3DPOS *pos, int16_t room_num); -void __cdecl LaraBubbles(ITEM_INFO *item); +void __cdecl LaraBubbles(ITEM *item); void __cdecl ControlBubble1(int16_t fx_num); -void __cdecl Splash(ITEM_INFO *item); +void __cdecl Splash(ITEM *item); void __cdecl ControlSplash1(int16_t fx_num); void __cdecl ControlWaterSprite(int16_t fx_num); void __cdecl ControlSnowSprite(int16_t fx_num); void __cdecl ControlHotLiquid(int16_t fx_num); void __cdecl WaterFall(int16_t fx_num); -void __cdecl finish_level_effect(ITEM_INFO *item); -void __cdecl turn180_effect(ITEM_INFO *item); -void __cdecl floor_shake_effect(ITEM_INFO *item); -void __cdecl lara_normal_effect(ITEM_INFO *item); -void __cdecl BoilerFX(ITEM_INFO *item); -void __cdecl FloodFX(ITEM_INFO *item); -void __cdecl RubbleFX(ITEM_INFO *item); -void __cdecl ChandelierFX(ITEM_INFO *item); -void __cdecl ExplosionFX(ITEM_INFO *item); -void __cdecl PistonFX(ITEM_INFO *item); -void __cdecl CurtainFX(ITEM_INFO *item); -void __cdecl StatueFX(ITEM_INFO *item); -void __cdecl SetChangeFX(ITEM_INFO *item); +void __cdecl finish_level_effect(ITEM *item); +void __cdecl turn180_effect(ITEM *item); +void __cdecl floor_shake_effect(ITEM *item); +void __cdecl lara_normal_effect(ITEM *item); +void __cdecl BoilerFX(ITEM *item); +void __cdecl FloodFX(ITEM *item); +void __cdecl RubbleFX(ITEM *item); +void __cdecl ChandelierFX(ITEM *item); +void __cdecl ExplosionFX(ITEM *item); +void __cdecl PistonFX(ITEM *item); +void __cdecl CurtainFX(ITEM *item); +void __cdecl StatueFX(ITEM *item); +void __cdecl SetChangeFX(ITEM *item); void __cdecl ControlDingDong(int16_t item_num); void __cdecl ControlLaraAlarm(int16_t item_num); void __cdecl ControlAlarmSound(int16_t item_num); void __cdecl ControlBirdTweeter(int16_t item_num); -void __cdecl DoChimeSound(ITEM_INFO *item); +void __cdecl DoChimeSound(ITEM *item); void __cdecl ControlClockChimes(int16_t item_num); -void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl SphereOfDoom(int16_t item_num); -void __cdecl DrawSphereOfDoom(ITEM_INFO *item); -void __cdecl lara_hands_free(ITEM_INFO *item); -void __cdecl flip_map_effect(ITEM_INFO *item); -void __cdecl draw_right_gun(ITEM_INFO *item); -void __cdecl draw_left_gun(ITEM_INFO *item); -void __cdecl swap_meshes_with_meshswap1(ITEM_INFO *item); -void __cdecl swap_meshes_with_meshswap2(ITEM_INFO *item); -void __cdecl swap_meshes_with_meshswap3(ITEM_INFO *item); -void __cdecl invisibility_on(ITEM_INFO *item); -void __cdecl invisibility_off(ITEM_INFO *item); -void __cdecl dynamic_light_on(ITEM_INFO *item); -void __cdecl dynamic_light_off(ITEM_INFO *item); -void __cdecl reset_hair(ITEM_INFO *item); -void __cdecl AssaultStart(ITEM_INFO *item); -void __cdecl AssaultStop(ITEM_INFO *item); -void __cdecl AssaultReset(ITEM_INFO *item); -void __cdecl AssaultFinished(ITEM_INFO *item); +void __cdecl DrawSphereOfDoom(ITEM *item); +void __cdecl lara_hands_free(ITEM *item); +void __cdecl flip_map_effect(ITEM *item); +void __cdecl draw_right_gun(ITEM *item); +void __cdecl draw_left_gun(ITEM *item); +void __cdecl swap_meshes_with_meshswap1(ITEM *item); +void __cdecl swap_meshes_with_meshswap2(ITEM *item); +void __cdecl swap_meshes_with_meshswap3(ITEM *item); +void __cdecl invisibility_on(ITEM *item); +void __cdecl invisibility_off(ITEM *item); +void __cdecl dynamic_light_on(ITEM *item); +void __cdecl dynamic_light_off(ITEM *item); +void __cdecl reset_hair(ITEM *item); +void __cdecl AssaultStart(ITEM *item); +void __cdecl AssaultStop(ITEM *item); +void __cdecl AssaultReset(ITEM *item); +void __cdecl AssaultFinished(ITEM *item); int16_t __cdecl Knife(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); void __cdecl Cult2Control(int16_t item_num); void __cdecl MonkControl(int16_t item_num); void __cdecl Worker3Control(int16_t item_num); -void __cdecl DrawXianLord(ITEM_INFO *item); -void __cdecl XianDamage(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage); +void __cdecl DrawXianLord(ITEM *item); +void __cdecl XianDamage(ITEM *item, CREATURE *xian, int32_t damage); void __cdecl InitialiseXianLord(int16_t item_num); void __cdecl XianLordControl(int16_t item_num); -void __cdecl WarriorSparkleTrail(ITEM_INFO *item); +void __cdecl WarriorSparkleTrail(ITEM *item); void __cdecl WarriorControl(int16_t item_num); int32_t __cdecl GF_LoadScriptFile(const char *fname); int32_t __cdecl GF_DoFrontendSequence(void); @@ -466,115 +466,115 @@ void __cdecl Effect_Kill(int16_t fx_num); void __cdecl Effect_NewRoom(int16_t fx_num, int16_t room_num); void __cdecl Item_ClearKilled(void); -void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HandleAboveWater(ITEM *item, COLL_INFO *coll); void __cdecl Lara_LookUpDown(void); void __cdecl Lara_LookLeftRight(void); void __cdecl Lara_ResetLook(void); -void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_Fallen(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_CollideStop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Compress( ITEM_INFO *item, COLL_INFO *coll ); -void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestWall(ITEM_INFO *item, int32_t front, int32_t right, int32_t down); -int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestEdgeCatch(ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); -int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); -int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); -int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, PHD_ANGLE ang, int32_t dist); -int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Walk(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Run(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Stop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ForwardJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Death(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastFall(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Reach(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Splat(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Compress(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Back(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastTurn(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_StepRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_StepLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Slide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_BackJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UpJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Fallback(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_HangRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SlideBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PushBlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PPReady(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Pickup(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PickupFlare(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SwitchOn(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UseKey(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Special(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SwanDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_WaterOut(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Wade(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_DeathSlide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Breath(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_YetiKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_SharkKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Airlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_GongBong(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_DinoKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_PullDagger(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_StartAnim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_StartHouse(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_FinalAnim(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_Fallen(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_CollideStop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Walk(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Run(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Stop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ForwardJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Death(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastFall(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Reach(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Splat(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Land(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Compress( ITEM *item, COLL_INFO *coll ); +void __cdecl Lara_Col_Back(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_StepRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_StepLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Slide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_BackJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_UpJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Fallback(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SlideBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll2(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SwanDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Wade(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Default(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Jumper(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_GetCollisionInfo(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_SlideSlope(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_HitCeiling(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_DeflectEdge(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_DeflectEdgeJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_SlideEdgeJump(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestWall(ITEM *item, int32_t front, int32_t right, int32_t down); +int32_t __cdecl Lara_TestHangOnClimbWall(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_HangTest(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestEdgeCatch(ITEM *item, COLL_INFO *coll, int32_t *edge); +int32_t __cdecl Lara_TestHangJumpUp(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangJump(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangSwingIn(ITEM *item, PHD_ANGLE angle); +int32_t __cdecl Lara_TestVault(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestSlide(ITEM *item, COLL_INFO *coll); +int16_t __cdecl Lara_FloorFront(ITEM *item, PHD_ANGLE ang, int32_t dist); +int32_t __cdecl Lara_LandedBad(ITEM *item, COLL_INFO *coll); void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint); -void __cdecl Lara_GetJointAbsPosition_I(ITEM_INFO *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); +void __cdecl Lara_GetJointAbsPosition_I(ITEM *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); void __cdecl Gun_Rifle_DrawMeshes(LARA_GUN_TYPE weapon_type); void __cdecl Gun_Rifle_UndrawMeshes(LARA_GUN_TYPE weapon_type); void __cdecl Gun_Rifle_Ready(LARA_GUN_TYPE weapon_type); @@ -597,36 +597,36 @@ void __cdecl Gun_Pistols_UndrawMeshRight(LARA_GUN_TYPE weapon_type); void __cdecl Gun_Pistols_Control(LARA_GUN_TYPE weapon_type); void __cdecl Gun_Pistols_Animate(LARA_GUN_TYPE weapon_type); -void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Climbing(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbEnd(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbDown(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Climbing(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbDown(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_CheckForLetGo(ITEM *item, COLL_INFO *coll); int32_t __cdecl Lara_TestClimb(int32_t x, int32_t y, int32_t z, int32_t xfront, int32_t zfront, int32_t item_height, int16_t item_room, int32_t *shift); -int32_t __cdecl Lara_TestClimbPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); -void __cdecl Lara_DoClimbLeftRight(ITEM_INFO *item, COLL_INFO *coll, int32_t result, int32_t shift); -int32_t __cdecl Lara_TestClimbUpPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); +int32_t __cdecl Lara_TestClimbPos(ITEM *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); +void __cdecl Lara_DoClimbLeftRight(ITEM *item, COLL_INFO *coll, int32_t result, int32_t shift); +int32_t __cdecl Lara_TestClimbUpPos(ITEM *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); void __cdecl Gun_Control(void); int32_t __cdecl Gun_CheckForHoldingState(int32_t state); void __cdecl Gun_InitialiseNewWeapon(void); void __cdecl Gun_TargetInfo(const WEAPON_INFO *winfo); void __cdecl Gun_GetNewTarget(WEAPON_INFO *winfo); -void __cdecl Gun_FindTargetPoint(const ITEM_INFO *item, GAME_VECTOR *target); +void __cdecl Gun_FindTargetPoint(const ITEM *item, GAME_VECTOR *target); void __cdecl Gun_AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm); -int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM_INFO *target, const ITEM_INFO *src, const PHD_ANGLE *angles); -void __cdecl Gun_HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage); +int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM *target, const ITEM *src, const PHD_ANGLE *angles); +void __cdecl Gun_HitTarget(ITEM *item, GAME_VECTOR *hitpos, int32_t damage); void __cdecl Gun_SmashItem(int16_t item_num, LARA_GUN_TYPE weapon_type); GAME_OBJECT_ID Gun_GetWeaponAnim(const LARA_GUN_TYPE gun_type); int32_t __cdecl Flare_DoLight(XYZ_32 *pos, int32_t flare_age); void __cdecl Flare_DoInHand(int32_t flare_age); -void __cdecl Flare_DrawInAir(ITEM_INFO *item); +void __cdecl Flare_DrawInAir(ITEM *item); void __cdecl Flare_Create(int32_t thrown); void __cdecl Flare_SetArm(int32_t frame); void __cdecl Flare_Draw(void); @@ -636,7 +636,7 @@ void __cdecl Flare_Ready(void); void __cdecl Flare_Control(int16_t item_num); void __cdecl Lara_Control(int16_t item_num); -void __cdecl Lara_Animate(ITEM_INFO *item); +void __cdecl Lara_Animate(ITEM *item); void __cdecl Lara_UseItem(GAME_OBJECT_ID object_id); void __cdecl Lara_CheatGetStuff(void); void __cdecl Lara_ControlExtra(int16_t item_num); @@ -644,53 +644,53 @@ void __cdecl Lara_Initialise(int32_t type); void __cdecl Lara_InitialiseInventory(int32_t level_num); void __cdecl Lara_InitialiseMeshes(int32_t level_num); -void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_SwimTurn(ITEM_INFO *item); -void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HandleSurface(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfSwim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfTread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfSwim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfTread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_SurfaceCollision(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestWaterStepOut(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestWaterClimbOut(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_HandleUnderwater(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_SwimTurn(ITEM *item); +void __cdecl Lara_State_Swim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Glide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Tread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Dive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UWDeath(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UWTwist(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Swim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_UWDeath(ITEM *item, COLL_INFO *coll); int32_t __cdecl Lara_GetWaterDepth(int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_TestWaterDepth(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_SwimCollision(ITEM *item, COLL_INFO *coll); void __cdecl Lara_WaterCurrent(COLL_INFO *coll); void __cdecl LOT_InitialiseArray(void); void __cdecl LOT_DisableBaddieAI(int16_t item_num); bool __cdecl LOT_EnableBaddieAI(int16_t item_num, bool always); void __cdecl LOT_InitialiseSlot(int16_t item_num, int32_t slot); -void __cdecl LOT_CreateZone(ITEM_INFO *item); +void __cdecl LOT_CreateZone(ITEM *item); void __cdecl LOT_ClearLOT(LOT_INFO *lot); void __cdecl ControlMissile(int16_t fx_num); -void __cdecl ShootAtLara(FX_INFO *fx); +void __cdecl ShootAtLara(FX *fx); int32_t __cdecl Effect_ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage); void __cdecl BodyPart_Control(int16_t fx_num); void __cdecl InitialiseMovingBlock(int16_t item_num); void __cdecl MovableBlock(int16_t item_num); -void __cdecl MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl TestBlockMovable(ITEM_INFO *item, int32_t block_height); -int32_t __cdecl TestBlockPush(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -int32_t __cdecl TestBlockPull(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -void __cdecl Room_AlterFloorHeight(ITEM_INFO *item, int32_t height); -void __cdecl DrawMovableBlock(ITEM_INFO *item); -void __cdecl DrawUnclippedItem(ITEM_INFO *item); +void __cdecl MovableBlockCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl TestBlockMovable(ITEM *item, int32_t block_height); +int32_t __cdecl TestBlockPush(ITEM *item, int32_t block_height, uint16_t quadrant); +int32_t __cdecl TestBlockPull(ITEM *item, int32_t block_height, uint16_t quadrant); +void __cdecl Room_AlterFloorHeight(ITEM *item, int32_t height); +void __cdecl DrawMovableBlock(ITEM *item); +void __cdecl DrawUnclippedItem(ITEM *item); void __cdecl EarthQuake(int16_t item_num); void __cdecl ControlCutShotgun(int16_t item_num); void __cdecl InitialiseFinalLevel(void); @@ -699,7 +699,7 @@ void __cdecl InitialiseDyingMonk(int16_t item_num); void __cdecl DyingMonk(int16_t item_num); void __cdecl ControlGongBonger(int16_t item_num); -void __cdecl DeathSlideCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl DeathSlideCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl ControlDeathSlide(int16_t item_num); void __cdecl BigBowlControl(int16_t item_num); void __cdecl BellControl(int16_t item_num); @@ -711,32 +711,32 @@ void __cdecl OpenThatDoor(DOORPOS_DATA *d); void __cdecl InitialiseDoor(int16_t item_num); void __cdecl DoorControl(int16_t item_num); -int32_t __cdecl OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y); -void __cdecl DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +int32_t __cdecl OnDrawBridge(ITEM *item, int32_t x, int32_t y); +void __cdecl DrawBridgeFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl DrawBridgeCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl DrawBridgeCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl InitialiseLift(int16_t item_num); void __cdecl LiftControl(int16_t item_num); -void __cdecl LiftFloorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); -void __cdecl LiftFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl LiftCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -int32_t __cdecl GetOffset(ITEM_INFO *item, int32_t x, int32_t z); -void __cdecl BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl LiftFloorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); +void __cdecl LiftFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl LiftCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeFlatFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeFlatCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +int32_t __cdecl GetOffset(ITEM *item, int32_t x, int32_t z); +void __cdecl BridgeTilt1Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeTilt1Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeTilt2Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeTilt2Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl CopterControl(int16_t item_num); void __cdecl GeneralControl(int16_t item_num); void __cdecl DetonatorControl(int16_t item_num); -bool __cdecl Creature_CanTargetEnemy(const ITEM_INFO *item, const AI_INFO *info); +bool __cdecl Creature_CanTargetEnemy(const ITEM *item, const AI_INFO *info); void __cdecl ControlGlow(int16_t fx_num); void __cdecl ControlGunShot(int16_t fx_num); int16_t __cdecl GunShot(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); int16_t __cdecl GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); int16_t __cdecl GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -int32_t __cdecl ShotLara(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage); +int32_t __cdecl ShotLara(ITEM *item, AI_INFO *info, BITE *gun, int16_t extra_rotation, int32_t damage); void __cdecl InitialiseCult1(int16_t item_num); void __cdecl Cult1Control(int16_t item_num); void __cdecl InitialiseCult3(int16_t item_num); @@ -746,12 +746,12 @@ void __cdecl BanditControl(int16_t item_num); void __cdecl Bandit2Control(int16_t item_num); void __cdecl WinstonControl(int16_t item_num); -void __cdecl PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl DetonatorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl PickUpCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl SwitchCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl SwitchCollision2(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl DetonatorCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl KeyHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl SwitchControl(int16_t item_num); int32_t __cdecl SwitchTrigger(int16_t item_num, int16_t timer); int32_t __cdecl KeyTrigger(int16_t item_num); @@ -779,36 +779,36 @@ void __cdecl SharkControl(int16_t item_num); void __cdecl InitialiseSkidoo(int16_t item_num); int32_t __cdecl SkidooCheckGeton(int16_t item_num, COLL_INFO *coll); -void __cdecl SkidooCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -void __cdecl SkidooBaddieCollision(ITEM_INFO *skidoo); -int32_t __cdecl TestHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); -int32_t __cdecl DoShift(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old); +void __cdecl SkidooCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); +void __cdecl SkidooBaddieCollision(ITEM *skidoo); +int32_t __cdecl TestHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +int32_t __cdecl DoShift(ITEM *skidoo, XYZ_32 *pos, XYZ_32 *old); int32_t __cdecl DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); -int32_t __cdecl GetCollisionAnim(ITEM_INFO *skidoo, XYZ_32 *moved); -void __cdecl DoSnowEffect(ITEM_INFO *skidoo); -int32_t __cdecl SkidooDynamics(ITEM_INFO *skidoo); -int32_t __cdecl SkidooUserControl(ITEM_INFO *skidoo, int32_t height, int32_t *pitch); +int32_t __cdecl GetCollisionAnim(ITEM *skidoo, XYZ_32 *moved); +void __cdecl DoSnowEffect(ITEM *skidoo); +int32_t __cdecl SkidooDynamics(ITEM *skidoo); +int32_t __cdecl SkidooUserControl(ITEM *skidoo, int32_t height, int32_t *pitch); int32_t __cdecl SkidooCheckGetOffOK(int32_t direction); -void __cdecl SkidooAnimation(ITEM_INFO *skidoo, int32_t collide, int32_t dead); -void __cdecl SkidooExplode(ITEM_INFO *skidoo); +void __cdecl SkidooAnimation(ITEM *skidoo, int32_t collide, int32_t dead); +void __cdecl SkidooExplode(ITEM *skidoo); int32_t __cdecl SkidooCheckGetOff(void); void __cdecl SkidooGuns(void); int32_t __cdecl SkidooControl(void); -void __cdecl DrawSkidoo(ITEM_INFO *item); +void __cdecl DrawSkidoo(ITEM *item); void __cdecl InitialiseSkidman(int16_t item_num); void __cdecl SkidManControl(int16_t rider_num); -void __cdecl SkidmanPush(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius); -void __cdecl SkidmanCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl SkidmanPush(ITEM *item, ITEM *lara_item, int32_t radius); +void __cdecl SkidmanCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); int32_t __cdecl Music_GetRealTrack(int32_t track); void __cdecl Sound_Effect(int32_t sample_id, const XYZ_32 *pos, uint32_t flags); void __cdecl Sound_StopEffect(int32_t sample_id); void __cdecl Sound_EndScene(void); void __cdecl Sound_Shutdown(void); void __cdecl Sound_Init(void); -int32_t __cdecl Collide_TestCollision(ITEM_INFO *item, const ITEM_INFO *lara_item); -int32_t __cdecl Collide_GetSpheres(const ITEM_INFO *item, SPHERE *spheres, bool world_space); -void __cdecl Collide_GetJointAbsPosition(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint); -void __cdecl BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite); +int32_t __cdecl Collide_TestCollision(ITEM *item, const ITEM *lara_item); +int32_t __cdecl Collide_GetSpheres(const ITEM *item, SPHERE *spheres, bool world_space); +void __cdecl Collide_GetJointAbsPosition(const ITEM *item, const XYZ_32 *vec, int32_t joint); +void __cdecl BaddieBiteEffect(ITEM *item, BITE *bite); void __cdecl SpiderLeap(int16_t item_num, int16_t angle); void __cdecl SpiderControl(int16_t item_num); void __cdecl BigSpiderControl(int16_t item_num); @@ -847,16 +847,16 @@ void __cdecl SpringBoardControl(int16_t item_num); void __cdecl InitialiseRollingBall(int16_t item_num); void __cdecl RollingBallControl(int16_t item_num); -void __cdecl RollingBallCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -void __cdecl SpikeCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +void __cdecl RollingBallCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); +void __cdecl SpikeCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); void __cdecl TrapDoorControl(int16_t item_num); -void __cdecl TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -int32_t __cdecl OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z); +void __cdecl TrapDoorFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl TrapDoorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +int32_t __cdecl OnTrapDoor(ITEM *item, int32_t x, int32_t z); void __cdecl Pendulum(int16_t item_num); void __cdecl FallingBlock(int16_t item_num); -void __cdecl FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl FallingBlockFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl FallingBlockCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl TeethTrap(int16_t item_num); void __cdecl FallingCeiling(int16_t item_num); void __cdecl DartEmitterControl(int16_t item_num); @@ -865,7 +865,7 @@ void __cdecl FlameEmitter_Control(int16_t item_num); void __cdecl Flame_Control(int16_t fx_num); void __cdecl Lara_CatchFire(void); -void __cdecl Lara_TouchLava(ITEM_INFO *item); +void __cdecl Lara_TouchLava(ITEM *item); void __cdecl EmberEmitter_Control(int16_t item_num); void __cdecl Ember_Control(int16_t fx_num); void __cdecl GiantYetiControl(int16_t item_num); @@ -1141,11 +1141,11 @@ void __cdecl S_OutputPolyList(void); int32_t __cdecl S_GetObjectBounds(const BOUNDS_16 *bounds); void __cdecl S_InsertBackPolygon(int32_t x0, int32_t y0, int32_t x1, int32_t y1); -void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM_INFO *item); +void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item); void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl S_CalculateStaticLight(int16_t adder); -void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room); -void __cdecl S_LightRoom(ROOM_INFO *room); +void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); +void __cdecl S_LightRoom(ROOM *room); void __cdecl S_DrawHealthBar(int32_t percent); void __cdecl S_DrawAirBar(int32_t percent); void __cdecl AnimateTextures(int32_t ticks); @@ -1309,10 +1309,10 @@ int32_t __cdecl Inv_Display(int32_t inventory_mode); void __cdecl BaddyObjects(void); void __cdecl Output_GTMapPersp32FP(int32_t y1, int32_t y2, uint8_t *tex_page); -void __cdecl Lara_Draw(const ITEM_INFO *item); +void __cdecl Lara_Draw(const ITEM *item); void __cdecl GF_ModifyInventory(int32_t level, int32_t type); void __cdecl ObjectObjects(void); -void __cdecl Lara_Draw_I(const ITEM_INFO *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); +void __cdecl Lara_Draw_I(const ITEM *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); bool __cdecl Input_Update(void); const int16_t *__cdecl Output_InsertObjectGT4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); void __cdecl HairControl(int32_t in_cutscene); @@ -1349,15 +1349,15 @@ void __cdecl Output_InsertTrans8(const PHD_VBUF *vbuf, int16_t shade); void __cdecl MonkControl(int16_t item_num); LRESULT __stdcall WinVidGameWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -int32_t __cdecl SkidooDynamics(ITEM_INFO *skidoo); +int32_t __cdecl SkidooDynamics(ITEM *skidoo); void __cdecl Option_Sound(INVENTORY_ITEM *item); void __cdecl Sound_Effect(int32_t sample_id, const XYZ_32 *pos, uint32_t flags); -void __cdecl PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl PickUpCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); int32_t __cdecl GF_InterpretSequence(int16_t *ptr, GF_LEVEL_TYPE type, int32_t seq_type); -TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM_INFO *item, LOT_INFO *lot); +TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM *item, LOT_INFO *lot); void __cdecl Output_InsertGT4_ZBuffered(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_VBUF *vtx3, const PHD_TEXTURE *texture); int32_t __cdecl SkidooControl(void); -void __cdecl Creature_Mood(ITEM_INFO *item, AI_INFO *info, int32_t violent); +void __cdecl Creature_Mood(ITEM *item, AI_INFO *info, int32_t violent); const int16_t *__cdecl Output_InsertObjectG4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); void __cdecl Worker2Control(int16_t item_num); void __cdecl ShowEndStatsText(void); @@ -1367,11 +1367,11 @@ void __cdecl Bandit2Control(int16_t item_num); void __cdecl Cult1Control(int16_t item_num); void __cdecl Rocket_Control(int16_t item_num); -void __cdecl DrawXianLord(ITEM_INFO *item); +void __cdecl DrawXianLord(ITEM *item); void __cdecl SkidManControl(int16_t rider_num); void __cdecl InitialiseDoor(int16_t item_num); int32_t __cdecl Collide_CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_num, int32_t height); -void __cdecl Room_Clip(ROOM_INFO *r); +void __cdecl Room_Clip(ROOM *r); void __cdecl Text_DrawText(const TEXTSTRING *string); const int16_t *__cdecl Output_InsertObjectG4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); void __cdecl Worker1Control(int16_t item_num); @@ -1385,14 +1385,14 @@ void __cdecl Diver_Control(int16_t item_num); void __cdecl Dog_Control(int16_t item_num); int32_t __cdecl Effect_ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage); -void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM_INFO *parent); +void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM *parent); void __cdecl Gun_Rifle_Animate(LARA_GUN_TYPE weapon_type); -void __cdecl Object_DrawAnimatingItem(ITEM_INFO *item); +void __cdecl Object_DrawAnimatingItem(ITEM *item); void __cdecl WinVidStart(void); void __cdecl Camera_Move(const GAME_VECTOR *target, int32_t speed); void __cdecl Lara_InitialiseInventory(int32_t level_num); void __cdecl Inv_RingNotActive(INVENTORY_ITEM *inv_item); -int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM_INFO *target, const ITEM_INFO *src, const PHD_ANGLE *angles); +int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM *target, const ITEM *src, const PHD_ANGLE *angles); int32_t __cdecl Game_Control(int32_t nframes, int32_t demo_mode); INT_PTR __stdcall SE_GraphicsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); int32_t __cdecl SE_ReadAppSettings(APP_SETTINGS *settings); @@ -1401,98 +1401,98 @@ void __cdecl HarpoonBolt_Control(int16_t item_num); const int16_t *__cdecl Output_InsertObjectG3_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); void __fastcall Output_WGTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported -void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Item_Animate(ITEM_INFO *item); +void __cdecl Lara_HangTest(ITEM *item, COLL_INFO *coll); +void __cdecl Item_Animate(ITEM *item); void __cdecl Gun_Pistols_Animate(LARA_GUN_TYPE weapon_type); void __cdecl CheckCheatMode(void); const int16_t *__cdecl Output_InsertObjectG3(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -void __cdecl Lara_GetJointAbsPosition_I(ITEM_INFO *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); +void __cdecl Lara_GetJointAbsPosition_I(ITEM *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); void __cdecl BanditControl(int16_t item_num); -void __cdecl Lara_Push(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); +void __cdecl Lara_Push(ITEM *item, ITEM *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); int32_t __cdecl LOS_CheckSmashable(const GAME_VECTOR *start, GAME_VECTOR *target); void __fastcall Output_GTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl DragonCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl DragonCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); -int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestVault(ITEM *item, COLL_INFO *coll); void __cdecl WinPlayFMV(const char *file_name, bool is_playback); bool __cdecl SE_ShowSetupDialog(HWND hParent, bool isDefault); void __cdecl Option_Detail(INVENTORY_ITEM *item); -int32_t __cdecl Collide_GetSpheres(const ITEM_INFO *item, SPHERE *spheres, bool world_space); -void __cdecl DrawSkidoo(ITEM_INFO *item); +int32_t __cdecl Collide_GetSpheres(const ITEM *item, SPHERE *spheres, bool world_space); +void __cdecl DrawSkidoo(ITEM *item); const int16_t *__cdecl Output_InsertObjectG3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); int32_t __cdecl Output_XYClipper(int32_t vtx_count, VERTEX_INFO *vtx); void __cdecl ControlMissile(int16_t fx_num); BOOL __cdecl Shell_Main(void); -void __cdecl Lara_Animate(ITEM_INFO *item); +void __cdecl Lara_Animate(ITEM *item); void __cdecl GiantYetiControl(int16_t item_num); void __cdecl Output_DrawSprite(uint32_t flags, int32_t x, int32_t y, int32_t z, int16_t sprite_idx, int16_t shade, int16_t scale); void __cdecl Lara_Initialise(int32_t type); -void __cdecl SkidooAnimation(ITEM_INFO *skidoo, int32_t collide, int32_t dead); +void __cdecl SkidooAnimation(ITEM *skidoo, int32_t collide, int32_t dead); void __cdecl Room_DrawAllRooms(int16_t current_room); -void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl ControlDeathSlide(int16_t item_num); void __cdecl DinoControl(int16_t item_num); int32_t __cdecl Output_XGenXGUVPerspFP(const int16_t *obj_ptr); void __cdecl Tiger_Control(int16_t item_num); const int16_t *__cdecl Output_CalcRoomVertices(const int16_t *obj_ptr, int32_t far_clip); void __cdecl SharkControl(int16_t item_num); -int32_t __cdecl DoShift(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old); +int32_t __cdecl DoShift(ITEM *skidoo, XYZ_32 *pos, XYZ_32 *old); int32_t __cdecl S_GetObjectBounds(const BOUNDS_16 *bounds); void __cdecl Flare_Control(int16_t item_num); void __cdecl Output_Init(int16_t x, int16_t y, int32_t width, int32_t height, int32_t near_z, int32_t far_z, int16_t view_angle, int32_t screen_width, int32_t screen_height); -int32_t __cdecl Room_GetHeight(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); +int32_t __cdecl Room_GetHeight(const SECTOR *sector, int32_t x, int32_t y, int32_t z); BOOL __cdecl Level_LoadSamples(HANDLE handle); int32_t __cdecl Lara_TestClimb(int32_t x, int32_t y, int32_t z, int32_t xfront, int32_t zfront, int32_t item_height, int16_t item_room, int32_t *shift); bool __cdecl SE_WriteAppSettings(APP_SETTINGS *settings); void __cdecl S_CopyBufferToScreen(void); void __cdecl DrawTextureTile(int32_t sx, int32_t sy, int32_t width, int32_t height, HWR_TEXTURE_HANDLE tex_source, int32_t tu, int32_t tv, int32_t t_width, int32_t t_height, D3DCOLOR color0, D3DCOLOR color1, D3DCOLOR color2, D3DCOLOR color3); -void __cdecl RollingBallCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +void __cdecl RollingBallCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); bool __cdecl Level_Load(const char *file_name, int32_t level_num); void __cdecl Camera_LoadCutsceneFrame(void); -void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); -int32_t __cdecl Room_GetCeiling(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -void __cdecl DetonatorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Creature_AIInfo(ITEM *item, AI_INFO *info); +int32_t __cdecl Room_GetCeiling(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +void __cdecl DetonatorCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl GameApplySettings(APP_SETTINGS *new_settings); LRESULT __stdcall SE_SetupWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -void __cdecl MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl Lara_TestClimbUpPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); +void __cdecl MovableBlockCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl Lara_TestClimbUpPos(ITEM *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); void __cdecl SE_OptionsDlgUpdate(HWND hwndDlg); int32_t __cdecl SkidooCheckGetOff(void); void __cdecl DisplayCredits(void); void __cdecl Gun_Pistols_Undraw(LARA_GUN_TYPE weapon_type); -int32_t __cdecl TestBlockPull(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); +int32_t __cdecl TestBlockPull(ITEM *item, int32_t block_height, uint16_t quadrant); void __cdecl Output_DrawScaledSpriteC(const int16_t *obj_ptr); -void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Lara_HandleUnderwater(ITEM *item, COLL_INFO *coll); +void __cdecl KeyHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl Flare_Undraw(void); BOOL __cdecl Level_LoadBoxes(HANDLE handle); void __cdecl BGND_DrawInGameBackground(void); void __cdecl Gun_GetNewTarget(WEAPON_INFO *winfo); -int32_t __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestWaterClimbOut(ITEM *item, COLL_INFO *coll); void __cdecl BaracuddaControl(int16_t item_num); int32_t __cdecl Output_XGenXGUV(const int16_t *obj_ptr); void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); void __cdecl FinalLevelCounter_Control(int16_t item_num); -void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl SwitchCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl SpiderControl(int16_t item_num); -void __cdecl S_LightRoom(ROOM_INFO *room); +void __cdecl S_LightRoom(ROOM *room); bool __cdecl ApplySettings(APP_SETTINGS *new_settings); void __cdecl CreateStartInfo(int32_t level_num); void __cdecl Bird_Control(int16_t item_num); void __cdecl BodyPart_Control(int16_t fx_num); -void __cdecl SkidooBaddieCollision(ITEM_INFO *skidoo); +void __cdecl SkidooBaddieCollision(ITEM *skidoo); void __cdecl S_DrawAirBar(int32_t percent); void __cdecl Screenshot(LPDDS screen); void __cdecl MineControl(int16_t mine_num); int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); -void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM_INFO *item); +void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item); void __cdecl Lara_WaterCurrent(COLL_INFO *coll); int32_t __cdecl GF_LoadScriptFile(const char *fname); void __cdecl Matrix_RotYXZpack(uint32_t rpack); -void __cdecl Camera_Look(const ITEM_INFO *item); +void __cdecl Camera_Look(const ITEM *item); void __cdecl EelControl(int16_t item_num); void __cdecl Matrix_RotYXZ(int16_t ry, int16_t rx, int16_t rz); void __cdecl MouseControl(int16_t item_num); @@ -1508,14 +1508,14 @@ void __cdecl Output_InsertFlatRect_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); void __cdecl FadeToPal(int32_t fade_value, RGB_888 *palette); void __cdecl Room_GetBounds(void); -int32_t __cdecl ShotLara(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage); +int32_t __cdecl ShotLara(ITEM *item, AI_INFO *info, BITE *gun, int16_t extra_rotation, int32_t damage); int32_t __cdecl LevelStats(int32_t level_num); void __cdecl Boat_DoShift(int32_t boat_num); void __cdecl WinVidResizeGameWindow(HWND hWnd, int32_t edge, LPRECT rect); BOOL __stdcall EnumDisplayAdaptersCallback(GUID *lpGUID, LPTSTR lpDriverDescription, LPTSTR lpDriverName, LPVOID lpContext); void __cdecl BGND_Make640x480(uint8_t *bitmap, RGB_888 *palette); void __cdecl D3DDeviceCreate(LPDDS lpBackBuffer); -int32_t __cdecl SkidooUserControl(ITEM_INFO *skidoo, int32_t height, int32_t *pitch); +int32_t __cdecl SkidooUserControl(ITEM *skidoo, int32_t height, int32_t *pitch); void __cdecl Item_Initialise(int16_t item_num); int32_t __cdecl Demo_Start(int32_t level_num); bool __cdecl LOT_EnableBaddieAI(int16_t item_num, bool always); @@ -1525,115 +1525,115 @@ void __cdecl ClearBuffers(DWORD flags, DWORD fill_color); void __cdecl Output_DrawPolyLine(const int16_t *obj_ptr); int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); -int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangJump(ITEM *item, COLL_INFO *coll); void __cdecl BigEelControl(int16_t item_num); -void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Collide_GetJointAbsPosition(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint); -SECTOR_INFO *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); +void __cdecl Lara_Col_ClimbDown(ITEM *item, COLL_INFO *coll); +void __cdecl Collide_GetJointAbsPosition(const ITEM *item, const XYZ_32 *vec, int32_t joint); +SECTOR *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); int32_t __cdecl AddTexturePage16(int32_t width, int32_t height, const uint8_t *page_buf); void __cdecl Output_InsertTrans8_Sorted(const PHD_VBUF *vbuf, int16_t shade); -void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_HandleAboveWater(ITEM *item, COLL_INFO *coll); void __cdecl Gun_TargetInfo(const WEAPON_INFO *winfo); void __cdecl BartoliControl(int16_t item_num); int32_t __cdecl Lara_GetWaterDepth(int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Walk(ITEM *item, COLL_INFO *coll); void __cdecl PropellerControl(int16_t item_num); -void __cdecl Camera_Combat(const ITEM_INFO *item); +void __cdecl Camera_Combat(const ITEM *item); void __cdecl Gun_Pistols_Control(LARA_GUN_TYPE weapon_type); void __cdecl Text_DrawBorder(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height); BOOL __cdecl Level_LoadTexturePages(HANDLE handle); BOOL __cdecl Level_LoadDepthQ(HANDLE handle); -int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); -int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); +int32_t __cdecl Boat_UserControl(ITEM *boat); +int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM *item, ITEM *lara_item); void __cdecl Gun_Rifle_FireHarpoon(void); void __cdecl Output_InsertFlatRect_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); void __cdecl ControlTwinkle(int16_t fx_num); void __cdecl S_Audio_Sample_Init2(HWND hwnd); void __cdecl SE_GraphicsDlgInit(HWND hwndDlg); void __cdecl SpinningBlade(int16_t item_num); -void __cdecl LiftFloorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); -void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl LiftFloorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); +void __cdecl Lara_Col_Run(ITEM *item, COLL_INFO *coll); void __cdecl Output_InsertPoly_Gouraud(int32_t vtx_count, float z, int32_t red, int32_t green, int32_t blue, int16_t poly_type); -void __cdecl Boat_DoWakeEffect(ITEM_INFO *boat); +void __cdecl Boat_DoWakeEffect(ITEM *boat); bool __cdecl TexturePageInit(TEXPAGE_DESC *page); void __cdecl WinstonControl(int16_t item_num); int32_t __cdecl Boat_CheckGeton(int16_t item_num, COLL_INFO *coll); -void __cdecl Creature_Kill(ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); +void __cdecl Creature_Kill(ITEM *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); int32_t __cdecl Game_Cutscene_Control(int32_t nframes); int32_t __cdecl Misc_Move3DPosTo3DPos(PHD_3DPOS *src_pos, const PHD_3DPOS *dest_pos, int32_t velocity, PHD_ANGLE ang_add); const int16_t *__cdecl Output_CalcVerticeLight(const int16_t *obj_ptr); -int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangJumpUp(ITEM *item, COLL_INFO *coll); void __cdecl HWR_DrawPolyList(void); -void __cdecl Boat_Animation(ITEM_INFO *boat, int32_t collide); +void __cdecl Boat_Animation(ITEM *boat, int32_t collide); void __cdecl Flare_Draw(void); int32_t __cdecl Room_GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl Inv_RingIsOpen(RING_INFO *ring); void __cdecl Gun_Rifle_Draw(LARA_GUN_TYPE weapon_type); BOOL __cdecl S_FrontEndCheck(void); void __cdecl Flame_Control(int16_t fx_num); -void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Wade(ITEM *item, COLL_INFO *coll); void __fastcall Output_GourA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported int32_t __cdecl Level_Initialise(int32_t level_num, int32_t level_type); -void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Boat_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_SwimCollision(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_HandleSurface(ITEM *item, COLL_INFO *coll); void __cdecl Inv_Construct(void); -void __cdecl SpikeCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +void __cdecl SpikeCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); void __cdecl DartsControl(int16_t item_num); void __cdecl Camera_Shift(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); const int16_t *__cdecl Output_InsertRoomSprite(const int16_t *obj_ptr, int32_t vtx_count); -void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Climbing(ITEM *item, COLL_INFO *coll); void __cdecl Gun_DrawFlash(LARA_GUN_TYPE weapon_type, int32_t clip); INT_PTR __stdcall SE_SoundDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Stop(ITEM *item, COLL_INFO *coll); void __cdecl MovableBlock(int16_t item_num); void __cdecl Effect_Draw(int16_t fx_num); int32_t __cdecl Output_XGenXG(const int16_t *obj_ptr); void __cdecl Overlay_DrawAssaultTimer(void); int16_t __cdecl Game_Start(int32_t level_num, GF_LEVEL_TYPE level_type); -void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Run(ITEM *item, COLL_INFO *coll); int32_t __cdecl Output_ZedClipper(int32_t vtx_count, POINT_INFO *pts, VERTEX_INFO *vtx); void __cdecl Output_DrawClippedPoly_Textured(int32_t vtx_count); -void __cdecl DoSnowEffect(ITEM_INFO *skidoo); +void __cdecl DoSnowEffect(ITEM *skidoo); void __cdecl Lara_UseItem(GAME_OBJECT_ID object_id); void __cdecl Inv_Ring_DoMotions(RING_INFO *ring); void __cdecl DartEmitterControl(int16_t item_num); void __cdecl Output_InsertTransQuad_Sorted(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); void __cdecl WaterFall(int16_t fx_num); void __cdecl RestoreLostBuffers(void); -void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM_INFO *src_item, ITEM_INFO *dst_item); +void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM *src_item, ITEM *dst_item); void __cdecl CreateScreenBuffers(void); void __fastcall Output_TransA(int32_t y0, int32_t y1, uint8_t depth_q); // actually, __watcall, which is esoteric and rarely supported void __cdecl Camera_UpdateCutscene(void); void __cdecl ControlSpikeWall(int16_t item_num); -int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM_INFO *src_item, ITEM_INFO *dst_item); -int32_t __cdecl TestBlockPush(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); +int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM *src_item, ITEM *dst_item); +int32_t __cdecl TestBlockPush(ITEM *item, int32_t block_height, uint16_t quadrant); void __cdecl CopyBitmapPalette(RGB_888 *src_pal, BYTE *src_bitmap, int32_t bitmap_size, RGB_888 *dest_pal); -void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_DeflectEdgeJump(ITEM *item, COLL_INFO *coll); BOOL __cdecl Level_LoadSprites(HANDLE handle); void __cdecl Output_InsertSkybox(const int16_t *obj_ptr); void __cdecl Output_InsertLine_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); void __cdecl Overlay_DrawAmmoInfo(void); void __cdecl Inv_DoInventoryBackground(void); int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift); -int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl DrawSphereOfDoom(ITEM_INFO *item); +int32_t __cdecl Lara_TestSlide(ITEM *item, COLL_INFO *coll); +void __cdecl DrawSphereOfDoom(ITEM *item); void __cdecl Output_InsertLine_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); void __cdecl Inv_InsertItem(INVENTORY_ITEM *inv_item); -void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl Collide_TestCollision(ITEM_INFO *item, const ITEM_INFO *lara_item); +void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl Collide_TestCollision(ITEM *item, const ITEM *lara_item); void __cdecl HWR_InitState(void); -void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room); +void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); BOOL __cdecl S_Input_Key(KEYMAP keymap); void __cdecl Item_Kill(int16_t item_num); void __cdecl Gun_InitialiseNewWeapon(void); -void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_UpJump(ITEM *item, COLL_INFO *coll); void __cdecl SkidooGuns(void); void __cdecl SE_SoundDlgUpdate(HWND hwndDlg); HRESULT __stdcall EnumTextureFormatsCallback(LPDDSDESC lpDdsd, LPVOID lpContext); -void __cdecl SkidmanPush(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius); +void __cdecl SkidmanPush(ITEM *item, ITEM *lara_item, int32_t radius); void __cdecl JellyControl(int16_t item_num); void __cdecl S_DrawScreenBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE color_idx, const GOURAUD_OUTLINE *gour, uint16_t flags); void __cdecl ControlCeilingSpikes(int16_t item_num); @@ -1646,7 +1646,7 @@ void __cdecl Inv_Ring_Init(RING_INFO *ring, int16_t type, INVENTORY_ITEM **list, int16_t qty, int16_t current, IMOTION_INFO *imo); void __cdecl ScreenshotPCX(void); bool __cdecl S_Audio_Sample_Load(int32_t sample_id, LPWAVEFORMATEX format, const void *data, int32_t data_size); -void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Compress(ITEM *item, COLL_INFO *coll); void __cdecl CopterControl(int16_t item_num); void __cdecl Ember_Control(int16_t fx_num); bool __cdecl WinVidGoWindowed(int32_t width, int32_t height, DISPLAY_MODE *dispMode); @@ -1667,46 +1667,46 @@ void __cdecl IcicleControl(int16_t item_num); void __cdecl Overlay_DrawPickups(bool pickup_state); void __cdecl Matrix_InterpolateArm(void); -void __cdecl SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl SwitchCollision2(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_Col_Back(ITEM *item, COLL_INFO *coll); void __cdecl Lara_InitialiseMeshes(int32_t level_num); BOOL __cdecl DecompPCX(const uint8_t *pcx, size_t pcx_size, LPBYTE pic, RGB_888 *pal); -int32_t __cdecl Boat_TestWaterHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +int32_t __cdecl Boat_TestWaterHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); -void __cdecl Flare_DrawInAir(ITEM_INFO *item); -void __cdecl SkidooCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +void __cdecl Flare_DrawInAir(ITEM *item); +void __cdecl SkidooCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); void __cdecl Output_DrawPoly_Gouraud(int32_t vtx_count, int32_t red, int32_t green, int32_t blue); -int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangOnClimbWall(ITEM *item, COLL_INFO *coll); void __cdecl Gun_Rifle_Control(LARA_GUN_TYPE weapon_type); int32_t __cdecl AddTexturePage8(int32_t width, int32_t height, const uint8_t *page_buf, int32_t pal_idx); void __cdecl Output_InsertPolygons(const int16_t *obj_ptr, int32_t clip); void __cdecl ControlBubble1(int16_t fx_num); -void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SurfaceCollision(ITEM *item, COLL_INFO *coll); DWORD __cdecl WinInReadJoystick(int32_t *x, int32_t *y); -int32_t __cdecl Box_StalkBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); +int32_t __cdecl Box_StalkBox(const ITEM *item, const ITEM *enemy, int16_t box_num); void __cdecl Gun_Rifle_FireShotgun(void); void __cdecl SphereOfDoom(int16_t item_num); void __cdecl Gun_Rifle_FireGrenade(void); -void __cdecl Lara_DoClimbLeftRight(ITEM_INFO *item, COLL_INFO *coll, int32_t result, int32_t shift); -void __cdecl Camera_Chase(const ITEM_INFO *item); -void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_DoClimbLeftRight(ITEM *item, COLL_INFO *coll, int32_t result, int32_t shift); +void __cdecl Camera_Chase(const ITEM *item); +void __cdecl Lara_State_SurfTread(ITEM *item, COLL_INFO *coll); void __cdecl Output_InsertRoom(const int16_t *obj_ptr, int32_t is_outside); -void __cdecl Output_CalculateObjectLighting(const ITEM_INFO *item, const FRAME_INFO *frame); +void __cdecl Output_CalculateObjectLighting(const ITEM *item, const FRAME_INFO *frame); BOOL __stdcall DInputEnumDevicesCallback(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef); void __cdecl CalculateWibbleTable(void); void __cdecl Camera_RefreshFromTrigger(int16_t type, const int16_t *data); -int32_t __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestWaterStepOut(ITEM *item, COLL_INFO *coll); int32_t __cdecl S_Audio_Sample_Play(int32_t sample_id, int32_t volume, int32_t pitch, int32_t pan, int32_t flags); -void __cdecl Lara_TouchLava(ITEM_INFO *item); +void __cdecl Lara_TouchLava(ITEM *item); void __cdecl RenderFinish(bool need_to_clear_textures); bool __cdecl DInputJoystickCreate(void); void __cdecl S_InitialisePolyList(BOOL clear_back_buffer); void __cdecl Effect_Kill(int16_t fx_num); void __cdecl BigBowlControl(int16_t item_num); -void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SlideSlope(ITEM *item, COLL_INFO *coll); bool __cdecl WinVidSpinMessageLoop(bool needWait); BOOL __stdcall S_Audio_Sample_DSoundEnumCallback(LPGUID guid, LPCTSTR description, LPCTSTR module, LPVOID context); -int32_t __cdecl Lara_TestWall(ITEM_INFO *item, int32_t front, int32_t right, int32_t down); +int32_t __cdecl Lara_TestWall(ITEM *item, int32_t front, int32_t right, int32_t down); int32_t __cdecl SkidooCheckGeton(int16_t item_num, COLL_INFO *coll); void __cdecl FallingCeiling(int16_t item_num); BOOL __cdecl SelectDrive(void); @@ -1719,31 +1719,31 @@ void __cdecl ModifyStartInfo(int32_t level_num); void __cdecl SpringBoardControl(int16_t item_num); void __cdecl S_LoadSettings(void); -int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR_INFO *sector); +int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR *sector); void __cdecl Room_TriggerMusicTrackImpl(int16_t value, int16_t flags, int16_t type); void __cdecl CreateBartoliLight(int16_t item_num); void __cdecl DragonBones(int16_t item_num); void __cdecl MiniCopterControl(int16_t item_num); void __cdecl Camera_Clip(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); -void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_ForwardJump(ITEM *item, COLL_INFO *coll); bool __cdecl SE_GraphicsTestStart(void); -int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t maximum_turn); +int16_t __cdecl Creature_Turn(ITEM *item, int16_t maximum_turn); void __cdecl WinVidSetDisplayAdapter(DISPLAY_ADAPTER *disp_adapter); void __cdecl LiftControl(int16_t item_num); void __cdecl Output_InsertTransQuad(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); -void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_ForwardJump(ITEM *item, COLL_INFO *coll); void __cdecl Flare_DoInHand(int32_t flare_age); void __cdecl CreateWindowPalette(void); int32_t __cdecl Output_XGenX(const int16_t *obj_ptr); void __cdecl GeneralControl(int16_t item_num); DWORD __cdecl EncodeLinePCX(BYTE *src, DWORD width, BYTE *dst); void __cdecl UpdateFrame(bool need_run_message_loop, LPRECT rect); -void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_TestWaterDepth(ITEM *item, COLL_INFO *coll); void __cdecl GetCarriedItems(void); void __cdecl Demo_LoadLaraPos(void); void __cdecl Output_InsertFlatRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -int32_t __cdecl Item_TestBoundsCollide(const ITEM_INFO *src_item, const ITEM_INFO *dst_item, int32_t radius); -void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Item_TestBoundsCollide(const ITEM *src_item, const ITEM *dst_item, int32_t radius); +void __cdecl Lara_State_Wade(ITEM *item, COLL_INFO *coll); void __cdecl DInputKeyboardCreate(void); void __cdecl Room_GetNearbyRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); void __cdecl DoorControl(int16_t item_num); @@ -1759,79 +1759,79 @@ bool __cdecl S_Audio_Sample_DSoundBufferTest(void); BOOL __cdecl S_ReloadLevelGraphics(BOOL reload_palettes, BOOL reload_tex_pages); void __thiscall SE_LoadBitmapResource(BITMAP_RESOURCE *bmpRsrc, LPCTSTR lpName); -void __cdecl Splash(ITEM_INFO *item); +void __cdecl Splash(ITEM *item); int32_t __cdecl Inv_GetItemOption(GAME_OBJECT_ID object_id); void __cdecl Gun_AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm); void __cdecl Requester_ChangeItem(REQUEST_INFO *req, int32_t item, const char *text1, uint32_t flags1, const char *text2, uint32_t flags2); void __cdecl Option_Compass(INVENTORY_ITEM *item); void __cdecl AnimateTextures(int32_t ticks); -void __cdecl DeathSlideCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl DeathSlideCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_Col_StepRight(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestClimbStance(ITEM *item, COLL_INFO *coll); void __cdecl SE_SoundDlgInit(HWND hwndDlg); void __cdecl ControlGongBonger(int16_t item_num); int32_t __cdecl SwitchTrigger(int16_t item_num, int16_t timer); void __cdecl TeethTrap(int16_t item_num); HRESULT __stdcall Enum3DDevicesCallback(GUID *lpGuid, LPTSTR lpDeviceDescription, LPTSTR lpDeviceName, LPD3DDEVICEDESC lpD3DHWDeviceDesc, LPD3DDEVICEDESC lpD3DHELDeviceDesc, LPVOID lpContext); void __cdecl SE_ControlsDlgInit(HWND hwndDlg); -void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestClimbPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); +void __cdecl Lara_State_Extra_PullDagger(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestClimbPos(ITEM *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); bool __cdecl WinVidCheckGameWindowPalette(HWND hWnd); void __cdecl CreateZBuffer(void); -int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Room_AlterFloorHeight(ITEM_INFO *item, int32_t height); +int32_t __cdecl Lara_LandedBad(ITEM *item, COLL_INFO *coll); +void __cdecl Room_AlterFloorHeight(ITEM *item, int32_t height); void __cdecl Lara_CheatGetStuff(void); int16_t __cdecl GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); int32_t __cdecl BGND_AddTexture(int32_t tile_idx, BYTE *bitmap, int32_t pal_index, RGB_888 *bmp_pal); bool __cdecl D3DSetViewport(void); void __cdecl Creature_Die(int16_t item_num, int32_t explode); -void __cdecl LOT_CreateZone(ITEM_INFO *item); +void __cdecl LOT_CreateZone(ITEM *item); void __cdecl Output_InsertLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); void __cdecl Gondola_Control(int16_t item_num); void __cdecl Room_FlipMap(void); -void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl AssaultFinished(ITEM_INFO *item); -int32_t __cdecl TestHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); -int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); -int32_t __cdecl OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y); +void __cdecl Lara_Col_FastBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll2(ITEM *item, COLL_INFO *coll); +void __cdecl AssaultFinished(ITEM *item); +int32_t __cdecl TestHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +int32_t __cdecl Lara_TestHangSwingIn(ITEM *item, PHD_ANGLE angle); +int32_t __cdecl OnDrawBridge(ITEM *item, int32_t x, int32_t y); void __cdecl S_AnimateTextures(int32_t ticks); void __cdecl Camera_Initialise(void); bool __cdecl WinVidGetDisplayAdapters(void); void __cdecl ControlWaterSprite(int16_t fx_num); DWORD __cdecl CompPCX(BYTE *bitmap, DWORD width, DWORD height, RGB_888 *palette, BYTE **pcx_data); void __cdecl SyncSurfacePalettes(void *src_data, int32_t width, int32_t height, int32_t src_pitch, RGB_888 *src_palette, void *dst_data, int32_t dst_pitch, RGB_888 *dst_palette, bool preserve_sys_palette); -int32_t __cdecl Lara_TestEdgeCatch(ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); +int32_t __cdecl Lara_TestEdgeCatch(ITEM *item, COLL_INFO *coll, int32_t *edge); void __cdecl Requester_AddItem(REQUEST_INFO *req, const char *text1, uint32_t flags1, const char *text2, uint32_t flags2); void __cdecl SpiderLeap(int16_t item_num, int16_t angle); bool __cdecl Matrix_TranslateRel(int32_t x, int32_t y, int32_t z); -int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, const ANIM *anim); +int32_t __cdecl Item_GetAnimChange(ITEM *item, const ANIM *anim); int16_t __cdecl DragonFire(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); void __cdecl Overlay_DrawHealthBar(bool flash_state); -void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SlideEdgeJump(ITEM *item, COLL_INFO *coll); void __cdecl S_CopyScreenToBuffer(void); void __cdecl Matrix_RotX(int16_t rx); const int16_t *__cdecl Output_InsertObjectGT3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); void __cdecl Requester_SetHeading(REQUEST_INFO *req, char *text1, uint32_t flags1, char *text2, uint32_t flags2); -int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Gun_FindTargetPoint(const ITEM_INFO *item, GAME_VECTOR *target); +int32_t __cdecl Lara_CheckForLetGo(ITEM *item, COLL_INFO *coll); +void __cdecl Gun_FindTargetPoint(const ITEM *item, GAME_VECTOR *target); bool __cdecl GuidStringToBinary(LPCTSTR lpString, GUID *guid); void __cdecl Matrix_RotY(int16_t ry); void __cdecl Matrix_RotZ(int16_t rz); void __cdecl Creature_Float(int16_t item_num); -void __cdecl XianDamage(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage); +void __cdecl XianDamage(ITEM *item, CREATURE *xian, int32_t damage); void __cdecl Output_InsertSprite(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); -int32_t __cdecl Box_ValidBox(const ITEM_INFO *item, int16_t zone_num, int16_t box_num); -void __cdecl ShootAtLara(FX_INFO *fx); +int32_t __cdecl Box_ValidBox(const ITEM *item, int16_t zone_num, int16_t box_num); +void __cdecl ShootAtLara(FX *fx); int16_t __cdecl GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); bool __cdecl ShowDDrawGameWindow(bool active); -void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Box_EscapeBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); +void __cdecl Lara_State_Extra_StartHouse(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Box_EscapeBox(const ITEM *item, const ITEM *enemy, int16_t box_num); void __cdecl DoLotsOfBlood(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num, int32_t num); void __cdecl Requester_Shutdown(REQUEST_INFO *req); -void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z); +void __cdecl Lara_State_Extra_FinalAnim(ITEM *item, COLL_INFO *coll); +int32_t __cdecl OnTrapDoor(ITEM *item, int32_t x, int32_t z); bool __cdecl LoadTexturePage(int32_t page_idx, bool reset); void __cdecl Output_AlterFOV(int16_t fov); void __cdecl Matrix_RotYXZsuperpack(const int16_t **pprot, int32_t skip); @@ -1845,48 +1845,48 @@ void __cdecl CreateClipper(void); void __cdecl Item_NewRoom(int16_t item_num, int16_t room_num); bool __cdecl S_Audio_Sample_Init(void); -void __cdecl Lara_CollideStop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl swap_meshes_with_meshswap3(ITEM_INFO *item); +void __cdecl Lara_CollideStop(ITEM *item, COLL_INFO *coll); +void __cdecl swap_meshes_with_meshswap3(ITEM *item); void __cdecl Level_LoadDemoExternal(LPCTSTR level_name); int32_t __cdecl Game_Loop(bool demo_mode); void __cdecl Camera_Fixed(void); -int16_t __cdecl Room_GetTiltType(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl WarriorSparkleTrail(ITEM_INFO *item); +int16_t __cdecl Room_GetTiltType(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +void __cdecl Lara_Col_FastFall(ITEM *item, COLL_INFO *coll); +void __cdecl WarriorSparkleTrail(ITEM *item); void __cdecl CreateBackBuffer(void); bool __cdecl CreateTexturePageSurface(TEXPAGE_DESC *desc); void __cdecl Overlay_DrawAirBar(bool flash_state); void __cdecl AdjustTextureUVs(bool reset_uv_add); void __cdecl Output_DrawScreenSprite2D(int32_t sx, int32_t sy, int32_t sz, int32_t scale_h, int32_t scale_v, int16_t sprite_idx, int16_t shade, uint16_t flags); void __cdecl Lara_Control_Cutscene(int16_t item_num); -void __cdecl Room_RemoveFlipItems(ROOM_INFO *r); -void __cdecl floor_shake_effect(ITEM_INFO *item); -void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Compress( ITEM_INFO *item, COLL_INFO *coll ); -void __cdecl Gun_HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage); +void __cdecl Room_RemoveFlipItems(ROOM *r); +void __cdecl floor_shake_effect(ITEM *item); +void __cdecl Lara_State_DeathSlide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Compress( ITEM *item, COLL_INFO *coll ); +void __cdecl Gun_HitTarget(ITEM *item, GAME_VECTOR *hitpos, int32_t damage); void __cdecl WindowControl(int16_t item_num); int32_t __cdecl S_LoadGame(void *save_data, uint32_t save_size, int32_t slot_num); void __cdecl Option_Controls_UpdateText(void); void __cdecl Output_SetNearZ(int32_t near_z); void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); -void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnRight(ITEM *item, COLL_INFO *coll); bool __cdecl GetRegistryStringValue(LPCTSTR lpValueName, LPTSTR value, DWORD maxSize, LPCTSTR defaultValue); void __cdecl CreatePrimarySurface(void); void __cdecl Misc_InitCinematicRooms(void); void __cdecl Effect_NewRoom(int16_t fx_num, int16_t room_num); void __cdecl SE_AdvancedDlgUpdate(HWND hwndDlg); -int32_t __cdecl Item_GetFrames(const ITEM_INFO *item, FRAME_INFO *frmptr[], int32_t *rate); +int32_t __cdecl Item_GetFrames(const ITEM *item, FRAME_INFO *frmptr[], int32_t *rate); void __cdecl Music_SetVolume(int32_t volume); const int16_t *__cdecl Output_InsertObjectGT4_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_SharkKill(ITEM *item, COLL_INFO *coll); void __cdecl BladeControl(int16_t item_num); bool __cdecl GetRegistryGuidValue(LPCTSTR lpValueName, GUID *value, GUID *defaultValue); -void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl GetCollisionAnim(ITEM_INFO *skidoo, XYZ_32 *moved); +void __cdecl Lara_Col_Reach(ITEM *item, COLL_INFO *coll); +int32_t __cdecl GetCollisionAnim(ITEM *skidoo, XYZ_32 *moved); void __cdecl FlameEmitter_Control(int16_t item_num); bool __cdecl WinVidCopyBitmapToBuffer(LPDDS surface, const BYTE *bitmap); void __cdecl CutscenePlayer1_Initialise(int16_t item_num); -void __cdecl FloodFX(ITEM_INFO *item); +void __cdecl FloodFX(ITEM *item); void __cdecl HWR_LoadTexturePages(int32_t pages_count, void *pages_buf, RGB_888 *palette); void __cdecl DetonatorControl(int16_t item_num); const int16_t *__cdecl Output_InsertObjectGT4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); @@ -1896,44 +1896,44 @@ sub_444B20 bool __cdecl WinVidGetDisplayMode(DISPLAY_MODE *disp_mode); int32_t __cdecl Box_BadFloor(int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, LOT_INFO *lot); -void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Walk(ITEM *item, COLL_INFO *coll); D3DCOLOR __cdecl BGND_CenterLighting(int32_t x, int32_t y, int32_t width, int32_t height); void __cdecl Item_RemoveActive(int16_t item_num); -void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnRight(ITEM *item, COLL_INFO *coll); BOOL __cdecl Level_LoadDemo(HANDLE handle); INT_PTR __stdcall SE_OptionsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void __cdecl Bird_Initialise(int16_t item_num); void __cdecl Inv_SelectMeshes(INVENTORY_ITEM *inv_item); void __cdecl Lara_ResetLook(void); -void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnLeft(ITEM *item, COLL_INFO *coll); void __cdecl S_OutputPolyList(void); bool __cdecl WinVidGoFullScreen(DISPLAY_MODE *disp_mode); bool __cdecl IntroFMV(const char *file_name1, const char *file_name2); void __cdecl DyingMonk(int16_t item_num); bool __cdecl HideDDrawGameWindow(void); int32_t __cdecl CreateTexturePalette(const RGB_888 *pal); -void __cdecl Lara_SwimTurn(ITEM_INFO *item); +void __cdecl Lara_SwimTurn(ITEM *item); void __cdecl Sound_EndScene(void); void __cdecl HookControl(int16_t item_num); void __cdecl Output_DrawPickup(int32_t sx, int32_t sy, int32_t scale, int16_t sprite_idx, int16_t shade); -void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); -bool __cdecl Creature_CanTargetEnemy(const ITEM_INFO *item, const AI_INFO *info); -void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Tread(ITEM *item, COLL_INFO *coll); +bool __cdecl Creature_CanTargetEnemy(const ITEM *item, const AI_INFO *info); +void __cdecl Lara_State_Back(ITEM *item, COLL_INFO *coll); bool __cdecl Music_PlaySynced(int32_t track_id); -void __cdecl Object_DrawSpriteItem(ITEM_INFO *item); -void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Object_DrawSpriteItem(ITEM *item); +void __cdecl Lara_Col_Fallback(ITEM *item, COLL_INFO *coll); void __cdecl ControlBlood1(int16_t fx_num); void __cdecl Requester_Init(REQUEST_INFO *req); void __cdecl HWR_EnableZBuffer(bool z_write_enable, bool z_enable); int32_t __cdecl Inv_AnimateInventoryItem(INVENTORY_ITEM *inv_item); void __cdecl Inv_RingIsNotOpen(RING_INFO *ring); int32_t __cdecl AddAssaultTime(uint32_t time); -void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl SkidmanCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Lara_Col_Stop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll(ITEM *item, COLL_INFO *coll); +void __cdecl SkidmanCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); int32_t __cdecl Room_FindByPos(int32_t x, int32_t y, int32_t z); void __cdecl ControlExplosion1(int16_t fx_num); -int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_DeflectEdge(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseSkidman(int16_t item_num); bool __cdecl WinInputInit(void); void __cdecl Random_Seed(void); @@ -1942,36 +1942,36 @@ void __cdecl Option_Controls_FlashConflicts(void); void __cdecl S_SyncPictureBufferPalette(void); void __cdecl S_SaveSettings(void); -BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); +BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM *item); int32_t __cdecl Item_GlobalReplace(GAME_OBJECT_ID src_object_id, GAME_OBJECT_ID dst_object_id); -void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_StepRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_StepLeft(ITEM *item, COLL_INFO *coll); void __cdecl Gun_Pistols_Draw(LARA_GUN_TYPE weapon_type); void __cdecl InitialiseDyingMonk(int16_t item_num); -void __cdecl SkidooExplode(ITEM_INFO *skidoo); +void __cdecl SkidooExplode(ITEM *skidoo); int32_t __cdecl WinGameStart(void); void __cdecl Gun_Rifle_FireM16(bool running); void __cdecl Matrix_TranslateAbs(int32_t x, int32_t y, int32_t z); int16_t __cdecl Diver_Harpoon(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE y_rot, int16_t room_num); void __cdecl Overlay_DisplayModeInfo(char* string); -void __cdecl Lara_TakeHit(ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_TakeHit(ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_Col_FastDive(ITEM *item, COLL_INFO *coll); BOOL __cdecl Level_LoadCinematic(HANDLE handle); void __cdecl Math_GetVectorAngles(int32_t x, int32_t y, int32_t z, int16_t *dest); -void __cdecl Creature_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl LaraBubbles(ITEM_INFO *item); -void __cdecl Door_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Creature_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +void __cdecl LaraBubbles(ITEM *item); +void __cdecl Door_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); int32_t __cdecl Inv_RequestItem(GAME_OBJECT_ID object_id); bool __cdecl Music_Init(void); int16_t __cdecl Knife(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); void __cdecl DrawHair(void); -void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Glide(ITEM *item, COLL_INFO *coll); bool __cdecl GetRegistryBoolValue(LPCTSTR lpValueName, bool *pValue, bool defaultValue); -int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, PHD_ANGLE ang, int32_t dist); -void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); +int16_t __cdecl Lara_FloorFront(ITEM *item, PHD_ANGLE ang, int32_t dist); +void __cdecl Lara_State_ClimbStance(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseWindow(int16_t item_num); void __cdecl InitialiseHair(void); -void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Jumper(ITEM *item, COLL_INFO *coll); void __cdecl GameWindowCalculateSizeFromClient(int32_t *width, int32_t *height); void __cdecl Matrix_LookAt(int32_t xsrc, int32_t ysrc, int32_t zsrc, int32_t xtar, int32_t ytar, int32_t ztar, int16_t roll); void __cdecl Richochet(GAME_VECTOR *pos); @@ -1981,7 +1981,7 @@ BOOL __cdecl Level_LoadPalettes(HANDLE handle); bool __cdecl GetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize, LPBYTE defaultValue); void __cdecl Gun_Rifle_Ready(LARA_GUN_TYPE weapon_type); -void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfSwim(ITEM *item, COLL_INFO *coll); void __cdecl CreatePictureBuffer(void); int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); void __cdecl Item_RemoveDrawn(int16_t item_num); @@ -1993,24 +1993,24 @@ int16_t __cdecl Effect_Create(int16_t room_num); void *__cdecl game_malloc(size_t alloc_size, GAME_BUFFER buf_index); void __cdecl Output_SetFarZ(int32_t far_z); -void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl DrawUnclippedItem(ITEM_INFO *item); +void __cdecl Lara_State_Swim(ITEM *item, COLL_INFO *coll); +void __cdecl DrawUnclippedItem(ITEM *item); bool __cdecl PlayFMV(const char *file_name); void __cdecl Direct3DRelease(void); void __cdecl GameWindowCalculateSizeFromClientByZero(int32_t *width, int32_t *height); bool __cdecl WinVidRegisterGameWindowClass(void); int32_t __cdecl CreateTexturePage(int32_t width, int32_t height, bool alpha); -void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_SwanDive(ITEM *item, COLL_INFO *coll); void __cdecl Sound_UpdateEffects(void); void __cdecl ControlClockChimes(int16_t item_num); -void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Death(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseObjects(void); sub_4470F0 sub_447AC0 void __cdecl SE_ControlsDlgUpdate(HWND hwndDlg); -void __cdecl Object_Collision_Trap(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Object_Collision_Trap(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl ControlAlarmSound(int16_t item_num); -int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_HitCeiling(ITEM *item, COLL_INFO *coll); void __cdecl UpdateGameResolution(void); int32_t __cdecl GF_DoLevelSequence(int32_t level, GF_LEVEL_TYPE type); void __cdecl Lara_LookUpDown(void); @@ -2018,8 +2018,8 @@ void __cdecl CreateBubble(PHD_3DPOS *pos, int16_t room_num); int32_t __cdecl GameInit(bool skip_cd_init); void __thiscall SE_DrawBitmap(BITMAP_RESOURCE *bmpRsrc, HDC hdc, int32_t x, int32_t y); -void __cdecl swap_meshes_with_meshswap1(ITEM_INFO *item); -void __cdecl swap_meshes_with_meshswap2(ITEM_INFO *item); +void __cdecl swap_meshes_with_meshswap1(ITEM *item); +void __cdecl swap_meshes_with_meshswap2(ITEM *item); void __cdecl Inv_Ring_MotionInit(RING_INFO *ring, int16_t frames, int16_t status, int16_t status_target); void __cdecl Inv_Ring_MotionItemDeselect(RING_INFO *ring, INVENTORY_ITEM *inv_item); void __cdecl InitialiseStartInfo(void); @@ -2031,100 +2031,100 @@ bool __cdecl SE_RegisterSetupWindowClass(void); void __fastcall Output_FlatA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported void __cdecl Inv_Ring_GetView(RING_INFO *ring, PHD_3DPOS *viewer); -void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfRight(ITEM *item, COLL_INFO *coll); BOOL __cdecl Level_LoadCameras(HANDLE handle); BOOL __cdecl Level_LoadSoundEffects(HANDLE handle); void __cdecl UT_InitAccurateTimer(void); -void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); +void __cdecl Item_Translate(ITEM *item, int32_t x, int32_t y, int32_t z); void __cdecl BGND_DrawInGameBlack(void); sub_444AB0 -void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfBack(ITEM *item, COLL_INFO *coll); void __cdecl Sound_StopEffect(int32_t sample_id); bool __cdecl GetRegistryDwordValue(LPCTSTR lpValueName, DWORD *pValue, DWORD defaultValue); -void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); +void __cdecl Item_UpdateRoom(ITEM *item, int32_t height); void __cdecl ControlBirdTweeter(int16_t item_num); void __cdecl Inv_Ring_MotionItemSelect(RING_INFO *ring, INVENTORY_ITEM *inv_item); -void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite); +void __cdecl Lara_Col_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl BaddieBiteEffect(ITEM *item, BITE *bite); LRESULT __stdcall SE_NewPropSheetWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -int16_t __cdecl Creature_Effect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); -void __cdecl Room_AddFlipItems(ROOM_INFO *r); +int16_t __cdecl Creature_Effect(ITEM *item, BITE *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); +void __cdecl Room_AddFlipItems(ROOM *r); void __cdecl Gun_Pistols_Ready(LARA_GUN_TYPE weapon_type); BOOL __cdecl S_InitialiseSystem(void); bool __cdecl GetRegistryFloatValue(LPCTSTR lpValueName, double *value, double defaultValue); -void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_UWDeath(ITEM *item, COLL_INFO *coll); void __cdecl Item_AddActive(int16_t item_num); void __cdecl WinInReadKeyboard(LPVOID lpInputData); int32_t __cdecl Demo_Control(int32_t level_num); int16_t __cdecl DoBloodSplat(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num); -void __cdecl DoChimeSound(ITEM_INFO *item); -void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl DoChimeSound(ITEM *item); +void __cdecl Lara_Col_Splat(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbRight(ITEM *item, COLL_INFO *coll); void __cdecl HWR_ResetZBuffer(void); void __cdecl InitialiseXianLord(int16_t item_num); void __cdecl Item_ClearKilled(void); -void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PickupFlare(ITEM *item, COLL_INFO *coll); DWORD __cdecl Sync(void); -void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_FastBack(ITEM *item, COLL_INFO *coll); void __cdecl S_Wait(int32_t timeout, BOOL input_check); int32_t __cdecl SE_GraphicsTest(void); int32_t __cdecl SE_SoundTest(void); void __thiscall SE_ChangeBitmapPalette(BITMAP_RESOURCE *bmpRsrc, HWND hWnd); void __cdecl Requester_Item_RightAlign(REQUEST_INFO *req, TEXTSTRING *txt); void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl Object_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); +void __cdecl Object_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl Item_IsTriggerActive(ITEM *item); BOOL __cdecl Level_LoadAnimatedTextures(HANDLE handle); void __cdecl Shell_Cleanup(void); void __cdecl Requester_Item_LeftAlign(REQUEST_INFO *req, TEXTSTRING *txt); -void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_FastDive(ITEM *item, COLL_INFO *coll); int32_t __cdecl DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); bool __cdecl DDrawCreate(LPGUID lpGUID); -void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_UWDeath(ITEM *item, COLL_INFO *coll); void __cdecl LOT_InitialiseArray(void); bool __cdecl WinVidGetDisplayModes(void); void __cdecl Item_InitialiseArray(int32_t num_items); -void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); -int32_t __cdecl Lara_Fallen(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_DinoKill(ITEM *item, COLL_INFO *coll); +int32_t __cdecl Lara_Fallen(ITEM *item, COLL_INFO *coll); void __cdecl Gun_SmashItem(int16_t item_num, LARA_GUN_TYPE weapon_type); void __cdecl S_SetupBelowWater(BOOL underwater); void __cdecl Music_Shutdown(void); bool __cdecl TIME_Init(void); LPCTSTR __cdecl GuidBinaryToString(GUID *guid); -void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); -const SECTOR_INFO *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); +void __cdecl Creature_Underwater(ITEM *item, int32_t depth); +const SECTOR *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl InitialiseCult3(int16_t item_num); void __cdecl Gun_Pistols_SetArmInfo(LARA_ARM *arm, int32_t frame); void __cdecl LOT_DisableBaddieAI(int16_t item_num); void __cdecl TrapDoorControl(int16_t item_num); -void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); -int16_t __cdecl Room_GetDoor(const SECTOR_INFO *sector); +void __cdecl Creature_Neck(ITEM *item, int16_t required); +int16_t __cdecl Room_GetDoor(const SECTOR *sector); void __cdecl Gun_Pistols_DrawMeshes(LARA_GUN_TYPE weapon_type); -int32_t __cdecl TestBlockMovable(ITEM_INFO *item, int32_t block_height); +int32_t __cdecl TestBlockMovable(ITEM *item, int32_t block_height); void __cdecl ControlGunShot(int16_t fx_num); JOYSTICK_NODE *__cdecl GetJoystick(GUID *lpGuid); bool __cdecl OpenGameRegistryKey(LPCTSTR key); double __cdecl UT_Microseconds(void); -void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_StartAnim(ITEM *item, COLL_INFO *coll); void __cdecl BGND_Free(void); bool __cdecl WinVidClearBuffer(LPDDS surface, LPRECT rect, DWORD fill_color); void __cdecl WinVidExitMessage(void); -void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Breath(ITEM *item, COLL_INFO *coll); void __cdecl WriteSG(void *pointer, int32_t size); void __cdecl GetSavedGamesList(REQUEST_INFO *req); int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); -void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_FastTurn(ITEM *item, COLL_INFO *coll); void __cdecl Flare_SetArm(int32_t frame); void __cdecl DartEffectControl(int16_t fx_num); void __cdecl SE_OptionsStrCat(LPTSTR *dstString, bool isEnabled, bool *isNext, LPCTSTR srcString); -void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_BackJump(ITEM *item, COLL_INFO *coll); DISPLAY_MODE *__thiscall InsertDisplayModeInListTail(DISPLAY_MODE_LIST *modeList); void __cdecl HWR_EnableColorKey(bool state); void __cdecl HWR_FreeTexturePages(void); LONG __cdecl SetRegistryStringValue(LPCTSTR lpValueName, LPCTSTR value, int32_t length); -void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); +void __cdecl Creature_Head(ITEM *item, int16_t required); void __cdecl LOT_ClearLOT(LOT_INFO *lot); void __cdecl Lara_CatchFire(void); BOOL __cdecl ReadFileSync(HANDLE handle, LPVOID lpBuffer, DWORD nBytesToRead, LPDWORD lpnBytesRead, LPOVERLAPPED lpOverlapped); @@ -2137,7 +2137,7 @@ int32_t __fastcall Math_Atan(int32_t x, int32_t y); int32_t __cdecl Creature_Activate(int16_t item_num); void __cdecl Matrix_TranslateRel_ID(int32_t x, int32_t y, int32_t z, int32_t x2, int32_t y2, int32_t z2); -void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_YetiKill(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseKillerStatue(int16_t item_num); HRESULT __cdecl DDrawSurfaceRestoreLost(LPDDS surface1, LPDDS surface2, bool blank); DWORD __cdecl GetRenderBitDepth(DWORD dwRGBBitCount); @@ -2147,12 +2147,12 @@ void __cdecl Overlay_DrawGameInfo(bool pickup_state); bool __thiscall CompareVideoModes(const DISPLAY_MODE *mode1, const DISPLAY_MODE *mode2); bool __cdecl S_Audio_Sample_IsTrackPlaying(int32_t track_id); -void __cdecl FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl FallingBlockCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); HRESULT __cdecl DDrawSurfaceCreate(LPDDSDESC dsp, LPDDS *surface); void __cdecl BitMaskGetNumberOfBits(uint32_t bit_mask, uint32_t *bit_depth, uint32_t *bit_offset); void __cdecl GetValidLevelsList(REQUEST_INFO *req); -void __cdecl draw_right_gun(ITEM_INFO *item); -void __cdecl draw_left_gun(ITEM_INFO *item); +void __cdecl draw_right_gun(ITEM *item); +void __cdecl draw_left_gun(ITEM *item); void __cdecl InitialiseCult1(int16_t item_num); void __cdecl WinVidShowGameWindow(int32_t nCmdShow); void __cdecl S_FadeToBlack(void); @@ -2162,17 +2162,17 @@ void __cdecl Matrix_RotYXZ_I(int16_t y, int16_t x, int16_t z); void __cdecl WinVidSetMinWindowSize(int32_t width, int32_t height); void __cdecl WinVidSetMaxWindowSize(int32_t width, int32_t height); -void __cdecl lara_normal_effect(ITEM_INFO *item); +void __cdecl lara_normal_effect(ITEM *item); void __cdecl Inv_Ring_Light(RING_INFO *ring); -void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_FastFall(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseSkidoo(int16_t item_num); bool __cdecl WinVidInit(void); void __cdecl Option_Controls_DefaultConflict(void); void __cdecl UpdateTicks(void); void __cdecl ControlDingDong(int16_t item_num); -void __cdecl TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl TrapDoorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl Flare_Ready(void); -void __cdecl FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl FallingBlockFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl Enumerate3DDevices(DISPLAY_ADAPTER *adapter); DWORD __cdecl EncodePutPCX(BYTE value, BYTE num, BYTE *buffer); int32_t __stdcall SE_PropSheetCallback(HWND hwndDlg, UINT uMsg, LPARAM lParam); @@ -2192,20 +2192,20 @@ void __cdecl S_Audio_Sample_OutCloseAllTracks(void); int32_t __cdecl Gun_CheckForHoldingState(int32_t state); GAME_OBJECT_ID Gun_GetWeaponAnim(const LARA_GUN_TYPE gun_type); -void __cdecl DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -int32_t __cdecl GetOffset(ITEM_INFO *item, int32_t x, int32_t z); +void __cdecl DrawBridgeCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +int32_t __cdecl GetOffset(ITEM *item, int32_t x, int32_t z); void __cdecl ControlGlow(int16_t fx_num); void __cdecl WaitPrimaryBufferFlip(void); void __cdecl S_RemoveCtrlText(void); void __cdecl TexturePageReleaseVidMemSurface(TEXPAGE_DESC *page); void __cdecl Gun_Pistols_UndrawMeshLeft(LARA_GUN_TYPE weapon_type); void __cdecl Gun_Pistols_UndrawMeshRight(LARA_GUN_TYPE weapon_type); -void __cdecl TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl TrapDoorFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl WinVidHideGameWindow(void); void __cdecl Output_InitPolyList(void); void __cdecl Requester_SetSize(REQUEST_INFO *req, int32_t maxlines, int32_t ypos); int16_t __cdecl Item_Create(void); -void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_SwitchOn(ITEM *item, COLL_INFO *coll); void __cdecl SwitchControl(int16_t item_num); uint32_t __cdecl Text_GetScaleV(uint32_t value); sub_447170 @@ -2217,7 +2217,7 @@ void __cdecl Music_Stop(void); void __cdecl Output_DrawPolyGTMapPersp(const int16_t *obj_ptr); void __cdecl Output_DrawPolyWGTMapPersp(const int16_t *obj_ptr); -void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Item_ShiftCol(ITEM *item, COLL_INFO *coll); int32_t __cdecl Game_DrawCinematic(void); int32_t __cdecl Game_Draw(void); void __cdecl ControlLaraAlarm(int16_t item_num); @@ -2228,8 +2228,8 @@ LONG __cdecl SetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize); void __thiscall SE_ReleaseBitmapResource(BITMAP_RESOURCE *bmpRsrc); void __cdecl Output_PrintPolyList(uint8_t *surface_ptr); -void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl Lara_Col_Default(ITEM *item, COLL_INFO *coll); +void __cdecl DrawBridgeFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl ChangeFileNameExtension(char *file_name, const char *file_ext); DWORD __cdecl S_DumpScreen(void); LPVOID __cdecl UT_LoadResource(LPCTSTR lpName, LPCTSTR lpType); @@ -2237,16 +2237,16 @@ void __cdecl Output_DrawPolyFlat(const int16_t *obj_ptr); void __cdecl Output_DrawPolyTrans(const int16_t *obj_ptr); void __cdecl Output_DrawPolyGouraud(const int16_t *obj_ptr); -void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); -FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *item); -void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Creature_Tilt(ITEM *item, int16_t angle); +FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM *item); +void __cdecl Lara_State_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_HangRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbRight(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseLift(int16_t item_num); -void __cdecl LiftFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl LiftCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -void __cdecl BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl LiftFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl LiftCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeTilt1Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl ReadSG(void *pointer, int32_t size); void __cdecl WinVidSetGameWindowSize(int32_t width, int32_t height); void __thiscall S_FlaggedString_InitAdapter(DISPLAY_ADAPTER *adapter); @@ -2255,23 +2255,23 @@ void __cdecl HWR_GetPageHandles(void); bool __cdecl ReloadTextures(bool reset); void __cdecl Matrix_InitInterpolate(int32_t frac, int32_t rate); -void __cdecl BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeTilt2Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl TempVideoAdjust(int32_t hires, double sizer); void __cdecl game_free(size_t free_size); void __cdecl Output_SortPolyList(void); void __cdecl CutscenePlayerGen_Initialise(int16_t item_num); -void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangRight(ITEM *item, COLL_INFO *coll); void __cdecl Gun_Rifle_DrawMeshes(LARA_GUN_TYPE weapon_type); int32_t __cdecl PickupTrigger(int16_t item_num); void __cdecl DDrawRelease(void); void __cdecl Matrix_PushUnit(void); const int16_t *__cdecl Output_CalcSkyboxLight(const int16_t *obj_ptr); void __cdecl Inv_RingActive(void); -void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_GetCollisionInfo(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfSwim(ITEM *item, COLL_INFO *coll); void __cdecl OpenThatDoor(DOORPOS_DATA *d); void __cdecl BGND_GetPageHandles(void); void __thiscall DisplayModeListDelete(DISPLAY_MODE_LIST *pList); @@ -2284,10 +2284,10 @@ void __cdecl S_CalculateStaticLight(int16_t adder); void __cdecl ControlRichochet1(int16_t fx_num); void __cdecl Effect_InitialiseArray(void); -void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl Lara_State_PushBlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Pickup(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UseKey(ITEM *item, COLL_INFO *coll); +void __cdecl BridgeTilt1Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); bool __cdecl BGND_Init(void); void __cdecl CleanupTextures(void); BOOL __cdecl OpenRegistryKey(LPCTSTR lpSubKey); @@ -2295,8 +2295,8 @@ int32_t __cdecl Room_FindGridShift(int32_t src, int32_t dst); void __cdecl Inv_Ring_RotateLeft(RING_INFO *ring); void __cdecl Inv_Ring_RotateRight(RING_INFO *ring); -void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl Lara_State_SwanDive(ITEM *item, COLL_INFO *coll); +void __cdecl BridgeTilt2Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); sub_4471C0 sub_447B90 void __cdecl S_Audio_Sample_CloseTrack(int32_t track_id); @@ -2305,18 +2305,18 @@ void __cdecl Demo_GetInput(void); BOOL __cdecl Overlay_FlashCounter(void); void __cdecl WinInStart(void); -void __cdecl ChandelierFX(ITEM_INFO *item); +void __cdecl ChandelierFX(ITEM *item); void __cdecl Overlay_DrawModeInfo(void); void __cdecl Inv_Ring_CalcAdders(RING_INFO *ring, int16_t rotation_duration); void __cdecl Inv_Ring_MotionSetup(RING_INFO *ring, int16_t status, int16_t status_target, int16_t frames); -void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Fallback(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseMovingBlock(int16_t item_num); -void __cdecl DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl DrawBridgeCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl Text_Init(void); void __cdecl S_Audio_Sample_AdjustTrackVolumeAndPan(int32_t track_id, int32_t volume, int32_t pan); LPTSTR __cdecl UT_FindArg(LPCTSTR str); uint32_t __fastcall Math_Sqrt(uint32_t n); -void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Slide(ITEM *item, COLL_INFO *coll); void __cdecl Gun_Rifle_UndrawMeshes(LARA_GUN_TYPE weapon_type); void __cdecl Text_Flash(TEXTSTRING *string, int16_t enable, int16_t rate); DWORD __cdecl GetZBufferDepth(void); @@ -2333,7 +2333,7 @@ void __cdecl Overlay_MakeAmmoString(char *string); int32_t __cdecl CalculateWindowHeight(int32_t width, int32_t height); void __cdecl Matrix_Push_I(void); -void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_PPReady(ITEM *item, COLL_INFO *coll); void __cdecl InitialiseLevelFlags(void); void __cdecl Text_Draw(void); void __cdecl S_FadeOutInventory(BOOL isFade); @@ -2349,27 +2349,27 @@ LPDIRECT3DTEXTURE2 __cdecl Create3DTexture(LPDDS surface); HRESULT __cdecl EnumerateTextureFormats(void); void __cdecl Room_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); -void __cdecl AssaultStart(ITEM_INFO *item); +void __cdecl AssaultStart(ITEM *item); void __cdecl Inv_RemoveInventoryText(void); void __cdecl Sound_Shutdown(void); int16_t __cdecl Text_GetTextLength(const char *text); bool __cdecl DInputEnumDevices(JOYSTICK_LIST *joystickList); void __cdecl HWR_TexSource(HWR_TEXTURE_HANDLE tex_source); -void __cdecl RubbleFX(ITEM_INFO *item); -void __cdecl ExplosionFX(ITEM_INFO *item); -void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl RubbleFX(ITEM *item); +void __cdecl ExplosionFX(ITEM *item); +void __cdecl Lara_Col_BackJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SlideBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfRight(ITEM *item, COLL_INFO *coll); void __cdecl SecretControl(int16_t item_num); uint16_t __cdecl S_COLOR(int32_t red, int32_t green, int32_t blue); void __cdecl FreePalette(int32_t palette_idx); void __cdecl Matrix_Pop_I(void); void __cdecl Inv_Ring_MotionRotation(RING_INFO *ring, int16_t rotation, int16_t target); -void __cdecl DrawMovableBlock(ITEM_INFO *item); +void __cdecl DrawMovableBlock(ITEM *item); void __cdecl WinVidFreeWindow(void); bool __cdecl DInputCreate(void); bool __cdecl HWR_Init(void); @@ -2378,15 +2378,15 @@ void __cdecl S_SetupAboveWater(BOOL underwater); void __cdecl Inv_Ring_MotionCameraPitch(RING_INFO *ring, int16_t target); void __cdecl SafeFreeTexturePage(int32_t page_idx); -void __cdecl AssaultStop(ITEM_INFO *item); +void __cdecl AssaultStop(ITEM *item); int32_t __cdecl GF_DoFrontendSequence(void); bool __cdecl D3DCreate(void); void __thiscall S_FlaggedString_Create(STRING_FLAGGED *string, int32_t size); BOOL __cdecl S_Audio_Sample_OutIsTrackPlaying(int32_t track_id); bool __cdecl InitTextures(void); -void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Slide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbEnd(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfTread(ITEM *item, COLL_INFO *coll); void __cdecl Text_CentreH(TEXTSTRING *string, int16_t enable); void __cdecl Text_CentreV(TEXTSTRING *string, int16_t enable); void __cdecl Text_AlignRight(TEXTSTRING *string, int16_t enable); @@ -2395,14 +2395,14 @@ int32_t __cdecl Random_GetDraw(void); LONG __cdecl SetRegistryDwordValue(LPCTSTR lpValueName, DWORD value); void __cdecl Matrix_Push(void); -void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl BoilerFX(ITEM_INFO *item); -void __cdecl PistonFX(ITEM_INFO *item); -void __cdecl CurtainFX(ITEM_INFO *item); -void __cdecl StatueFX(ITEM_INFO *item); -void __cdecl SetChangeFX(ITEM_INFO *item); -void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Special(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_GongBong(ITEM *item, COLL_INFO *coll); +void __cdecl BoilerFX(ITEM *item); +void __cdecl PistonFX(ITEM *item); +void __cdecl CurtainFX(ITEM *item); +void __cdecl StatueFX(ITEM *item); +void __cdecl SetChangeFX(ITEM *item); +void __cdecl Lara_State_Reach(ITEM *item, COLL_INFO *coll); bool __cdecl S_Audio_Sample_DSoundCreate(GUID *guid); void __cdecl S_DontDisplayPicture(void); void __cdecl S_Audio_Sample_OutSetPitch(int32_t track_id, int32_t pitch); @@ -2412,7 +2412,7 @@ void __cdecl Inv_RemoveAllItems(void); void __cdecl Requester_Item_CenterAlign(REQUEST_INFO *req, TEXTSTRING *txt); void __cdecl Lara_ControlExtra(int16_t item_num); -void __cdecl BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl BridgeFlatCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); int32_t __fastcall Math_Sin(int16_t angle); bool __cdecl EnumerateDisplayAdapters(DISPLAY_ADAPTER_LIST *displayAdapterList); void __cdecl DInputRelease(void); @@ -2420,7 +2420,7 @@ int32_t __fastcall Math_SinImpl(int16_t angle); int32_t __cdecl Input_GetDebounced(int32_t input); bool __cdecl HWR_VertexBufferFull(void); -void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_SlideBack(ITEM *item, COLL_INFO *coll); void __cdecl Flare_DrawMeshes(void); void __cdecl Flare_UndrawMeshes(void); sub_444990 @@ -2431,33 +2431,33 @@ sub_447B30 BOOL __cdecl S_LoadLevelFile(LPCTSTR file_name, int32_t level_num, GF_LEVEL_TYPE level_type); int32_t __cdecl UT_MessageBox(LPCTSTR lpText, HWND hWnd); -void __cdecl AssaultReset(ITEM_INFO *item); +void __cdecl AssaultReset(ITEM *item); void __cdecl Text_SetScale(TEXTSTRING *string, int32_t scale_h, int32_t scale_v); void __cdecl WinInRunControlPanel(HWND hWnd); sub_44E860 void __cdecl SE_GraphicsAdapterSet(HWND hwndDlg, DISPLAY_ADAPTER_NODE *adapter); void __cdecl S_Audio_Sample_OutCloseTrack(int32_t track_id); -void __cdecl turn180_effect(ITEM_INFO *item); -void __cdecl invisibility_off(ITEM_INFO *item); -void __cdecl BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +void __cdecl turn180_effect(ITEM *item); +void __cdecl invisibility_off(ITEM *item); +void __cdecl BridgeFlatFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void __cdecl HWR_BeginScene(void); void __cdecl Overlay_InitialisePickUpDisplay(void); -void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_WaterOut(ITEM *item, COLL_INFO *coll); void __cdecl ResetSG(void); -void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Death(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Climbing(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbDown(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Dive(ITEM *item, COLL_INFO *coll); void __cdecl S_AdjustTexelCoordinates(void); void __cdecl SE_GraphicsTestFinish(void); void __cdecl Requester_RemoveAllItems(REQUEST_INFO *req); -void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_UpJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Airlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Land(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_StepLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Swim(ITEM *item, COLL_INFO *coll); void __thiscall S_FlaggedString_Delete(STRING_FLAGGED *string); void __cdecl WinVidFinish(void); bool __cdecl S_IntroFMV(const char *file_name1, const char *file_name2); @@ -2483,21 +2483,21 @@ void __cdecl ScreenDump(void); LONG __cdecl CloseRegistryKey(void); LPCTSTR __cdecl DecodeErrorMessage(DWORD error_code); -void __cdecl finish_level_effect(ITEM_INFO *item); -void __cdecl dynamic_light_off(ITEM_INFO *item); -void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl finish_level_effect(ITEM *item); +void __cdecl dynamic_light_off(ITEM *item); +void __cdecl Lara_State_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UWTwist(ITEM *item, COLL_INFO *coll); void __cdecl S_ClearScreen(void); void __cdecl Game_SetCutsceneTrack(int32_t track); -void __cdecl lara_hands_free(ITEM_INFO *item); -void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl lara_hands_free(ITEM *item); +void __cdecl Lara_State_Splat(ITEM *item, COLL_INFO *coll); void __cdecl Random_SeedControl(int32_t seed); void __cdecl Random_SeedDraw(int32_t seed); void __cdecl SE_SoundAdapterSet(HWND hwndDlg, SOUND_ADAPTER_NODE *adapter); void __cdecl SE_ControlsJoystickSet(HWND hwndDlg, JOYSTICK_NODE *joystick); void __cdecl Sound_SetMasterVolume(int32_t volume); -void __cdecl invisibility_on(ITEM_INFO *item); -void __cdecl dynamic_light_on(ITEM_INFO *item); +void __cdecl invisibility_on(ITEM *item); +void __cdecl dynamic_light_on(ITEM *item); void __cdecl WinVidClearMinWindowSize(void); void __cdecl WinVidClearMaxWindowSize(void); bool __cdecl Direct3DInit(void); @@ -2506,8 +2506,8 @@ int32_t __cdecl GetRenderHeight(void); int32_t __cdecl GetRenderWidth(void); int32_t __fastcall Math_Cos(int16_t angle); -void __cdecl flip_map_effect(ITEM_INFO *item); -void __cdecl reset_hair(ITEM_INFO *item); +void __cdecl flip_map_effect(ITEM *item); +void __cdecl reset_hair(ITEM *item); void __cdecl Inv_DoInventoryPicture(void); sub_444BB0 sub_4473A0 diff --git a/docs/progress.txt b/docs/progress.txt index a0829f11..db501f03 100644 --- a/docs/progress.txt +++ b/docs/progress.txt @@ -565,7 +565,7 @@ typedef struct __unaligned { // decompiled uint16_t dynamic_light: 1; // 0x0080 uint16_t killed: 1; // 0x0100 uint16_t pad: 7; // 0x0200…0x8000 -} ITEM_INFO; +} ITEM; typedef struct __unaligned { uint32_t timer; @@ -623,7 +623,7 @@ typedef struct __unaligned { // decompiled int8_t floor; uint8_t sky_room; int8_t ceiling; -} SECTOR_INFO; +} SECTOR; typedef struct __unaligned { int16_t lock_angles[4]; @@ -651,7 +651,7 @@ typedef struct __unaligned { // decompiled int16_t frame_num; int16_t counter; int16_t shade; -} FX_INFO; +} FX; typedef struct __unaligned { int16_t zone_num; @@ -852,7 +852,7 @@ typedef enum { typedef struct __unaligned { XYZ_32 pos; int32_t mesh_num; -} BITE_INFO; +} BITE; typedef struct __unaligned { // decompiled int16_t *frame_ptr; @@ -889,12 +889,12 @@ typedef struct __unaligned { // decompiled int16_t y; int16_t z; XYZ_16 vertex[4]; -} DOOR_INFO; +} PORTAL; typedef struct __unaligned { // decompiled int16_t count; - DOOR_INFO door[]; -} DOOR_INFOS; + PORTAL portal[]; +} PORTALS; typedef struct __unaligned { // decompiled int32_t x; @@ -904,7 +904,7 @@ typedef struct __unaligned { // decompiled int16_t intensity2; int32_t falloff1; int32_t falloff2; -} LIGHT_INFO; +} LIGHT; typedef struct __unaligned { // decompiled int32_t x; @@ -914,7 +914,7 @@ typedef struct __unaligned { // decompiled int16_t shade1; int16_t shade2; int16_t static_num; -} MESH_INFO; +} MESH; typedef enum { RF_UNDERWATER = 0x01, @@ -924,17 +924,17 @@ typedef enum { } ROOM_FLAG; typedef struct __unaligned { - SECTOR_INFO *sector; - SECTOR_INFO data; + SECTOR *sector; + SECTOR data; int16_t block; } DOORPOS_DATA; typedef struct __unaligned { // decompiled int16_t *data; - DOOR_INFOS *doors; - SECTOR_INFO *sector; - LIGHT_INFO *light; - MESH_INFO *mesh; + PORTALS *portals; + SECTOR *sector; + LIGHT *light; + MESH *mesh; XYZ_32 pos; int32_t min_floor; int32_t max_ceiling; @@ -958,7 +958,7 @@ typedef struct __unaligned { // decompiled int16_t fx_num; int16_t flipped_room; uint16_t flags; -} ROOM_INFO; +} ROOM; typedef struct __unaligned { // decompiled int16_t head_rotation; @@ -969,8 +969,8 @@ typedef struct __unaligned { // decompiled MOOD_TYPE mood; LOT_INFO lot; XYZ_32 target; - ITEM_INFO *enemy; -} CREATURE_INFO; + ITEM *enemy; +} CREATURE; typedef enum { CAM_CHASE = 0, @@ -1116,14 +1116,14 @@ typedef struct __unaligned { // decompiled void (*initialise)(int16_t item_num); void (*control)(int16_t item_num); void (*floor)( - const ITEM_INFO *item, int32_t x, int32_t y, int32_t z, + const ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); void (*ceiling)( - const ITEM_INFO *item, int32_t x, int32_t y, int32_t z, + const ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); - void (*draw_routine)(const ITEM_INFO *item); + void (*draw_routine)(const ITEM *item); void (*collision)(int16_t - item_num, ITEM_INFO *lara_item, COLL_INFO *coll); + item_num, ITEM *lara_item, COLL_INFO *coll); int16_t anim_idx; int16_t hit_points; @@ -1145,7 +1145,7 @@ typedef struct __unaligned { // decompiled uint16_t pad : 8; }; }; -} OBJECT_INFO; +} OBJECT; typedef struct __unaligned { GAME_VECTOR pos; @@ -1167,8 +1167,8 @@ typedef struct __unaligned { int16_t last; int16_t timer; int16_t speed; - ITEM_INFO *item; - ITEM_INFO *last_item; + ITEM *item; + ITEM *last_item; OBJECT_VECTOR *fixed; int32_t is_lara_mic; XYZ_32 mic_pos; @@ -1229,10 +1229,10 @@ typedef struct __unaligned { // decompiled uint16_t pad: 11; int32_t water_surface_dist; XYZ_32 last_pos; - FX_INFO *spaz_effect; + FX *spaz_effect; uint32_t mesh_effects; int16_t *mesh_ptrs[15]; - ITEM_INFO *target; + ITEM *target; int16_t target_angles[2]; int16_t turn_rate; int16_t move_angle; @@ -1251,7 +1251,7 @@ typedef struct __unaligned { // decompiled AMMO_INFO harpoon_ammo; AMMO_INFO grenade_ammo; AMMO_INFO m16_ammo; - CREATURE_INFO *creature; + CREATURE *creature; } LARA_INFO; typedef enum { @@ -2548,12 +2548,12 @@ typedef enum { GBUF_ANIM_BONES = 8, GBUF_ANIM_FRAMES = 9, GBUF_ROOM_TEXTURES = 10, - GBUF_ROOM_INFOS = 11, + GBUF_ROOMS = 11, GBUF_ROOM_MESH = 12, - GBUF_ROOM_DOOR = 13, + GBUF_ROOM_PORTALS = 13, GBUF_ROOM_FLOOR = 14, GBUF_ROOM_LIGHTS = 15, - GBUF_ROOM_STATIC_MESH_INFOS = 16, + GBUF_ROOM_STATIC_MESHES = 16, GBUF_FLOOR_DATA = 17, GBUF_ITEMS = 18, GBUF_CAMERAS = 19, @@ -2642,7 +2642,7 @@ typedef struct __unaligned { int32_t xv; int32_t yv; int32_t zv; -} DOOR_VBUF; +} PORTAL_VBUF; typedef struct __unaligned { BOUNDS_16 bounds; @@ -2941,42 +2941,42 @@ typedef enum { # game/boat.c 0x0040CB30 0x003C + void __cdecl Boat_Initialise(int16_t item_num); 0x0040CB70 0x0170 + int32_t __cdecl Boat_CheckGeton(int16_t item_num, COLL_INFO *coll); -0x0040CCE0 0x015E + void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x0040CE40 0x00F8 + int32_t __cdecl Boat_TestWaterHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +0x0040CCE0 0x015E + void __cdecl Boat_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x0040CE40 0x00F8 + int32_t __cdecl Boat_TestWaterHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); 0x0040CF40 0x01C1 + void __cdecl Boat_DoShift(int32_t boat_num); -0x0040D110 0x0174 + void __cdecl Boat_DoWakeEffect(ITEM_INFO *boat); +0x0040D110 0x0174 + void __cdecl Boat_DoWakeEffect(ITEM *boat); 0x0040D290 0x004B + int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); 0x0040D2E0 0x04DD + int32_t __cdecl Boat_Dynamics(int16_t boat_num); -0x0040D7C0 0x0187 + int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); -0x0040D950 0x0169 + void __cdecl Boat_Animation(ITEM_INFO *boat, int32_t collide); +0x0040D7C0 0x0187 + int32_t __cdecl Boat_UserControl(ITEM *boat); +0x0040D950 0x0169 + void __cdecl Boat_Animation(ITEM *boat, int32_t collide); 0x0040DAC0 0x062A + void __cdecl Boat_Control(int16_t item_num); 0x0040E0F0 0x00B3 + void __cdecl Gondola_Control(int16_t item_num); # game/box.c 0x0040E1B0 0x002F + void __cdecl Creature_Initialise(int16_t item_num); 0x0040E1E0 0x0047 + int32_t __cdecl Creature_Activate(int16_t item_num); -0x0040E230 0x0242 + void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); +0x0040E230 0x0242 + void __cdecl Creature_AIInfo(ITEM *item, AI_INFO *info); 0x0040E490 0x01F3 + int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); 0x0040E690 0x006F + int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); 0x0040E700 0x0095 + void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); -0x0040E7A0 0x00F2 + int32_t __cdecl Box_StalkBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -0x0040E8A0 0x00A4 + int32_t __cdecl Box_EscapeBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -0x0040E950 0x00A7 + int32_t __cdecl Box_ValidBox(const ITEM_INFO *item, int16_t zone_num, int16_t box_num); -0x0040EA00 0x043F + void __cdecl Creature_Mood(ITEM_INFO *item, AI_INFO *info, int32_t violent); -0x0040EE70 0x0459 + TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM_INFO *item, LOT_INFO *lot); +0x0040E7A0 0x00F2 + int32_t __cdecl Box_StalkBox(const ITEM *item, const ITEM *enemy, int16_t box_num); +0x0040E8A0 0x00A4 + int32_t __cdecl Box_EscapeBox(const ITEM *item, const ITEM *enemy, int16_t box_num); +0x0040E950 0x00A7 + int32_t __cdecl Box_ValidBox(const ITEM *item, int16_t zone_num, int16_t box_num); +0x0040EA00 0x043F + void __cdecl Creature_Mood(ITEM *item, AI_INFO *info, int32_t violent); +0x0040EE70 0x0459 + TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM *item, LOT_INFO *lot); 0x0040F2D0 0x00F8 + int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); 0x0040F3D0 0x008B + int32_t __cdecl Box_BadFloor(int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, LOT_INFO *lot); 0x0040F460 0x00B8 + void __cdecl Creature_Die(int16_t item_num, int32_t explode); 0x0040F520 0x08CC + int32_t __cdecl Creature_Animate(int16_t item_num, int16_t angle, int16_t tilt); -0x0040FDF0 0x00D5 + int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t maximum_turn); -0x0040FED0 0x0035 + void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); -0x0040FF10 0x0049 + void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); -0x0040FF60 0x004E + void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); +0x0040FDF0 0x00D5 + int16_t __cdecl Creature_Turn(ITEM *item, int16_t maximum_turn); +0x0040FED0 0x0035 + void __cdecl Creature_Tilt(ITEM *item, int16_t angle); +0x0040FF10 0x0049 + void __cdecl Creature_Head(ITEM *item, int16_t required); +0x0040FF60 0x004E + void __cdecl Creature_Neck(ITEM *item, int16_t required); 0x0040FFB0 0x00A8 + void __cdecl Creature_Float(int16_t item_num); -0x00410060 0x0050 + void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); -0x004100B0 0x005C + int16_t __cdecl Creature_Effect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); +0x00410060 0x0050 + void __cdecl Creature_Underwater(ITEM *item, int32_t depth); +0x004100B0 0x005C + int16_t __cdecl Creature_Effect(ITEM *item, BITE *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); 0x00410110 0x0131 + int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift); -0x00410250 0x016F + void __cdecl Creature_Kill(ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); +0x00410250 0x016F + void __cdecl Creature_Kill(ITEM *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); 0x004103C0 0x01DB + void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody); # game/camera.c @@ -2984,12 +2984,12 @@ typedef enum { 0x00410650 0x0372 + void __cdecl Camera_Move(const GAME_VECTOR *target, int32_t speed); 0x004109D0 0x00D7 + void __cdecl Camera_Clip(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); 0x00410AB0 0x0154 + void __cdecl Camera_Shift(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); -0x00410C10 0x0050 + const SECTOR_INFO *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00410C10 0x0050 + const SECTOR *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); 0x00410C60 0x0781 + void __cdecl Camera_SmartShift(GAME_VECTOR *target, void (*__cdecl shift)(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom)); -0x004113F0 0x00ED + void __cdecl Camera_Chase(const ITEM_INFO *item); +0x004113F0 0x00ED + void __cdecl Camera_Chase(const ITEM *item); 0x004114E0 0x019E + int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); -0x00411680 0x018E + void __cdecl Camera_Combat(const ITEM_INFO *item); -0x00411810 0x01E2 + void __cdecl Camera_Look(const ITEM_INFO *item); +0x00411680 0x018E + void __cdecl Camera_Combat(const ITEM *item); +0x00411810 0x01E2 + void __cdecl Camera_Look(const ITEM *item); 0x00411A00 0x0099 + void __cdecl Camera_Fixed(void); 0x00411AA0 0x04A9 + void __cdecl Camera_Update(void); @@ -3012,43 +3012,43 @@ typedef enum { 0x00412FE0 0x03D2 + int32_t __cdecl Collide_CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_num, int32_t height); 0x004133D0 0x00C8 + void __cdecl Room_GetNearbyRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); 0x004134A0 0x0055 + void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); -0x00413500 0x0037 + void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); -0x00413540 0x005D + void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); -0x004135A0 0x0099 + int16_t __cdecl Room_GetTiltType(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -0x00413640 0x0195 + void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); -0x004137E0 0x0079 + void __cdecl Lara_TakeHit(ITEM_INFO *lara_item, COLL_INFO *coll); -0x00413860 0x0078 + void __cdecl Creature_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x004138E0 0x0055 + void __cdecl Object_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00413940 0x0077 + void __cdecl Door_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x004139C0 0x0067 + void __cdecl Object_Collision_Trap(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00413A30 0x0306 + void __cdecl Lara_Push(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); -0x00413D40 0x00CB + int32_t __cdecl Item_TestBoundsCollide(const ITEM_INFO *src_item, const ITEM_INFO *dst_item, int32_t radius); -0x00413E10 0x0137 + int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM_INFO *src_item, ITEM_INFO *dst_item); -0x00413F50 0x013B + void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM_INFO *src_item, ITEM_INFO *dst_item); -0x00414090 0x0187 + int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); +0x00413500 0x0037 + void __cdecl Item_ShiftCol(ITEM *item, COLL_INFO *coll); +0x00413540 0x005D + void __cdecl Item_UpdateRoom(ITEM *item, int32_t height); +0x004135A0 0x0099 + int16_t __cdecl Room_GetTiltType(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +0x00413640 0x0195 + void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll); +0x004137E0 0x0079 + void __cdecl Lara_TakeHit(ITEM *lara_item, COLL_INFO *coll); +0x00413860 0x0078 + void __cdecl Creature_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x004138E0 0x0055 + void __cdecl Object_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00413940 0x0077 + void __cdecl Door_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x004139C0 0x0067 + void __cdecl Object_Collision_Trap(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00413A30 0x0306 + void __cdecl Lara_Push(ITEM *item, ITEM *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); +0x00413D40 0x00CB + int32_t __cdecl Item_TestBoundsCollide(const ITEM *src_item, const ITEM *dst_item, int32_t radius); +0x00413E10 0x0137 + int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM *src_item, ITEM *dst_item); +0x00413F50 0x013B + void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM *src_item, ITEM *dst_item); +0x00414090 0x0187 + int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM *item, ITEM *lara_item); 0x00414220 0x016E +R int32_t __cdecl Misc_Move3DPosTo3DPos(PHD_3DPOS *src_pos, const PHD_3DPOS *dest_pos, int32_t velocity, PHD_ANGLE ang_add); # game/control.c 0x00414390 0x0356 + int32_t __cdecl Game_Control(int32_t nframes, int32_t demo_mode); -0x004146F0 0x0338 + void __cdecl Item_Animate(ITEM_INFO *item); -0x00414A60 0x00AB + int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, const ANIM *anim); -0x00414B10 0x005F + void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); -0x00414B70 0x0198 + SECTOR_INFO *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); +0x004146F0 0x0338 + void __cdecl Item_Animate(ITEM *item); +0x00414A60 0x00AB + int32_t __cdecl Item_GetAnimChange(ITEM *item, const ANIM *anim); +0x00414B10 0x005F + void __cdecl Item_Translate(ITEM *item, int32_t x, int32_t y, int32_t z); +0x00414B70 0x0198 + SECTOR *__cdecl Room_GetSector(int32_t x, int32_t y, int32_t z, int16_t *room_num); 0x00414D10 0x0168 + int32_t __cdecl Room_GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num); -0x00414E80 0x0265 + int32_t __cdecl Room_GetHeight(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); +0x00414E80 0x0265 + int32_t __cdecl Room_GetHeight(const SECTOR *sector, int32_t x, int32_t y, int32_t z); 0x00415100 0x00E7 + void __cdecl Camera_RefreshFromTrigger(int16_t type, const int16_t *data); 0x004151F0 0x0690 + void __cdecl Room_TestTriggers(int16_t *data, int32_t heavy); -0x004158D0 0x0055 + int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); -0x00415930 0x023D + int32_t __cdecl Room_GetCeiling(const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -0x00415B90 0x004E + int16_t __cdecl Room_GetDoor(const SECTOR_INFO *sector); +0x004158D0 0x0055 + int32_t __cdecl Item_IsTriggerActive(ITEM *item); +0x00415930 0x023D + int32_t __cdecl Room_GetCeiling(const SECTOR *sector, int32_t x, int32_t y, int32_t z); +0x00415B90 0x004E + int16_t __cdecl Room_GetDoor(const SECTOR *sector); 0x00415BE0 0x00A0 + int32_t __cdecl LOS_Check(const GAME_VECTOR *start, GAME_VECTOR *target); 0x00415C80 0x02EB + int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); 0x00415F70 0x02EC + int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); -0x00416260 0x00DA + int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR_INFO *sector); +0x00416260 0x00DA + int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR *sector); 0x00416340 0x02FE + int32_t __cdecl LOS_CheckSmashable(const GAME_VECTOR *start, GAME_VECTOR *target); 0x00416640 0x00B3 + void __cdecl Room_FlipMap(void); -0x00416700 0x0096 + void __cdecl Room_RemoveFlipItems(ROOM_INFO *r); -0x004167A0 0x005C + void __cdecl Room_AddFlipItems(ROOM_INFO *r); +0x00416700 0x0096 + void __cdecl Room_RemoveFlipItems(ROOM *r); +0x004167A0 0x005C + void __cdecl Room_AddFlipItems(ROOM *r); 0x00416800 0x0024 + void __cdecl Room_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); 0x00416830 0x00DA + void __cdecl Room_TriggerMusicTrackImpl(int16_t value, int16_t flags, int16_t type); @@ -3071,7 +3071,7 @@ typedef enum { 0x004177B0 0x017F -R void __cdecl ControlTwinkle(int16_t fx_num); 0x00417930 0x00D9 -R void __cdecl CreateBartoliLight(int16_t item_num); 0x00417A10 0x00AB -R int16_t __cdecl DragonFire(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -0x00417AC0 0x02ED -R void __cdecl DragonCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00417AC0 0x02ED -R void __cdecl DragonCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); 0x00417DB0 0x00D9 -R void __cdecl DragonBones(int16_t item_num); 0x00417E90 0x0519 -R void __cdecl DragonControl(int16_t back_num); 0x004183E0 0x0114 -R void __cdecl InitialiseBartoli(int16_t item_num); @@ -3083,15 +3083,15 @@ typedef enum { 0x00418990 0x0037 + int32_t __cdecl Game_Draw(void); 0x004189D0 0x02B0 + void __cdecl Room_DrawAllRooms(int16_t current_room); 0x00418C80 0x01C6 + void __cdecl Room_GetBounds(void); -0x00418E50 0x037F + void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM_INFO *parent); -0x004191D0 0x03D2 + void __cdecl Room_Clip(ROOM_INFO *r); +0x00418E50 0x037F + void __cdecl Room_SetBounds(const int16_t *objptr, int32_t room_num, ROOM *parent); +0x004191D0 0x03D2 + void __cdecl Room_Clip(ROOM *r); 0x004195B0 0x00B4 + void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); 0x00419670 0x0218 + void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); 0x00419890 0x0147 + void __cdecl Effect_Draw(int16_t fx_num); -0x004199E0 0x0083 - void __cdecl Object_DrawSpriteItem(ITEM_INFO *item); -0x00419A70 0x0378 - void __cdecl Object_DrawAnimatingItem(ITEM_INFO *item); -0x00419DF0 0x0D02 + void __cdecl Lara_Draw(const ITEM_INFO *item); -0x0041AB20 0x0BC6 + void __cdecl Lara_Draw_I(const ITEM_INFO *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); +0x004199E0 0x0083 - void __cdecl Object_DrawSpriteItem(ITEM *item); +0x00419A70 0x0378 - void __cdecl Object_DrawAnimatingItem(ITEM *item); +0x00419DF0 0x0D02 + void __cdecl Lara_Draw(const ITEM *item); +0x0041AB20 0x0BC6 + void __cdecl Lara_Draw_I(const ITEM *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); 0x0041B710 0x0034 + void __cdecl Matrix_InitInterpolate(int32_t frac, int32_t rate); 0x0041B750 0x0022 + void __cdecl Matrix_Pop_I(void); 0x0041B780 0x0027 + void __cdecl Matrix_Push_I(void); @@ -3107,10 +3107,10 @@ typedef enum { 0x0041BA80 0x01A5 + void __cdecl Matrix_Interpolate(void); 0x0041BC30 0x00FC + void __cdecl Matrix_InterpolateArm(void); 0x0041BD30 0x014B - void __cdecl Gun_DrawFlash(LARA_GUN_TYPE weapon_type, int32_t clip); -0x0041BEA0 0x00E8 - void __cdecl Output_CalculateObjectLighting(const ITEM_INFO *item, const FRAME_INFO *frame); -0x0041BF90 0x0092 + int32_t __cdecl Item_GetFrames(const ITEM_INFO *item, FRAME_INFO *frmptr[], int32_t *rate); -0x0041C030 0x007C + BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); -0x0041C0B0 0x0035 + FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *item); +0x0041BEA0 0x00E8 - void __cdecl Output_CalculateObjectLighting(const ITEM *item, const FRAME_INFO *frame); +0x0041BF90 0x0092 + int32_t __cdecl Item_GetFrames(const ITEM *item, FRAME_INFO *frmptr[], int32_t *rate); +0x0041C030 0x007C + BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM *item); +0x0041C0B0 0x0035 + FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM *item); 0x0041C0F0 0x0048 -R void __cdecl AddDynamicLight(int32_t x, int32_t y, int32_t z, int32_t intensity, int32_t falloff); # game/eel.c @@ -3127,63 +3127,63 @@ typedef enum { 0x0041C7F0 0x0072 -R void __cdecl Richochet(GAME_VECTOR *pos); 0x0041C870 0x0030 -R void __cdecl ControlRichochet1(int16_t fx_num); 0x0041C8A0 0x0064 -R void __cdecl CreateBubble(PHD_3DPOS *pos, int16_t room_num); -0x0041C910 0x0078 -R void __cdecl LaraBubbles(ITEM_INFO *item); +0x0041C910 0x0078 -R void __cdecl LaraBubbles(ITEM *item); 0x0041C990 0x00F3 -R void __cdecl ControlBubble1(int16_t fx_num); -0x0041CA90 0x00C2 -R void __cdecl Splash(ITEM_INFO *item); +0x0041CA90 0x00C2 -R void __cdecl Splash(ITEM *item); 0x0041CB60 0x0071 -R void __cdecl ControlSplash1(int16_t fx_num); 0x0041CBE0 0x00AE -R void __cdecl ControlWaterSprite(int16_t fx_num); 0x0041CC90 0x008C -R void __cdecl ControlSnowSprite(int16_t fx_num); 0x0041CD20 0x00DE -R void __cdecl ControlHotLiquid(int16_t fx_num); 0x0041CE00 0x013D -R void __cdecl WaterFall(int16_t fx_num); -0x0041CF40 0x000B -R void __cdecl finish_level_effect(ITEM_INFO *item); -0x0041CF50 0x0016 -R void __cdecl turn180_effect(ITEM_INFO *item); -0x0041CF70 0x0096 -R void __cdecl floor_shake_effect(ITEM_INFO *item); -0x0041D010 0x0040 -R void __cdecl lara_normal_effect(ITEM_INFO *item); -0x0041D050 0x001C -R void __cdecl BoilerFX(ITEM_INFO *item); -0x0041D070 0x008F -R void __cdecl FloodFX(ITEM_INFO *item); -0x0041D100 0x0023 -R void __cdecl RubbleFX(ITEM_INFO *item); -0x0041D130 0x002C -R void __cdecl ChandelierFX(ITEM_INFO *item); -0x0041D160 0x0023 -R void __cdecl ExplosionFX(ITEM_INFO *item); -0x0041D190 0x001C -R void __cdecl PistonFX(ITEM_INFO *item); -0x0041D1B0 0x001C -R void __cdecl CurtainFX(ITEM_INFO *item); -0x0041D1D0 0x001C -R void __cdecl StatueFX(ITEM_INFO *item); -0x0041D1F0 0x001C -R void __cdecl SetChangeFX(ITEM_INFO *item); +0x0041CF40 0x000B -R void __cdecl finish_level_effect(ITEM *item); +0x0041CF50 0x0016 -R void __cdecl turn180_effect(ITEM *item); +0x0041CF70 0x0096 -R void __cdecl floor_shake_effect(ITEM *item); +0x0041D010 0x0040 -R void __cdecl lara_normal_effect(ITEM *item); +0x0041D050 0x001C -R void __cdecl BoilerFX(ITEM *item); +0x0041D070 0x008F -R void __cdecl FloodFX(ITEM *item); +0x0041D100 0x0023 -R void __cdecl RubbleFX(ITEM *item); +0x0041D130 0x002C -R void __cdecl ChandelierFX(ITEM *item); +0x0041D160 0x0023 -R void __cdecl ExplosionFX(ITEM *item); +0x0041D190 0x001C -R void __cdecl PistonFX(ITEM *item); +0x0041D1B0 0x001C -R void __cdecl CurtainFX(ITEM *item); +0x0041D1D0 0x001C -R void __cdecl StatueFX(ITEM *item); +0x0041D1F0 0x001C -R void __cdecl SetChangeFX(ITEM *item); 0x0041D210 0x003F -R void __cdecl ControlDingDong(int16_t item_num); 0x0041D250 0x0037 -R void __cdecl ControlLaraAlarm(int16_t item_num); 0x0041D290 0x0067 -R void __cdecl ControlAlarmSound(int16_t item_num); 0x0041D300 0x005D -R void __cdecl ControlBirdTweeter(int16_t item_num); -0x0041D360 0x0059 -R void __cdecl DoChimeSound(ITEM_INFO *item); +0x0041D360 0x0059 -R void __cdecl DoChimeSound(ITEM *item); 0x0041D3C0 0x0068 -R void __cdecl ControlClockChimes(int16_t item_num); -0x0041D430 0x0128 -R void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x0041D430 0x0128 -R void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); 0x0041D560 0x00F0 -R void __cdecl SphereOfDoom(int16_t item_num); -0x0041D650 0x012D -R void __cdecl DrawSphereOfDoom(ITEM_INFO *item); -0x0041D780 0x000A -R void __cdecl lara_hands_free(ITEM_INFO *item); -0x0041D790 0x0005 -R void __cdecl flip_map_effect(ITEM_INFO *item); -0x0041D7A0 0x0043 -R void __cdecl draw_right_gun(ITEM_INFO *item); -0x0041D7F0 0x0043 -R void __cdecl draw_left_gun(ITEM_INFO *item); -0x0041D840 0x0063 -R void __cdecl swap_meshes_with_meshswap1(ITEM_INFO *item); -0x0041D8B0 0x0063 -R void __cdecl swap_meshes_with_meshswap2(ITEM_INFO *item); -0x0041D920 0x009A -R void __cdecl swap_meshes_with_meshswap3(ITEM_INFO *item); -0x0041D9C0 0x0009 -R void __cdecl invisibility_on(ITEM_INFO *item); -0x0041D9D0 0x0016 -R void __cdecl invisibility_off(ITEM_INFO *item); -0x0041D9F0 0x0009 -R void __cdecl dynamic_light_on(ITEM_INFO *item); -0x0041DA00 0x000B -R void __cdecl dynamic_light_off(ITEM_INFO *item); -0x0041DA10 0x0005 -R void __cdecl reset_hair(ITEM_INFO *item); -0x0041DA20 0x0024 -R void __cdecl AssaultStart(ITEM_INFO *item); -0x0041DA50 0x001F -R void __cdecl AssaultStop(ITEM_INFO *item); -0x0041DA70 0x0017 -R void __cdecl AssaultReset(ITEM_INFO *item); -0x0041DA90 0x00B2 -R void __cdecl AssaultFinished(ITEM_INFO *item); +0x0041D650 0x012D -R void __cdecl DrawSphereOfDoom(ITEM *item); +0x0041D780 0x000A -R void __cdecl lara_hands_free(ITEM *item); +0x0041D790 0x0005 -R void __cdecl flip_map_effect(ITEM *item); +0x0041D7A0 0x0043 -R void __cdecl draw_right_gun(ITEM *item); +0x0041D7F0 0x0043 -R void __cdecl draw_left_gun(ITEM *item); +0x0041D840 0x0063 -R void __cdecl swap_meshes_with_meshswap1(ITEM *item); +0x0041D8B0 0x0063 -R void __cdecl swap_meshes_with_meshswap2(ITEM *item); +0x0041D920 0x009A -R void __cdecl swap_meshes_with_meshswap3(ITEM *item); +0x0041D9C0 0x0009 -R void __cdecl invisibility_on(ITEM *item); +0x0041D9D0 0x0016 -R void __cdecl invisibility_off(ITEM *item); +0x0041D9F0 0x0009 -R void __cdecl dynamic_light_on(ITEM *item); +0x0041DA00 0x000B -R void __cdecl dynamic_light_off(ITEM *item); +0x0041DA10 0x0005 -R void __cdecl reset_hair(ITEM *item); +0x0041DA20 0x0024 -R void __cdecl AssaultStart(ITEM *item); +0x0041DA50 0x001F -R void __cdecl AssaultStop(ITEM *item); +0x0041DA70 0x0017 -R void __cdecl AssaultReset(ITEM *item); +0x0041DA90 0x00B2 -R void __cdecl AssaultFinished(ITEM *item); # game/enemies.c 0x0041DB50 0x0076 -R int16_t __cdecl Knife(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); 0x0041DBD0 0x040B -R void __cdecl Cult2Control(int16_t item_num); 0x0041E000 0x04A1 -R void __cdecl MonkControl(int16_t item_num); 0x0041E4D0 0x05BD -R void __cdecl Worker3Control(int16_t item_num); -0x0041EAE0 0x03F7 -R void __cdecl DrawXianLord(ITEM_INFO *item); -0x0041EEE0 0x00A8 -R void __cdecl XianDamage(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage); +0x0041EAE0 0x03F7 -R void __cdecl DrawXianLord(ITEM *item); +0x0041EEE0 0x00A8 -R void __cdecl XianDamage(ITEM *item, CREATURE *xian, int32_t damage); 0x0041EF90 0x0058 -R void __cdecl InitialiseXianLord(int16_t item_num); 0x0041EFF0 0x0590 -R void __cdecl XianLordControl(int16_t item_num); -0x0041F5D0 0x0098 -R void __cdecl WarriorSparkleTrail(ITEM_INFO *item); +0x0041F5D0 0x0098 -R void __cdecl WarriorSparkleTrail(ITEM *item); 0x0041F670 0x03BA -R void __cdecl WarriorControl(int16_t item_num); # game/gameflow.c @@ -3285,115 +3285,115 @@ typedef enum { 0x00427520 0x0058 + void __cdecl Item_ClearKilled(void); # game/lara.c -0x00427580 0x0195 + void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); +0x00427580 0x0195 + void __cdecl Lara_HandleAboveWater(ITEM *item, COLL_INFO *coll); 0x00427720 0x0066 + void __cdecl Lara_LookUpDown(void); 0x00427790 0x0072 + void __cdecl Lara_LookLeftRight(void); 0x00427810 0x0089 + void __cdecl Lara_ResetLook(void); -0x004278A0 0x008B + void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); -0x00427930 0x0143 + void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); -0x00427A80 0x0148 + void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); -0x00427BD0 0x00D3 + void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -0x00427CB0 0x0057 + void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); -0x00427D10 0x008A + void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -0x00427DA0 0x0089 + void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00427E30 0x0014 + void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); -0x00427E50 0x0040 + void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); -0x00427E90 0x0058 + void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); -0x00427EF0 0x001C + void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); -0x00427F10 0x000A + void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); -0x00427F20 0x010C + void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); -0x00428030 0x0084 + void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); -0x004280C0 0x000B + void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); -0x004280D0 0x004B + void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); -0x00428120 0x007C + void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); -0x004281A0 0x007C + void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00428220 0x002B + void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); -0x00428250 0x004A + void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); -0x004282A0 0x0033 + void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); -0x004282E0 0x0033 + void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -0x00428320 0x0013 + void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); -0x00428340 0x002C + void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); -0x00428370 0x0035 + void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -0x004283B0 0x0035 + void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); -0x004283F0 0x0018 + void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -0x00428410 0x0030 + void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); -0x00428440 0x0027 + void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); -0x00428470 0x0030 + void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); -0x004284A0 0x0058 + void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); -0x00428500 0x0039 + void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); -0x00428540 0x0030 + void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); -0x00428570 0x001D + void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); -0x00428590 0x002F + void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -0x004285C0 0x0054 + void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); -0x00428620 0x0015 + void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); -0x00428640 0x00CA + void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); -0x00428710 0x0096 + void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); -0x004287B0 0x004C + void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); -0x00428800 0x0047 + void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); -0x00428850 0x0091 + void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); -0x004288F0 0x0013 + void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); -0x00428910 0x001D + void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); -0x00428930 0x0051 + void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); -0x00428990 0x00BC + void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); -0x00428A50 0x004D + void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); -0x00428AA0 0x00A5 + void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); -0x00428B50 0x00A3 + void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); -0x00428C00 0x0051 + int32_t __cdecl Lara_Fallen(ITEM_INFO *item, COLL_INFO *coll); -0x00428C60 0x009B + void __cdecl Lara_CollideStop(ITEM_INFO *item, COLL_INFO *coll); -0x00428D20 0x0191 + void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); -0x00428EC0 0x0176 + void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); -0x00429040 0x0081 + void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); -0x004290D0 0x00D7 + void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -0x004291B0 0x00B3 + void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); -0x00429270 0x0095 + void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -0x00429310 0x0013 + void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00429330 0x0068 + void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); -0x004293A0 0x0099 + void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); -0x00429440 0x0127 + void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); -0x00429570 0x0090 + void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); -0x00429600 0x0059 + void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); -0x00429660 0x0013 + void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); -0x00429680 0x0096 + void __cdecl Lara_Col_Compress( ITEM_INFO *item, COLL_INFO *coll ); -0x00429720 0x00FB + void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); -0x00429820 0x00BE + void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); -0x004298E0 0x0013 + void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00429900 0x001E + void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); -0x00429920 0x0023 + void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); -0x00429950 0x0023 + void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); -0x00429980 0x0023 + void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -0x004299B0 0x011B + void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); -0x00429AD0 0x0083 + void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); -0x00429B60 0x0033 + void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00429BA0 0x0033 + void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); -0x00429BE0 0x0023 + void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -0x00429C10 0x0013 + void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); -0x00429C30 0x0081 + void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); -0x00429CC0 0x00B3 + void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); -0x00429D80 0x0069 + void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -0x00429DF0 0x0079 + void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); -0x00429E70 0x0162 + void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); -0x00429FE0 0x0036 + void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); -0x0042A020 0x0074 + void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); -0x0042A0A0 0x0032 + void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); -0x0042A0E0 0x00E2 + void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); -0x0042A1D0 0x0067 + int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); -0x0042A240 0x007F + int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); -0x0042A2C0 0x0136 + void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -0x0042A440 0x00AB + void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -0x0042A530 0x00E1 + int32_t __cdecl Lara_TestWall(ITEM_INFO *item, int32_t front, int32_t right, int32_t down); -0x0042A640 0x00F5 + int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); -0x0042A750 0x00BE + int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0x0042A810 0x033E + void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); -0x0042AB70 0x00AD + int32_t __cdecl Lara_TestEdgeCatch(ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); -0x0042AC20 0x016D + int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); -0x0042AD90 0x019E + int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); -0x0042AF30 0x00B1 + int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); -0x0042AFF0 0x02E7 + int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); -0x0042B2E0 0x0130 + int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); -0x0042B410 0x0075 + int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, PHD_ANGLE ang, int32_t dist); -0x0042B490 0x00BB + int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); +0x004278A0 0x008B + void __cdecl Lara_State_Walk(ITEM *item, COLL_INFO *coll); +0x00427930 0x0143 + void __cdecl Lara_State_Run(ITEM *item, COLL_INFO *coll); +0x00427A80 0x0148 + void __cdecl Lara_State_Stop(ITEM *item, COLL_INFO *coll); +0x00427BD0 0x00D3 + void __cdecl Lara_State_ForwardJump(ITEM *item, COLL_INFO *coll); +0x00427CB0 0x0057 + void __cdecl Lara_State_FastBack(ITEM *item, COLL_INFO *coll); +0x00427D10 0x008A + void __cdecl Lara_State_TurnRight(ITEM *item, COLL_INFO *coll); +0x00427DA0 0x0089 + void __cdecl Lara_State_TurnLeft(ITEM *item, COLL_INFO *coll); +0x00427E30 0x0014 + void __cdecl Lara_State_Death(ITEM *item, COLL_INFO *coll); +0x00427E50 0x0040 + void __cdecl Lara_State_FastFall(ITEM *item, COLL_INFO *coll); +0x00427E90 0x0058 + void __cdecl Lara_State_Hang(ITEM *item, COLL_INFO *coll); +0x00427EF0 0x001C + void __cdecl Lara_State_Reach(ITEM *item, COLL_INFO *coll); +0x00427F10 0x000A + void __cdecl Lara_State_Splat(ITEM *item, COLL_INFO *coll); +0x00427F20 0x010C + void __cdecl Lara_State_Compress(ITEM *item, COLL_INFO *coll); +0x00428030 0x0084 + void __cdecl Lara_State_Back(ITEM *item, COLL_INFO *coll); +0x004280C0 0x000B + void __cdecl Lara_State_Null(ITEM *item, COLL_INFO *coll); +0x004280D0 0x004B + void __cdecl Lara_State_FastTurn(ITEM *item, COLL_INFO *coll); +0x00428120 0x007C + void __cdecl Lara_State_StepRight(ITEM *item, COLL_INFO *coll); +0x004281A0 0x007C + void __cdecl Lara_State_StepLeft(ITEM *item, COLL_INFO *coll); +0x00428220 0x002B + void __cdecl Lara_State_Slide(ITEM *item, COLL_INFO *coll); +0x00428250 0x004A + void __cdecl Lara_State_BackJump(ITEM *item, COLL_INFO *coll); +0x004282A0 0x0033 + void __cdecl Lara_State_RightJump(ITEM *item, COLL_INFO *coll); +0x004282E0 0x0033 + void __cdecl Lara_State_LeftJump(ITEM *item, COLL_INFO *coll); +0x00428320 0x0013 + void __cdecl Lara_State_UpJump(ITEM *item, COLL_INFO *coll); +0x00428340 0x002C + void __cdecl Lara_State_Fallback(ITEM *item, COLL_INFO *coll); +0x00428370 0x0035 + void __cdecl Lara_State_HangLeft(ITEM *item, COLL_INFO *coll); +0x004283B0 0x0035 + void __cdecl Lara_State_HangRight(ITEM *item, COLL_INFO *coll); +0x004283F0 0x0018 + void __cdecl Lara_State_SlideBack(ITEM *item, COLL_INFO *coll); +0x00428410 0x0030 + void __cdecl Lara_State_PushBlock(ITEM *item, COLL_INFO *coll); +0x00428440 0x0027 + void __cdecl Lara_State_PPReady(ITEM *item, COLL_INFO *coll); +0x00428470 0x0030 + void __cdecl Lara_State_Pickup(ITEM *item, COLL_INFO *coll); +0x004284A0 0x0058 + void __cdecl Lara_State_PickupFlare(ITEM *item, COLL_INFO *coll); +0x00428500 0x0039 + void __cdecl Lara_State_SwitchOn(ITEM *item, COLL_INFO *coll); +0x00428540 0x0030 + void __cdecl Lara_State_UseKey(ITEM *item, COLL_INFO *coll); +0x00428570 0x001D + void __cdecl Lara_State_Special(ITEM *item, COLL_INFO *coll); +0x00428590 0x002F + void __cdecl Lara_State_SwanDive(ITEM *item, COLL_INFO *coll); +0x004285C0 0x0054 + void __cdecl Lara_State_FastDive(ITEM *item, COLL_INFO *coll); +0x00428620 0x0015 + void __cdecl Lara_State_WaterOut(ITEM *item, COLL_INFO *coll); +0x00428640 0x00CA + void __cdecl Lara_State_Wade(ITEM *item, COLL_INFO *coll); +0x00428710 0x0096 + void __cdecl Lara_State_DeathSlide(ITEM *item, COLL_INFO *coll); +0x004287B0 0x004C + void __cdecl Lara_State_Extra_Breath(ITEM *item, COLL_INFO *coll); +0x00428800 0x0047 + void __cdecl Lara_State_Extra_YetiKill(ITEM *item, COLL_INFO *coll); +0x00428850 0x0091 + void __cdecl Lara_State_Extra_SharkKill(ITEM *item, COLL_INFO *coll); +0x004288F0 0x0013 + void __cdecl Lara_State_Extra_Airlock(ITEM *item, COLL_INFO *coll); +0x00428910 0x001D + void __cdecl Lara_State_Extra_GongBong(ITEM *item, COLL_INFO *coll); +0x00428930 0x0051 + void __cdecl Lara_State_Extra_DinoKill(ITEM *item, COLL_INFO *coll); +0x00428990 0x00BC + void __cdecl Lara_State_Extra_PullDagger(ITEM *item, COLL_INFO *coll); +0x00428A50 0x004D + void __cdecl Lara_State_Extra_StartAnim(ITEM *item, COLL_INFO *coll); +0x00428AA0 0x00A5 + void __cdecl Lara_State_Extra_StartHouse(ITEM *item, COLL_INFO *coll); +0x00428B50 0x00A3 + void __cdecl Lara_State_Extra_FinalAnim(ITEM *item, COLL_INFO *coll); +0x00428C00 0x0051 + int32_t __cdecl Lara_Fallen(ITEM *item, COLL_INFO *coll); +0x00428C60 0x009B + void __cdecl Lara_CollideStop(ITEM *item, COLL_INFO *coll); +0x00428D20 0x0191 + void __cdecl Lara_Col_Walk(ITEM *item, COLL_INFO *coll); +0x00428EC0 0x0176 + void __cdecl Lara_Col_Run(ITEM *item, COLL_INFO *coll); +0x00429040 0x0081 + void __cdecl Lara_Col_Stop(ITEM *item, COLL_INFO *coll); +0x004290D0 0x00D7 + void __cdecl Lara_Col_ForwardJump(ITEM *item, COLL_INFO *coll); +0x004291B0 0x00B3 + void __cdecl Lara_Col_FastBack(ITEM *item, COLL_INFO *coll); +0x00429270 0x0095 + void __cdecl Lara_Col_TurnRight(ITEM *item, COLL_INFO *coll); +0x00429310 0x0013 + void __cdecl Lara_Col_TurnLeft(ITEM *item, COLL_INFO *coll); +0x00429330 0x0068 + void __cdecl Lara_Col_Death(ITEM *item, COLL_INFO *coll); +0x004293A0 0x0099 + void __cdecl Lara_Col_FastFall(ITEM *item, COLL_INFO *coll); +0x00429440 0x0127 + void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll); +0x00429570 0x0090 + void __cdecl Lara_Col_Reach(ITEM *item, COLL_INFO *coll); +0x00429600 0x0059 + void __cdecl Lara_Col_Splat(ITEM *item, COLL_INFO *coll); +0x00429660 0x0013 + void __cdecl Lara_Col_Land(ITEM *item, COLL_INFO *coll); +0x00429680 0x0096 + void __cdecl Lara_Col_Compress( ITEM *item, COLL_INFO *coll ); +0x00429720 0x00FB + void __cdecl Lara_Col_Back(ITEM *item, COLL_INFO *coll); +0x00429820 0x00BE + void __cdecl Lara_Col_StepRight(ITEM *item, COLL_INFO *coll); +0x004298E0 0x0013 + void __cdecl Lara_Col_StepLeft(ITEM *item, COLL_INFO *coll); +0x00429900 0x001E + void __cdecl Lara_Col_Slide(ITEM *item, COLL_INFO *coll); +0x00429920 0x0023 + void __cdecl Lara_Col_BackJump(ITEM *item, COLL_INFO *coll); +0x00429950 0x0023 + void __cdecl Lara_Col_RightJump(ITEM *item, COLL_INFO *coll); +0x00429980 0x0023 + void __cdecl Lara_Col_LeftJump(ITEM *item, COLL_INFO *coll); +0x004299B0 0x011B + void __cdecl Lara_Col_UpJump(ITEM *item, COLL_INFO *coll); +0x00429AD0 0x0083 + void __cdecl Lara_Col_Fallback(ITEM *item, COLL_INFO *coll); +0x00429B60 0x0033 + void __cdecl Lara_Col_HangLeft(ITEM *item, COLL_INFO *coll); +0x00429BA0 0x0033 + void __cdecl Lara_Col_HangRight(ITEM *item, COLL_INFO *coll); +0x00429BE0 0x0023 + void __cdecl Lara_Col_SlideBack(ITEM *item, COLL_INFO *coll); +0x00429C10 0x0013 + void __cdecl Lara_Col_Null(ITEM *item, COLL_INFO *coll); +0x00429C30 0x0081 + void __cdecl Lara_Col_Roll(ITEM *item, COLL_INFO *coll); +0x00429CC0 0x00B3 + void __cdecl Lara_Col_Roll2(ITEM *item, COLL_INFO *coll); +0x00429D80 0x0069 + void __cdecl Lara_Col_SwanDive(ITEM *item, COLL_INFO *coll); +0x00429DF0 0x0079 + void __cdecl Lara_Col_FastDive(ITEM *item, COLL_INFO *coll); +0x00429E70 0x0162 + void __cdecl Lara_Col_Wade(ITEM *item, COLL_INFO *coll); +0x00429FE0 0x0036 + void __cdecl Lara_Col_Default(ITEM *item, COLL_INFO *coll); +0x0042A020 0x0074 + void __cdecl Lara_Col_Jumper(ITEM *item, COLL_INFO *coll); +0x0042A0A0 0x0032 + void __cdecl Lara_GetCollisionInfo(ITEM *item, COLL_INFO *coll); +0x0042A0E0 0x00E2 + void __cdecl Lara_SlideSlope(ITEM *item, COLL_INFO *coll); +0x0042A1D0 0x0067 + int32_t __cdecl Lara_HitCeiling(ITEM *item, COLL_INFO *coll); +0x0042A240 0x007F + int32_t __cdecl Lara_DeflectEdge(ITEM *item, COLL_INFO *coll); +0x0042A2C0 0x0136 + void __cdecl Lara_DeflectEdgeJump(ITEM *item, COLL_INFO *coll); +0x0042A440 0x00AB + void __cdecl Lara_SlideEdgeJump(ITEM *item, COLL_INFO *coll); +0x0042A530 0x00E1 + int32_t __cdecl Lara_TestWall(ITEM *item, int32_t front, int32_t right, int32_t down); +0x0042A640 0x00F5 + int32_t __cdecl Lara_TestHangOnClimbWall(ITEM *item, COLL_INFO *coll); +0x0042A750 0x00BE + int32_t __cdecl Lara_TestClimbStance(ITEM *item, COLL_INFO *coll); +0x0042A810 0x033E + void __cdecl Lara_HangTest(ITEM *item, COLL_INFO *coll); +0x0042AB70 0x00AD + int32_t __cdecl Lara_TestEdgeCatch(ITEM *item, COLL_INFO *coll, int32_t *edge); +0x0042AC20 0x016D + int32_t __cdecl Lara_TestHangJumpUp(ITEM *item, COLL_INFO *coll); +0x0042AD90 0x019E + int32_t __cdecl Lara_TestHangJump(ITEM *item, COLL_INFO *coll); +0x0042AF30 0x00B1 + int32_t __cdecl Lara_TestHangSwingIn(ITEM *item, PHD_ANGLE angle); +0x0042AFF0 0x02E7 + int32_t __cdecl Lara_TestVault(ITEM *item, COLL_INFO *coll); +0x0042B2E0 0x0130 + int32_t __cdecl Lara_TestSlide(ITEM *item, COLL_INFO *coll); +0x0042B410 0x0075 + int16_t __cdecl Lara_FloorFront(ITEM *item, PHD_ANGLE ang, int32_t dist); +0x0042B490 0x00BB + int32_t __cdecl Lara_LandedBad(ITEM *item, COLL_INFO *coll); 0x0042B550 0x038F + void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint); -0x0042B8E0 0x031A + void __cdecl Lara_GetJointAbsPosition_I(ITEM_INFO *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); +0x0042B8E0 0x031A + void __cdecl Lara_GetJointAbsPosition_I(ITEM *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); # game/lara1gun.c 0x0042BC00 0x0033 + void __cdecl Gun_Rifle_DrawMeshes(LARA_GUN_TYPE weapon_type); @@ -3422,22 +3422,22 @@ typedef enum { 0x0042D520 0x0330 + void __cdecl Gun_Pistols_Animate(LARA_GUN_TYPE weapon_type); # game/laraclimb.c -0x0042D850 0x0035 + void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -0x0042D890 0x0035 + void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -0x0042D8D0 0x0075 + void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0x0042D950 0x0014 + void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); -0x0042D970 0x001E + void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); -0x0042D990 0x0014 + void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -0x0042D9B0 0x005D + void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -0x0042DA10 0x0059 + void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -0x0042DA70 0x020D + void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0x0042DC80 0x014D + void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); -0x0042DDD0 0x019C + void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -0x0042DF70 0x00AA + int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); +0x0042D850 0x0035 + void __cdecl Lara_State_ClimbLeft(ITEM *item, COLL_INFO *coll); +0x0042D890 0x0035 + void __cdecl Lara_State_ClimbRight(ITEM *item, COLL_INFO *coll); +0x0042D8D0 0x0075 + void __cdecl Lara_State_ClimbStance(ITEM *item, COLL_INFO *coll); +0x0042D950 0x0014 + void __cdecl Lara_State_Climbing(ITEM *item, COLL_INFO *coll); +0x0042D970 0x001E + void __cdecl Lara_State_ClimbEnd(ITEM *item, COLL_INFO *coll); +0x0042D990 0x0014 + void __cdecl Lara_State_ClimbDown(ITEM *item, COLL_INFO *coll); +0x0042D9B0 0x005D + void __cdecl Lara_Col_ClimbLeft(ITEM *item, COLL_INFO *coll); +0x0042DA10 0x0059 + void __cdecl Lara_Col_ClimbRight(ITEM *item, COLL_INFO *coll); +0x0042DA70 0x020D + void __cdecl Lara_Col_ClimbStance(ITEM *item, COLL_INFO *coll); +0x0042DC80 0x014D + void __cdecl Lara_Col_Climbing(ITEM *item, COLL_INFO *coll); +0x0042DDD0 0x019C + void __cdecl Lara_Col_ClimbDown(ITEM *item, COLL_INFO *coll); +0x0042DF70 0x00AA + int32_t __cdecl Lara_CheckForLetGo(ITEM *item, COLL_INFO *coll); 0x0042E020 0x0263 + int32_t __cdecl Lara_TestClimb(int32_t x, int32_t y, int32_t z, int32_t xfront, int32_t zfront, int32_t item_height, int16_t item_room, int32_t *shift); -0x0042E290 0x00BC + int32_t __cdecl Lara_TestClimbPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); -0x0042E360 0x00EF + void __cdecl Lara_DoClimbLeftRight(ITEM_INFO *item, COLL_INFO *coll, int32_t result, int32_t shift); -0x0042E450 0x0235 + int32_t __cdecl Lara_TestClimbUpPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); +0x0042E290 0x00BC + int32_t __cdecl Lara_TestClimbPos(ITEM *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); +0x0042E360 0x00EF + void __cdecl Lara_DoClimbLeftRight(ITEM *item, COLL_INFO *coll, int32_t result, int32_t shift); +0x0042E450 0x0235 + int32_t __cdecl Lara_TestClimbUpPos(ITEM *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); # game/larafire.c 0x0042E6A0 0x04E8 + void __cdecl Gun_Control(void); @@ -3445,17 +3445,17 @@ typedef enum { 0x0042EC50 0x011C + void __cdecl Gun_InitialiseNewWeapon(void); 0x0042ED90 0x0194 + void __cdecl Gun_TargetInfo(const WEAPON_INFO *winfo); 0x0042EF30 0x021C + void __cdecl Gun_GetNewTarget(WEAPON_INFO *winfo); -0x0042F150 0x00AA + void __cdecl Gun_FindTargetPoint(const ITEM_INFO *item, GAME_VECTOR *target); +0x0042F150 0x00AA + void __cdecl Gun_FindTargetPoint(const ITEM *item, GAME_VECTOR *target); 0x0042F200 0x00C1 + void __cdecl Gun_AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm); -0x0042F2D0 0x0360 + int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM_INFO *target, const ITEM_INFO *src, const PHD_ANGLE *angles); -0x0042F640 0x0096 + void __cdecl Gun_HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage); +0x0042F2D0 0x0360 + int32_t __cdecl Gun_FireWeapon(LARA_GUN_TYPE weapon_type, ITEM *target, const ITEM *src, const PHD_ANGLE *angles); +0x0042F640 0x0096 + void __cdecl Gun_HitTarget(ITEM *item, GAME_VECTOR *hitpos, int32_t damage); 0x0042F6E0 0x0051 + void __cdecl Gun_SmashItem(int16_t item_num, LARA_GUN_TYPE weapon_type); 0x0042F740 0x003B + GAME_OBJECT_ID Gun_GetWeaponAnim(const LARA_GUN_TYPE gun_type); # game/laraflare.c 0x0042F7A0 0x009D - int32_t __cdecl Flare_DoLight(XYZ_32 *pos, int32_t flare_age); 0x0042F840 0x00D3 - void __cdecl Flare_DoInHand(int32_t flare_age); -0x0042F920 0x00F8 - void __cdecl Flare_DrawInAir(ITEM_INFO *item); +0x0042F920 0x00F8 - void __cdecl Flare_DrawInAir(ITEM *item); 0x0042FA20 0x01D7 - void __cdecl Flare_Create(int32_t thrown); 0x0042FC00 0x004B - void __cdecl Flare_SetArm(int32_t frame); 0x0042FC50 0x0169 - void __cdecl Flare_Draw(void); @@ -3467,7 +3467,7 @@ typedef enum { # game/laramisc.c 0x004302E0 0x0668 + void __cdecl Lara_Control(int16_t item_num); -0x00430970 0x02CD + void __cdecl Lara_Animate(ITEM_INFO *item); +0x00430970 0x02CD + void __cdecl Lara_Animate(ITEM *item); 0x00430C70 0x013F + void __cdecl Lara_UseItem(GAME_OBJECT_ID object_id); 0x00430E30 0x00BA + void __cdecl Lara_CheatGetStuff(void); 0x00430EF0 0x001B + void __cdecl Lara_ControlExtra(int16_t item_num); @@ -3477,35 +3477,35 @@ typedef enum { 0x00431570 0x00FA + void __cdecl Lara_InitialiseMeshes(int32_t level_num); # game/larasurf.c -0x00431670 0x0158 + void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); -0x004317D0 0x0070 + void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -0x00431840 0x005E + void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -0x004318A0 0x0060 + void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00431900 0x0060 + void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -0x00431960 0x00EB + void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -0x00431A50 0x0032 + void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -0x00431A90 0x0023 + void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -0x00431AC0 0x0023 + void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -0x00431AF0 0x0023 + void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -0x00431B20 0x001E + void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -0x00431B40 0x00F3 + void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); -0x00431C40 0x00E7 + int32_t __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, COLL_INFO *coll); -0x00431D30 0x021C + int32_t __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll); +0x00431670 0x0158 + void __cdecl Lara_HandleSurface(ITEM *item, COLL_INFO *coll); +0x004317D0 0x0070 + void __cdecl Lara_State_SurfSwim(ITEM *item, COLL_INFO *coll); +0x00431840 0x005E + void __cdecl Lara_State_SurfBack(ITEM *item, COLL_INFO *coll); +0x004318A0 0x0060 + void __cdecl Lara_State_SurfLeft(ITEM *item, COLL_INFO *coll); +0x00431900 0x0060 + void __cdecl Lara_State_SurfRight(ITEM *item, COLL_INFO *coll); +0x00431960 0x00EB + void __cdecl Lara_State_SurfTread(ITEM *item, COLL_INFO *coll); +0x00431A50 0x0032 + void __cdecl Lara_Col_SurfSwim(ITEM *item, COLL_INFO *coll); +0x00431A90 0x0023 + void __cdecl Lara_Col_SurfBack(ITEM *item, COLL_INFO *coll); +0x00431AC0 0x0023 + void __cdecl Lara_Col_SurfLeft(ITEM *item, COLL_INFO *coll); +0x00431AF0 0x0023 + void __cdecl Lara_Col_SurfRight(ITEM *item, COLL_INFO *coll); +0x00431B20 0x001E + void __cdecl Lara_Col_SurfTread(ITEM *item, COLL_INFO *coll); +0x00431B40 0x00F3 + void __cdecl Lara_SurfaceCollision(ITEM *item, COLL_INFO *coll); +0x00431C40 0x00E7 + int32_t __cdecl Lara_TestWaterStepOut(ITEM *item, COLL_INFO *coll); +0x00431D30 0x021C + int32_t __cdecl Lara_TestWaterClimbOut(ITEM *item, COLL_INFO *coll); # game/laraswim.c -0x00431F50 0x0223 + void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); -0x00432180 0x0086 + void __cdecl Lara_SwimTurn(ITEM_INFO *item); -0x00432210 0x006B + void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); -0x00432280 0x0076 + void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); -0x00432300 0x0085 + void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); -0x00432390 0x0014 + void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); -0x004323B0 0x0053 + void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); -0x00432410 0x000B + void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); -0x00432420 0x0013 + void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); -0x00432440 0x005B + void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +0x00431F50 0x0223 + void __cdecl Lara_HandleUnderwater(ITEM *item, COLL_INFO *coll); +0x00432180 0x0086 + void __cdecl Lara_SwimTurn(ITEM *item); +0x00432210 0x006B + void __cdecl Lara_State_Swim(ITEM *item, COLL_INFO *coll); +0x00432280 0x0076 + void __cdecl Lara_State_Glide(ITEM *item, COLL_INFO *coll); +0x00432300 0x0085 + void __cdecl Lara_State_Tread(ITEM *item, COLL_INFO *coll); +0x00432390 0x0014 + void __cdecl Lara_State_Dive(ITEM *item, COLL_INFO *coll); +0x004323B0 0x0053 + void __cdecl Lara_State_UWDeath(ITEM *item, COLL_INFO *coll); +0x00432410 0x000B + void __cdecl Lara_State_UWTwist(ITEM *item, COLL_INFO *coll); +0x00432420 0x0013 + void __cdecl Lara_Col_Swim(ITEM *item, COLL_INFO *coll); +0x00432440 0x005B + void __cdecl Lara_Col_UWDeath(ITEM *item, COLL_INFO *coll); 0x004324A0 0x0192 + int32_t __cdecl Lara_GetWaterDepth(int32_t x, int32_t y, int32_t z, int16_t room_num); -0x00432640 0x00CE + void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, COLL_INFO *coll); -0x00432710 0x015C + void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); +0x00432640 0x00CE + void __cdecl Lara_TestWaterDepth(ITEM *item, COLL_INFO *coll); +0x00432710 0x015C + void __cdecl Lara_SwimCollision(ITEM *item, COLL_INFO *coll); 0x00432870 0x01EC + void __cdecl Lara_WaterCurrent(COLL_INFO *coll); # game/lot.c @@ -3513,25 +3513,25 @@ typedef enum { 0x00432AC0 0x004F + void __cdecl LOT_DisableBaddieAI(int16_t item_num); 0x00432B10 0x01B0 + bool __cdecl LOT_EnableBaddieAI(int16_t item_num, bool always); 0x00432CC0 0x0106 + void __cdecl LOT_InitialiseSlot(int16_t item_num, int32_t slot); -0x00432ED0 0x00B8 + void __cdecl LOT_CreateZone(ITEM_INFO *item); +0x00432ED0 0x00B8 + void __cdecl LOT_CreateZone(ITEM *item); 0x00432F90 0x0049 + void __cdecl LOT_ClearLOT(LOT_INFO *lot); # game/missile.c 0x00432FE0 0x02D0 -R void __cdecl ControlMissile(int16_t fx_num); -0x004332B0 0x00A7 -R void __cdecl ShootAtLara(FX_INFO *fx); +0x004332B0 0x00A7 -R void __cdecl ShootAtLara(FX *fx); 0x00433360 0x0386 +R int32_t __cdecl Effect_ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage); 0x004336F0 0x0200 -R void __cdecl BodyPart_Control(int16_t fx_num); # game/moveblock.c 0x004338F0 0x002C -R void __cdecl InitialiseMovingBlock(int16_t item_num); 0x00433920 0x0148 -R void __cdecl MovableBlock(int16_t item_num); -0x00433A70 0x0239 -R void __cdecl MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00433CD0 0x004E -R int32_t __cdecl TestBlockMovable(ITEM_INFO *item, int32_t block_height); -0x00433D20 0x0137 -R int32_t __cdecl TestBlockPush(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -0x00433E70 0x0225 -R int32_t __cdecl TestBlockPull(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -0x004340B0 0x00BB + void __cdecl Room_AlterFloorHeight(ITEM_INFO *item, int32_t height); -0x00434170 0x0022 -R void __cdecl DrawMovableBlock(ITEM_INFO *item); -0x004341A0 0x006B -R void __cdecl DrawUnclippedItem(ITEM_INFO *item); +0x00433A70 0x0239 -R void __cdecl MovableBlockCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00433CD0 0x004E -R int32_t __cdecl TestBlockMovable(ITEM *item, int32_t block_height); +0x00433D20 0x0137 -R int32_t __cdecl TestBlockPush(ITEM *item, int32_t block_height, uint16_t quadrant); +0x00433E70 0x0225 -R int32_t __cdecl TestBlockPull(ITEM *item, int32_t block_height, uint16_t quadrant); +0x004340B0 0x00BB + void __cdecl Room_AlterFloorHeight(ITEM *item, int32_t height); +0x00434170 0x0022 -R void __cdecl DrawMovableBlock(ITEM *item); +0x004341A0 0x006B -R void __cdecl DrawUnclippedItem(ITEM *item); # game/objects.c 0x00434210 0x00DB -R void __cdecl EarthQuake(int16_t item_num); @@ -3542,7 +3542,7 @@ typedef enum { 0x004346F0 0x007C -R void __cdecl InitialiseDyingMonk(int16_t item_num); 0x00434770 0x0087 -R void __cdecl DyingMonk(int16_t item_num); 0x00434800 0x00BD -R void __cdecl ControlGongBonger(int16_t item_num); -0x004348C0 0x00BF -R void __cdecl DeathSlideCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x004348C0 0x00BF -R void __cdecl DeathSlideCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); 0x00434980 0x028F -R void __cdecl ControlDeathSlide(int16_t item_num); 0x00434C10 0x00E3 -R void __cdecl BigBowlControl(int16_t item_num); 0x00434D00 0x007E -R void __cdecl BellControl(int16_t item_num); @@ -3554,34 +3554,34 @@ typedef enum { 0x004350A0 0x0032 -R void __cdecl OpenThatDoor(DOORPOS_DATA *d); 0x004350E0 0x03DC -R void __cdecl InitialiseDoor(int16_t item_num); 0x004354C0 0x00C8 -R void __cdecl DoorControl(int16_t item_num); -0x00435590 0x00B1 -R int32_t __cdecl OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y); -0x00435650 0x0036 -R void __cdecl DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435690 0x003B -R void __cdecl DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x004356D0 0x002C -R void __cdecl DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00435590 0x00B1 -R int32_t __cdecl OnDrawBridge(ITEM *item, int32_t x, int32_t y); +0x00435650 0x0036 -R void __cdecl DrawBridgeFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435690 0x003B -R void __cdecl DrawBridgeCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x004356D0 0x002C -R void __cdecl DrawBridgeCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); 0x00435700 0x0035 -R void __cdecl InitialiseLift(int16_t item_num); 0x00435740 0x00D4 -R void __cdecl LiftControl(int16_t item_num); -0x00435820 0x0179 -R void __cdecl LiftFloorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); -0x004359A0 0x0035 -R void __cdecl LiftFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x004359E0 0x0035 -R void __cdecl LiftCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435A20 0x0016 -R void __cdecl BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435A40 0x001B -R void __cdecl BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435A60 0x003B -R int32_t __cdecl GetOffset(ITEM_INFO *item, int32_t x, int32_t z); -0x00435AA0 0x0030 -R void __cdecl BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435AD0 0x0035 -R void __cdecl BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435B10 0x002F -R void __cdecl BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00435B40 0x0034 -R void __cdecl BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435820 0x0179 -R void __cdecl LiftFloorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); +0x004359A0 0x0035 -R void __cdecl LiftFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x004359E0 0x0035 -R void __cdecl LiftCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A20 0x0016 -R void __cdecl BridgeFlatFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A40 0x001B -R void __cdecl BridgeFlatCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A60 0x003B -R int32_t __cdecl GetOffset(ITEM *item, int32_t x, int32_t z); +0x00435AA0 0x0030 -R void __cdecl BridgeTilt1Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435AD0 0x0035 -R void __cdecl BridgeTilt1Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435B10 0x002F -R void __cdecl BridgeTilt2Floor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435B40 0x0034 -R void __cdecl BridgeTilt2Ceiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); 0x00435B80 0x010C -R void __cdecl CopterControl(int16_t item_num); 0x00435C90 0x00D2 -R void __cdecl GeneralControl(int16_t item_num); 0x00435D70 0x008D -R void __cdecl DetonatorControl(int16_t item_num); # game/people.c -0x00435E00 0x0085 + bool __cdecl Creature_CanTargetEnemy(const ITEM_INFO *item, const AI_INFO *info); +0x00435E00 0x0085 + bool __cdecl Creature_CanTargetEnemy(const ITEM *item, const AI_INFO *info); 0x00435E90 0x003B -R void __cdecl ControlGlow(int16_t fx_num); 0x00435ED0 0x004E -R void __cdecl ControlGunShot(int16_t fx_num); 0x00435F20 0x0066 -R int16_t __cdecl GunShot(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); 0x00435F90 0x00B9 -R int16_t __cdecl GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); 0x00436050 0x00A7 -R int16_t __cdecl GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -0x00436100 0x01C4 -R int32_t __cdecl ShotLara(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage); +0x00436100 0x01C4 -R int32_t __cdecl ShotLara(ITEM *item, AI_INFO *info, BITE *gun, int16_t extra_rotation, int32_t damage); 0x004362D0 0x0043 -R void __cdecl InitialiseCult1(int16_t item_num); 0x00436320 0x0401 -R void __cdecl Cult1Control(int16_t item_num); 0x00436750 0x0050 -R void __cdecl InitialiseCult3(int16_t item_num); @@ -3593,12 +3593,12 @@ typedef enum { 0x00437CF0 0x0172 -R void __cdecl WinstonControl(int16_t item_num); # game/pickup.c -0x00437E70 0x0480 -R void __cdecl PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x004382F0 0x020A -R void __cdecl SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00438500 0x00FC -R void __cdecl SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00438600 0x023B -R void __cdecl DetonatorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00438840 0x0223 -R void __cdecl KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0x00438A80 0x0294 -R void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00437E70 0x0480 -R void __cdecl PickUpCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x004382F0 0x020A -R void __cdecl SwitchCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00438500 0x00FC -R void __cdecl SwitchCollision2(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00438600 0x023B -R void __cdecl DetonatorCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00438840 0x0223 -R void __cdecl KeyHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +0x00438A80 0x0294 -R void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); 0x00438D40 0x0039 -R void __cdecl SwitchControl(int16_t item_num); 0x00438D80 0x00BD -R int32_t __cdecl SwitchTrigger(int16_t item_num, int16_t timer); 0x00438E40 0x003D -R int32_t __cdecl KeyTrigger(int16_t item_num); @@ -3636,26 +3636,26 @@ typedef enum { # game/skidoo.c 0x0043CE30 0x0040 -R void __cdecl InitialiseSkidoo(int16_t item_num); 0x0043CE70 0x00E1 -R int32_t __cdecl SkidooCheckGeton(int16_t item_num, COLL_INFO *coll); -0x0043CF60 0x00F8 -R void __cdecl SkidooCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -0x0043D060 0x01F9 -R void __cdecl SkidooBaddieCollision(ITEM_INFO *skidoo); -0x0043D260 0x00B2 -R int32_t __cdecl TestHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); -0x0043D320 0x027C -R int32_t __cdecl DoShift(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old); +0x0043CF60 0x00F8 -R void __cdecl SkidooCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); +0x0043D060 0x01F9 -R void __cdecl SkidooBaddieCollision(ITEM *skidoo); +0x0043D260 0x00B2 -R int32_t __cdecl TestHeight(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +0x0043D320 0x027C -R int32_t __cdecl DoShift(ITEM *skidoo, XYZ_32 *pos, XYZ_32 *old); 0x0043D5A0 0x0054 -R int32_t __cdecl DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); -0x0043D600 0x0090 -R int32_t __cdecl GetCollisionAnim(ITEM_INFO *skidoo, XYZ_32 *moved); -0x0043D690 0x0140 -R void __cdecl DoSnowEffect(ITEM_INFO *skidoo); -0x0043D7D0 0x049E -R int32_t __cdecl SkidooDynamics(ITEM_INFO *skidoo); -0x0043DC70 0x01B6 -R int32_t __cdecl SkidooUserControl(ITEM_INFO *skidoo, int32_t height, int32_t *pitch); +0x0043D600 0x0090 -R int32_t __cdecl GetCollisionAnim(ITEM *skidoo, XYZ_32 *moved); +0x0043D690 0x0140 -R void __cdecl DoSnowEffect(ITEM *skidoo); +0x0043D7D0 0x049E -R int32_t __cdecl SkidooDynamics(ITEM *skidoo); +0x0043DC70 0x01B6 -R int32_t __cdecl SkidooUserControl(ITEM *skidoo, int32_t height, int32_t *pitch); 0x0043DE30 0x0106 -R int32_t __cdecl SkidooCheckGetOffOK(int32_t direction); -0x0043DF40 0x02B9 -R void __cdecl SkidooAnimation(ITEM_INFO *skidoo, int32_t collide, int32_t dead); -0x0043E220 0x007C -R void __cdecl SkidooExplode(ITEM_INFO *skidoo); +0x0043DF40 0x02B9 -R void __cdecl SkidooAnimation(ITEM *skidoo, int32_t collide, int32_t dead); +0x0043E220 0x007C -R void __cdecl SkidooExplode(ITEM *skidoo); 0x0043E2A0 0x0233 -R int32_t __cdecl SkidooCheckGetOff(void); 0x0043E4E0 0x011B -R void __cdecl SkidooGuns(void); 0x0043E600 0x0440 -R int32_t __cdecl SkidooControl(void); -0x0043EA60 0x02D5 -R void __cdecl DrawSkidoo(ITEM_INFO *item); +0x0043EA60 0x02D5 -R void __cdecl DrawSkidoo(ITEM *item); 0x0043ED40 0x007F -R void __cdecl InitialiseSkidman(int16_t item_num); 0x0043EDD0 0x03E2 -R void __cdecl SkidManControl(int16_t rider_num); -0x0043F1D0 0x0119 -R void __cdecl SkidmanPush(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius); -0x0043F2F0 0x0081 -R void __cdecl SkidmanCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x0043F1D0 0x0119 -R void __cdecl SkidmanPush(ITEM *item, ITEM *lara_item, int32_t radius); +0x0043F2F0 0x0081 -R void __cdecl SkidmanCollision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); # game/sound.c 0x0043F380 0x0031 * int32_t __cdecl Music_GetRealTrack(int32_t track); @@ -3666,10 +3666,10 @@ typedef enum { 0x0043F980 0x002A + void __cdecl Sound_Init(void); # game/sphere.c -0x0043F9B0 0x0128 - int32_t __cdecl Collide_TestCollision(ITEM_INFO *item, const ITEM_INFO *lara_item); -0x0043FAE0 0x02D8 - int32_t __cdecl Collide_GetSpheres(const ITEM_INFO *item, SPHERE *spheres, bool world_space); -0x0043FDC0 0x019A - void __cdecl Collide_GetJointAbsPosition(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint); -0x0043FF60 0x005D -R void __cdecl BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite); +0x0043F9B0 0x0128 - int32_t __cdecl Collide_TestCollision(ITEM *item, const ITEM *lara_item); +0x0043FAE0 0x02D8 - int32_t __cdecl Collide_GetSpheres(const ITEM *item, SPHERE *spheres, bool world_space); +0x0043FDC0 0x019A - void __cdecl Collide_GetJointAbsPosition(const ITEM *item, const XYZ_32 *vec, int32_t joint); +0x0043FF60 0x005D -R void __cdecl BaddieBiteEffect(ITEM *item, BITE *bite); # game/spider.c 0x0043FFC0 0x00AC -R void __cdecl SpiderLeap(int16_t item_num, int16_t angle); @@ -3714,16 +3714,16 @@ typedef enum { 0x00441A50 0x00DB -R void __cdecl SpringBoardControl(int16_t item_num); 0x00441B30 0x003C -R void __cdecl InitialiseRollingBall(int16_t item_num); 0x00441B70 0x0347 -R void __cdecl RollingBallControl(int16_t item_num); -0x00441EC0 0x024A -R void __cdecl RollingBallCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -0x00442110 0x0155 -R void __cdecl SpikeCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +0x00441EC0 0x024A -R void __cdecl RollingBallCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); +0x00442110 0x0155 -R void __cdecl SpikeCollision(int16_t item_num, ITEM *litem, COLL_INFO *coll); 0x00442270 0x004F -R void __cdecl TrapDoorControl(int16_t item_num); -0x004422C0 0x003A -R void __cdecl TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00442300 0x003F -R void __cdecl TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00442340 0x00A3 -R int32_t __cdecl OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z); +0x004422C0 0x003A -R void __cdecl TrapDoorFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442300 0x003F -R void __cdecl TrapDoorCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442340 0x00A3 -R int32_t __cdecl OnTrapDoor(ITEM *item, int32_t x, int32_t z); 0x004423F0 0x010A -R void __cdecl Pendulum(int16_t item_num); 0x00442500 0x0105 -R void __cdecl FallingBlock(int16_t item_num); -0x00442610 0x003E -R void __cdecl FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -0x00442650 0x0044 -R void __cdecl FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442610 0x003E -R void __cdecl FallingBlockFloor(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442650 0x0044 -R void __cdecl FallingBlockCeiling(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height); 0x004426A0 0x00BD -R void __cdecl TeethTrap(int16_t item_num); 0x00442760 0x00E0 -R void __cdecl FallingCeiling(int16_t item_num); 0x00442840 0x013E -R void __cdecl DartEmitterControl(int16_t item_num); @@ -3732,7 +3732,7 @@ typedef enum { 0x00442B30 0x0090 + void __cdecl FlameEmitter_Control(int16_t item_num); 0x00442BC0 0x0164 + void __cdecl Flame_Control(int16_t fx_num); 0x00442D30 0x0049 + void __cdecl Lara_CatchFire(void); -0x00442D80 0x00E6 + void __cdecl Lara_TouchLava(ITEM_INFO *item); +0x00442D80 0x00E6 + void __cdecl Lara_TouchLava(ITEM *item); 0x00442E70 0x00C5 + void __cdecl EmberEmitter_Control(int16_t item_num); 0x00442F40 0x010B + void __cdecl Ember_Control(int16_t fx_num); @@ -4011,11 +4011,11 @@ typedef enum { 0x00450C80 0x0089 *R void __cdecl S_OutputPolyList(void); 0x00450CC0 0x0270 -R int32_t __cdecl S_GetObjectBounds(const BOUNDS_16 *bounds); 0x00450F30 0x0046 -R void __cdecl S_InsertBackPolygon(int32_t x0, int32_t y0, int32_t x1, int32_t y1); -0x00450F80 0x01F1 -R void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM_INFO *item); +0x00450F80 0x01F1 -R void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item); 0x00451180 0x02F6 -R void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); 0x00451480 0x0031 -R void __cdecl S_CalculateStaticLight(int16_t adder); -0x004514C0 0x0124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room); -0x004515F0 0x0206 -R void __cdecl S_LightRoom(ROOM_INFO *room); +0x004514C0 0x0124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); +0x004515F0 0x0206 -R void __cdecl S_LightRoom(ROOM *room); 0x00451800 0x01CC -R void __cdecl S_DrawHealthBar(int32_t percent); 0x004519D0 0x01F6 -R void __cdecl S_DrawAirBar(int32_t percent); 0x00451BD0 0x00C0 -R void __cdecl AnimateTextures(int32_t ticks); @@ -4181,7 +4181,7 @@ typedef enum { 0x004640BC - int16_t g_CD_TrackID = -1; 0x004640C4 - int32_t g_FlipEffect = -1; 0x004641F0 - int32_t g_AssaultBestTime = -1; -0x004641F8 - void (*__cdecl g_EffectRoutines[32])(ITEM_INFO *item); +0x004641F8 - void (*__cdecl g_EffectRoutines[32])(ITEM *item); 0x00464310 - int16_t g_CineTargetAngle = 0x4000; // PHD_90 0x004644E0 - int32_t g_OverlayStatus = 1; 0x004654E0 - int16_t g_Inv_MainObjectsCount = 8; @@ -4193,9 +4193,9 @@ typedef enum { 0x00465A60 - int16_t g_OptionMusicVolume = 255; // NOTE: should be 10 0x00465AD4 - int32_t g_JumpPermitted = 1; 0x00465AD8 - int16_t g_LaraOldSlideAngle = 1; -0x00465CD0 - void (*__cdecl g_LaraControlRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); -0x00465DF0 - void (*__cdecl g_ExtraControlRoutines[11])(ITEM_INFO *item, COLL_INFO *coll); -0x00465E20 - void (*__cdecl g_LaraCollisionRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); +0x00465CD0 - void (*__cdecl g_LaraControlRoutines[71])(ITEM *item, COLL_INFO *coll); +0x00465DF0 - void (*__cdecl g_ExtraControlRoutines[11])(ITEM *item, COLL_INFO *coll); +0x00465E20 - void (*__cdecl g_LaraCollisionRoutines[71])(ITEM *item, COLL_INFO *coll); 0x00466290 - int8_t g_TextSpacing[80]; 0x004662E0 - int8_t g_TextASCIIMap[]; 0x00466400 - int32_t g_BGND_PaletteIndex = -1; @@ -4421,8 +4421,8 @@ typedef enum { 0x0051E6C4 - int32_t g_SoundIsActive; 0x0051E9E0 - SAVEGAME_INFO g_SaveGame; 0x005206E0 - LARA_INFO g_Lara; -0x005207BC - ITEM_INFO *g_LaraItem; -0x005207C0 - FX_INFO *g_Effects; +0x005207BC - ITEM *g_LaraItem; +0x005207C0 - FX *g_Effects; 0x005207C4 - int16_t g_NextEffectFree; 0x005207C6 - int16_t g_NextItemFree; 0x005207C8 - int16_t g_NextItemActive; @@ -4431,7 +4431,7 @@ typedef enum { 0x00521CA0 - PICKUP_INFO g_Pickups[12]; 0x00521DE0 - GAME_FLOW g_GameFlow; 0x00521FDC - int32_t g_SoundEffectCount; -0x00522000 - OBJECT_INFO g_Objects[265]; +0x00522000 - OBJECT g_Objects[265]; 0x005252B0 - int16_t **g_Meshes; 0x005252C0 - MATRIX g_IMMatrixStack[256]; 0x005258F0 - int32_t g_IMFrac; @@ -4440,11 +4440,11 @@ typedef enum { 0x00526180 - int32_t g_RoomCount; 0x00526184 - int32_t g_IMRate; 0x00526188 - MATRIX *g_IMMatrixPtr; -0x0052618C - ROOM_INFO *g_Rooms; +0x0052618C - ROOM *g_Rooms; 0x00526240 - int32_t g_FlipStatus; 0x00526288 - int16_t *g_TriggerIndex; 0x005262A0 - int32_t g_LOSRooms[20]; -0x005262F0 - ITEM_INFO *g_Items; +0x005262F0 - ITEM *g_Items; 0x005262F6 - int16_t g_NumCineFrames; 0x005262F8 - CINE_FRAME *g_CineData = NULL; 0x00526300 - PHD_3DPOS g_CinePos; @@ -4462,12 +4462,12 @@ typedef enum { 0x004D7EE0 - LPDIRECTDRAW3 g_DDraw; 0x004D8380 - int32_t g_GameWindowX; 0x00463150 - GUID g_IID_IDirectDrawSurface3; -0x004640A0 + BITE_INFO g_CrowBite; -0x00464090 + BITE_INFO g_BirdBite; +0x004640A0 + BITE g_CrowBite; +0x00464090 + BITE g_BirdBite; 0x005263C0 - int16_t *g_FlyZone[2]; 0x005263A0 - int16_t *g_GroundZone[][2]; 0x005263C8 - uint16_t *g_Overlap; -0x005206C0 - CREATURE_INFO *g_BaddieSlots; +0x005206C0 - CREATURE *g_BaddieSlots; 0x00526312 + int16_t g_CineLevelID; 0x005252B8 - int32_t g_DrawRoomsCount; 0x00525B20 - int16_t g_DrawRoomsArray[100]; diff --git a/src/decomp/decomp.c b/src/decomp/decomp.c index 26320885..538693dc 100644 --- a/src/decomp/decomp.c +++ b/src/decomp/decomp.c @@ -1217,8 +1217,8 @@ int32_t __cdecl Game_Cutscene_Control(const int32_t nframes) g_DynamicLightCount = 0; for (int32_t id = g_NextItemActive; id != NO_ITEM;) { - const ITEM_INFO *const item = &g_Items[id]; - const OBJECT_INFO *obj = &g_Objects[item->object_id]; + const ITEM *const item = &g_Items[id]; + const OBJECT *obj = &g_Objects[item->object_id]; if (obj->control != NULL) { obj->control(id); } @@ -1226,8 +1226,8 @@ int32_t __cdecl Game_Cutscene_Control(const int32_t nframes) } for (int32_t id = g_NextEffectActive; id != NO_ITEM;) { - const FX_INFO *const fx = &g_Effects[id]; - const OBJECT_INFO *const obj = &g_Objects[fx->object_id]; + const FX *const fx = &g_Effects[id]; + const OBJECT *const obj = &g_Objects[fx->object_id]; if (obj->control != NULL) { obj->control(id); } @@ -1262,7 +1262,7 @@ int32_t __cdecl Game_Cutscene_Control(const int32_t nframes) void __cdecl CutscenePlayer_Control(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->rot.y = g_Camera.target_angle; item->pos.x = g_Camera.pos.pos.x; item->pos.y = g_Camera.pos.pos.y; @@ -1289,7 +1289,7 @@ void __cdecl CutscenePlayer_Control(const int16_t item_num) void __cdecl Lara_Control_Cutscene(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->rot.y = g_Camera.target_angle; item->pos.x = g_Camera.pos.pos.x; item->pos.y = g_Camera.pos.pos.y; @@ -1308,12 +1308,12 @@ void __cdecl Lara_Control_Cutscene(const int16_t item_num) void __cdecl CutscenePlayer1_Initialise(const int16_t item_num) { - OBJECT_INFO *const obj = &g_Objects[O_LARA]; + OBJECT *const obj = &g_Objects[O_LARA]; obj->draw_routine = Lara_Draw; obj->control = Lara_Control_Cutscene; Item_AddActive(item_num); - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; g_Camera.pos.pos.x = item->pos.x; g_Camera.pos.pos.y = item->pos.y; g_Camera.pos.pos.z = item->pos.z; @@ -1334,7 +1334,7 @@ void __cdecl CutscenePlayer1_Initialise(const int16_t item_num) void __cdecl CutscenePlayerGen_Initialise(const int16_t item_num) { Item_AddActive(item_num); - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->rot.y = 0; item->dynamic_light = 0; } @@ -1374,7 +1374,7 @@ int32_t __cdecl Level_Initialise( || level_type == GFL_DEMO) { GetCarriedItems(); } - g_Effects = game_malloc(MAX_EFFECTS * sizeof(FX_INFO), GBUF_EFFECTS_ARRAY); + g_Effects = game_malloc(MAX_EFFECTS * sizeof(FX), GBUF_EFFECTS_ARRAY); Effect_InitialiseArray(); LOT_InitialiseArray(); Inv_InitColors(); diff --git a/src/decomp/effects.c b/src/decomp/effects.c index 78425a8b..013f9094 100644 --- a/src/decomp/effects.c +++ b/src/decomp/effects.c @@ -11,8 +11,8 @@ int32_t __cdecl Effect_ExplodingDeath( const int16_t item_num, const int32_t mesh_bits, const int16_t damage) { - ITEM_INFO *const item = &g_Items[item_num]; - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + ITEM *const item = &g_Items[item_num]; + const OBJECT *const object = &g_Objects[item->object_id]; S_CalculateLight(item->pos.x, item->pos.y, item->pos.z, item->room_num); @@ -36,7 +36,7 @@ int32_t __cdecl Effect_ExplodingDeath( if ((mesh_bits & bit) && (item->mesh_bits & bit)) { const int16_t fx_num = Effect_Create(item->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->pos.x = item->pos.x + (g_MatrixPtr->_03 >> W2V_SHIFT); fx->pos.y = item->pos.y + (g_MatrixPtr->_13 >> W2V_SHIFT); fx->pos.z = item->pos.z + (g_MatrixPtr->_23 >> W2V_SHIFT); @@ -84,7 +84,7 @@ int32_t __cdecl Effect_ExplodingDeath( if ((mesh_bits & bit) && (item->mesh_bits & bit)) { const int16_t fx_num = Effect_Create(item->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->pos.x = item->pos.x + (g_MatrixPtr->_03 >> W2V_SHIFT); fx->pos.y = item->pos.y + (g_MatrixPtr->_13 >> W2V_SHIFT); fx->pos.z = item->pos.z + (g_MatrixPtr->_23 >> W2V_SHIFT); diff --git a/src/game/background.c b/src/game/background.c index a4c3089c..5c5aab46 100644 --- a/src/game/background.c +++ b/src/game/background.c @@ -124,7 +124,7 @@ void __cdecl DrawQuad( void __cdecl BGND_DrawInGameBackground(void) { - const OBJECT_INFO *const obj = &g_Objects[O_INV_BACKGROUND]; + const OBJECT *const obj = &g_Objects[O_INV_BACKGROUND]; if (!obj->loaded) { BGND_DrawInGameBlack(); return; diff --git a/src/game/box.c b/src/game/box.c index 3963df13..be94c2de 100644 --- a/src/game/box.c +++ b/src/game/box.c @@ -145,8 +145,7 @@ void __cdecl Box_TargetBox(LOT_INFO *const lot, const int16_t box_num) } int32_t __cdecl Box_StalkBox( - const ITEM_INFO *const item, const ITEM_INFO *const enemy, - const int16_t box_num) + const ITEM *const item, const ITEM *const enemy, const int16_t box_num) { const BOX_INFO *const box = &g_Boxes[box_num]; @@ -178,8 +177,7 @@ int32_t __cdecl Box_StalkBox( } int32_t __cdecl Box_EscapeBox( - const ITEM_INFO *const item, const ITEM_INFO *const enemy, - const int16_t box_num) + const ITEM *const item, const ITEM *const enemy, const int16_t box_num) { const BOX_INFO *const box = &g_Boxes[box_num]; const int32_t x = @@ -198,9 +196,9 @@ int32_t __cdecl Box_EscapeBox( } int32_t __cdecl Box_ValidBox( - const ITEM_INFO *const item, const int16_t zone_num, const int16_t box_num) + const ITEM *const item, const int16_t zone_num, const int16_t box_num) { - const CREATURE_INFO *const creature = item->data; + const CREATURE *const creature = item->data; int16_t *zone; if (creature->lot.fly) { zone = g_FlyZone[g_FlipStatus]; @@ -225,7 +223,7 @@ int32_t __cdecl Box_ValidBox( } TARGET_TYPE __cdecl Box_CalculateTarget( - XYZ_32 *const target, const ITEM_INFO *const item, LOT_INFO *const lot) + XYZ_32 *const target, const ITEM *const item, LOT_INFO *const lot) { Box_UpdateLOT(lot, BOX_MAX_EXPANSION); @@ -396,7 +394,7 @@ int32_t __cdecl Box_BadFloor( const int32_t x, const int32_t y, const int32_t z, const int32_t box_height, const int32_t next_height, int16_t room_num, const LOT_INFO *const lot) { - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int16_t box_num = sector->box; if (box_num == NO_BOX) { return true; diff --git a/src/game/box.h b/src/game/box.h index 3609d2d3..e42a2673 100644 --- a/src/game/box.h +++ b/src/game/box.h @@ -11,13 +11,13 @@ int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); int32_t __cdecl Box_StalkBox( - const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); + const ITEM *item, const ITEM *enemy, int16_t box_num); int32_t __cdecl Box_EscapeBox( - const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); + const ITEM *item, const ITEM *enemy, int16_t box_num); int32_t __cdecl Box_ValidBox( - const ITEM_INFO *item, int16_t zone_num, int16_t box_num); + const ITEM *item, int16_t zone_num, int16_t box_num); TARGET_TYPE __cdecl Box_CalculateTarget( - XYZ_32 *target, const ITEM_INFO *item, LOT_INFO *lot); + XYZ_32 *target, const ITEM *item, LOT_INFO *lot); int32_t __cdecl Box_BadFloor( int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, const LOT_INFO *lot); diff --git a/src/game/camera.c b/src/game/camera.c index fd80a573..c9d5e3e4 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -76,7 +76,7 @@ void __cdecl Camera_Move(const GAME_VECTOR *target, int32_t speed) g_IsChunkyCamera = 0; - const SECTOR_INFO *sector = Room_GetSector( + const SECTOR *sector = Room_GetSector( g_Camera.pos.x, g_Camera.pos.y, g_Camera.pos.z, &g_Camera.pos.room_num); int32_t height = Room_GetHeight(sector, g_Camera.pos.x, g_Camera.pos.y, g_Camera.pos.z) @@ -218,10 +218,10 @@ void __cdecl Camera_Shift( } } -const SECTOR_INFO *__cdecl Camera_GoodPosition( +const SECTOR *__cdecl Camera_GoodPosition( int32_t x, int32_t y, int32_t z, int16_t room_num) { - const SECTOR_INFO *sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *sector = Room_GetSector(x, y, z, &room_num); int32_t height = Room_GetHeight(sector, x, y, z); int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (y > height || y < ceiling) { @@ -240,7 +240,7 @@ void __cdecl Camera_SmartShift( { LOS_Check(&g_Camera.target, target); - const ROOM_INFO *r = &g_Rooms[g_Camera.target.room_num]; + const ROOM *r = &g_Rooms[g_Camera.target.room_num]; int32_t z_sector = (g_Camera.target.z - r->pos.z) >> WALL_SHIFT; int32_t x_sector = (g_Camera.target.x - r->pos.x) >> WALL_SHIFT; int16_t item_box = r->sector[z_sector + x_sector * r->z_size].box; @@ -270,7 +270,7 @@ void __cdecl Camera_SmartShift( int32_t edge; test = (target->z - WALL_L) | (WALL_L - 1); - const SECTOR_INFO *good_left = + const SECTOR *good_left = Camera_GoodPosition(target->x, target->y, test, target->room_num); if (good_left) { camera_box = good_left->box; @@ -283,7 +283,7 @@ void __cdecl Camera_SmartShift( } test = (target->z + WALL_L) & (~(WALL_L - 1)); - const SECTOR_INFO *good_right = + const SECTOR *good_right = Camera_GoodPosition(target->x, target->y, test, target->room_num); if (good_right) { camera_box = good_right->box; @@ -296,7 +296,7 @@ void __cdecl Camera_SmartShift( } test = (target->x - WALL_L) | (WALL_L - 1); - const SECTOR_INFO *good_top = + const SECTOR *good_top = Camera_GoodPosition(test, target->y, target->z, target->room_num); if (good_top) { camera_box = good_top->box; @@ -309,7 +309,7 @@ void __cdecl Camera_SmartShift( } test = (target->x + WALL_L) & (~(WALL_L - 1)); - const SECTOR_INFO *good_bottom = + const SECTOR *good_bottom = Camera_GoodPosition(test, target->y, target->z, target->room_num); if (good_bottom) { camera_box = good_bottom->box; @@ -453,7 +453,7 @@ void __cdecl Camera_SmartShift( Room_GetSector(target->x, target->y, target->z, &target->room_num); } -void __cdecl Camera_Chase(const ITEM_INFO *item) +void __cdecl Camera_Chase(const ITEM *item) { g_Camera.target_elevation += item->rot.x; g_Camera.target_elevation = MIN(g_Camera.target_elevation, MAX_ELEVATION); @@ -489,7 +489,7 @@ int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp) int32_t x = pos->x; int32_t y = pos->y; int32_t z = pos->z; - const SECTOR_INFO *sector = Room_GetSector(x, y, z, &pos->room_num); + const SECTOR *sector = Room_GetSector(x, y, z, &pos->room_num); const BOX_INFO *box = &g_Boxes[sector->box]; int32_t left = ((int32_t)box->left << WALL_SHIFT) + clamp; @@ -526,7 +526,7 @@ int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp) return 0; } -void __cdecl Camera_Combat(const ITEM_INFO *item) +void __cdecl Camera_Combat(const ITEM *item) { g_Camera.target.z = item->pos.z; g_Camera.target.x = item->pos.x; @@ -580,7 +580,7 @@ void __cdecl Camera_Combat(const ITEM_INFO *item) Camera_Move(&target, g_Camera.speed); } -void __cdecl Camera_Look(const ITEM_INFO *item) +void __cdecl Camera_Look(const ITEM *item) { XYZ_32 old = { .x = g_Camera.target.x, @@ -684,7 +684,7 @@ void __cdecl Camera_Update(void) const int32_t fixed_camera = g_Camera.item != NULL && (g_Camera.type == CAM_FIXED || g_Camera.type == CAM_HEAVY); - const ITEM_INFO *const item = fixed_camera ? g_Camera.item : g_LaraItem; + const ITEM *const item = fixed_camera ? g_Camera.item : g_LaraItem; const BOUNDS_16 *bounds = Item_GetBoundsAccurate(item); @@ -773,7 +773,7 @@ void __cdecl Camera_Update(void) g_Camera.target.y += (y - g_Camera.target.y) / 4; } - const SECTOR_INFO *const sector = Room_GetSector( + const SECTOR *const sector = Room_GetSector( g_Camera.target.x, y, g_Camera.target.z, &g_Camera.target.room_num); const int32_t height = Room_GetHeight( sector, g_Camera.target.x, g_Camera.target.y, g_Camera.target.z); diff --git a/src/game/camera.h b/src/game/camera.h index 04498089..5f8b27be 100644 --- a/src/game/camera.h +++ b/src/game/camera.h @@ -11,7 +11,7 @@ void __cdecl Camera_Clip( void __cdecl Camera_Shift( int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom); -const SECTOR_INFO *__cdecl Camera_GoodPosition( +const SECTOR *__cdecl Camera_GoodPosition( int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl Camera_SmartShift( GAME_VECTOR *target, @@ -19,10 +19,10 @@ void __cdecl Camera_SmartShift( int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom)); -void __cdecl Camera_Chase(const ITEM_INFO *item); +void __cdecl Camera_Chase(const ITEM *item); int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); -void __cdecl Camera_Combat(const ITEM_INFO *item); -void __cdecl Camera_Look(const ITEM_INFO *item); +void __cdecl Camera_Combat(const ITEM *item); +void __cdecl Camera_Look(const ITEM *item); void __cdecl Camera_Fixed(void); void __cdecl Camera_Update(void); void __cdecl Camera_LoadCutsceneFrame(void); diff --git a/src/game/collide.c b/src/game/collide.c index a7783ec4..ae8ba275 100644 --- a/src/game/collide.c +++ b/src/game/collide.c @@ -15,7 +15,7 @@ void __cdecl Collide_GetCollisionInfo( coll->shift.z = 0; coll->quadrant = Math_GetDirection(coll->facing); - const SECTOR_INFO *sector; + const SECTOR *sector; int32_t height; int32_t ceiling; int32_t x; @@ -306,10 +306,10 @@ int32_t __cdecl Collide_CollideStaticObjects( Room_GetNearbyRooms(x, y, z, coll->radius + 50, height + 50, room_num); for (int32_t i = 0; i < g_DrawRoomsCount; i++) { - const ROOM_INFO *const room = &g_Rooms[g_DrawRoomsArray[i]]; + const ROOM *const room = &g_Rooms[g_DrawRoomsArray[i]]; for (int32_t j = 0; j < room->num_meshes; j++) { - const MESH_INFO *const mesh = &room->mesh[j]; + const MESH *const mesh = &room->mesh[j]; const STATIC_INFO *const sinfo = &g_StaticObjects[mesh->static_num]; if (sinfo->flags & 1) { diff --git a/src/game/creature.c b/src/game/creature.c index 4bd0e76e..881cd536 100644 --- a/src/game/creature.c +++ b/src/game/creature.c @@ -32,7 +32,7 @@ void __cdecl Creature_Initialise(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->rot.y += (Random_GetControl() - PHD_90) >> 1; item->collidable = 1; item->data = 0; @@ -40,7 +40,7 @@ void __cdecl Creature_Initialise(const int16_t item_num) int32_t __cdecl Creature_Activate(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->status != IS_INVISIBLE) { return true; } @@ -53,9 +53,9 @@ int32_t __cdecl Creature_Activate(const int16_t item_num) return true; } -void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) +void __cdecl Creature_AIInfo(ITEM *const item, AI_INFO *const info) { - CREATURE_INFO *const creature = (CREATURE_INFO *)item->data; + CREATURE *const creature = (CREATURE *)item->data; if (creature == NULL) { return; } @@ -76,7 +76,7 @@ void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) break; } - ITEM_INFO *enemy = creature->enemy; + ITEM *enemy = creature->enemy; if (enemy == NULL) { enemy = g_LaraItem; } @@ -89,7 +89,7 @@ void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) } { - const ROOM_INFO *const r = &g_Rooms[item->room_num]; + const ROOM *const r = &g_Rooms[item->room_num]; const int32_t z_sector = (item->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (item->pos.x - r->pos.x) >> WALL_SHIFT; item->box_num = r->sector[z_sector + x_sector * r->z_size].box; @@ -97,7 +97,7 @@ void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) } { - const ROOM_INFO *const r = &g_Rooms[enemy->room_num]; + const ROOM *const r = &g_Rooms[enemy->room_num]; const int32_t z_sector = (enemy->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (enemy->pos.x - r->pos.x) >> WALL_SHIFT; enemy->box_num = r->sector[z_sector + x_sector * r->z_size].box; @@ -111,7 +111,7 @@ void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) info->enemy_zone_num |= BOX_BLOCKED; } - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + const OBJECT *const object = &g_Objects[item->object_id]; const int32_t z = enemy->pos.z - ((object->pivot_length * Math_Cos(item->rot.y)) >> W2V_SHIFT) - item->pos.z; @@ -133,15 +133,15 @@ void __cdecl Creature_AIInfo(ITEM_INFO *const item, AI_INFO *const info) } void __cdecl Creature_Mood( - const ITEM_INFO *item, const AI_INFO *info, int32_t violent) + const ITEM *item, const AI_INFO *info, int32_t violent) { - CREATURE_INFO *const creature = item->data; + CREATURE *const creature = item->data; if (creature == NULL) { return; } const LOT_INFO *const lot = &creature->lot; - const ITEM_INFO *enemy = creature->enemy; + const ITEM *enemy = creature->enemy; if (creature->lot.node[item->box_num].search_num == (creature->lot.search_num | 0x8000)) { creature->lot.required_box = NO_BOX; @@ -301,7 +301,7 @@ void __cdecl Creature_Mood( int32_t __cdecl Creature_CheckBaddieOverlap(const int16_t item_num) { - ITEM_INFO *item = &g_Items[item_num]; + ITEM *item = &g_Items[item_num]; const int32_t x = item->pos.x; const int32_t y = item->pos.y; @@ -329,7 +329,7 @@ int32_t __cdecl Creature_CheckBaddieOverlap(const int16_t item_num) void __cdecl Creature_Die(const int16_t item_num, const bool explode) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->object_id == O_DRAGON_FRONT) { item->hit_points = 0; @@ -341,7 +341,7 @@ void __cdecl Creature_Die(const int16_t item_num, const bool explode) Effect_ExplodingDeath(item_num, -1, 0); } const int16_t vehicle_item_num = (int16_t)(intptr_t)item->data; - ITEM_INFO *const vehicle_item = &g_Items[vehicle_item_num]; + ITEM *const vehicle_item = &g_Items[vehicle_item_num]; vehicle_item->hit_points = 0; return; } @@ -368,7 +368,7 @@ void __cdecl Creature_Die(const int16_t item_num, const bool explode) if (g_Objects[item->object_id].intelligent) { int16_t pickup_num = item->carried_item; while (pickup_num != NO_ITEM) { - ITEM_INFO *const pickup = &g_Items[pickup_num]; + ITEM *const pickup = &g_Items[pickup_num]; pickup->pos = item->pos; Item_NewRoom(pickup_num, item->room_num); pickup_num = pickup->carried_item; @@ -379,9 +379,9 @@ void __cdecl Creature_Die(const int16_t item_num, const bool explode) int32_t __cdecl Creature_Animate( const int16_t item_num, const int16_t angle, const int16_t tilt) { - ITEM_INFO *const item = &g_Items[item_num]; - const CREATURE_INFO *const creature = item->data; - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + ITEM *const item = &g_Items[item_num]; + const CREATURE *const creature = item->data; + const OBJECT *const object = &g_Objects[item->object_id]; if (creature == NULL) { return false; } @@ -415,7 +415,7 @@ int32_t __cdecl Creature_Animate( int16_t room_num = item->room_num; Room_GetSector(old.x, y, old.z, &room_num); - const SECTOR_INFO *sector = + const SECTOR *sector = Room_GetSector(item->pos.x, y, item->pos.z, &room_num); int32_t height = g_Boxes[sector->box].height; int16_t next_box = lot->node[sector->box].exit_box; @@ -600,7 +600,7 @@ int32_t __cdecl Creature_Animate( item->rot.x = angle; } } else { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); item->floor = Room_GetHeight(sector, item->pos.x, item->pos.y, item->pos.z); @@ -629,9 +629,9 @@ int32_t __cdecl Creature_Animate( return true; } -int16_t __cdecl Creature_Turn(ITEM_INFO *const item, int16_t max_turn) +int16_t __cdecl Creature_Turn(ITEM *const item, int16_t max_turn) { - const CREATURE_INFO *const creature = item->data; + const CREATURE *const creature = item->data; if (creature == NULL || item->speed == 0 || max_turn == 0) { return 0; } @@ -652,16 +652,16 @@ int16_t __cdecl Creature_Turn(ITEM_INFO *const item, int16_t max_turn) return angle; } -void __cdecl Creature_Tilt(ITEM_INFO *const item, int16_t angle) +void __cdecl Creature_Tilt(ITEM *const item, int16_t angle) { angle = 4 * angle - item->rot.z; CLAMP(angle, -MAX_TILT, MAX_TILT); item->rot.z += angle; } -void __cdecl Creature_Head(ITEM_INFO *item, int16_t required) +void __cdecl Creature_Head(ITEM *item, int16_t required) { - CREATURE_INFO *const creature = item->data; + CREATURE *const creature = item->data; if (creature == NULL) { return; } @@ -673,9 +673,9 @@ void __cdecl Creature_Head(ITEM_INFO *item, int16_t required) CLAMP(creature->head_rotation, -HEAD_ARC, HEAD_ARC); } -void __cdecl Creature_Neck(ITEM_INFO *const item, const int16_t required) +void __cdecl Creature_Neck(ITEM *const item, const int16_t required) { - CREATURE_INFO *const creature = item->data; + CREATURE *const creature = item->data; if (creature == NULL) { return; } @@ -689,7 +689,7 @@ void __cdecl Creature_Neck(ITEM_INFO *const item, const int16_t required) void __cdecl Creature_Float(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->hit_points = DONT_TARGET; item->rot.x = 0; @@ -705,7 +705,7 @@ void __cdecl Creature_Float(const int16_t item_num) Item_Animate(item); int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); item->floor = Room_GetHeight(sector, item->pos.x, item->pos.y, item->pos.z); if (room_num != item->room_num) { @@ -713,7 +713,7 @@ void __cdecl Creature_Float(const int16_t item_num) } } -void __cdecl Creature_Underwater(ITEM_INFO *const item, const int32_t depth) +void __cdecl Creature_Underwater(ITEM *const item, const int32_t depth) { const int32_t wh = Room_GetWaterHeight( item->pos.x, item->pos.y, item->pos.z, item->room_num); @@ -730,7 +730,7 @@ void __cdecl Creature_Underwater(ITEM_INFO *const item, const int32_t depth) } int16_t __cdecl Creature_Effect( - const ITEM_INFO *const item, const BITE_INFO *const bite, + const ITEM *const item, const BITE *const bite, int16_t(__cdecl *const spawn)( int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)) @@ -745,7 +745,7 @@ int32_t __cdecl Creature_Vault( const int16_t item_num, const int16_t angle, int32_t vault, const int32_t shift) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; const int16_t room_num = item->room_num; const XYZ_32 old = item->pos; @@ -799,7 +799,7 @@ int32_t __cdecl Creature_Vault( } void __cdecl Creature_Kill( - ITEM_INFO *const item, const int32_t kill_anim, const int32_t kill_state, + ITEM *const item, const int32_t kill_anim, const int32_t kill_state, const int32_t lara_kill_state) { item->anim_num = g_Objects[item->object_id].anim_idx + kill_anim; @@ -837,10 +837,10 @@ void __cdecl Creature_Kill( void __cdecl Creature_GetBaddieTarget( const int16_t item_num, const int32_t goody) { - ITEM_INFO *const item = &g_Items[item_num]; - CREATURE_INFO *const creature = item->data; + ITEM *const item = &g_Items[item_num]; + CREATURE *const creature = item->data; - ITEM_INFO *best_item = NULL; + ITEM *best_item = NULL; int32_t best_distance = INT32_MAX; for (int32_t i = 0; i < NUM_SLOTS; i++) { const int16_t target_item_num = g_BaddieSlots[i].item_num; @@ -848,7 +848,7 @@ void __cdecl Creature_GetBaddieTarget( continue; } - ITEM_INFO *target = &g_Items[target_item_num]; + ITEM *target = &g_Items[target_item_num]; const GAME_OBJECT_ID object_id = target->object_id; if (goody && object_id != O_BANDIT_1 && object_id != O_BANDIT_2) { continue; @@ -886,7 +886,7 @@ void __cdecl Creature_GetBaddieTarget( } } - const ITEM_INFO *const target = creature->enemy; + const ITEM *const target = creature->enemy; if (target == NULL || target->status != IS_ACTIVE) { creature->enemy = best_item; } else { @@ -901,9 +901,9 @@ void __cdecl Creature_GetBaddieTarget( } void __cdecl Creature_Collision( - const int16_t item_num, ITEM_INFO *const lara_item, COLL_INFO *const coll) + const int16_t item_num, ITEM *const lara_item, COLL_INFO *const coll) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!Item_TestBoundsCollide(item, lara_item, coll->radius)) { return; } @@ -919,10 +919,10 @@ void __cdecl Creature_Collision( } int32_t __cdecl Creature_CanTargetEnemy( - const ITEM_INFO *const item, const AI_INFO *const info) + const ITEM *const item, const AI_INFO *const info) { - const CREATURE_INFO *const creature = item->data; - const ITEM_INFO *const enemy = creature->enemy; + const CREATURE *const creature = item->data; + const ITEM *const enemy = creature->enemy; if (enemy->hit_points <= 0 || !info->ahead || info->distance >= CREATURE_SHOOT_RANGE) { return 0; @@ -943,14 +943,14 @@ int32_t __cdecl Creature_CanTargetEnemy( return LOS_Check(&start, &target); } -bool Creature_IsEnemy(const ITEM_INFO *const item) +bool Creature_IsEnemy(const ITEM *const item) { return Object_IsObjectType(item->object_id, g_EnemyObjects) || (g_IsMonkAngry && (item->object_id == O_MONK_1 || item->object_id == O_MONK_2)); } -bool Creature_IsAlly(const ITEM_INFO *const item) +bool Creature_IsAlly(const ITEM *const item) { return Object_IsObjectType(item->object_id, g_AllyObjects); } diff --git a/src/game/creature.h b/src/game/creature.h index 3ed7f1a7..18602043 100644 --- a/src/game/creature.h +++ b/src/game/creature.h @@ -6,32 +6,30 @@ void __cdecl Creature_Initialise(int16_t item_num); int32_t __cdecl Creature_Activate(int16_t item_num); -void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); +void __cdecl Creature_AIInfo(ITEM *item, AI_INFO *info); void __cdecl Creature_Mood( - const ITEM_INFO *item, const AI_INFO *info, int32_t violent); + const ITEM *item, const AI_INFO *info, int32_t violent); int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); void __cdecl Creature_Die(int16_t item_num, bool explode); int32_t __cdecl Creature_Animate(int16_t item_num, int16_t angle, int16_t tilt); -int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t max_turn); -void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); -void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); -void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); +int16_t __cdecl Creature_Turn(ITEM *item, int16_t max_turn); +void __cdecl Creature_Tilt(ITEM *item, int16_t angle); +void __cdecl Creature_Head(ITEM *item, int16_t required); +void __cdecl Creature_Neck(ITEM *item, int16_t required); void __cdecl Creature_Float(int16_t item_num); -void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); +void __cdecl Creature_Underwater(ITEM *item, int32_t depth); int16_t __cdecl Creature_Effect( - const ITEM_INFO *item, const BITE_INFO *bite, + const ITEM *item, const BITE *bite, int16_t(__cdecl *spawn)( int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); int32_t __cdecl Creature_Vault( int16_t item_num, int16_t angle, int32_t vault, int32_t shift); void __cdecl Creature_Kill( - ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, - int32_t lara_kill_state); + ITEM *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody); void __cdecl Creature_Collision( - int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -int32_t __cdecl Creature_CanTargetEnemy( - const ITEM_INFO *item, const AI_INFO *info); -bool Creature_IsEnemy(const ITEM_INFO *item); -bool Creature_IsAlly(const ITEM_INFO *item); + int16_t item_num, ITEM *lara_item, COLL_INFO *coll); +int32_t __cdecl Creature_CanTargetEnemy(const ITEM *item, const AI_INFO *info); +bool Creature_IsEnemy(const ITEM *item); +bool Creature_IsAlly(const ITEM *item); diff --git a/src/game/demo.c b/src/game/demo.c index c994d724..4112588c 100644 --- a/src/game/demo.c +++ b/src/game/demo.c @@ -113,7 +113,7 @@ void __cdecl Demo_LoadLaraPos(void) Item_NewRoom(g_Lara.item_num, room_num); } - const SECTOR_INFO *const sector = Room_GetSector( + const SECTOR *const sector = Room_GetSector( g_LaraItem->pos.x, g_LaraItem->pos.y, g_LaraItem->pos.z, &room_num); g_LaraItem->floor = Room_GetHeight( sector, g_LaraItem->pos.x, g_LaraItem->pos.y, g_LaraItem->pos.z); diff --git a/src/game/effects.c b/src/game/effects.c index 685ce612..e4506783 100644 --- a/src/game/effects.c +++ b/src/game/effects.c @@ -11,7 +11,7 @@ static void M_RemoveDrawn(const int16_t fx_num); static void M_RemoveActive(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; int16_t link_num = g_NextEffectActive; if (link_num == fx_num) { g_NextEffectActive = fx->next_active; @@ -29,7 +29,7 @@ static void M_RemoveActive(const int16_t fx_num) static void M_RemoveDrawn(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; int16_t link_num = g_Rooms[fx->room_num].fx_num; if (link_num == fx_num) { g_Rooms[fx->room_num].fx_num = fx->next_free; @@ -51,7 +51,7 @@ void __cdecl Effect_InitialiseArray(void) g_NextEffectActive = NO_ITEM; for (int32_t i = 0; i < MAX_EFFECTS - 1; i++) { - FX_INFO *const fx = &g_Effects[i]; + FX *const fx = &g_Effects[i]; fx->next_free = i + 1; } g_Effects[MAX_EFFECTS - 1].next_free = NO_ITEM; @@ -64,10 +64,10 @@ int16_t __cdecl Effect_Create(const int16_t room_num) return NO_ITEM; } - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; g_NextEffectFree = fx->next_free; - ROOM_INFO *const room = &g_Rooms[room_num]; + ROOM *const room = &g_Rooms[room_num]; fx->room_num = room_num; fx->next_free = room->fx_num; room->fx_num = fx_num; @@ -82,7 +82,7 @@ int16_t __cdecl Effect_Create(const int16_t room_num) void __cdecl Effect_Kill(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; M_RemoveActive(fx_num); M_RemoveDrawn(fx_num); @@ -92,8 +92,8 @@ void __cdecl Effect_Kill(const int16_t fx_num) void __cdecl Effect_NewRoom(const int16_t fx_num, const int16_t room_num) { - FX_INFO *const fx = &g_Effects[fx_num]; - ROOM_INFO *room = &g_Rooms[fx->room_num]; + FX *const fx = &g_Effects[fx_num]; + ROOM *room = &g_Rooms[fx->room_num]; int16_t link_num = room->fx_num; if (link_num == fx_num) { @@ -116,8 +116,8 @@ void __cdecl Effect_NewRoom(const int16_t fx_num, const int16_t room_num) void __cdecl Effect_Draw(const int16_t fx_num) { - const FX_INFO *const fx = &g_Effects[fx_num]; - const OBJECT_INFO *const object = &g_Objects[fx->object_id]; + const FX *const fx = &g_Effects[fx_num]; + const OBJECT *const object = &g_Objects[fx->object_id]; if (!object->loaded) { return; } diff --git a/src/game/game.c b/src/game/game.c index 489b17e6..28931aa3 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -139,9 +139,9 @@ int32_t __cdecl Game_Control(int32_t nframes, const bool demo_mode) { int16_t item_num = g_NextItemActive; while (item_num != NO_ITEM) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; const int16_t next = item->next_active; - const OBJECT_INFO *object = &g_Objects[item->object_id]; + const OBJECT *object = &g_Objects[item->object_id]; if (!(item->flags & IF_KILLED) && object->control != NULL) { object->control(item_num); } @@ -152,8 +152,8 @@ int32_t __cdecl Game_Control(int32_t nframes, const bool demo_mode) { int16_t fx_num = g_NextEffectActive; while (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; - const OBJECT_INFO *const object = &g_Objects[fx->object_id]; + FX *const fx = &g_Effects[fx_num]; + const OBJECT *const object = &g_Objects[fx->object_id]; const int32_t next = fx->next_active; if (object->control != NULL) { object->control(fx_num); diff --git a/src/game/gun/gun_misc.c b/src/game/gun/gun_misc.c index 63c9b67e..f80a9390 100644 --- a/src/game/gun/gun_misc.c +++ b/src/game/gun/gun_misc.c @@ -110,7 +110,7 @@ void __cdecl Gun_GetNewTarget(const WEAPON_INFO *const winfo) int16_t best_y_rot = 0x7FFF; int32_t best_dist = 0x7FFFFFFF; - ITEM_INFO *best_target = NULL; + ITEM *best_target = NULL; const int16_t max_dist = winfo->target_dist; for (int32_t i = 0; i < NUM_SLOTS; i++) { @@ -119,7 +119,7 @@ void __cdecl Gun_GetNewTarget(const WEAPON_INFO *const winfo) continue; } - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->hit_points <= 0) { continue; } @@ -197,8 +197,8 @@ void __cdecl Gun_AimWeapon(const WEAPON_INFO *const winfo, LARA_ARM *const arm) } int32_t __cdecl Gun_FireWeapon( - const LARA_GUN_TYPE weapon_type, ITEM_INFO *const target, - const ITEM_INFO *const src, const PHD_ANGLE *const angles) + const LARA_GUN_TYPE weapon_type, ITEM *const target, const ITEM *const src, + const PHD_ANGLE *const angles) { const WEAPON_INFO *const winfo = &g_Weapons[weapon_type]; AMMO_INFO *const ammo = Gun_GetAmmoInfo(weapon_type); @@ -295,7 +295,7 @@ int32_t __cdecl Gun_FireWeapon( } void __cdecl Gun_FindTargetPoint( - const ITEM_INFO *const item, GAME_VECTOR *const target) + const ITEM *const item, GAME_VECTOR *const target) { const BOUNDS_16 *const bounds = &Item_GetBestFrame(item)->bounds; const int32_t x = bounds->min_x + (bounds->max_x - bounds->min_x) / 2; @@ -310,8 +310,7 @@ void __cdecl Gun_FindTargetPoint( } void __cdecl Gun_HitTarget( - ITEM_INFO *const item, const GAME_VECTOR *const hit_pos, - const int32_t damage) + ITEM *const item, const GAME_VECTOR *const hit_pos, const int32_t damage) { if (item->hit_points > 0 && item->hit_points <= damage) { g_SaveGame.statistics.kills++; @@ -326,7 +325,7 @@ void __cdecl Gun_HitTarget( if (!g_IsMonkAngry && (item->object_id == O_MONK_1 || item->object_id == O_MONK_2)) { - CREATURE_INFO *const creature = item->data; + CREATURE *const creature = item->data; creature->flags += damage; if ((creature->flags & 0xFFF) > MONK_FRIENDLY_FIRE_THRESHOLD || creature->mood == MOOD_BORED) { @@ -338,7 +337,7 @@ void __cdecl Gun_HitTarget( void __cdecl Gun_SmashItem( const int16_t item_num, const LARA_GUN_TYPE weapon_type) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; switch (item->object_id) { case O_WINDOW_1: diff --git a/src/game/gun/gun_misc.h b/src/game/gun/gun_misc.h index f42c9ef7..20d03326 100644 --- a/src/game/gun/gun_misc.h +++ b/src/game/gun/gun_misc.h @@ -34,9 +34,9 @@ void __cdecl Gun_TargetInfo(const WEAPON_INFO *winfo); void __cdecl Gun_GetNewTarget(const WEAPON_INFO *winfo); void __cdecl Gun_AimWeapon(const WEAPON_INFO *winfo, LARA_ARM *arm); int32_t __cdecl Gun_FireWeapon( - LARA_GUN_TYPE weapon_type, ITEM_INFO *target, const ITEM_INFO *src, + LARA_GUN_TYPE weapon_type, ITEM *target, const ITEM *src, const PHD_ANGLE *angles); -void __cdecl Gun_FindTargetPoint(const ITEM_INFO *item, GAME_VECTOR *target); +void __cdecl Gun_FindTargetPoint(const ITEM *item, GAME_VECTOR *target); void __cdecl Gun_HitTarget( - ITEM_INFO *item, const GAME_VECTOR *hit_pos, int32_t damage); + ITEM *item, const GAME_VECTOR *hit_pos, int32_t damage); void __cdecl Gun_SmashItem(int16_t item_num, LARA_GUN_TYPE weapon_type); diff --git a/src/game/gun/gun_rifle.c b/src/game/gun/gun_rifle.c index 4cde241b..600043a0 100644 --- a/src/game/gun/gun_rifle.c +++ b/src/game/gun/gun_rifle.c @@ -146,7 +146,7 @@ void __cdecl Gun_Rifle_FireHarpoon(void) return; } - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->object_id = O_HARPOON_BOLT; item->room_num = g_LaraItem->room_num; @@ -200,7 +200,7 @@ void __cdecl Gun_Rifle_FireGrenade(void) return; } - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->object_id = O_GRENADE; item->room_num = g_LaraItem->room_num; @@ -230,7 +230,7 @@ void __cdecl Gun_Rifle_FireGrenade(void) void __cdecl Gun_Rifle_Draw(const LARA_GUN_TYPE weapon_type) { - ITEM_INFO *item; + ITEM *item; if (g_Lara.weapon_item != NO_ITEM) { item = &g_Items[g_Lara.weapon_item]; } else { @@ -273,7 +273,7 @@ void __cdecl Gun_Rifle_Draw(const LARA_GUN_TYPE weapon_type) void __cdecl Gun_Rifle_Undraw(const LARA_GUN_TYPE weapon_type) { - ITEM_INFO *const item = &g_Items[g_Lara.weapon_item]; + ITEM *const item = &g_Items[g_Lara.weapon_item]; if (g_Lara.water_status == LWS_SURFACE) { item->goal_anim_state = LA_G_SURF_UNDRAW; } else { @@ -309,7 +309,7 @@ void __cdecl Gun_Rifle_Undraw(const LARA_GUN_TYPE weapon_type) void __cdecl Gun_Rifle_Animate(const LARA_GUN_TYPE weapon_type) { const bool running = weapon_type == LGT_M16 && g_LaraItem->speed != 0; - ITEM_INFO *const item = &g_Items[g_Lara.weapon_item]; + ITEM *const item = &g_Items[g_Lara.weapon_item]; switch (item->current_anim_state) { case LA_G_AIM: diff --git a/src/game/inventory/common.c b/src/game/inventory/common.c index 4aa7bd40..11faddf4 100644 --- a/src/game/inventory/common.c +++ b/src/game/inventory/common.c @@ -882,7 +882,7 @@ void __cdecl Inv_DrawInventoryItem(INVENTORY_ITEM *const inv_item) Matrix_TranslateRel(0, inv_item->y_trans, inv_item->z_trans); Matrix_RotYXZ(inv_item->y_rot, inv_item->x_rot, 0); - const OBJECT_INFO *const obj = &g_Objects[inv_item->object_id]; + const OBJECT *const obj = &g_Objects[inv_item->object_id]; if ((obj->flags & 1) == 0) { return; } diff --git a/src/game/items.c b/src/game/items.c index a9cadec7..bcd698d8 100644 --- a/src/game/items.c +++ b/src/game/items.c @@ -57,7 +57,7 @@ void __cdecl Item_InitialiseArray(const int32_t num_items) g_NextItemActive = NO_ITEM; m_MaxUsedItemCount = g_LevelItemCount; for (int32_t i = g_NextItemFree; i < num_items - 1; i++) { - ITEM_INFO *const item = &g_Items[i]; + ITEM *const item = &g_Items[i]; item->active = 0; item->next_item = i + 1; } @@ -85,7 +85,7 @@ void __cdecl Item_Kill(const int16_t item_num) Item_RemoveActive(item_num); Item_RemoveDrawn(item_num); - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item == g_Lara.target) { g_Lara.target = NULL; } @@ -105,7 +105,7 @@ void __cdecl Item_Kill(const int16_t item_num) void __cdecl Item_Initialise(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->anim_num = g_Objects[item->object_id].anim_idx; item->frame_num = g_Anims[item->anim_num].frame_base; item->goal_anim_state = g_Anims[item->anim_num].current_anim_state; @@ -148,13 +148,13 @@ void __cdecl Item_Initialise(const int16_t item_num) item->status = IS_ACTIVE; } - ROOM_INFO *const room = &g_Rooms[item->room_num]; + ROOM *const room = &g_Rooms[item->room_num]; item->next_item = room->item_num; room->item_num = item_num; const int32_t dx = (item->pos.x - room->pos.x) >> WALL_SHIFT; const int32_t dz = (item->pos.z - room->pos.z) >> WALL_SHIFT; - const SECTOR_INFO *const sector = &room->sector[dx * room->z_size + dz]; + const SECTOR *const sector = &room->sector[dx * room->z_size + dz]; item->floor = sector->floor << 8; if (g_SaveGame.bonus_flag && !g_IsDemoLevelType) { @@ -168,7 +168,7 @@ void __cdecl Item_Initialise(const int16_t item_num) void __cdecl Item_RemoveActive(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!item->active) { return; } @@ -192,7 +192,7 @@ void __cdecl Item_RemoveActive(const int16_t item_num) void __cdecl Item_RemoveDrawn(const int16_t item_num) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; if (item->room_num == NO_ROOM) { return; } @@ -214,7 +214,7 @@ void __cdecl Item_RemoveDrawn(const int16_t item_num) void __cdecl Item_AddActive(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (g_Objects[item->object_id].control == NULL) { item->status = IS_INACTIVE; return; @@ -231,8 +231,8 @@ void __cdecl Item_AddActive(const int16_t item_num) void __cdecl Item_NewRoom(const int16_t item_num, const int16_t room_num) { - ITEM_INFO *const item = &g_Items[item_num]; - ROOM_INFO *room = NULL; + ITEM *const item = &g_Items[item_num]; + ROOM *room = NULL; if (item->room_num != NO_ROOM) { room = &g_Rooms[item->room_num]; @@ -265,7 +265,7 @@ int32_t __cdecl Item_GlobalReplace( for (int32_t i = 0; i < g_RoomCount; i++) { int16_t j = g_Rooms[i].item_num; while (j != NO_ITEM) { - ITEM_INFO *const item = &g_Items[j]; + ITEM *const item = &g_Items[j]; if (item->object_id == src_object_id) { item->object_id = dst_object_id; changed++; @@ -283,7 +283,7 @@ void __cdecl Item_ClearKilled(void) // improvements, generously used in Opera House and Barkhang Monastery int16_t link_num = g_PrevItemActive; while (link_num != NO_ITEM) { - ITEM_INFO *const item = &g_Items[link_num]; + ITEM *const item = &g_Items[link_num]; Item_Kill(link_num); link_num = item->next_active; item->next_active = NO_ITEM; @@ -291,12 +291,12 @@ void __cdecl Item_ClearKilled(void) g_PrevItemActive = NO_ITEM; } -bool Item_IsSmashable(const ITEM_INFO *item) +bool Item_IsSmashable(const ITEM *item) { return (item->object_id == O_WINDOW_1 || item->object_id == O_BELL); } -void __cdecl Item_ShiftCol(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Item_ShiftCol(ITEM *const item, COLL_INFO *const coll) { item->pos.x += coll->shift.x; item->pos.y += coll->shift.y; @@ -306,14 +306,14 @@ void __cdecl Item_ShiftCol(ITEM_INFO *const item, COLL_INFO *const coll) coll->shift.x = 0; } -void __cdecl Item_UpdateRoom(ITEM_INFO *const item, const int32_t height) +void __cdecl Item_UpdateRoom(ITEM *const item, const int32_t height) { int32_t x = item->pos.x; int32_t y = height + item->pos.y; int32_t z = item->pos.z; int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); item->floor = Room_GetHeight(sector, x, y, z); if (item->room_num != room_num) { Item_NewRoom(g_Lara.item_num, room_num); @@ -321,7 +321,7 @@ void __cdecl Item_UpdateRoom(ITEM_INFO *const item, const int32_t height) } int32_t __cdecl Item_TestBoundsCollide( - const ITEM_INFO *const src_item, const ITEM_INFO *const dst_item, + const ITEM *const src_item, const ITEM *const dst_item, const int32_t radius) { const BOUNDS_16 *const src_bounds = &Item_GetBestFrame(src_item)->bounds; @@ -351,8 +351,8 @@ int32_t __cdecl Item_TestBoundsCollide( } int32_t __cdecl Item_TestPosition( - const int16_t *const bounds_in, const ITEM_INFO *const src_item, - const ITEM_INFO *const dst_item) + const int16_t *const bounds_in, const ITEM *const src_item, + const ITEM *const dst_item) { const OBJECT_BOUNDS bounds = M_ConvertBounds(bounds_in); @@ -402,8 +402,7 @@ int32_t __cdecl Item_TestPosition( } void __cdecl Item_AlignPosition( - const XYZ_32 *const vec, const ITEM_INFO *const src_item, - ITEM_INFO *const dst_item) + const XYZ_32 *const vec, const ITEM *const src_item, ITEM *const dst_item) { dst_item->rot = src_item->rot; Matrix_PushUnit(); @@ -423,7 +422,7 @@ void __cdecl Item_AlignPosition( }; int16_t room_num = dst_item->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(new_pos.x, new_pos.y, new_pos.z, &room_num); const int32_t height = Room_GetHeight(sector, new_pos.x, new_pos.y, new_pos.z); @@ -440,7 +439,7 @@ void __cdecl Item_AlignPosition( dst_item->pos.z = new_pos.z; } -void __cdecl Item_Animate(ITEM_INFO *const item) +void __cdecl Item_Animate(ITEM *const item) { item->hit_status = 0; item->touch_bits = 0; @@ -585,8 +584,7 @@ void __cdecl Item_Animate(ITEM_INFO *const item) item->pos.z += (item->speed * Math_Cos(item->rot.y)) >> W2V_SHIFT; } -int32_t __cdecl Item_GetAnimChange( - ITEM_INFO *const item, const ANIM *const anim) +int32_t __cdecl Item_GetAnimChange(ITEM *const item, const ANIM *const anim) { if (item->current_anim_state == item->goal_anim_state) { return false; @@ -615,7 +613,7 @@ int32_t __cdecl Item_GetAnimChange( } void __cdecl Item_Translate( - ITEM_INFO *const item, const int32_t x, const int32_t y, const int32_t z) + ITEM *const item, const int32_t x, const int32_t y, const int32_t z) { const int32_t c = Math_Cos(item->rot.y); const int32_t s = Math_Sin(item->rot.y); @@ -624,7 +622,7 @@ void __cdecl Item_Translate( item->pos.z += ((c * z - s * x) >> W2V_SHIFT); } -int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *const item) +int32_t __cdecl Item_IsTriggerActive(ITEM *const item) { const bool ok = !(item->flags & IF_REVERSE); @@ -649,7 +647,7 @@ int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *const item) } int32_t __cdecl Item_GetFrames( - const ITEM_INFO *item, FRAME_INFO *frmptr[], int32_t *rate) + const ITEM *item, FRAME_INFO *frmptr[], int32_t *rate) { const ANIM *const anim = &g_Anims[item->anim_num]; const int32_t cur_frame_num = item->frame_num - anim->frame_base; @@ -676,7 +674,7 @@ int32_t __cdecl Item_GetFrames( return numerator; } -BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *const item) +BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM *const item) { int32_t rate; FRAME_INFO *frmptr[2]; @@ -698,7 +696,7 @@ BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *const item) return result; } -FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *const item) +FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM *const item) { FRAME_INFO *frmptr[2]; int32_t rate; @@ -707,8 +705,7 @@ FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *const item) } bool __cdecl Item_IsNearItem( - const ITEM_INFO *const item, const XYZ_32 *const pos, - const int32_t distance) + const ITEM *const item, const XYZ_32 *const pos, const int32_t distance) { const XYZ_32 d = { .x = pos->x - item->pos.x, @@ -727,13 +724,12 @@ bool __cdecl Item_IsNearItem( return d.y >= bounds->min_y && d.y <= bounds->max_y + 100; } -int32_t Item_GetDistance( - const ITEM_INFO *const item, const XYZ_32 *const target) +int32_t Item_GetDistance(const ITEM *const item, const XYZ_32 *const target) { return XYZ_32_GetDistance(&item->pos, target); } -ITEM_INFO *Item_Get(const int16_t item_num) +ITEM *Item_Get(const int16_t item_num) { return &g_Items[item_num]; } diff --git a/src/game/items.h b/src/game/items.h index 8884a2ba..a170f38e 100644 --- a/src/game/items.h +++ b/src/game/items.h @@ -14,25 +14,24 @@ void __cdecl Item_NewRoom(int16_t item_num, int16_t room_num); int32_t __cdecl Item_GlobalReplace( GAME_OBJECT_ID src_object_id, GAME_OBJECT_ID dst_object_id); void __cdecl Item_ClearKilled(void); -void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); +void __cdecl Item_ShiftCol(ITEM *item, COLL_INFO *coll); +void __cdecl Item_UpdateRoom(ITEM *item, int32_t height); int32_t __cdecl Item_TestBoundsCollide( - const ITEM_INFO *src_item, const ITEM_INFO *dst_item, int32_t radius); + const ITEM *src_item, const ITEM *dst_item, int32_t radius); int32_t __cdecl Item_TestPosition( - const int16_t *bounds, const ITEM_INFO *src_item, - const ITEM_INFO *dst_item); + const int16_t *bounds, const ITEM *src_item, const ITEM *dst_item); void __cdecl Item_AlignPosition( - const XYZ_32 *vec, const ITEM_INFO *src_item, ITEM_INFO *dst_item); -void __cdecl Item_Animate(ITEM_INFO *item); -int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, const ANIM *anim); -void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); -int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); + const XYZ_32 *vec, const ITEM *src_item, ITEM *dst_item); +void __cdecl Item_Animate(ITEM *item); +int32_t __cdecl Item_GetAnimChange(ITEM *item, const ANIM *anim); +void __cdecl Item_Translate(ITEM *item, int32_t x, int32_t y, int32_t z); +int32_t __cdecl Item_IsTriggerActive(ITEM *item); int32_t __cdecl Item_GetFrames( - const ITEM_INFO *item, FRAME_INFO *frmptr[], int32_t *rate); -BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); -FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM_INFO *item); + const ITEM *item, FRAME_INFO *frmptr[], int32_t *rate); +BOUNDS_16 *__cdecl Item_GetBoundsAccurate(const ITEM *item); +FRAME_INFO *__cdecl Item_GetBestFrame(const ITEM *item); bool __cdecl Item_IsNearItem( - const ITEM_INFO *item, const XYZ_32 *pos, int32_t distance); + const ITEM *item, const XYZ_32 *pos, int32_t distance); -bool Item_IsSmashable(const ITEM_INFO *item); -int32_t Item_GetDistance(const ITEM_INFO *item, const XYZ_32 *target); +bool Item_IsSmashable(const ITEM *item); +int32_t Item_GetDistance(const ITEM *item, const XYZ_32 *target); diff --git a/src/game/lara/cheat.c b/src/game/lara/cheat.c index 90765c87..b041bae7 100644 --- a/src/game/lara/cheat.c +++ b/src/game/lara/cheat.c @@ -163,7 +163,7 @@ bool Lara_Cheat_ExitFlyMode(void) return false; } - const ROOM_INFO *const room = &g_Rooms[g_LaraItem->room_num]; + const ROOM *const room = &g_Rooms[g_LaraItem->room_num]; const bool room_submerged = (room->flags & RF_UNDERWATER) != 0; const int16_t water_height = Room_GetWaterHeight( g_LaraItem->pos.x, g_LaraItem->pos.y, g_LaraItem->pos.z, @@ -206,7 +206,7 @@ bool Lara_Cheat_OpenNearestDoor(void) const int32_t shift = 8; // constant shift to avoid overflow errors const int32_t max_dist = SQUARE((WALL_L * 2) >> shift); for (int item_num = 0; item_num < g_LevelItemCount; item_num++) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!Object_IsObjectType(item->object_id, g_DoorObjects) && !Object_IsObjectType(item->object_id, g_TrapdoorObjects)) { continue; @@ -297,7 +297,7 @@ bool Lara_Cheat_Teleport(int32_t x, int32_t y, int32_t z) return false; } - const SECTOR_INFO *sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *sector = Room_GetSector(x, y, z, &room_num); int16_t height = Room_GetHeight(sector, x, y, z); if (height == NO_HEIGHT) { @@ -377,7 +377,7 @@ bool Lara_Cheat_Teleport(int32_t x, int32_t y, int32_t z) Lara_GetOffVehicle(); if (g_Lara.extra_anim) { - const ROOM_INFO *const room = &g_Rooms[g_LaraItem->room_num]; + const ROOM *const room = &g_Rooms[g_LaraItem->room_num]; const bool room_submerged = (room->flags & RF_UNDERWATER) != 0; const int16_t water_height = Room_GetWaterHeight( g_LaraItem->pos.x, g_LaraItem->pos.y, g_LaraItem->pos.z, @@ -426,7 +426,7 @@ bool Lara_Cheat_Teleport(int32_t x, int32_t y, int32_t z) bool Lara_Cheat_KillEnemy(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if ((item->hit_points == DONT_TARGET && item->object_id != O_WINSTON)) { return false; } diff --git a/src/game/lara/col.c b/src/game/lara/col.c index 6f694516..354424ab 100644 --- a/src/game/lara/col.c +++ b/src/game/lara/col.c @@ -14,8 +14,7 @@ #include -void __cdecl Lara_CollideStop( - ITEM_INFO *const item, const COLL_INFO *const coll) +void __cdecl Lara_CollideStop(ITEM *const item, const COLL_INFO *const coll) { switch (coll->old_anim_state) { case LS_STOP: @@ -42,7 +41,7 @@ void __cdecl Lara_CollideStop( } } -bool __cdecl Lara_Fallen(ITEM_INFO *const item, const COLL_INFO *const coll) +bool __cdecl Lara_Fallen(ITEM *const item, const COLL_INFO *const coll) { if (coll->side_mid.floor <= STEPUP_HEIGHT || g_Lara.water_status == LWS_WADE) { @@ -58,7 +57,7 @@ bool __cdecl Lara_Fallen(ITEM_INFO *const item, const COLL_INFO *const coll) } bool __cdecl Lara_TestWaterClimbOut( - ITEM_INFO *const item, const COLL_INFO *const coll) + ITEM *const item, const COLL_INFO *const coll) { if (coll->coll_type != COLL_FRONT || !(g_Input & IN_ACTION) || coll->side_front.type == HT_BIG_SLOPE) { @@ -140,7 +139,7 @@ bool __cdecl Lara_TestWaterClimbOut( } bool __cdecl Lara_TestWaterStepOut( - ITEM_INFO *const item, const COLL_INFO *const coll) + ITEM *const item, const COLL_INFO *const coll) { if (coll->coll_type == COLL_FRONT || coll->side_mid.type == HT_BIG_SLOPE || coll->side_mid.floor >= 0) { @@ -174,7 +173,7 @@ bool __cdecl Lara_TestWaterStepOut( return true; } -void __cdecl Lara_SurfaceCollision(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Lara_SurfaceCollision(ITEM *const item, COLL_INFO *const coll) { coll->facing = g_Lara.move_angle; Collide_GetCollisionInfo( @@ -212,7 +211,7 @@ void __cdecl Lara_SurfaceCollision(ITEM_INFO *const item, COLL_INFO *const coll) Lara_TestWaterStepOut(item, coll); } -void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Walk(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -275,7 +274,7 @@ void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Run(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->slopes_are_walls = 1; @@ -329,7 +328,7 @@ void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += MIN(coll->side_mid.floor, 50); } -void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Stop(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -350,7 +349,7 @@ void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_ForwardJump(ITEM *item, COLL_INFO *coll) { if (item->speed < 0) { g_Lara.move_angle = item->rot.y + PHD_180; @@ -388,7 +387,7 @@ void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll) Lara_Animate(item); } -void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_FastBack(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -419,7 +418,7 @@ void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_TurnRight(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -446,12 +445,12 @@ void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_TurnLeft(ITEM *item, COLL_INFO *coll) { Lara_Col_TurnRight(item, coll); } -void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Death(ITEM *item, COLL_INFO *coll) { Sound_StopEffect(SFX_LARA_FALL); g_Lara.move_angle = item->rot.y; @@ -468,7 +467,7 @@ void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll) g_Lara.air = -1; } -void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_FastFall(ITEM *item, COLL_INFO *coll) { item->gravity = 1; coll->bad_pos = NO_BAD_POS; @@ -496,7 +495,7 @@ void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll) { Lara_HangTest(item, coll); if (item->goal_anim_state != LS_HANG) { @@ -533,7 +532,7 @@ void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Reach(ITEM *item, COLL_INFO *coll) { item->gravity = 1; g_Lara.move_angle = item->rot.y; @@ -561,7 +560,7 @@ void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Splat(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->slopes_are_pits = 1; @@ -578,12 +577,12 @@ void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Land(ITEM *item, COLL_INFO *coll) { Lara_Col_Stop(item, coll); } -void __cdecl Lara_Col_Compress(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Compress(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -611,7 +610,7 @@ void __cdecl Lara_Col_Compress(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Back(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -655,7 +654,7 @@ void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_StepRight(ITEM *item, COLL_INFO *coll) { if (item->current_anim_state == LS_STEP_RIGHT) { g_Lara.move_angle = item->rot.y + PHD_90; @@ -689,36 +688,36 @@ void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_StepLeft(ITEM *item, COLL_INFO *coll) { Lara_Col_StepRight(item, coll); } -void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Slide(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; Lara_SlideSlope(item, coll); } -void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_BackJump(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_180; Lara_Col_Jumper(item, coll); } -void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_RightJump(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_90; Lara_Col_Jumper(item, coll); } -void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_LeftJump(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y - PHD_90; Lara_Col_Jumper(item, coll); } -void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_UpJump(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->bad_pos = NO_BAD_POS; @@ -761,7 +760,7 @@ void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Fallback(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_180; coll->bad_pos = NO_BAD_POS; @@ -786,32 +785,32 @@ void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_HangLeft(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y - PHD_90; Lara_HangTest(item, coll); g_Lara.move_angle = item->rot.y - PHD_90; } -void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_HangRight(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_90; Lara_HangTest(item, coll); g_Lara.move_angle = item->rot.y + PHD_90; } -void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SlideBack(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_180; Lara_SlideSlope(item, coll); } -void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Null(ITEM *item, COLL_INFO *coll) { Lara_Col_Default(item, coll); } -void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Roll(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -831,7 +830,7 @@ void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Roll2(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -859,7 +858,7 @@ void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SwanDive(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->bad_pos = NO_BAD_POS; @@ -878,7 +877,7 @@ void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_FastDive(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->bad_pos = NO_BAD_POS; @@ -902,7 +901,7 @@ void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Wade(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->slopes_are_walls = 1; @@ -956,7 +955,7 @@ void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += MIN(coll->side_mid.floor, 50); } -void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Default(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; coll->slopes_are_walls = 1; @@ -967,7 +966,7 @@ void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll) Lara_GetCollisionInfo(item, coll); } -void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Jumper(ITEM *item, COLL_INFO *coll) { coll->bad_pos = NO_BAD_POS; coll->bad_neg = -STEPUP_HEIGHT; @@ -989,7 +988,7 @@ void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += coll->side_mid.floor; } -void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_ClimbLeft(ITEM *item, COLL_INFO *coll) { if (Lara_CheckForLetGo(item, coll)) { return; @@ -1004,7 +1003,7 @@ void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll) Lara_DoClimbLeftRight(item, coll, result, shift); } -void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_ClimbRight(ITEM *item, COLL_INFO *coll) { if (Lara_CheckForLetGo(item, coll)) { return; @@ -1018,7 +1017,7 @@ void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll) Lara_DoClimbLeftRight(item, coll, result, shift); } -void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_ClimbStance(ITEM *item, COLL_INFO *coll) { if (Lara_CheckForLetGo(item, coll) || item->anim_num != LA_LADDER_IDLE) { return; @@ -1118,7 +1117,7 @@ void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Climbing(ITEM *item, COLL_INFO *coll) { if (Lara_CheckForLetGo(item, coll) || item->anim_num != LA_LADDER_UP) { return; @@ -1174,7 +1173,7 @@ void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll) item->pos.y -= yshift; } -void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_ClimbDown(ITEM *item, COLL_INFO *coll) { if (Lara_CheckForLetGo(item, coll) || item->anim_num != LA_LADDER_DOWN) { return; @@ -1245,7 +1244,7 @@ void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll) item->pos.y -= yshift; } -void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SurfSwim(ITEM *item, COLL_INFO *coll) { coll->bad_neg = -STEPUP_HEIGHT; g_Lara.move_angle = item->rot.y; @@ -1253,36 +1252,36 @@ void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll) Lara_TestWaterClimbOut(item, coll); } -void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SurfBack(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_180; Lara_SurfaceCollision(item, coll); } -void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SurfLeft(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y - PHD_90; Lara_SurfaceCollision(item, coll); } -void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SurfRight(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y + PHD_90; Lara_SurfaceCollision(item, coll); } -void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_SurfTread(ITEM *item, COLL_INFO *coll) { g_Lara.move_angle = item->rot.y; Lara_SurfaceCollision(item, coll); } -void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_Swim(ITEM *item, COLL_INFO *coll) { Lara_SwimCollision(item, coll); } -void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_Col_UWDeath(ITEM *item, COLL_INFO *coll) { item->hit_points = -1; g_Lara.air = -1; diff --git a/src/game/lara/col.h b/src/game/lara/col.h index f26ed767..d4d5b456 100644 --- a/src/game/lara/col.h +++ b/src/game/lara/col.h @@ -3,55 +3,55 @@ #include "global/types.h" // TODO: make static -void __cdecl Lara_CollideStop(ITEM_INFO *item, const COLL_INFO *coll); -bool __cdecl Lara_Fallen(ITEM_INFO *item, const COLL_INFO *coll); -bool __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, const COLL_INFO *coll); -bool __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, const COLL_INFO *coll); -void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_CollideStop(ITEM *item, const COLL_INFO *coll); +bool __cdecl Lara_Fallen(ITEM *item, const COLL_INFO *coll); +bool __cdecl Lara_TestWaterClimbOut(ITEM *item, const COLL_INFO *coll); +bool __cdecl Lara_TestWaterStepOut(ITEM *item, const COLL_INFO *coll); +void __cdecl Lara_SurfaceCollision(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Compress(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_Col_Walk(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Run(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Stop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ForwardJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_TurnLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Death(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastFall(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Reach(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Splat(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Land(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Compress(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Back(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_StepRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_StepLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Slide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_BackJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_UpJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Fallback(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_HangRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SlideBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Roll2(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SwanDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_FastDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Wade(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Default(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Jumper(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Climbing(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_ClimbDown(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfSwim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_SurfTread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_Swim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_Col_UWDeath(ITEM *item, COLL_INFO *coll); diff --git a/src/game/lara/common.c b/src/game/lara/common.c index 10eafdc6..d1799d0d 100644 --- a/src/game/lara/common.c +++ b/src/game/lara/common.c @@ -7,7 +7,7 @@ LARA_INFO *Lara_GetLaraInfo(void) return &g_Lara; } -ITEM_INFO *Lara_GetItem(void) +ITEM *Lara_GetItem(void) { return g_LaraItem; } diff --git a/src/game/lara/control.c b/src/game/lara/control.c index 2444c003..ac6fb0c0 100644 --- a/src/game/lara/control.c +++ b/src/game/lara/control.c @@ -20,7 +20,7 @@ static int32_t m_OpenDoorsCheatCooldown = 0; -void __cdecl Lara_HandleAboveWater(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Lara_HandleAboveWater(ITEM *const item, COLL_INFO *const coll) { coll->old.x = item->pos.x; coll->old.y = item->pos.y; @@ -92,7 +92,7 @@ void __cdecl Lara_HandleAboveWater(ITEM_INFO *const item, COLL_INFO *const coll) Room_TestTriggers(coll->trigger, 0); } -void __cdecl Lara_HandleSurface(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Lara_HandleSurface(ITEM *const item, COLL_INFO *const coll) { g_Camera.target_elevation = -22 * PHD_DEGREE; @@ -150,7 +150,7 @@ void __cdecl Lara_HandleSurface(ITEM_INFO *const item, COLL_INFO *const coll) Room_TestTriggers(coll->trigger, 0); } -void __cdecl Lara_HandleUnderwater(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Lara_HandleUnderwater(ITEM *const item, COLL_INFO *const coll) { coll->old.x = item->pos.x; coll->old.y = item->pos.y; @@ -241,7 +241,7 @@ void __cdecl Lara_HandleUnderwater(ITEM_INFO *const item, COLL_INFO *const coll) void __cdecl Lara_Control(const int16_t item_num) { - ITEM_INFO *const item = g_LaraItem; + ITEM *const item = g_LaraItem; const bool room_submerged = g_Rooms[item->room_num].flags & RF_UNDERWATER; const int32_t water_depth = Lara_GetWaterDepth( @@ -494,7 +494,7 @@ void __cdecl Lara_ControlExtra(const int16_t item_num) Item_Animate(&g_Items[item_num]); } -void __cdecl Lara_Animate(ITEM_INFO *const item) +void __cdecl Lara_Animate(ITEM *const item) { item->frame_num++; @@ -635,7 +635,7 @@ void __cdecl Lara_Animate(ITEM_INFO *const item) void __cdecl Lara_UseItem(const GAME_OBJECT_ID object_id) { - ITEM_INFO *const item = g_LaraItem; + ITEM *const item = g_LaraItem; switch (object_id) { case O_PISTOL_ITEM: @@ -712,7 +712,7 @@ void __cdecl Lara_InitialiseLoad(const int16_t item_num) void __cdecl Lara_Initialise(const GF_LEVEL_TYPE type) { - ITEM_INFO *const item = g_LaraItem; + ITEM *const item = g_LaraItem; item->data = &g_Lara; item->collidable = 0; @@ -970,7 +970,7 @@ void Lara_SwapSingleMesh(const LARA_MESH mesh, const GAME_OBJECT_ID object_id) void Lara_GetOffVehicle(void) { if (g_Lara.skidoo != NO_ITEM) { - ITEM_INFO *const vehicle = &g_Items[g_Lara.skidoo]; + ITEM *const vehicle = &g_Items[g_Lara.skidoo]; vehicle->anim_num = g_Objects[vehicle->object_id].anim_idx; vehicle->frame_num = g_Anims[vehicle->anim_num].frame_base; g_Lara.skidoo = NO_ITEM; @@ -992,7 +992,7 @@ int16_t Lara_GetNearestEnemy(void) int16_t best_item_num = NO_ITEM; int16_t item_num = g_NextItemActive; while (item_num != NO_ITEM) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; if (Creature_IsEnemy(item)) { const int32_t distance = Item_GetDistance(item, &g_LaraItem->pos); diff --git a/src/game/lara/control.h b/src/game/lara/control.h index 67e5b38d..d80f5660 100644 --- a/src/game/lara/control.h +++ b/src/game/lara/control.h @@ -2,16 +2,16 @@ #include "global/types.h" -void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HandleAboveWater(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HandleSurface(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HandleUnderwater(ITEM *item, COLL_INFO *coll); void __cdecl Lara_Control(int16_t item_num); void __cdecl Lara_ControlExtra(int16_t item_num); -void __cdecl Lara_Animate(ITEM_INFO *item); +void __cdecl Lara_Animate(ITEM *item); void __cdecl Lara_UseItem(GAME_OBJECT_ID object_id); diff --git a/src/game/lara/draw.c b/src/game/lara/draw.c index db40e696..9bef0d73 100644 --- a/src/game/lara/draw.c +++ b/src/game/lara/draw.c @@ -7,7 +7,7 @@ #include "global/funcs.h" #include "global/vars.h" -void __cdecl Lara_Draw(const ITEM_INFO *const item) +void __cdecl Lara_Draw(const ITEM *const item) { FRAME_INFO *frame; MATRIX saved_matrix; @@ -32,7 +32,7 @@ void __cdecl Lara_Draw(const ITEM_INFO *const item) } } - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + const OBJECT *const object = &g_Objects[item->object_id]; if (g_Lara.hit_direction < 0) { frame = frames[0]; } else { @@ -342,10 +342,10 @@ void __cdecl Lara_Draw(const ITEM_INFO *const item) } void __cdecl Lara_Draw_I( - const ITEM_INFO *const item, const FRAME_INFO *const frame1, + const ITEM *const item, const FRAME_INFO *const frame1, const FRAME_INFO *const frame2, const int32_t frac, const int32_t rate) { - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + const OBJECT *const object = &g_Objects[item->object_id]; const BOUNDS_16 *const bounds = Item_GetBoundsAccurate(item); if (g_Lara.skidoo == NO_ITEM) { diff --git a/src/game/lara/draw.h b/src/game/lara/draw.h index ec1964f8..544e44b9 100644 --- a/src/game/lara/draw.h +++ b/src/game/lara/draw.h @@ -2,7 +2,7 @@ #include "global/types.h" -void __cdecl Lara_Draw(const ITEM_INFO *item); +void __cdecl Lara_Draw(const ITEM *item); void __cdecl Lara_Draw_I( - const ITEM_INFO *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, + const ITEM *item, const FRAME_INFO *frame1, const FRAME_INFO *frame2, int32_t frac, int32_t rate); diff --git a/src/game/lara/misc.c b/src/game/lara/misc.c index 677d99d3..4da0cacd 100644 --- a/src/game/lara/misc.c +++ b/src/game/lara/misc.c @@ -27,10 +27,10 @@ #define CLIMB_SHIFT 70 static void __cdecl M_TakeHit( - ITEM_INFO *const lara_item, const int32_t dx, const int32_t dz); + ITEM *const lara_item, const int32_t dx, const int32_t dz); static void __cdecl M_TakeHit( - ITEM_INFO *const lara_item, const int32_t dx, const int32_t dz) + ITEM *const lara_item, const int32_t dx, const int32_t dz) { const PHD_ANGLE hit_angle = lara_item->rot.y + PHD_180 - Math_Atan(dz, dx); g_Lara.hit_direction = Math_GetDirection(hit_angle); @@ -41,7 +41,7 @@ static void __cdecl M_TakeHit( CLAMPG(g_Lara.hit_frame, 34); } -void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_GetCollisionInfo(ITEM *item, COLL_INFO *coll) { coll->facing = g_Lara.move_angle; Collide_GetCollisionInfo( @@ -49,7 +49,7 @@ void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll) LARA_HEIGHT); } -void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_SlideSlope(ITEM *item, COLL_INFO *coll) { coll->bad_pos = NO_BAD_POS; coll->bad_neg = -STEP_L * 2; @@ -86,7 +86,7 @@ void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll) } } -int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_HitCeiling(ITEM *item, COLL_INFO *coll) { if (coll->coll_type != COLL_TOP && coll->coll_type != COLL_CLAMP) { return 0; @@ -105,7 +105,7 @@ int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll) return 1; } -int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_DeflectEdge(ITEM *item, COLL_INFO *coll) { switch (coll->coll_type) { case COLL_FRONT: @@ -132,7 +132,7 @@ int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_DeflectEdgeJump(ITEM *item, COLL_INFO *coll) { Item_ShiftCol(item, coll); switch (coll->coll_type) { @@ -183,7 +183,7 @@ void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_SlideEdgeJump(ITEM *item, COLL_INFO *coll) { Item_ShiftCol(item, coll); @@ -217,7 +217,7 @@ void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll) } int32_t __cdecl Lara_TestWall( - ITEM_INFO *item, int32_t front, int32_t right, int32_t down) + ITEM *item, int32_t front, int32_t right, int32_t down) { int32_t x = item->pos.x; int32_t y = item->pos.y + down; @@ -261,7 +261,7 @@ int32_t __cdecl Lara_TestWall( break; } - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z); const int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (height == NO_HEIGHT) { @@ -273,7 +273,7 @@ int32_t __cdecl Lara_TestWall( return 2; } -int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestHangOnClimbWall(ITEM *item, COLL_INFO *coll) { if (!g_Lara.climb_status || item->fall_speed < 0) { return 0; @@ -320,7 +320,7 @@ int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll) } } -int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestClimbStance(ITEM *item, COLL_INFO *coll) { int32_t shift_r; int32_t result_r = Lara_TestClimbPos( @@ -362,7 +362,7 @@ int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll) return 1; } -void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_HangTest(ITEM *item, COLL_INFO *coll) { coll->bad_pos = NO_BAD_POS; coll->bad_neg = NO_BAD_NEG; @@ -496,8 +496,7 @@ void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll) item->pos.y += hdif; } -int32_t __cdecl Lara_TestEdgeCatch( - ITEM_INFO *item, COLL_INFO *coll, int32_t *edge) +int32_t __cdecl Lara_TestEdgeCatch(ITEM *item, COLL_INFO *coll, int32_t *edge) { const BOUNDS_16 *const bounds = Item_GetBoundsAccurate(item); int32_t hdif1 = coll->side_front.floor - bounds->min_y; @@ -519,7 +518,7 @@ int32_t __cdecl Lara_TestEdgeCatch( return ABS(coll->side_left.floor - coll->side_right.floor) < SLOPE_DIF; } -int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestHangJumpUp(ITEM *item, COLL_INFO *coll) { if (coll->coll_type != COLL_FRONT || !(g_Input & IN_ACTION) || g_Lara.gun_status != LGS_ARMLESS || coll->hit_static @@ -561,7 +560,7 @@ int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll) return 1; } -int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestHangJump(ITEM *item, COLL_INFO *coll) { if (coll->coll_type != COLL_FRONT || !(g_Input & IN_ACTION) || g_Lara.gun_status != LGS_ARMLESS || coll->hit_static @@ -610,7 +609,7 @@ int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll) return 1; } -int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle) +int32_t __cdecl Lara_TestHangSwingIn(ITEM *item, PHD_ANGLE angle) { int32_t x = item->pos.x; int32_t y = item->pos.y; @@ -631,13 +630,13 @@ int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle) break; } - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); int32_t height = Room_GetHeight(sector, x, y, z); int32_t ceiling = Room_GetCeiling(sector, x, y, z); return height != NO_HEIGHT && height - y > 0 && ceiling - y < -400; } -int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestVault(ITEM *item, COLL_INFO *coll) { if (coll->coll_type != COLL_FRONT || !(g_Input & IN_ACTION) || g_Lara.gun_status != LGS_ARMLESS) { @@ -730,7 +729,7 @@ int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll) return 1; } -int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_TestSlide(ITEM *item, COLL_INFO *coll) { if (ABS(coll->x_tilt) <= 2 && ABS(coll->z_tilt) <= 2) { return 0; @@ -779,13 +778,13 @@ int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll) return 1; } -int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, int16_t ang, int32_t dist) +int16_t __cdecl Lara_FloorFront(ITEM *item, int16_t ang, int32_t dist) { const int32_t x = item->pos.x + ((dist * Math_Sin(ang)) >> W2V_SHIFT); const int32_t y = item->pos.y - LARA_HEIGHT; const int32_t z = item->pos.z + ((dist * Math_Cos(ang)) >> W2V_SHIFT); int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); int32_t height = Room_GetHeight(sector, x, y, z); if (height != NO_HEIGHT) { height -= item->pos.y; @@ -793,14 +792,14 @@ int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, int16_t ang, int32_t dist) return height; } -int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_LandedBad(ITEM *item, COLL_INFO *coll) { const int32_t x = item->pos.x; const int32_t y = item->pos.y; const int32_t z = item->pos.z; int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y - LARA_HEIGHT, z); item->pos.y = height; item->floor = height; @@ -820,7 +819,7 @@ int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll) return item->hit_points <= 0; } -int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll) +int32_t __cdecl Lara_CheckForLetGo(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed = 0; @@ -829,7 +828,7 @@ int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll) int32_t x = item->pos.x; int32_t y = item->pos.y; int32_t z = item->pos.z; - const SECTOR_INFO *const sector = Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); Room_GetHeight(sector, x, y, z); coll->trigger = g_TriggerIndex; if ((g_Input & IN_ACTION) && item->hit_points > 0) { @@ -861,7 +860,7 @@ void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint) } const FRAME_INFO *frame_ptr = NULL; - const OBJECT_INFO *obj = &g_Objects[g_LaraItem->object_id]; + const OBJECT *obj = &g_Objects[g_LaraItem->object_id]; if (g_Lara.hit_direction >= 0) { LARA_ANIMATION anim_num; switch (g_Lara.hit_direction) { @@ -953,10 +952,10 @@ void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint) } void __cdecl Lara_GetJointAbsPosition_I( - ITEM_INFO *item, XYZ_32 *vec, FRAME_INFO *frame1, FRAME_INFO *frame2, + ITEM *item, XYZ_32 *vec, FRAME_INFO *frame1, FRAME_INFO *frame2, int32_t frac, int32_t rate) { - const OBJECT_INFO *obj = &g_Objects[item->object_id]; + const OBJECT *obj = &g_Objects[item->object_id]; Matrix_PushUnit(); g_MatrixPtr->_03 = 0; @@ -1029,8 +1028,7 @@ void __cdecl Lara_GetJointAbsPosition_I( Matrix_Pop(); } -void __cdecl Lara_TakeHit( - ITEM_INFO *const lara_item, const COLL_INFO *const coll) +void __cdecl Lara_TakeHit(ITEM *const lara_item, const COLL_INFO *const coll) { const int32_t dx = g_Lara.spaz_effect->pos.x - lara_item->pos.x; const int32_t dz = g_Lara.spaz_effect->pos.z - lara_item->pos.z; @@ -1038,7 +1036,7 @@ void __cdecl Lara_TakeHit( g_Lara.spaz_effect_count--; } -void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll) +void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll) { lara_item->hit_status = 0; g_Lara.hit_direction = -1; @@ -1051,27 +1049,27 @@ void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll) roomies[roomies_count++] = lara_item->room_num; - DOOR_INFOS *doors = g_Rooms[roomies[0]].doors; - if (doors != NULL) { - for (int32_t i = 0; i < doors->count; i++) { + PORTALS *portals = g_Rooms[roomies[0]].portals; + if (portals != NULL) { + for (int32_t i = 0; i < portals->count; i++) { if (roomies_count >= MAX_BADDIE_COLLISION) { break; } - roomies[roomies_count++] = doors->door[i].room; + roomies[roomies_count++] = portals->portal[i].room; } } for (int32_t i = 0; i < roomies_count; i++) { int16_t item_num = g_Rooms[roomies[i]].item_num; while (item_num != NO_ITEM) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; // the collision routine can destroy the item - need to store the // next item beforehand const int16_t next_item_num = item->next_item; if (item->collidable && item->status != IS_INVISIBLE) { - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + const OBJECT *const object = &g_Objects[item->object_id]; if (object->collision) { // clang-format off const XYZ_32 d = { @@ -1104,8 +1102,8 @@ void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll) } void __cdecl Lara_Push( - const ITEM_INFO *const item, ITEM_INFO *const lara_item, - COLL_INFO *const coll, const bool spaz_on, const bool big_push) + const ITEM *const item, ITEM *const lara_item, COLL_INFO *const coll, + const bool spaz_on, const bool big_push) { int32_t dx = lara_item->pos.x - item->pos.x; int32_t dz = lara_item->pos.z - item->pos.z; @@ -1180,8 +1178,7 @@ void __cdecl Lara_Push( } } -int32_t __cdecl Lara_MovePosition( - XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item) +int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM *item, ITEM *lara_item) { const XYZ_16 rot = { .x = item->rot.x, @@ -1207,7 +1204,7 @@ int32_t __cdecl Lara_MovePosition( if (item->object_id == O_FLARE_ITEM) { int16_t room_num = lara_item->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(new_pos.x, new_pos.y, new_pos.z, &room_num); const int32_t height = Room_GetHeight(sector, new_pos.x, new_pos.y, new_pos.z); @@ -1251,7 +1248,7 @@ int32_t __cdecl Lara_TestClimb( return 0; } - const SECTOR_INFO *sector; + const SECTOR *sector; int32_t height; int32_t ceiling; @@ -1360,7 +1357,7 @@ int32_t __cdecl Lara_TestClimb( } int32_t __cdecl Lara_TestClimbPos( - const ITEM_INFO *const item, const int32_t front, const int32_t right, + const ITEM *const item, const int32_t front, const int32_t right, const int32_t origin, const int32_t height, int32_t *const shift) { const int32_t y = item->pos.y + origin; @@ -1405,7 +1402,7 @@ int32_t __cdecl Lara_TestClimbPos( } void __cdecl Lara_DoClimbLeftRight( - ITEM_INFO *const item, const COLL_INFO *const coll, const int32_t result, + ITEM *const item, const COLL_INFO *const coll, const int32_t result, const int32_t shift) { if (result == 1) { @@ -1445,7 +1442,7 @@ void __cdecl Lara_DoClimbLeftRight( } int32_t __cdecl Lara_TestClimbUpPos( - const ITEM_INFO *const item, const int32_t front, const int32_t right, + const ITEM *const item, const int32_t front, const int32_t right, int32_t *const shift, int32_t *const ledge) { const int32_t y = item->pos.y - LARA_CLIMB_HEIGHT - STEP_L; @@ -1487,7 +1484,7 @@ int32_t __cdecl Lara_TestClimbUpPos( *shift = 0; - const SECTOR_INFO *sector; + const SECTOR *sector; int32_t height; int32_t ceiling; @@ -1548,8 +1545,8 @@ int32_t __cdecl Lara_TestClimbUpPos( int32_t __cdecl Lara_GetWaterDepth( const int32_t x, const int32_t y, const int32_t z, int16_t room_num) { - const ROOM_INFO *r = &g_Rooms[room_num]; - const SECTOR_INFO *sector; + const ROOM *r = &g_Rooms[room_num]; + const SECTOR *sector; while (true) { int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; @@ -1613,12 +1610,11 @@ int32_t __cdecl Lara_GetWaterDepth( return NO_HEIGHT; } -void __cdecl Lara_TestWaterDepth( - ITEM_INFO *const item, const COLL_INFO *const coll) +void __cdecl Lara_TestWaterDepth(ITEM *const item, const COLL_INFO *const coll) { int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); const int32_t water_depth = Lara_GetWaterDepth(item->pos.x, item->pos.y, item->pos.z, room_num); @@ -1642,7 +1638,7 @@ void __cdecl Lara_TestWaterDepth( } } -void __cdecl Lara_SwimCollision(ITEM_INFO *const item, COLL_INFO *const coll) +void __cdecl Lara_SwimCollision(ITEM *const item, COLL_INFO *const coll) { if (item->rot.x < -PHD_90 || item->rot.x > PHD_90) { g_Lara.move_angle = item->rot.y + PHD_180; @@ -1711,10 +1707,10 @@ void __cdecl Lara_SwimCollision(ITEM_INFO *const item, COLL_INFO *const coll) void __cdecl Lara_WaterCurrent(COLL_INFO *const coll) { - ITEM_INFO *const item = g_LaraItem; + ITEM *const item = g_LaraItem; int16_t room_num = g_LaraItem->room_num; - const ROOM_INFO *const r = &g_Rooms[g_LaraItem->room_num]; + const ROOM *const r = &g_Rooms[g_LaraItem->room_num]; const int32_t z_sector = (g_LaraItem->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (g_LaraItem->pos.x - r->pos.x) >> WALL_SHIFT; g_LaraItem->box_num = r->sector[z_sector + x_sector * r->z_size].box; @@ -1815,21 +1811,21 @@ void __cdecl Lara_CatchFire(void) return; } - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->frame_num = 0; fx->object_id = O_FLAME; fx->counter = -1; g_Lara.burn = 1; } -void __cdecl Lara_TouchLava(ITEM_INFO *const item) +void __cdecl Lara_TouchLava(ITEM *const item) { if (item->hit_points < 0 || g_Lara.water_status == LWS_CHEAT) { return; } int16_t room_num = item->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(item->pos.x, MAX_HEIGHT, item->pos.z, &room_num); const int32_t height = Room_GetHeight(sector, item->pos.x, MAX_HEIGHT, item->pos.z); @@ -1843,7 +1839,7 @@ void __cdecl Lara_TouchLava(ITEM_INFO *const item) for (int32_t i = 0; i < 10; i++) { const int16_t fx_num = Effect_Create(item->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->object_id = O_FLAME; fx->frame_num = g_Objects[O_FLAME].mesh_count * Random_GetControl() / 0x7FFF; @@ -1863,7 +1859,7 @@ void __cdecl Lara_Extinguish(void) // put out flame objects int16_t fx_num = g_NextEffectActive; while (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; const int16_t next_fx_num = fx->next_active; if (fx->object_id == O_FLAME && fx->counter < 0) { fx->counter = 0; diff --git a/src/game/lara/misc.h b/src/game/lara/misc.h index 6475d284..06f02cf7 100644 --- a/src/game/lara/misc.h +++ b/src/game/lara/misc.h @@ -2,59 +2,57 @@ #include "global/types.h" -void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_GetCollisionInfo(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SlideSlope(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_HitCeiling(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_DeflectEdge(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_DeflectEdgeJump(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SlideEdgeJump(ITEM *item, COLL_INFO *coll); int32_t __cdecl Lara_TestWall( - ITEM_INFO *item, int32_t front, int32_t right, int32_t down); + ITEM *item, int32_t front, int32_t right, int32_t down); -int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangOnClimbWall(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestClimbStance(ITEM *item, COLL_INFO *coll); -void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_HangTest(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestEdgeCatch( - ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); +int32_t __cdecl Lara_TestEdgeCatch(ITEM *item, COLL_INFO *coll, int32_t *edge); -int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangJumpUp(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestHangJump(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); +int32_t __cdecl Lara_TestHangSwingIn(ITEM *item, PHD_ANGLE angle); -int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestVault(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_TestSlide(ITEM *item, COLL_INFO *coll); -int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, int16_t ang, int32_t dist); +int16_t __cdecl Lara_FloorFront(ITEM *item, int16_t ang, int32_t dist); -int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_LandedBad(ITEM *item, COLL_INFO *coll); -int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); +int32_t __cdecl Lara_CheckForLetGo(ITEM *item, COLL_INFO *coll); void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint); void __cdecl Lara_GetJointAbsPosition_I( - ITEM_INFO *item, XYZ_32 *vec, FRAME_INFO *frame1, FRAME_INFO *frame2, + ITEM *item, XYZ_32 *vec, FRAME_INFO *frame1, FRAME_INFO *frame2, int32_t frac, int32_t rate); -void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); -void __cdecl Lara_TakeHit(ITEM_INFO *lara_item, const COLL_INFO *coll); +void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll); +void __cdecl Lara_TakeHit(ITEM *lara_item, const COLL_INFO *coll); void __cdecl Lara_Push( - const ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, bool spaz_on, + const ITEM *item, ITEM *lara_item, COLL_INFO *coll, bool spaz_on, bool big_push); -int32_t __cdecl Lara_MovePosition( - XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); +int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM *item, ITEM *lara_item); int32_t __cdecl Lara_IsNearItem(const XYZ_32 *pos, int32_t distance); int32_t __cdecl Lara_TestClimb( @@ -62,25 +60,25 @@ int32_t __cdecl Lara_TestClimb( int32_t item_height, int16_t item_room, int32_t *shift); int32_t __cdecl Lara_TestClimbPos( - const ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, + const ITEM *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); void __cdecl Lara_DoClimbLeftRight( - ITEM_INFO *item, const COLL_INFO *coll, int32_t result, int32_t shift); + ITEM *item, const COLL_INFO *coll, int32_t result, int32_t shift); int32_t __cdecl Lara_TestClimbUpPos( - const ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, + const ITEM *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); int32_t __cdecl Lara_GetWaterDepth( int32_t x, int32_t y, int32_t z, int16_t room_num); -void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, const COLL_INFO *coll); +void __cdecl Lara_TestWaterDepth(ITEM *item, const COLL_INFO *coll); -void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_SwimCollision(ITEM *item, COLL_INFO *coll); void __cdecl Lara_WaterCurrent(COLL_INFO *coll); void __cdecl Lara_CatchFire(void); -void __cdecl Lara_TouchLava(ITEM_INFO *item); +void __cdecl Lara_TouchLava(ITEM *item); diff --git a/src/game/lara/state.c b/src/game/lara/state.c index 02bb64aa..0c995dc1 100644 --- a/src/game/lara/state.c +++ b/src/game/lara/state.c @@ -15,7 +15,7 @@ #include -void __cdecl Lara_SwimTurn(ITEM_INFO *const item) +void __cdecl Lara_SwimTurn(ITEM *const item) { if (g_Input & IN_FORWARD) { item->rot.x -= LARA_TURN_RATE_UW; @@ -34,7 +34,7 @@ void __cdecl Lara_SwimTurn(ITEM_INFO *const item) } } -void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Walk(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -61,7 +61,7 @@ void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Run(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_DEATH; @@ -109,7 +109,7 @@ void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Stop(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_DEATH; @@ -170,7 +170,7 @@ void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ForwardJump(ITEM *item, COLL_INFO *coll) { if (item->goal_anim_state == LS_SWAN_DIVE || item->goal_anim_state == LS_REACH) { @@ -202,7 +202,7 @@ void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_FastBack(ITEM *item, COLL_INFO *coll) { item->goal_anim_state = LS_STOP; if (g_Input & IN_LEFT) { @@ -214,7 +214,7 @@ void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_TurnRight(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -246,7 +246,7 @@ void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_TurnLeft(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -278,14 +278,14 @@ void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Death(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; coll->enable_spaz = 0; coll->enable_baddie_push = 0; } -void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_FastFall(ITEM *item, COLL_INFO *coll) { item->speed = item->speed * 95 / 100; if (item->fall_speed == DAMAGE_START + DAMAGE_LENGTH) { @@ -293,7 +293,7 @@ void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Hang(ITEM *item, COLL_INFO *coll) { if (g_Input & IN_LOOK) { Lara_LookUpDown(); @@ -310,7 +310,7 @@ void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Reach(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_REACH_ANGLE; if (item->fall_speed > LARA_FAST_FALL_SPEED) { @@ -318,12 +318,12 @@ void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Splat(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; } -void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Compress(ITEM *item, COLL_INFO *coll) { if (g_Lara.water_status != LWS_WADE) { if ((g_Input & IN_FORWARD) @@ -356,7 +356,7 @@ void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Back(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -379,13 +379,13 @@ void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Null(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; } -void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_FastTurn(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -405,7 +405,7 @@ void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_StepRight(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; if (item->hit_points <= 0) { @@ -426,7 +426,7 @@ void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_StepLeft(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; if (item->hit_points <= 0) { @@ -447,7 +447,7 @@ void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Slide(ITEM *item, COLL_INFO *coll) { g_Camera.flags = CF_NO_CHUNKY; g_Camera.target_elevation = CAM_SLIDE_ELEVATION; @@ -456,7 +456,7 @@ void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_BackJump(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_BACK_JUMP_ANGLE; if (item->fall_speed > LARA_FAST_FALL_SPEED) { @@ -473,7 +473,7 @@ void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_RightJump(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; if (item->fall_speed > LARA_FAST_FALL_SPEED) { @@ -486,7 +486,7 @@ void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_LeftJump(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; if (item->fall_speed > LARA_FAST_FALL_SPEED) { @@ -499,14 +499,14 @@ void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_UpJump(ITEM *item, COLL_INFO *coll) { if (item->fall_speed > LARA_FAST_FALL_SPEED) { item->goal_anim_state = LS_FAST_FALL; } } -void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Fallback(ITEM *item, COLL_INFO *coll) { if (item->fall_speed > LARA_FAST_FALL_SPEED) { item->goal_anim_state = LS_FAST_FALL; @@ -518,7 +518,7 @@ void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_HangLeft(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -529,7 +529,7 @@ void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_HangRight(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -540,14 +540,14 @@ void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SlideBack(ITEM *item, COLL_INFO *coll) { if ((g_Input & IN_JUMP) && !(g_Input & IN_FORWARD)) { item->goal_anim_state = LS_BACK_JUMP; } } -void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_PushBlock(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; coll->enable_spaz = 0; @@ -557,7 +557,7 @@ void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll) g_Camera.target_elevation = CAM_PUSH_BLOCK_ELEVATION; } -void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_PPReady(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -567,7 +567,7 @@ void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Pickup(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; coll->enable_spaz = 0; @@ -577,7 +577,7 @@ void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll) g_Camera.target_distance = CAM_PICKUP_DISTANCE; } -void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_PickupFlare(ITEM *item, COLL_INFO *coll) { Lara_State_Pickup(item, coll); if (item->frame_num == g_Anims[item->anim_num].frame_end - 1) { @@ -585,7 +585,7 @@ void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SwitchOn(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; coll->enable_spaz = 0; @@ -596,7 +596,7 @@ void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll) g_Camera.speed = CAM_SWITCH_ON_SPEED; } -void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_UseKey(ITEM *item, COLL_INFO *coll) { g_Lara.look = 0; coll->enable_spaz = 0; @@ -606,14 +606,14 @@ void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll) g_Camera.target_distance = CAM_USE_KEY_DISTANCE; } -void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Special(ITEM *item, COLL_INFO *coll) { g_Camera.flags = CF_FOLLOW_CENTRE; g_Camera.target_angle = CAM_SPECIAL_ANGLE; g_Camera.target_elevation = CAM_SPECIAL_ELEVATION; } -void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SwanDive(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 1; @@ -623,7 +623,7 @@ void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_FastDive(ITEM *item, COLL_INFO *coll) { if ((g_Input & IN_ROLL) && item->goal_anim_state == LS_FAST_DIVE) { item->goal_anim_state = LS_TWIST; @@ -633,14 +633,14 @@ void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll) item->speed = item->speed * 95 / 100; } -void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_WaterOut(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; g_Camera.flags = CF_FOLLOW_CENTRE; } -void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Wade(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_STOP; @@ -671,12 +671,12 @@ void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_DeathSlide(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_DEATH_SLIDE_ANGLE; int16_t room_num = item->room_num; - const SECTOR_INFO *sector = + const SECTOR *sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); Room_GetHeight(sector, item->pos.x, item->pos.y, item->pos.z); @@ -692,7 +692,7 @@ void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_Breath(ITEM *item, COLL_INFO *coll) { item->anim_num = LA_STAND_IDLE; item->frame_num = g_Anims[item->anim_num].frame_base; @@ -704,7 +704,7 @@ void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll) Output_AlterFOV(GAME_FOV * PHD_DEGREE); } -void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_YetiKill(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_YETI_KILL_ANGLE; g_Camera.target_distance = CAM_YETI_KILL_DISTANCE; @@ -714,7 +714,7 @@ void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_SharkKill(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_SHARK_KILL_ANGLE; g_Camera.target_distance = CAM_SHARK_KILL_DISTANCE; @@ -733,20 +733,20 @@ void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_Airlock(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_AIRLOCK_ANGLE; g_Camera.target_elevation = CAM_AIRLOCK_ELEVATION; } -void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_GongBong(ITEM *item, COLL_INFO *coll) { g_Camera.target_angle = CAM_GONG_BONG_ANGLE; g_Camera.target_elevation = CAM_GONG_BONG_ELEVATION; g_Camera.target_distance = CAM_GONG_BONG_DISTANCE; } -void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_DinoKill(ITEM *item, COLL_INFO *coll) { g_Camera.flags = CF_FOLLOW_CENTRE; g_Camera.target_angle = CAM_DINO_KILL_ANGLE; @@ -757,7 +757,7 @@ void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_PullDagger(ITEM *item, COLL_INFO *coll) { int32_t frame_num_rel = item->frame_num - g_Anims[item->anim_num].frame_base; @@ -772,23 +772,23 @@ void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll) if (item->frame_num == g_Anims[item->anim_num].frame_end) { item->rot.y += PHD_90; int16_t room_num = item->room_num; - const SECTOR_INFO *sector = + const SECTOR *sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); Room_GetHeight(sector, item->pos.x, item->pos.y, item->pos.z); Room_TestTriggers(g_TriggerIndex, 1); } } -void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_StartAnim(ITEM *item, COLL_INFO *coll) { int16_t room_num = item->room_num; - const SECTOR_INFO *sector = + const SECTOR *sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); Room_GetHeight(sector, item->pos.x, item->pos.y, item->pos.z); Room_TestTriggers(g_TriggerIndex, 0); } -void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_StartHouse(ITEM *item, COLL_INFO *coll) { int32_t frame_num_rel = item->frame_num - g_Anims[item->anim_num].frame_base; @@ -808,7 +808,7 @@ void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Extra_FinalAnim(ITEM *item, COLL_INFO *coll) { item->hit_points = 1000; @@ -831,7 +831,7 @@ void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ClimbLeft(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -842,7 +842,7 @@ void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ClimbRight(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -853,7 +853,7 @@ void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ClimbStance(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -874,14 +874,14 @@ void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Climbing(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; g_Camera.target_elevation = CAM_CLIMBING_ELEVATION; } -void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ClimbEnd(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; @@ -889,14 +889,14 @@ void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll) g_Camera.target_angle = CAM_CLIMB_END_ELEVATION; } -void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_ClimbDown(ITEM *item, COLL_INFO *coll) { coll->enable_spaz = 0; coll->enable_baddie_push = 0; g_Camera.target_elevation = CAM_CLIMB_DOWN_ELEVATION; } -void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SurfSwim(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -916,7 +916,7 @@ void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll) CLAMPG(item->fall_speed, LARA_MAX_SURF_SPEED); } -void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SurfBack(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -936,7 +936,7 @@ void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll) CLAMPG(item->fall_speed, LARA_MAX_SURF_SPEED); } -void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SurfLeft(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -956,7 +956,7 @@ void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll) CLAMPG(item->fall_speed, LARA_MAX_SURF_SPEED); } -void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SurfRight(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -976,7 +976,7 @@ void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll) CLAMPG(item->fall_speed, LARA_MAX_SURF_SPEED); } -void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_SurfTread(ITEM *item, COLL_INFO *coll) { item->fall_speed -= 4; CLAMPL(item->fall_speed, 0); @@ -1024,7 +1024,7 @@ void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Swim(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -1051,7 +1051,7 @@ void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Glide(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -1076,7 +1076,7 @@ void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Tread(ITEM *item, COLL_INFO *coll) { if (item->hit_points <= 0) { item->goal_anim_state = LS_UW_DEATH; @@ -1104,14 +1104,14 @@ void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_Dive(ITEM *item, COLL_INFO *coll) { if (g_Input & IN_FORWARD) { item->rot.x -= PHD_DEGREE; } } -void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_UWDeath(ITEM *item, COLL_INFO *coll) { item->gravity = 0; item->fall_speed -= 8; @@ -1127,7 +1127,7 @@ void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll) } } -void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll) +void __cdecl Lara_State_UWTwist(ITEM *item, COLL_INFO *coll) { item->fall_speed = 0; } diff --git a/src/game/lara/state.h b/src/game/lara/state.h index afd6be53..c00c8938 100644 --- a/src/game/lara/state.h +++ b/src/game/lara/state.h @@ -5,71 +5,71 @@ #include "global/types.h" // TODO: make static -void __cdecl Lara_SwimTurn(ITEM_INFO *item); +void __cdecl Lara_SwimTurn(ITEM *item); -void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); -void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); +void __cdecl Lara_State_Walk(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Run(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Stop(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ForwardJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_TurnLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Death(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastFall(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Hang(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Reach(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Splat(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Compress(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Back(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Null(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastTurn(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_StepRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_StepLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Slide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_BackJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_RightJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_LeftJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UpJump(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Fallback(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_HangLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_HangRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SlideBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PushBlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PPReady(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Pickup(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_PickupFlare(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SwitchOn(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UseKey(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Special(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SwanDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_FastDive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_WaterOut(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Wade(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_DeathSlide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Breath(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_YetiKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_SharkKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_Airlock(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_GongBong(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_DinoKill(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_PullDagger(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_StartAnim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_StartHouse(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Extra_FinalAnim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbStance(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Climbing(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbEnd(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_ClimbDown(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfSwim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfBack(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfLeft(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfRight(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_SurfTread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Swim(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Glide(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Tread(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_Dive(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UWDeath(ITEM *item, COLL_INFO *coll); +void __cdecl Lara_State_UWTwist(ITEM *item, COLL_INFO *coll); diff --git a/src/game/level.c b/src/game/level.c index ba53f4b7..c807cf7b 100644 --- a/src/game/level.c +++ b/src/game/level.c @@ -106,11 +106,11 @@ static void __cdecl M_LoadRooms(VFILE *const file) goto finish; } - g_Rooms = game_malloc(sizeof(ROOM_INFO) * g_RoomCount, GBUF_ROOM_INFOS); + g_Rooms = game_malloc(sizeof(ROOM) * g_RoomCount, GBUF_ROOMS); assert(g_Rooms != NULL); for (int32_t i = 0; i < g_RoomCount; i++) { - ROOM_INFO *const r = &g_Rooms[i]; + ROOM *const r = &g_Rooms[i]; r->pos.x = VFile_ReadS32(file); r->pos.y = 0; @@ -125,22 +125,22 @@ static void __cdecl M_LoadRooms(VFILE *const file) const int16_t num_doors = VFile_ReadS16(file); if (num_doors <= 0) { - r->doors = NULL; + r->portals = NULL; } else { - r->doors = game_malloc( - sizeof(DOOR_INFO) * num_doors + sizeof(DOOR_INFOS), - GBUF_ROOM_DOOR); - r->doors->count = num_doors; - VFile_Read(file, r->doors->door, sizeof(DOOR_INFO) * num_doors); + r->portals = game_malloc( + sizeof(PORTAL) * num_doors + sizeof(PORTALS), + GBUF_ROOM_PORTALS); + r->portals->count = num_doors; + VFile_Read(file, r->portals->portal, sizeof(PORTAL) * num_doors); } r->z_size = VFile_ReadS16(file); r->x_size = VFile_ReadS16(file); r->sector = game_malloc( - sizeof(SECTOR_INFO) * r->z_size * r->x_size, GBUF_ROOM_FLOOR); + sizeof(SECTOR) * r->z_size * r->x_size, GBUF_ROOM_FLOOR); for (int32_t i = 0; i < r->z_size * r->x_size; i++) { - SECTOR_INFO *const sector = &r->sector[i]; + SECTOR *const sector = &r->sector[i]; sector->idx = VFile_ReadU16(file); sector->box = VFile_ReadS16(file); sector->pit_room = VFile_ReadU8(file); @@ -157,10 +157,10 @@ static void __cdecl M_LoadRooms(VFILE *const file) if (!r->num_lights) { r->light = NULL; } else { - r->light = game_malloc( - sizeof(LIGHT_INFO) * r->num_lights, GBUF_ROOM_LIGHTS); + r->light = + game_malloc(sizeof(LIGHT) * r->num_lights, GBUF_ROOM_LIGHTS); for (int32_t i = 0; i < r->num_lights; i++) { - LIGHT_INFO *const light = &r->light[i]; + LIGHT *const light = &r->light[i]; light->x = VFile_ReadS32(file); light->y = VFile_ReadS32(file); light->z = VFile_ReadS32(file); @@ -176,9 +176,9 @@ static void __cdecl M_LoadRooms(VFILE *const file) r->mesh = NULL; } else { r->mesh = game_malloc( - sizeof(MESH_INFO) * r->num_meshes, GBUF_ROOM_STATIC_MESH_INFOS); + sizeof(MESH) * r->num_meshes, GBUF_ROOM_STATIC_MESHES); for (int32_t i = 0; i < r->num_meshes; i++) { - MESH_INFO *const mesh = &r->mesh[i]; + MESH *const mesh = &r->mesh[i]; mesh->x = VFile_ReadS32(file); mesh->y = VFile_ReadS32(file); mesh->z = VFile_ReadS32(file); @@ -348,7 +348,7 @@ static void __cdecl M_LoadObjects(VFILE *const file) LOG_INFO("objects: %d", num_objects); for (int32_t i = 0; i < num_objects; i++) { const GAME_OBJECT_ID object_id = VFile_ReadS32(file); - OBJECT_INFO *const object = &g_Objects[object_id]; + OBJECT *const object = &g_Objects[object_id]; object->mesh_count = VFile_ReadS16(file); object->mesh_idx = VFile_ReadS16(file); object->bone_idx = VFile_ReadS32(file); @@ -452,7 +452,7 @@ static void __cdecl M_LoadSprites(VFILE *const file) VFile_Skip(file, sizeof(int16_t)); static_object->mesh_idx = VFile_ReadS16(file); } else { - OBJECT_INFO *const object = &g_Objects[object_id]; + OBJECT *const object = &g_Objects[object_id]; object->mesh_count = VFile_ReadS16(file); object->mesh_idx = VFile_ReadS16(file); object->loaded = 1; @@ -477,13 +477,13 @@ static void __cdecl M_LoadItems(VFILE *const file) goto finish; } - g_Items = game_malloc(sizeof(ITEM_INFO) * MAX_ITEMS, GBUF_ITEMS); + g_Items = game_malloc(sizeof(ITEM) * MAX_ITEMS, GBUF_ITEMS); g_LevelItemCount = num_items; Item_InitialiseArray(MAX_ITEMS); for (int32_t i = 0; i < num_items; i++) { - ITEM_INFO *const item = &g_Items[i]; + ITEM *const item = &g_Items[i]; item->object_id = VFile_ReadS16(file); item->room_num = VFile_ReadS16(file); item->pos.x = VFile_ReadS32(file); diff --git a/src/game/los.c b/src/game/los.c index b18ac4c2..c67137c0 100644 --- a/src/game/los.c +++ b/src/game/los.c @@ -35,8 +35,7 @@ int32_t __cdecl LOS_CheckX( while (x > target->x) { { - const SECTOR_INFO *const sector = - Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z); const int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (y > height || y < ceiling) { @@ -54,7 +53,7 @@ int32_t __cdecl LOS_CheckX( } { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(x - 1, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x - 1, y, z); const int32_t ceiling = Room_GetCeiling(sector, x - 1, y, z); @@ -78,8 +77,7 @@ int32_t __cdecl LOS_CheckX( while (x < target->x) { { - const SECTOR_INFO *const sector = - Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z); const int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (y > height || y < ceiling) { @@ -97,7 +95,7 @@ int32_t __cdecl LOS_CheckX( } { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(x + 1, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x + 1, y, z); const int32_t ceiling = Room_GetCeiling(sector, x + 1, y, z); @@ -144,8 +142,7 @@ int32_t __cdecl LOS_CheckZ( while (z > target->z) { { - const SECTOR_INFO *const sector = - Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z); const int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (y > height || y < ceiling) { @@ -163,7 +160,7 @@ int32_t __cdecl LOS_CheckZ( } { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(x, y, z - 1, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z - 1); const int32_t ceiling = Room_GetCeiling(sector, x, y, z - 1); @@ -187,8 +184,7 @@ int32_t __cdecl LOS_CheckZ( while (z < target->z) { { - const SECTOR_INFO *const sector = - Room_GetSector(x, y, z, &room_num); + const SECTOR *const sector = Room_GetSector(x, y, z, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z); const int32_t ceiling = Room_GetCeiling(sector, x, y, z); if (y > height || y < ceiling) { @@ -206,7 +202,7 @@ int32_t __cdecl LOS_CheckZ( } { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(x, y, z + 1, &room_num); const int32_t height = Room_GetHeight(sector, x, y, z + 1); const int32_t ceiling = Room_GetCeiling(sector, x, y, z + 1); @@ -231,7 +227,7 @@ int32_t __cdecl LOS_CheckZ( int32_t __cdecl LOS_ClipTarget( const GAME_VECTOR *const start, GAME_VECTOR *const target, - const SECTOR_INFO *const sector) + const SECTOR *const sector) { const int32_t dx = target->x - start->x; const int32_t dy = target->y - start->y; @@ -283,7 +279,7 @@ int32_t __cdecl LOS_Check( target->room_num = start->room_num; } - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(target->x, target->y, target->z, &target->room_num); if (!LOS_ClipTarget(start, target, sector)) { @@ -305,7 +301,7 @@ int32_t __cdecl LOS_CheckSmashable( for (int32_t i = 0; i < g_LOSNumRooms; i++) { for (int16_t item_num = g_Rooms[g_LOSRooms[i]].item_num; item_num != NO_ITEM; item_num = g_Items[item_num].next_item) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; if (item->status == IS_DEACTIVATED) { continue; } diff --git a/src/game/los.h b/src/game/los.h index ec1d5f98..f0189224 100644 --- a/src/game/los.h +++ b/src/game/los.h @@ -5,7 +5,7 @@ int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_ClipTarget( - const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR_INFO *sector); + const GAME_VECTOR *start, GAME_VECTOR *target, const SECTOR *sector); int32_t __cdecl LOS_Check(const GAME_VECTOR *start, GAME_VECTOR *target); int32_t __cdecl LOS_CheckSmashable( const GAME_VECTOR *start, const GAME_VECTOR *target); diff --git a/src/game/lot.c b/src/game/lot.c index bdd85eb6..8ef81cca 100644 --- a/src/game/lot.c +++ b/src/game/lot.c @@ -12,10 +12,10 @@ void __cdecl LOT_InitialiseArray(void) { g_BaddieSlots = - game_malloc(NUM_SLOTS * sizeof(CREATURE_INFO), GBUF_CREATURE_DATA); + game_malloc(NUM_SLOTS * sizeof(CREATURE), GBUF_CREATURE_DATA); for (int32_t i = 0; i < NUM_SLOTS; i++) { - CREATURE_INFO *const creature = &g_BaddieSlots[i]; + CREATURE *const creature = &g_BaddieSlots[i]; creature->item_num = NO_ITEM; creature->lot.node = game_malloc(g_BoxCount * sizeof(BOX_NODE), GBUF_CREATURE_LOT); @@ -26,14 +26,14 @@ void __cdecl LOT_InitialiseArray(void) void __cdecl LOT_DisableBaddieAI(const int16_t item_num) { - CREATURE_INFO *creature; + CREATURE *creature; if (item_num == g_Lara.item_num) { creature = g_Lara.creature; g_Lara.creature = NULL; } else { - ITEM_INFO *const item = &g_Items[item_num]; - creature = (CREATURE_INFO *)item->data; + ITEM *const item = &g_Items[item_num]; + creature = (CREATURE *)item->data; item->data = NULL; } @@ -65,7 +65,7 @@ bool __cdecl LOT_EnableBaddieAI(const int16_t item_num, const bool always) int32_t worst_dist = 0; if (!always) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; const int32_t dx = (item->pos.x - g_Camera.pos.pos.x) >> 8; const int32_t dy = (item->pos.y - g_Camera.pos.pos.y) >> 8; const int32_t dz = (item->pos.z - g_Camera.pos.pos.z) >> 8; @@ -75,7 +75,7 @@ bool __cdecl LOT_EnableBaddieAI(const int16_t item_num, const bool always) int32_t worst_slot = -1; for (int32_t slot = 0; slot < NUM_SLOTS; slot++) { const int32_t item_num = g_BaddieSlots[slot].item_num; - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; const int32_t dx = (item->pos.x - g_Camera.pos.pos.x) >> 8; const int32_t dy = (item->pos.y - g_Camera.pos.pos.y) >> 8; const int32_t dz = (item->pos.z - g_Camera.pos.pos.z) >> 8; @@ -90,7 +90,7 @@ bool __cdecl LOT_EnableBaddieAI(const int16_t item_num, const bool always) return false; } - const CREATURE_INFO *const creature = &g_BaddieSlots[worst_slot]; + const CREATURE *const creature = &g_BaddieSlots[worst_slot]; g_Items[creature->item_num].status = IS_INVISIBLE; LOT_DisableBaddieAI(creature->item_num); LOT_InitialiseSlot(item_num, worst_slot); @@ -100,8 +100,8 @@ bool __cdecl LOT_EnableBaddieAI(const int16_t item_num, const bool always) void __cdecl LOT_InitialiseSlot(const int16_t item_num, const int32_t slot) { - CREATURE_INFO *const creature = &g_BaddieSlots[slot]; - ITEM_INFO *const item = &g_Items[item_num]; + CREATURE *const creature = &g_BaddieSlots[slot]; + ITEM *const item = &g_Items[item_num]; if (item_num == g_Lara.item_num) { g_Lara.creature = &g_BaddieSlots[slot]; @@ -172,9 +172,9 @@ void __cdecl LOT_InitialiseSlot(const int16_t item_num, const int32_t slot) g_SlotsUsed++; } -void __cdecl LOT_CreateZone(ITEM_INFO *const item) +void __cdecl LOT_CreateZone(ITEM *const item) { - CREATURE_INFO *const creature = item->data; + CREATURE *const creature = item->data; int16_t *zone; int16_t *flip; @@ -186,7 +186,7 @@ void __cdecl LOT_CreateZone(ITEM_INFO *const item) flip = g_GroundZone[BOX_ZONE(creature->lot.step)][1]; } - const ROOM_INFO *const r = &g_Rooms[item->room_num]; + const ROOM *const r = &g_Rooms[item->room_num]; const int32_t z_sector = (item->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (item->pos.x - r->pos.x) >> WALL_SHIFT; item->box_num = r->sector[z_sector + x_sector * r->z_size].box; diff --git a/src/game/lot.h b/src/game/lot.h index 9b34fa9a..f9c63425 100644 --- a/src/game/lot.h +++ b/src/game/lot.h @@ -6,5 +6,5 @@ void __cdecl LOT_InitialiseArray(void); void __cdecl LOT_DisableBaddieAI(int16_t item_num); bool __cdecl LOT_EnableBaddieAI(int16_t item_num, bool always); void __cdecl LOT_InitialiseSlot(int16_t item_num, int32_t slot); -void __cdecl LOT_CreateZone(ITEM_INFO *item); +void __cdecl LOT_CreateZone(ITEM *item); void __cdecl LOT_ClearLOT(LOT_INFO *LOT); diff --git a/src/game/objects/common.c b/src/game/objects/common.c index 3f1586c8..47eab2e1 100644 --- a/src/game/objects/common.c +++ b/src/game/objects/common.c @@ -5,7 +5,7 @@ #include "global/funcs.h" #include "global/vars.h" -OBJECT_INFO *Object_GetObject(GAME_OBJECT_ID object_id) +OBJECT *Object_GetObject(GAME_OBJECT_ID object_id) { return &g_Objects[object_id]; } @@ -50,9 +50,9 @@ bool Object_IsObjectType( } void __cdecl Object_Collision( - const int16_t item_num, ITEM_INFO *const lara_item, COLL_INFO *const coll) + const int16_t item_num, ITEM *const lara_item, COLL_INFO *const coll) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!Item_TestBoundsCollide(item, lara_item, coll->radius)) { return; @@ -68,10 +68,10 @@ void __cdecl Object_Collision( } void __cdecl Object_Collision_Trap( - const int16_t item_num, ITEM_INFO *const lara_item, COLL_INFO *const coll) + const int16_t item_num, ITEM *const lara_item, COLL_INFO *const coll) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->status == IS_ACTIVE) { if (Item_TestBoundsCollide(item, lara_item, coll->radius)) { diff --git a/src/game/objects/common.h b/src/game/objects/common.h index 35f2b699..6bb88d7b 100644 --- a/src/game/objects/common.h +++ b/src/game/objects/common.h @@ -7,7 +7,7 @@ typedef struct GAME_OBJECT_PAIR { const GAME_OBJECT_ID value_id; } GAME_OBJECT_PAIR; -OBJECT_INFO *Object_Get(GAME_OBJECT_ID object_id); +OBJECT *Object_Get(GAME_OBJECT_ID object_id); GAME_OBJECT_ID Object_GetCognate( GAME_OBJECT_ID key_id, const GAME_OBJECT_PAIR *test_map); GAME_OBJECT_ID Object_GetCognateInverse( @@ -16,4 +16,4 @@ bool Object_IsObjectType( GAME_OBJECT_ID object_id, const GAME_OBJECT_ID *test_arr); void __cdecl Object_Collision( - int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); + int16_t item_num, ITEM *lara_item, COLL_INFO *coll); diff --git a/src/game/objects/creatures/bird.c b/src/game/objects/creatures/bird.c index d34766dd..61a9f40b 100644 --- a/src/game/objects/creatures/bird.c +++ b/src/game/objects/creatures/bird.c @@ -19,11 +19,11 @@ typedef enum { BIRD_ANIM_EAT = 7, } BIRD_ANIM; -static const BITE_INFO m_BirdBite = { +static const BITE m_BirdBite = { .pos = { .x = 15, .y = 46, .z = 21 }, .mesh_num = 6, }; -static const BITE_INFO m_CrowBite = { +static const BITE m_CrowBite = { .pos = { .x = 2, .y = 10, .z = 60 }, .mesh_num = 14, }; @@ -39,7 +39,7 @@ static const BITE_INFO m_CrowBite = { void __cdecl Bird_Initialise(const int16_t item_num) { Creature_Initialise(item_num); - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->object_id == O_CROW) { item->anim_num = g_Objects[O_CROW].anim_idx + CROW_START_ANIM; item->frame_num = g_Anims[item->anim_num].frame_base; @@ -59,8 +59,8 @@ void __cdecl Bird_Control(const int16_t item_num) return; } - ITEM_INFO *const item = &g_Items[item_num]; - CREATURE_INFO *const bird = (CREATURE_INFO *)item->data; + ITEM *const item = &g_Items[item_num]; + CREATURE *const bird = (CREATURE *)item->data; if (item->hit_points <= 0) { switch (item->current_anim_state) { diff --git a/src/game/objects/creatures/diver.c b/src/game/objects/creatures/diver.c index 91e7273a..aa053b0d 100644 --- a/src/game/objects/creatures/diver.c +++ b/src/game/objects/creatures/diver.c @@ -6,7 +6,7 @@ #include "global/funcs.h" #include "global/vars.h" -static BITE_INFO m_DiverBite = { .pos = { .x = 17, .y = 164, .z = 44, }, .mesh_num = 18 }; +static BITE m_DiverBite = { .pos = { .x = 17, .y = 164, .z = 44, }, .mesh_num = 18 }; typedef enum { DIVER_ANIM_EMPTY = 0, @@ -31,8 +31,8 @@ void __cdecl Diver_Control(int16_t item_num) return; } - ITEM_INFO *const item = &g_Items[item_num]; - CREATURE_INFO *const creature = item->data; + ITEM *const item = &g_Items[item_num]; + CREATURE *const creature = item->data; if (item->hit_points <= 0) { if (item->current_anim_state != DIVER_ANIM_DEATH) { diff --git a/src/game/objects/effects/ember.c b/src/game/objects/effects/ember.c index ceebb2c9..6b00ceda 100644 --- a/src/game/objects/effects/ember.c +++ b/src/game/objects/effects/ember.c @@ -9,14 +9,14 @@ void __cdecl Ember_Control(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->fall_speed += GRAVITY; fx->pos.z += (fx->speed * Math_Cos(fx->rot.y)) >> W2V_SHIFT; fx->pos.x += (fx->speed * Math_Sin(fx->rot.y)) >> W2V_SHIFT; fx->pos.y = fx->pos.y + fx->fall_speed; int16_t room_num = fx->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(fx->pos.x, fx->pos.y, fx->pos.z, &room_num); const int32_t ceiling = Room_GetCeiling(sector, fx->pos.x, fx->pos.y, fx->pos.z); diff --git a/src/game/objects/effects/flame.c b/src/game/objects/effects/flame.c index 8ee20f0d..79065565 100644 --- a/src/game/objects/effects/flame.c +++ b/src/game/objects/effects/flame.c @@ -14,7 +14,7 @@ void __cdecl Flame_Control(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->frame_num--; if (fx->frame_num <= g_Objects[O_FLAME].mesh_count) { diff --git a/src/game/objects/general/body_part.c b/src/game/objects/general/body_part.c index 00bef5c8..c0538f79 100644 --- a/src/game/objects/general/body_part.c +++ b/src/game/objects/general/body_part.c @@ -11,7 +11,7 @@ void __cdecl BodyPart_Control(const int16_t fx_num) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->rot.x += 5 * PHD_DEGREE; fx->rot.z += 10 * PHD_DEGREE; fx->pos.x += (fx->speed * Math_Sin(fx->rot.y)) >> W2V_SHIFT; @@ -20,14 +20,14 @@ void __cdecl BodyPart_Control(const int16_t fx_num) fx->fall_speed += GRAVITY; int16_t room_num = fx->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(fx->pos.x, fx->pos.y, fx->pos.z, &room_num); if (!(g_Rooms[fx->room_num].flags & RF_UNDERWATER) && (g_Rooms[room_num].flags & RF_UNDERWATER)) { const int16_t fx_num = Effect_Create(fx->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const splash_fx = &g_Effects[fx_num]; + FX *const splash_fx = &g_Effects[fx_num]; splash_fx->pos.x = fx->pos.x; splash_fx->pos.y = fx->pos.y; splash_fx->pos.z = fx->pos.z; diff --git a/src/game/objects/general/door.c b/src/game/objects/general/door.c index 416a35c7..f0c2eaae 100644 --- a/src/game/objects/general/door.c +++ b/src/game/objects/general/door.c @@ -6,9 +6,9 @@ #include "global/vars.h" void __cdecl Door_Collision( - const int16_t item_num, ITEM_INFO *const lara_item, COLL_INFO *const coll) + const int16_t item_num, ITEM *const lara_item, COLL_INFO *const coll) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!Item_TestBoundsCollide(item, lara_item, coll->radius)) { return; diff --git a/src/game/objects/general/door.h b/src/game/objects/general/door.h index 5866595b..f8c4b30f 100644 --- a/src/game/objects/general/door.h +++ b/src/game/objects/general/door.h @@ -2,7 +2,6 @@ #include "global/types.h" -void __cdecl Door_Collision( - int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +void __cdecl Door_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll); void __cdecl Object_Collision_Trap( - int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); + int16_t item_num, ITEM *lara_item, COLL_INFO *coll); diff --git a/src/game/objects/general/final_level_counter.c b/src/game/objects/general/final_level_counter.c index ef977ab0..118f68eb 100644 --- a/src/game/objects/general/final_level_counter.c +++ b/src/game/objects/general/final_level_counter.c @@ -19,7 +19,7 @@ static int16_t __cdecl M_FindBestBoss(void) int32_t best_dist = 0; int16_t best_item = g_FinalBossItem[0]; for (int32_t i = 0; i < g_FinalBossCount; i++) { - const ITEM_INFO *const item = &g_Items[g_FinalBossItem[i]]; + const ITEM *const item = &g_Items[g_FinalBossItem[i]]; GAME_VECTOR start; start.pos.x = g_LaraItem->pos.x; @@ -51,7 +51,7 @@ static int16_t __cdecl M_FindBestBoss(void) static void __cdecl M_ActivateLastBoss(void) { const int16_t item_num = M_FindBestBoss(); - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; item->touch_bits = 0; item->status = IS_ACTIVE; item->mesh_bits = 0xFFFF1FFF; @@ -62,7 +62,7 @@ static void __cdecl M_ActivateLastBoss(void) static void __cdecl M_PrepareCutscene(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; Creature_Kill(item, 0, 0, LA_EXTRA_FINAL_ANIM); g_Camera.type = CAM_CINEMATIC; diff --git a/src/game/objects/traps/ember_emitter.c b/src/game/objects/traps/ember_emitter.c index 7e8a05ab..7588dba0 100644 --- a/src/game/objects/traps/ember_emitter.c +++ b/src/game/objects/traps/ember_emitter.c @@ -7,10 +7,10 @@ void __cdecl EmberEmitter_Control(const int16_t item_num) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; const int16_t fx_num = Effect_Create(item->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->pos.x = item->pos.x; fx->pos.y = item->pos.y; fx->pos.z = item->pos.z; diff --git a/src/game/objects/traps/flame_emitter.c b/src/game/objects/traps/flame_emitter.c index 648b9cef..f6e50443 100644 --- a/src/game/objects/traps/flame_emitter.c +++ b/src/game/objects/traps/flame_emitter.c @@ -6,7 +6,7 @@ void __cdecl FlameEmitter_Control(const int16_t item_num) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (!Item_IsTriggerActive(item)) { if (item->data != NULL) { @@ -17,7 +17,7 @@ void __cdecl FlameEmitter_Control(const int16_t item_num) } else if (item->data == NULL) { const int16_t fx_num = Effect_Create(item->room_num); if (fx_num != NO_ITEM) { - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->pos.x = item->pos.x; fx->pos.y = item->pos.y; fx->pos.z = item->pos.z; diff --git a/src/game/objects/vehicles/boat.c b/src/game/objects/vehicles/boat.c index 15c3ece0..6a2c1142 100644 --- a/src/game/objects/vehicles/boat.c +++ b/src/game/objects/vehicles/boat.c @@ -73,7 +73,7 @@ void __cdecl Boat_Initialise(const int16_t item_num) boat_data->water = 0; boat_data->pitch = 0; - ITEM_INFO *const boat = &g_Items[item_num]; + ITEM *const boat = &g_Items[item_num]; boat->data = boat_data; } @@ -84,8 +84,8 @@ int32_t __cdecl Boat_CheckGeton( return 0; } - ITEM_INFO *const boat = &g_Items[item_num]; - const ITEM_INFO *const lara = g_LaraItem; + ITEM *const boat = &g_Items[item_num]; + const ITEM *const lara = g_LaraItem; const int32_t dist = ((lara->pos.z - boat->pos.z) * Math_Cos(-boat->rot.y) - (lara->pos.x - boat->pos.x) * Math_Sin(-boat->rot.y)) @@ -140,7 +140,7 @@ int32_t __cdecl Boat_CheckGeton( } void __cdecl Boat_Collision( - const int16_t item_num, ITEM_INFO *const lara, COLL_INFO *const coll) + const int16_t item_num, ITEM *const lara, COLL_INFO *const coll) { if (lara->hit_points < 0 || g_Lara.skidoo != NO_ITEM) { return; @@ -172,7 +172,7 @@ void __cdecl Boat_Collision( g_Lara.water_status = LWS_ABOVE_WATER; - ITEM_INFO *const boat = &g_Items[item_num]; + ITEM *const boat = &g_Items[item_num]; lara->pos.x = boat->pos.x; lara->pos.y = boat->pos.y - 5; @@ -199,7 +199,7 @@ void __cdecl Boat_Collision( } int32_t __cdecl Boat_TestWaterHeight( - const ITEM_INFO *const item, const int32_t z_off, const int32_t x_off, + const ITEM *const item, const int32_t z_off, const int32_t x_off, XYZ_32 *const pos) { // clang-format off @@ -217,7 +217,7 @@ int32_t __cdecl Boat_TestWaterHeight( Room_GetSector(pos->x, pos->y, pos->z, &room_num); int32_t height = Room_GetWaterHeight(pos->x, pos->y, pos->z, room_num); if (height == NO_HEIGHT) { - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(pos->x, pos->y, pos->z, &room_num); height = Room_GetHeight(sector, pos->x, pos->y, pos->z); if (height != NO_HEIGHT) { @@ -230,11 +230,11 @@ int32_t __cdecl Boat_TestWaterHeight( void __cdecl Boat_DoShift(const int32_t boat_num) { - ITEM_INFO *const boat = &g_Items[boat_num]; + ITEM *const boat = &g_Items[boat_num]; int16_t item_num = g_Rooms[boat->room_num].item_num; while (item_num != NO_ITEM) { - ITEM_INFO *item = &g_Items[item_num]; + ITEM *item = &g_Items[item_num]; if (item->object_id == O_BOAT && item_num != boat_num && g_Lara.skidoo != item_num) { @@ -274,7 +274,7 @@ void __cdecl Boat_DoShift(const int32_t boat_num) } } -void __cdecl Boat_DoWakeEffect(const ITEM_INFO *const boat) +void __cdecl Boat_DoWakeEffect(const ITEM *const boat) { g_MatrixPtr->_23 = 0; S_CalculateLight(boat->pos.x, boat->pos.y, boat->pos.z, boat->room_num); @@ -288,7 +288,7 @@ void __cdecl Boat_DoWakeEffect(const ITEM_INFO *const boat) continue; } - FX_INFO *const fx = &g_Effects[fx_num]; + FX *const fx = &g_Effects[fx_num]; fx->object_id = O_WATER_SPRITE; fx->room_num = boat->room_num; fx->frame_num = frame; @@ -337,7 +337,7 @@ int32_t __cdecl Boat_DoDynamics( int32_t __cdecl Boat_Dynamics(const int16_t boat_num) { - ITEM_INFO *const boat = &g_Items[boat_num]; + ITEM *const boat = &g_Items[boat_num]; BOAT_INFO *const boat_data = (BOAT_INFO *)boat->data; boat->rot.z -= boat_data->tilt_angle; @@ -426,7 +426,7 @@ int32_t __cdecl Boat_Dynamics(const int16_t boat_num) } int16_t room_num = boat->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(boat->pos.x, boat->pos.y, boat->pos.z, &room_num); int32_t height = Room_GetWaterHeight(boat->pos.x, boat->pos.y, boat->pos.z, room_num); @@ -475,7 +475,7 @@ int32_t __cdecl Boat_Dynamics(const int16_t boat_num) return collide; } -int32_t __cdecl Boat_UserControl(ITEM_INFO *const boat) +int32_t __cdecl Boat_UserControl(ITEM *const boat) { int32_t no_turn = 1; @@ -548,9 +548,9 @@ int32_t __cdecl Boat_UserControl(ITEM_INFO *const boat) return no_turn; } -void __cdecl Boat_Animation(const ITEM_INFO *const boat, const int32_t collide) +void __cdecl Boat_Animation(const ITEM *const boat, const int32_t collide) { - ITEM_INFO *const lara = g_LaraItem; + ITEM *const lara = g_LaraItem; const BOAT_INFO *const boat_data = (const BOAT_INFO *)boat->data; if (lara->hit_points <= 0) { @@ -621,8 +621,8 @@ void __cdecl Boat_Animation(const ITEM_INFO *const boat, const int32_t collide) void __cdecl Boat_Control(const int16_t item_num) { - ITEM_INFO *const lara = g_LaraItem; - ITEM_INFO *const boat = &g_Items[item_num]; + ITEM *const lara = g_LaraItem; + ITEM *const boat = &g_Items[item_num]; BOAT_INFO *const boat_data = (BOAT_INFO *)boat->data; bool drive = false; @@ -635,7 +635,7 @@ void __cdecl Boat_Control(const int16_t item_num) const int32_t hfr = Boat_TestWaterHeight(boat, BOAT_FRONT, BOAT_SIDE, &fr); int16_t room_num = boat->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(boat->pos.x, boat->pos.y, boat->pos.z, &room_num); int32_t height = Room_GetHeight(sector, boat->pos.x, boat->pos.y, boat->pos.z); @@ -795,7 +795,7 @@ void __cdecl Boat_Control(const int16_t item_num) }; int16_t room_num = lara->room_num; - const SECTOR_INFO *const sector = + const SECTOR *const sector = Room_GetSector(pos.x, pos.y, pos.z, &room_num); if (Room_GetHeight(sector, pos.x, pos.y, pos.z) >= pos.y - STEP_L) { lara->pos.x = pos.x; @@ -813,7 +813,7 @@ void __cdecl Boat_Control(const int16_t item_num) void __cdecl Gondola_Control(const int16_t item_num) { - ITEM_INFO *const gondola = &g_Items[item_num]; + ITEM *const gondola = &g_Items[item_num]; switch (gondola->current_anim_state) { case GONDOLA_FLOATING: @@ -826,7 +826,7 @@ void __cdecl Gondola_Control(const int16_t item_num) case GONDOLA_SINK: { gondola->pos.y = gondola->pos.y + GONDOLA_SINK_SPEED; int16_t room_num = gondola->room_num; - const SECTOR_INFO *const sector = Room_GetSector( + const SECTOR *const sector = Room_GetSector( gondola->pos.x, gondola->pos.y, gondola->pos.z, &room_num); const int32_t height = Room_GetHeight( sector, gondola->pos.x, gondola->pos.y, gondola->pos.z); diff --git a/src/game/objects/vehicles/boat.h b/src/game/objects/vehicles/boat.h index a5d83d2c..855e6377 100644 --- a/src/game/objects/vehicles/boat.h +++ b/src/game/objects/vehicles/boat.h @@ -6,14 +6,14 @@ void __cdecl Boat_Initialise(int16_t item_num); int32_t __cdecl Boat_CheckGeton(int16_t item_num, const COLL_INFO *coll); -void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara, COLL_INFO *coll); +void __cdecl Boat_Collision(int16_t item_num, ITEM *lara, COLL_INFO *coll); int32_t __cdecl Boat_TestWaterHeight( - const ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); + const ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); void __cdecl Boat_DoShift(int32_t boat_num); -void __cdecl Boat_DoWakeEffect(const ITEM_INFO *boat); +void __cdecl Boat_DoWakeEffect(const ITEM *boat); int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); int32_t __cdecl Boat_Dynamics(int16_t boat_num); -int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); -void __cdecl Boat_Animation(const ITEM_INFO *boat, int32_t collide); +int32_t __cdecl Boat_UserControl(ITEM *boat); +void __cdecl Boat_Animation(const ITEM *boat, int32_t collide); void __cdecl Boat_Control(int16_t item_num); void __cdecl Gondola_Control(int16_t item_num); diff --git a/src/game/room.c b/src/game/room.c index 9207afc5..bcafe00c 100644 --- a/src/game/room.c +++ b/src/game/room.c @@ -30,7 +30,7 @@ int32_t __cdecl Room_FindByPos( const int32_t x, const int32_t y, const int32_t z) { for (int32_t i = 0; i < g_RoomCount; i++) { - const ROOM_INFO *const room = &g_Rooms[i]; + const ROOM *const room = &g_Rooms[i]; const int32_t x1 = room->pos.x + WALL_L; const int32_t x2 = room->pos.x + (room->x_size - 1) * WALL_L; const int32_t y1 = room->max_ceiling; @@ -94,11 +94,10 @@ void __cdecl Room_GetNewRoom( } int16_t __cdecl Room_GetTiltType( - const SECTOR_INFO *sector, const int32_t x, const int32_t y, - const int32_t z) + const SECTOR *sector, const int32_t x, const int32_t y, const int32_t z) { while (sector->pit_room != NO_ROOM) { - const ROOM_INFO *const room = &g_Rooms[sector->pit_room]; + const ROOM *const room = &g_Rooms[sector->pit_room]; const int32_t z_sector = (z - room->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - room->pos.x) >> WALL_SHIFT; sector = &room->sector[z_sector + x_sector * room->z_size]; @@ -114,13 +113,13 @@ int16_t __cdecl Room_GetTiltType( return 0; } -SECTOR_INFO *__cdecl Room_GetSector( +SECTOR *__cdecl Room_GetSector( const int32_t x, const int32_t y, const int32_t z, int16_t *const room_num) { - SECTOR_INFO *sector = NULL; + SECTOR *sector = NULL; while (true) { - const ROOM_INFO *r = &g_Rooms[*room_num]; + const ROOM *r = &g_Rooms[*room_num]; int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; @@ -157,7 +156,7 @@ SECTOR_INFO *__cdecl Room_GetSector( if (y >= (sector->floor << 8)) { while (sector->pit_room != NO_ROOM) { *room_num = sector->pit_room; - const ROOM_INFO *const r = &g_Rooms[*room_num]; + const ROOM *const r = &g_Rooms[*room_num]; const int32_t z_sector = ((z - r->pos.z) >> WALL_SHIFT); const int32_t x_sector = ((x - r->pos.x) >> WALL_SHIFT); sector = &r->sector[z_sector + x_sector * r->z_size]; @@ -168,7 +167,7 @@ SECTOR_INFO *__cdecl Room_GetSector( } else if (y < (sector->ceiling << 8)) { while (sector->sky_room != NO_ROOM) { *room_num = sector->sky_room; - const ROOM_INFO *const r = &g_Rooms[sector->sky_room]; + const ROOM *const r = &g_Rooms[sector->sky_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; sector = &r->sector[z_sector + x_sector * r->z_size]; @@ -184,8 +183,8 @@ SECTOR_INFO *__cdecl Room_GetSector( int32_t __cdecl Room_GetWaterHeight( const int32_t x, const int32_t y, const int32_t z, int16_t room_num) { - const SECTOR_INFO *sector = NULL; - const ROOM_INFO *r = NULL; + const SECTOR *sector = NULL; + const ROOM *r = NULL; do { r = &g_Rooms[room_num]; @@ -242,14 +241,13 @@ int32_t __cdecl Room_GetWaterHeight( } int32_t __cdecl Room_GetHeight( - const SECTOR_INFO *sector, const int32_t x, const int32_t y, - const int32_t z) + const SECTOR *sector, const int32_t x, const int32_t y, const int32_t z) { g_HeightType = 0; g_TriggerIndex = NULL; while (sector->pit_room != NO_ROOM) { - const ROOM_INFO *const r = &g_Rooms[sector->pit_room]; + const ROOM *const r = &g_Rooms[sector->pit_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; sector = &r->sector[z_sector + x_sector * r->z_size]; @@ -313,9 +311,8 @@ int32_t __cdecl Room_GetHeight( switch (TRIGGER_TYPE(trigger)) { case TO_OBJECT: const int16_t value = TRIGGER_VALUE(trigger); - const ITEM_INFO *const item = &g_Items[value]; - const OBJECT_INFO *const object = - &g_Objects[item->object_id]; + const ITEM *const item = &g_Items[value]; + const OBJECT *const object = &g_Objects[item->object_id]; if (object->floor) { object->floor(item, x, y, z, &height); } @@ -353,7 +350,7 @@ int32_t __cdecl Room_GetHeight( void __cdecl Room_TestTriggers(const int16_t *fd, bool heavy) { - ITEM_INFO *camera_item = NULL; + ITEM *camera_item = NULL; bool switch_off = false; bool flip = false; bool flip_available = false; @@ -463,7 +460,7 @@ void __cdecl Room_TestTriggers(const int16_t *fd, bool heavy) switch (TRIGGER_TYPE(trigger)) { case TO_OBJECT: { - ITEM_INFO *const item = &g_Items[value]; + ITEM *const item = &g_Items[value]; if (item->flags & IF_ONE_SHOT) { break; } @@ -645,13 +642,13 @@ void __cdecl Room_TestTriggers(const int16_t *fd, bool heavy) } int32_t __cdecl Room_GetCeiling( - const SECTOR_INFO *const sector, const int32_t x, const int32_t y, + const SECTOR *const sector, const int32_t x, const int32_t y, const int32_t z) { - const SECTOR_INFO *f = sector; + const SECTOR *f = sector; while (f->sky_room != NO_ROOM) { - const ROOM_INFO *const r = &g_Rooms[f->sky_room]; + const ROOM *const r = &g_Rooms[f->sky_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; f = &r->sector[z_sector + x_sector * r->z_size]; @@ -690,7 +687,7 @@ int32_t __cdecl Room_GetCeiling( f = sector; while (f->pit_room != NO_ROOM) { - const ROOM_INFO *const r = &g_Rooms[f->pit_room]; + const ROOM *const r = &g_Rooms[f->pit_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; f = &r->sector[z_sector + x_sector * r->z_size]; @@ -720,9 +717,8 @@ int32_t __cdecl Room_GetCeiling( switch (TRIGGER_TYPE(trigger)) { case TO_OBJECT: const int16_t value = TRIGGER_VALUE(trigger); - const ITEM_INFO *const item = &g_Items[value]; - const OBJECT_INFO *const object = - &g_Objects[item->object_id]; + const ITEM *const item = &g_Items[value]; + const OBJECT *const object = &g_Objects[item->object_id]; if (object->ceiling) { object->ceiling(item, x, y, z, &height); } @@ -753,7 +749,7 @@ int32_t __cdecl Room_GetCeiling( return height; } -int16_t __cdecl Room_GetDoor(const SECTOR_INFO *const sector) +int16_t __cdecl Room_GetDoor(const SECTOR *const sector) { if (!sector->idx) { return NO_ROOM; @@ -809,14 +805,13 @@ int16_t __cdecl Room_GetDoor(const SECTOR_INFO *const sector) return NO_ROOM; } -void __cdecl Room_AlterFloorHeight( - const ITEM_INFO *const item, const int32_t height) +void __cdecl Room_AlterFloorHeight(const ITEM *const item, const int32_t height) { int16_t room_num = item->room_num; - SECTOR_INFO *const sector = + SECTOR *const sector = Room_GetSector(item->pos.x, item->pos.y, item->pos.z, &room_num); - const SECTOR_INFO *ceiling = Room_GetSector( + const SECTOR *ceiling = Room_GetSector( item->pos.x, item->pos.y + height - WALL_L, item->pos.z, &room_num); if (sector->floor == NO_HEIGHT / 256) { @@ -841,15 +836,15 @@ void __cdecl Room_AlterFloorHeight( void __cdecl Room_FlipMap(void) { for (int32_t i = 0; i < g_RoomCount; i++) { - ROOM_INFO *const r = &g_Rooms[i]; + ROOM *const r = &g_Rooms[i]; if (r->flipped_room == NO_ROOM_NEG) { continue; } Room_RemoveFlipItems(r); - ROOM_INFO *const flipped = &g_Rooms[r->flipped_room]; - ROOM_INFO temp = *r; + ROOM *const flipped = &g_Rooms[r->flipped_room]; + ROOM temp = *r; *r = *flipped; *flipped = temp; @@ -866,12 +861,12 @@ void __cdecl Room_FlipMap(void) g_FlipStatus = !g_FlipStatus; } -void __cdecl Room_RemoveFlipItems(const ROOM_INFO *const r) +void __cdecl Room_RemoveFlipItems(const ROOM *const r) { int16_t item_num = r->item_num; while (item_num != NO_ITEM) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; switch (item->object_id) { case O_MOVABLE_BLOCK_1: @@ -895,11 +890,11 @@ void __cdecl Room_RemoveFlipItems(const ROOM_INFO *const r) } } -void __cdecl Room_AddFlipItems(const ROOM_INFO *const r) +void __cdecl Room_AddFlipItems(const ROOM *const r) { int16_t item_num = r->item_num; while (item_num != NO_ITEM) { - const ITEM_INFO *const item = &g_Items[item_num]; + const ITEM *const item = &g_Items[item_num]; switch (item->object_id) { case O_MOVABLE_BLOCK_1: @@ -962,7 +957,7 @@ int32_t Room_GetTotalCount(void) return g_RoomCount; } -ROOM_INFO *Room_Get(const int32_t room_num) +ROOM *Room_Get(const int32_t room_num) { return &g_Rooms[room_num]; } diff --git a/src/game/room.h b/src/game/room.h index 11b74576..c5ee28f3 100644 --- a/src/game/room.h +++ b/src/game/room.h @@ -13,19 +13,19 @@ void __cdecl Room_GetNearbyRooms( int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); int16_t __cdecl Room_GetTiltType( - const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -SECTOR_INFO *__cdecl Room_GetSector( + const SECTOR *sector, int32_t x, int32_t y, int32_t z); +SECTOR *__cdecl Room_GetSector( int32_t x, int32_t y, int32_t z, int16_t *room_num); int32_t __cdecl Room_GetWaterHeight( int32_t x, int32_t y, int32_t z, int16_t room_num); int32_t __cdecl Room_GetHeight( - const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); + const SECTOR *sector, int32_t x, int32_t y, int32_t z); int32_t __cdecl Room_GetCeiling( - const SECTOR_INFO *sector, int32_t x, int32_t y, int32_t z); -int16_t __cdecl Room_GetDoor(const SECTOR_INFO *sector); + const SECTOR *sector, int32_t x, int32_t y, int32_t z); +int16_t __cdecl Room_GetDoor(const SECTOR *sector); void __cdecl Room_TestTriggers(const int16_t *fd, bool heavy); -void __cdecl Room_AlterFloorHeight(const ITEM_INFO *item, int32_t height); +void __cdecl Room_AlterFloorHeight(const ITEM *item, int32_t height); void __cdecl Room_FlipMap(void); -void __cdecl Room_RemoveFlipItems(const ROOM_INFO *r); -void __cdecl Room_AddFlipItems(const ROOM_INFO *r); +void __cdecl Room_RemoveFlipItems(const ROOM *r); +void __cdecl Room_AddFlipItems(const ROOM *r); void __cdecl Room_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); diff --git a/src/game/room_draw.c b/src/game/room_draw.c index 1a04bf18..c7f04be2 100644 --- a/src/game/room_draw.c +++ b/src/game/room_draw.c @@ -13,7 +13,7 @@ void __cdecl Room_GetBounds(void) { while (g_BoundStart != g_BoundEnd) { const int16_t room_num = g_BoundRooms[g_BoundStart++ % MAX_BOUND_ROOMS]; - ROOM_INFO *const r = &g_Rooms[room_num]; + ROOM *const r = &g_Rooms[room_num]; r->bound_active &= ~2; g_MidSort = (r->bound_active >> 8) + 1; @@ -54,20 +54,20 @@ void __cdecl Room_GetBounds(void) } } - if (r->doors == NULL) { + if (r->portals == NULL) { continue; } Matrix_Push(); Matrix_TranslateAbs(r->pos.x, r->pos.y, r->pos.z); - for (int32_t i = 0; i < r->doors->count; i++) { - const DOOR_INFO *const door = &r->doors->door[i]; + for (int32_t i = 0; i < r->portals->count; i++) { + const PORTAL *const portal = &r->portals->portal[i]; // clang-format off const XYZ_32 offset = { - .x = door->x * (r->pos.x + door->vertex[0].x - g_W2VMatrix._03), - .y = door->y * (r->pos.y + door->vertex[0].y - g_W2VMatrix._13), - .z = door->z * (r->pos.z + door->vertex[0].z - g_W2VMatrix._23), + .x = portal->x * (r->pos.x + portal->vertex[0].x - g_W2VMatrix._03), + .y = portal->y * (r->pos.y + portal->vertex[0].y - g_W2VMatrix._13), + .z = portal->z * (r->pos.z + portal->vertex[0].z - g_W2VMatrix._23), }; // clang-format on @@ -75,17 +75,17 @@ void __cdecl Room_GetBounds(void) continue; } - Room_SetBounds(&door->x, door->room, r); + Room_SetBounds(&portal->x, portal->room, r); } Matrix_Pop(); } } void __cdecl Room_SetBounds( - const int16_t *obj_ptr, int32_t room_num, const ROOM_INFO *parent) + const int16_t *obj_ptr, int32_t room_num, const ROOM *parent) { - ROOM_INFO *const r = &g_Rooms[room_num]; - const DOOR_INFO *const door = (const DOOR_INFO *)(obj_ptr - 1); + ROOM *const r = &g_Rooms[room_num]; + const PORTAL *const portal = (const PORTAL *)(obj_ptr - 1); // clang-format off if (r->bound_left <= parent->test_left && @@ -103,13 +103,13 @@ void __cdecl Room_SetBounds( int32_t bottom = parent->test_top; int32_t top = parent->test_bottom; - DOOR_VBUF door_vbuf[4]; + PORTAL_VBUF portal_vbuf[4]; int32_t z_behind = 0; int32_t z_too_far = 0; for (int32_t i = 0; i < 4; i++) { - DOOR_VBUF *const dvbuf = &door_vbuf[i]; - const XYZ_16 *const dvtx = &door->vertex[i]; + PORTAL_VBUF *const dvbuf = &portal_vbuf[i]; + const XYZ_16 *const dvtx = &portal->vertex[i]; const int32_t xv = dvtx->x * m->_00 + dvtx->y * m->_01 + dvtx->z * m->_02 + m->_03; const int32_t yv = @@ -159,8 +159,8 @@ void __cdecl Room_SetBounds( } if (z_behind > 0) { - const DOOR_VBUF *dest = &door_vbuf[0]; - const DOOR_VBUF *last = &door_vbuf[3]; + const PORTAL_VBUF *dest = &portal_vbuf[0]; + const PORTAL_VBUF *last = &portal_vbuf[3]; for (int32_t i = 0; i < 4; i++, last = dest++) { if ((dest->zv < 0) == (last->zv < 0)) { @@ -228,7 +228,7 @@ void __cdecl Room_SetBounds( } } -void __cdecl Room_Clip(const ROOM_INFO *const r) +void __cdecl Room_Clip(const ROOM *const r) { int32_t xv[8]; int32_t yv[8]; @@ -352,7 +352,7 @@ void __cdecl Room_Clip(const ROOM_INFO *const r) void __cdecl Room_DrawSingleRoomGeometry(const int16_t room_num) { - ROOM_INFO *const r = &g_Rooms[room_num]; + ROOM *const r = &g_Rooms[room_num]; if (r->flags & RF_UNDERWATER) { S_SetupBelowWater(g_CameraUnderwater); @@ -379,7 +379,7 @@ void __cdecl Room_DrawSingleRoomGeometry(const int16_t room_num) void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) { - ROOM_INFO *const r = &g_Rooms[room_num]; + ROOM *const r = &g_Rooms[room_num]; if (r->flags & RF_UNDERWATER) { S_SetupBelowWater(g_CameraUnderwater); @@ -398,7 +398,7 @@ void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) g_PhdWinBottom = r->bound_bottom; for (int32_t i = 0; i < r->num_meshes; i++) { - const MESH_INFO *const mesh = &r->mesh[i]; + const MESH *const mesh = &r->mesh[i]; const STATIC_INFO *const static_obj = &g_StaticObjects[mesh->static_num]; if (static_obj->flags & 2) { @@ -422,9 +422,9 @@ void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) int16_t item_num = r->item_num; while (item_num != NO_ITEM) { - ITEM_INFO *const item = &g_Items[item_num]; + ITEM *const item = &g_Items[item_num]; if (item->status != IS_INVISIBLE) { - const OBJECT_INFO *const object = &g_Objects[item->object_id]; + const OBJECT *const object = &g_Objects[item->object_id]; object->draw_routine(item); } item_num = item->next_item; @@ -432,7 +432,7 @@ void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) int16_t fx_num = r->fx_num; while (fx_num != NO_ITEM) { - const FX_INFO *const fx = &g_Effects[fx_num]; + const FX *const fx = &g_Effects[fx_num]; Effect_Draw(fx_num); fx_num = fx->next_free; } @@ -447,7 +447,7 @@ void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) void __cdecl Room_DrawAllRooms(const int16_t current_room) { - ROOM_INFO *const r = &g_Rooms[current_room]; + ROOM *const r = &g_Rooms[current_room]; r->test_left = 0; r->test_top = 0; r->test_right = g_PhdWinMaxX; diff --git a/src/game/room_draw.h b/src/game/room_draw.h index 3fe153f5..08579b02 100644 --- a/src/game/room_draw.h +++ b/src/game/room_draw.h @@ -4,8 +4,8 @@ void __cdecl Room_GetBounds(void); void __cdecl Room_SetBounds( - const int16_t *obj_ptr, int32_t room_num, const ROOM_INFO *parent); -void __cdecl Room_Clip(const ROOM_INFO *r); + const int16_t *obj_ptr, int32_t room_num, const ROOM *parent); +void __cdecl Room_Clip(const ROOM *r); void __cdecl Room_DrawAllRooms(int16_t current_room); void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); diff --git a/src/global/funcs.h b/src/global/funcs.h index 2e9a1863..9bebff30 100644 --- a/src/global/funcs.h +++ b/src/global/funcs.h @@ -13,16 +13,16 @@ #define ControlTwinkle ((void __cdecl (*)(int16_t fx_num))0x004177B0) #define CreateBartoliLight ((void __cdecl (*)(int16_t item_num))0x00417930) #define DragonFire ((int16_t __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num))0x00417A10) -#define DragonCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00417AC0) +#define DragonCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00417AC0) #define DragonBones ((void __cdecl (*)(int16_t item_num))0x00417DB0) #define DragonControl ((void __cdecl (*)(int16_t back_num))0x00417E90) #define InitialiseBartoli ((void __cdecl (*)(int16_t item_num))0x004183E0) #define BartoliControl ((void __cdecl (*)(int16_t item_num))0x00418500) #define DinoControl ((void __cdecl (*)(int16_t item_num))0x004186A0) -#define Object_DrawSpriteItem ((void __cdecl (*)(ITEM_INFO *item))0x004199E0) -#define Object_DrawAnimatingItem ((void __cdecl (*)(ITEM_INFO *item))0x00419A70) +#define Object_DrawSpriteItem ((void __cdecl (*)(ITEM *item))0x004199E0) +#define Object_DrawAnimatingItem ((void __cdecl (*)(ITEM *item))0x00419A70) #define Gun_DrawFlash ((void __cdecl (*)(LARA_GUN_TYPE weapon_type, int32_t clip))0x0041BD30) -#define Output_CalculateObjectLighting ((void __cdecl (*)(const ITEM_INFO *item, const FRAME_INFO *frame))0x0041BEA0) +#define Output_CalculateObjectLighting ((void __cdecl (*)(const ITEM *item, const FRAME_INFO *frame))0x0041BEA0) #define AddDynamicLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t intensity, int32_t falloff))0x0041C0F0) #define BigEelControl ((void __cdecl (*)(int16_t item_num))0x0041C140) #define EelControl ((void __cdecl (*)(int16_t item_num))0x0041C2E0) @@ -33,61 +33,61 @@ #define Richochet ((void __cdecl (*)(GAME_VECTOR *pos))0x0041C7F0) #define ControlRichochet1 ((void __cdecl (*)(int16_t fx_num))0x0041C870) #define CreateBubble ((void __cdecl (*)(PHD_3DPOS *pos, int16_t room_num))0x0041C8A0) -#define LaraBubbles ((void __cdecl (*)(ITEM_INFO *item))0x0041C910) +#define LaraBubbles ((void __cdecl (*)(ITEM *item))0x0041C910) #define ControlBubble1 ((void __cdecl (*)(int16_t fx_num))0x0041C990) -#define Splash ((void __cdecl (*)(ITEM_INFO *item))0x0041CA90) +#define Splash ((void __cdecl (*)(ITEM *item))0x0041CA90) #define ControlSplash1 ((void __cdecl (*)(int16_t fx_num))0x0041CB60) #define ControlWaterSprite ((void __cdecl (*)(int16_t fx_num))0x0041CBE0) #define ControlSnowSprite ((void __cdecl (*)(int16_t fx_num))0x0041CC90) #define ControlHotLiquid ((void __cdecl (*)(int16_t fx_num))0x0041CD20) #define WaterFall ((void __cdecl (*)(int16_t fx_num))0x0041CE00) -#define finish_level_effect ((void __cdecl (*)(ITEM_INFO *item))0x0041CF40) -#define turn180_effect ((void __cdecl (*)(ITEM_INFO *item))0x0041CF50) -#define floor_shake_effect ((void __cdecl (*)(ITEM_INFO *item))0x0041CF70) -#define lara_normal_effect ((void __cdecl (*)(ITEM_INFO *item))0x0041D010) -#define BoilerFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D050) -#define FloodFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D070) -#define RubbleFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D100) -#define ChandelierFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D130) -#define ExplosionFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D160) -#define PistonFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D190) -#define CurtainFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D1B0) -#define StatueFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D1D0) -#define SetChangeFX ((void __cdecl (*)(ITEM_INFO *item))0x0041D1F0) +#define finish_level_effect ((void __cdecl (*)(ITEM *item))0x0041CF40) +#define turn180_effect ((void __cdecl (*)(ITEM *item))0x0041CF50) +#define floor_shake_effect ((void __cdecl (*)(ITEM *item))0x0041CF70) +#define lara_normal_effect ((void __cdecl (*)(ITEM *item))0x0041D010) +#define BoilerFX ((void __cdecl (*)(ITEM *item))0x0041D050) +#define FloodFX ((void __cdecl (*)(ITEM *item))0x0041D070) +#define RubbleFX ((void __cdecl (*)(ITEM *item))0x0041D100) +#define ChandelierFX ((void __cdecl (*)(ITEM *item))0x0041D130) +#define ExplosionFX ((void __cdecl (*)(ITEM *item))0x0041D160) +#define PistonFX ((void __cdecl (*)(ITEM *item))0x0041D190) +#define CurtainFX ((void __cdecl (*)(ITEM *item))0x0041D1B0) +#define StatueFX ((void __cdecl (*)(ITEM *item))0x0041D1D0) +#define SetChangeFX ((void __cdecl (*)(ITEM *item))0x0041D1F0) #define ControlDingDong ((void __cdecl (*)(int16_t item_num))0x0041D210) #define ControlLaraAlarm ((void __cdecl (*)(int16_t item_num))0x0041D250) #define ControlAlarmSound ((void __cdecl (*)(int16_t item_num))0x0041D290) #define ControlBirdTweeter ((void __cdecl (*)(int16_t item_num))0x0041D300) -#define DoChimeSound ((void __cdecl (*)(ITEM_INFO *item))0x0041D360) +#define DoChimeSound ((void __cdecl (*)(ITEM *item))0x0041D360) #define ControlClockChimes ((void __cdecl (*)(int16_t item_num))0x0041D3C0) -#define SphereOfDoomCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x0041D430) +#define SphereOfDoomCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x0041D430) #define SphereOfDoom ((void __cdecl (*)(int16_t item_num))0x0041D560) -#define DrawSphereOfDoom ((void __cdecl (*)(ITEM_INFO *item))0x0041D650) -#define lara_hands_free ((void __cdecl (*)(ITEM_INFO *item))0x0041D780) -#define flip_map_effect ((void __cdecl (*)(ITEM_INFO *item))0x0041D790) -#define draw_right_gun ((void __cdecl (*)(ITEM_INFO *item))0x0041D7A0) -#define draw_left_gun ((void __cdecl (*)(ITEM_INFO *item))0x0041D7F0) -#define swap_meshes_with_meshswap1 ((void __cdecl (*)(ITEM_INFO *item))0x0041D840) -#define swap_meshes_with_meshswap2 ((void __cdecl (*)(ITEM_INFO *item))0x0041D8B0) -#define swap_meshes_with_meshswap3 ((void __cdecl (*)(ITEM_INFO *item))0x0041D920) -#define invisibility_on ((void __cdecl (*)(ITEM_INFO *item))0x0041D9C0) -#define invisibility_off ((void __cdecl (*)(ITEM_INFO *item))0x0041D9D0) -#define dynamic_light_on ((void __cdecl (*)(ITEM_INFO *item))0x0041D9F0) -#define dynamic_light_off ((void __cdecl (*)(ITEM_INFO *item))0x0041DA00) -#define reset_hair ((void __cdecl (*)(ITEM_INFO *item))0x0041DA10) -#define AssaultStart ((void __cdecl (*)(ITEM_INFO *item))0x0041DA20) -#define AssaultStop ((void __cdecl (*)(ITEM_INFO *item))0x0041DA50) -#define AssaultReset ((void __cdecl (*)(ITEM_INFO *item))0x0041DA70) -#define AssaultFinished ((void __cdecl (*)(ITEM_INFO *item))0x0041DA90) +#define DrawSphereOfDoom ((void __cdecl (*)(ITEM *item))0x0041D650) +#define lara_hands_free ((void __cdecl (*)(ITEM *item))0x0041D780) +#define flip_map_effect ((void __cdecl (*)(ITEM *item))0x0041D790) +#define draw_right_gun ((void __cdecl (*)(ITEM *item))0x0041D7A0) +#define draw_left_gun ((void __cdecl (*)(ITEM *item))0x0041D7F0) +#define swap_meshes_with_meshswap1 ((void __cdecl (*)(ITEM *item))0x0041D840) +#define swap_meshes_with_meshswap2 ((void __cdecl (*)(ITEM *item))0x0041D8B0) +#define swap_meshes_with_meshswap3 ((void __cdecl (*)(ITEM *item))0x0041D920) +#define invisibility_on ((void __cdecl (*)(ITEM *item))0x0041D9C0) +#define invisibility_off ((void __cdecl (*)(ITEM *item))0x0041D9D0) +#define dynamic_light_on ((void __cdecl (*)(ITEM *item))0x0041D9F0) +#define dynamic_light_off ((void __cdecl (*)(ITEM *item))0x0041DA00) +#define reset_hair ((void __cdecl (*)(ITEM *item))0x0041DA10) +#define AssaultStart ((void __cdecl (*)(ITEM *item))0x0041DA20) +#define AssaultStop ((void __cdecl (*)(ITEM *item))0x0041DA50) +#define AssaultReset ((void __cdecl (*)(ITEM *item))0x0041DA70) +#define AssaultFinished ((void __cdecl (*)(ITEM *item))0x0041DA90) #define Knife ((int16_t __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num))0x0041DB50) #define Cult2Control ((void __cdecl (*)(int16_t item_num))0x0041DBD0) #define MonkControl ((void __cdecl (*)(int16_t item_num))0x0041E000) #define Worker3Control ((void __cdecl (*)(int16_t item_num))0x0041E4D0) -#define DrawXianLord ((void __cdecl (*)(ITEM_INFO *item))0x0041EAE0) -#define XianDamage ((void __cdecl (*)(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage))0x0041EEE0) +#define DrawXianLord ((void __cdecl (*)(ITEM *item))0x0041EAE0) +#define XianDamage ((void __cdecl (*)(ITEM *item, CREATURE *xian, int32_t damage))0x0041EEE0) #define InitialiseXianLord ((void __cdecl (*)(int16_t item_num))0x0041EF90) #define XianLordControl ((void __cdecl (*)(int16_t item_num))0x0041EFF0) -#define WarriorSparkleTrail ((void __cdecl (*)(ITEM_INFO *item))0x0041F5D0) +#define WarriorSparkleTrail ((void __cdecl (*)(ITEM *item))0x0041F5D0) #define WarriorControl ((void __cdecl (*)(int16_t item_num))0x0041F670) #define InitialiseHair ((void __cdecl (*)(void))0x00420EA0) #define HairControl ((void __cdecl (*)(int32_t in_cutscene))0x00420F20) @@ -96,7 +96,7 @@ #define Rocket_Control ((void __cdecl (*)(int16_t item_num))0x0042C530) #define Flare_DoLight ((int32_t __cdecl (*)(XYZ_32 *pos, int32_t flare_age))0x0042F7A0) #define Flare_DoInHand ((void __cdecl (*)(int32_t flare_age))0x0042F840) -#define Flare_DrawInAir ((void __cdecl (*)(ITEM_INFO *item))0x0042F920) +#define Flare_DrawInAir ((void __cdecl (*)(ITEM *item))0x0042F920) #define Flare_Create ((void __cdecl (*)(int32_t thrown))0x0042FA20) #define Flare_SetArm ((void __cdecl (*)(int32_t frame))0x0042FC00) #define Flare_Draw ((void __cdecl (*)(void))0x0042FC50) @@ -106,16 +106,16 @@ #define Flare_Ready ((void __cdecl (*)(void))0x00430030) #define Flare_Control ((void __cdecl (*)(int16_t item_num))0x00430070) #define ControlMissile ((void __cdecl (*)(int16_t fx_num))0x00432FE0) -#define ShootAtLara ((void __cdecl (*)(FX_INFO *fx))0x004332B0) +#define ShootAtLara ((void __cdecl (*)(FX *fx))0x004332B0) #define BodyPart_Control ((void __cdecl (*)(int16_t fx_num))0x004336F0) #define InitialiseMovingBlock ((void __cdecl (*)(int16_t item_num))0x004338F0) #define MovableBlock ((void __cdecl (*)(int16_t item_num))0x00433920) -#define MovableBlockCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00433A70) -#define TestBlockMovable ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t block_height))0x00433CD0) -#define TestBlockPush ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t block_height, uint16_t quadrant))0x00433D20) -#define TestBlockPull ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t block_height, uint16_t quadrant))0x00433E70) -#define DrawMovableBlock ((void __cdecl (*)(ITEM_INFO *item))0x00434170) -#define DrawUnclippedItem ((void __cdecl (*)(ITEM_INFO *item))0x004341A0) +#define MovableBlockCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00433A70) +#define TestBlockMovable ((int32_t __cdecl (*)(ITEM *item, int32_t block_height))0x00433CD0) +#define TestBlockPush ((int32_t __cdecl (*)(ITEM *item, int32_t block_height, uint16_t quadrant))0x00433D20) +#define TestBlockPull ((int32_t __cdecl (*)(ITEM *item, int32_t block_height, uint16_t quadrant))0x00433E70) +#define DrawMovableBlock ((void __cdecl (*)(ITEM *item))0x00434170) +#define DrawUnclippedItem ((void __cdecl (*)(ITEM *item))0x004341A0) #define EarthQuake ((void __cdecl (*)(int16_t item_num))0x00434210) #define ControlCutShotgun ((void __cdecl (*)(int16_t item_num))0x004342F0) #define InitialiseFinalLevel ((void __cdecl (*)(void))0x00434330) @@ -123,7 +123,7 @@ #define InitialiseDyingMonk ((void __cdecl (*)(int16_t item_num))0x004346F0) #define DyingMonk ((void __cdecl (*)(int16_t item_num))0x00434770) #define ControlGongBonger ((void __cdecl (*)(int16_t item_num))0x00434800) -#define DeathSlideCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x004348C0) +#define DeathSlideCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x004348C0) #define ControlDeathSlide ((void __cdecl (*)(int16_t item_num))0x00434980) #define BigBowlControl ((void __cdecl (*)(int16_t item_num))0x00434C10) #define BellControl ((void __cdecl (*)(int16_t item_num))0x00434D00) @@ -135,22 +135,22 @@ #define OpenThatDoor ((void __cdecl (*)(DOORPOS_DATA *d))0x004350A0) #define InitialiseDoor ((void __cdecl (*)(int16_t item_num))0x004350E0) #define DoorControl ((void __cdecl (*)(int16_t item_num))0x004354C0) -#define OnDrawBridge ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y))0x00435590) -#define DrawBridgeFloor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435650) -#define DrawBridgeCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435690) -#define DrawBridgeCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x004356D0) +#define OnDrawBridge ((int32_t __cdecl (*)(ITEM *item, int32_t x, int32_t y))0x00435590) +#define DrawBridgeFloor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435650) +#define DrawBridgeCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435690) +#define DrawBridgeCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x004356D0) #define InitialiseLift ((void __cdecl (*)(int16_t item_num))0x00435700) #define LiftControl ((void __cdecl (*)(int16_t item_num))0x00435740) -#define LiftFloorCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling))0x00435820) -#define LiftFloor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004359A0) -#define LiftCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004359E0) -#define BridgeFlatFloor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435A20) -#define BridgeFlatCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435A40) -#define GetOffset ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t z))0x00435A60) -#define BridgeTilt1Floor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435AA0) -#define BridgeTilt1Ceiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435AD0) -#define BridgeTilt2Floor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435B10) -#define BridgeTilt2Ceiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435B40) +#define LiftFloorCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling))0x00435820) +#define LiftFloor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004359A0) +#define LiftCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004359E0) +#define BridgeFlatFloor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435A20) +#define BridgeFlatCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435A40) +#define GetOffset ((int32_t __cdecl (*)(ITEM *item, int32_t x, int32_t z))0x00435A60) +#define BridgeTilt1Floor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435AA0) +#define BridgeTilt1Ceiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435AD0) +#define BridgeTilt2Floor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435B10) +#define BridgeTilt2Ceiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00435B40) #define CopterControl ((void __cdecl (*)(int16_t item_num))0x00435B80) #define GeneralControl ((void __cdecl (*)(int16_t item_num))0x00435C90) #define DetonatorControl ((void __cdecl (*)(int16_t item_num))0x00435D70) @@ -159,7 +159,7 @@ #define GunShot ((int16_t __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num))0x00435F20) #define GunHit ((int16_t __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num))0x00435F90) #define GunMiss ((int16_t __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num))0x00436050) -#define ShotLara ((int32_t __cdecl (*)(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage))0x00436100) +#define ShotLara ((int32_t __cdecl (*)(ITEM *item, AI_INFO *info, BITE *gun, int16_t extra_rotation, int32_t damage))0x00436100) #define InitialiseCult1 ((void __cdecl (*)(int16_t item_num))0x004362D0) #define Cult1Control ((void __cdecl (*)(int16_t item_num))0x00436320) #define InitialiseCult3 ((void __cdecl (*)(int16_t item_num))0x00436750) @@ -169,12 +169,12 @@ #define BanditControl ((void __cdecl (*)(int16_t item_num))0x00437570) #define Bandit2Control ((void __cdecl (*)(int16_t item_num))0x004378B0) #define WinstonControl ((void __cdecl (*)(int16_t item_num))0x00437CF0) -#define PickUpCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00437E70) -#define SwitchCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x004382F0) -#define SwitchCollision2 ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00438500) -#define DetonatorCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00438600) -#define KeyHoleCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00438840) -#define PuzzleHoleCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x00438A80) +#define PickUpCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00437E70) +#define SwitchCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x004382F0) +#define SwitchCollision2 ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00438500) +#define DetonatorCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00438600) +#define KeyHoleCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00438840) +#define PuzzleHoleCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x00438A80) #define SwitchControl ((void __cdecl (*)(int16_t item_num))0x00438D40) #define SwitchTrigger ((int32_t __cdecl (*)(int16_t item_num, int16_t timer))0x00438D80) #define KeyTrigger ((int32_t __cdecl (*)(int16_t item_num))0x00438E40) @@ -201,31 +201,31 @@ #define SharkControl ((void __cdecl (*)(int16_t item_num))0x0043CBA0) #define InitialiseSkidoo ((void __cdecl (*)(int16_t item_num))0x0043CE30) #define SkidooCheckGeton ((int32_t __cdecl (*)(int16_t item_num, COLL_INFO *coll))0x0043CE70) -#define SkidooCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll))0x0043CF60) -#define SkidooBaddieCollision ((void __cdecl (*)(ITEM_INFO *skidoo))0x0043D060) -#define TestHeight ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos))0x0043D260) -#define DoShift ((int32_t __cdecl (*)(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old))0x0043D320) +#define SkidooCollision ((void __cdecl (*)(int16_t item_num, ITEM *litem, COLL_INFO *coll))0x0043CF60) +#define SkidooBaddieCollision ((void __cdecl (*)(ITEM *skidoo))0x0043D060) +#define TestHeight ((int32_t __cdecl (*)(ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *pos))0x0043D260) +#define DoShift ((int32_t __cdecl (*)(ITEM *skidoo, XYZ_32 *pos, XYZ_32 *old))0x0043D320) #define DoDynamics ((int32_t __cdecl (*)(int32_t height, int32_t fall_speed, int32_t *y))0x0043D5A0) -#define GetCollisionAnim ((int32_t __cdecl (*)(ITEM_INFO *skidoo, XYZ_32 *moved))0x0043D600) -#define DoSnowEffect ((void __cdecl (*)(ITEM_INFO *skidoo))0x0043D690) -#define SkidooDynamics ((int32_t __cdecl (*)(ITEM_INFO *skidoo))0x0043D7D0) -#define SkidooUserControl ((int32_t __cdecl (*)(ITEM_INFO *skidoo, int32_t height, int32_t *pitch))0x0043DC70) +#define GetCollisionAnim ((int32_t __cdecl (*)(ITEM *skidoo, XYZ_32 *moved))0x0043D600) +#define DoSnowEffect ((void __cdecl (*)(ITEM *skidoo))0x0043D690) +#define SkidooDynamics ((int32_t __cdecl (*)(ITEM *skidoo))0x0043D7D0) +#define SkidooUserControl ((int32_t __cdecl (*)(ITEM *skidoo, int32_t height, int32_t *pitch))0x0043DC70) #define SkidooCheckGetOffOK ((int32_t __cdecl (*)(int32_t direction))0x0043DE30) -#define SkidooAnimation ((void __cdecl (*)(ITEM_INFO *skidoo, int32_t collide, int32_t dead))0x0043DF40) -#define SkidooExplode ((void __cdecl (*)(ITEM_INFO *skidoo))0x0043E220) +#define SkidooAnimation ((void __cdecl (*)(ITEM *skidoo, int32_t collide, int32_t dead))0x0043DF40) +#define SkidooExplode ((void __cdecl (*)(ITEM *skidoo))0x0043E220) #define SkidooCheckGetOff ((int32_t __cdecl (*)(void))0x0043E2A0) #define SkidooGuns ((void __cdecl (*)(void))0x0043E4E0) #define SkidooControl ((int32_t __cdecl (*)(void))0x0043E600) -#define DrawSkidoo ((void __cdecl (*)(ITEM_INFO *item))0x0043EA60) +#define DrawSkidoo ((void __cdecl (*)(ITEM *item))0x0043EA60) #define InitialiseSkidman ((void __cdecl (*)(int16_t item_num))0x0043ED40) #define SkidManControl ((void __cdecl (*)(int16_t rider_num))0x0043EDD0) -#define SkidmanPush ((void __cdecl (*)(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius))0x0043F1D0) -#define SkidmanCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll))0x0043F2F0) +#define SkidmanPush ((void __cdecl (*)(ITEM *item, ITEM *lara_item, int32_t radius))0x0043F1D0) +#define SkidmanCollision ((void __cdecl (*)(int16_t item_num, ITEM *lara_item, COLL_INFO *coll))0x0043F2F0) #define Music_GetRealTrack ((int32_t __cdecl (*)(int32_t track))0x0043F380) -#define Collide_TestCollision ((int32_t __cdecl (*)(ITEM_INFO *item, const ITEM_INFO *lara_item))0x0043F9B0) -#define Collide_GetSpheres ((int32_t __cdecl (*)(const ITEM_INFO *item, SPHERE *spheres, bool world_space))0x0043FAE0) -#define Collide_GetJointAbsPosition ((void __cdecl (*)(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint))0x0043FDC0) -#define BaddieBiteEffect ((void __cdecl (*)(ITEM_INFO *item, BITE_INFO *bite))0x0043FF60) +#define Collide_TestCollision ((int32_t __cdecl (*)(ITEM *item, const ITEM *lara_item))0x0043F9B0) +#define Collide_GetSpheres ((int32_t __cdecl (*)(const ITEM *item, SPHERE *spheres, bool world_space))0x0043FAE0) +#define Collide_GetJointAbsPosition ((void __cdecl (*)(const ITEM *item, const XYZ_32 *vec, int32_t joint))0x0043FDC0) +#define BaddieBiteEffect ((void __cdecl (*)(ITEM *item, BITE *bite))0x0043FF60) #define SpiderLeap ((void __cdecl (*)(int16_t item_num, int16_t angle))0x0043FFC0) #define SpiderControl ((void __cdecl (*)(int16_t item_num))0x00440070) #define BigSpiderControl ((void __cdecl (*)(int16_t item_num))0x00440290) @@ -243,16 +243,16 @@ #define SpringBoardControl ((void __cdecl (*)(int16_t item_num))0x00441A50) #define InitialiseRollingBall ((void __cdecl (*)(int16_t item_num))0x00441B30) #define RollingBallControl ((void __cdecl (*)(int16_t item_num))0x00441B70) -#define RollingBallCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll))0x00441EC0) -#define SpikeCollision ((void __cdecl (*)(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll))0x00442110) +#define RollingBallCollision ((void __cdecl (*)(int16_t item_num, ITEM *litem, COLL_INFO *coll))0x00441EC0) +#define SpikeCollision ((void __cdecl (*)(int16_t item_num, ITEM *litem, COLL_INFO *coll))0x00442110) #define TrapDoorControl ((void __cdecl (*)(int16_t item_num))0x00442270) -#define TrapDoorFloor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004422C0) -#define TrapDoorCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442300) -#define OnTrapDoor ((int32_t __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t z))0x00442340) +#define TrapDoorFloor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x004422C0) +#define TrapDoorCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442300) +#define OnTrapDoor ((int32_t __cdecl (*)(ITEM *item, int32_t x, int32_t z))0x00442340) #define Pendulum ((void __cdecl (*)(int16_t item_num))0x004423F0) #define FallingBlock ((void __cdecl (*)(int16_t item_num))0x00442500) -#define FallingBlockFloor ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442610) -#define FallingBlockCeiling ((void __cdecl (*)(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442650) +#define FallingBlockFloor ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442610) +#define FallingBlockCeiling ((void __cdecl (*)(ITEM *item, int32_t x, int32_t y, int32_t z, int32_t *height))0x00442650) #define TeethTrap ((void __cdecl (*)(int16_t item_num))0x004426A0) #define FallingCeiling ((void __cdecl (*)(int16_t item_num))0x00442760) #define DartEmitterControl ((void __cdecl (*)(int16_t item_num))0x00442840) @@ -321,11 +321,11 @@ #define S_OutputPolyList ((void __cdecl (*)(void))0x00450C80) #define S_GetObjectBounds ((int32_t __cdecl (*)(const BOUNDS_16 *bounds))0x00450CC0) #define S_InsertBackPolygon ((void __cdecl (*)(int32_t x0, int32_t y0, int32_t x1, int32_t y1))0x00450F30) -#define S_PrintShadow ((void __cdecl (*)(int16_t radius, const BOUNDS_16 *bounds, const ITEM_INFO *item))0x00450F80) +#define S_PrintShadow ((void __cdecl (*)(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item))0x00450F80) #define S_CalculateLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t room_num))0x00451180) #define S_CalculateStaticLight ((void __cdecl (*)(int16_t adder))0x00451480) -#define S_CalculateStaticMeshLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room))0x004514C0) -#define S_LightRoom ((void __cdecl (*)(ROOM_INFO *room))0x004515F0) +#define S_CalculateStaticMeshLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room))0x004514C0) +#define S_LightRoom ((void __cdecl (*)(ROOM *room))0x004515F0) #define S_DrawHealthBar ((void __cdecl (*)(int32_t percent))0x00451800) #define S_DrawAirBar ((void __cdecl (*)(int32_t percent))0x004519D0) #define AnimateTextures ((void __cdecl (*)(int32_t ticks))0x00451BD0) diff --git a/src/global/types.h b/src/global/types.h index 642e9bfd..5348068c 100644 --- a/src/global/types.h +++ b/src/global/types.h @@ -709,7 +709,7 @@ typedef enum { typedef struct __unaligned { XYZ_32 pos; int32_t mesh_num; -} BITE_INFO; +} BITE; typedef enum { RF_UNDERWATER = 0x01, @@ -719,8 +719,8 @@ typedef enum { } ROOM_FLAG; typedef struct __unaligned { - SECTOR_INFO *sector; - SECTOR_INFO data; + SECTOR *sector; + SECTOR data; int16_t block; } DOORPOS_DATA; @@ -879,8 +879,8 @@ typedef struct __unaligned { int16_t last; int16_t timer; int16_t speed; - ITEM_INFO *item; - ITEM_INFO *last_item; + ITEM *item; + ITEM *last_item; OBJECT_VECTOR *fixed; int32_t is_lara_mic; XYZ_32 mic_pos; @@ -1502,12 +1502,12 @@ typedef enum { GBUF_ANIM_BONES = 8, GBUF_ANIM_FRAMES = 9, GBUF_ROOM_TEXTURES = 10, - GBUF_ROOM_INFOS = 11, + GBUF_ROOMS = 11, GBUF_ROOM_MESH = 12, - GBUF_ROOM_DOOR = 13, + GBUF_ROOM_PORTALS = 13, GBUF_ROOM_FLOOR = 14, GBUF_ROOM_LIGHTS = 15, - GBUF_ROOM_STATIC_MESH_INFOS = 16, + GBUF_ROOM_STATIC_MESHES = 16, GBUF_FLOOR_DATA = 17, GBUF_ITEMS = 18, GBUF_CAMERAS = 19, @@ -1596,7 +1596,7 @@ typedef struct __unaligned { int32_t xv; int32_t yv; int32_t zv; -} DOOR_VBUF; +} PORTAL_VBUF; typedef struct __unaligned { BOUNDS_16 bounds; diff --git a/src/global/vars_decomp.h b/src/global/vars_decomp.h index 2fd5551a..9c97b63b 100644 --- a/src/global/vars_decomp.h +++ b/src/global/vars_decomp.h @@ -16,7 +16,7 @@ #define g_FlipEffect (*(int32_t*)0x004640C4) // = -1 #define g_BoxLines (*(int32_t(*)[12][2])0x00464180) #define g_AssaultBestTime (*(int32_t*)0x004641F0) // = -1 -#define g_EffectRoutines (*((void(__cdecl *(*)[32])(ITEM_INFO *item))0x004641F8)) +#define g_EffectRoutines (*((void(__cdecl *(*)[32])(ITEM *item))0x004641F8)) #define g_GF_NumSecrets (*(int16_t*)0x004642E8) // = 3 #define g_GF_MusicTracks (*(int16_t(*)[16])0x004642F0) #define g_CineTargetAngle (*(int16_t*)0x00464310) // = 0x4000 @@ -76,9 +76,9 @@ #define g_JumpPermitted (*(int32_t*)0x00465AD4) // = 1 #define g_LaraOldSlideAngle (*(int16_t*)0x00465AD8) // = 1 #define g_Weapons (*(WEAPON_INFO(*)[])0x00465AE0) -#define g_LaraControlRoutines (*((void(__cdecl *(*)[71])(ITEM_INFO *item, COLL_INFO *coll))0x00465CD0)) -#define g_ExtraControlRoutines (*((void(__cdecl *(*)[11])(ITEM_INFO *item, COLL_INFO *coll))0x00465DF0)) -#define g_LaraCollisionRoutines (*((void(__cdecl *(*)[71])(ITEM_INFO *item, COLL_INFO *coll))0x00465E20)) +#define g_LaraControlRoutines (*((void(__cdecl *(*)[71])(ITEM *item, COLL_INFO *coll))0x00465CD0)) +#define g_ExtraControlRoutines (*((void(__cdecl *(*)[11])(ITEM *item, COLL_INFO *coll))0x00465DF0)) +#define g_LaraCollisionRoutines (*((void(__cdecl *(*)[71])(ITEM *item, COLL_INFO *coll))0x00465E20)) #define g_TextSpacing (*(int8_t(*)[80])0x00466290) #define g_TextASCIIMap (*(int8_t(*)[])0x004662E0) #define g_BGND_PaletteIndex (*(int32_t*)0x00466400) // = -1 @@ -380,10 +380,10 @@ #define g_FinalBossItem (*(int16_t(*)[5])0x005206B0) #define g_FinalLevelCount (*(int16_t*)0x005206BA) #define g_FinalBossCount (*(int16_t*)0x005206BC) -#define g_BaddieSlots (*(CREATURE_INFO **)0x005206C0) +#define g_BaddieSlots (*(CREATURE **)0x005206C0) #define g_Lara (*(LARA_INFO*)0x005206E0) -#define g_LaraItem (*(ITEM_INFO **)0x005207BC) -#define g_Effects (*(FX_INFO **)0x005207C0) +#define g_LaraItem (*(ITEM **)0x005207BC) +#define g_Effects (*(FX **)0x005207C0) #define g_NextEffectFree (*(int16_t*)0x005207C4) #define g_NextItemFree (*(int16_t*)0x005207C6) #define g_NextItemActive (*(int16_t*)0x005207C8) @@ -442,7 +442,7 @@ #define g_GF_Add2InvItems (*(char(*)[27])0x00521FC0) #define g_SoundEffectCount (*(int32_t*)0x00521FDC) #define g_SoundEffects (*(OBJECT_VECTOR **)0x00521FE0) -#define g_Objects (*(OBJECT_INFO(*)[265])0x00522000) +#define g_Objects (*(OBJECT(*)[265])0x00522000) #define g_AnimFrames (*(FRAME_INFO **)0x005251B0) #define g_Meshes (*(int16_t ***)0x005252B0) #define g_Outside (*(int32_t*)0x005252B4) @@ -464,7 +464,7 @@ #define g_RoomCount (*(int32_t*)0x00526180) #define g_IMRate (*(int32_t*)0x00526184) #define g_IMMatrixPtr (*(MATRIX **)0x00526188) -#define g_Rooms (*(ROOM_INFO **)0x0052618C) +#define g_Rooms (*(ROOM **)0x0052618C) #define g_CameraUnderwater (*(BOOL*)0x00526190) #define g_OutsideRight (*(int32_t*)0x00526198) #define g_OutsideTop (*(int32_t*)0x005261AC) @@ -475,7 +475,7 @@ #define g_FlipMaps (*(int32_t(*)[10])0x00526260) #define g_TriggerIndex (*(int16_t **)0x00526288) #define g_LOSRooms (*(int32_t(*)[20])0x005262A0) -#define g_Items (*(ITEM_INFO **)0x005262F0) +#define g_Items (*(ITEM **)0x005262F0) #define g_CineLoaded (*(int16_t*)0x005262F4) #define g_NumCineFrames (*(int16_t*)0x005262F6) #define g_CineData (*(CINE_FRAME **)0x005262F8) // = NULL diff --git a/subprojects/libtrx b/subprojects/libtrx index 948f57c4..9e232ed9 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 948f57c4aa421d0b94613a40c6f47b0af1e8acc3 +Subproject commit 9e232ed9267f30c869b78943fe8d55bc15b03510 From 26b3c660db937c5c52f62cd2e57ef8a481710f8b Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 24 Sep 2024 00:32:31 +0200 Subject: [PATCH 2/4] console/cmd: fix crash in /set --- CHANGELOG.md | 1 + subprojects/libtrx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43203725..0dcfda6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## [Unreleased](https://github.com/LostArtefacts/TR2X/compare/stable...develop) - ××××-××-×× - added `/sfx` command +- fixed crash in the `/set` console command (regression from 0.3) ## [0.3](https://github.com/LostArtefacts/TR2X/compare/0.2-460-g4721b93...0.3) - 2024-09-20 - added new console commands: diff --git a/subprojects/libtrx b/subprojects/libtrx index 9e232ed9..08e1c6d6 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 9e232ed9267f30c869b78943fe8d55bc15b03510 +Subproject commit 08e1c6d6be485648dda839e95d8ded3de89de74e From 2b297147bfea219b8a45ad2e23639624e1ffdb33 Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 24 Sep 2024 01:31:26 +0200 Subject: [PATCH 3/4] libtrx: tidy json+bson typing --- src/config.c | 10 ++++------ src/game/gameflow/reader.c | 40 ++++++++++++++++---------------------- subprojects/libtrx | 2 +- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/config.c b/src/config.c index 1f04f57a..fa90ba9d 100644 --- a/src/config.c +++ b/src/config.c @@ -5,23 +5,21 @@ #include #include -struct json_object_s; - CONFIG g_Config = { 0 }; #define DIR_CONFIG "cfg" static const char *m_ConfigPath = DIR_CONFIG "/TR2X.json5"; -static void M_Load(struct json_object_s *root_obj); -static void M_Dump(struct json_object_s *root_obj); +static void M_Load(JSON_OBJECT *root_obj); +static void M_Dump(JSON_OBJECT *root_obj); -static void M_Load(struct json_object_s *root_obj) +static void M_Load(JSON_OBJECT *root_obj) { ConfigFile_LoadOptions(root_obj, g_ConfigOptionMap); } -static void M_Dump(struct json_object_s *root_obj) +static void M_Dump(JSON_OBJECT *root_obj) { ConfigFile_DumpOptions(root_obj, g_ConfigOptionMap); } diff --git a/src/game/gameflow/reader.c b/src/game/gameflow/reader.c index c48c2237..80113d55 100644 --- a/src/game/gameflow/reader.c +++ b/src/game/gameflow/reader.c @@ -10,9 +10,8 @@ static void M_StringTableShutdown(GAMEFLOW_NEW_STRING_ENTRY *dest); static bool M_LoadStringTable( - struct json_object_s *root_obj, const char *key, - GAMEFLOW_NEW_STRING_ENTRY **dest); -static bool M_LoadScriptLevels(struct json_object_s *obj, GAMEFLOW_NEW *gf); + JSON_OBJECT *root_obj, const char *key, GAMEFLOW_NEW_STRING_ENTRY **dest); +static bool M_LoadScriptLevels(JSON_OBJECT *obj, GAMEFLOW_NEW *gf); static void M_StringTableShutdown(GAMEFLOW_NEW_STRING_ENTRY *const dest) { @@ -29,18 +28,16 @@ static void M_StringTableShutdown(GAMEFLOW_NEW_STRING_ENTRY *const dest) } static bool M_LoadStringTable( - struct json_object_s *const root_obj, const char *const key, + JSON_OBJECT *const root_obj, const char *const key, GAMEFLOW_NEW_STRING_ENTRY **dest) { - struct json_value_s *const strings_value = - json_object_get_value(root_obj, key); + JSON_VALUE *const strings_value = JSON_ObjectGetValue(root_obj, key); if (strings_value == NULL) { // key is missing - rely on default strings return true; } - struct json_object_s *const strings_obj = - json_value_as_object(strings_value); + JSON_OBJECT *const strings_obj = JSON_ValueAsObject(strings_value); if (strings_obj == NULL) { LOG_ERROR("'%s' must be a dictionary", key); return false; @@ -50,11 +47,10 @@ static bool M_LoadStringTable( sizeof(GAMEFLOW_NEW_STRING_ENTRY) * (strings_obj->length + 1)); GAMEFLOW_NEW_STRING_ENTRY *cur = *dest; - struct json_object_element_s *strings_elem = strings_obj->start; + JSON_OBJECT_ELEMENT *strings_elem = strings_obj->start; for (size_t i = 0; i < strings_obj->length; i++, strings_elem = strings_elem->next) { - struct json_string_s *const value = - json_value_as_string(strings_elem->value); + JSON_STRING *const value = JSON_ValueAsString(strings_elem->value); if (value == NULL) { LOG_ERROR("invalid string key %s", strings_elem->name->string); return NULL; @@ -69,12 +65,11 @@ static bool M_LoadStringTable( return true; } -static bool M_LoadScriptLevels( - struct json_object_s *obj, GAMEFLOW_NEW *const gf) +static bool M_LoadScriptLevels(JSON_OBJECT *obj, GAMEFLOW_NEW *const gf) { bool result = true; - struct json_array_s *const jlvl_arr = json_object_get_array(obj, "levels"); + JSON_ARRAY *const jlvl_arr = JSON_ObjectGetArray(obj, "levels"); if (jlvl_arr == NULL) { LOG_ERROR("'levels' must be a list"); result = false; @@ -94,12 +89,11 @@ static bool M_LoadScriptLevels( gf->level_count = level_count; gf->levels = Memory_Alloc(sizeof(GAMEFLOW_NEW_LEVEL) * level_count); - struct json_array_element_s *jlvl_elem = jlvl_arr->start; + JSON_ARRAY_ELEMENT *jlvl_elem = jlvl_arr->start; for (size_t i = 0; i < jlvl_arr->length; i++, jlvl_elem = jlvl_elem->next) { GAMEFLOW_NEW_LEVEL *const level = &gf->levels[i]; - struct json_object_s *const jlvl_obj = - json_value_as_object(jlvl_elem->value); + JSON_OBJECT *const jlvl_obj = JSON_ValueAsObject(jlvl_elem->value); if (jlvl_obj == NULL) { LOG_ERROR("'levels' elements must be dictionaries"); result = false; @@ -129,21 +123,21 @@ bool GF_N_Load(const char *const path) goto end; } - struct json_parse_result_s parse_result; - struct json_value_s *root = json_parse_ex( - script_data, strlen(script_data), json_parse_flags_allow_json5, NULL, + JSON_PARSE_RESULT parse_result; + JSON_VALUE *root = JSON_ParseEx( + script_data, strlen(script_data), JSON_PARSE_FLAGS_ALLOW_JSON5, NULL, NULL, &parse_result); if (root == NULL) { LOG_ERROR( "failed to parse script file: %s in line %d, char %d", - json_get_error_description(parse_result.error), + JSON_GetErrorDescription(parse_result.error), parse_result.error_line_no, parse_result.error_row_no, script_data); result = false; goto end; } GAMEFLOW_NEW *const gf = &g_GameflowNew; - struct json_object_s *root_obj = json_value_as_object(root); + JSON_OBJECT *root_obj = JSON_ValueAsObject(root); result &= M_LoadStringTable(root_obj, "object_strings", &gf->object_strings); result &= M_LoadStringTable(root_obj, "game_strings", &gf->game_strings); @@ -151,7 +145,7 @@ bool GF_N_Load(const char *const path) end: if (root) { - json_value_free(root); + JSON_ValueFree(root); root = NULL; } diff --git a/subprojects/libtrx b/subprojects/libtrx index 08e1c6d6..198f1036 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 08e1c6d6be485648dda839e95d8ded3de89de74e +Subproject commit 198f10361bc0994678deccbd281393750f39ab69 From 39007099f38d35b94af5784b41fe95c7601cae45 Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 24 Sep 2024 02:06:06 +0200 Subject: [PATCH 4/4] libtrx: update rooms typing --- docs/progress.svg | 4 +-- docs/progress.txt | 46 +++++++++++++++++------------------ src/game/camera.c | 4 +-- src/game/collide.c | 40 +++++++++++++++--------------- src/game/creature.c | 4 +-- src/game/items.c | 2 +- src/game/lara/misc.c | 26 ++++++++++---------- src/game/level.c | 58 ++++++++++++++++++++++---------------------- src/game/lot.c | 2 +- src/game/room.c | 56 +++++++++++++++++++++--------------------- src/game/room_draw.c | 33 +++++++++++++------------ src/global/funcs.h | 2 +- subprojects/libtrx | 2 +- 13 files changed, 140 insertions(+), 139 deletions(-) diff --git a/docs/progress.svg b/docs/progress.svg index 8ef72672..187c6a8b 100644 --- a/docs/progress.svg +++ b/docs/progress.svg @@ -1144,7 +1144,7 @@ void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item); void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); void __cdecl S_CalculateStaticLight(int16_t adder); -void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); +void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade_1, int32_t shade_2, ROOM *room); void __cdecl S_LightRoom(ROOM *room); void __cdecl S_DrawHealthBar(int32_t percent); void __cdecl S_DrawAirBar(int32_t percent); @@ -1625,7 +1625,7 @@ int32_t __cdecl Collide_TestCollision(ITEM *item, const ITEM *lara_item); void __cdecl HWR_InitState(void); void __cdecl Lara_Col_Hang(ITEM *item, COLL_INFO *coll); -void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); +void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade_1, int32_t shade_2, ROOM *room); BOOL __cdecl S_Input_Key(KEYMAP keymap); void __cdecl Item_Kill(int16_t item_num); void __cdecl Gun_InitialiseNewWeapon(void); diff --git a/docs/progress.txt b/docs/progress.txt index db501f03..04b82d47 100644 --- a/docs/progress.txt +++ b/docs/progress.txt @@ -545,8 +545,8 @@ typedef struct __unaligned { // decompiled int16_t box_num; int16_t timer; uint16_t flags; - int16_t shade1; - int16_t shade2; + int16_t shade_1; + int16_t shade_2; int16_t carried_item; void *data; union { @@ -885,9 +885,7 @@ typedef struct { // decompiled typedef struct __unaligned { // decompiled int16_t room; - int16_t x; - int16_t y; - int16_t z; + XYZ_16 normal; XYZ_16 vertex[4]; } PORTAL; @@ -900,19 +898,19 @@ typedef struct __unaligned { // decompiled int32_t x; int32_t y; int32_t z; - int16_t intensity1; - int16_t intensity2; - int32_t falloff1; - int32_t falloff2; + int16_t intensity_1; + int16_t intensity_2; + int32_t falloff_1; + int32_t falloff_2; } LIGHT; typedef struct __unaligned { // decompiled - int32_t x; - int32_t y; - int32_t z; - int16_t y_rot; - int16_t shade1; - int16_t shade2; + XYZ_16 pos; + struct __unaligned { + int16_t y; + } rot; + int16_t shade_1; + int16_t shade_2; int16_t static_num; } MESH; @@ -932,16 +930,18 @@ typedef struct __unaligned { typedef struct __unaligned { // decompiled int16_t *data; PORTALS *portals; - SECTOR *sector; - LIGHT *light; - MESH *mesh; + SECTOR *sectors; + LIGHT *lights; + MESH *meshes; XYZ_32 pos; int32_t min_floor; int32_t max_ceiling; - int16_t z_size; - int16_t x_size; - int16_t ambient1; - int16_t ambient2; + struct __unaligned { + int16_t z; + int16_t x; + } size; + int16_t ambient_1; + int16_t ambient_2; int16_t light_mode; int16_t num_lights; int16_t num_meshes; @@ -4014,7 +4014,7 @@ typedef enum { 0x00450F80 0x01F1 -R void __cdecl S_PrintShadow(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item); 0x00451180 0x02F6 -R void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); 0x00451480 0x0031 -R void __cdecl S_CalculateStaticLight(int16_t adder); -0x004514C0 0x0124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room); +0x004514C0 0x0124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade_1, int32_t shade_2, ROOM *room); 0x004515F0 0x0206 -R void __cdecl S_LightRoom(ROOM *room); 0x00451800 0x01CC -R void __cdecl S_DrawHealthBar(int32_t percent); 0x004519D0 0x01F6 -R void __cdecl S_DrawAirBar(int32_t percent); diff --git a/src/game/camera.c b/src/game/camera.c index c9d5e3e4..ecc68b28 100644 --- a/src/game/camera.c +++ b/src/game/camera.c @@ -243,7 +243,7 @@ void __cdecl Camera_SmartShift( const ROOM *r = &g_Rooms[g_Camera.target.room_num]; int32_t z_sector = (g_Camera.target.z - r->pos.z) >> WALL_SHIFT; int32_t x_sector = (g_Camera.target.x - r->pos.x) >> WALL_SHIFT; - int16_t item_box = r->sector[z_sector + x_sector * r->z_size].box; + int16_t item_box = r->sectors[z_sector + x_sector * r->size.z].box; const BOX_INFO *box = &g_Boxes[item_box]; int32_t left = (int32_t)box->left << WALL_SHIFT; @@ -254,7 +254,7 @@ void __cdecl Camera_SmartShift( r = &g_Rooms[target->room_num]; z_sector = (target->z - r->pos.z) >> WALL_SHIFT; x_sector = (target->x - r->pos.x) >> WALL_SHIFT; - int16_t camera_box = r->sector[z_sector + x_sector * r->z_size].box; + int16_t camera_box = r->sectors[z_sector + x_sector * r->size.z].box; if (camera_box != NO_BOX && (target->z < left || target->z > right || target->x < top diff --git a/src/game/collide.c b/src/game/collide.c index ae8ba275..6d7753d7 100644 --- a/src/game/collide.c +++ b/src/game/collide.c @@ -309,7 +309,7 @@ int32_t __cdecl Collide_CollideStaticObjects( const ROOM *const room = &g_Rooms[g_DrawRoomsArray[i]]; for (int32_t j = 0; j < room->num_meshes; j++) { - const MESH *const mesh = &room->mesh[j]; + const MESH *const mesh = &room->meshes[j]; const STATIC_INFO *const sinfo = &g_StaticObjects[mesh->static_num]; if (sinfo->flags & 1) { @@ -320,35 +320,35 @@ int32_t __cdecl Collide_CollideStaticObjects( int32_t x_max; int32_t z_min; int32_t z_max; - int32_t y_min = mesh->y + sinfo->collision_bounds.min_y; - int32_t y_max = mesh->y + sinfo->collision_bounds.max_y; - switch (mesh->y_rot) { + const int32_t y_min = mesh->pos.y + sinfo->collision_bounds.min_y; + const int32_t y_max = mesh->pos.y + sinfo->collision_bounds.max_y; + switch (mesh->rot.y) { case PHD_90: - x_min = mesh->x + sinfo->collision_bounds.min_z; - x_max = mesh->x + sinfo->collision_bounds.max_z; - z_min = mesh->z - sinfo->collision_bounds.max_x; - z_max = mesh->z - sinfo->collision_bounds.min_x; + x_min = mesh->pos.x + sinfo->collision_bounds.min_z; + x_max = mesh->pos.x + sinfo->collision_bounds.max_z; + z_min = mesh->pos.z - sinfo->collision_bounds.max_x; + z_max = mesh->pos.z - sinfo->collision_bounds.min_x; break; case -PHD_180: - x_min = mesh->x - sinfo->collision_bounds.max_x; - x_max = mesh->x - sinfo->collision_bounds.min_x; - z_min = mesh->z - sinfo->collision_bounds.max_z; - z_max = mesh->z - sinfo->collision_bounds.min_z; + x_min = mesh->pos.x - sinfo->collision_bounds.max_x; + x_max = mesh->pos.x - sinfo->collision_bounds.min_x; + z_min = mesh->pos.z - sinfo->collision_bounds.max_z; + z_max = mesh->pos.z - sinfo->collision_bounds.min_z; break; case -PHD_90: - x_min = mesh->x - sinfo->collision_bounds.max_z; - x_max = mesh->x - sinfo->collision_bounds.min_z; - z_min = mesh->z + sinfo->collision_bounds.min_x; - z_max = mesh->z + sinfo->collision_bounds.max_x; + x_min = mesh->pos.x - sinfo->collision_bounds.max_z; + x_max = mesh->pos.x - sinfo->collision_bounds.min_z; + z_min = mesh->pos.z + sinfo->collision_bounds.min_x; + z_max = mesh->pos.z + sinfo->collision_bounds.max_x; break; default: - x_min = mesh->x + sinfo->collision_bounds.min_x; - x_max = mesh->x + sinfo->collision_bounds.max_x; - z_min = mesh->z + sinfo->collision_bounds.min_z; - z_max = mesh->z + sinfo->collision_bounds.max_z; + x_min = mesh->pos.x + sinfo->collision_bounds.min_x; + x_max = mesh->pos.x + sinfo->collision_bounds.max_x; + z_min = mesh->pos.z + sinfo->collision_bounds.min_z; + z_max = mesh->pos.z + sinfo->collision_bounds.max_z; break; } diff --git a/src/game/creature.c b/src/game/creature.c index 881cd536..9898ef7d 100644 --- a/src/game/creature.c +++ b/src/game/creature.c @@ -92,7 +92,7 @@ void __cdecl Creature_AIInfo(ITEM *const item, AI_INFO *const info) const ROOM *const r = &g_Rooms[item->room_num]; const int32_t z_sector = (item->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (item->pos.x - r->pos.x) >> WALL_SHIFT; - item->box_num = r->sector[z_sector + x_sector * r->z_size].box; + item->box_num = r->sectors[z_sector + x_sector * r->size.z].box; info->zone_num = zone[item->box_num]; } @@ -100,7 +100,7 @@ void __cdecl Creature_AIInfo(ITEM *const item, AI_INFO *const info) const ROOM *const r = &g_Rooms[enemy->room_num]; const int32_t z_sector = (enemy->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (enemy->pos.x - r->pos.x) >> WALL_SHIFT; - enemy->box_num = r->sector[z_sector + x_sector * r->z_size].box; + enemy->box_num = r->sectors[z_sector + x_sector * r->size.z].box; info->enemy_zone_num = zone[enemy->box_num]; } diff --git a/src/game/items.c b/src/game/items.c index bcd698d8..fab4ed9d 100644 --- a/src/game/items.c +++ b/src/game/items.c @@ -154,7 +154,7 @@ void __cdecl Item_Initialise(const int16_t item_num) const int32_t dx = (item->pos.x - room->pos.x) >> WALL_SHIFT; const int32_t dz = (item->pos.z - room->pos.z) >> WALL_SHIFT; - const SECTOR *const sector = &room->sector[dx * room->z_size + dz]; + const SECTOR *const sector = &room->sectors[dx * room->size.z + dz]; item->floor = sector->floor << 8; if (g_SaveGame.bonus_flag && !g_IsDemoLevelType) { diff --git a/src/game/lara/misc.c b/src/game/lara/misc.c index 4da0cacd..767f7d34 100644 --- a/src/game/lara/misc.c +++ b/src/game/lara/misc.c @@ -1055,7 +1055,7 @@ void __cdecl Lara_BaddieCollision(ITEM *lara_item, COLL_INFO *coll) if (roomies_count >= MAX_BADDIE_COLLISION) { break; } - roomies[roomies_count++] = portals->portal[i].room; + roomies[roomies_count++] = portals->portal[i].room_num; } } @@ -1556,23 +1556,23 @@ int32_t __cdecl Lara_GetWaterDepth( z_sector = 0; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } - } else if (z_sector >= r->z_size - 1) { - z_sector = r->z_size - 1; + } else if (z_sector >= r->size.z - 1) { + z_sector = r->size.z - 1; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } } else if (x_sector < 0) { x_sector = 0; - } else if (x_sector >= r->x_size) { - x_sector = r->x_size - 1; + } else if (x_sector >= r->size.x) { + x_sector = r->size.x - 1; } - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; const int16_t data = Room_GetDoor(sector); if (data == NO_ROOM) { break; @@ -1591,7 +1591,7 @@ int32_t __cdecl Lara_GetWaterDepth( } const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; } return 0x7FFF; } @@ -1605,7 +1605,7 @@ int32_t __cdecl Lara_GetWaterDepth( } const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; } return NO_HEIGHT; } @@ -1713,7 +1713,7 @@ void __cdecl Lara_WaterCurrent(COLL_INFO *const coll) const ROOM *const r = &g_Rooms[g_LaraItem->room_num]; const int32_t z_sector = (g_LaraItem->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (g_LaraItem->pos.x - r->pos.x) >> WALL_SHIFT; - g_LaraItem->box_num = r->sector[z_sector + x_sector * r->z_size].box; + g_LaraItem->box_num = r->sectors[z_sector + x_sector * r->size.z].box; if (g_Lara.creature == NULL) { g_Lara.current_active = 0; diff --git a/src/game/level.c b/src/game/level.c index c807cf7b..5f577362 100644 --- a/src/game/level.c +++ b/src/game/level.c @@ -134,13 +134,13 @@ static void __cdecl M_LoadRooms(VFILE *const file) VFile_Read(file, r->portals->portal, sizeof(PORTAL) * num_doors); } - r->z_size = VFile_ReadS16(file); - r->x_size = VFile_ReadS16(file); + r->size.z = VFile_ReadS16(file); + r->size.x = VFile_ReadS16(file); - r->sector = game_malloc( - sizeof(SECTOR) * r->z_size * r->x_size, GBUF_ROOM_FLOOR); - for (int32_t i = 0; i < r->z_size * r->x_size; i++) { - SECTOR *const sector = &r->sector[i]; + r->sectors = game_malloc( + sizeof(SECTOR) * r->size.z * r->size.x, GBUF_ROOM_FLOOR); + for (int32_t i = 0; i < r->size.z * r->size.x; i++) { + SECTOR *const sector = &r->sectors[i]; sector->idx = VFile_ReadU16(file); sector->box = VFile_ReadS16(file); sector->pit_room = VFile_ReadU8(file); @@ -149,42 +149,42 @@ static void __cdecl M_LoadRooms(VFILE *const file) sector->ceiling = VFile_ReadS8(file); } - r->ambient1 = VFile_ReadS16(file); - r->ambient2 = VFile_ReadS16(file); + r->ambient_1 = VFile_ReadS16(file); + r->ambient_2 = VFile_ReadS16(file); r->light_mode = VFile_ReadS16(file); r->num_lights = VFile_ReadS16(file); if (!r->num_lights) { - r->light = NULL; + r->lights = NULL; } else { - r->light = + r->lights = game_malloc(sizeof(LIGHT) * r->num_lights, GBUF_ROOM_LIGHTS); for (int32_t i = 0; i < r->num_lights; i++) { - LIGHT *const light = &r->light[i]; - light->x = VFile_ReadS32(file); - light->y = VFile_ReadS32(file); - light->z = VFile_ReadS32(file); - light->intensity1 = VFile_ReadS16(file); - light->intensity2 = VFile_ReadS16(file); - light->falloff1 = VFile_ReadS32(file); - light->falloff2 = VFile_ReadS32(file); + LIGHT *const light = &r->lights[i]; + light->pos.x = VFile_ReadS32(file); + light->pos.y = VFile_ReadS32(file); + light->pos.z = VFile_ReadS32(file); + light->intensity_1 = VFile_ReadS16(file); + light->intensity_2 = VFile_ReadS16(file); + light->falloff_1 = VFile_ReadS32(file); + light->falloff_2 = VFile_ReadS32(file); } } r->num_meshes = VFile_ReadS16(file); if (!r->num_meshes) { - r->mesh = NULL; + r->meshes = NULL; } else { - r->mesh = game_malloc( + r->meshes = game_malloc( sizeof(MESH) * r->num_meshes, GBUF_ROOM_STATIC_MESHES); for (int32_t i = 0; i < r->num_meshes; i++) { - MESH *const mesh = &r->mesh[i]; - mesh->x = VFile_ReadS32(file); - mesh->y = VFile_ReadS32(file); - mesh->z = VFile_ReadS32(file); - mesh->y_rot = VFile_ReadS16(file); - mesh->shade1 = VFile_ReadS16(file); - mesh->shade2 = VFile_ReadS16(file); + MESH *const mesh = &r->meshes[i]; + mesh->pos.x = VFile_ReadS32(file); + mesh->pos.y = VFile_ReadS32(file); + mesh->pos.z = VFile_ReadS32(file); + mesh->rot.y = VFile_ReadS16(file); + mesh->shade_1 = VFile_ReadS16(file); + mesh->shade_2 = VFile_ReadS16(file); mesh->static_num = VFile_ReadS16(file); } } @@ -490,8 +490,8 @@ static void __cdecl M_LoadItems(VFILE *const file) item->pos.y = VFile_ReadS32(file); item->pos.z = VFile_ReadS32(file); item->rot.y = VFile_ReadS16(file); - item->shade1 = VFile_ReadS16(file); - item->shade2 = VFile_ReadS16(file); + item->shade_1 = VFile_ReadS16(file); + item->shade_2 = VFile_ReadS16(file); item->flags = VFile_ReadS16(file); if (item->object_id < 0 || item->object_id >= O_NUMBER_OF) { Shell_ExitSystemFmt( diff --git a/src/game/lot.c b/src/game/lot.c index 8ef81cca..40629b1f 100644 --- a/src/game/lot.c +++ b/src/game/lot.c @@ -189,7 +189,7 @@ void __cdecl LOT_CreateZone(ITEM *const item) const ROOM *const r = &g_Rooms[item->room_num]; const int32_t z_sector = (item->pos.z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (item->pos.x - r->pos.x) >> WALL_SHIFT; - item->box_num = r->sector[z_sector + x_sector * r->z_size].box; + item->box_num = r->sectors[z_sector + x_sector * r->size.z].box; int16_t zone_num = zone[item->box_num]; int16_t flip_num = flip[item->box_num]; diff --git a/src/game/room.c b/src/game/room.c index bcafe00c..33e3cbe7 100644 --- a/src/game/room.c +++ b/src/game/room.c @@ -32,11 +32,11 @@ int32_t __cdecl Room_FindByPos( for (int32_t i = 0; i < g_RoomCount; i++) { const ROOM *const room = &g_Rooms[i]; const int32_t x1 = room->pos.x + WALL_L; - const int32_t x2 = room->pos.x + (room->x_size - 1) * WALL_L; + const int32_t x2 = room->pos.x + (room->size.x - 1) * WALL_L; const int32_t y1 = room->max_ceiling; const int32_t y2 = room->min_floor; const int32_t z1 = room->pos.z + WALL_L; - const int32_t z2 = room->pos.z + (room->z_size - 1) * WALL_L; + const int32_t z2 = room->pos.z + (room->size.z - 1) * WALL_L; if (x >= x1 && x < x2 && y >= y1 && y <= y2 && z >= z1 && z < z2) { return i; } @@ -100,7 +100,7 @@ int16_t __cdecl Room_GetTiltType( const ROOM *const room = &g_Rooms[sector->pit_room]; const int32_t z_sector = (z - room->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - room->pos.x) >> WALL_SHIFT; - sector = &room->sector[z_sector + x_sector * room->z_size]; + sector = &room->sectors[z_sector + x_sector * room->size.z]; } if ((y + 512 >= (sector->floor << 8)) && sector->idx != 0) { @@ -127,23 +127,23 @@ SECTOR *__cdecl Room_GetSector( z_sector = 0; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } - } else if (z_sector >= r->z_size - 1) { - z_sector = r->z_size - 1; + } else if (z_sector >= r->size.z - 1) { + z_sector = r->size.z - 1; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } } else if (x_sector < 0) { x_sector = 0; - } else if (x_sector >= r->x_size) { - x_sector = r->x_size - 1; + } else if (x_sector >= r->size.x) { + x_sector = r->size.x - 1; } - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; const int16_t door = Room_GetDoor(sector); if (door == NO_ROOM) { break; @@ -159,7 +159,7 @@ SECTOR *__cdecl Room_GetSector( const ROOM *const r = &g_Rooms[*room_num]; const int32_t z_sector = ((z - r->pos.z) >> WALL_SHIFT); const int32_t x_sector = ((x - r->pos.x) >> WALL_SHIFT); - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; if (y < (sector->floor << 8)) { break; } @@ -170,7 +170,7 @@ SECTOR *__cdecl Room_GetSector( const ROOM *const r = &g_Rooms[sector->sky_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; if (y >= (sector->ceiling << 8)) { break; } @@ -195,23 +195,23 @@ int32_t __cdecl Room_GetWaterHeight( z_sector = 0; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } - } else if (z_sector >= r->z_size - 1) { - z_sector = r->z_size - 1; + } else if (z_sector >= r->size.z - 1) { + z_sector = r->size.z - 1; if (x_sector < 1) { x_sector = 1; - } else if (x_sector > r->x_size - 2) { - x_sector = r->x_size - 2; + } else if (x_sector > r->size.x - 2) { + x_sector = r->size.x - 2; } } else if (x_sector < 0) { x_sector = 0; - } else if (x_sector >= r->x_size) { - x_sector = r->x_size - 1; + } else if (x_sector >= r->size.x) { + x_sector = r->size.x - 1; } - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; room_num = Room_GetDoor(sector); } while (room_num != NO_ROOM); @@ -223,7 +223,7 @@ int32_t __cdecl Room_GetWaterHeight( } const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; } return sector->ceiling << 8; } else { @@ -234,7 +234,7 @@ int32_t __cdecl Room_GetWaterHeight( } const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; } return NO_HEIGHT; } @@ -250,7 +250,7 @@ int32_t __cdecl Room_GetHeight( const ROOM *const r = &g_Rooms[sector->pit_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - sector = &r->sector[z_sector + x_sector * r->z_size]; + sector = &r->sectors[z_sector + x_sector * r->size.z]; } int32_t height = sector->floor << 8; @@ -651,7 +651,7 @@ int32_t __cdecl Room_GetCeiling( const ROOM *const r = &g_Rooms[f->sky_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - f = &r->sector[z_sector + x_sector * r->z_size]; + f = &r->sectors[z_sector + x_sector * r->size.z]; } int32_t height = f->ceiling << 8; @@ -690,7 +690,7 @@ int32_t __cdecl Room_GetCeiling( const ROOM *const r = &g_Rooms[f->pit_room]; const int32_t z_sector = (z - r->pos.z) >> WALL_SHIFT; const int32_t x_sector = (x - r->pos.x) >> WALL_SHIFT; - f = &r->sector[z_sector + x_sector * r->z_size]; + f = &r->sectors[z_sector + x_sector * r->size.z]; } if (!f->idx) { diff --git a/src/game/room_draw.c b/src/game/room_draw.c index c7f04be2..179a0863 100644 --- a/src/game/room_draw.c +++ b/src/game/room_draw.c @@ -65,9 +65,9 @@ void __cdecl Room_GetBounds(void) // clang-format off const XYZ_32 offset = { - .x = portal->x * (r->pos.x + portal->vertex[0].x - g_W2VMatrix._03), - .y = portal->y * (r->pos.y + portal->vertex[0].y - g_W2VMatrix._13), - .z = portal->z * (r->pos.z + portal->vertex[0].z - g_W2VMatrix._23), + .x = portal->normal.x * (r->pos.x + portal->vertex[0].x - g_W2VMatrix._03), + .y = portal->normal.y * (r->pos.y + portal->vertex[0].y - g_W2VMatrix._13), + .z = portal->normal.z * (r->pos.z + portal->vertex[0].z - g_W2VMatrix._23), }; // clang-format on @@ -75,7 +75,7 @@ void __cdecl Room_GetBounds(void) continue; } - Room_SetBounds(&portal->x, portal->room, r); + Room_SetBounds(&portal->normal.x, portal->room_num, r); } Matrix_Pop(); } @@ -238,33 +238,33 @@ void __cdecl Room_Clip(const ROOM *const r) yv[0] = r->max_ceiling - r->pos.y; zv[0] = WALL_L; - xv[1] = (r->x_size - 1) * WALL_L; + xv[1] = (r->size.x - 1) * WALL_L; yv[1] = r->max_ceiling - r->pos.y; zv[1] = WALL_L; - xv[2] = (r->x_size - 1) * WALL_L; + xv[2] = (r->size.x - 1) * WALL_L; yv[2] = r->max_ceiling - r->pos.y; - zv[2] = (r->z_size - 1) * WALL_L; + zv[2] = (r->size.z - 1) * WALL_L; xv[3] = WALL_L; yv[3] = r->max_ceiling - r->pos.y; - zv[3] = (r->z_size - 1) * WALL_L; + zv[3] = (r->size.z - 1) * WALL_L; xv[4] = WALL_L; yv[4] = r->min_floor - r->pos.y; zv[4] = WALL_L; - xv[5] = (r->x_size - 1) * WALL_L; + xv[5] = (r->size.x - 1) * WALL_L; yv[5] = r->min_floor - r->pos.y; zv[5] = WALL_L; - xv[6] = (r->x_size - 1) * WALL_L; + xv[6] = (r->size.x - 1) * WALL_L; yv[6] = r->min_floor - r->pos.y; - zv[6] = (r->z_size - 1) * WALL_L; + zv[6] = (r->size.z - 1) * WALL_L; xv[7] = WALL_L; yv[7] = r->min_floor - r->pos.y; - zv[7] = (r->z_size - 1) * WALL_L; + zv[7] = (r->size.z - 1) * WALL_L; bool clip_room = false; bool clip[8]; @@ -398,17 +398,18 @@ void __cdecl Room_DrawSingleRoomObjects(const int16_t room_num) g_PhdWinBottom = r->bound_bottom; for (int32_t i = 0; i < r->num_meshes; i++) { - const MESH *const mesh = &r->mesh[i]; + const MESH *const mesh = &r->meshes[i]; const STATIC_INFO *const static_obj = &g_StaticObjects[mesh->static_num]; if (static_obj->flags & 2) { Matrix_Push(); - Matrix_TranslateAbs(mesh->x, mesh->y, mesh->z); - Matrix_RotY(mesh->y_rot); + Matrix_TranslateAbs(mesh->pos.x, mesh->pos.y, mesh->pos.z); + Matrix_RotY(mesh->rot.y); const int16_t bounds = S_GetObjectBounds(&static_obj->draw_bounds); if (bounds) { S_CalculateStaticMeshLight( - mesh->x, mesh->y, mesh->z, mesh->shade1, mesh->shade2, r); + mesh->pos.x, mesh->pos.y, mesh->pos.z, mesh->shade_1, + mesh->shade_2, r); Output_InsertPolygons(g_Meshes[static_obj->mesh_idx], bounds); } Matrix_Pop(); diff --git a/src/global/funcs.h b/src/global/funcs.h index 9bebff30..11a0cd15 100644 --- a/src/global/funcs.h +++ b/src/global/funcs.h @@ -324,7 +324,7 @@ #define S_PrintShadow ((void __cdecl (*)(int16_t radius, const BOUNDS_16 *bounds, const ITEM *item))0x00450F80) #define S_CalculateLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t room_num))0x00451180) #define S_CalculateStaticLight ((void __cdecl (*)(int16_t adder))0x00451480) -#define S_CalculateStaticMeshLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM *room))0x004514C0) +#define S_CalculateStaticMeshLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t shade_1, int32_t shade_2, ROOM *room))0x004514C0) #define S_LightRoom ((void __cdecl (*)(ROOM *room))0x004515F0) #define S_DrawHealthBar ((void __cdecl (*)(int32_t percent))0x00451800) #define S_DrawAirBar ((void __cdecl (*)(int32_t percent))0x004519D0) diff --git a/subprojects/libtrx b/subprojects/libtrx index 198f1036..0776388f 160000 --- a/subprojects/libtrx +++ b/subprojects/libtrx @@ -1 +1 @@ -Subproject commit 198f10361bc0994678deccbd281393750f39ab69 +Subproject commit 0776388ff52e6dade3ffc8d469806ec43a0dce18