diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/main_menu.asm | 4 | ||||
-rwxr-xr-x | engine/variables.asm | 119 |
2 files changed, 121 insertions, 2 deletions
diff --git a/engine/main_menu.asm b/engine/main_menu.asm index dc8c7fb1..764390ec 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -297,9 +297,9 @@ Function5c41: ; 5c41 (1:5c41) call Function5d1a - ld a, BANK(s1_ad6c) + ld a, BANK(sBoxCount) call OpenSRAM - ld hl, s1_ad6c + ld hl, sBoxCount call Function5d15 call CloseSRAM 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 |