.sinAngleLo EQUB 0 \ The low byte of the sine of a pitch or yaw angle, \ as calculated by the GetRotationMatrix routine \ \ [Show more]Name: Main variable workspace [Show more] Type: Workspace Address: &0C00 to &0CFF Category: Workspaces Summary: The main block of game variablesContext: See this workspace in context in the source code References: No direct references to this workspace in this source file\ \ This variable is used by the following: \ \ * DivideBy16 \ * GetRotationMatrix (Part 2 of 5) \ * GetRotationMatrix (Part 3 of 5) \ * GetRotationMatrix (Part 5 of 5) \ * MultiplyCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.cosAngleLo EQUB 0 \ The low byte of the cosine of a pitch or yaw angle, \ as calculated by the GetRotationMatrix routine \ \ [Show more]\ \ This variable is used by the following: \ \ * GetRotationMatrix (Part 5 of 5) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sinAngleHi EQUB 0 \ The high byte of the sine of a pitch or yaw angle, \ as calculated by the GetRotationMatrix routine \ \ [Show more]\ \ This variable is used by the following: \ \ * DivideBy16 \ * GetRotationMatrix (Part 2 of 5) \ * GetRotationMatrix (Part 3 of 5) \ * MultiplyCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.cosAngleHi EQUB 0 \ The high byte of the cosine of a pitch or yaw angle, \ as calculated by the GetRotationMatrix routine .scannerUpdate EQUB 0 \ A flag to control whether the scanner gets updated: \ \ * Non-zero = update scanner \ \ * Zero = do not update scanner \ \ [Show more]\ \ This variable is used by the following: \ \ * GetPlayerDrain \ * SetScannerAndPause \ * UpdateScanner \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xIconCounter EQUB &28 \ A counter for drawing the icons in the top-left of the \ screen that show the player's energy level, as we work \ from left to right along the x-axis \ \ [Show more]\ \ This variable is used by the following: \ \ * ClearIconsScanner \ * DrawIcon \ * UpdateIconsScanner \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.minEnemyAltitude EQUB 0 \ The altitude of the lowest enemy on the landscape \ \ [Show more]\ \ This variable is used by the following: \ \ * AddEnemiesToTiles \ * ExpendEnemyEnergy \ * SpawnPlayer \ * SpawnTrees \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.maxNumberOfEnemies EQUB 0 \ The maximum number of enemies that can appear on the \ current landscape, which is calculated as follows: \ \ min(8, 1 + (landscapeNumber div 10)) \ \ So landscapes 0000 to 0009 have a maximum enemy count \ of 1, landscapes 0010 to 0019 have a maximum enemy \ count of 2, and so on up to landscapes 0070 and up, \ which have a maximum enemy count of 8 \ \ [Show more]\ \ This variable is used by the following: \ \ * InitialiseSeeds \ * SpawnEnemies \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.tileDataMultiplier EQUB 0 \ A multiplier that we apply to the altitudes of the \ tile corners to alter the steepness of the landscape \ during landscape generation \ \ [Show more]\ \ This variable is used by the following: \ \ * GenerateLandscape \ * ProcessTileData \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.lastScannerState EQUB 0 \ The state of the scanner the last time that it was \ updated: \ \ * 0 = fill scanner with black \ \ * 4 = fill the scanner with static in colour 3 \ \ * 8 = fill scanner with green \ \ [Show more]\ \ This variable is used by the following: \ \ * UpdateScanner \ * UpdateScannerNow \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.playerEnergy EQUB 0 \ The player's energy level (in the range 0 to 63) \ \ [Show more]\ \ This variable is used by the following: \ \ * DrainObjectEnergy \ * GetPlayerEnergyBCD \ * SpawnPlayer \ * UpdateIconsScanner \ * UpdatePlayerEnergy \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .J EQUB 0 \ Temporary storage, used in the maths routines from \ Revs \ \ [Show more]\ \ This variable is used by the following: \ \ * GetRotationMatrix (Part 1 of 5) \ * GetRotationMatrix (Part 5 of 5) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.gameplayStack EQUB 0 \ The value of the stack pointer at the start of the \ ApplyEnemyTactics routine, so we can return back to \ the ProcessGameplay routine from deep within the \ tactics routines if required \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyEnemyTactics \ * FinishEnemyTactics \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.meanieYawStep EQUB 0 \ The yaw angle through which we rotate a meanie as it \ searches for the player in the ApplyTactics routine \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 2 of 8) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.textDropShadow EQUB 0 \ Controls whether text in text tokens is printed with a \ drop shadow \ \ * Bit 7 clear = drop shadow \ \ * Bit 7 set = no drop shadow \ \ [Show more]\ \ This variable is used by the following: \ \ * PrintCharacter \ * PrintInputBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.characterDef EQUB 0, 0, 0, 0 \ An OSWORD block for reading a character definition EQUB 0, 0, 0, 0 \ from the operating system, for use when drawing text EQUB 0 \ in large 3D blocks \ \ [Show more]\ \ This variable is used by the following: \ \ * SpawnCharacter3D (Part 1 of 2) \ * SpawnCharacter3D (Part 2 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xTileSentinel EQUB 0 \ The tile x-coordinate of the Sentinel \ \ [Show more]\ \ This variable is used by the following: \ \ * AddEnemiesToTiles \ * PerformHyperspace \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.zTileSentinel EQUB 0 \ The tile z-coordinate of the Sentinel \ \ [Show more]\ \ This variable is used by the following: \ \ * AddEnemiesToTiles \ * PerformHyperspace \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.keepCheckingPanKey EQUB 0 \ Controls whether the DrawLandscapeView routine aborts \ drawing if the pan key is released before it has \ finished \ \ * Bit 7 clear = keep drawing the landscape view \ irrespective of whether the pan key \ is still being pressed \ \ * Bit 7 set = check whether the same pan key is \ being held down and abort the drawing \ if it is no longer being pressed \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawLandscapeView (Part 2 of 3) \ * MainGameLoop \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.titleObjectToDraw EQUB 5 \ The object we are drawing in the DrawTitleView routine \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyEnemyTactics \ * ApplyTactics (Part 2 of 8) \ * DrawTitleView \ * ProcessActionKeys (Part 1 of 2) \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.latestPanKeyPress EQUB 0 \ The key logger value of the latest pan key press, \ which will either be a current key press or the value \ from the last pan key press to be made \ \ * 0 = pan right \ \ * 1 = pan left \ \ * 2 = pan up \ \ * 3 = pan down \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckForKeyPresses \ * CheckForSamePanKey \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.doNotDitherObject EQUB 0 \ Controls whether the DitherScreenBuffer routine can \ update an object on the screen using a dithered effect \ \ * Bit 7 clear = dithering objects is enabled \ \ * Bit 7 set = dithering objects is disabled \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ * DrawUpdatedObject \ * FocusOnKeyAction \ * MainGameLoop \ * ProcessGameplay \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.samePanKeyPress EQUB 0 \ Records whether the same pan key is being held down \ after we have just finished panning the landscape view \ \ * Bit 7 clear = same pan key is not being held down \ \ * Bit 7 set = same pan key is being held down \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckObjVisibility \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyDrainTimer EQUB 0, 0, 0, 0 \ A timer for each enemy that counts down every 0.06 EQUB 0, 0, 0, 0 \ seconds and controls the rate at which an enemy will \ drain energy from its target object \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 2 of 8) \ * ApplyTactics (Part 5 of 8) \ * ApplyTactics (Part 7 of 8) \ * DrainObjectEnergy \ * GetPlayerDrain \ * UpdateEnemyTimers \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyRotateTimer EQUB 0, 0, 0, 0 \ A timer for each enemy that counts down every 0.06 EQUB 0, 0, 0, 0 \ seconds and controls the rate at which the enemy \ rotates with the rotation step given in enemyYawStep \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 5 of 8) \ * ApplyTactics (Part 6 of 8) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyTacticTimer EQUB 0, 0, 0, 0 \ A timer for each enemy that counts down every 0.06 EQUB 0, 0, 0, 0 \ seconds and controls the rate at which we apply \ tactics to that enemy \ \ [Show more]\ \ This variable is used by the following: \ \ * AddEnemiesToTiles \ * ApplyTactics (Part 1 of 8) \ * ApplyTactics (Part 2 of 8) \ * ApplyTactics (Part 5 of 8) \ * ApplyTactics (Part 7 of 8) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0, 0, 0 \ These bytes appear to be unused EQUB 0, 0, 0, 0 .polygonPoint EQUB 0, 0, 0, 0, 0 \ Up to five coordinates for the points of the polygon \ being drawn \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawLandscapeView (Part 1 of 3) \ * DrawObject \ * GetPolygonLines (Part 1 of 6) \ * GetPolygonLines (Part 2 of 6) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0 \ These bytes appear to be unused .drawingPhase EQUB 0 \ The number of the current drawing phase when drawing \ two-phase objects: \ \ * Bit 7 = 0: first phase \ \ * Bit 7 = 1: second phase \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObject \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xTileLeftPrevious EQUB 2 \ The previous value of xTileViewLeft \ \ This makes the search for edges more efficient in the \ DrawLandscapeView routine as the edges in neighbouring \ rows will be close together \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawLandscapeView (Part 2 of 3) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xTileCharacter EQUB 32 \ The tile x-coordinate of the character being spawned \ in large 3D blocks on the landscape for the title \ screen \ \ [Show more]\ \ This variable is used by the following: \ \ * SpawnCharacter3D (Part 1 of 2) \ * SpawnCharacter3D (Part 2 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.zTileCharacter EQUB 7 \ The tile z-coordinate of the character being spawned \ in large 3D blocks on the landscape for the title \ screen \ \ [Show more]\ \ This variable is used by the following: \ \ * SpawnCharacter3D (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.drawingTitleScreen EQUB %10000000 \ A flag to indicate whether we are currently drawing a \ title screen in the DrawTitleScreen routine \ \ * Bit 7 clear = we are not drawing a title screen \ \ * Bit 7 set = we are drawing a title screen \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawTileAndObjects \ * DrawTitleScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.screenBackground EQUB 1 \ The type of screen background when clearing the screen \ \ * 0 = fill with alternating colour 0/1 (blue/black) \ pixel rows, for the sky during gameplay \ \ * 1 = fill with solid colour 0 (blue) \ \ * 2 = fill with dithered pixels in colour 0 (blue) \ and colour 3 (e.g. green in landscape 0000) \ by alternating colour 3/0/3/0 and 0/3/0/3 \ pixel bytes \ \ * 3 = fill with solid colour 1 (black) and draw 240 \ randomly positioned stars on the background \ \ [Show more]\ \ This variable is used by the following: \ \ * ClearScreen \ * DrawTitleView \ * FillScreen \ * PerformHyperspace \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.drawLandscape EQUB 0 \ Configures whether to draw the landscape behind the \ object in the DrawUpdatedObject routine \ \ * Bit 7 clear = draw the landscape behind the object \ as well as the object \ \ * Bit 7 set = just draw the object \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawUpdatedObject \ * IRQHandler \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sentinelHasWon EQUB 0 \ A flag to record when the player runs out of energy \ (i.e. the energy level goes negative), at which point \ the Sentinel wins \ \ * Bit 7 clear = player still has positive energy \ \ * Bit 7 set = player has run out of energy and the \ Sentinel has won \ \ [Show more]\ \ This variable is used by the following: \ \ * DrainObjectEnergy \ * DrawUpdatedObject \ * IRQHandler \ * MainGameLoop \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.playerTileIsHidden EQUB 0 \ A flag that records when the player is being scanned \ but the player's tile is hidden from the Sentinel or \ sentry doing the scan \ \ * 64 = player's tile is hidden from the scan \ \ * Not 64 = player's tile is visible \ \ [Show more]\ \ This variable is used by the following: \ \ * GetPlayerDrain \ * UpdateScannerNow \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.updateTimer EQUB 0 \ A counter that ensures the enemy timers are updated on \ one of every three calls to the interrupt handler \ \ [Show more]\ \ This variable is used by the following: \ \ * UpdateEnemyTimers \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.uTurnStatus EQUB 0 \ A flag to record whether we are performing or have \ just performed a U-turn \ \ * Bit 6 clear = do not perform a U-turn if "U" is \ pressed \ \ * Bit 6 set = do a U-turn if "U" is pressed \ \ Bit 6 is set in CheckForKeyPresses (which is called by \ the interrupt handler) if "U" is not being pressed, so \ this flag ensures that pressing and holding the "U" \ key does not continuously perform U-turns, and instead \ only performs a single U-turn \ \ When a "U" key press is detected in ProcessActionKeys, \ uTurnStatus is shifted left, so for the first \ iteration of the main game loop after "U" is pressed, \ bit 7 is set to indicate that we just performed a \ U-turn \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckForKeyPresses \ * MainGameLoop \ * ProcessActionKeys (Part 1 of 2) \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.landscapeZero EQUB 0 \ A flag that is set depending on whether we are playing \ landscape 0000 \ \ * Zero = this is landscape 0000 \ \ * Non-zero = this is not landscape 0000 \ \ [Show more]\ \ This variable is used by the following: \ \ * GenerateLandscape \ * InitialiseSeeds \ * MainTitleLoop \ * SpawnEnemies \ * SpawnPlayer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.G2 EQUB 0 \ Temporary storage, used in the maths routines from \ Revs, where the original variable name was G (this \ variable has been renamed to G2 to prevent a clash \ with the G variable that is used by The Sentinel) \ \ [Show more]\ \ This variable is used by the following: \ \ * GetRotationMatrix (Part 1 of 5) \ * GetRotationMatrix (Part 2 of 5) \ * GetRotationMatrix (Part 3 of 5) \ * GetRotationMatrix (Part 4 of 5) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.H2 EQUB 0 \ Temporary storage, used in the maths routines from \ Revs, where the original variable name was H (this \ variable has been renamed to H2 to prevent a clash \ with the H variable that is used by The Sentinel) \ \ [Show more]\ \ This variable is used by the following: \ \ * GetRotationMatrix (Part 1 of 5) \ * GetRotationMatrix (Part 2 of 5) \ * GetRotationMatrix (Part 3 of 5) \ * GetRotationMatrix (Part 4 of 5) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.stashOffset EQUB 0 \ The offset into the secretCodeStash where we store a \ set of generated values for later checking in the \ GetRowVisibility routine \ \ The value of stashOffset is set in the SetSecretStash \ routine during the landscape drawing process, where it \ is set to a value that is unique and consistent for \ each individual landscape \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckSecretCode (Part 1 of 2) \ * CheckSecretStash \ * SetSecretStash \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.targetOnTile EQUB 0 \ A flag to record whether the tile being analysed in \ the GetTileAltitude routine contains the target object \ whose number is in targetObject \ \ * Bit 7 clear = tile does not contain the target \ object \ \ * Bit 7 set = tile contains the target object \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckEnemyGaze (Part 2 of 2) \ * FollowGazeVector (Part 1 of 5) \ * GetTileAltitude \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectViewYawHi EQUB 13 \ The yaw angle of the object being analysed, relative \ to the current viewer (high byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 2 of 8) \ * CheckEnemyGaze (Part 2 of 2) \ * GetObjectAngles \ * GetObjPointAngles \ * GetObjVisibility \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.targetObject EQUB 0 \ The number of the object that is being targeted in the \ DrainObjectEnergy routine \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckEnemyGaze (Part 1 of 2) \ * CheckEnemyGaze (Part 2 of 2) \ * DrainObjectEnergy \ * FindObjectToDrain \ * GetTileAltitude \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectViewYawLo EQUB &16 \ The yaw angle of the object being analysed, relative \ to the current viewer (low byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * GetObjectAngles \ * GetObjPointAngles \ * GetObjVisibility \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .objectOppositeLo EQUB &E0 \ The height of an object relative to the viewer, \ expressed as the length of the opposite side in a \ triangle with the vector from the viewer to the object \ as the hypotenuse (low byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObject \ * GetObjectAngles \ * GetObjPointAngles \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectOppositeHi EQUB &B7 \ The height of an object relative to the viewer, \ expressed as the length of the opposite side in a \ triangle with the vector from the viewer to the object \ as the hypotenuse (high byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObject \ * GetObjectAngles \ * GetObjPointAngles \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectAdjacentLo EQUB &E4 \ The distance of an object from the viewer, expressed \ as the length of the adjacent side in a triangle with \ the vector from the viewer to the object as the \ hypotenuse (low byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * GetObjectAngles \ * GetObjPointAngles \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectAdjacentHi EQUB &52 \ The distance of an object from the viewer, expressed \ as the length of the adjacent side in a triangle with \ the vector from the viewer to the object as the \ hypotenuse (high byte) \ \ [Show more]\ \ This variable is used by the following: \ \ * GetObjectAngles \ * GetObjPointAngles \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sightsAreVisible EQUB 0 \ Controls whether the sights are being shown \ \ * Bit 7 clear = sights are not being shown \ \ * Bit 7 set = sights are being shown \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckForKeyPresses \ * DrawUpdatedObject \ * MainGameLoop \ * ProcessGameplay \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.printTextIn3D EQUB 0 \ Controls whether we are printing text normally or in \ 3D (as in the game's title on the title screen) \ \ * Bit 7 clear = normal text \ \ * Bit 7 set = 3D text \ \ [Show more]\ \ This variable is used by the following: \ \ * PrintDigit \ * SpawnSecretCode3D \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectType SKIP 0 \ The type of object that we are spawning \ \ This variable shares the same memory location as \ keyPress \ \ [Show more]\ \ This variable is used by the following: \ \ * SpawnObject \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.keyPress EQUB 0 \ The key logger value for a key press \ \ This variable shares the same memory location as \ objectType \ \ This means that if the player presses one of the \ "create" keys, then the value in the key logger (as \ defined in the keyLoggerConfig table) can be used as \ the object type to create, as "Create robot" puts a 0 \ in the key logger (the object type for a robot), \ "Create tree" puts a 2 in the logger (the object type \ for a tree) and "Create boulder" puts a 3 in the \ logger (the object type for a boulder) \ \ [Show more]\ \ This variable is used by the following: \ \ * ProcessActionKeys (Part 1 of 2) \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objYawOffset EQUB 0 \ The yaw offset of the left edge of the object being \ analysed in GetObjVisibility, relative to the left \ edge of the screen, in on-screen character columns \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawUpdatedObject \ * GetObjVisibility \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.playerHasMovedTile EQUB 0 \ A flag to record whether the player has moved to a new \ tile by transferring or hyperspacing, so we can decide \ whether to regenerate the player's landscape view \ \ * Bit 7 clear = player has not moved to a new tile \ \ * Bit 7 set = player has moved to a new tile \ \ [Show more]\ \ This variable is used by the following: \ \ * PerformHyperspace \ * ProcessActionKeys (Part 2 of 2) \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.quitGame EQUB 0 \ A flag to record whether the player has pressed \ function key f1 to quit the game \ \ * Bit 7 clear = do not quit the game \ \ * Bit 7 set = quit the game \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckForKeyPresses \ * MainGameLoop \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.secretCodeChecks EQUB 0 \ Bits 1 to 4 store the results of checking each of the \ four two-digit numbers in a landscape's secret entry \ code \ \ A set bit indicates a match while a clear bit \ indicates a failure \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckSecretCode (Part 1 of 2) \ * CheckSecretCode (Part 2 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .boulderOnTile EQUB 0 \ A flag to record whether the tile being analysed in \ the GetTileAltitude routine contains a boulder \ \ * Bit 7 clear = tile does not contain a boulder \ \ * Bit 7 set = tile contains a boulder \ \ [Show more]\ \ This variable is used by the following: \ \ * FollowGazeVector (Part 1 of 5) \ * GetTileAltitude \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyViewingArc EQUB 0 \ The viewing arc of the enemy that is being processed \ in the ApplyTactics routine \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 1 of 8) \ * CheckEnemyGaze (Part 2 of 2) \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.bufferColumns EQUB 0 \ The number of character columns in the current screen \ buffer \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ * DrawUpdatedObject \ * GetObjVisibility \ * PanLandscapeView \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objYawWidth EQUB 0 \ The width of the visible portion of the object being \ analysed in GetObjVisibility, in on-screen character \ columns \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawUpdatedObject \ * GetObjVisibility \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.objectStackCounter EQUB 0 \ A counter for the objects in an object stack, for use \ when drawing the stack \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObjectStack \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.topObjectOnStack EQUB 0 \ The number of the object on the top of an object stack \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObjectStack \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.ditherObjectSights EQUB 0 \ Configures how an updated object is drawn onto the \ screen in the DrawUpdatedObject routine \ \ * Bit 6 set = dither the updated object onto the \ screen \ \ * Bit 7 set = remove the sights from the screen \ before drawing the object \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 8 of 8) \ * DrawUpdatedObject \ * ProcessGameplay \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyCheckingRobot EQUB 0 \ A flag to pass to the FollowGazeVector routine, with \ bit 7 set if the routine is being called when an enemy \ is checking to see if it can see a robot object \ \ This allows the routine to return a positive result \ even if the viewer is below the robot and can't see \ the robot's tile (so we can show a partial scan of the \ player on the scanner) \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckEnemyGaze (Part 2 of 2) \ * FollowGazeVector (Part 1 of 5) \ * ProcessActionKeys (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.numberOfEnemies EQUB 0 \ The number of enemies in the current landscape, \ including the Sentinel (in the range 1 to 8) \ \ [Show more]\ \ This variable is used by the following: \ \ * AddEnemiesToTiles \ * SpawnEnemies \ * SpawnTrees \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.noteCounter EQUB 0 \ The sound counter for an individual note while playing \ chords in the music player \ \ [Show more]\ \ This variable is used by the following: \ \ * ProcessMusic \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.doNotPlayLandscape EQUB 0 \ A flag that controls whether we preview and play the \ landscape after generating it \ \ * Bit 7 clear = preview and play the landscape \ \ * Bit 7 set = do not preview or play the landscape \ \ This allows us to generate a landscape and its secret \ code without actually playing it, which we need to do \ in two cases: \ \ * When the player enters an incorrect secret code \ \ * When displaying a landscape's secret code after \ the level is completed \ \ In both cases we need to generate the landscape before \ we can check or display the secret code, but we don't \ want to go on to preview or play the landscape \ \ This variable is reset to zero by the ResetVariables \ routine, so when a new game starts the default \ behaviour is to preview and play the landscape after \ generating it in the GenerateLandscape routine \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckSecretCode (Part 1 of 2) \ * PerformHyperspace \ * SmoothTileCorners (Part 2 of 4) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.gamePaused EQUB 0 \ A flag to record whether the game is paused \ \ * Bit 7 clear = the game is not paused \ \ * Bit 7 set = the game is paused \ \ [Show more]\ \ This variable is used by the following: \ \ * IRQHandler \ * ProcessPauseKeys \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.soundEffect EQUB 0 \ Determines how the current sound is processed by the \ ProcessSound routine \ \ * 0 = no processing required \ \ * 3 = music \ \ * 4 = scanner sound \ \ * 6 = game over sound \ \ [Show more]\ \ This variable is used by the following: \ \ * GetPlayerDrain \ * MainGameLoop \ * PlayMusic \ * ProcessSound \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.gameOverSoundPitch EQUB 0 \ A timer for the game over sound \ \ Sound is made in ProcessSound when the timer is 80 or \ higher, and it starts at 250 in ShowGameOverScreen and \ decrements in ProcessSound until it dips below 80, at \ which point the sound stops \ \ [Show more]\ \ This variable is used by the following: \ \ * ProcessSound \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.alteredSeed EQUB 0 \ An altered version of the anti-cracker seed-related \ data that gets created in AlterCrackerSeed and checked \ in CheckCreckerSeed as part of the anti-cracker code \ \ [Show more]\ \ This variable is used by the following: \ \ * AlterCrackerSeed \ * CheckCrackerSeed \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.treeVisibility EQUB 0 \ Reports whether a gaze is interrupted by a tree in the \ CheckEnemyGaze routine \ \ * If the target object is a robot, then bit 6 will \ be set if there is a tree blocking the view of the \ robot object \ \ * Bit 7 will be set if there is a tree blocking the \ view of the target object's tile \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 5 of 8) \ * CheckEnemyGaze (Part 2 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .xTitleOffset EQUB 239 \ An x-coordinate offset for drawing the title screen \ this is zero during gameplay) \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawTitleView \ * GetHorizontalDelta \ * GetTileViewAngles (Part 1 of 4) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .blendPolygonEdges EQUB &AA \ A flag to determine whether polygon edges are drawn \ in the same colour as the polygon fill, thus blending \ the edges into the polygon body \ \ * Bit 7 set = draw edges in the fill colour so they \ blend with the polygon body \ \ * Bit 7 clear = draw edges in the edge colour \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawObject \ * DrawPolygonLines (Part 1 of 4) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.seedNumberLFSR EQUB 0 \ A five-byte linear feedback shift register for EQUB 0 \ generating a sequence of seed numbers for each EQUB 1 \ landscape EQUB 0 EQUB 0 .enemyMeanieScan EQUB 0, 0, 0, 0 \ Enemy meanie scan object counter (one byte per enemy) EQUB 0, 0, 0, 0 \ \ A counter that works through all the object numbers as \ we scan the objects from last to first for a tree to \ turn into a meanie \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 4 of 8) \ * ResetMeanieScan \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyEnergy EQUB 0, 0, 0, 0 \ Enemy energy levels (one byte per enemy) EQUB 0, 0, 0, 0 \ \ If an enemy has a non-zero energy level, it will try \ to expend that energy on the landscape by creating a \ tree \ \ [Show more]\ \ This variable is used by the following: \ \ * DrainObjectEnergy \ * ExpendEnemyEnergy \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyFailTarget EQUB 0, 0, 0, 0 \ Enemy failed to find meanie: target object (one byte EQUB 0, 0, 0, 0 \ per enemy) \ \ If an enemy searches for a tree to turn into a meanie \ to attack a target enemy on its behalf, but it can't \ find a suitable tree, then the target object number is \ stored here so the enemy doesn't try looking again \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 5 of 8) \ * ResetMeanieScan \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyFailCounter EQUB 0, 0, 0, 0 \ Enemy failed to find meanie: counter (one byte per EQUB 0, 0, 0, 0 \ enemy) \ \ If an enemy searches for a tree to turn into a meanie \ to attack a target enemy on its behalf, but it can't \ find a suitable tree, then this counter is incremented \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 7 of 8) \ * ResetMeanieScan \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyMeanieTree EQUB 0, 0, 0, 0 \ Enemy has turned a tree into a meanie (one byte per EQUB 0, 0, 0, 0 \ enemy) \ \ * Bit 7 clear = the enemy has turned a tree into a \ meanie and the object number of the \ tree/meanie is in bits 0 to 6 \ \ * Bit 7 set = the enemy has not turned a tree into a \ meanie \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 1 of 8) \ * ApplyTactics (Part 2 of 8) \ * ApplyTactics (Part 7 of 8) \ * ProcessActionKeys (Part 2 of 2) \ * ResetMeanieScan \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyTarget EQUB 0, 0, 0, 0 \ The object number of the enemy's target (one byte per EQUB 0, 0, 0, 0 \ enemy) \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 2 of 8) \ * ApplyTactics (Part 5 of 8) \ * ApplyTactics (Part 7 of 8) \ * GetPlayerDrain \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyVisibility EQUB 0, 0, 0, 0 \ Visibility of the enemy's target (one byte per enemy) EQUB 0, 0, 0, 0 \ \ * Bit 7 set = the enemy can see the target's tile \ \ * Bit 6 set = the enemy can see the target object \ but it can't see the target's tile \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 7 of 8) \ * GetPlayerDrain \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.enemyDrainScan EQUB 0, 0, 0, 0 \ Enemy will perform a scan for a drainable object (one EQUB 0, 0, 0, 0 \ byte per enemy) \ \ * Bit 7 set = the next time we apply tactics to the \ enemy, it will scan the landscape for \ a suitable object for draining of \ energy (i.e. an exposed boulder or a \ tree on top of another object, where \ the enemy can see the object's tile) \ \ * Bit 7 clear = the enemy will not scan for a \ drainable object \ \ [Show more]\ \ This variable is used by the following: \ \ * ApplyTactics (Part 4 of 8) \ * ApplyTactics (Part 7 of 8) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused .scrollCounter EQUB 0 \ A counter for the number of columns or rows we still \ need to scroll in the player's scrolling landscape \ view when the player pans \ \ Scrolling is implemented in the interrupt handler one \ column or row at a time, scrolling one character block \ width or height at each step via the ScrollPlayerView \ routine \ \ This counter keeps track of each step, decrementing \ after each column or row is scrolled, so we only \ scroll when scrollCounter is non-zero \ \ [Show more]\ \ This variable is used by the following: \ \ * IRQHandler \ * MainGameLoop \ * ScrollPlayerView \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.viewScreenAddr EQUW &60C0 \ The screen address of the player's scrolling landscape \ view, which is just below the icon and scanner row at \ the top of the screen \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawRandomDots \ * DrawUpdatedObject \ * GetIconRowAddress \ * InitialiseSights \ * ResetScreenAddress \ * ScrollPlayerView \ * UpdateScannerNow \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sightsScreenAddr EQUW 0 \ The screen address of the sights \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawSights \ * InitialiseSights \ * SetSightsAddress \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xSights EQUB 0 \ The pixel x-coordinate of the sights on-screen \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawSights \ * GetSightsVector \ * InitialiseSights \ * MoveSightsSideways \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.ySights EQUB 0 \ The pixel y-coordinate of the sights on-screen \ \ [Show more]\ \ This variable is used by the following: \ \ * GetSightsVector \ * InitialiseSights \ * MoveSightsUpDown \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sightsInitialMoves EQUB 0 \ Controls the initial movement of the sights over the \ first eight calls to the CheckForKeyPresses routine \ \ Movement in the first eight calls is determined by \ the settings of bit 7 to bit 0, where a set bit \ indicates a pause and a clear bit indicates a move \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckForKeyPresses \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.sightsByteCount EQUB 0 \ The number of screen bytes in the sights pixel byte \ stash that contain the contents of the screen behind \ the sights (so they can be restored to remove the \ sights) \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawSights \ * MainGameLoop \ * RemoveSights \ * ShowGameOverScreen \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.iconRowAddr EQUW &7F80 \ The screen address of the icon and scanner row along \ the top of the screen \ \ [Show more]\ \ This variable is used by the following: \ \ * GetIconRowAddress \ * ScrollPlayerView \ * ShowIconBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.xSightsBrush EQUB 0 \ The x-coordinate of the "brush" that we use to draw \ the sights, relative to the top-left corner of the \ character block containing the top of the sights \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawSights \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.pixelByteToDither EQUB 0 \ A random pixel byte in a character row in the screen \ buffer to use when dithering an object to the screen \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.doNotCheckSecret EQUB 0 \ A flag to control whether we perform the secret code \ check that's buried in the GetRowVisibility routine \ \ * Bit 7 clear = perform check \ \ * Bit 7 set = do not perform check \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckSecretStash \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.bitMaskDither EQUB 0 \ A bit mask for use in the DitherScreenBuffer routine \ that has a matching number of leading zeroes as the \ size of the screen buffer in bytes \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.ditherRandom EQUB 0 \ Storage for a random value in the DitherScreenBuffer \ routine \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.numberOfScrolls EQUB 0 \ The total number of scrolls that we need to perform \ for the current panning operation \ \ This is used to initialise the value of the scroll \ counter in scrollCounter before we start scrolling \ \ [Show more]\ \ This variable is used by the following: \ \ * MainGameLoop \ * StartScrollingView \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.ditherInnerLoop EQUB 0 \ A counter for the inner loop when dithering objects to \ the screen in the DitherScreenBuffer routine \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.bufferWidthBytes EQUB 0 \ The width of the screen buffer in pixel bytes for \ implementing the dithered effect in DitherScreenBuffer \ \ [Show more]\ \ This variable is used by the following: \ \ * DitherScreenBuffer \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.minObjWidth EQUB 0 \ The on-screen width to use when updating objects \ \ When set to a non-zero width, this width is taken into \ consideration when calculating how much of an object \ visible on-screen, particularly when an object is \ being updated \ \ [Show more]\ \ This variable is used by the following: \ \ * DrainObjectEnergy \ * GetObjVisibility \ * ScanForMeanieTree \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0 \ These bytes appear to be unused .doNotDrawSights EQUB 0 \ A flag that controls whether we draw the sights in the \ DrawSights routine \ \ * Bit 7 clear = draw the sights \ \ * Bit 7 set = do not draw the sights \ \ [Show more]\ \ This variable is used by the following: \ \ * DrawSights \ * DrawUpdatedObject \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0, 0, 0 \ These bytes appear to be unused .previousFocus EQUB 0 \ The previous setting of focusOnKeyAction, so we can \ detect (in the ProcessGameplay routine) whether the \ player is still holding down a pan key after we finish \ scrolling the screen for the previous pan \ \ [Show more]\ \ This variable is used by the following: \ \ * FocusOnKeyAction \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.gazeCanSeeTree EQUB 0 \ A flag to record whether the gaze vector can see a \ tree: \ \ * Bit 7 clear = gaze vector cannot see a tree \ \ * Bit 7 set = gaze vector can see a tree \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckEnemyGaze (Part 2 of 2) \ * FollowGazeVector (Part 1 of 5) \ * GetTileAltitude \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.hyperspaceEndsGame EQUB 0 \ Records whether the player performing a hyperspace has \ just ended the game \ \ * Bit 7 set = the player has hyperspaced and has \ ended the game (see bit 6 for the \ details) \ \ Bit 7 clear = the game has not been ended by a \ hyperspace action \ \ * Bit 6 set = the player has won by hyperspacing \ from the Sentinel's tower \ \ Bit 6 clear = the player has run out of energy by \ trying to hyperspace without being \ able to create a robot into which \ they can hyperspace \ \ [Show more]\ \ This variable is used by the following: \ \ * GetTileVisibility \ * MainGameLoop \ * PerformHyperspace \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.soundCounter EQUB 0 \ A counter for the sound currently being made, which \ counts down in the IRQHandler routine at a rate of 50 \ times a second \ \ When the counter reaches zero, it indicates that the \ sound has finished \ \ [Show more]\ \ This variable is used by the following: \ \ * IRQHandler \ * MainGameLoop \ * ProcessMusic \ * ProcessSound \ * ProcessVolumeKeys \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0, 0, 0 \ These bytes appear to be unused .focusOnKeyAction EQUB %10000000 \ A flag that determines whether the game should focus \ effort on implementing a key action, such as a pan of \ the landscape view \ \ * Bit 7 clear = run everything normally \ \ * Bit 7 set = focus effort on the key action \ \ Specifically, setting bit 7 disables the following \ keyboard scans: \ \ * Volume keys in ProcessVolumeKeys \ \ * Game key presses in IRQHandler \ \ * Game key presses in ProcessGameplay \ \ This speeds things up so the action can be implemented \ more quickly and without having to run unnecessary \ keyboard scans \ \ [Show more]\ \ This variable is used by the following: \ \ * FocusOnKeyAction \ * IRQHandler \ * ProcessGameplay \ * ProcessVolumeKeys \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.activateSentinel EQUB %10000000 \ A flag to record when the Sentinel is activated at the \ start of the game (by the player pressing a key that \ expends or absorbs energy \ \ * Bit 7 clear = the Sentinel is activated \ \ * Bit 7 set = the Sentinel is not yet activated \ \ This gives the player time to get their bearings when \ they first start a landscape \ \ [Show more]\ \ This variable is used by the following: \ \ * IRQHandler \ * ProcessGameplay \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.playerIsOnTower EQUB 128 \ A flag to record whether the player is on top of the \ the Sentinel's tower \ \ * 6 = the player is on top of the Sentinel's tower \ \ * Any other value = the player is not on top of the \ Sentinel's tower \ \ This value is used when generating the secret code on \ completion of a level, where an incorrect value will \ corrupt the code (so this forms part of the cracker \ protection code) \ \ [Show more]\ \ This variable is used by the following: \ \ * SetPlayerIsOnTower \ * SpawnSecretCode3D \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.musicCounter EQUB %10000000 \ A counter for the music currently being made, which \ counts up in the ProcessMusic routine while the music \ is being played \ \ If bit 7 is set then there is no music being played \ \ [Show more]\ \ This variable is used by the following: \ \ * MainGameLoop \ * PlayMusic \ * ProcessMusic \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.keyLogger EQUB &80, &80 \ The four-byte key logger for logging game key presses EQUB &80, &80 EQUB &80, &80 \ These bytes appear to be unused EQUB &80, &80 .inputBuffer EQUB 0, 0, 0, 0 \ The eight-byte keyboard input buffer EQUB 0, 0, 0, 0 \ \ Key presses are stored in the input buffer using an \ ascending stack, with new input being pushed into \ inputBuffer, and any existing content in the buffer \ moving up in memory \ \ [Show more]\ \ This variable is used by the following: \ \ * CheckSecretCode (Part 1 of 2) \ * DigitToNumber \ * MainTitleLoop \ * PrintInputBuffer \ * ReadNumber \ * StringToNumber \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0, 0, 0, 0 \ These bytes appear to be unused .gameInProgress EQUB %11000000 \ Flags whether or not a game is in progress (i.e. the \ player is playing a landscape rather than interacting \ with the title and preview screens) \ \ * Bit 7 clear = game is in progress \ \ * Bit 7 set = game is not in progress \ \ This controls whether or not the interrupt handler \ updates the game \ \ [Show more]\ \ This variable is used by the following: \ \ * ConfigureMachine \ * IRQHandler \ * PlayGame \ * ResetVariables \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.landscapeNumberLo EQUB 0 \ The low byte of the four-digit binary coded decimal \ landscape number (0000 to 9999) \ \ [Show more]\ \ This variable is used by the following: \ \ * FinishLandscape \ * InitialiseSeeds \ * MainGameLoop \ * PrintLandscapeNum \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above.landscapeNumberHi EQUB 0 \ The high byte of the four-digit binary coded decimal \ landscape number (0000 to 9999) \ \ [Show more]\ \ This variable is used by the following: \ \ * FinishLandscape \ * GetEnemyCount \ * InitialiseSeeds \ * MainGameLoop \ * PrintLandscapeNum \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned aboveEQUB 0 \ This byte appears to be unused