Prev: AFEB Up: Map Next: B05E
B01F: Routine at B01F
Used by the routine at EB10.
B01F LD C,A C=A.
B020 LD A,($A7EE) A=*Count_ScenicEvents.
B023 AND A Jump to B03D if *Count_ScenicEvents is zero.
B024 JR Z,$B03D
B026 LD B,A B=A.
B027 LD HL,($A7E2) HL=*Pointer_ScenicEventLocations.
B02A JR $B02D Jump to B02D.
B02C INC HL Increment HL by one.
B02D LD A,(HL) A=*HL.
B02E CALL ValidateItemPresent Call ValidateItemPresent.
B031 JR NZ,$B03B Jump to B03B if HL is not equal to A.
B033 PUSH HL Stash HL and BC on the stack.
B034 PUSH BC
B035 LD B,(HL) B=*HL.
B036 CALL $AF08 Call AF08.
B039 POP BC Restore BC and HL from the stack.
B03A POP HL
B03B DJNZ $B02C Decrease counter by one and loop back to B02C until counter is zero.
B03D LD A,C Write C to *CurrentRoom.
B03E LD ($A7C3),A
B041 LD A,($A787) A=*A787.
B044 AND A Return if *A787 is zero.
B045 RET Z
B046 LD B,$08 B=08.
B048 LD HL,$A788 HL=A788.
B04B LD C,A C=A.
B04C JR $B04F Jump to B04F.
B04E INC HL Increment HL by one.
B04F SRL C Shift C right.
B051 JR NC,$B05B Jump to B05B if HL is greater than or equal to A.
B053 LD A,(HL) A=*HL.
B054 PUSH HL Stash HL and BC on the stack.
B055 PUSH BC
B056 CALL Handler_UpdateItemEventCurrentRoom Call Handler_UpdateItemEventCurrentRoom.
B059 POP BC Restore BC and HL from the stack.
B05A POP HL
B05B DJNZ $B04E Decrease counter by one and loop back to B04E until counter is zero.
B05D RET Return.
View the equivalent code in The Jewels Of Babylon.
Prev: AFEB Up: Map Next: B05E