[
[ global defines file for FLQ
[
#define oOBJ2MOVE              o2 [ the object being moved in straight line
#define TX                    v80 [ target x position
#define TY                    v81 [ target y position
#define SX                    v82 [ starting x position
#define SY                    v83 [ starting y position
#define fDONE                 f80 [ flag to set when target position is reached
#define objStepSize           v84 [ the moving object's step size
#define MOVESTRAIGHT          f81 [ when true, object is using custom path
#define aDX                   v85 [ absolute value of horizontal travel
#define aDY                   v86 [ absolute value of vertical travel
#define XDIR                  v87 [ direction of horizontal travel
#define YDIR                  v88 [ direction of vertical travel
#define DXMAJOR               f82 [ when true, motion is mostly horizontal (aDX>aDY)
#define ctr_l                 v89 [ lsb of counter to determine when direction changes
#define ctr_m                 v90 [ msb of counter to determine when direction changes
#define step_l                v91 [ lsb of amount added to counter at each step
#define step_m                v92 [ msb of amount added to counter at each step
#define reset_l               v93 [ lsb of reset amount after a minor direction increment
#define reset_m               v94 [ msb of reset amount after a minor direction increment
#define tmpVar                v95 [ temporary variable needed by the setup algorithm
#define cMenu                  c0 [ key: ESC; used to display the menu
#define cAbout                 c1 [ menu: File;    key: none
#define cHelp                  c2 [ menu: File;    key: F1
#define cSave                  c3 [ menu: File;    key: F5
#define cRestore               c4 [ menu: File;    key: F7
#define cRestart               c5 [ menu: File;    key: F9
#define cQuit                  c6 [ menu: File;    key: Alt+Q
#define cShowObj               c7 [ menu: Action;  key: F4
#define cStatus                c8 [ menu: Action;  key: Tab
#define cToggleSound           c9 [ menu: Special; key: F2
#define cToggleMonitor        c10 [ menu: Special; key: Ctrl+R
#define cClock                c11 [ menu: Special; key: F6
#define cInitJoy              c12 [ menu: Special; key: Ctrl+J
#define cPause                c13 [ menu: Special; key: none (ESC to show menu also pauses game)
#define cNormal               c14 [ menu: Speed;   key: none
#define cSlow                 c15 [ menu: Speed;   key: none
#define cFast                 c16 [ menu: Speed;   key: none
#define cFastest              c17 [ menu: Speed;   key: none
#define cDebugHelp            c18 [ menu: Debug;   key: none
#define cShowEgo              c19 [ menu: Debug;   key: Alt+E
#define cShowPriority         c20 [ menu: Debug;   key: Alt+P
#define cShowMem              c21 [ menu: Debug;   key: Alt+M
#define cObjInfo              c22 [ menu: Debug;   key: Alt+I
#define cXY                   c23 [ menu: Debug;   key: Alt+X
#define cGimme                c24 [ menu: Debug;   key: none
#define cCancelLine           c25 [ menu: none;    key: Ctrl+C
#define cEchoLine             c26 [ menu: none;    key: F3
#define cDebug                c27 [ menu: none;    key: Alt+D
#define cCrescendo            c28 [ menu: none;    key: +
#define cDecrescendo          c29 [ menu: none;    key: -
#define cVersion              c30 [ menu: none;    key: Alt+V
#define cGetFlag              c31 [ menu: none;    key: ALT+F
#define cDuck                 c32 [ menu: none;    key: ALT+D
#define cJump                 c33 [ menu: none;    key: ALT+J
#define cTaunt                c34 [ menu: none;    key: ALT+T
#define cDummy                c35 [ separator used in menus
#define cycleEgoAtRest        f30 [ when set to TRUE, ego will cycle even when position does not change
#define debugging             f32 [ set this flag to TRUE to enable debug menu and debug mode
#define disableGameFunctions  f33 [ when set to TRUE
#define clockOn               f34 [ set this flag to display a real-time clock of elapsed game time on top of the status bar
#define showCoords            f35 [ a debug flag, that when set, will display current room and ego's x/y location and priority value
#define soundDone             f36 [ use this when playing sound effects if no specific action is needed after the sound ends
#define musicDone             f37 [ use this when playing music if no specific action is needed after the music ends
#define fastestSpeed          f38 [ set when game speed is too fast for cps to be within byte range
#define bombActive            f39 [ true when a bomb is on screen chasing ego
#define actionDone            f40 [ indicates when a flag/jump/duck action sequence is complete
#define fStatusOn             f41 [ set to TRUE to show the custom status line
#define fUpdateStatus         f42 [ when TRUE, status line will be updated
#define fTimesUp              f43 [ indicates when level timer reaches zero
#define fDead                 f44 [ indicates ego has died from too many hits
#define showIntro             f45 [ shows introduction story at start of game
#define cps                   v27 [ cycles per second; used to manage timing of the bomb launches
#define fastcount             v28 [ extra counter for fastest speed, since byte value is too small
#define IntVersion            v30 [ the version of interpreter currently running (MSDOS only)
#define VERSION_2089            1
#define VERSION_2272            2
#define VERSION_2411            3
#define VERSION_2425            4
#define VERSION_2426            5
#define VERSION_2435            6
#define VERSION_2439            7
#define VERSION_2440            8
#define VERSION_2903            9
#define VERSION_2911           10
#define VERSION_2912           11
#define VERSION_2915           12
#define VERSION_2917           13
#define VERSION_2936           14
#define oldSeconds            v31 [ cached value of game seconds (v11)
#define oldMinutes            v32 [ cached value of game minutes (v12)
#define oldHours              v33 [ cached value of game hours (v13)
#define oldDays               v34 [ cached value of game days (v14)
#define deathType             v35 [ assign different values depending on how ego dies; then death handler can use it to provide custom messages
#define deathTimer            v36 [ used by death handler to time display of messages and restart
#define statusSeconds         v37 [ the seconds value currently displayed on status bar when showCoords is TRUE; when this value is different from game seconds, the clock is updated
#define egoX                  v38 [ current ego X position
#define egoY                  v39 [ current ego Y position
#define oldEgoX               v40 [ previous ego X position
#define oldEgoY               v41 [ previous ego Y position
#define oldEgoDir             v42 [ previous ego direction
#define work                  v46 [ this is a globally available flag that can be used for counting or any other temporary purpose
#define egoCycleTime          v59 [ current ego cycle time
#define egoStepTime           v60 [ current ego step time
#define egoStepSize           v61 [ current ego step size
#define egoHealth             v62 [ current ego hit points; game ends when it hits zero
#define reloadTime            v63 [ number of game cycles before next launch of a bomb
#define reloadCounter         v64 [ counter for determining next bomb launch
#define egoAction             v65 [ current ego action
#define RUNNING                 0 [ ego is running around looking for flags
#define FLAGGING                1 [ ego is taking a flag down
#define JUMPING                 2 [ ego is jumping to avoid a bomb
#define DUCKING                 3 [ ego is ducking to avoid a bomb
#define flagcount             v66 [ number of flags ego has captured in current round
#define gamelevel             v67 [ current game level
#define lvlMinutes            v68 [ minutes left on current level
#define lvlSeconds            v69 [ seconds left on current level
#define vStatusSeconds        v70 [ marker used to determine when to update time on the status bar
#define score100s             v71 [ second two digits of score; allows scores >255
#define score1s               v72 [ first two digits of score
#define startingDelay         v73 [ initial delay for first bomb
#define winDelay              v74 [ slight delay after ego gets last flag before ending the level
#define wanderReset           v75
#define FASTEST_SPEED           0 [ animationInterval value for fastest speed
#define FAST_SPEED              1 [ animationInterval value for fast speed
#define NORMAL_SPEED            2 [ animationInterval value for normal speed
#define SLOW_SPEED              4 [ animationInterval value for slow speed
#define cursor                "_" [ default cursor character
