Routines |
Prev: CE41 | Up: Map | Next: D05B |
Used by the routine at GoldfishGame.
|
||||
The player has hit a sprite, let's see what it is.
|
||||
GoldfishGame_Collision | CFF6 | LD A,($DC0E) | C=*GoldfishGame_PlayerAttributes. | |
CFF9 | LD C,A | |||
CFFA | LD A,(IX+$00) | A=*IX+00. | ||
CFFD | SUB (IX+$07) | A-=*GoldfishGame_PlayerWidth. | ||
D000 | INC A | Increment A by one. | ||
D001 | SUB C | A-=C. | ||
D002 | CP $02 | Jump to GoldfishGame_NextCreature if A is higher than 02. | ||
D004 | JR NC,GoldfishGame_NextCreature | |||
D006 | PUSH IX | Stash IX on the stack. | ||
D008 | LD HL,$0064 | HL=0064. | ||
D00B | LD DE,$0064 | DE=0064. | ||
D00E | CALL $03B5 | Call BEEPER. | ||
D011 | POP IX | Restore IX from the stack. | ||
D013 | LD A,(IX+$08) | Jump to GoldfishGame_HitCreature if *IX+08 is not equal to 01. | ||
D016 | CP $01 | |||
D018 | JR NZ,GoldfishGame_HitCreature | |||
The player has caught a fish! Add it to the count and remove it from the screen.
|
||||
GoldfishGame_CaughtFish | D01A | LD A,($DB42) | Increment *GoldfishGame_FishCaught by one. | |
D01D | INC A | |||
D01E | LD ($DB42),A | |||
D021 | LD C,(IX+$00) | C=Horizontal position (*IX+00). | ||
D024 | LD B,(IX+$01) | B=Vertical position (*IX+01). | ||
D027 | LD E,(IX+$07) | E=*IX+07. | ||
D02A | LD D,(IX+$08) | D=*IX+08. | ||
D02D | LD A,(IX+$02) | Jump to GoldfishGame_Collision_0 if *IX+02 is equal to 03. | ||
D030 | CP $03 | |||
D032 | JR Z,GoldfishGame_Collision_0 | |||
D034 | INC E | Increment E by one. | ||
GoldfishGame_Collision_0 | D035 | LD HL,$9F6C | Write 9F6C (Graphics_MaskSprite) to *CHARS. | |
D038 | LD ($5C36),HL | |||
D03B | LD A,$20 | A=20. | ||
D03D | CALL GoldfishGame_PrintSprite | Call GoldfishGame_PrintSprite. | ||
D040 | LD (IX+$0A),$00 | Write inactive (00) to *IX+0A. | ||
D044 | JP GoldfishGame_NextCreature | Jump to GoldfishGame_NextCreature. | ||
When any sea creature touches you they steal all of your fish.
|
||||
GoldfishGame_HitCreature | D047 | XOR A | Write 00 to *GoldfishGame_FishCaught. | |
D048 | LD ($DB42),A | |||
D04B | PUSH IX | Stash IX on the stack. | ||
D04D | LD HL,$00C8 | HL=00C8. | ||
D050 | LD DE,$0032 | DE=0032. | ||
D053 | CALL $03B5 | Call BEEPER. | ||
D056 | POP IX | Restore IX from the stack. | ||
D058 | JP GoldfishGame_NextCreature | Jump to GoldfishGame_NextCreature. |
Prev: CE41 | Up: Map | Next: D05B |