port TrapCollision

This commit is contained in:
rr- 2021-02-24 20:48:14 +01:00
parent 23d72c6098
commit 12e1492346
4 changed files with 22 additions and 11 deletions

View file

@ -663,6 +663,19 @@ void DoorCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll)
}
}
void TrapCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll)
{
ITEM_INFO* item = &Items[item_num];
if (item->status == IS_ACTIVE) {
if (TestBoundsCollide(item, lara_item, coll->radius)) {
TestCollision(item, lara_item);
}
} else if (item->status != IS_INVISIBLE) {
ObjectCollision(item_num, lara_item, coll);
}
}
void ItemPushLara(
ITEM_INFO* item, ITEM_INFO* lara_item, COLL_INFO* coll, int32_t spazon,
int32_t bigpush)
@ -791,6 +804,7 @@ void T1MInjectGameCollide()
INJECT(0x00412910, CreatureCollision);
INJECT(0x00412990, ObjectCollision);
INJECT(0x004129F0, DoorCollision);
INJECT(0x00412A70, TrapCollision);
INJECT(0x00412B10, ItemPushLara);
INJECT(0x00412E50, TestBoundsCollide);
}

View file

@ -4,10 +4,6 @@
#include "types.h"
#include <stdint.h>
// clang-format off
#define TrapCollision ((void (*)(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll))0x00412A70)
// clang-format on
void GetCollisionInfo(
COLL_INFO* coll, int32_t xpos, int32_t ypos, int32_t zpos, int16_t room_num,
int32_t objheight);
@ -26,6 +22,7 @@ void EffectSpaz(ITEM_INFO* lara_item, COLL_INFO* coll);
void CreatureCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll);
void ObjectCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll);
void DoorCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll);
void TrapCollision(int16_t item_num, ITEM_INFO* lara_item, COLL_INFO* coll);
void ItemPushLara(
ITEM_INFO* item, ITEM_INFO* lara_item, COLL_INFO* coll, int32_t spazon,
int32_t bigpush);