![]() |
Routines |
Prev: 28363 | Up: Map | Next: 28432 |
Used by the routines at HandlerAccelerate and 28210.
|
||||||||||
DrawGaugeLine | 28382 | SRL A | C=A / 4. | |||||||
28384 | SRL A | |||||||||
28386 | LD C,A | |||||||||
Decrease gauge count by 8 and keep looping around until what's left is < 8 - then handle this part separately.
|
||||||||||
DrawGaugeLine_Loop | 28387 | LD A,C | A=gauge count - 8. | |||||||
28388 | SUB 8 | |||||||||
28390 | JR C,DrawGaugeScreen_Last | If gauge count < 8 then jump to DrawGaugeScreen_Last. | ||||||||
28392 | LD C,A | C=gauge count. | ||||||||
28393 | LD A,255 | A=255 (a full line of pixels to write to the screen). | ||||||||
28395 | CALL DrawGaugeScreen | Call DrawGaugeScreen. | ||||||||
28398 | JR DrawGaugeLine_Loop | Jump to DrawGaugeLine_Loop. | ||||||||
Handles drawing the last section of the gauge level.
|
||||||||||
DrawGaugeScreen_Last | 28400 | LD B,0 | Create an offset in BC (B=0 C=gauge count). | |||||||
28402 | PUSH HL | Stash the gauge screen location temporarily. | ||||||||
28403 | LD HL,28423 | HL=GaugeData + offset. | ||||||||
28406 | ADD HL,BC | |||||||||
28407 | LD A,(HL) | A=gauge data. | ||||||||
28408 | POP HL | Restore the gauge screen location from the stack. | ||||||||
28409 | CALL DrawGaugeScreen | Call DrawGaugeScreen. | ||||||||
28412 | XOR A | A=0 (no pixels - i.e. masking). | ||||||||
Writes A to the screen.
|
||||||||||
DrawGaugeScreen | 28413 | PUSH HL | Stash the gauge screen location temporarily. | |||||||
28414 | LD B,7 | B=7 (counter for number of lines to draw). | ||||||||
DrawGaugeScreen_Loop | 28416 | LD (HL),A | Write A to the screen location held by HL. | |||||||
28417 | INC H | Increment H by one to move onto the next row. | ||||||||
28418 | DJNZ DrawGaugeScreen_Loop | Decrease counter by one and loop back to DrawGaugeScreen_Loop until counter is zero. | ||||||||
28420 | POP HL | Restore the original gauge screen location from the stack. | ||||||||
28421 | INC L | Increment L by one to move onto the next column. | ||||||||
28422 | RET | Return. | ||||||||
Gauge data; each value corresponds to a "full" line for 9 decreasing values. This completes the "end" section when drawing a gauge line.
|
||||||||||
GaugeData | 28423 | DEFB 0 | ![]() |
|||||||
28424 | DEFB 128 | |||||||||
28425 | DEFB 192 | |||||||||
28426 | DEFB 224 | |||||||||
28427 | DEFB 240 | |||||||||
28428 | DEFB 248 | |||||||||
28429 | DEFB 252 | |||||||||
28430 | DEFB 254 | |||||||||
28431 | DEFB 255 |
Prev: 28363 | Up: Map | Next: 28432 |