_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