Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by creating categorized subdirectories, in order to make it easier to navigate and find things. The directories created are as follows: * engine/game: Contains all "minigames", things like the unown puzzle and slot machine. * engine/gfx: Contains all handling of graphics. From loading palettes to playing animations. * engine/link: Contains all multiplayer functionality. * engine/menu: Contains all generic/misc. menus and menu code. Other, more specialized menus are in their own subdirectories (pokedex, pokegear, party menu, etc). * engine/overworld: Contains all handling of the overworld. From loading and connecting maps to wild encounters and the scripting engine. * engine/pokegear: In the same vein as engine/pokedex, except it could use some more splitting up. * engine/pokemon: Contains everything related to manipulating pokemon data. From the pokemon storage system to evolution and mail. * engine/printer: Contains everything related to printing things as well as the printer communication. * engine/title: Contains intro sequences, title screens and credits.
This commit is contained in:
151
engine/overworld/variables.asm
Executable file
151
engine/overworld/variables.asm
Executable file
@@ -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
|
Reference in New Issue
Block a user