diff options
Diffstat (limited to 'engine/overworld/pewter_guys.asm')
-rwxr-xr-x | engine/overworld/pewter_guys.asm | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm new file mode 100755 index 00000000..7c5779a2 --- /dev/null +++ b/engine/overworld/pewter_guys.asm @@ -0,0 +1,101 @@ +PewterGuys: ; 37ca1 (d:7ca1) + ld hl, $ccd3 + ld a, [$cd38] + dec a + ld [$cd38], a + ld d, 0 + ld e, a + add hl, de + ld d, h + ld e, l + ld hl, PointerTable_37ce6 + ld a, [$d12f] + add a + ld b, 0 + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [W_YCOORD] + ld b, a + ld a, [W_XCOORD] + ld c, a +.asm_37cc7 + ld a, [hli] + cp b + jr nz, .asm_37ce1 + ld a, [hli] + cp c + jr nz, .asm_37ce2 + ld a, [hli] + ld h, [hl] + ld l, a +.asm_37cd2 + ld a, [hli] + cp $ff + ret z + ld [de], a + inc de + ld a, [$cd38] + inc a + ld [$cd38], a + jr .asm_37cd2 +.asm_37ce1 + inc hl +.asm_37ce2 + inc hl + inc hl + jr .asm_37cc7 + +PointerTable_37ce6: ; 37ce6 (d:7ce6) + dw PewterMuseumGuyCoords + dw PewterGymGuyCoords + +; these are the four coordinates of the spaces below, above, to the left and +; to the right of the museum guy, and pointers to different movements for +; the player to make to get positioned before the main movement. +PewterMuseumGuyCoords: ; 37cea (d:7cea) + db 18, 27 + dw .down + db 16, 27 + dw .up + db 17, 26 + dw .left + db 17, 28 + dw .right + +.down + db $40, $40, $ff +.up + db $10, $20, $ff +.left + db $40, $10, $ff +.right + db $40, $20, $ff + +; these are the five coordinates which trigger the gym guy and pointers to +; different movements for the player to make to get positioned before the +; main movement +PewterGymGuyCoords: ; 37d06 (d:7d06) + db 16, 34 + dw .one + db 17, 35 + dw .two + db 18, 37 + dw .three + db 19, 37 + dw .four + db 17, 36 + dw .five + +.one + db $20, $80, $80, $10, $ff +.two + db $20, $80, $10, $20, $ff +.three + db $20, $20, $20, $00, $00, $00, $00, $00, $00, $00, $00, $ff +.four + db $20, $20, $40, $20, $ff +.five + db $20, $80, $20, $00, $00, $00, $00, $00, $00, $00, $00, $ff |