![]() |
Routines |
Prev: 53856 | Up: Map | Next: 54078 |
Used by the routine at GoldfishGame.
|
||||
Only remove air every 16th frame.
|
||||
GoldfishGame_AirBar | 54002 | LD A,(55613) | A=*GoldfishGame_BuoyancyCounter. | |
54005 | AND %00001111 | Only proceed every 16th frame, otherwise return. | ||
54007 | RET NZ | |||
This entry point is used by the routines at GoldfishGame and GoldfishGame_RefillOxygen.
|
||||
GoldfishGame_PrintAirBar | 54008 | LD HL,53806 | Write 53806 (UDG_AirBar) to *CHARS. | |
54011 | LD (23606),HL | |||
Set the co-ordinates of where we're going to PRINT AT.
|
||||
54014 | LD B,2 | Set up the screen buffer location 21/2 using CL_SET. | ||
54016 | LD C,21 | |||
54018 | CALL 3545 | |||
Set the attributes.
|
||||
54021 | LD A,16 | Set INK: RED (2). | ||
54023 | RST 16 | |||
54024 | LD A,2 | |||
54026 | RST 16 | |||
54027 | LD A,17 | Set PAPER: CYAN (5). | ||
54029 | RST 16 | |||
54030 | LD A,5 | |||
54032 | RST 16 | |||
54033 | LD A,(54078) | Is *GoldfishGame_OxygenLevel zero? | ||
54036 | CP 0 | |||
54038 | PUSH AF | Stash the current oxygen level on the stack. | ||
54039 | CALL Z,GoldfishGame_DropFish | Call GoldfishGame_DropFish if the current oxygen level is zero. | ||
54042 | POP AF | Restore the current oxygen level from the stack. | ||
54043 | JR Z,GoldfishGame_PrintNoAirBar | Jump to GoldfishGame_PrintNoAirBar if the current oxygen level is zero. | ||
The player has air, so deplete it here.
|
||||
54045 | DEC A | Decrease the current oxygen level by one, and write it back to *GoldfishGame_OxygenLevel. | ||
54046 | LD (54078),A | |||
Now draw a visual representation of the air level to the screen.
|
||||
54049 | LD B,A | B=the current oxygen level+1 (as a counter for drawing the air bar). | ||
54050 | INC B | |||
54051 | LD A,32 | A=UDG_AirBar (32). | ||
GoldfishGame_PrintAirBar_Loop | 54053 | PUSH AF | Stash the air bar UDG reference on the stack. | |
54054 | RST 16 | Print to the screen using RST 16. | ||
54055 | POP AF | Restore the air bar UDG reference from the stack. | ||
54056 | DJNZ GoldfishGame_PrintAirBar_Loop | Decrease the air bar counter by one and loop back to GoldfishGame_PrintAirBar_Loop until the counter is zero. | ||
Print some empty space to mask off the end of the air bar.
|
||||
GoldfishGame_PrintNoAirBar | 54058 | LD A,33 | A=UDG_NoAirBar (33). | |
54060 | RST 16 | Print to the screen using RST 16. | ||
54061 | RET | Return. | ||
UDG_AirBar | 54062 | DEFB 0,0,255,255,255,255,0,0 |
|
|
UDG_NoAirBar | 54070 | DEFB 0,0,0,0,0,0,0,0 |
|
Prev: 53856 | Up: Map | Next: 54078 |