diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-22 15:22:58 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-22 15:22:58 -0400 |
commit | b5a7e7de3e6b75e95967edd28b9c2af5959cd136 (patch) | |
tree | 85cc2f9f78c92b077179eab012c58ad8145394c6 /engine | |
parent | 212846af57d1878bb2c6964fbeababd9de03a195 (diff) |
Factor out tables into data/overworld/
Fixes #749
Diffstat (limited to 'engine')
-rw-r--r-- | engine/events/engine_flags.asm | 2 | ||||
-rw-r--r-- | engine/events/specials.asm | 2 | ||||
-rw-r--r-- | engine/events/std_scripts.asm | 59 | ||||
-rw-r--r-- | engine/overworld/scripting.asm | 173 | ||||
-rw-r--r-- | engine/overworld/variables.asm | 79 |
5 files changed, 28 insertions, 287 deletions
diff --git a/engine/events/engine_flags.asm b/engine/events/engine_flags.asm index 4099dfda5..aebbacdc1 100644 --- a/engine/events/engine_flags.asm +++ b/engine/events/engine_flags.asm @@ -80,4 +80,4 @@ EngineFlagAction:: ld [de], a ret -INCLUDE "data/engine_flags.asm" +INCLUDE "data/events/engine_flags.asm" diff --git a/engine/events/specials.asm b/engine/events/specials.asm index c914e2d63..28cf2dd13 100644 --- a/engine/events/specials.asm +++ b/engine/events/specials.asm @@ -13,7 +13,7 @@ Special:: rst FarCall ret -INCLUDE "data/special_pointers.asm" +INCLUDE "data/events/special_pointers.asm" DummySpecial_c224: ret diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm index 597ac9df0..e2799f2bb 100644 --- a/engine/events/std_scripts.asm +++ b/engine/events/std_scripts.asm @@ -1,61 +1,4 @@ -add_stdscript: MACRO -\1StdScript:: - dba \1 -ENDM - -StdScripts:: - add_stdscript PokecenterNurseScript - add_stdscript DifficultBookshelfScript - add_stdscript PictureBookshelfScript - add_stdscript MagazineBookshelfScript - add_stdscript TeamRocketOathScript - add_stdscript IncenseBurnerScript - add_stdscript MerchandiseShelfScript - add_stdscript TownMapScript - add_stdscript WindowScript - add_stdscript TVScript - add_stdscript HomepageScript ; unused - add_stdscript Radio1Script - add_stdscript Radio2Script - add_stdscript TrashCanScript - add_stdscript StrengthBoulderScript - add_stdscript SmashRockScript - add_stdscript PokecenterSignScript - add_stdscript MartSignScript - add_stdscript GoldenrodRocketsScript - add_stdscript RadioTowerRocketsScript - add_stdscript ElevatorButtonScript - add_stdscript DayToTextScript - add_stdscript BugContestResultsWarpScript - add_stdscript BugContestResultsScript - add_stdscript InitializeEventsScript - add_stdscript AskNumber1MScript - add_stdscript AskNumber2MScript - add_stdscript RegisteredNumberMScript - add_stdscript NumberAcceptedMScript - add_stdscript NumberDeclinedMScript - add_stdscript PhoneFullMScript - add_stdscript RematchMScript - add_stdscript GiftMScript - add_stdscript PackFullMScript - add_stdscript RematchGiftMScript - add_stdscript AskNumber1FScript - add_stdscript AskNumber2FScript - add_stdscript RegisteredNumberFScript - add_stdscript NumberAcceptedFScript - add_stdscript NumberDeclinedFScript - add_stdscript PhoneFullFScript - add_stdscript RematchFScript - add_stdscript GiftFScript - add_stdscript PackFullFScript - add_stdscript RematchGiftFScript - add_stdscript GymStatue1Script - add_stdscript GymStatue2Script - add_stdscript ReceiveItemScript - add_stdscript ReceiveTogepiEggScript - add_stdscript PCScript - add_stdscript GameCornerCoinVendorScript - add_stdscript HappinessCheckScript +INCLUDE "data/events/std_scripts.asm" PokecenterNurseScript: ; EVENT_WELCOMED_TO_POKECOM_CENTER is never set diff --git a/engine/overworld/scripting.asm b/engine/overworld/scripting.asm index 483a18ee6..5ddb8f327 100644 --- a/engine/overworld/scripting.asm +++ b/engine/overworld/scripting.asm @@ -61,178 +61,7 @@ RunScriptCommand: rst JumpTable ret -ScriptCommandTable: -; entries correspond to *_command constants (see macros/scripts/events.asm) - dw Script_scall ; 00 - dw Script_farscall ; 01 - dw Script_memcall ; 02 - dw Script_sjump ; 03 - dw Script_farsjump ; 04 - dw Script_memjump ; 05 - dw Script_ifequal ; 06 - dw Script_ifnotequal ; 07 - dw Script_iffalse ; 08 - dw Script_iftrue ; 09 - dw Script_ifgreater ; 0a - dw Script_ifless ; 0b - dw Script_jumpstd ; 0c - dw Script_callstd ; 0d - dw Script_callasm ; 0e - dw Script_special ; 0f - dw Script_memcallasm ; 10 - dw Script_checkmapscene ; 11 - dw Script_setmapscene ; 12 - dw Script_checkscene ; 13 - dw Script_setscene ; 14 - dw Script_setval ; 15 - dw Script_addval ; 16 - dw Script_random ; 17 - dw Script_checkver ; 18 - dw Script_readmem ; 19 - dw Script_writemem ; 1a - dw Script_loadmem ; 1b - dw Script_readvar ; 1c - dw Script_writevar ; 1d - dw Script_loadvar ; 1e - dw Script_giveitem ; 1f - dw Script_takeitem ; 20 - dw Script_checkitem ; 21 - dw Script_givemoney ; 22 - dw Script_takemoney ; 23 - dw Script_checkmoney ; 24 - dw Script_givecoins ; 25 - dw Script_takecoins ; 26 - dw Script_checkcoins ; 27 - dw Script_addcellnum ; 28 - dw Script_delcellnum ; 29 - dw Script_checkcellnum ; 2a - dw Script_checktime ; 2b - dw Script_checkpoke ; 2c - dw Script_givepoke ; 2d - dw Script_giveegg ; 2e - dw Script_givepokemail ; 2f - dw Script_checkpokemail ; 30 - dw Script_checkevent ; 31 - dw Script_clearevent ; 32 - dw Script_setevent ; 33 - dw Script_checkflag ; 34 - dw Script_clearflag ; 35 - dw Script_setflag ; 36 - dw Script_wildon ; 37 - dw Script_wildoff ; 38 - dw Script_xycompare ; 39 - dw Script_warpmod ; 3a - dw Script_blackoutmod ; 3b - dw Script_warp ; 3c - dw Script_getmoney ; 3d - dw Script_getcoins ; 3e - dw Script_getnum ; 3f - dw Script_getmonname ; 40 - dw Script_getitemname ; 41 - dw Script_getcurlandmarkname ; 42 - dw Script_gettrainername ; 43 - dw Script_getstring ; 44 - dw Script_itemnotify ; 45 - dw Script_pocketisfull ; 46 - dw Script_opentext ; 47 - dw Script_refreshscreen ; 48 - dw Script_closetext ; 49 - dw Script_writeunusedbytebuffer ; 4a - dw Script_farwritetext ; 4b - dw Script_writetext ; 4c - dw Script_repeattext ; 4d - dw Script_yesorno ; 4e - dw Script_loadmenu ; 4f - dw Script_closewindow ; 50 - dw Script_jumptextfaceplayer ; 51 - dw Script_farjumptext ; 52 - dw Script_jumptext ; 53 - dw Script_waitbutton ; 54 - dw Script_promptbutton ; 55 - dw Script_pokepic ; 56 - dw Script_closepokepic ; 57 - dw Script__2dmenu ; 58 - dw Script_verticalmenu ; 59 - dw Script_loadpikachudata ; 5a - dw Script_randomwildmon ; 5b - dw Script_loadtemptrainer ; 5c - dw Script_loadwildmon ; 5d - dw Script_loadtrainer ; 5e - dw Script_startbattle ; 5f - dw Script_reloadmapafterbattle ; 60 - dw Script_catchtutorial ; 61 - dw Script_trainertext ; 62 - dw Script_trainerflagaction ; 63 - dw Script_winlosstext ; 64 - dw Script_scripttalkafter ; 65 - dw Script_endifjustbattled ; 66 - dw Script_checkjustbattled ; 67 - dw Script_setlasttalked ; 68 - dw Script_applymovement ; 69 - dw Script_applymovementlasttalked ; 6a - dw Script_faceplayer ; 6b - dw Script_faceobject ; 6c - dw Script_variablesprite ; 6d - dw Script_disappear ; 6e - dw Script_appear ; 6f - dw Script_follow ; 70 - dw Script_stopfollow ; 71 - dw Script_moveobject ; 72 - dw Script_writeobjectxy ; 73 - dw Script_loademote ; 74 - dw Script_showemote ; 75 - dw Script_turnobject ; 76 - dw Script_follownotexact ; 77 - dw Script_earthquake ; 78 - dw Script_changemapblocks ; 79 - dw Script_changeblock ; 7a - dw Script_reloadmap ; 7b - dw Script_reloadmappart ; 7c - dw Script_writecmdqueue ; 7d - dw Script_delcmdqueue ; 7e - dw Script_playmusic ; 7f - dw Script_encountermusic ; 80 - dw Script_musicfadeout ; 81 - dw Script_playmapmusic ; 82 - dw Script_dontrestartmapmusic ; 83 - dw Script_cry ; 84 - dw Script_playsound ; 85 - dw Script_waitsfx ; 86 - dw Script_warpsound ; 87 - dw Script_specialsound ; 88 - dw Script_autoinput ; 89 - dw Script_newloadmap ; 8a - dw Script_pause ; 8b - dw Script_deactivatefacing ; 8c - dw Script_prioritysjump ; 8d - dw Script_warpcheck ; 8e - dw Script_stopandsjump ; 8f - dw Script_endcallback ; 90 - dw Script_end ; 91 - dw Script_reloadend ; 92 - dw Script_endall ; 93 - dw Script_pokemart ; 94 - dw Script_elevator ; 95 - dw Script_trade ; 96 - dw Script_askforphonenumber ; 97 - dw Script_phonecall ; 98 - dw Script_hangup ; 99 - dw Script_describedecoration ; 9a - dw Script_fruittree ; 9b - dw Script_specialphonecall ; 9c - dw Script_checkphonecall ; 9d - dw Script_verbosegiveitem ; 9e - dw Script_verbosegiveitemvar ; 9f - dw Script_swarm ; a0 - dw Script_halloffame ; a1 - dw Script_credits ; a2 - dw Script_warpfacing ; a3 - dw Script_battletowertext ; a4 - dw Script_getlandmarkname ; a5 - dw Script_gettrainerclassname ; a6 - dw Script_getname ; a7 - dw Script_wait ; a8 - dw Script_checksave ; a9 +INCLUDE "data/overworld/scripting.asm" StartScript: ld hl, wScriptFlags diff --git a/engine/overworld/variables.asm b/engine/overworld/variables.asm index 321665ad5..9274d13d3 100644 --- a/engine/overworld/variables.asm +++ b/engine/overworld/variables.asm @@ -6,7 +6,7 @@ _GetVarAction:: .valid ld c, a ld b, 0 - ld hl, .VarActionTable + ld hl, VarActionTable add hl, bc add hl, bc add hl, bc @@ -17,100 +17,68 @@ _GetVarAction:: ld b, [hl] ld a, b and RETVAR_EXECUTE - jr nz, .call + jr nz, .call_de ld a, b and RETVAR_ADDR_DE ret nz ld a, [de] - jr .loadstringbuffer2 + jr LoadStringBuffer2 -.call +.call_de call _de_ ret -.loadstringbuffer2 +LoadStringBuffer2: ld de, wStringBuffer2 ld [de], a ret -.VarActionTable: -; entries correspond to VAR_* constants - ; RETVAR_STRBUF2: copy [de] to wStringBuffer2 - ; RETVAR_ADDR_DE: return address in de - ; RETVAR_EXECUTE: call function - dwb wStringBuffer2, RETVAR_STRBUF2 - dwb wPartyCount, RETVAR_STRBUF2 - dwb .BattleResult, RETVAR_EXECUTE - dwb wBattleType, RETVAR_ADDR_DE - dwb wTimeOfDay, RETVAR_STRBUF2 - dwb .CountCaughtMons, RETVAR_EXECUTE - dwb .CountSeenMons, RETVAR_EXECUTE - dwb .CountBadges, RETVAR_EXECUTE - dwb wPlayerState, RETVAR_ADDR_DE - dwb .PlayerFacing, RETVAR_EXECUTE - dwb hHours, RETVAR_STRBUF2 - dwb .DayOfWeek, RETVAR_EXECUTE - dwb wMapGroup, RETVAR_STRBUF2 - dwb wMapNumber, RETVAR_STRBUF2 - dwb .UnownCaught, RETVAR_EXECUTE - dwb wEnvironment, RETVAR_STRBUF2 - dwb .BoxFreeSpace, RETVAR_EXECUTE - dwb wBugContestMinsRemaining, RETVAR_STRBUF2 - dwb wXCoord, RETVAR_STRBUF2 - dwb wYCoord, RETVAR_STRBUF2 - dwb wSpecialPhoneCallID, RETVAR_STRBUF2 - dwb wNrOfBeatenBattleTowerTrainers, RETVAR_STRBUF2 - dwb wKurtApricornQuantity, RETVAR_STRBUF2 - dwb wCurCaller, RETVAR_ADDR_DE - dwb wBlueCardBalance, RETVAR_ADDR_DE - dwb wBuenasPassword, RETVAR_ADDR_DE - dwb wKenjiBreakTimer, RETVAR_STRBUF2 - dwb NULL, RETVAR_STRBUF2 +INCLUDE "data/overworld/variables.asm" -.CountCaughtMons: +Var_CountCaughtMons: ; Caught mons. ld hl, wPokedexCaught ld b, wEndPokedexCaught - wPokedexCaught call CountSetBits ld a, [wNumSetBits] - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.CountSeenMons: +Var_CountSeenMons: ; Seen mons. ld hl, wPokedexSeen ld b, wEndPokedexSeen - wPokedexSeen call CountSetBits ld a, [wNumSetBits] - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.CountBadges: +Var_CountBadges: ; Number of owned badges. ld hl, wBadges ld b, 2 call CountSetBits ld a, [wNumSetBits] - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.PlayerFacing: +Var_PlayerFacing: ; The direction the player is facing. ld a, [wPlayerDirection] and $c rrca rrca - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.DayOfWeek: +Var_DayOfWeek: ; The day of the week. call GetWeekday - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.UnownCaught: +Var_UnownCaught: ; Number of unique Unown caught. call .count_unown ld a, b - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.count_unown +.count_unown: ld hl, wUnownDex ld b, 0 .loop @@ -123,7 +91,7 @@ _GetVarAction:: jr c, .loop ret -.BoxFreeSpace: +Var_BoxFreeSpace: ; Remaining slots in the current box. ld a, BANK(sBoxCount) call OpenSRAM @@ -133,9 +101,10 @@ _GetVarAction:: ld b, a call CloseSRAM ld a, b - jp .loadstringbuffer2 + jp LoadStringBuffer2 -.BattleResult: +Var_BattleResult: +; Outcome of the last battle. ld a, [wBattleResult] and $ff ^ BATTLERESULT_BITMASK - jp .loadstringbuffer2 + jp LoadStringBuffer2 |