summaryrefslogtreecommitdiff
path: root/engine/variables.asm
blob: a115e2c3772fb9fc40ce6a30aaa60f0a2358990e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
_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
rept 3
	add hl, bc
endr
	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, StringBuffer2
	ld [de], a
	ret
; 80671 (20:4671)

.VarActionTable: ; 80671
; $00: copy [de] to StringBuffer2
; $40: return address in de
; $80: call function
	dwb StringBuffer2,         RETVAR_STRBUF2
	dwb PartyCount,            RETVAR_STRBUF2
	dwb .BattleResult,         RETVAR_EXECUTE
	dwb BattleType,            RETVAR_ADDR_DE
	dwb TimeOfDay,             RETVAR_STRBUF2
	dwb .CountCaughtMons,      RETVAR_EXECUTE
	dwb .CountSeenMons,        RETVAR_EXECUTE
	dwb .CountBadges,          RETVAR_EXECUTE
	dwb PlayerState,           RETVAR_ADDR_DE
	dwb .PlayerFacing,         RETVAR_EXECUTE
	dwb hHours,                RETVAR_STRBUF2
	dwb .DayOfWeek,            RETVAR_EXECUTE
	dwb MapGroup,              RETVAR_STRBUF2
	dwb MapNumber,             RETVAR_STRBUF2
	dwb .UnownCaught,          RETVAR_EXECUTE
	dwb wPermission,           RETVAR_STRBUF2
	dwb .BoxFreeSpace,         RETVAR_EXECUTE
	dwb wBugContestMinsRemaining,                 RETVAR_STRBUF2
	dwb XCoord,                RETVAR_STRBUF2
	dwb YCoord,                RETVAR_STRBUF2
	dwb wSpecialPhoneCallID,   RETVAR_STRBUF2
	dwb wcf64,                 RETVAR_STRBUF2
	dwb wKurtApricornQuantity, RETVAR_STRBUF2
	dwb wCurrentCaller,        RETVAR_ADDR_DE
	dwb wBlueCardBalance,      RETVAR_ADDR_DE
	dwb wBuenasPassword,       RETVAR_ADDR_DE
	dwb wdc58,                 RETVAR_STRBUF2
	dwb NULL,                  RETVAR_STRBUF2
; 806c5

.CountCaughtMons: ; 806c5
; Caught mons.
	ld hl, PokedexCaught
	ld b, EndPokedexCaught - PokedexCaught
	call CountSetBits
	ld a, [wd265]
	jp .loadstringbuffer2
; 806d3

.CountSeenMons: ; 806d3
; Seen mons.
	ld hl, PokedexSeen
	ld b, EndPokedexSeen - PokedexSeen
	call CountSetBits
	ld a, [wd265]
	jp .loadstringbuffer2
; 806e1

.CountBadges: ; 806e1
; Number of owned badges.
	ld hl, Badges
	ld b, 2
	call CountSetBits
	ld a, [wd265]
	jp .loadstringbuffer2
; 806ef

.PlayerFacing: ; 806ef
; The direction the player is facing.
	ld a, [PlayerDirection]
	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, UnownDex
	ld b, 0
.loop
	ld a, [hli]
	and a
	ret z
	inc b
	ld a, b
	cp 26
	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