You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
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:
127
engine/pokemon/tempmon.asm
Normal file
127
engine/pokemon/tempmon.asm
Normal file
@@ -0,0 +1,127 @@
|
||||
CopyMonToTempMon: ; 5084a
|
||||
; gets the BaseData of a mon
|
||||
; and copies the party_struct to wTempMon
|
||||
|
||||
ld a, [wCurPartyMon]
|
||||
ld e, a
|
||||
call GetMonSpecies
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [wCurSpecies], a
|
||||
call GetBaseData
|
||||
|
||||
ld a, [wMonType]
|
||||
ld hl, wPartyMon1Species
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
and a
|
||||
jr z, .copywholestruct
|
||||
ld hl, wOTPartyMon1Species
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
cp OTPARTYMON
|
||||
jr z, .copywholestruct
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
callfar CopyBoxmonToTempMon
|
||||
jr .done
|
||||
|
||||
.copywholestruct
|
||||
ld a, [wCurPartyMon]
|
||||
call AddNTimes
|
||||
ld de, wTempMon
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call CopyBytes
|
||||
|
||||
.done
|
||||
ret
|
||||
|
||||
CalcBufferMonStats: ; 5088b
|
||||
ld bc, wBufferMon
|
||||
jr _TempMonStatsCalculation
|
||||
|
||||
CalcTempmonStats: ; 50890
|
||||
ld bc, wTempMon
|
||||
_TempMonStatsCalculation: ; 50893
|
||||
ld hl, MON_LEVEL
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wCurPartyLevel], a
|
||||
ld hl, MON_MAXHP
|
||||
add hl, bc
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, MON_STAT_EXP - 1
|
||||
add hl, bc
|
||||
push bc
|
||||
ld b, TRUE
|
||||
predef CalcMonStats
|
||||
pop bc
|
||||
ld hl, MON_HP
|
||||
add hl, bc
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld a, [wCurPartySpecies]
|
||||
cp EGG
|
||||
jr nz, .not_egg
|
||||
xor a
|
||||
ld [de], a
|
||||
inc de
|
||||
ld [de], a
|
||||
jr .zero_status
|
||||
|
||||
.not_egg
|
||||
push bc
|
||||
ld hl, MON_MAXHP
|
||||
add hl, bc
|
||||
ld bc, 2
|
||||
call CopyBytes
|
||||
pop bc
|
||||
|
||||
.zero_status
|
||||
ld hl, MON_STATUS
|
||||
add hl, bc
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
GetMonSpecies: ; 508d5
|
||||
; [wMonType] has the type of the mon
|
||||
; e = Nr. of mon (i.e. [wCurPartyMon])
|
||||
|
||||
ld a, [wMonType]
|
||||
and a ; PARTYMON
|
||||
jr z, .partymon
|
||||
cp OTPARTYMON
|
||||
jr z, .otpartymon
|
||||
cp BOXMON
|
||||
jr z, .boxmon
|
||||
cp TEMPMON
|
||||
jr z, .breedmon
|
||||
; WILDMON
|
||||
|
||||
.partymon
|
||||
ld hl, wPartySpecies
|
||||
jr .done
|
||||
|
||||
.otpartymon
|
||||
ld hl, wOTPartySpecies
|
||||
jr .done
|
||||
|
||||
.boxmon
|
||||
ld a, BANK(sBoxSpecies)
|
||||
call GetSRAMBank
|
||||
ld hl, sBoxSpecies
|
||||
call .done
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
.breedmon
|
||||
ld a, [wBreedMon1Species]
|
||||
jr .done2
|
||||
|
||||
.done
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
|
||||
.done2
|
||||
ld [wCurPartySpecies], a
|
||||
ret
|
||||
Reference in New Issue
Block a user