Prev: 54098 Up: Map Next: 54486
54377: Start Game
Used by the routine at Game_Loop.
The game always starts with the cursor inside the home box.
This is position 2/ 2:
cursor-02-02
StartGame 54377 LD A,2 Write 2 to:
54379 LD (55344),A
54382 LD (55345),A
54385 LD (55342),A
54388 LD (55343),A
Tile 9 is the home box:
tile-ids
Set the players starting tile.
54391 LD A,9 Write 9 to *PlayerCursor_TileID.
54393 LD (55348),A
Spend a life to play the game.
54396 LD HL,55335 HL=Lives.
54399 DEC (HL) Decrease *HL by one.
54400 JP Z,GameOver Jump to GameOver if the player is out of lives.
54403 LD HL,55354 Write 0 to *Time.
54406 LD (HL),0
54408 CALL Draw_TimeBar Call Draw_TimeBar.
The life icons are static, drawn from Data_PlayareaSurround, in order to display the correct number of lives - we paint them to be the same PAPER/ INK colour as their background.
54411 LD HL,(55410) HL=*LifeIcons_ScreenPosition.
First; hide the top part of the icon.
54414 LD (HL),45 Write INK: CYAN, PAPER: CYAN to *HL.
54416 INC HL Increment HL by one.
54417 LD (HL),45 Write INK: CYAN, PAPER: CYAN to *HL.
54419 INC HL Increment HL by one.
54420 LD (55410),HL Update the icon position marker at *LifeIcons_ScreenPosition.
Move down one line, and left two character blocks.
54423 LD DE,30 HL+=0030.
54426 ADD HL,DE
Lastly; colour the bottom part of the icon.
54427 LD (HL),45 Write INK: CYAN, PAPER: CYAN to *HL.
54429 INC HL Increment HL by one.
54430 LD (HL),45 Write INK: CYAN, PAPER: CYAN to *HL.
54432 LD HL,55354 HL=Time.
54435 SET 0,(HL) Set bit 0 of *HL.
This entry point is used by the routine at 54098.
StartGame_0 54437 LD A,(55354) A=*Time.
54440 AND %11110001 Keep only bits 0, 4-7.
54442 LD (55354),A Write A to *Time.
54445 LD A,(55344) Write *StorageCursor_Y_Position to *DestinationCursor_Y_Position.
54448 LD (55340),A
54451 LD A,(55345) Write *StorageCursor_X_Position to *DestinationCursor_X_Position.
54454 LD (55341),A
54457 LD A,(55332) Write *Timer_Crack_13 to *55346.
54460 LD (55346),A
54463 LD A,(55349) Jump to StartGame_1 if *PlayerCursor_Flag is not equal to 0.
54466 CP 0
54468 JR NZ,StartGame_1
54470 LD A,(55348) Jump to StartGame_1 if *PlayerCursor_TileID is equal to 9.
54473 CP 9
54475 JR Z,StartGame_1
54477 CALL Display_PlayerCursor Call Display_PlayerCursor.
StartGame_1 54480 CALL Handler_IsLevelComplete Call Handler_IsLevelComplete.
54483 JP 54098 Jump to 54098.
Prev: 54098 Up: Map Next: 54486