diff options
author | entrpntr <entrpntr@gmail.com> | 2020-04-01 20:58:12 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-04-02 01:36:09 -0400 |
commit | 48e0d17b6a51344a07c679e17eb92a25fdb1882b (patch) | |
tree | 290a1e71a454c76d5a3baeb9cd4de32ac86989ca /engine | |
parent | 90cdd19ae81c1f3446d64094018b3f1d705ce1cf (diff) |
Finish disassembling bank $2e, miscellaneous pics cleanup.
Diffstat (limited to 'engine')
-rw-r--r-- | engine/events/treemons.asm | 2 | ||||
-rwxr-xr-x | engine/items/item_effects.asm | 4 | ||||
-rw-r--r-- | engine/menus/intro_menu.asm | 2 | ||||
-rw-r--r-- | engine/menus/naming_screen.asm | 14 | ||||
-rw-r--r-- | engine/movie/gamefreak_presents.asm | 20 | ||||
-rw-r--r-- | engine/overworld/init_map.asm | 2 | ||||
-rw-r--r-- | engine/pokemon/mail_2.asm | 901 |
7 files changed, 923 insertions, 22 deletions
diff --git a/engine/events/treemons.asm b/engine/events/treemons.asm index 94782643..c96df83a 100644 --- a/engine/events/treemons.asm +++ b/engine/events/treemons.asm @@ -51,7 +51,7 @@ RockMonEncounter: xor a ret -db $05 ; ???? + db $05 ; ???? GetTreeMonSet: ; Return carry and treemon set in a diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 42e93894..e270734d 100755 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -551,7 +551,7 @@ UltraBall: ; e926 ld b, $0 farcall NamingScreen call RotateThreePalettesRight - call Functiond9e + call LoadStandardFont pop hl ld de, wStringBuffer1 call InitName @@ -610,7 +610,7 @@ UltraBall: ; e926 ld hl, Text_SentToBillsPC ; $6e3f call PrintText call RotateThreePalettesRight - call Functiond9e + call LoadStandardFont jr .end_ball_function .catch_bug_contest_mon diff --git a/engine/menus/intro_menu.asm b/engine/menus/intro_menu.asm index e7534472..40feb4ad 100644 --- a/engine/menus/intro_menu.asm +++ b/engine/menus/intro_menu.asm @@ -232,7 +232,7 @@ Function5bf7: ; 5bf7 (1:5bf7) ldh [hMapAnims], a call ClearTilemap call LoadFontsExtra - call Functiond9e + call LoadStandardFont call ClearWindowData ret diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm index ca0eb213..cd88ec28 100644 --- a/engine/menus/naming_screen.asm +++ b/engine/menus/naming_screen.asm @@ -818,7 +818,7 @@ Function11fde: ; 11fde (4:5fde) Function1201e: ; 1201e (4:601e) call ClearSprites callfar ClearAnimatedObjectBuffer - call Functiond9e + call LoadStandardFont call LoadFontsExtra ld de, NamingScreenGFX_MiddleLine ; $6232 ld hl, $8eb0 @@ -855,8 +855,8 @@ Function1201e: ; 1201e (4:601e) ldh [hWX], a ret -NamingScreenGFX_Border: INCBIN "gfx/namingscreen/border.2bpp" -NamingScreenGFX_Cursor: INCBIN "gfx/namingscreen/cursor.2bpp" +NamingScreenGFX_Border: INCBIN "gfx/naming_screen/border.2bpp" +NamingScreenGFX_Cursor: INCBIN "gfx/naming_screen/cursor.2bpp" NameInputLower: db "a b c d e f g h i" @@ -888,9 +888,9 @@ BoxNameInputUpper: db "- ? ! ♂ ♀ / . , &" db "lower DEL END " -NamingScreenGFX_ED: INCBIN "gfx/namingscreen/ed.1bpp" ; leftover from gen 1 -NamingScreenGFX_MiddleLine: INCBIN "gfx/namingscreen/middleline.1bpp" -NamingScreenGFX_UnderLine: INCBIN "gfx/namingscreen/underline.1bpp" +NamingScreenGFX_ED: INCBIN "gfx/naming_screen/ed.1bpp" ; leftover from gen 1 +NamingScreenGFX_MiddleLine: INCBIN "gfx/naming_screen/middleline.1bpp" +NamingScreenGFX_UnderLine: INCBIN "gfx/naming_screen/underline.1bpp" _ComposeMailMessage: ld hl, wNamingScreenDestinationPointer @@ -957,7 +957,7 @@ Function12267: ; 12267 (4:6267) ld [hl], $4e ret -MailIcon: INCBIN "gfx/namingscreen/mail_icon.2bpp" +MailIcon: INCBIN "gfx/naming_screen/mail_icon.2bpp" Function12341: ; 12341 (4:6341) ld a, $21 diff --git a/engine/movie/gamefreak_presents.asm b/engine/movie/gamefreak_presents.asm index 7e9519f4..51c7d2ac 100644 --- a/engine/movie/gamefreak_presents.asm +++ b/engine/movie/gamefreak_presents.asm @@ -41,9 +41,9 @@ Copyright_GFPresents: ; e49a8 (39:49a8) call GFPresents_PlayFrame jr nc, .loop - ; high bits of wJumpTableIndex are recycled for some flags + ; high bits of wJumptableIndex are recycled for some flags ; this was set if user canceled by pressing a button - ld a, [wJumpTableIndex] + ld a, [wJumptableIndex] bit 6, a jr nz, .canceled @@ -77,7 +77,7 @@ GFPresents_Init: ; e49f3 (39:49f3) ld [hl], a xor a - ld [wJumpTableIndex], a + ld [wJumptableIndex], a ld [$ce64], a ld [wIntroSceneTimer], a ldh [hSCX], a @@ -102,9 +102,9 @@ GFPresents_PlayFrame: ; e4a37 (39:4a37) and BUTTONS jr nz, .pressed_button - ; high bits of wJumpTableIndex are recycled for some flags + ; high bits of wJumptableIndex are recycled for some flags ; this is set when the sequence finished - ld a, [wJumpTableIndex] + ld a, [wJumptableIndex] bit 7, a jr nz, .finish @@ -118,8 +118,8 @@ GFPresents_PlayFrame: ; e4a37 (39:4a37) ret .pressed_button - ; high bits of wJumpTableIndex are recycled for some flags - ld hl, wJumpTableIndex + ; high bits of wJumptableIndex are recycled for some flags + ld hl, wJumptableIndex set 6, [hl] .finish @@ -136,7 +136,7 @@ GFPresents_PlayFrame: ; e4a37 (39:4a37) GFPresents_HandleFrame: ; e4a6d (39:4a6d) ; Dispatch to the current scene handler - ld a, [wJumpTableIndex] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, .scenes @@ -156,7 +156,7 @@ GFPresents_HandleFrame: ; e4a6d (39:4a6d) dw GFPresents_SetDoneFlag GFPresents_NextScene: ; e4a88 (39:4a88) - ld hl, wJumpTableIndex + ld hl, wJumptableIndex inc [hl] ret @@ -257,7 +257,7 @@ GFPresents_PlacePresents: ; e4af4 (39:4af4) GFPresents_SetDoneFlag: ; e4b0d (39:4b0d) ; Tell GFPresents_PlayFrame and TitleScreenFrame (01:63da) that we're finished. - ld hl, wJumpTableIndex + ld hl, wJumptableIndex set 7, [hl] ret diff --git a/engine/overworld/init_map.asm b/engine/overworld/init_map.asm index f066ae4a..39873677 100644 --- a/engine/overworld/init_map.asm +++ b/engine/overworld/init_map.asm @@ -87,5 +87,5 @@ LoadFonts_NoOAMUpdate:: ; 65cb (1:65cb) ld a, $90 ldh [hWY], a call SafeUpdateSprites - call Functiond9e + call LoadStandardFont ret diff --git a/engine/pokemon/mail_2.asm b/engine/pokemon/mail_2.asm new file mode 100644 index 00000000..8e808948 --- /dev/null +++ b/engine/pokemon/mail_2.asm @@ -0,0 +1,901 @@ +ReadPartyMonMail: + ld a, [wCurPartyMon] + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l +ReadAnyMail: + push de + call ClearBGPalettes + call ClearSprites + call ClearTilemap + call DisableLCD + call LoadFontsExtra + pop de + call .LoadGFX + call EnableLCD + call WaitBGMap + ld a, [wBuffer3] + ld e, a + farcall LoadMailPalettes + call SetPalettes + xor a + ldh [hJoyPressed], a + call .loop + call ClearBGPalettes + call DisableLCD + call LoadStandardFont + jp EnableLCD + +.loop + call GetJoypad + ldh 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 PrintMailAndExit ; printer + pop af + ld [wJumptableIndex], a + jr .loop + +.LoadGFX: + ld h, d + ld l, e + push hl + ld a, BANK(sPartyMail) + call OpenSRAM + ld de, sPartyMon1MailAuthorID - sPartyMon1Mail + add hl, de + ld a, [hli] + ld [wBuffer1], a + ld a, [hli] + ld [wBuffer2], a + ld a, [hli] + ld [wCurPartySpecies], 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 [wBuffer3], a + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .done + pop bc + push de + jp hl +.done + ret + +MailGFXPointers: + 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 + +LoadSurfMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, SurfMailBorderGFX + ld c, 8 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailLaprasGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, SurfMailWaveGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + jr FinishLoadingSurfLiteBlueMailGFX + +LoadLiteBlueMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, LiteBlueMailBorderGFX + ld c, 8 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailDratiniGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, PortraitMailUnderlineGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + +FinishLoadingSurfLiteBlueMailGFX: + ld de, SurfLiteBlueMailSmallShapesGFX + ld c, 2 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld c, 2 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, SurfLiteBlueMailLargeShapesGFX + ld c, 8 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld c, 8 * LEN_1BPP_TILE + 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 + +LoadEonMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, EonMailBorder1GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, EonMailBorder2GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, EonMailBorder2GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, EonMailBorder1GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, SurfMailBorderGFX + 6 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailEeveeGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld hl, vTiles2 tile $3d + ld de, MailLargeCircleGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, EonMailBorder2GFX + ld c, 1 * LEN_1BPP_TILE + 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 + +LoadLovelyMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, LovelyMailBorderGFX + ld c, 5 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailPoliwagGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, LovelyMailUnderlineGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, LovelyMailLargeHeartGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, LovelyMailSmallHeartGFX + ld c, 1 * LEN_1BPP_TILE + 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 + +LovelyEonMail_PlaceIcons: + 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 + +LoadMorphMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld bc, 5 * LEN_1BPP_TILE + call MailGFX_GenerateMonochromeTilesColor2 + ld de, MorphMailBorderCornerGFX + 3 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MorphMailBorderCornerGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MorphMailBorderGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, EonMailBorder1GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MorphMailDividerGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailDittoGFX + ld c, 6 * LEN_1BPP_TILE + 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 + +LoadBlueSkyMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, EonMailBorder1GFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld a, $ff + ld bc, 1 tiles + call ByteFill + ld de, BlueSkyMailGrassGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, MailDragoniteGFX + ld c, 23 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, MailCloudGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, FlowerMailBorderGFX + 6 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MailCloudGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MailCloudGFX + 2 * LEN_1BPP_TILE + ld c, 2 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MailCloudGFX + 5 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + 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 + +Mail_Place6TileRow: + ld b, $6 +.loop + ld [hli], a + inc a + dec b + jr nz, .loop + ret + +LoadFlowerMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, FlowerMailBorderGFX + ld c, 8 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MailOddishGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + ld de, FlowerMailBorderGFX + 6 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, FlowerMailFlowerGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld c, 4 * LEN_1BPP_TILE + 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 + +LoadPortraitMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, PortraitMailBorderGFX + ld c, 5 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, PortraitMailUnderlineGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld hl, vTiles2 tile $3d + ld de, PortraitMailLargePokeballGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, PortraitMailSmallPokeballGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + + call DrawMailBorder2 + hlcoord 8, 15 + ld a, $36 + ld b, $a + call Mail_DrawRowLoop + call LovelyEonMail_PlaceIcons + ld a, $1 + ld [wUnownLetter], a + hlcoord 1, 10 + call PrepMonFrontpic + pop hl + jp MailGFX_PlaceMessage + +LoadMusicMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld de, MusicMailBorderGFX + ld c, 4 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MorphMailBorderGFX + ld c, 2 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailNatuGFX + ld c, 6 * LEN_1BPP_TILE + call LoadMailGFX_Color3 + xor a + ld bc, 1 tiles + call ByteFill + ld de, MusicMailLargeNoteGFX + ld c, 3 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, MusicMailSmallNoteGFX + ld c, 1 * LEN_1BPP_TILE + 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 + +LoadMirageMailGFX: + push bc + ld hl, vTiles2 tile $31 + ld bc, 5 * LEN_1BPP_TILE + call MailGFX_GenerateMonochromeTilesColor2 + ld de, BlueSkyMailGrassGFX + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, MailMewGFX + ld c, 18 * LEN_1BPP_TILE + call LoadMailGFX_Color2 + ld de, LiteBlueMailBorderGFX + 1 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + call LoadMailGFX_Color1 + ld de, LiteBlueMailBorderGFX + 6 * LEN_1BPP_TILE + ld c, 1 * LEN_1BPP_TILE + 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 + +MailGFX_GenerateMonochromeTilesColor2: +.loop + xor a + ld [hli], a + ld a, $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .loop + ret + +MailGFX_PlaceMessage: + ld bc, MAIL_STRUCT_LENGTH + ld de, wTempMail + ld a, BANK(sPartyMail) + call OpenSRAM + 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, [wBuffer3] + 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 + +Unreferenced_Functionb984e: +.loop + ld a, [hl] + xor $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .loop + ret + +DrawMailBorder: + 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 + +DrawMailBorder2: + 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 + +Mail_Place14TileAlternatingRow: + push af + ld b, 14 / 2 + jr Mail_PlaceAlternatingRow + +Mail_Place16TileAlternatingRow: + push af + ld b, 16 / 2 + jr Mail_PlaceAlternatingRow + +Mail_Place18TileAlternatingRow: + push af + ld b, 18 / 2 + +Mail_PlaceAlternatingRow: +.loop + ld [hli], a + inc a + ld [hli], a + dec a + dec b + jr nz, .loop + ld [hl], a + pop af + ret + +Mail_Place14TileAlternatingColumn: + push af + ld b, 14 / 2 + jr Mail_PlaceAlternatingColumn + +Mail_Place16TileAlternatingColumn: + push af + ld b, 16 / 2 + +Mail_PlaceAlternatingColumn: +.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 + +Mail_Draw7TileRow: + ld b, $7 + jr Mail_DrawRowLoop + +Mail_Draw13TileRow: + ld b, $d + jr Mail_DrawRowLoop + +Mail_Draw16TileRow: + ld b, $10 + jr Mail_DrawRowLoop + +Mail_DrawTopBottomBorder: + ld b, SCREEN_WIDTH - 2 + jr Mail_DrawRowLoop + +Mail_DrawFullWidthBorder: + ld b, SCREEN_WIDTH + +Mail_DrawRowLoop: +.loop + ld [hli], a + dec b + jr nz, .loop + ret + +Mail_DrawLeftRightBorder: + ld b, SCREEN_HEIGHT - 2 + ld de, SCREEN_WIDTH +.loop + ld [hl], a + add hl, de + dec b + jr nz, .loop + ret + +Mail_Draw2x2Graphic: + 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 + +Mail_Draw3x2Graphic: + 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 + +LoadMailGFX_Color1: +.loop + ld a, [de] + inc de + ld [hli], a + xor a + ld [hli], a + dec c + jr nz, .loop + ret + +LoadMailGFX_Color2: +.loop + xor a + ld [hli], a + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .loop + ret + +LoadMailGFX_Color3: +.loop + ld a, [de] + inc de + ld [hli], a + ld [hli], a + dec c + jr nz, .loop + ret + +INCLUDE "gfx/mail.asm" + +ItemIsMail: + ld a, d + ld hl, MailItems + ld de, 1 + jp IsInArray + +INCLUDE "data/items/mail_items.asm" |