From 013dc271fb93ee3838a1ffa1c551bbf1ea16621c Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Thu, 23 Nov 2023 19:18:00 +0000 Subject: [PATCH] why why why why why won't you work I'm committing this for someone to have a look at my apparently-garbage code and figure out what I'm doing wrong because i CANNOT figure this out on my own --- data/maps/objects/SilphCo1F.asm | 1 + ram/wram.asm | 3 +- scripts/SilphCo1F.asm | 63 +++++++++++++++++++++++++++++++++ text/SilphCo1F.asm | 24 +++++++++++++ 4 files changed, 89 insertions(+), 2 deletions(-) diff --git a/data/maps/objects/SilphCo1F.asm b/data/maps/objects/SilphCo1F.asm index f09d9a5d..f8165ce7 100644 --- a/data/maps/objects/SilphCo1F.asm +++ b/data/maps/objects/SilphCo1F.asm @@ -12,5 +12,6 @@ SilphCo1F_Object: def_object_events object_event 4, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 1 ; person + object_event 14, 3, SPRITE_LINK_RECEPTIONIST, STAY, RIGHT, 2 ; person def_warps_to SILPH_CO_1F diff --git a/ram/wram.asm b/ram/wram.asm index ec6c69dd..63f62b1b 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2053,8 +2053,7 @@ wRocketHideoutB3FCurScript:: db wRocketHideoutB4FCurScript:: db wRoute6GateCurScript:: db wRoute8GateCurScript:: db -; wSilphCo1FCurScript:: db - ds 1 +wSilphCo1FCurScript:: db wCinnabarIslandCurScript:: db wPokemonMansion1FCurScript:: db wBrunswickGrottoCurScript:: db diff --git a/scripts/SilphCo1F.asm b/scripts/SilphCo1F.asm index bc484b7c..c0c39fe8 100644 --- a/scripts/SilphCo1F.asm +++ b/scripts/SilphCo1F.asm @@ -7,10 +7,73 @@ SilphCo1F_Script: ld a, HS_SILPH_CO_1F_RECEPTIONIST ld [wMissableObjectIndex], a predef_jump ShowObject + ld hl, SilphCo1F_ScriptPointers + ld a, [wSilphCo1FCurScript] + jp CallFunctionInTable + +SilphCo1F_ScriptPointers: + dw SilphCo1FScript0 + dw SilphCo1FScript1 + +SilphCo1FScript0: + call SilphCo1FScript_CheckForLetter + +SilphCo1FScript_CheckForLetter: + ld b, SILPHLETTER + call IsItemInBag + ret nz + ld a, [wYCoord] + cp 3 + ret nz + ld a, [wXCoord] + cp 15 + ret nz + ld a, PLAYER_DIR_LEFT + ld [wPlayerMovingDirection], a + ld a, $3 + ldh [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ldh [hJoyHeld], a + call SilphCo1FScript_ForceDown + ld a, $1 + ld [wSilphCo1FCurScript], a + ret + +SilphCo1FScript_ForceDown: + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpritePlayerStateData1FacingDirection], a + ld [wJoyIgnore], a + ret + +SilphCo1FScript1: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $0 + ld [wSilphCo1FCurScript], a + ret SilphCo1F_TextPointers: dw SilphCo1Text1 + dw SilphCo1Text2 + dw SilphCo1Text3 SilphCo1Text1: text_far _SilphCo1Text1 text_end + +SilphCo1Text2: + text_far _SilphCo1Text2 + text_end + +SilphCo1Text3: + text_far _SilphCo1Text3 + text_end + diff --git a/text/SilphCo1F.asm b/text/SilphCo1F.asm index 1ef80189..ec24d070 100644 --- a/text/SilphCo1F.asm +++ b/text/SilphCo1F.asm @@ -5,3 +5,27 @@ _SilphCo1Text1:: line "in the boardroom" cont "on 11F!" done + +_SilphCo1Text2:: + text "Past here is the" + line "SILPH GAUNTLET," + cont "a gathering of" + cont "some of KANTO's" + cont "best trainers!" + + para "I can only allow" + line "you in if you've" + cont "been invited by" + cont "CHIEF, though." + done + +_SilphCo1Text3:: + text "Excuse me, only" + line "trainers with a" + cont "special invite" + cont "are allowed in." + + para "Please come back" + line "once you have an" + cont "invite!" + done