Prev: F330 Up: Map Next: F375
F334: Room logic : The Zoo
F334 LD A,$08 Touching a banana drops endurance by 8.
F336 LD ($F26E),A
F339 LD IX,$F327 Point IX at the data for this room.
F33D LD BC,$F330 Set the bounds.
F340 CALL $EF35 Update moving objects.
F343 LD A,(IX+$00) Get the current object ID. (8F78)
F346 INC A Increment it.
F347 CP $64 Is it now 40?
F349 JR NZ,$F34D Skip the next bit if not.
F34B LD A,$60 Otherwise reset to ID 60.
F34D LD (IX+$00),A Set the new object ID.
F350 CALL $A83D Draw the object.
F353 INC IX Move to the next position in the buffer.
F355 CALL $EF35 Update moving objects.
F358 LD A,$64 Point A at the object ID for the banana. (8FF8)
F35A CALL $A83D Draw the object.
F35D CALL $E329 Check for collision detection.
F360 LD A,(IX-$01) Get the Y direction change.
F363 CP $FE Is it now trying to move upwards?
F365 RET NZ Return if so.
The banana has hit the boundary, instead of reversing direction, draw it again from the start.
F366 LD (IX-$03),$6E Set the Y co-ordinate back to 6E.
F36A LD (IX-$01),$02 Set the direction change back to 2 downwards.
F36E LD A,(IX-$09) Set the X co-ordinate to the same as the monkey, so it looks like the monkey has directly thrown the banana.
F371 LD (IX-$04),A
F374 RET Return.
Prev: F330 Up: Map Next: F375