/** * @file trigs.h * * Interface of functionality for triggering events when the player enters an area. */ #pragma once #include "engine/point.hpp" #include "interfac.h" #include "levels/gendung.h" namespace devilution { #define MAXTRIGGERS 7 struct TriggerStruct { Point position; interface_mode _tmsg; int _tlvl; }; extern bool trigflag; extern int numtrigs; extern TriggerStruct trigs[MAXTRIGGERS]; extern int TWarpFrom; void InitNoTriggers(); bool IsWarpOpen(dungeon_type type); void InitTownTriggers(); void InitL1Triggers(); void InitL2Triggers(); void InitL3Triggers(); void InitL4Triggers(); void InitHiveTriggers(); void InitCryptTriggers(); void InitSKingTriggers(); void InitSChambTriggers(); void InitPWaterTriggers(); void InitVPTriggers(); void Freeupstairs(); void CheckTrigForce(); void CheckTriggers(); /** * @brief Check if the provided position is in the entrance boundary of the entrance. * @param position The position to check against the entrance boundary. */ bool EntranceBoundaryContains(Point entrance, Point position); } // namespace devilution