2021-08-30 17:50:32 +03:00
|
|
|
#pragma once
|
|
|
|
|
2021-08-31 17:37:15 +02:00
|
|
|
struct ITEM_INFO;
|
|
|
|
struct FLOOR_INFO;
|
2021-08-30 17:50:32 +03:00
|
|
|
|
2021-09-11 22:41:25 +03:00
|
|
|
enum TRIGGER_TYPES
|
|
|
|
{
|
|
|
|
TRIGGER,
|
|
|
|
PAD,
|
|
|
|
SWITCH,
|
|
|
|
KEY,
|
|
|
|
PICKUP,
|
|
|
|
HEAVY,
|
|
|
|
ANTIPAD,
|
|
|
|
COMBAT,
|
|
|
|
DUMMY,
|
|
|
|
ANTITRIGGER,
|
|
|
|
HEAVYSWITCH,
|
|
|
|
HEAVYANTITRIGGER,
|
|
|
|
MONKEY,
|
|
|
|
SKELETON_T,
|
|
|
|
TIGHTROPE_T,
|
|
|
|
CRAWLDUCK_T,
|
|
|
|
CLIMB_T,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum TRIGOBJECTS_TYPES
|
|
|
|
{
|
|
|
|
TO_OBJECT,
|
|
|
|
TO_CAMERA,
|
|
|
|
TO_SINK,
|
|
|
|
TO_FLIPMAP,
|
|
|
|
TO_FLIPON,
|
|
|
|
TO_FLIPOFF,
|
|
|
|
TO_TARGET,
|
|
|
|
TO_FINISH,
|
|
|
|
TO_CD,
|
|
|
|
TO_FLIPEFFECT,
|
|
|
|
TO_SECRET,
|
|
|
|
TO_BODYBAG,
|
|
|
|
TO_FLYBY,
|
|
|
|
TO_CUTSCENE
|
|
|
|
};
|
|
|
|
|
|
|
|
enum FLOORDATA_MASKS
|
|
|
|
{
|
|
|
|
FD_MASK_FUNCTION = 0x1F,
|
|
|
|
FD_MASK_SUBFUNCTION = 0x7F00,
|
|
|
|
FD_MASK_END_DATA = 0x8000
|
|
|
|
};
|
|
|
|
|
2021-08-30 17:50:32 +03:00
|
|
|
int GetKeyTrigger(ITEM_INFO* item);
|
|
|
|
int GetSwitchTrigger(ITEM_INFO* item, short* itemNos, int AttatchedToSwitch);
|
|
|
|
int SwitchTrigger(short itemNum, short timer);
|
2021-08-30 17:52:38 +03:00
|
|
|
int TriggerActive(ITEM_INFO* item);
|
2021-08-30 17:50:32 +03:00
|
|
|
short* GetTriggerIndex(FLOOR_INFO* floor, int x, int y, int z);
|
|
|
|
short* GetTriggerIndex(ITEM_INFO* item);
|
|
|
|
void TestTriggers(short* data, bool heavy, int heavyFlags);
|
|
|
|
void TestTriggers(int x, int y, int z, short roomNumber, bool heavy, int heavyFlags);
|
|
|
|
void TestTriggers(ITEM_INFO* item, bool heavy, int heavyFlags);
|
|
|
|
void ProcessSectorFlags(FLOOR_INFO* floor);
|
|
|
|
void ProcessSectorFlags(int x, int y, int z, short roomNumber);
|
|
|
|
void ProcessSectorFlags(ITEM_INFO* item);
|