![]() |
Game Status Buffer |
| Address | Length | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 29347 | 2 |
Byte count used when copying entity state data during initialisation / room changes.
|
||||||||||||||||||||||||
| 29349 | 2 |
Byte count used when copying game-state data during initialisation / room changes.
|
||||||||||||||||||||||||
| 29351 | 2 |
End pointer for the entity-state backup region used by copy routines.
|
||||||||||||||||||||||||
| 29353 | 1 |
Set by the main menu (MainMenu_ChooseLearnerOrSuper): 0 = Super Berk, 1 = Learner Berk. Print_StatusMessages uses this to choose the rating message at Messaging_TooLateIveChangedMyMind.
|
||||||||||||||||||||||||
| 29354 | 2 | |||||||||||||||||||||||||
| 29356 | 2 |
Address of the complex state data for the entity currently being processed (usually Berk). Often the entity Berk is holding when bit 4 of Berk's flags byte 3 (IX+3) is set.
|
||||||||||||||||||||||||
| 29358 | 1 |
Index of the current Bad Tempered Thing task (meal request).
|
||||||||||||||||||||||||
| 29359 | 1 |
Phase / sub-step within the current task.
|
||||||||||||||||||||||||
| 29360 | 1 |
Index of the current dialogue / message line.
|
||||||||||||||||||||||||
| 29361 | 2 |
Pointer into Berk's current script data stream.
|
||||||||||||||||||||||||
| 29363 | 1 |
Cross-cutting event bits for trap door and task state.
|
||||||||||||||||||||||||
| 29364 | 1 |
Per-task status bits (Drutt / collectible progress and dialogue gates).
|
||||||||||||||||||||||||
| 29365 | 1 |
Flags for the "Thing Upstairs" (task two) state machine.
|
||||||||||||||||||||||||
| 29366 | 1 |
Flags for the task-three (boiled slimies / feeding) state machine. Bit names below are taken from the Bad Tempered Thing dialogue gates and the stove / put-down writers that set or clear them.
|
||||||||||||||||||||||||
| 29368 | 1 |
Flag byte for task-one progress messages (Table_TaskProgressMessagePointers) and the type-8 / type-11 collision latch at Check_Entity_Collision.
|
||||||||||||||||||||||||
| 29369 | 1 |
Cross-cutting interaction bits for crushers, ghosts and hazards. Meanings below are from observed writers/readers only.
|
||||||||||||||||||||||||
| 29370 | 1 |
Animation and interaction bits for the trap door itself.
|
||||||||||||||||||||||||
| 29371 | 1 |
Frame counter driving Drutt's animation.
|
||||||||||||||||||||||||
| 29372 | 1 |
Count of collectible eyeballs gathered so far.
|
||||||||||||||||||||||||
| 29373 | 1 |
Byte used by collision / collectible helpers (Check_Entity_Collision, Update_Bad_Tempered_Thing_Dialogue) to remember a room index or entity field across a call.
|
||||||||||||||||||||||||
| 29374 | 1 |
How many times Update_Stove Update Stove has run this boil cycle. On the fourth call that routine sets StoveReady (bit 6 of TaskThreeFlags).
|
||||||||||||||||||||||||
| 29375 | 1 |
Non-zero while a room transition is in progress.
|
||||||||||||||||||||||||
| 29376 | 1 |
Countdown / tick used when spawning transient entities.
|
||||||||||||||||||||||||
| 29377 | 1 |
Shared animation frame counter for scripted entities.
|
||||||||||||||||||||||||
| 29378 | 1 |
One-byte counter shared by Update_Crusher (increments on each crusher update) and script routine ScriptRoutine_TaskFourTickOfferItem (decrements toward zero). Not a pure frame counter: Update_Crusher advances it once per crusher call, and when the value reaches 3 that routine also sets bits 6 and 7 of EntityInteractionFlag.
|
||||||||||||||||||||||||
| 29379 | 1 |
Countdown timer for task-three creature behaviour.
|
||||||||||||||||||||||||
| 29380 | 1 |
State of the stove / heater prop.
|
||||||||||||||||||||||||
| 29381 | 1 |
Latch that triggers the next on-screen message.
|
||||||||||||||||||||||||
| 29382 | 1 |
Global frame counter advanced by the main loop.
|
||||||||||||||||||||||||
| 29383 | 1 |
State flags for the Bad Tempered Thing.
|
||||||||||||||||||||||||
| 29384 | 1 |
Lock that prevents Berk starting a new action until cleared.
|
||||||||||||||||||||||||
| 29385 | 5 |
Bit 7 marks a task slot as used. Task 5 is chosen separately at 44048.
|
||||||||||||||||||||||||
| 29390 | 1 |
Non-zero while a timed Drutt / trap door script is armed. Set to 1 by ScriptRoutine_StartDruttScript, written from an entity type at 44525, cleared by Update_Timed_Events, and tested by Update_Berk_State_ActiveTaskFrameTick / 47475 before those paths run.
|
||||||||||||||||||||||||
| 29391 | 2 |
Live script-data cursor while a task / entity script runs. Task updaters copy their dedicated script position (Pointer_TaskThreeScriptPosition / Pointer_DruttScriptPosition / Pointer_TaskTwoScriptPosition / Pointer_TaskFourScriptPosition / Pointer_ThingUpstairsScriptPosition / Pointer_BerkScriptPosition) here, call the shared runner, then write the (possibly advanced) cursor back.
|
||||||||||||||||||||||||
| 29393 | 2 |
Pointer into task-three script data.
|
||||||||||||||||||||||||
| 29395 | 2 |
Pointer into Drutt script data.
|
||||||||||||||||||||||||
| 29397 | 2 |
Pointer into task-two script data.
|
||||||||||||||||||||||||
| 29399 | 2 |
Pointer into task-four script data.
|
||||||||||||||||||||||||
| 29401 | 2 | |||||||||||||||||||||||||
| 29403 | 2 |
Pointer to the entity Berk is currently holding.
|
||||||||||||||||||||||||
| 29405 | 2 |
Current score.
|
||||||||||||||||||||||||
| 29407 | 9 |
Three 3-byte records used by Update_Collectibles Update Collectibles. Each record is a script-position word plus a per-slot counter; Update_Collectibles walks the table, copies a record through Pointer_ActiveScriptCursor / CollectibleCounter, calls Collect_Entity, then writes the updated values back.
|
||||||||||||||||||||||||
| 29416 | 1 |
Room index remembered by 60726 while Berk opens a door behind him. Also used by 44997 as the exclusive end address when measuring the CurrentTaskIndex…29415 game-state backup length into CopyLength_GameState.
|
||||||||||||||||||||||||
| 29417 | 1 |
Y-extent to restore onto a held entity. Written by 46808 as the collision partner's y−1 during Berk's put-down / pick-up probe; read and cleared by ScriptRoutine_PickUpHeld when applying the held entity's new y / y-extent.
|
||||||||||||||||||||||||
| 29418 | 1 |
Selects which display buffer is active when swapping primary / secondary.
|
||||||||||||||||||||||||
| 29419 | 1 |
Attribute used when printing messages.
|
||||||||||||||||||||||||
| 29420 | 1 |
Short countdown used by ScriptRoutine_BerkDoorBehind. Set to 1–2 at 60827 after a room change; while non-zero 60697 decrements it and skips the rest of that interaction pass.
|
||||||||||||||||||||||||
| 29421 | 1 |
Camera Y coordinate.
|
||||||||||||||||||||||||
| 29422 | 1 |
Camera X coordinate.
|
||||||||||||||||||||||||
| 29424 | 1 |
Task timer. Incremented at 44133. 44137 compares it with 160 for the timeout path. Update_Berk_State_AttrStripFromSeed also reads it for the status attribute strip. Reset to 0 at 44360. Not the pseudo-random seed at RandomSeedScratch.
|
||||||||||||||||||||||||
| 29425 | 1 |
Cleared at 58020 and loaded at 58054 from the byte at the address the message stream names. 44650 returns if it is zero. Otherwise each pass of the loop at Update_Timed_Events_HeldCountdownStep sets the bonus at Pointer_BerkHeldEntity, reprints it and calls Handle_Berk_Action.
|
||||||||||||||||||||||||
| 29426 | 1 |
Game tick counter.
|
||||||||||||||||||||||||
| 29427 | 2 |
High score.
|
||||||||||||||||||||||||
| 29429 | 2 |
Pointer to the current display-buffer base used while drawing layouts.
|
||||||||||||||||||||||||
| 29431 | 2 |
Base x/y character coordinates used while processing graphic layout data (H = x, L = y).
|
||||||||||||||||||||||||
| 29433 | 2 |
Pointer to the character set currently used for text output.
|
||||||||||||||||||||||||
| 29435 | 2 |
Pointer to the camera room origin used while drawing.
|
||||||||||||||||||||||||
| 29437 | 2 |
Script-data address saved by ScriptRoutine_StartScriptLoop so ScriptRoutine_EndScriptLoop (End Script Loop) can reload HL and repeat the body while ScriptLoopCounter remains non-zero.
|
||||||||||||||||||||||||
| 29439 | 2 |
Saved position in graphic layout data at the start of a loop (opcodes 238 / 239).
|
||||||||||||||||||||||||
| 29441 | 1 |
Remaining iterations for a script-level loop. Loaded from the operand of ScriptRoutine_StartScriptLoop; decremented by ScriptRoutine_EndScriptLoop until it hits zero.
|
||||||||||||||||||||||||
| 29442 | 1 |
Remaining iterations for the current graphic layout loop (opcodes 238 / 239).
|
||||||||||||||||||||||||
| 29443 | 1 |
Copy of Berk's X coordinate used by camera-follow logic.
|
||||||||||||||||||||||||
| 29444 | 1 |
Copy of the camera-follow entity's x-extent (IX+8), written by Update_Berk_Controller alongside BerkXCoordinateCopy. Not a Y coordinate.
|
||||||||||||||||||||||||
| 29445 | 1 |
Copy of Berk's room index used by camera-follow logic.
|
||||||||||||||||||||||||
| 29446 | 1 |
Index of the graphic set currently selected by graphic layout opcode 244. Written into the display buffer with each tile; Blit_DisplayBufferRow looks up the set base in Table_GraphicSetAddresses.
|
||||||||||||||||||||||||
| 29447 | 1 |
Attribute applied when printing menu / HUD text.
|
||||||||||||||||||||||||
| 29448 | 1 |
Attribute byte currently selected by graphic layout opcode 242. Written into the display buffer with each tile; 0 means "use the attribute from the graphic data".
|
||||||||||||||||||||||||
| 29449 | 1 |
Sound index queued by Queue_Sound for Play_QueuedSound (0 = idle). Bit 7 marks a force-queue from Queue_Sound.
|
||||||||||||||||||||||||
| 29450 | 1 |
Camera-follow delay countdown.
|
||||||||||||||||||||||||
| 44258 | 2 |
Saved base address of the Berk script table while Start_Berk_Script walks a random entry. Written on entry to Start_Berk_Script and reloaded when a candidate row is rejected.
|
||||||||||||||||||||||||
| 45017 | 2 |
Pointer used by Drutt / trap door animation routines.
|
||||||||||||||||||||||||
| 45019 | 1 |
Entity type remembered while Drutt's trap door animation runs (Update_Drutt).
|
||||||||||||||||||||||||
| 45085 | 1 |
Secondary state byte for Drutt's trap door animation (Reset_Trap_Door_Animation_State / Update_Drutt).
|
||||||||||||||||||||||||
| 53045 | 2 |
Pointer used while updating miscellaneous entities.
|
||||||||||||||||||||||||
| 55653 | 12 |
Per-task dialogue pointers indexed by Update_Bad_Tempered_Thing_Dialogue_IndexTable. Task 0 skips this table and uses 55245 instead.
|
||||||||||||||||||||||||
| 60012 | 1 |
Current border colour and EAR bit. Written by Set_BorderSpeakerState; read by Play_QueuedSound before each speaker toggle.
|
||||||||||||||||||||||||
| 60130 | 3 |
Three-byte scratch written by game start and read by the pseudo-random routine.
|
||||||||||||||||||||||||
| 62968 | 1 |
Player control bits, written by Read_PlayerControls.
|
||||||||||||||||||||||||
| 62969 | 2 |
Pointer into Table_ControlKeyCodes used while redefine-keys walks the control table.
|
||||||||||||||||||||||||
| 62978 | 1 |
Non-zero to read Kempston (31) in Read_PlayerControls; zero to use the keyboard table at Table_ControlKeyCodes.
|