diff options
author | yenatch <yenatch@gmail.com> | 2018-04-04 21:04:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 21:04:14 -0400 |
commit | fe4377ce532d1fea1b28d2c52e4f62f0ca702a30 (patch) | |
tree | 6ce2635ce57ff2735839235e3061e7f3009cfe5d /engine/overworld/variables.asm | |
parent | 0c446367ce79dfe2a26f4bd7668036477811a279 (diff) | |
parent | 38107209a6ad431b399cc36405c0af8b5babf5ef (diff) |
Merge pull request #501 from mid-kid/reorg
Organize the engine/ directory
Diffstat (limited to 'engine/overworld/variables.asm')
-rw-r--r-- | engine/overworld/variables.asm | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/engine/overworld/variables.asm b/engine/overworld/variables.asm new file mode 100644 index 000000000..89026fdba --- /dev/null +++ b/engine/overworld/variables.asm @@ -0,0 +1,151 @@ +_GetVarAction:: ; 80648 (20:4648) + ld a, c + cp NUM_VARS + jr c, .valid + xor a +.valid + ld c, a + ld b, 0 + ld hl, .VarActionTable + add hl, bc + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld b, [hl] + ld a, b + and RETVAR_EXECUTE + jr nz, .call + ld a, b + and RETVAR_ADDR_DE + ret nz + ld a, [de] + jr .loadstringbuffer2 + +.call + call _de_ + ret + +.loadstringbuffer2 ; 8066c (20:466c) + ld de, wStringBuffer2 + ld [de], a + ret +; 80671 (20:4671) + +.VarActionTable: ; 80671 +; 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 wCurrentCaller, RETVAR_ADDR_DE + dwb wBlueCardBalance, RETVAR_ADDR_DE + dwb wBuenasPassword, RETVAR_ADDR_DE + dwb wKenjiBreakTimer, RETVAR_STRBUF2 + dwb NULL, RETVAR_STRBUF2 +; 806c5 + +.CountCaughtMons: ; 806c5 +; Caught mons. + ld hl, wPokedexCaught + ld b, wEndPokedexCaught - wPokedexCaught + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806d3 + +.CountSeenMons: ; 806d3 +; Seen mons. + ld hl, wPokedexSeen + ld b, wEndPokedexSeen - wPokedexSeen + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806e1 + +.CountBadges: ; 806e1 +; Number of owned badges. + ld hl, wBadges + ld b, 2 + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806ef + +.PlayerFacing: ; 806ef +; The direction the player is facing. + ld a, [wPlayerDirection] + and $c + rrca + rrca + jp .loadstringbuffer2 +; 806f9 + +.DayOfWeek: ; 806f9 +; The day of the week. + call GetWeekday + jp .loadstringbuffer2 +; 806ff + +.UnownCaught: ; 806ff +; Number of unique Unown caught. + call .count + ld a, b + jp .loadstringbuffer2 + +.count + ld hl, wUnownDex + ld b, 0 +.loop + ld a, [hli] + and a + ret z + inc b + ld a, b + cp NUM_UNOWN + jr c, .loop + ret +; 80715 + +.BoxFreeSpace: ; 80715 +; Remaining slots in the current box. + ld a, BANK(sBoxCount) + call GetSRAMBank + ld hl, sBoxCount + ld a, MONS_PER_BOX + sub [hl] + ld b, a + call CloseSRAM + ld a, b + jp .loadstringbuffer2 +; 80728 + +.BattleResult: ; 80728 + ld a, [wBattleResult] + and $3f + jp .loadstringbuffer2 +; 80730 |