Prev: F64D Up: Map Next: F6FD
F6A6: Hide any blocking walls if sufficient coal has been picked up
Used by the routine at F7C7.
F6A6 DI Turn off interrupts.
F6A7 LD IX,$F7D1 Point IX at the data for disappearing walls at F7D1.
F6AB LD A,($9649) Get the current room (9649).
F6AE CP $06 Is it room 06?
F6B0 JR Z,$F6D0 Yes, so jump forward.
F6B2 CP $0B It is room 0B?
F6B4 JR Z,$F6DC Yes, so jump forward.
F6B6 CP $0F Is it room 0F?
F6B8 JR Z,$F6E8 Yes, so jump forward.
F6BA CP $14 Is it room 14?
F6BC JR NZ,$F6F4 No, so jump forward.
Handle wall in room 14.
F6BE LD C,$04
F6C0 LD HL,$7718
F6C3 BIT 2,(IX+$00)
F6C7 RET NZ
Hide the wall if enough coal is collected.
F6C8 BIT 0,(IX+$00) Is there a wall here?
F6CC CALL NZ,$F71A Hide if it there is.
F6CF RET
Handle wall in room 06.
F6D0 LD C,$07 Set C to the length.
F6D2 LD HL,$9710 Set HL to the position.
F6D5 BIT 5,(IX+$00) Return if the wall shouldn't be opened yet.
F6D9 RET NZ
F6DA JR $F6C8 Jump forward to open it.
Handle wall in room 0B.
F6DC LD C,$05 Set C to the length.
F6DE LD HL,$8F14 Set HL to the position.
F6E1 BIT 4,(IX+$00) Return if the wall shouldn't be opened yet.
F6E5 RET NZ
F6E6 JR $F6C8 Jump forward to open it.
Handle wall in room 0F.
F6E8 LD C,$05 Set C to the length.
F6EA LD HL,$471F Set HL to the position.
F6ED BIT 3,(IX+$00) Return if the wall shouldn't be opened yet.
F6F1 RET NZ
F6F2 JR $F6C8 Jump forward to open it.
Handle any other room.
F6F4 LD A,(IX+$00) Turn off bits 0, 1, 6 and 7 on the wall flags and return.
F6F7 AND $3C
F6F9 LD (IX+$00),A
F6FC RET
Prev: F64D Up: Map Next: F6FD