summaryrefslogtreecommitdiff
path: root/engine/variables.asm
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-06-19 11:46:23 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-06-19 11:46:23 -0400
commitbbbb70988a068ca26f47f9b08810949f7ea355cb (patch)
tree80741310f79597cd2f5e9de7accbd78ba2a04002 /engine/variables.asm
parent0aaa72da6207fab00075df3287e83404f0af18fd (diff)
engine/variables.asm
Diffstat (limited to 'engine/variables.asm')
-rwxr-xr-xengine/variables.asm119
1 files changed, 119 insertions, 0 deletions
diff --git a/engine/variables.asm b/engine/variables.asm
new file mode 100755
index 00000000..e352499f
--- /dev/null
+++ b/engine/variables.asm
@@ -0,0 +1,119 @@
+GetVarAction_::
+ 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 jp_de
+ ret
+
+.loadstringbuffer2
+ ld de, wStringBuffer2
+ ld [de], a
+ ret
+
+.VarActionTable:
+ dwb wStringBuffer2, RETVAR_STRBUF2
+ dwb $da22, RETVAR_STRBUF2
+ dwb .BattleResult, RETVAR_EXECUTE
+ dwb $d119, RETVAR_ADDR_DE
+ dwb $d157, RETVAR_STRBUF2
+ dwb .CountCaughtMons, RETVAR_EXECUTE
+ dwb .CountSeenMons, RETVAR_EXECUTE
+ dwb .CountBadges, RETVAR_EXECUTE
+ dwb $d682, RETVAR_ADDR_DE
+ dwb .PlayerFacing, RETVAR_EXECUTE
+ dwb $ff96, RETVAR_STRBUF2
+ dwb .DayOfWeek, RETVAR_EXECUTE
+ dwb $da00, RETVAR_STRBUF2
+ dwb $da01, RETVAR_STRBUF2
+ dwb .UnownCaught, RETVAR_EXECUTE
+ dwb $d083, RETVAR_STRBUF2
+ dwb .BoxFreeSpace, RETVAR_EXECUTE
+ dwb $d193, RETVAR_STRBUF2
+ dwb $da03, RETVAR_STRBUF2
+ dwb $da02, RETVAR_STRBUF2
+ dwb $d97b, RETVAR_STRBUF2
+ dwb 0, 0
+
+.CountCaughtMons: ; 41cf
+; Caught mons.
+ ld hl, wPokedexCaught
+ ld b, $20
+ call CountSetBits
+ ld a, [wd151]
+ jp .loadstringbuffer2
+
+.CountSeenMons: ; 41dd
+; Seen mons.
+ ld hl, wPokedexSeen
+ ld b, $20
+ call CountSetBits
+ ld a, [wd151]
+ jp .loadstringbuffer2
+
+.CountBadges: ; 41eb
+; Number of owned badges.
+ ld hl, wBadges
+ ld b, 2
+ call CountSetBits
+ ld a, [wd151]
+ jp .loadstringbuffer2
+
+.PlayerFacing: ; 41f9
+; The direction the player is facing.
+ ld a, [wPlayerDirection]
+ and $c
+ rrca
+ rrca
+ jp .loadstringbuffer2
+
+.DayOfWeek: ; 4203
+; The day of the week.
+ call GetWeekday
+ jp .loadstringbuffer2
+
+.UnownCaught: ; 4209
+; Number of unique Unown caught.
+ call CountUnown ; gold: c5ac | silver: c5aa
+ ld a, b
+ jp .loadstringbuffer2
+
+.BoxFreeSpace: ; 4210
+; Remaining slots in the current box.
+ ld a, BANK(sBoxCount)
+ call OpenSRAM
+ ld hl, sBoxCount
+ ld a, MONS_PER_BOX
+ sub [hl]
+ ld b, a
+ call CloseSRAM
+ ld a, b
+ jp .loadstringbuffer2
+
+.BattleResult: ; 4223
+ ld a, [wBattleResult]
+ and $7f
+ jp .loadstringbuffer2
+; 422b