shithub: pokecrystal

ref: b25e5626a166a7c02e96ac8cd901ada9487f8a90
dir: /engine/mail_2.asm/

View raw version
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, BANK(sPartyMail)
	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

Unreferenced_Functionb984e: ; b984e
.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"