From d001ced41b53271373753de835a9c3b3413dc318 Mon Sep 17 00:00:00 2001 From: vulcandth Date: Thu, 13 Jul 2023 20:27:56 -0500 Subject: Add macros, constants, and labels for map scripts and text (#367) This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified. --- scripts/PalletTown.asm | 116 +++++++++++++++++++++++++------------------------ 1 file changed, 59 insertions(+), 57 deletions(-) (limited to 'scripts/PalletTown.asm') diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm index 5c26fc55..dd898ac6 100644 --- a/scripts/PalletTown.asm +++ b/scripts/PalletTown.asm @@ -9,15 +9,16 @@ PalletTown_Script: jp CallFunctionInTable PalletTown_ScriptPointers: - dw PalletTownScript0 - dw PalletTownScript1 - dw PalletTownScript2 - dw PalletTownScript3 - dw PalletTownScript4 - dw PalletTownScript5 - dw PalletTownScript6 - -PalletTownScript0: + def_script_pointers + dw_const PalletTownDefaultScript, SCRIPT_PALLETTOWN_DEFAULT + dw_const PalletTownOakHeyWaitScript, SCRIPT_PALLETTOWN_OAK_HEY_WAIT + dw_const PalletTownOakWalksToPlayerScript, SCRIPT_PALLETTOWN_OAK_WALKS_TO_PLAYER + dw_const PalletTownOakNotSafeComeWithMeScript, SCRIPT_PALLETTOWN_OAK_NOT_SAFE_COME_WITH_ME + dw_const PalletTownPlayerFollowsOakScript, SCRIPT_PALLETTOWN_PLAYER_FOLLOWS_OAK + dw_const PalletTownDaisyScript, SCRIPT_PALLETTOWN_DAISY + dw_const PalletTownNoopScript, SCRIPT_PALLETTOWN_NOOP + +PalletTownDefaultScript: CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB ret nz ld a, [wYCoord] @@ -33,34 +34,34 @@ PalletTownScript0: ld c, a ld a, MUSIC_MEET_PROF_OAK ; "oak appears" music call PlayMusic - ld a, $FC + ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ld [wJoyIgnore], a SetEvent EVENT_OAK_APPEARED_IN_PALLET ; trigger the next script - ld a, 1 + ld a, SCRIPT_PALLETTOWN_OAK_HEY_WAIT ld [wPalletTownCurScript], a ret -PalletTownScript1: +PalletTownOakHeyWaitScript: xor a ld [wcf0d], a - ld a, 1 + ld a, TEXT_PALLETTOWN_OAK ldh [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $FF + ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ld [wJoyIgnore], a ld a, HS_PALLET_TOWN_OAK ld [wMissableObjectIndex], a predef ShowObject ; trigger the next script - ld a, 2 + ld a, SCRIPT_PALLETTOWN_OAK_WALKS_TO_PLAYER ld [wPalletTownCurScript], a ret -PalletTownScript2: - ld a, 1 +PalletTownOakWalksToPlayerScript: + ld a, PALLETTOWN_OAK ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP ldh [hSpriteFacingDirection], a @@ -78,18 +79,18 @@ PalletTownScript2: dec [hl] predef FindPathToPlayer ; load Oak's movement into wNPCMovementDirections2 ld de, wNPCMovementDirections2 - ld a, 1 ; oak + ld a, PALLETTOWN_OAK ldh [hSpriteIndex], a call MoveSprite - ld a, $FF + ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ld [wJoyIgnore], a ; trigger the next script - ld a, 3 + ld a, SCRIPT_PALLETTOWN_OAK_NOT_SAFE_COME_WITH_ME ld [wPalletTownCurScript], a ret -PalletTownScript3: +PalletTownOakNotSafeComeWithMeScript: ld a, [wd730] bit 0, a ret nz @@ -97,15 +98,15 @@ PalletTownScript3: ld [wSpritePlayerStateData1FacingDirection], a ld a, 1 ld [wcf0d], a - ld a, $FC + ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ld [wJoyIgnore], a - ld a, 1 + ld a, TEXT_PALLETTOWN_OAK ldh [hSpriteIndexOrTextID], a call DisplayTextID ; set up movement script that causes the player to follow Oak to his lab - ld a, $FF + ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ld [wJoyIgnore], a - ld a, 1 + ld a, PALLETTOWN_OAK ld [wSpriteIndex], a xor a ld [wNPCMovementScriptFunctionNum], a @@ -115,21 +116,21 @@ PalletTownScript3: ld [wNPCMovementScriptBank], a ; trigger the next script - ld a, 4 + ld a, SCRIPT_PALLETTOWN_PLAYER_FOLLOWS_OAK ld [wPalletTownCurScript], a ret -PalletTownScript4: +PalletTownPlayerFollowsOakScript: ld a, [wNPCMovementScriptPointerTableNum] and a ; is the movement script over? ret nz ; trigger the next script - ld a, 5 + ld a, SCRIPT_PALLETTOWN_DAISY ld [wPalletTownCurScript], a ret -PalletTownScript5: +PalletTownDaisyScript: CheckEvent EVENT_DAISY_WALKING jr nz, .next CheckBothEventsSet EVENT_GOT_TOWN_MAP, EVENT_ENTERED_BLUES_HOUSE, 1 @@ -145,35 +146,36 @@ PalletTownScript5: CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK ret z SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 -PalletTownScript6: +PalletTownNoopScript: ret PalletTown_TextPointers: - dw PalletTownText1 - dw PalletTownText2 - dw PalletTownText3 - dw PalletTownText4 - dw PalletTownText5 - dw PalletTownText6 - dw PalletTownText7 - -PalletTownText1: + def_text_pointers + dw_const PalletTownOakText, TEXT_PALLETTOWN_OAK + dw_const PalletTownGirlText, TEXT_PALLETTOWN_GIRL + dw_const PalletTownFisherText, TEXT_PALLETTOWN_FISHER + dw_const PalletTownOaksLabSignText, TEXT_PALLETTOWN_OAKSLAB_SIGN + dw_const PalletTownSignText, TEXT_PALLETTOWN_SIGN + dw_const PalletTownPlayersHouseSignText, TEXT_PALLETTOWN_PLAYERSHOUSE_SIGN + dw_const PalletTownRivalsHouseSignText, TEXT_PALLETTOWN_RIVALSHOUSE_SIGN + +PalletTownOakText: text_asm ld a, [wcf0d] and a jr nz, .next ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, OakAppearsText + ld hl, .HeyWaitDontGoOutText jr .done .next - ld hl, OakWalksUpText + ld hl, .ItsUnsafeText .done call PrintText jp TextScriptEnd -OakAppearsText: - text_far _OakAppearsText +.HeyWaitDontGoOutText: + text_far _PalletTownOakHeyWaitDontGoOutText text_asm ld c, 10 call DelayFrames @@ -185,30 +187,30 @@ OakAppearsText: ld [wPlayerMovingDirection], a jp TextScriptEnd -OakWalksUpText: - text_far _OakWalksUpText +.ItsUnsafeText: + text_far _PalletTownOakItsUnsafeText text_end -PalletTownText2: ; girl - text_far _PalletTownText2 +PalletTownGirlText: + text_far _PalletTownGirlText text_end -PalletTownText3: ; fat man - text_far _PalletTownText3 +PalletTownFisherText: + text_far _PalletTownFisherText text_end -PalletTownText4: ; sign by lab - text_far _PalletTownText4 +PalletTownOaksLabSignText: + text_far _PalletTownOaksLabSignText text_end -PalletTownText5: ; sign by fence - text_far _PalletTownText5 +PalletTownSignText: + text_far _PalletTownSignText text_end -PalletTownText6: ; sign by Red's house - text_far _PalletTownText6 +PalletTownPlayersHouseSignText: + text_far _PalletTownPlayersHouseSignText text_end -PalletTownText7: ; sign by Blue's house - text_far _PalletTownText7 +PalletTownRivalsHouseSignText: + text_far _PalletTownRivalsHouseSignText text_end -- cgit v1.3.1-sl0p