ref: bb1bf5e6a7536378dffc2b995384d6dc8692bea8
dir: /scripts/seafoamislands4.asm/
SeafoamIslands4Script: call EnableAutoTextBoxDrawing ld hl, wFlags_0xcd60 bit 7, [hl] res 7, [hl] jr z, .asm_465dc ld hl, Seafoam4HolesCoords call CheckBoulderCoords ret nc EventFlagAddress hl, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE ld a, [wCoordIndex] cp $1 jr nz, .asm_465b8 SetEventReuseHL EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_1 ld [wObjectToHide], a ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_1 ld [wObjectToShow], a jr .asm_465c4 .asm_465b8 SetEventAfterBranchReuseHL EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_2 ld [wObjectToHide], a ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_2 ld [wObjectToShow], a .asm_465c4 ld a, [wObjectToHide] ld [wMissableObjectIndex], a predef HideObject ld a, [wObjectToShow] ld [wMissableObjectIndex], a predef ShowObject jr .asm_465ed .asm_465dc ld a, $a2 ld [wDungeonWarpDestinationMap], a ld hl, Seafoam4HolesCoords call IsPlayerOnDungeonWarp ld a, [wd732] bit 4, a ret nz .asm_465ed ld hl, SeafoamIslands4ScriptPointers ld a, [wSeafoamIslands4CurScript] jp CallFunctionInTable Seafoam4HolesCoords: db $10,$03 db $10,$06 db $ff SeafoamIslands4ScriptPointers: dw SeafoamIslands4Script0 dw SeafoamIslands4Script1 dw SeafoamIslands4Script2 dw SeafoamIslands4Script3 SeafoamIslands4Script0: CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ret z ld a, [wYCoord] cp $8 ret nz ld a, [wXCoord] cp $f ret nz ld hl, wSimulatedJoypadStatesEnd ld de, RLEMovement46632 call DecodeRLEList dec a ld [wSimulatedJoypadStatesIndex], a call StartSimulatingJoypadStates ld hl, wFlags_D733 set 2, [hl] ld a, $1 ld [wSeafoamIslands4CurScript], a ret RLEMovement46632: db D_DOWN,6 db D_RIGHT,5 db D_DOWN,3 db $ff SeafoamIslands4Script1: ld a, [wSimulatedJoypadStatesIndex] and a ret nz ld a, $0 ld [wSeafoamIslands4CurScript], a ret SeafoamIslands4Script2: CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ret z ld a, [wXCoord] cp $12 jr z, .asm_4665e cp $13 ld a, $0 jr nz, .asm_4667b ld de, RLEData_4667f jr .asm_46661 .asm_4665e ld de, RLEData_46688 .asm_46661 ld hl, wSimulatedJoypadStatesEnd call DecodeRLEList dec a ld [wSimulatedJoypadStatesIndex], a xor a ld [wSpriteStateData2 + $06], a ld hl, wd730 set 7, [hl] ld hl, wFlags_D733 set 2, [hl] ld a, $3 .asm_4667b ld [wSeafoamIslands4CurScript], a ret RLEData_4667f: db D_DOWN,$06 db D_RIGHT,$02 db D_DOWN,$04 db D_LEFT,$01 db $FF RLEData_46688: db D_DOWN,$06 db D_RIGHT,$02 db D_DOWN,$04 db $FF SeafoamIslands4Script3: ld a, [wSimulatedJoypadStatesIndex] and a ret nz ld a, $0 ld [wSeafoamIslands4CurScript], a ret SeafoamIslands4TextPointers: dw BoulderText dw BoulderText dw BoulderText dw BoulderText dw BoulderText dw BoulderText