Prev: F812 Up: Map Next: F879
F814: See if any food is in the current room, and display it if so
Used by the routine at 81AE.
F814 LD HL,($F812) Point HL at the next food.
F817 LD A,(IY+$0F) Get the current room in A.
F81A CP (HL) Is the food in this room?
F81B JR Z,$F823 Jump foward if there is.
F81D LD DE,$0015 Point to the second food table.
F820 ADD HL,DE
F821 CP (HL) Is the food in this room?
F822 RET NZ Return if it isn't - there's no food here.
There's food in the room, so draw it.
F823 INC HL Put the x co-ordinate in E.
F824 LD E,(HL)
F825 INC HL Put the y co-ordinate in D.
F826 LD D,(HL)
F827 INC HL Put the object number in B.
F828 LD A,(HL)
F829 LD B,A
F82A LD ($A838),DE Copy the position to the scratch buffer at A838.
F82E CALL $A83D Draw the food.
F831 LD A,(IY+$05) Put the x co-ordinate in A.
F834 SUB E Is it near enough the food?
F835 SUB $04
F837 CP $F8
F839 RET C Return if not.
F83A LD A,(IY+$0A) Get the y co-ordinate.
F83D SUB D Is it near enough the food?
F83E ADD A,$0C
F840 CP $F8
F842 RET C Return if not.
There's food here, and the player has picked it up.
F843 LD HL,($F812) Move HL to the next food entry.
F846 INC HL
F847 INC HL
F848 INC HL
F849 INC HL
F84A LD A,(HL) Is this the end of the list?
F84B CP $FF If so, set it back to the beginning. (F7E9)
F84D JR NZ,$F852
F84F LD HL,$F7E9
F852 LD ($F812),HL Store the next location of food back in memory.
F855 LD A,(IY+$19) Get the ID of favourite food for this player. (BC80)
F858 CP B Does it match the ID of this food?
F859 JR Z,$F864 If so, jump forward to restore endurance to full strength.
F85B LD A,(IY+$14) Get the endurance.
F85E ADD A,$20 Add 20 to a maximum of 80.
F860 CP $80
F862 JR C,$F866
F864 LD A,$80
F866 LD (IY+$14),A Store this new endurance value.
F869 CALL $E36D Update the endurance and lives display.
F86C LD BC,$643C Play a "picked up food" sound effect.
F86F LD DE,$0128
F872 LD HL,$0103
F875 CALL $E3D3
F878 RET Return.
Prev: F812 Up: Map Next: F879