diff options
Diffstat (limited to 'scripts/pallettown.asm')
-rwxr-xr-x | scripts/pallettown.asm | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm new file mode 100755 index 00000000..e1b51cf6 --- /dev/null +++ b/scripts/pallettown.asm @@ -0,0 +1,228 @@ +PalletTownScript: ; 18e5b (6:4e5b) + ld a,[$D74B] + bit 4,a + jr z,.next + ld hl,$D747 + set 6,[hl] +.next + call EnableAutoTextBoxDrawing + ld hl,PalletTownScriptPointers + ld a,[W_PALLETTOWNCURSCRIPT] + jp CallFunctionInTable + +PalletTownScriptPointers: ; 18e73 (6:4e73) + dw PalletTownScript0 + dw PalletTownScript1 + dw PalletTownScript2 + dw PalletTownScript3 + dw PalletTownScript4 + dw PalletTownScript5 + dw PalletTownScript6 + +PalletTownScript0: ; 18e81 (6:4e81) + ld a,[$D747] + bit 0,a + ret nz + ld a,[W_YCOORD] + cp 1 ; is player near north exit? + ret nz + xor a + ld [H_CURRENTPRESSEDBUTTONS],a + ld a,4 + ld [$D528],a + ld a,$FF + call PlaySound ; stop music + ld a, BANK(Music_MeetProfOak) + ld c,a ; song bank + ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music + call PlayMusic ; plays music + ld a,$FC + ld [wJoypadForbiddenButtonsMask],a + ld hl,$D74B + set 7,[hl] + + ; trigger the next script + ld a,1 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript1: ; 18eb2 (6:4eb2) + xor a + ld [$CF0D],a + ld a,1 + ld [$FF8C],a + call DisplayTextID + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + ld a,0 + ld [$CC4D],a + ld a,$15 + call Predef + + ; trigger the next script + ld a,2 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript2: ; 18ed2 (6:4ed2) + ld a,1 + ld [$FF8C],a + ld a,4 + ld [$FF8D],a + call Func_34a6 + call Delay3 + ld a,1 + ld [W_YCOORD],a + ld a,1 + ld [$FF9B],a + ld a,1 + swap a + ld [$FF95],a + ld a,$22 + call Predef + ld hl,$FF95 + dec [hl] + ld a,$20 + call Predef ; load Oak’s movement into $CC97 + ld de,$CC97 + ld a,1 ; oak + ld [$FF8C],a + call MoveSprite + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + + ; trigger the next script + ld a,3 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript3: ; 18f12 (6:4f12) + ld a,[$D730] + bit 0,a + ret nz + xor a + ld [$C109],a + ld a,1 + ld [$CF0D],a + ld a,$FC + ld [wJoypadForbiddenButtonsMask],a + ld a,1 + ld [$FF8C],a + call DisplayTextID + ld a,$FF + ld [wJoypadForbiddenButtonsMask],a + ld a,1 + ld [$CF13],a + xor a + ld [$CF10],a + ld a,1 + ld [$CC57],a + ld a,[H_LOADEDROMBANK] + ld [$CC58],a + + ; trigger the next script + ld a,4 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript4: ; 18f4b (6:4f4b) + ld a,[$CC57] + and a + ret nz + + ; trigger the next script + ld a,5 + ld [W_PALLETTOWNCURSCRIPT],a + ret + +PalletTownScript5: ; 18f56 (6:4f56) + ld a,[$D74A] + bit 2,a + jr nz,.next + and 3 + cp 3 + jr nz,.next + ld hl,$D74A + set 2,[hl] + ld a,$27 + ld [$CC4D],a + ld a,$11 + call Predef + ld a,$28 + ld [$CC4D],a + ld a,$15 + jp Predef +.next + ld a,[$D74B] + bit 4,a + ret z + ld hl,$D74B + set 6,[hl] +PalletTownScript6: ; 18f87 (6:4f87) + ret + +PalletTownTextPointers: ; 18f88 (6:4f88) + dw PalletTownText1 + dw PalletTownText2 + dw PalletTownText3 + dw PalletTownText4 + dw PalletTownText5 + dw PalletTownText6 + dw PalletTownText7 + +PalletTownText1: ; 18f96 (6:4f96) + db 8 + ld a,[$CF0D] + and a + jr nz,.next + ld a,1 + ld [$CC3C],a + ld hl,OakAppearsText + jr .done +.next + ld hl,OakWalksUpText +.done + call PrintText + jp TextScriptEnd + +OakAppearsText: ; 18fb0 (6:4fb0) + TX_FAR _OakAppearsText + db 8 + ld c,10 + call DelayFrames + xor a + ld [$CD4F],a + ld [$CD50],a + ld a,$4C + call Predef ; display ! over head + ld a,4 + ld [$D528],a + jp TextScriptEnd + +OakWalksUpText: ; 18fce (6:4fce) + TX_FAR _OakWalksUpText + db "@" + +PalletTownText2: ; 0x18fd3 girl + TX_FAR _PalletTownText2 + db "@" + +PalletTownText3: ; 0x18fd8 fat man + TX_FAR _PalletTownText3 + db "@" + +PalletTownText4: ; 0x18fdd sign by lab + TX_FAR _PalletTownText4 + db "@" + +PalletTownText5: ; 0x18fe2 sign by fence + TX_FAR _PalletTownText5 + db "@" + +PalletTownText6: ; 0x18fe7 sign by Red’s house + TX_FAR _PalletTownText6 + db "@" + +PalletTownText7: ; 0x18fec sign by Blue’s house + TX_FAR _PalletTownText7 + db "@" |