Prev: 633B Up: Map Next: 641D
638C: Main loop (1)
Used by the routine at 6490.
638C LD A,($60B1) Does this level have a pit?
638F CP $00
6391 JR NZ,$639F Jump forward if not.
6393 LD A,($60C4) Does this level have bells?
6396 CP $00
6398 JR NZ,$639F Jump forward if not.
639A CALL $677A Draw the bells and jump forward.
639D JR $63A2
639F CALL $70CA Check for any collision.
63A2 LD A,($609F) Did Quasimodo collide or fall off anything?
63A5 CP $00
63A7 JP NZ,$6831 Jump forward if so to lose a life.
63AA LD A,($60BF) Is Quasimodo on the rope?
63AD CP $00
63AF JP NZ,$6465 Move forward if so.
63B2 LD A,($607F) Is Quasimodo's Y co-ordinate near an object?
63B5 LD HL,$6082
63B8 CP (HL)
63B9 JR NZ,$63CE Jump forward if not.
63BB LD HL,$6083 Is Quasimodo's X co-ordinate near an object?
63BE LD A,($6080)
63C1 CP (HL)
63C2 JR NZ,$63CE Jump forward if not.
63C4 LD HL,$6084 Is Quasimodo's sub-frame near an object?
63C7 LD A,($6081)
63CA CP (HL)
63CB JP Z,$6490 Jump forward if so and see if there was a collision.
63CE NOP
63CF LD A,($60C5) Has Quasimodo grabbed a bell?
63D2 CP $00
63D4 JR Z,$63E0 Jump forward if so.
63D6 LD A,($60C6) Do objects need updating?
63D9 CP $01
63DB JP Z,$6490 Jump forward if so.
63DE JR $63E8 Otherwise continue.
63E0 LD A,($60C6) Do objects need updating when Quasimodo is on a bell?
63E3 CP $01
63E5 JP Z,$6E73 Jump forward if so.
63E8 LD A,($6083) Draw the next object.
63EB LD E,A
63EC LD A,($6082)
63EF LD D,A
63F0 LD A,($6084)
63F3 LD C,A
63F4 LD A,$04
63F6 CALL $B798
63F9 LD A,($6083)
63FC LD E,A
63FD LD A,($6082)
6400 ADD A,$10
6402 LD D,A
6403 LD A,($6084)
6406 ADD A,$04
6408 LD C,A
6409 LD A,$04
640B CALL $B798
640E LD A,($60C5) Has Quasimodo grabbed a bell?
6411 CP $00
6413 JR Z,$641D If not, re-draw
6415 LD A,$01 Mark objects as needing updating.
6417 LD ($60C6),A
641A JP $6E45 Jump forward.
Prev: 633B Up: Map Next: 641D