summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-06-21 14:18:56 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-06-21 14:18:56 -0400
commit5297319feecdd7bada324d30bf23359317595800 (patch)
tree2ca9b276bdf24a009a9b29b47c94bf9adb57fce1
parentdef16f56d0212de6dc99f7b733fb190e3784aad9 (diff)
More overworld stuff
-rwxr-xr-xengine/specials.asm2
-rwxr-xr-xevent/overworld.asm (renamed from engine/overworld.asm)201
-rw-r--r--main.asm31
3 files changed, 224 insertions, 10 deletions
diff --git a/engine/specials.asm b/engine/specials.asm
index 22ea35f7..98f19abb 100755
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -13,7 +13,7 @@ Special:: ; c22b
ret
SpecialsPointers:
- add_special Function97a59
+ add_special WarpToSpawnPoint
add_special Function29b22
add_special Function29b4b
add_special Function29bcc
diff --git a/engine/overworld.asm b/event/overworld.asm
index f564a120..6f0eb121 100755
--- a/engine/overworld.asm
+++ b/event/overworld.asm
@@ -503,7 +503,7 @@ TrySurfOW::
.quit
xor a
ret
-;ca4b
+
AskSurfScript:
opentext
writetext AskSurfText
@@ -517,9 +517,204 @@ AskSurfText:
db "@"
FlyFunction:
+ call FieldMoveBufferReset
+.asm_ca5d
+ ld hl, .Jumptable
+ call DoFieldMoveAction
+ jr nc, .asm_ca5d
+ and $7f
+ ld [wFieldMoveSucceeded], a
+ ret
+
+.Jumptable
+ dw TryToFly
+ dw RunFlyScript
+ dw FailToFly
+
+TryToFly:
+ ld de, ENGINE_STORMBADGE
+ call FieldMoveBadgeCheck
+ jr c, .asm_caa4
+ call GetMapPermission
+ call CheckOutdoorMap
+ jr z, .asm_ca83
+ jr .asm_caa7
+
+.asm_ca83
+ xor a
+ ld [hMapAnims], a
+ call LoadStandardMenuDataHeader
+ call ClearSprites
+ ld a, $24
+ ld hl, $5a61
+ rst FarCall
+ ld a, e
+ cp $ff
+ jr z, .asm_caaa
+ cp $1c
+ jr nc, .asm_caaa
+ ld [wceec], a
+ call CloseWindow
+ ld a, $1
+ ret
+
+.asm_caa4
+ ld a, $82
+ ret
+
+.asm_caa7
+ ld a, $2
+ ret
+
+.asm_caaa
+ call CloseWindow
+ call WaitBGMap
+ ld a, $80
+ ret
+
+RunFlyScript:
+ ld hl, FlyScript
+ call QueueScript
+ ld a, $81
+ ret
+
+FailToFly:
+ call FieldMoveFailed
+ ld a, $82
+ ret
+
+FlyScript:
+ reloadmappart
+ callasm HideSprites
+ special UpdateTimePals
+ callasm FlyFromAnimation
+ farscall AbortBugCatchingContest
+ special WarpToSpawnPoint
+ callasm DelayLoadingNewSprites ; 1560c
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
+ newloadmap MAPSETUP_TELEPORT
+ callasm FlyToAnimation
+ special WaitSFX
+ special ReplacePlayerSprite
+ callasm Function1415c
+ end
+
+WaterfallFunction: ; caed
+ call TryWaterfall
+ and $7f
+ ld [wFieldMoveSucceeded], a
+ ret
+
+TryWaterfall: ; caf6 (3:4af6)
+ ld de, ENGINE_RISINGBADGE
+ callba FieldMoveBadgeCheck ; same bank
+ ld a, $80
+ ret c
+ call CheckMapCanWaterfall
+ jr c, .asm_cb10
+ ld hl, Script_WaterfallFromMenu
+ call QueueScript
+ ld a, $81
+ ret
+
+.asm_cb10
+ call FieldMoveFailed
+ ld a, $80
+ ret
+
+CheckMapCanWaterfall: ; cb16 (3:4b16)
+ ld a, [wPlayerDirection]
+ and $c
+ cp FACE_UP
+ jr nz, .asm_cb29
+ ld a, [wTileUp]
+ call CheckWaterfallTile
+ jr nz, .asm_cb29
+ xor a
+ ret
+
+.asm_cb29
+ scf
+ ret
+
+Script_WaterfallFromMenu: ;cb2b
+ reloadmappart
+ special UpdateTimePals
+Script_UsedWaterfall:
+ callasm FieldMoveGetPartyNick
+ writetext Text_UsedWaterfall
+ waitbutton
+ closetext
+ playsound SFX_BUBBLEBEAM
+.loop
+ applymovement 0, WaterfallStep
+ callasm CheckContinueWaterfall
+ iffalse .loop
+ end
+
+WaterfallStep:
+ turn_waterfall UP
+ step_end
+
+CheckContinueWaterfall: ;cb49
+ xor a
+ ld [wScriptVar], a
+ ld a, [wPlayerStandingTile]
+ call CheckWaterfallTile
+ ret z
+ ld a, $1
+ ld [wScriptVar], a
+ ret
+
+Text_UsedWaterfall:
+ text_jump Text_UsedWaterfall_
+ db "@"
+
+TryWaterfallOW:
+ ld d, WATERFALL
+ call FieldMovePartyCheck
+ jr c, .asm_cb7d
+ ld de, ENGINE_RISINGBADGE
+ call FieldMoveEngineFlagCheck
+ jr c, .asm_cb7d
+ call CheckMapCanWaterfall
+ jr c, .asm_cb7d
+ ld a, BANK(Script_AskWaterfall)
+ ld hl, Script_AskWaterfall
+ call CallScript
+ scf
+ ret
+
+.asm_cb7d
+ ld a, BANK(Script_CantDoWaterfall)
+ ld hl, Script_CantDoWaterfall
+ call CallScript
+ scf
+ ret
+
+Script_CantDoWaterfall:;cb87
+ jumptext Text_CantDoWaterfall
+
+Text_CantDoWaterfall:
+ text_jump Text_CantDoWaterfall_
+ db "@"
+
+Script_AskWaterfall:
+ opentext
+ writetext Text_AskUseWaterfall
+ yesorno
+ iftrue Script_UsedWaterfall
+ closetext
+ end
+
+Text_AskUseWaterfall:
+ text_jump Text_AskUseWaterfall_
+ db "@"
+
+EscapeRopeFunction:
IF DEF(GOLD)
- dr $ca5a, $d1e2
+ dr $cb9e, $d1e2
ENDC
IF DEF(SILVER)
- dr $ca58, $d1e0
+ dr $cb9c, $d1e0
ENDC
diff --git a/main.asm b/main.asm
index 3224b389..36104fda 100644
--- a/main.asm
+++ b/main.asm
@@ -404,7 +404,7 @@ FlagPredef:
ret
INCLUDE "engine/health.asm"
-INCLUDE "engine/overworld.asm"
+INCLUDE "event/overworld.asm"
ReceiveItem_::
IF DEF(GOLD)
@@ -539,7 +539,9 @@ GetTMHMMove::
NamingScreen_:
dr $11aa3, $11aad
NamingScreen:
- dr $11aad, $126fd
+ dr $11aad, $1269a
+AbortBugCatchingContest::
+ dr $1269a, $126fd
Function126fd:
dr $126fd, $12e33
@@ -591,7 +593,9 @@ CheckCutCollision:
TryLoadSaveFile: ; 14ef5
dr $14ef5, $15484
RunMapSetupScript::
- dr $15484, $15612
+ dr $15484, $1560c
+DelayLoadingNewSprites:
+ dr $1560c, $15612
Function15612:: ; 15612
dr $15612, $15871
Function15871:
@@ -968,7 +972,13 @@ BlindingFlash:
dr $8ca6b, $8cbb8
OWCutAnimation:
- dr $8cbb8, $8ce7c
+ dr $8cbb8, $8cd65
+
+FlyFromAnimation:
+ dr $8cd65, $8cdab
+
+FlyToAnimation:
+ dr $8cdab, $8ce7c
Function8ce7c:
dr $8ce7c, $8d174
@@ -1028,7 +1038,7 @@ ScriptEvents:: ; 96b91
CallCallback:: ; 97365
dr $97365, $97a59
-Function97a59:
+WarpToSpawnPoint:
dr $97a59, $97c2a
Function97c2a:: ; 97c2a
@@ -1366,7 +1376,16 @@ AlreadySurfingText_::
dr $194015, $19402d
AskSurfText_::
- dr $19402d, $195610
+ dr $19402d, $19404f
+
+Text_UsedWaterfall_::
+ dr $19404f, $194064
+
+Text_CantDoWaterfall_::
+ dr $194064, $194080
+
+Text_AskUseWaterfall_::
+ dr $194080, $195610
ClockTimeUnknownText_:: ; 195610
dr $195610, $195624