mirror of https://github.com/pret/pokecrystal.git
951 lines
15 KiB
NASM
Executable File
951 lines
15 KiB
NASM
Executable File
ReadPartyMonMail: ; b9229
|
|
ld a, [CurPartyMon]
|
|
ld hl, sPartyMail
|
|
ld bc, MAIL_STRUCT_LENGTH
|
|
call AddNTimes
|
|
ld d, h
|
|
ld e, l
|
|
ReadAnyMail: ; b9237
|
|
push de
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call LoadFontsExtra
|
|
pop de
|
|
push de
|
|
ld a, BANK(sPartyMail)
|
|
call GetSRAMBank
|
|
farcall IsMailEuropean
|
|
call CloseSRAM
|
|
ld a, c
|
|
ld de, StandardEnglishFont
|
|
or a
|
|
jr z, .got_font
|
|
ld de, FrenchGermanFont
|
|
sub $3
|
|
jr c, .got_font
|
|
ld de, SpanishItalianFont
|
|
|
|
.got_font
|
|
ld hl, VTiles1
|
|
lb bc, BANK(StandardEnglishFont), $80
|
|
call Get1bpp
|
|
pop de
|
|
call .LoadGFX
|
|
call EnableLCD
|
|
call WaitBGMap
|
|
ld a, [Buffer3]
|
|
ld e, a
|
|
farcall LoadMailPalettes
|
|
call SetPalettes
|
|
xor a
|
|
ld [hJoyPressed], a
|
|
call .loop
|
|
call ClearBGPalettes
|
|
call DisableLCD
|
|
call LoadStandardFont
|
|
jp EnableLCD
|
|
|
|
.loop
|
|
call GetJoypad
|
|
ld a, [hJoyPressed]
|
|
and A_BUTTON | B_BUTTON | START
|
|
jr z, .loop
|
|
and START
|
|
jr nz, .pressed_start
|
|
ret
|
|
|
|
.pressed_start
|
|
ld a, [wJumptableIndex]
|
|
push af
|
|
callfar PrintMail ; printer
|
|
pop af
|
|
ld [wJumptableIndex], a
|
|
jr .loop
|
|
; b92b8
|
|
|
|
.LoadGFX: ; b92b8
|
|
ld h, d
|
|
ld l, e
|
|
push hl
|
|
ld a, $0
|
|
call GetSRAMBank
|
|
ld de, sPartyMon1MailAuthorID - sPartyMon1Mail
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld [Buffer1], a
|
|
ld a, [hli]
|
|
ld [Buffer2], a
|
|
ld a, [hli]
|
|
ld [CurPartySpecies], a
|
|
ld b, [hl]
|
|
call CloseSRAM
|
|
ld hl, MailGFXPointers
|
|
ld c, 0
|
|
.loop2
|
|
ld a, [hli]
|
|
cp b
|
|
jr z, .got_pointer
|
|
cp -1
|
|
jr z, .invalid
|
|
inc c
|
|
inc hl
|
|
inc hl
|
|
jr .loop2
|
|
|
|
.invalid
|
|
ld hl, MailGFXPointers
|
|
inc hl
|
|
|
|
.got_pointer
|
|
ld a, c
|
|
ld [Buffer3], a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, .done
|
|
pop bc
|
|
push de
|
|
jp hl
|
|
.done
|
|
ret
|
|
; b92f8
|
|
|
|
MailGFXPointers: ; b92f8
|
|
dbw FLOWER_MAIL, LoadFlowerMailGFX
|
|
dbw SURF_MAIL, LoadSurfMailGFX
|
|
dbw LITEBLUEMAIL, LoadLiteBlueMailGFX
|
|
dbw PORTRAITMAIL, LoadPortraitMailGFX
|
|
dbw LOVELY_MAIL, LoadLovelyMailGFX
|
|
dbw EON_MAIL, LoadEonMailGFX
|
|
dbw MORPH_MAIL, LoadMorphMailGFX
|
|
dbw BLUESKY_MAIL, LoadBlueSkyMailGFX
|
|
dbw MUSIC_MAIL, LoadMusicMailGFX
|
|
dbw MIRAGE_MAIL, LoadMirageMailGFX
|
|
db -1
|
|
; b9317
|
|
|
|
LoadSurfMailGFX: ; b9317
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, SurfMailBorderGFX
|
|
ld c, 8 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailLaprasGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, SurfMailWaveGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
jr FinishLoadingSurfLiteBlueMailGFX
|
|
|
|
LoadLiteBlueMailGFX: ; b9335
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, LiteBlueMailBorderGFX
|
|
ld c, 8 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailDratiniGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, PortraitMailUnderlineGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
|
|
FinishLoadingSurfLiteBlueMailGFX: ; b9351
|
|
ld de, SurfLiteBlueMailSmallShapesGFX
|
|
ld c, 2 * 8
|
|
call LoadMailGFX_Color2
|
|
ld c, 2 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, SurfLiteBlueMailLargeShapesGFX
|
|
ld c, 8 * 8
|
|
call LoadMailGFX_Color1
|
|
ld c, 8 * 8
|
|
call LoadMailGFX_Color2
|
|
|
|
call DrawMailBorder
|
|
hlcoord 2, 15
|
|
ld a, $3f
|
|
call Mail_Draw16TileRow
|
|
ld a, $39
|
|
hlcoord 15, 14
|
|
call Mail_Draw3x2Graphic
|
|
ld a, $44
|
|
hlcoord 2, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 15, 11
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $4c
|
|
hlcoord 3, 12
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 15, 2
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $50
|
|
hlcoord 6, 3
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $40
|
|
hlcoord 13, 2
|
|
ld [hli], a
|
|
hlcoord 6, 14
|
|
ld [hl], a
|
|
ld a, $41
|
|
hlcoord 4, 5
|
|
ld [hli], a
|
|
hlcoord 17, 5
|
|
ld [hli], a
|
|
hlcoord 13, 12
|
|
ld [hl], a
|
|
ld a, $42
|
|
hlcoord 9, 2
|
|
ld [hli], a
|
|
hlcoord 14, 5
|
|
ld [hli], a
|
|
hlcoord 3, 10
|
|
ld [hl], a
|
|
ld a, $43
|
|
hlcoord 6, 11
|
|
ld [hli], a
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b93d2
|
|
|
|
LoadEonMailGFX: ; b93d2
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, EonMailBorder1GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, EonMailBorder2GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, EonMailBorder2GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, EonMailBorder1GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, SurfMailBorderGFX + 6 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailEeveeGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
ld hl, VTiles2 tile $3d
|
|
ld de, MailLargeCircleGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, EonMailBorder2GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
|
|
ld a, $31
|
|
hlcoord 0, 0
|
|
call Mail_Place18TileAlternatingRow
|
|
hlcoord 1, 17
|
|
call Mail_Place18TileAlternatingRow
|
|
ld a, $33
|
|
hlcoord 0, 1
|
|
call Mail_Place16TileAlternatingColumn
|
|
hlcoord 19, 0
|
|
call Mail_Place16TileAlternatingColumn
|
|
hlcoord 2, 15
|
|
ld a, $35
|
|
call Mail_Draw16TileRow
|
|
inc a
|
|
hlcoord 15, 14
|
|
call Mail_Draw3x2Graphic
|
|
call LovelyEonMail_PlaceIcons
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b944b
|
|
|
|
LoadLovelyMailGFX: ; b944b
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, LovelyMailBorderGFX
|
|
ld c, 5 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailPoliwagGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, LovelyMailUnderlineGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, LovelyMailLargeHeartGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, LovelyMailSmallHeartGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
|
|
call DrawMailBorder2
|
|
hlcoord 2, 15
|
|
ld a, $3c
|
|
call Mail_Draw16TileRow
|
|
ld a, $36
|
|
hlcoord 15, 14
|
|
call Mail_Draw3x2Graphic
|
|
call LovelyEonMail_PlaceIcons
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b9491
|
|
|
|
LovelyEonMail_PlaceIcons: ; b9491
|
|
ld a, $3d
|
|
hlcoord 2, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 16, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 9, 4
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 2, 11
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 6, 12
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 12, 11
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $41
|
|
hlcoord 5, 4
|
|
ld [hl], a
|
|
hlcoord 6, 2
|
|
ld [hl], a
|
|
hlcoord 12, 4
|
|
ld [hl], a
|
|
hlcoord 14, 2
|
|
ld [hl], a
|
|
hlcoord 3, 13
|
|
ld [hl], a
|
|
hlcoord 9, 11
|
|
ld [hl], a
|
|
hlcoord 16, 12
|
|
ld [hl], a
|
|
ret
|
|
; b94d6
|
|
|
|
LoadMorphMailGFX: ; b94d6
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld bc, 5 * 8
|
|
call MailGFX_GenerateMonochromeTilesColor2
|
|
ld de, MorphMailBorderCornerGFX + 3 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MorphMailBorderCornerGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MorphMailBorderGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, EonMailBorder1GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MorphMailDividerGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailDittoGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
call DrawMailBorder2
|
|
ld a, $31
|
|
hlcoord 1, 1
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 17, 15
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 1, 3
|
|
ld [hl], a
|
|
hlcoord 3, 1
|
|
ld [hl], a
|
|
hlcoord 16, 16
|
|
ld [hl], a
|
|
hlcoord 18, 14
|
|
ld [hl], a
|
|
ld a, $36
|
|
hlcoord 1, 4
|
|
ld [hl], a
|
|
hlcoord 2, 3
|
|
ld [hl], a
|
|
hlcoord 3, 2
|
|
ld [hl], a
|
|
hlcoord 4, 1
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 15, 16
|
|
ld [hl], a
|
|
hlcoord 16, 15
|
|
ld [hl], a
|
|
hlcoord 17, 14
|
|
ld [hl], a
|
|
hlcoord 18, 13
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 2, 15
|
|
ld b, $e
|
|
call Mail_DrawRowLoop
|
|
inc a
|
|
hlcoord 2, 11
|
|
call Mail_Draw16TileRow
|
|
hlcoord 2, 5
|
|
call Mail_Draw16TileRow
|
|
inc a
|
|
hlcoord 6, 1
|
|
call Mail_Draw13TileRow
|
|
hlcoord 1, 16
|
|
call Mail_Draw13TileRow
|
|
inc a
|
|
hlcoord 3, 13
|
|
call Mail_Draw3x2Graphic
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b9582
|
|
|
|
LoadBlueSkyMailGFX: ; b9582
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, EonMailBorder1GFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld a, $ff
|
|
ld bc, 1 tiles
|
|
call ByteFill
|
|
ld de, BlueSkyMailGrassGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, MailDragoniteGFX
|
|
ld c, 23 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, MailCloudGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, FlowerMailBorderGFX + 6 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MailCloudGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MailCloudGFX + 2 * 8
|
|
ld c, 2 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MailCloudGFX + 5 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
|
|
ld a, $31
|
|
hlcoord 0, 0
|
|
call Mail_DrawFullWidthBorder
|
|
hlcoord 0, 1
|
|
call Mail_DrawLeftRightBorder
|
|
hlcoord 19, 1
|
|
call Mail_DrawLeftRightBorder
|
|
inc a
|
|
hlcoord 0, 17
|
|
call Mail_DrawFullWidthBorder
|
|
inc a
|
|
hlcoord 0, 16
|
|
call Mail_DrawFullWidthBorder
|
|
inc a
|
|
hlcoord 2, 2
|
|
call Mail_Place6TileRow
|
|
hlcoord 3, 3
|
|
call Mail_Place6TileRow
|
|
hlcoord 4, 4
|
|
call Mail_Place6TileRow
|
|
dec hl
|
|
ld [hl], $7f
|
|
dec a
|
|
hlcoord 15, 14
|
|
call Mail_Draw2x2Graphic
|
|
add $4
|
|
hlcoord 15, 16
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
inc a
|
|
push af
|
|
hlcoord 12, 1
|
|
call Mail_Draw3x2Graphic
|
|
pop af
|
|
hlcoord 15, 4
|
|
call Mail_Draw3x2Graphic
|
|
inc a
|
|
hlcoord 2, 11
|
|
call Mail_Draw16TileRow
|
|
inc a
|
|
hlcoord 10, 3
|
|
call Mail_Draw2x2Graphic
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b9636
|
|
|
|
Mail_Place6TileRow: ; b9636
|
|
ld b, $6
|
|
.loop
|
|
ld [hli], a
|
|
inc a
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
; b963e
|
|
|
|
LoadFlowerMailGFX: ; b963e
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, FlowerMailBorderGFX
|
|
ld c, 8 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MailOddishGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color3
|
|
ld de, FlowerMailBorderGFX + 6 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, FlowerMailFlowerGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color1
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color2
|
|
|
|
call DrawMailBorder
|
|
hlcoord 2, 15
|
|
ld a, $3d ; underline
|
|
call Mail_Draw16TileRow
|
|
ld a, $39 ; oddish
|
|
hlcoord 16, 13
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 2, 13
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $3e
|
|
hlcoord 2, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 5, 3
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 10, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 16, 3
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 5, 11
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 16, 10
|
|
call Mail_Draw2x2Graphic
|
|
ld a, $42
|
|
hlcoord 3, 4
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 12, 3
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 14, 2
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 2, 10
|
|
call Mail_Draw2x2Graphic
|
|
hlcoord 14, 11
|
|
call Mail_Draw2x2Graphic
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b96ca
|
|
|
|
LoadPortraitMailGFX: ; b96ca
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, PortraitMailBorderGFX
|
|
ld c, 5 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, PortraitMailUnderlineGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld hl, VTiles2 tile $3d
|
|
ld de, PortraitMailLargePokeballGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, PortraitMailSmallPokeballGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
|
|
call DrawMailBorder2
|
|
hlcoord 8, 15
|
|
ld a, $36
|
|
ld b, $a
|
|
call Mail_DrawRowLoop
|
|
call LovelyEonMail_PlaceIcons
|
|
ld a, $1
|
|
ld [UnownLetter], a
|
|
hlcoord 1, 10
|
|
call PrepMonFrontpic
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b9710
|
|
|
|
LoadMusicMailGFX: ; b9710
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld de, MusicMailBorderGFX
|
|
ld c, 4 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MorphMailBorderGFX
|
|
ld c, 2 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailNatuGFX
|
|
ld c, 6 * 8
|
|
call LoadMailGFX_Color3
|
|
xor a
|
|
ld bc, 1 tiles
|
|
call ByteFill
|
|
ld de, MusicMailLargeNoteGFX
|
|
ld c, 3 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, MusicMailSmallNoteGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
|
|
ld a, $31
|
|
hlcoord 0, 0
|
|
call Mail_Place18TileAlternatingRow
|
|
hlcoord 1, 17
|
|
call Mail_Place18TileAlternatingRow
|
|
ld a, $33
|
|
hlcoord 0, 1
|
|
call Mail_Place16TileAlternatingColumn
|
|
hlcoord 19, 0
|
|
call Mail_Place16TileAlternatingColumn
|
|
ld a, $35
|
|
hlcoord 2, 15
|
|
call Mail_Place14TileAlternatingRow
|
|
ld a, $37
|
|
hlcoord 15, 14
|
|
call Mail_Draw3x2Graphic
|
|
call LovelyEonMail_PlaceIcons
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b9776
|
|
|
|
LoadMirageMailGFX: ; b9776
|
|
push bc
|
|
ld hl, VTiles2 tile $31
|
|
ld bc, 5 * 8
|
|
call MailGFX_GenerateMonochromeTilesColor2
|
|
ld de, BlueSkyMailGrassGFX
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, MailMewGFX
|
|
ld c, 18 * 8
|
|
call LoadMailGFX_Color2
|
|
ld de, LiteBlueMailBorderGFX + 1 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
ld de, LiteBlueMailBorderGFX + 6 * 8
|
|
ld c, 1 * 8
|
|
call LoadMailGFX_Color1
|
|
|
|
call DrawMailBorder2
|
|
ld a, $36
|
|
hlcoord 1, 16
|
|
call Mail_DrawTopBottomBorder
|
|
inc a
|
|
hlcoord 15, 14
|
|
call Mail_Draw3x2Graphic
|
|
inc a
|
|
hlcoord 15, 16
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
ld a, $3f
|
|
hlcoord 1, 1
|
|
call Mail_Place18TileAlternatingRow
|
|
ld a, $41
|
|
hlcoord 0, 2
|
|
call Mail_Place14TileAlternatingColumn
|
|
ld a, $43
|
|
hlcoord 19, 2
|
|
call Mail_Place14TileAlternatingColumn
|
|
ld a, $45
|
|
hlcoord 0, 1
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 19, 1
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 0, 16
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 19, 16
|
|
ld [hl], a
|
|
inc a
|
|
hlcoord 2, 5
|
|
call Mail_Draw16TileRow
|
|
inc a
|
|
hlcoord 2, 11
|
|
call Mail_Draw16TileRow
|
|
pop hl
|
|
jp MailGFX_PlaceMessage
|
|
; b97f8
|
|
|
|
MailGFX_GenerateMonochromeTilesColor2: ; b97f8
|
|
.loop
|
|
xor a
|
|
ld [hli], a
|
|
ld a, $ff
|
|
ld [hli], a
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .loop
|
|
ret
|
|
; b9803
|
|
|
|
MailGFX_PlaceMessage: ; b9803
|
|
ld bc, MAIL_STRUCT_LENGTH
|
|
ld de, wTempMail
|
|
ld a, BANK(sPartyMail)
|
|
call GetSRAMBank
|
|
call CopyBytes
|
|
call CloseSRAM
|
|
ld hl, wTempMailAuthor
|
|
ld de, wMonOrItemNameBuffer
|
|
ld bc, NAME_LENGTH - 1
|
|
call CopyBytes
|
|
ld a, "@"
|
|
ld [wTempMailAuthor], a
|
|
ld [wMonOrItemNameBuffer + NAME_LENGTH - 1], a
|
|
ld de, wTempMailMessage
|
|
hlcoord 2, 7
|
|
call PlaceString
|
|
ld de, wMonOrItemNameBuffer
|
|
ld a, [de]
|
|
and a
|
|
ret z
|
|
ld a, [Buffer3]
|
|
hlcoord 8, 14
|
|
cp $3 ; PORTRAITMAIL
|
|
jr z, .place_author
|
|
hlcoord 6, 14
|
|
cp $6 ; MORPH_MAIL
|
|
jr z, .place_author
|
|
hlcoord 5, 14
|
|
|
|
.place_author
|
|
jp PlaceString
|
|
; b984e
|
|
|
|
Functionb984e: ; b984e
|
|
; XXX
|
|
.loop
|
|
ld a, [hl]
|
|
xor $ff
|
|
ld [hli], a
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .loop
|
|
ret
|
|
; b9858
|
|
|
|
DrawMailBorder: ; b9858
|
|
hlcoord 0, 0
|
|
ld a, $31
|
|
ld [hli], a
|
|
inc a
|
|
call Mail_DrawTopBottomBorder
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
call Mail_DrawLeftRightBorder
|
|
ld a, $36
|
|
ld [hli], a
|
|
inc a
|
|
call Mail_DrawTopBottomBorder
|
|
hlcoord 19, 1
|
|
ld a, $35
|
|
call Mail_DrawLeftRightBorder
|
|
ld a, $38
|
|
ld [hl], a
|
|
ret
|
|
; b987b
|
|
|
|
DrawMailBorder2: ; b987b
|
|
hlcoord 0, 0
|
|
ld a, $31
|
|
ld [hli], a
|
|
inc a
|
|
call Mail_DrawTopBottomBorder
|
|
ld [hl], $31
|
|
inc hl
|
|
inc a
|
|
call Mail_DrawLeftRightBorder
|
|
ld [hl], $31
|
|
inc hl
|
|
inc a
|
|
call Mail_DrawTopBottomBorder
|
|
hlcoord 19, 1
|
|
ld a, $35
|
|
call Mail_DrawLeftRightBorder
|
|
ld [hl], $31
|
|
ret
|
|
; b989e
|
|
|
|
Mail_Place14TileAlternatingRow: ; b989e
|
|
push af
|
|
ld b, 14 / 2
|
|
jr Mail_PlaceAlternatingRow
|
|
|
|
Mail_Place16TileAlternatingRow: ; b98a3
|
|
push af
|
|
ld b, 16 / 2
|
|
jr Mail_PlaceAlternatingRow
|
|
|
|
Mail_Place18TileAlternatingRow: ; b98a8
|
|
push af
|
|
ld b, 18 / 2
|
|
|
|
Mail_PlaceAlternatingRow: ; b98ab
|
|
.loop
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
dec a
|
|
dec b
|
|
jr nz, .loop
|
|
ld [hl], a
|
|
pop af
|
|
ret
|
|
; b98b5
|
|
|
|
Mail_Place14TileAlternatingColumn: ; b98b5
|
|
push af
|
|
ld b, 14 / 2
|
|
jr Mail_PlaceAlternatingColumn
|
|
|
|
Mail_Place16TileAlternatingColumn: ; b98ba
|
|
push af
|
|
ld b, 16 / 2
|
|
|
|
Mail_PlaceAlternatingColumn: ; b98bd
|
|
.loop
|
|
ld [hl], a
|
|
ld de, SCREEN_WIDTH
|
|
add hl, de
|
|
inc a
|
|
ld [hl], a
|
|
add hl, de
|
|
dec a
|
|
dec b
|
|
jr nz, .loop
|
|
ld [hl], a
|
|
pop af
|
|
ret
|
|
; b98cc
|
|
|
|
Mail_Draw7TileRow: ; b98cc
|
|
ld b, $7
|
|
jr Mail_DrawRowLoop
|
|
|
|
Mail_Draw13TileRow: ; b98d0
|
|
ld b, $d
|
|
jr Mail_DrawRowLoop
|
|
|
|
Mail_Draw16TileRow: ; b98d4
|
|
ld b, $10
|
|
jr Mail_DrawRowLoop
|
|
|
|
Mail_DrawTopBottomBorder: ; b98d8
|
|
ld b, SCREEN_WIDTH - 2
|
|
jr Mail_DrawRowLoop
|
|
|
|
Mail_DrawFullWidthBorder: ; b98dc
|
|
ld b, SCREEN_WIDTH
|
|
|
|
Mail_DrawRowLoop: ; b98de
|
|
.loop
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
; b98e3
|
|
|
|
Mail_DrawLeftRightBorder: ; b98e3
|
|
ld b, SCREEN_HEIGHT - 2
|
|
ld de, SCREEN_WIDTH
|
|
.loop
|
|
ld [hl], a
|
|
add hl, de
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
; b98ee
|
|
|
|
Mail_Draw2x2Graphic: ; b98ee
|
|
push af
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
ld bc, SCREEN_WIDTH - 1
|
|
add hl, bc
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
pop af
|
|
ret
|
|
; b98fc
|
|
|
|
Mail_Draw3x2Graphic: ; b98fc
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
ld bc, SCREEN_WIDTH - 2
|
|
add hl, bc
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
ld [hl], a
|
|
ret
|
|
; b990c
|
|
|
|
LoadMailGFX_Color1: ; b990c
|
|
.loop
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; b9915
|
|
|
|
LoadMailGFX_Color2: ; b9915
|
|
.loop
|
|
xor a
|
|
ld [hli], a
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; b991e
|
|
|
|
LoadMailGFX_Color3: ; b991e
|
|
.loop
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; b9926
|
|
|
|
INCLUDE "gfx/mail.asm"
|
|
|
|
ItemIsMail: ; b9e76
|
|
ld a, d
|
|
ld hl, MailItems
|
|
ld de, 1
|
|
jp IsInArray
|
|
; b9e80
|
|
|
|
INCLUDE "data/items/mail_items.asm"
|