123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- 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
|