Files
pokecrystal/engine/pokemon/european_mail.asm
Idain 4432df05cb Add more assert cases in the codebase (#1115)
* Add assert for FACING_GRASS_1 and FACING_GRASS_2

* Add more assert cases

* Add assert for HP bar colors

* Assert LINK_NULL == 0

* Fix assert syntax

* Add asserts for WILD_BATTLE == 1

* Add additional WILD assert

- I need to sleep more...

* Revert asserts for WILD_BATTLE and LINK_NULL

* Commit suggested changes

* Add more assert cases

* Fix syntax error
2024-04-27 12:17:07 -05:00

123 lines
2.2 KiB
NASM

ParseMailLanguage:
ld c, MAIL_LANG_ENGLISH
ld hl, sPartyMon1MailNationality - sPartyMon1Mail
add hl, de
ld a, [hli]
cp "E"
ret nz
ld a, [hli]
assert MAIL_LANG_ENGLISH + 1 == MAIL_LANG_FRENCH
inc c
cp "F"
ret z
assert MAIL_LANG_FRENCH + 1 == MAIL_LANG_GERMAN
inc c
cp "G"
ret z
assert MAIL_LANG_GERMAN + 1 == MAIL_LANG_ITALIAN
inc c
cp "I"
ret z
assert MAIL_LANG_ITALIAN + 1 == MAIL_LANG_SPANISH
inc c
cp "S"
ret z
ld c, MAIL_LANG_ENGLISH
ret
; The regular font.
StandardEnglishFont:
INCBIN "gfx/font/english.1bpp"
; An extended font.
FrenchGermanFont:
INCBIN "gfx/font/french_german.1bpp"
; An even more extended font.
SpanishItalianFont:
INCBIN "gfx/font/spanish_italian.1bpp"
ConvertFrenchGermanMailToEnglish:
; Called if mail is French or German
; Converts 's 't 'v from French/German character set to English
ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
.loop
ld a, [hl]
cp $dc ; 's in French/German font
jr nz, .check_intermediate_chars
ld a, "'s"
jr .replace
.check_intermediate_chars
sub "'s"
jr c, .dont_replace
cp "'v" - "'s" + 1
jr nc, .dont_replace
add $cd
.replace
ld [hl], a
.dont_replace
inc hl
dec b
jr nz, .loop
ret
ConvertEnglishMailToFrenchGerman:
; Called if mail is English and game is French or German
; Converts 's 't 'v from English character set to French/German
ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
.loop
ld a, [hl]
cp "'s"
jr nz, .check_intermediate_chars
ld a, $dc ; 's in French/German font
jr .replace
.check_intermediate_chars
sub $cd
jr c, .dont_replace
cp "'v" - "'s" + 1
jr nc, .dont_replace
add "'s"
.replace
ld [hl], a
.dont_replace
inc hl
dec b
jr nz, .loop
ret
ConvertSpanishItalianMailToEnglish:
; Called if mail is Spanish or Italian
; Converts 'd 'l 'm 'r 's 't 'v from Spanish/Italian character set to English
ConvertEnglishMailToSpanishItalian:
; Called if mail is English and game is Spanish or Italian
; Converts 'd 'l 'm 'r 's 't 'v from English character set to Spanish/Italian
ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
.loop
ld a, [hl]
and $f0
cp $d0
jr nz, .dont_replace
ld a, [hl]
add $8
and $f
or $d0
ld [hl], a
.dont_replace
inc hl
dec b
jr nz, .loop
ret