![]() |
Routines |
| Prev: 8C8C | Up: Map | Next: 8D32 |
|
The handler for sprite $66, and the mirror of DYING: +$06 counts up instead of down and the sprite rises. It is what runs at the start of a game as well as after a death, which is why the player's sprite byte reads $66 for several seconds before a new game is really under way -- and why CHECK_HIT, which only counts sprites below $31 as a player, cannot register a hit during it.
|
||||
| MATERIALISING | 8CB7 | LD A,($5E3C) | For the first 104 frames of a life the score flashes instead (FLASH_COUNT, set by PLACE_PLAYER). | |
| 8CBA | AND A | |||
| 8CBB | JR NZ,FLASH_SCORE | |||
| 8CBD | LD A,($5C78) | One step in four frames. | ||
| 8CC0 | AND $03 | |||
| 8CC2 | JP NZ,ANIMATE_COLOUR | |||
| 8CC5 | INC (IX+$06) | Up a little further. | ||
| 8CC8 | LD A,(IX+$07) | |||
| 8CCB | CALL SPRITE_ADDRESS | |||
| 8CCE | LD A,(DE) | |||
| 8CCF | CP (IX+$06) | At the top, so become a player again. | ||
| 8CD2 | JR Z,FINISH_MATERIALISING | |||
|
This entry point is used by the routine at DYING.
|
||||
| ANIMATE_SHAPE | 8CD4 | PUSH DE | ||
| 8CD5 | PUSH HL | |||
| 8CD6 | LD B,H | |||
| 8CD7 | LD C,L | |||
| 8CD8 | LD A,(IX+$04) | |||
| 8CDB | LD (IX+$02),A | |||
| 8CDE | SUB (IX+$06) | |||
| 8CE1 | LD (IX+$04),A | |||
| 8CE4 | LD L,(IX+$06) | |||
| 8CE7 | LD H,$00 | |||
| 8CE9 | ADD HL,HL | |||
| 8CEA | ADD HL,DE | |||
| 8CEB | LD A,H | |||
| 8CEC | LD (BC),A | |||
| 8CED | DEC BC | |||
| 8CEE | LD A,L | |||
| 8CEF | LD (BC),A | |||
| 8CF0 | PUSH HL | |||
| 8CF1 | LD C,(HL) | |||
| 8CF2 | LD B,(IX+$00) | |||
| 8CF5 | PUSH BC | |||
| 8CF6 | LD (HL),$01 | |||
| 8CF8 | LD A,(IX+$07) | |||
| 8CFB | LD (IX+$00),A | |||
| 8CFE | CALL DRAW_THING | |||
| 8D01 | POP BC | |||
| 8D02 | POP HL | |||
| 8D03 | LD (HL),C | |||
| 8D04 | LD (IX+$00),B | |||
| 8D07 | LD A,(IX+$02) | |||
| 8D0A | LD (IX+$04),A | |||
| 8D0D | POP HL | |||
| 8D0E | POP DE | |||
| 8D0F | LD (HL),D | |||
| 8D10 | DEC HL | |||
| 8D11 | LD (HL),E | |||
|
This entry point is used by the routine at DYING.
|
||||
| ANIMATE_COLOUR | 8D12 | LD A,(IX+$05) | ||
| 8D15 | PUSH AF | |||
| 8D16 | LD A,($5C78) | |||
| 8D19 | RRCA | |||
| 8D1A | RRCA | |||
| 8D1B | AND $07 | |||
| 8D1D | JR NZ,MATERIALISING_0 | |||
| 8D1F | INC A | |||
| MATERIALISING_0 | 8D20 | OR $40 | ||
| 8D22 | LD (IX+$05),A | |||
| 8D25 | LD A,(IX+$06) | |||
| 8D28 | CALL DRAW_AT_A | |||
| 8D2B | POP AF | |||
| 8D2C | LD (IX+$05),A | |||
| 8D2F | JP SOUND_RISE_SINK | |||
| Prev: 8C8C | Up: Map | Next: 8D32 |