aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/advsys
diff options
context:
space:
mode:
Diffstat (limited to 'engines/glk/advsys')
-rw-r--r--engines/glk/advsys/advsys.cpp2
-rw-r--r--engines/glk/advsys/advsys.h4
-rw-r--r--engines/glk/advsys/game.cpp26
-rw-r--r--engines/glk/advsys/game.h94
-rw-r--r--engines/glk/advsys/vm.cpp4
-rw-r--r--engines/glk/advsys/vm.h130
6 files changed, 133 insertions, 127 deletions
diff --git a/engines/glk/advsys/advsys.cpp b/engines/glk/advsys/advsys.cpp
index c1d1f9e38e..b745222ea1 100644
--- a/engines/glk/advsys/advsys.cpp
+++ b/engines/glk/advsys/advsys.cpp
@@ -97,7 +97,7 @@ Common::Error AdvSys::loadGameData(strid_t save) {
return Common::kNoError;
}
-Common::Error AdvSys::saveGameData(strid_t save, const Common::String& desc) {
+Common::Error AdvSys::saveGameData(strid_t save, const Common::String &desc) {
return Common::kNoError;
}
diff --git a/engines/glk/advsys/advsys.h b/engines/glk/advsys/advsys.h
index 9aa1305415..a6e9a5b075 100644
--- a/engines/glk/advsys/advsys.h
+++ b/engines/glk/advsys/advsys.h
@@ -64,7 +64,9 @@ public:
/**
* Returns the running interpreter type
*/
- virtual InterpreterType getInterpreterType() const override { return INTERPRETER_ADVSYS; }
+ virtual InterpreterType getInterpreterType() const override {
+ return INTERPRETER_ADVSYS;
+ }
/**
* Load a savegame from the passed stream
diff --git a/engines/glk/advsys/game.cpp b/engines/glk/advsys/game.cpp
index 22b1d11476..17a4104404 100644
--- a/engines/glk/advsys/game.cpp
+++ b/engines/glk/advsys/game.cpp
@@ -47,10 +47,10 @@ bool Header::init(Common::ReadStream &s) {
Common::MemoryReadStream ms(data, HEADER_SIZE, DisposeAfterUse::NO);
// Validate the header
- _valid = !strncmp((const char*)data + 2, "ADVSYS", 6);
+ _valid = !strncmp((const char *)data + 2, "ADVSYS", 6);
if (!_valid)
return false;
-
+
_size = ms.readUint16LE();
ms.skip(6);
_headerVersion = ms.readUint16LE();
@@ -103,7 +103,7 @@ bool Game::init(Common::SeekableReadStream &s) {
s.seek(0);
if (!Header::init(s))
return false;
-
+
if (_headerVersion < 101 || _headerVersion > MAX_VERSION)
error("Wrong version number");
@@ -136,7 +136,7 @@ bool Game::init(Common::SeekableReadStream &s) {
return true;
}
-void Game::restart(Common::SeekableReadStream& s) {
+void Game::restart(Common::SeekableReadStream &s) {
s.seek(_residentOffset + _saveAreaOffset);
s.read(_saveArea, _saveSize);
decrypt(_saveArea, _saveSize);
@@ -151,11 +151,11 @@ bool Game::shouldRestart() {
return result;
}
-void Game::saveGameData(Common::WriteStream& ws) {
+void Game::saveGameData(Common::WriteStream &ws) {
ws.write(_saveArea, _saveSize);
}
-void Game::loadGameData(Common::ReadStream& rs) {
+void Game::loadGameData(Common::ReadStream &rs) {
rs.read(_saveArea, _saveSize);
}
@@ -166,18 +166,18 @@ int Game::findWord(const Common::String &word) const {
// Iterate over the dictionary for the word
for (int idx = 1; idx <= _wordCount; ++idx) {
int wordOffset = READ_LE_UINT16(_wordTable + idx * 2);
- if (w == (const char*)_residentBase + wordOffset + 2)
+ if (w == (const char *)_residentBase + wordOffset + 2)
return READ_LE_UINT16(_residentBase + wordOffset);
}
return NIL;
}
-bool Game::match(int obj, int noun, int* adjectives) {
+bool Game::match(int obj, int noun, int *adjectives) {
if (!hasNoun(obj, noun))
return false;
- for (int* adjPtr = adjectives; *adjPtr; ++adjPtr) {
+ for (int *adjPtr = adjectives; *adjPtr; ++adjPtr) {
if (!hasAdjective(obj, *adjPtr))
return false;
}
@@ -185,7 +185,7 @@ bool Game::match(int obj, int noun, int* adjectives) {
return true;
}
-int Game::checkVerb(int* verbs) {
+int Game::checkVerb(int *verbs) {
// Iterate through the actions
for (int idx = 1; idx <= _actionCount; ++idx) {
if (hasVerb(idx, verbs))
@@ -195,7 +195,7 @@ int Game::checkVerb(int* verbs) {
return NIL;
}
-int Game::findAction(int* verbs, int preposition, int flag) {
+int Game::findAction(int *verbs, int preposition, int flag) {
// Iterate through the actions
for (int idx = 1; idx <= _actionCount; ++idx) {
if ((preposition && !hasPreposition(idx, preposition)) || !hasVerb(idx, verbs))
@@ -284,13 +284,13 @@ bool Game::hasAdjective(int obj, int adjective) const {
return false;
}
-bool Game::hasVerb(int act, int* verbs) const {
+bool Game::hasVerb(int act, int *verbs) const {
// Get the list of verbs
int link = getActionField(act, A_VERBS);
// Look for the verb
for (; link; link = readWord(link + L_NEXT)) {
- int* verb = verbs;
+ int *verb = verbs;
int word = readWord(link + L_DATA);
for (; *verb && word; link = readWord(link + L_NEXT)) {
diff --git a/engines/glk/advsys/game.h b/engines/glk/advsys/game.h
index 5ffb31b20e..a5c7f41f55 100644
--- a/engines/glk/advsys/game.h
+++ b/engines/glk/advsys/game.h
@@ -59,12 +59,12 @@ enum ObjectField {
* Built-in variables
*/
enum Variable {
- V_ACTOR = 1, ///< Actor noun phrase number
- V_ACTION = 2, ///< Action from phrase
- V_DOBJECT = 3, ///< First direct object noun phrase number
- V_NDOBJECTS = 4, ///< Number of direct object noun phrases
- V_IOBJECT = 5, ///< Indirect object noun phrase number
- V_OCOUNT = 6 ///< Total object count
+ V_ACTOR = 1, ///< Actor noun phrase number
+ V_ACTION = 2, ///< Action from phrase
+ V_DOBJECT = 3, ///< First direct object noun phrase number
+ V_NDOBJECTS = 4, ///< Number of direct object noun phrases
+ V_IOBJECT = 5, ///< Indirect object noun phrase number
+ V_OCOUNT = 6 ///< Total object count
};
/**
@@ -75,7 +75,7 @@ public:
/**
* Decrypt a data block
*/
- static void decrypt(byte* data, size_t size);
+ static void decrypt(byte *data, size_t size);
};
/**
@@ -83,27 +83,27 @@ public:
*/
class Header : public Decrypter {
public:
- bool _valid; ///< Signals whether header is valid
- size_t _size; ///< Resident size in bytes
- uint _headerVersion; ///< Header structure version
- Common::String _name; ///< Adventure name
- uint _version; ///< Adventure version
- uint _wordTableOffset; ///< Word table offset
- uint _wordTypeTableOffset; ///< Word type table offset
- uint _objectTableOffset; ///< Object table offset
- uint _actionTableOffset; ///< Action table offset
- uint _variableTableOffset; ///< Variable table offset
- uint _dataSpaceOffset; ///< Data space offset
- uint _codeSpaceOffset; ///< Code space offset
- uint _dataBlockOffset; ///< First data block offset
- uint _messageBlockOffset; ///< First message block offset
- uint _initCodeOffset; ///< Initialization code offset
- uint _updateCodeOffset; ///< Update code offset
- uint _beforeOffset; ///< Code offset before verb handler
- uint _afterOffset; ///< Code offset after verb handler
- uint _errorHandlerOffset; ///< Error handler code offset
- uint _saveAreaOffset; ///< Save area offset
- uint _saveSize; ///< Save area size
+ bool _valid; ///< Signals whether header is valid
+ size_t _size; ///< Resident size in bytes
+ uint _headerVersion; ///< Header structure version
+ Common::String _name; ///< Adventure name
+ uint _version; ///< Adventure version
+ uint _wordTableOffset; ///< Word table offset
+ uint _wordTypeTableOffset; ///< Word type table offset
+ uint _objectTableOffset; ///< Object table offset
+ uint _actionTableOffset; ///< Action table offset
+ uint _variableTableOffset; ///< Variable table offset
+ uint _dataSpaceOffset; ///< Data space offset
+ uint _codeSpaceOffset; ///< Code space offset
+ uint _dataBlockOffset; ///< First data block offset
+ uint _messageBlockOffset; ///< First message block offset
+ uint _initCodeOffset; ///< Initialization code offset
+ uint _updateCodeOffset; ///< Update code offset
+ uint _beforeOffset; ///< Code offset before verb handler
+ uint _afterOffset; ///< Code offset after verb handler
+ uint _errorHandlerOffset; ///< Error handler code offset
+ uint _saveAreaOffset; ///< Save area offset
+ uint _saveSize; ///< Save area size
public:
/**
* Constructor
@@ -153,7 +153,7 @@ private:
/**
* Returns true if an action has a given verb
*/
- bool hasVerb(int act, int* verbs) const;
+ bool hasVerb(int act, int *verbs) const;
/**
* Returns true if an action is in a given list
@@ -174,15 +174,15 @@ public:
int _actionCount;
int _variableCount;
- byte* _residentBase;
- byte* _wordTable;
- byte* _wordTypeTable;
- byte* _objectTable;
- byte* _actionTable;
- byte* _variableTable;
- byte* _saveArea;
- byte* _dataSpace;
- byte* _codeSpace;
+ byte *_residentBase;
+ byte *_wordTable;
+ byte *_wordTypeTable;
+ byte *_objectTable;
+ byte *_actionTable;
+ byte *_variableTable;
+ byte *_saveArea;
+ byte *_dataSpace;
+ byte *_codeSpace;
public:
/**
* Constructor
@@ -200,7 +200,7 @@ public:
/**
* Restore savegame data from the game to it's initial state
*/
- void restart(Common::SeekableReadStream& s);
+ void restart(Common::SeekableReadStream &s);
/**
* Returns true if the game is restarting, and resets the flag
@@ -210,37 +210,39 @@ public:
/**
* Save the game data to a savegame
*/
- void saveGameData(Common::WriteStream& ws);
+ void saveGameData(Common::WriteStream &ws);
/**
* Restore the game data from a savegame
*/
- void loadGameData(Common::ReadStream& rs);
+ void loadGameData(Common::ReadStream &rs);
/**
* Find a word in the dictionary
*/
- int findWord(const Common::String& word) const;
+ int findWord(const Common::String &word) const;
/**
* Return a word's type
*/
- int getWordType(int word) const { return _wordTypeTable[word]; }
+ int getWordType(int word) const {
+ return _wordTypeTable[word];
+ }
/**
* Match an object against a name and list of adjectives
*/
- bool match(int obj, int noun, int* adjectives);
+ bool match(int obj, int noun, int *adjectives);
/**
* Check to see if this is a valid verb
*/
- int checkVerb(int* verbs);
+ int checkVerb(int *verbs);
/**
* Find an action matching a given description
*/
- int findAction(int* verbs, int preposition, int flag);
+ int findAction(int *verbs, int preposition, int flag);
/**
* Get an object property
diff --git a/engines/glk/advsys/vm.cpp b/engines/glk/advsys/vm.cpp
index 46d2133dd0..754a86a530 100644
--- a/engines/glk/advsys/vm.cpp
+++ b/engines/glk/advsys/vm.cpp
@@ -83,7 +83,7 @@ OpcodeMethod VM::_METHODS[0x34] = {
};
VM::VM(OSystem *syst, const GlkGameDescription &gameDesc) : GlkInterface(syst, gameDesc), Game(),
- _pc(0), _status(IN_PROGRESS) {
+ _pc(0), _status(IN_PROGRESS) {
}
ExecutionResult VM::execute(int offset) {
@@ -94,7 +94,7 @@ ExecutionResult VM::execute(int offset) {
_stack.clear();
// Iterate through the script
- for (_status = IN_PROGRESS; !shouldQuit() && _status == IN_PROGRESS; )
+ for (_status = IN_PROGRESS; !shouldQuit() && _status == IN_PROGRESS;)
executeOpcode();
return _status;
diff --git a/engines/glk/advsys/vm.h b/engines/glk/advsys/vm.h
index 84cd313961..e1b217fd31 100644
--- a/engines/glk/advsys/vm.h
+++ b/engines/glk/advsys/vm.h
@@ -24,7 +24,7 @@
#define GLK_ADVSYS_VM
#include "glk/advsys/glk_interface.h"
-#include "glk/advsys/game.h"
+#include "glk/advsys/game.h"
#include "common/array.h"
namespace Glk {
@@ -34,73 +34,73 @@ namespace AdvSys {
* Execution result states
*/
enum ExecutionResult {
- IN_PROGRESS = 0, ///< Default state whilst script is in progress
- FINISH = 1, ///< Script was finished
- CHAIN = 2, ///< Another script is being chained to
- ABORT = 3 ///< Script was aborted
+ IN_PROGRESS = 0, ///< Default state whilst script is in progress
+ FINISH = 1, ///< Script was finished
+ CHAIN = 2, ///< Another script is being chained to
+ ABORT = 3 ///< Script was aborted
};
/**
* Opcode list
*/
enum Opcode {
- OP_BRT = 0x01, ///< Branch on true
- OP_BRF = 0x02, ///< Branch on false
- OP_BR = 0x03, ///< Branch unconditionally
- OP_T = 0x04, ///< Load top of stack with t
- OP_NIL = 0x05, ///< Load top of stack with nil
- OP_PUSH = 0x06, ///< Push nil onto stack
- OP_NOT = 0x07, ///< Logical negate top of stack
- OP_ADD = 0x08, ///< Add two numeric expressions
- OP_SUB = 0x09, ///< Subtract two numeric expressions
- OP_MUL = 0x0A, ///< Multiply two numeric expressions
- OP_DIV = 0x0B, ///< Divide two numeric expressions
- OP_REM = 0x0C, ///< Remainder of two numeric expressions
- OP_BAND = 0x0D, ///< Bitwise and of two numeric expressions
- OP_BOR = 0x0E, ///< Bitwise or of two numeric expressions
- OP_BNOT = 0x0F, ///< Bitwise not
- OP_LT = 0x10, ///< Less than
- OP_EQ = 0x11, ///< Equal to
- OP_GT = 0x12, ///< Greater than
- OP_LIT = 0x13, ///< Load literal
- OP_VAR = 0x14, ///< Load a variable value
- OP_GETP = 0x15, ///< Get the value of an object property
- OP_SETP = 0x16, ///< Set the value of an object property
- OP_SET = 0x17, ///< Set the value of a variable
- OP_PRINT = 0x18, ///< Print messages
- OP_TERPRI = 0x19, ///< Terminate the print line
- OP_PNUMBER = 0x1A, ///< Print a number
- OP_FINISH = 0x1B, ///< Finish handling this command
- OP_CHAIN = 0x1C, ///< Chain to the next handler
- OP_ABORT = 0x1D, ///< Abort this command
- OP_EXIT = 0x1E, ///< Exit the game
- OP_RETURN = 0x1F, ///< Return from function
- OP_CALL = 0x20, ///< Call subroutine
- OP_SVAR = 0x21, ///< Short load a variable
- OP_SSET = 0x22, ///< Short set a variable
- OP_SPLIT = 0x23, ///< Short load a positive literal
- OP_SNLIT = 0x24, ///< Short load a negative literal
- OP_YORN = 0x25, ///< Yes or No predicate
- OP_SAVE = 0x26, ///< Save data structures
- OP_RESTORE = 0x27, ///< Restore data structures
- OP_ARG = 0x28, ///< Load an argument value
- OP_ASET = 0x29, ///< Set an argument value
- OP_TMP = 0x2A, ///< Load a temporary variable value
- OP_TSET = 0x2B, ///< Set a temporary variable
- OP_TSPACE = 0x2C, ///< Allocate temporary variable space
- OP_CLASS = 0x2D, ///< Get the class of an object
- OP_MATCH = 0x2E, ///< Match a noun phrase with an object
- OP_PNOUN = 0x2F, ///< Print a noun phrase
- OP_RESTART = 0x30, ///< Restart the current game
- OP_RAND = 0x31, ///< Generate a random number
- OP_RNDMIZE = 0x32, ///< Seed the random number generator
- OP_SEND = 0x33, ///< Send a message to an object
- OP_VOWEL = 0x34, ///< Check for vowel beginning string
+ OP_BRT = 0x01, ///< Branch on true
+ OP_BRF = 0x02, ///< Branch on false
+ OP_BR = 0x03, ///< Branch unconditionally
+ OP_T = 0x04, ///< Load top of stack with t
+ OP_NIL = 0x05, ///< Load top of stack with nil
+ OP_PUSH = 0x06, ///< Push nil onto stack
+ OP_NOT = 0x07, ///< Logical negate top of stack
+ OP_ADD = 0x08, ///< Add two numeric expressions
+ OP_SUB = 0x09, ///< Subtract two numeric expressions
+ OP_MUL = 0x0A, ///< Multiply two numeric expressions
+ OP_DIV = 0x0B, ///< Divide two numeric expressions
+ OP_REM = 0x0C, ///< Remainder of two numeric expressions
+ OP_BAND = 0x0D, ///< Bitwise and of two numeric expressions
+ OP_BOR = 0x0E, ///< Bitwise or of two numeric expressions
+ OP_BNOT = 0x0F, ///< Bitwise not
+ OP_LT = 0x10, ///< Less than
+ OP_EQ = 0x11, ///< Equal to
+ OP_GT = 0x12, ///< Greater than
+ OP_LIT = 0x13, ///< Load literal
+ OP_VAR = 0x14, ///< Load a variable value
+ OP_GETP = 0x15, ///< Get the value of an object property
+ OP_SETP = 0x16, ///< Set the value of an object property
+ OP_SET = 0x17, ///< Set the value of a variable
+ OP_PRINT = 0x18, ///< Print messages
+ OP_TERPRI = 0x19, ///< Terminate the print line
+ OP_PNUMBER = 0x1A, ///< Print a number
+ OP_FINISH = 0x1B, ///< Finish handling this command
+ OP_CHAIN = 0x1C, ///< Chain to the next handler
+ OP_ABORT = 0x1D, ///< Abort this command
+ OP_EXIT = 0x1E, ///< Exit the game
+ OP_RETURN = 0x1F, ///< Return from function
+ OP_CALL = 0x20, ///< Call subroutine
+ OP_SVAR = 0x21, ///< Short load a variable
+ OP_SSET = 0x22, ///< Short set a variable
+ OP_SPLIT = 0x23, ///< Short load a positive literal
+ OP_SNLIT = 0x24, ///< Short load a negative literal
+ OP_YORN = 0x25, ///< Yes or No predicate
+ OP_SAVE = 0x26, ///< Save data structures
+ OP_RESTORE = 0x27, ///< Restore data structures
+ OP_ARG = 0x28, ///< Load an argument value
+ OP_ASET = 0x29, ///< Set an argument value
+ OP_TMP = 0x2A, ///< Load a temporary variable value
+ OP_TSET = 0x2B, ///< Set a temporary variable
+ OP_TSPACE = 0x2C, ///< Allocate temporary variable space
+ OP_CLASS = 0x2D, ///< Get the class of an object
+ OP_MATCH = 0x2E, ///< Match a noun phrase with an object
+ OP_PNOUN = 0x2F, ///< Print a noun phrase
+ OP_RESTART = 0x30, ///< Restart the current game
+ OP_RAND = 0x31, ///< Generate a random number
+ OP_RNDMIZE = 0x32, ///< Seed the random number generator
+ OP_SEND = 0x33, ///< Send a message to an object
+ OP_VOWEL = 0x34, ///< Check for vowel beginning string
- OP_XVAR = 0x40, ///< Extra short load a variable
- OP_XSET = 0x60, ///< Extra short set a variable
- OP_XPLIT = 0x80, ///< Extra short load a positive literal
- OP_XNLIT = 0xC0 ///< Extra short load a negative literal
+ OP_XVAR = 0x40, ///< Extra short load a variable
+ OP_XSET = 0x60, ///< Extra short set a variable
+ OP_XPLIT = 0x80, ///< Extra short load a positive literal
+ OP_XNLIT = 0xC0 ///< Extra short load a negative literal
};
class VM;
@@ -115,7 +115,9 @@ class VM : public GlkInterface, public Game {
/**
* Push a value onto the stack
*/
- void push(int v) { push_back(v); }
+ void push(int v) {
+ push_back(v);
+ }
/**
* Pop a value from the stack
@@ -211,8 +213,8 @@ public:
/**
* Exeecute a script
- * @param offset Script offset
- * @returns Script result code
+ * @param offset Script offset
+ * @returns Script result code
*/
ExecutionResult execute(int offset);
};