diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:07:16 +0100 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:21:40 +0100 |
commit | baa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch) | |
tree | 968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/mon_stats.asm | |
parent | 12070ca50067d3abe36a730190f88ee43f2cace9 (diff) |
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.
Diffstat (limited to 'engine/mon_stats.asm')
-rw-r--r-- | engine/mon_stats.asm | 485 |
1 files changed, 0 insertions, 485 deletions
diff --git a/engine/mon_stats.asm b/engine/mon_stats.asm deleted file mode 100644 index 2b5586c51..000000000 --- a/engine/mon_stats.asm +++ /dev/null @@ -1,485 +0,0 @@ -DrawPlayerHP: ; 50b0a - ld a, $1 - jr DrawHP - -DrawEnemyHP: ; 50b0e - ld a, $2 - -DrawHP: ; 50b10 - ld [wWhichHPBar], a - push hl - push bc - ; box mons have full HP - ld a, [wMonType] - cp BOXMON - jr z, .at_least_1_hp - - ld a, [wTempMonHP] - ld b, a - ld a, [wTempMonHP + 1] - ld c, a - -; Any HP? - or b - jr nz, .at_least_1_hp - - xor a - ld c, a - ld e, a - ld a, 6 - ld d, a - jp .fainted - -.at_least_1_hp - ld a, [wTempMonMaxHP] - ld d, a - ld a, [wTempMonMaxHP + 1] - ld e, a - ld a, [wMonType] - cp BOXMON - jr nz, .not_boxmon - - ld b, d - ld c, e - -.not_boxmon - predef ComputeHPBarPixels - ld a, 6 - ld d, a - ld c, a - -.fainted - ld a, c - pop bc - ld c, a - pop hl - push de - push hl - push hl - call DrawBattleHPBar - pop hl - -; Print HP - bccoord 1, 1, 0 - add hl, bc - ld de, wTempMonHP - ld a, [wMonType] - cp BOXMON - jr nz, .not_boxmon_2 - ld de, wTempMonMaxHP -.not_boxmon_2 - lb bc, 2, 3 - call PrintNum - - ld a, "/" - ld [hli], a - -; Print max HP - ld de, wTempMonMaxHP - lb bc, 2, 3 - call PrintNum - pop hl - pop de - ret - -PrintTempMonStats: ; 50b7b -; Print wTempMon's stats at hl, with spacing bc. - push bc - push hl - ld de, .StatNames - call PlaceString - pop hl - pop bc - add hl, bc - ld bc, SCREEN_WIDTH - add hl, bc - ld de, wTempMonAttack - lb bc, 2, 3 - call .PrintStat - ld de, wTempMonDefense - call .PrintStat - ld de, wTempMonSpclAtk - call .PrintStat - ld de, wTempMonSpclDef - call .PrintStat - ld de, wTempMonSpeed - jp PrintNum - -.PrintStat: ; 50bab - push hl - call PrintNum - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - ret - -.StatNames: ; 50bb5 - db "ATTACK" - next "DEFENSE" - next "SPCL.ATK" - next "SPCL.DEF" - next "SPEED" - next "@" - -GetGender: ; 50bdd -; Return the gender of a given monster (wCurPartyMon/wCurOTMon/wCurWildMon). -; When calling this function, a should be set to an appropriate wMonType value. - -; return values: -; a = 1: f = nc|nz; male -; a = 0: f = nc|z; female -; f = c: genderless - -; This is determined by comparing the Attack and Speed DVs -; with the species' gender ratio. - -; Figure out what type of monster struct we're looking at. - -; 0: PartyMon - ld hl, wPartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [wMonType] - and a - jr z, .PartyMon - -; 1: OTPartyMon - ld hl, wOTPartyMon1DVs - dec a - jr z, .PartyMon - -; 2: sBoxMon - ld hl, sBoxMon1DVs - ld bc, BOXMON_STRUCT_LENGTH - dec a - jr z, .sBoxMon - -; 3: Unknown - ld hl, wTempMonDVs - dec a - jr z, .DVs - -; else: WildMon - ld hl, wEnemyMonDVs - jr .DVs - -; Get our place in the party/box. - -.PartyMon: -.sBoxMon - ld a, [wCurPartyMon] - call AddNTimes - -.DVs: - -; sBoxMon data is read directly from SRAM. - ld a, [wMonType] - cp BOXMON - ld a, BANK(sBox) - call z, GetSRAMBank - -; Attack DV - ld a, [hli] - and $f0 - ld b, a -; Speed DV - ld a, [hl] - and $f0 - swap a - -; Put our DVs together. - or b - ld b, a - -; Close SRAM if we were dealing with a sBoxMon. - ld a, [wMonType] - cp BOXMON - call z, CloseSRAM - -; We need the gender ratio to do anything with this. - push bc - ld a, [wCurPartySpecies] - dec a - ld hl, BaseData + BASE_GENDER - ld bc, BASE_DATA_SIZE - call AddNTimes - pop bc - - ld a, BANK(BaseData) - call GetFarByte - -; The higher the ratio, the more likely the monster is to be female. - - cp GENDERLESS - jr z, .Genderless - - and a ; GENDER_F0? - jr z, .Male - - cp GENDER_F100 - jr z, .Female - -; Values below the ratio are male, and vice versa. - cp b - jr c, .Male - -.Female: - xor a - ret - -.Male: - ld a, 1 - and a - ret - -.Genderless: - scf - ret - -ListMovePP: ; 50c50 - ld a, [wNumMoves] - inc a - ld c, a - ld a, NUM_MOVES - sub c - ld b, a - push hl - ld a, [wBuffer1] - ld e, a - ld d, $0 - ld a, $3e ; P - call .load_loop - ld a, b - and a - jr z, .skip - ld c, a - ld a, "-" - call .load_loop - -.skip - pop hl - inc hl - inc hl - inc hl - ld d, h - ld e, l - ld hl, wTempMonMoves - ld b, 0 -.loop - ld a, [hli] - and a - jr z, .done - push bc - push hl - push de - ld hl, wMenuCursorY - ld a, [hl] - push af - ld [hl], b - push hl - callfar GetMaxPPOfMove - pop hl - pop af - ld [hl], a - pop de - pop hl - push hl - ld bc, wTempMonPP - (wTempMonMoves + 1) - add hl, bc - ld a, [hl] - and $3f - ld [wStringBuffer1 + 4], a - ld h, d - ld l, e - push hl - ld de, wStringBuffer1 + 4 - lb bc, 1, 2 - call PrintNum - ld a, "/" - ld [hli], a - ld de, wd265 - lb bc, 1, 2 - call PrintNum - pop hl - ld a, [wBuffer1] - ld e, a - ld d, 0 - add hl, de - ld d, h - ld e, l - pop hl - pop bc - inc b - ld a, b - cp NUM_MOVES - jr nz, .loop - -.done - ret - -.load_loop ; 50cc9 - ld [hli], a - ld [hld], a - add hl, de - dec c - jr nz, .load_loop - ret - -Unreferenced_Function50cd0: ; 50cd0 -.loop - ld [hl], $32 - inc hl - ld [hl], $3e - dec hl - add hl, de - dec c - jr nz, .loop - ret - -Unused_PlaceEnemyHPLevel: - push hl - push hl - ld hl, wPartyMonNicknames - ld a, [wCurPartyMon] - call GetNick - pop hl - call PlaceString - call CopyMonToTempMon - pop hl - ld a, [wCurPartySpecies] - cp EGG - jr z, .egg - push hl - ld bc, -12 - add hl, bc - ld b, $0 - call DrawEnemyHP - pop hl - ld bc, 5 - add hl, bc - push de - call PrintLevel - pop de - -.egg - ret - -PlaceStatusString: ; 50d0a - push de - inc de - inc de - ld a, [de] - ld b, a - inc de - ld a, [de] - or b - pop de - jr nz, PlaceNonFaintStatus - push de - ld de, FntString - call CopyStatusString - pop de - ld a, $1 - and a - ret - -FntString: ; 50d22 - db "FNT@" - -CopyStatusString: ; 50d25 - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - ret - -PlaceNonFaintStatus: ; 50d2e - push de - ld a, [de] - ld de, PsnString - bit PSN, a - jr nz, .place - ld de, BrnString - bit BRN, a - jr nz, .place - ld de, FrzString - bit FRZ, a - jr nz, .place - ld de, ParString - bit PAR, a - jr nz, .place - ld de, SlpString - and SLP - jr z, .no_status - -.place - call CopyStatusString - ld a, $1 - and a - -.no_status - pop de - ret - -SlpString: db "SLP@" -PsnString: db "PSN@" -BrnString: db "BRN@" -FrzString: db "FRZ@" -ParString: db "PAR@" - -ListMoves: ; 50d6f -; List moves at hl, spaced every [wBuffer1] tiles. - ld de, wListMoves_MoveIndicesBuffer - ld b, $0 -.moves_loop - ld a, [de] - inc de - and a - jr z, .no_more_moves - push de - push hl - push hl - ld [wCurSpecies], a - ld a, MOVE_NAME - ld [wNamedObjectTypeBuffer], a - call GetName - ld de, wStringBuffer1 - pop hl - push bc - call PlaceString - pop bc - ld a, b - ld [wNumMoves], a - inc b - pop hl - push bc - ld a, [wBuffer1] - ld c, a - ld b, 0 - add hl, bc - pop bc - pop de - ld a, b - cp NUM_MOVES - jr z, .done - jr .moves_loop - -.no_more_moves - ld a, b -.nonmove_loop - push af - ld [hl], "-" - ld a, [wBuffer1] - ld c, a - ld b, 0 - add hl, bc - pop af - inc a - cp NUM_MOVES - jr nz, .nonmove_loop - -.done - ret |