Prev: F491 Up: Map Next: F4D2
F49D: Room logic : The Work Shed
F49D LD A,$06 Touching a moving object drops endurance by 6.
F49F LD ($F26E),A
F4A2 LD IX,$F491 Point IX at the movement table. (F491)
F4A6 LD B,$03 3 objects to draw.
F4A8 PUSH BC Store the count in BC.
F4A9 LD BC,$F2F7 Point BC at the bounds table. (F2F7)
F4AC CALL $EF35 Update moving objects.
F4AF LD A,D Get the Y co-ordinate.
F4B0 CP $FE Is it FE ie: off screen?
F4B2 JR NZ,$F4C6 Jump forward if it isn't.
A hammer has moved off screen, so recreate it.
F4B4 LD (IX-$01),$02 Set the direction in y to +2.
F4B8 LD (IX-$03),$40 Set the y co-ordinate to 40 ie: top of screen.
F4BC LD A,R Set the x co-ordinate to a random location between 38 and B6 rounded to the nearest even number.
F4BE AND $3F
F4C0 ADD A,A
F4C1 ADD A,$38
F4C3 LD (IX-$04),A
F4C6 LD A,$34 Use object ID #$34 (hammer) (89F8)
F4C8 CALL $A8A0 Draw the object.
F4CB CALL $E329 Check for collision detection.
F4CE POP BC Restore BC.
F4CF DJNZ $F4A8 Loop while there are more objects to draw.
F4D1 RET Otherwise return.
Prev: F491 Up: Map Next: F4D2