diff options
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/glk/alan2/types.h | 116 | 
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  | 
