Prev: 56832 Up: Map Next: 56951
56857: Game Entry Point
GameEntryPoint 56857 CALL SelectionScreen Call SelectionScreen.
56860 CALL PlayTelecastIntro Call PlayTelecastIntro.
56863 XOR A Set the border colour to BLACK.
56864 OUT (254),A
56866 CALL MonsterDefaults Call MonsterDefaults.
56869 CALL InitialiseNewGame Call InitialiseNewGame.
GameStartLevel 56872 CALL 57030 Call 57030.
56875 LD A,(57156) A=*CurrentLevel.
56878 CALL FindScene Call FindScene.
Game loop.
GameLoop 56881 CALL Controls_PauseQuit Call Controls_PauseQuit.
Is the game still in-play?
56884 LD A,(54269) Jump to GameEntryPoint if *Game_State is not zero.
56887 AND A
56888 JR NZ,GameEntryPoint
56890 XOR A Write 0 to FRAMES.
56891 LD (23672),A
Check each monster state. If any are "in-play" then jump to Game_InPlay. If not, we cycle back round to GameEntryPoint.
Is George still in-play?
56894 LD A,(53202) Jump to Game_InPlay if *George_State is not equal to 255 (in-play).
56897 CP 255
56899 JR NZ,Game_InPlay
Is Lizzy still in-play?
56901 LD A,(53249) Jump to Game_InPlay if *Lizzy_State is not equal to 255 (in-play).
56904 CP 255
56906 JR NZ,Game_InPlay
Is Ralph still in-play?
56908 LD A,(53296) Jump to GameEntryPoint if *Ralph_State is equal to 255 (in-play).
56911 CP 255
56913 JR Z,GameEntryPoint
The game is in-play so run the handlers until the level is completed.
Game_InPlay 56915 LD A,(54259) Jump to RunHandlers until *BuildingsRemainingCount is zero - until all the buildings have collapsed.
56918 AND A
56919 JR NZ,RunHandlers
Keep running the handlers for a short while even though all the buildings have collapsed. It would be a bit jarring if the level stopped instantly after the last building rubble cleared.s
56921 LD A,(53782) A=*LevelFinishedCountdown.
56924 DEC A Decrease *LevelFinishedCountdown by one.
56925 LD (53782),A
56928 JR NZ,RunHandlers Jump to RunHandlers until A is zero.
Level complete! Move onto the next level.
56930 LD A,(57156) A=*CurrentLevel.
56933 INC A Increment level number by one.
Check to see if all levels (40 in total) have been played, if so loop back to level 1.
56934 CP 41 Jump to WriteLevelNumber if A is not equal to 41.
56936 JR NZ,WriteLevelNumber
Else cycle back to level 1 again.
56938 LD A,1 A=level 1.
WriteLevelNumber 56940 LD (57156),A Write level number to *CurrentLevel.
56943 CALL PlayTelecastIntro Call PlayTelecastIntro.
56946 CALL MonsterDefaults Call MonsterDefaults.
56949 JR GameStartLevel Jump to GameStartLevel.
Prev: 56832 Up: Map Next: 56951