aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/scripts.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/scripts.h')
-rw-r--r--engines/xeen/scripts.h143
1 files changed, 88 insertions, 55 deletions
diff --git a/engines/xeen/scripts.h b/engines/xeen/scripts.h
index f2ffc90b5f..cd548f8516 100644
--- a/engines/xeen/scripts.h
+++ b/engines/xeen/scripts.h
@@ -158,149 +158,182 @@ private:
/**
* Handles executing a given script command
*/
- void doOpcode(MazeEvent &event);
+ bool doOpcode(MazeEvent &event);
+
+ /**
+ * Do nothing
+ */
+ bool cmdDoNothing(Common::Array<byte> &params);
/**
* Display a msesage on-screen
*/
- void cmdDisplay1(Common::Array<byte> &params);
+ bool cmdDisplay1(Common::Array<byte> &params);
/**
* Displays a door text message using the small font
*/
- void cmdDoorTextSml(Common::Array<byte> &params);
+ bool cmdDoorTextSml(Common::Array<byte> &params);
/**
* Displays a door text message using the large font
*/
- void cmdDoorTextLrg(Common::Array<byte> &params);
+ bool cmdDoorTextLrg(Common::Array<byte> &params);
/**
* Show a sign text on-screen
*/
- void cmdSignText(Common::Array<byte> &params);
- void cmdNPC(Common::Array<byte> &params);
+ bool cmdSignText(Common::Array<byte> &params);
+
+ /**
+ * Show an NPC interaction message
+ */
+ bool cmdNPC(Common::Array<byte> &params);
/**
* Play a sound FX
*/
- void cmdPlayFX(Common::Array<byte> &params);
- void cmdTeleport(Common::Array<byte> &params);
+ bool cmdPlayFX(Common::Array<byte> &params);
+
+ /**
+ * Handles teleportation
+ */
+ bool cmdTeleport(Common::Array<byte> &params);
/**
* Do a conditional check
*/
- void cmdIf(Common::Array<byte> &params);
+ bool cmdIf(Common::Array<byte> &params);
/**
* Moves the position of an object
*/
- void cmdMoveObj(Common::Array<byte> &params);
- void cmdTakeOrGive(Common::Array<byte> &params);
+ bool cmdMoveObj(Common::Array<byte> &params);
+
+ /**
+ * Take or give amounts from various character or party figures
+ */
+ bool cmdTakeOrGive(Common::Array<byte> &params);
/**
- * Move to the next line of the script
+ * Removes an object from the playfield
*/
- void cmdNoAction(Common::Array<byte> &params);
- void cmdRemove(Common::Array<byte> &params);
+ bool cmdRemove(Common::Array<byte> &params);
/**
* Set the currently active character for other script operations
*/
- void cmdSetChar(Common::Array<byte> &params);
+ bool cmdSetChar(Common::Array<byte> &params);
/**
* Spawn a monster
*/
- void cmdSpawn(Common::Array<byte> &params);
- void cmdDoTownEvent(Common::Array<byte> &params);
+ bool cmdSpawn(Common::Array<byte> &params);
+
+ /**
+ * Does various things that can be done within towns, like visiting
+ * banks, guilds, etc.
+ */
+ bool cmdDoTownEvent(Common::Array<byte> &params);
/**
* Stop executing the script
*/
- void cmdExit(Common::Array<byte> &params);
+ bool cmdExit(Common::Array<byte> &params);
/**
* Changes the value for the wall on a given cell
*/
- void cmdAlterMap(Common::Array<byte> &params);
- void cmdGiveExtended(Common::Array<byte> &params);
- void cmdConfirmWord(Common::Array<byte> &params);
- void cmdDamage(Common::Array<byte> &params);
+ bool cmdAlterMap(Common::Array<byte> &params);
+
+ /**
+ *
+ */
+ bool cmdGiveExtended(Common::Array<byte> &params);
+
+ /**
+ * Confirms with the player for initiating the endgame
+ */
+ bool cmdConfirmEnding(Common::Array<byte> &params);
+
+ /**
+ * Deals damage to a character
+ */
+ bool cmdDamage(Common::Array<byte> &params);
/**
* Jump if a random number matches a given value
*/
- void cmdJumpRnd(Common::Array<byte> &params);
+ bool cmdJumpRnd(Common::Array<byte> &params);
/**
* Alter an existing event
*/
- void cmdAlterEvent(Common::Array<byte> &params);
+ bool cmdAlterEvent(Common::Array<byte> &params);
/**
* Stores the current location and line for later resuming, and set up to execute
* a script at a given location
*/
- void cmdCallEvent(Common::Array<byte> &params);
+ bool cmdCallEvent(Common::Array<byte> &params);
/**
* Return from executing a script to the script location that previously
* called the script
*/
- void cmdReturn(Common::Array<byte> &params);
- void cmdSetVar(Common::Array<byte> &params);
- void cmdCutsceneEndClouds(Common::Array<byte> &params);
- void cmdWhoWill(Common::Array<byte> &params);
- void cmdRndDamage(Common::Array<byte> &params);
- void cmdMoveWallObj(Common::Array<byte> &params);
- void cmdAlterCellFlag(Common::Array<byte> &params);
- void cmdAlterHed(Common::Array<byte> &params);
- void cmdDisplayStat(Common::Array<byte> &params);
- void cmdSeatTextSml(Common::Array<byte> &params);
- void cmdPlayEventVoc(Common::Array<byte> &params);
- void cmdDisplayBottom(Common::Array<byte> &params);
- void cmdIfMapFlag(Common::Array<byte> &params);
- void cmdSelRndChar(Common::Array<byte> &params);
- void cmdGiveEnchanted(Common::Array<byte> &params);
- void cmdItemType(Common::Array<byte> &params);
+ bool cmdReturn(Common::Array<byte> &params);
+ bool cmdSetVar(Common::Array<byte> &params);
+ bool cmdCutsceneEndClouds(Common::Array<byte> &params);
+ bool cmdWhoWill(Common::Array<byte> &params);
+ bool cmdRndDamage(Common::Array<byte> &params);
+ bool cmdMoveWallObj(Common::Array<byte> &params);
+ bool cmdAlterCellFlag(Common::Array<byte> &params);
+ bool cmdAlterHed(Common::Array<byte> &params);
+ bool cmdDisplayStat(Common::Array<byte> &params);
+ bool cmdSeatTextSml(Common::Array<byte> &params);
+ bool cmdPlayEventVoc(Common::Array<byte> &params);
+ bool cmdDisplayBottom(Common::Array<byte> &params);
+ bool cmdIfMapFlag(Common::Array<byte> &params);
+ bool cmdSelRndChar(Common::Array<byte> &params);
+ bool cmdGiveEnchanted(Common::Array<byte> &params);
+ bool cmdItemType(Common::Array<byte> &params);
/**
* Disable all the scripts at the party's current position
*/
- void cmdMakeNothingHere(Common::Array<byte> &params);
- void cmdCheckProtection(Common::Array<byte> &params);
+ bool cmdMakeNothingHere(Common::Array<byte> &params);
+ bool cmdCheckProtection(Common::Array<byte> &params);
/**
* Given a number of options, and a list of line numbers associated with
* those options, jumps to whichever line for the option the user selects
*/
- void cmdChooseNumeric(Common::Array<byte> &params);
- void cmdDisplayBottomTwoLines(Common::Array<byte> &params);
- void cmdDisplayLarge(Common::Array<byte> &params);
+ bool cmdChooseNumeric(Common::Array<byte> &params);
+ bool cmdDisplayBottomTwoLines(Common::Array<byte> &params);
+ bool cmdDisplayLarge(Common::Array<byte> &params);
/**
* Exchange the positions of two objects in the maze
*/
- void cmdExchObj(Common::Array<byte> &params);
- void cmdFallToMap(Common::Array<byte> &params);
- void cmdDisplayMain(Common::Array<byte> &params);
+ bool cmdExchObj(Common::Array<byte> &params);
+ bool cmdFallToMap(Common::Array<byte> &params);
+ bool cmdDisplayMain(Common::Array<byte> &params);
/**
* Jumps to a given line number if the surface at relative cell position 1 matches
* a specified surface.
* @remarks This opcode is apparently never actually used
*/
- void cmdGoto(Common::Array<byte> &params);
+ bool cmdGoto(Common::Array<byte> &params);
/**
* Pick a random value from the parameter list and jump to that line number
*/
- void cmdGotoRandom(Common::Array<byte> &params);
- void cmdCutsceneEndDarkside(Common::Array<byte> &params);
- void cmdCutsceneEdWorld(Common::Array<byte> &params);
- void cmdFlipWorld(Common::Array<byte> &params);
- void cmdPlayCD(Common::Array<byte> &params);
+ bool cmdGotoRandom(Common::Array<byte> &params);
+ bool cmdCutsceneEndDarkside(Common::Array<byte> &params);
+ bool cmdCutsceneEdWorld(Common::Array<byte> &params);
+ bool cmdFlipWorld(Common::Array<byte> &params);
+ bool cmdPlayCD(Common::Array<byte> &params);
int whoWill(int v1, int v2, int v3);