You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Organize the engine/ directory, take 3
Renamed `title` to `movies`. Moved some functions from `engine/routines/` to their fitting directories, and cleaned up the base `engine/` directory. Moved `engine/pokemon/tmhm.asm` back to `engine/items/`. Made a new subdirectory: * engine/tilesets: Contains all map-related graphics routines.
This commit is contained in:
74
engine/pokemon/checknickerrors.asm
Normal file
74
engine/pokemon/checknickerrors.asm
Normal file
@@ -0,0 +1,74 @@
|
||||
CheckNickErrors:: ; 669f
|
||||
; error-check monster nick before use
|
||||
; must be a peace offering to gamesharkers
|
||||
|
||||
; input: de = nick location
|
||||
|
||||
push bc
|
||||
push de
|
||||
ld b, MON_NAME_LENGTH
|
||||
|
||||
.checkchar
|
||||
; end of nick?
|
||||
ld a, [de]
|
||||
cp "@" ; terminator
|
||||
jr z, .end
|
||||
|
||||
; check if this char is a text command
|
||||
ld hl, .textcommands
|
||||
dec hl
|
||||
.loop
|
||||
; next entry
|
||||
inc hl
|
||||
; reached end of commands table?
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
jr z, .done
|
||||
|
||||
; is the current char between this value (inclusive)...
|
||||
ld a, [de]
|
||||
cp [hl]
|
||||
inc hl
|
||||
jr c, .loop
|
||||
; ...and this one?
|
||||
cp [hl]
|
||||
jr nc, .loop
|
||||
|
||||
; replace it with a "?"
|
||||
ld a, "?"
|
||||
ld [de], a
|
||||
jr .loop
|
||||
|
||||
.done
|
||||
; next char
|
||||
inc de
|
||||
; reached end of nick without finding a terminator?
|
||||
dec b
|
||||
jr nz, .checkchar
|
||||
|
||||
; change nick to "?@"
|
||||
pop de
|
||||
push de
|
||||
ld a, "?"
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, "@"
|
||||
ld [de], a
|
||||
.end
|
||||
; if the nick has any errors at this point it's out of our hands
|
||||
pop de
|
||||
pop bc
|
||||
ret
|
||||
|
||||
.textcommands ; 66cf
|
||||
; table defining which characters are actually text commands
|
||||
; format:
|
||||
; ≥ <
|
||||
db TX_START, TX_BOX + 1
|
||||
db "<PLAY_G>", "<JP_18>" + 1
|
||||
db "<NI>", "<NO>" + 1
|
||||
db "<ROUTE>", "<GREEN>" + 1
|
||||
db "<ENEMY>", "<ENEMY>" + 1
|
||||
db "<MOM>", "<TM>" + 1
|
||||
db "<ROCKET>", "┘" + 1
|
||||
db -1 ; end
|
229
engine/pokemon/correcterrorsinplayerparty.asm
Normal file
229
engine/pokemon/correcterrorsinplayerparty.asm
Normal file
@@ -0,0 +1,229 @@
|
||||
Unreferenced_CorrectErrorsInPlayerParty:
|
||||
ld hl, wPartyCount
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret z
|
||||
|
||||
cp PARTY_LENGTH + 1
|
||||
jr c, .party_length_okay
|
||||
ld a, PARTY_LENGTH
|
||||
ld [hl], a
|
||||
.party_length_okay
|
||||
inc hl
|
||||
|
||||
ld b, a
|
||||
ld c, 0
|
||||
.loop1
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .invalid_species
|
||||
cp NUM_POKEMON + 1
|
||||
jr z, .invalid_species
|
||||
cp EGG + 1
|
||||
jr c, .next_species
|
||||
|
||||
.invalid_species
|
||||
ld [hl], SMEARGLE
|
||||
push hl
|
||||
push bc
|
||||
ld a, c
|
||||
ld hl, wPartyMon1Species
|
||||
call GetPartyLocation
|
||||
ld [hl], SMEARGLE
|
||||
pop bc
|
||||
pop hl
|
||||
|
||||
.next_species
|
||||
inc hl
|
||||
inc c
|
||||
dec b
|
||||
jr nz, .loop1
|
||||
ld [hl], $ff
|
||||
|
||||
ld hl, wPartyMon1
|
||||
ld a, [wPartyCount]
|
||||
ld d, a
|
||||
ld e, 0
|
||||
.loop2
|
||||
push de
|
||||
push hl
|
||||
ld b, h
|
||||
ld c, l
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .invalid_species_2
|
||||
cp NUM_POKEMON + 1
|
||||
jr c, .check_level
|
||||
|
||||
.invalid_species_2
|
||||
ld [hl], SMEARGLE
|
||||
push de
|
||||
ld d, 0
|
||||
ld hl, wPartySpecies
|
||||
add hl, de
|
||||
pop de
|
||||
ld a, SMEARGLE
|
||||
ld [hl], a
|
||||
|
||||
.check_level
|
||||
ld [wCurSpecies], a
|
||||
call GetBaseData
|
||||
ld hl, MON_LEVEL
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp MIN_LEVEL
|
||||
ld a, MIN_LEVEL
|
||||
jr c, .invalid_level
|
||||
ld a, [hl]
|
||||
cp MAX_LEVEL
|
||||
jr c, .load_level
|
||||
ld a, MAX_LEVEL
|
||||
.invalid_level
|
||||
ld [hl], a
|
||||
.load_level
|
||||
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
|
||||
ld b, TRUE
|
||||
predef CalcMonStats
|
||||
pop hl
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
pop de
|
||||
inc e
|
||||
dec d
|
||||
jr nz, .loop2
|
||||
|
||||
ld de, wPartyMonNicknames
|
||||
ld a, [wPartyCount]
|
||||
ld b, a
|
||||
ld c, 0
|
||||
.loop3
|
||||
push bc
|
||||
call .GetLengthOfStringWith6CharCap
|
||||
push de
|
||||
farcall CheckStringForErrors
|
||||
pop hl
|
||||
pop bc
|
||||
jr nc, .valid_nickname
|
||||
|
||||
push bc
|
||||
push hl
|
||||
ld hl, wPartySpecies
|
||||
push bc
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
pop bc
|
||||
ld a, [hl]
|
||||
cp EGG
|
||||
ld hl, .TAMAGO
|
||||
jr z, .got_nickname
|
||||
ld [wd265], a
|
||||
call GetPokemonName
|
||||
ld hl, wStringBuffer1
|
||||
.got_nickname
|
||||
pop de
|
||||
ld bc, MON_NAME_LENGTH
|
||||
call CopyBytes
|
||||
pop bc
|
||||
|
||||
.valid_nickname
|
||||
inc c
|
||||
dec b
|
||||
jr nz, .loop3
|
||||
|
||||
ld de, wPartyMonOT
|
||||
ld a, [wPartyCount]
|
||||
ld b, a
|
||||
ld c, 0
|
||||
.loop4
|
||||
push bc
|
||||
call .GetLengthOfStringWith6CharCap
|
||||
push de
|
||||
farcall CheckStringForErrors
|
||||
pop hl
|
||||
jr nc, .valid_ot_name
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, wPlayerName
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyBytes
|
||||
.valid_ot_name
|
||||
pop bc
|
||||
inc c
|
||||
dec b
|
||||
jr nz, .loop4
|
||||
|
||||
ld hl, wPartyMon1Moves
|
||||
ld a, [wPartyCount]
|
||||
ld b, a
|
||||
.loop5
|
||||
push hl
|
||||
ld c, NUM_MOVES
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .invalid_move
|
||||
cp NUM_ATTACKS + 1
|
||||
jr c, .moves_loop
|
||||
.invalid_move
|
||||
ld [hl], POUND
|
||||
|
||||
.moves_loop
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .fill_invalid_moves
|
||||
cp NUM_ATTACKS + 1
|
||||
jr c, .next_move
|
||||
|
||||
.fill_invalid_moves
|
||||
xor a
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .fill_invalid_moves
|
||||
jr .next_pokemon
|
||||
|
||||
.next_move
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .moves_loop
|
||||
|
||||
.next_pokemon
|
||||
pop hl
|
||||
push bc
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop5
|
||||
ret
|
||||
; 13b6b
|
||||
|
||||
.TAMAGO: ; 13b6b
|
||||
db "タマゴ@@@"
|
||||
; 13b71
|
||||
|
||||
.GetLengthOfStringWith6CharCap: ; 13b71
|
||||
push de
|
||||
ld c, 1
|
||||
ld b, NAME_LENGTH_JAPANESE
|
||||
.search_loop
|
||||
ld a, [de]
|
||||
cp "@"
|
||||
jr z, .done
|
||||
inc de
|
||||
inc c
|
||||
dec b
|
||||
jr nz, .search_loop
|
||||
dec c
|
||||
dec de
|
||||
ld a, "@"
|
||||
ld [de], a
|
||||
.done
|
||||
pop de
|
||||
ret
|
||||
; 13b87
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user