diff options
author | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-21 14:18:56 -0400 |
---|---|---|
committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-21 14:18:56 -0400 |
commit | 5297319feecdd7bada324d30bf23359317595800 (patch) | |
tree | 2ca9b276bdf24a009a9b29b47c94bf9adb57fce1 | |
parent | def16f56d0212de6dc99f7b733fb190e3784aad9 (diff) |
More overworld stuff
-rwxr-xr-x | engine/specials.asm | 2 | ||||
-rwxr-xr-x | event/overworld.asm (renamed from engine/overworld.asm) | 201 | ||||
-rw-r--r-- | main.asm | 31 |
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 @@ -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 |