aboutsummaryrefslogtreecommitdiff
path: root/engines/hdb/ai.h
diff options
context:
space:
mode:
authorNipun Garg2019-06-25 09:25:10 +0530
committerEugene Sandulenko2019-09-03 17:17:00 +0200
commitdc0ad525cdad76368689282aab3772e5a5e464b5 (patch)
treeffac3b78363c767dd0c0419b58133d3e7509c1ff /engines/hdb/ai.h
parent69235618f248167f81054eaa599d53b1062f13fc (diff)
downloadscummvm-rg350-dc0ad525cdad76368689282aab3772e5a5e464b5.tar.gz
scummvm-rg350-dc0ad525cdad76368689282aab3772e5a5e464b5.tar.bz2
scummvm-rg350-dc0ad525cdad76368689282aab3772e5a5e464b5.zip
HDB: Add _teleporters related functions
Diffstat (limited to 'engines/hdb/ai.h')
-rw-r--r--engines/hdb/ai.h135
1 files changed, 69 insertions, 66 deletions
diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h
index 5761fe4506..a099deeca2 100644
--- a/engines/hdb/ai.h
+++ b/engines/hdb/ai.h
@@ -386,7 +386,7 @@ struct AIEntity {
uint16 goalX, goalY; // where we're trying to go - TILE COORDS
uint16 touchpX, touchpY, touchpTile, touchpWait; // ACTION index a touchplate is using, which you're on
uint32 stunnedWait; // if we're stunned, this is the delay before being normal again
- uint16 sequence; // to use for specially-coded sequences
+ int16 sequence; // to use for specially-coded sequences
char entityName[32]; // the name of the entity, as registered by the Lua init function for the entity
char printedName[32]; // the name of the entity/item, the way it should be printed
@@ -702,6 +702,9 @@ public:
bool activateAction(AIEntity *e, int x, int y, int targetX, int targetY);
bool checkAutoList(AIEntity *e, int x, int y);
bool autoActive(int x, int y);
+ void addToTeleportList(int teleIndex, int x, int y, int dir, int level, int anim, int usable, const char *luaFuncUse);
+ bool checkTeleportList(AIEntity *e, int x, int y);
+ bool findTeleporterDest(int tileX, int tileY, SingleTele *info);
void addToPathList(int x, int y, int type, AIDir dir);
ArrowPath *findArrowPath(int x, int y);
@@ -896,71 +899,71 @@ public:
// These variables hold the tile-indices set
// in ai-init.cpp
- int _useSwitchOff; // the door opening switch
- int _useSwitchOn; // state, when opened
- int _useHolderEmpty; // cell holding switch
- int _useHolderFull; // state, when full
- int _useSwitch2Off; // another switch
- int _useSwitch2On; // state, when opened
- int _useMailsorter; // mailsorter entity
- int _useAskcomp; // askcomp entitiy
- int _useTeleporter; // teleporter entity
- int _useHandswitchOn; // 2-sided handswitch
- int _useHandswitchOff; // 2-sided handswitch
-
- int _targetDoorN; // horz SILVER door
- int _targetDoorP; // horz BLUE door
- int _targetDoorS; // horz RED door
- int _targetDoorNv; // vert SILVER door
- int _targetDoorPv; // vert BLUE door
- int _targetDoorSv; // vert RED door
-
- int _targetDoor2N; // horz SILVER door
- int _targetDoor2P; // horz BLUE door
- int _targetDoor2S; // horz RED door
- int _targetDoor2Nv; // vert SILVER door
- int _targetDoor2Pv; // vert BLUE door
- int _targetDoor2Sv; // vert RED door
-
- int _target2DoorN; // horz SILVER door
- int _target2DoorP; // horz BLUE door
- int _target2DoorS; // horz RED door
- int _target2DoorNv; // vert SILVER door
- int _target2DoorPv; // vert BLUE door
- int _target2DoorSv; // vert RED door
-
- int _target3DoorN; // horz SILVER door
- int _target3DoorP; // horz BLUE door
- int _target3DoorS; // horz RED door
- int _target3DoorNv; // vert SILVER door
- int _target3DoorPv; // vert BLUE door
- int _target3DoorSv; // vert RED door
-
- int _targetBridgeU; // bridge extending UP
- int _targetBridgeD; // bridge extending DOWN
- int _targetBridgeL; // bridge extending LEFT
- int _targetBridgeR; // bridge extending RIGHT
-
- int _targetBridgeMidLR; // bridge grating plank LEFT/RIGHT
- int _targetBridgeMidUD; // bridge grating plank UP/DOWN
- int _touchplateOn; // touchplate ON
- int _touchplateOff;
- int _templeTouchpOn; // touchplate ON
- int _templeTouchpOff;
- int _blockpole; // blockpole
-
- int _kcHolderWhiteOff; // keycard holders
- int _kcHolderWhiteOn;
- int _kcHolderBlueOff;
- int _kcHolderBlueOn;
- int _kcHolderRedOff;
- int _kcHolderRedOn;
- int _kcHolderGreenOff;
- int _kcHolderGreenOn;
- int _kcHolderPurpleOff;
- int _kcHolderPurpleOn;
- int _kcHolderBlackOff;
- int _kcHolderBlackOn;
+ int _useSwitchOff; // the door opening switch
+ int _useSwitchOn; // state, when opened
+ int _useHolderEmpty; // cell holding switch
+ int _useHolderFull; // state, when full
+ int _useSwitch2Off; // another switch
+ int _useSwitch2On; // state, when opened
+ int _useMailsorter; // mailsorter entity
+ int _useAskcomp; // askcomp entitiy
+ int _useTeleporter; // teleporter entity
+ int _useHandswitchOn; // 2-sided handswitch
+ int _useHandswitchOff; // 2-sided handswitch
+
+ int _targetDoorN; // horz SILVER door
+ int _targetDoorP; // horz BLUE door
+ int _targetDoorS; // horz RED door
+ int _targetDoorNv; // vert SILVER door
+ int _targetDoorPv; // vert BLUE door
+ int _targetDoorSv; // vert RED door
+
+ int _targetDoor2N; // horz SILVER door
+ int _targetDoor2P; // horz BLUE door
+ int _targetDoor2S; // horz RED door
+ int _targetDoor2Nv; // vert SILVER door
+ int _targetDoor2Pv; // vert BLUE door
+ int _targetDoor2Sv; // vert RED door
+
+ int _target2DoorN; // horz SILVER door
+ int _target2DoorP; // horz BLUE door
+ int _target2DoorS; // horz RED door
+ int _target2DoorNv; // vert SILVER door
+ int _target2DoorPv; // vert BLUE door
+ int _target2DoorSv; // vert RED door
+
+ int _target3DoorN; // horz SILVER door
+ int _target3DoorP; // horz BLUE door
+ int _target3DoorS; // horz RED door
+ int _target3DoorNv; // vert SILVER door
+ int _target3DoorPv; // vert BLUE door
+ int _target3DoorSv; // vert RED door
+
+ int _targetBridgeU; // bridge extending UP
+ int _targetBridgeD; // bridge extending DOWN
+ int _targetBridgeL; // bridge extending LEFT
+ int _targetBridgeR; // bridge extending RIGHT
+
+ int _targetBridgeMidLR; // bridge grating plank LEFT/RIGHT
+ int _targetBridgeMidUD; // bridge grating plank UP/DOWN
+ int _touchplateOn; // touchplate ON
+ int _touchplateOff;
+ int _templeTouchpOn; // touchplate ON
+ int _templeTouchpOff;
+ int _blockpole; // blockpole
+
+ int _kcHolderWhiteOff; // keycard holders
+ int _kcHolderWhiteOn;
+ int _kcHolderBlueOff;
+ int _kcHolderBlueOn;
+ int _kcHolderRedOff;
+ int _kcHolderRedOn;
+ int _kcHolderGreenOff;
+ int _kcHolderGreenOn;
+ int _kcHolderPurpleOff;
+ int _kcHolderPurpleOn;
+ int _kcHolderBlackOff;
+ int _kcHolderBlackOn;
AIEntLevel2 _entsLevel2[kMaxLevel2Ents];
int _numLevel2Ents;