aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/alan2/types.h
diff options
context:
space:
mode:
authorFilippos Karapetis2018-12-28 13:39:24 +0200
committerFilippos Karapetis2018-12-28 13:41:39 +0200
commit20d53d27f60fa40cad13c4a9fb18b656303a2956 (patch)
tree3b5bbca2b7aaf4b36fb888f8b26fdd38b2d66e2d /engines/glk/alan2/types.h
parentd42cbfde9e1b188222e15bb41801f16ac99515ce (diff)
downloadscummvm-rg350-20d53d27f60fa40cad13c4a9fb18b656303a2956.tar.gz
scummvm-rg350-20d53d27f60fa40cad13c4a9fb18b656303a2956.tar.bz2
scummvm-rg350-20d53d27f60fa40cad13c4a9fb18b656303a2956.zip
GLK: ALAN2: Adapt C-style enums / structs
Diffstat (limited to 'engines/glk/alan2/types.h')
-rw-r--r--engines/glk/alan2/types.h116
1 files changed, 59 insertions, 57 deletions
diff --git a/engines/glk/alan2/types.h b/engines/glk/alan2/types.h
index aefe4517ae..7da9e1dc58 100644
--- a/engines/glk/alan2/types.h
+++ b/engines/glk/alan2/types.h
@@ -66,7 +66,7 @@ namespace Alan2 {
// TYPES
// Amachine variables
-typedef struct CurVars {
+struct CurVars {
int vrb;
int obj;
int loc;
@@ -74,18 +74,18 @@ typedef struct CurVars {
int tick;
int score;
int visits;
-} CurVars;
+};
// The various tables
-typedef struct WrdElem { // Dictionary
+struct WrdElem { // Dictionary
Aaddr wrd; // ACODE address to string
Aword wordClass; // Word class
Aword code;
Aaddr adjrefs; // Address to reference list
Aaddr nounrefs; // Address to reference list
-} WrdElem;
+};
-typedef struct ActElem { // ACTOR TABLE
+struct ActElem { // ACTOR TABLE
Aword loc; // Location
Abool describe; // Description flag
Aaddr nam; // Address to name printing code
@@ -97,21 +97,21 @@ typedef struct ActElem { // ACTOR TABLE
Aword count;
Aaddr vrbs;
Aaddr dscr; // Address of description code
-} ActElem;
+};
-typedef struct ScrElem { // SCRIPT TABLE
+struct ScrElem { // SCRIPT TABLE
Aword code; // Script number
Aaddr dscr; // Optional description statements
Aaddr steps; // Address to steps
-} ScrElem;
+};
-typedef struct StepElem { // STEP TABLE
+struct StepElem { // STEP TABLE
Aword after; // After how many ticks?
Aaddr exp; // Address to expression saying when
Aaddr stm; // Address to the actual code
-} StepElem;
+};
-typedef struct LocElem { // LOCATION TABLE
+struct LocElem { // LOCATION TABLE
Aaddr nams; // Address of name printing code
Aaddr dscr; // Address of description code
Aaddr does; // Address of does code
@@ -119,66 +119,66 @@ typedef struct LocElem { // LOCATION TABLE
Aaddr atrs; // Address of attribute list
Aaddr exts; // Address of exit list
Aaddr vrbs; // Address of local verb list
-} LocElem;
+};
-typedef struct ExtElem { // EXIT TABLE structure
+struct ExtElem { // EXIT TABLE structure
Abool done; // Flag for reverse/convert process
Aword code; // Direction code
Aaddr checks; // Address of check table
Aaddr action; // Address of action code
Aword next; // Number of next location
-} ExtElem;
+};
-typedef struct ChkElem { // CHECK TABLE
+struct ChkElem { // CHECK TABLE
Aaddr exp; // ACODE address to expression code
Aaddr stms; // ACODE address to statement code
-} ChkElem;
+};
-typedef struct VrbElem { // VERB TABLE
+struct VrbElem { // VERB TABLE
Aword code; // Code for the verb
Aaddr alts; // Address to alternatives
-} VrbElem;
+};
-typedef struct StxElem { // SYNTAX TABLE
+struct StxElem { // SYNTAX TABLE
Aword code; // Code for verb word
Aaddr elms; // Address to element tables
-} StxElem;
+};
-typedef struct ElmElem26 { // ELEMENT TABLES
+struct ElmElem26 { // ELEMENT TABLES
Aword code; // Code for this element, 0 -> parameter
Abool multiple; // May be multiple (if parameter)
Aaddr next; // Address to next element table ...
// ... or class check if EOS
-} ElmElem26;
+};
-typedef struct ElmElem { // ELEMENT TABLES
+struct ElmElem { // ELEMENT TABLES
Aword code; // Code for this element, 0 -> parameter
Aword flags; // Flags for multiple/omni (if parameter)
// CHANGED: v2.7 from Abool for multiple
Aaddr next; // Address to next element table ...
// ... or class check if EOS
-} ElmElem;
+};
-typedef struct ClaElem { // CLASS DEFINITION TABLE
+struct ClaElem { // CLASS DEFINITION TABLE
Aword code; // Parameter number
Aword classes; // Parameter classes
Aaddr stms; // Exception statements
-} ClaElem;
+};
-typedef struct AltElem { // VERB ALTERNATIVE TABLE
+struct AltElem { // VERB ALTERNATIVE TABLE
Abool done; // Flag for patching (reverse/convert) process
Aword param; // Parameter number
Aword qual; // Verb execution qualifier
Aaddr checks; // Address of the check table
Aaddr action; // Address of the action code
-} AltElem;
+};
-typedef struct AtrElem { // ATTRIBUTE LIST
+struct AtrElem { // ATTRIBUTE LIST
Aword val; // Its value
Aaddr stradr; // Address to the name
-} AtrElem;
+};
-typedef struct ObjElem25 { // OBJECT TABLE of 2.5 format
+struct ObjElem25 { // OBJECT TABLE of 2.5 format
Aword loc; // Current location
Abool describe; // Describe flag
Aaddr atrs; // Address of attribute list
@@ -186,9 +186,9 @@ typedef struct ObjElem25 { // OBJECT TABLE of 2.5 format
Aaddr vrbs; // Address to local verb table
Aaddr dscr1; // Address to Aword description code
Aaddr dscr2; // Address to short description code
-} ObjElem25;
+};
-typedef struct ObjElem { // OBJECT TABLE
+struct ObjElem { // OBJECT TABLE
Aword loc; // Current location
Abool describe; // Describe flag
Aaddr atrs; // Address of attribute list
@@ -198,73 +198,75 @@ typedef struct ObjElem { // OBJECT TABLE
Aaddr art; // Article printing code? Else use default
// INTRODUCED: v2.6
Aaddr dscr2; // Address to short description code
-} ObjElem;
+};
-typedef struct CntElem { // CONTAINER TABLE
+struct CntElem { // CONTAINER TABLE
Aaddr lims; // Address to limit check code
Aaddr header; // Address to header code
Aaddr empty; // Address to empty code
Aword parent; // Object or actor index
Aaddr nam; // Address to statement printing name
-} CntElem;
+};
-typedef struct LimElem { // LIMIT Type
+struct LimElem { // LIMIT Type
Aword atr; // Attribute that limits
Aword val; // And the limiting value
Aaddr stms; // Statements if fail
-} LimElem;
+};
-typedef struct RulElem { // RULE TABLE
+struct RulElem { // RULE TABLE
Abool run; // Is rule already run?
Aaddr exp; // Address to expression code
Aaddr stms; // Address to run
-} RulElem;
+};
-typedef struct EvtElem { // EVENT TABLE
+struct EvtElem { // EVENT TABLE
Aaddr stradr; // Address to name string
Aaddr code; // Address of code to run
-} EvtElem;
+};
-typedef struct EvtqElem { // EVENT QUEUE ELEMENT
+struct EvtqElem { // EVENT QUEUE ELEMENT
int time;
int event;
int where;
-} EvtqElem;
+};
-typedef struct IniElem { // STRING INITIALISATION TABLE
+struct IniElem { // STRING INITIALISATION TABLE
Aword fpos; // File position
Aword len; // Length
Aword adr; // Where to store the string
-} IniElem;
+};
-typedef struct MsgElem26 { // MESSAGE TABLE
+struct MsgElem26 { // MESSAGE TABLE
Aword fpos; // File position
Aword len; // Length of message
-} MsgElem26;
+};
-typedef struct MsgElem { // MESSAGE TABLE
+struct MsgElem { // MESSAGE TABLE
Aaddr stms; // Address to statements
// Changed v2.7 from fpos+len in .dat
-} MsgElem;
+};
-
-typedef struct ParamElem { // PARAMETER
+struct ParamElem { // PARAMETER
Aword code; // Code for this parameter (0=multiple)
Aword firstWord; // Index to first word used by player
Aword lastWord; // d:o to last
-} ParamElem;
+};
-typedef enum Type {TYPNUM, TYPSTR} Type;
+enum Type {
+ TYPNUM,
+ TYPSTR
+};
-typedef struct LitElem { // LITERAL
+struct LitElem { // LITERAL
Type type;
Aptr value;
-} LitElem;
+};
#define MAXPARAMS 9
#define MAXENTITY (_vm->header->actmax)
} // End of namespace Alan2
-} // Engine of namespace GLK
+} // End of namespace Glk
#endif