Routines |
Prev: E9E2 | Up: Map | Next: EB05 |
Used by the routines at AllTreasureCollected, Handler_Explosion, Handler_Bomb, Handler_DisappearingFloors, Handler_Items, Handler_UnlockDoor, Handler_KeysAndLockedDoors and Handler_PortHole.
|
||||||||||||||||
PrintSprite | EA93 | PUSH HL | Stash HL on the stack. | |||||||||||||
EA94 | DEC A | Decrease A by one. | ||||||||||||||
EA95 | LD ($F336),A | Write A to *ActiveSpriteID. | ||||||||||||||
EA98 | LD A,E | Write E to *ActiveSpriteWidth. | ||||||||||||||
EA99 | LD ($F335),A | |||||||||||||||
PrintSprite_0 | EA9C | LD A,C | Jump to PrintSprite_3 if C is lower than 02. | |||||||||||||
EA9D | CP $02 | |||||||||||||||
EA9F | JP C,PrintSprite_3 | |||||||||||||||
EAA2 | LD A,($F335) | E=*ActiveSpriteWidth. | ||||||||||||||
EAA5 | LD E,A | |||||||||||||||
EAA6 | LD A,C | Jump to PrintSprite_5 if C is higher than 22. | ||||||||||||||
EAA7 | CP $22 | |||||||||||||||
EAA9 | JP NC,PrintSprite_5 | |||||||||||||||
PrintSprite_1 | EAAC | PUSH BC | Stash BC and DE on the stack. | |||||||||||||
EAAD | PUSH DE | |||||||||||||||
EAAE | CALL $0DD9 | Call CL_SET. | ||||||||||||||
EAB1 | POP DE | Restore DE from the stack. | ||||||||||||||
PrintSprite_2 | EAB2 | LD A,($F336) | Increment *ActiveSpriteID by one. | |||||||||||||
EAB5 | INC A | |||||||||||||||
EAB6 | LD ($F336),A | |||||||||||||||
EAB9 | CALL PrintColourCharacter | Call PrintColourCharacter. | ||||||||||||||
EABC | LD A,C | Call PrintSprite_4 if C is equal to 02. | ||||||||||||||
EABD | CP $02 | |||||||||||||||
EABF | CALL Z,PrintSprite_4 | |||||||||||||||
EAC2 | DEC C | Decrease C by one. | ||||||||||||||
EAC3 | DEC E | Decrease E by one. | ||||||||||||||
EAC4 | JR NZ,PrintSprite_2 | Jump to PrintSprite_2 until E is zero. | ||||||||||||||
EAC6 | POP BC | Restore BC from the stack. | ||||||||||||||
EAC7 | DEC D | Decrease D by one. | ||||||||||||||
EAC8 | JR Z,PrintSprite_3 | Jump to PrintSprite_3 if D is zero. | ||||||||||||||
EACA | DEC B | Decrease B by one. | ||||||||||||||
EACB | JR PrintSprite_0 | Jump to PrintSprite_0. | ||||||||||||||
PrintSprite_3 | EACD | POP HL | Restore HL from the stack. | |||||||||||||
EACE | RET | Return. | ||||||||||||||
PrintSprite_4 | EACF | DEC E | Decrease E by one. | |||||||||||||
EAD0 | PUSH AF | Stash AF on the stack. | ||||||||||||||
EAD1 | INC E | Increment E by one. | ||||||||||||||
EAD2 | LD A,($F336) | Increment *ActiveSpriteID by one. | ||||||||||||||
EAD5 | INC A | |||||||||||||||
EAD6 | LD ($F336),A | |||||||||||||||
EAD9 | POP AF | Restore AF from the stack. | ||||||||||||||
EADA | RET Z | Return if *ActiveSpriteID is zero. | ||||||||||||||
EADB | DEC E | Decrease E by one. | ||||||||||||||
EADC | JR PrintSprite_4 | Jump to PrintSprite_4. | ||||||||||||||
PrintSprite_5 | EADE | LD A,($F336) | Increment *ActiveSpriteID by one. | |||||||||||||
EAE1 | INC A | |||||||||||||||
EAE2 | LD ($F336),A | |||||||||||||||
EAE5 | DEC E | Decrease E by one. | ||||||||||||||
EAE6 | JP Z,PrintSprite_3 | Jump to PrintSprite_3 if E is zero. | ||||||||||||||
EAE9 | DEC C | Decrease C by one. | ||||||||||||||
EAEA | LD A,C | Jump to PrintSprite_1 if C is higher than 22. | ||||||||||||||
EAEB | CP $22 | |||||||||||||||
EAED | JR NC,PrintSprite_1 | |||||||||||||||
EAEF | JR PrintSprite_5 | Jump to PrintSprite_5. | ||||||||||||||
EAF1 | LD B,$18 | Clear the bottom 18 lines using CL_LINE. | ||||||||||||||
EAF3 | CALL $0E44 | |||||||||||||||
EAF6 | LD BC,$0640 | BC=0640. | ||||||||||||||
EAF9 | LD HL,$A1C4 | HL=BufferRoom. | ||||||||||||||
PrintSprite_6 | EAFC | XOR A | Write 00 to *HL. | |||||||||||||
EAFD | LD (HL),A | |||||||||||||||
EAFE | INC HL | Increment HL by one. | ||||||||||||||
EAFF | DEC BC | Decrease BC by one. | ||||||||||||||
EB00 | LD A,B | Jump to PrintSprite_6 until BC is zero. | ||||||||||||||
EB01 | OR C | |||||||||||||||
EB02 | JR NZ,PrintSprite_6 | |||||||||||||||
EB04 | RET | Return. |
Prev: E9E2 | Up: Map | Next: EB05 |