diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-18 13:01:55 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-18 13:01:55 -0500 |
commit | 3f4044cd4628c156e975971ce0655d3d51917b87 (patch) | |
tree | 28882142ed38749204c6d7a4a1199c0585907ef4 /engine | |
parent | 6d47be8d8c02317a963c6ff5266a50a8674d285d (diff) |
engine/compose_mail.asm; ldpixel
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/compose_mail.asm | 498 | ||||
-rwxr-xr-x | engine/link.asm | 8 | ||||
-rwxr-xr-x | engine/mail.asm | 34 | ||||
-rwxr-xr-x | engine/namingscreen.asm | 8 | ||||
-rwxr-xr-x | engine/pokegear.asm | 4 | ||||
-rwxr-xr-x | engine/slot_machine.asm | 6 | ||||
-rwxr-xr-x | engine/sprites.asm | 2 | ||||
-rwxr-xr-x | engine/startmenu.asm | 2 |
8 files changed, 531 insertions, 31 deletions
diff --git a/engine/compose_mail.asm b/engine/compose_mail.asm new file mode 100755 index 000000000..35990431e --- /dev/null +++ b/engine/compose_mail.asm @@ -0,0 +1,498 @@ +ComposeMailMessage: ; 11e75 (mail?) + ld hl, wc6d0 + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call .InitBlankMail + call DelayFrame + +.loop + call .DoMailEntry + jr nc, .loop + + pop af + ld [hInMenu], a + pop af + ld [hMapAnims], a + ret + +.InitBlankMail: ; 11e9a (4:5e9a) + call ClearBGPalettes + call DisableLCD + call Function11c51 + ld de, VTiles0 tile $00 + ld hl, .MailIcon + ld bc, 8 tiles + ld a, BANK(.MailIcon) + call FarCopyBytes + xor a + ld hl, wc300 + ld [hli], a + ld [hl], a + + ; init mail icon + depixel 3, 2 + ld a, SPRITE_ANIM_INDEX_00 + call _InitSpriteAnimStruct + + ld hl, $2 + add hl, bc + ld [hl], $0 + call .InitCharset + ld a, $e3 + ld [rLCDC], a + call .initwc6d3 + ld b, SCGB_08 + call GetSGBLayout + call WaitBGMap + call WaitTop + ld a, %11100100 + call DmgToCgbBGPals + ld a, %11100100 + call Functioncf8 + call Function11be0 + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $10 + add hl, de + ld [hl], $4e + ret +; 11ef4 (4:5ef4) + +.MailIcon: ; 11ef4 +INCBIN "gfx/icon/mail2.2bpp" +; 11f74 + +.initwc6d3: ; 11f74 (4:5f74) + ld a, $21 + ld [wc6d3], a + ret +; 11f7a (4:5f7a) + +.Dummy: ; dummied out + db "メールを かいてね@" +; 11f84 + +.InitCharset: ; 11f84 (4:5f84) + call WaitTop + hlcoord 0, 0 + ld bc, 6 * SCREEN_WIDTH + ld a, $60 ; border + call ByteFill + hlcoord 0, 6 + ld bc, 12 * SCREEN_WIDTH + ld a, " " + call ByteFill + hlcoord 1, 1 + lb bc, 4, SCREEN_WIDTH - 2 + call ClearBox + ld de, MailEntry_Uppercase + +.PlaceMailCharset: ; 11fa9 (4:5fa9) + hlcoord 1, 7 + ld b, 6 +.next + ld c, SCREEN_WIDTH - 1 +.loop_ + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .loop_ + push de + ld de, SCREEN_WIDTH + 1 + add hl, de + pop de + dec b + jr nz, .next + ret + +.DoMailEntry: ; 11fc0 (4:5fc0) + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit_mail + call .DoJumptable + callba Function8cf62 + call .Update + call DelayFrame + and a + ret +.exit_mail + callab Function8cf53 + call ClearSprites + xor a + ld [hSCX], a + ld [hSCY], a + scf + ret + +.Update: ; 11feb (4:5feb) + xor a + ld [hBGMapMode], a + hlcoord 1, 1 + lb bc, 4, 18 + call ClearBox + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 2, 2 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret + +.DoJumptable: ; 12008 (4:6008) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.Jumptable: ; 12017 (4:6017) + dw .init_blinking_cursor + dw .process_joypad + + +.init_blinking_cursor: ; 1201b (4:601b) + depixel 9, 2 + ld a, SPRITE_ANIM_INDEX_09 + call _InitSpriteAnimStruct + ld a, c + ld [wc6d5], a + ld a, b + ld [wc6d6], a + ld hl, $1 + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + ld hl, wJumptableIndex + inc [hl] + ret + +.process_joypad: ; 1203a (4:603a) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and A_BUTTON + jr nz, .a + ld a, [hl] + and B_BUTTON + jr nz, .b + ld a, [hl] + and START + jr nz, .start + ld a, [hl] + and SELECT + jr nz, .select + ret + +.a + call Function12185 + cp $1 + jr z, .select + cp $2 + jr z, .b + cp $3 + jr z, .finished + call Function11c11 + call Function121ac + jr c, .start + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + inc [hl] + call Function11bd0 + ld [hl], $f2 + dec hl + ld [hl], $4e + ret + +.start + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $c + add hl, bc + ld [hl], $9 + ld hl, $d + add hl, bc + ld [hl], $5 + ret + +.b + call Function11bbc + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + dec [hl] + call Function11bd0 + ld [hl], $f2 + inc hl + ld [hl], $4e + ret + +.finished + call Function11bf7 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.select + ld hl, wcf64 + ld a, [hl] + xor $1 + ld [hl], a + jr nz, .switch_to_lowercase + ld de, MailEntry_Uppercase + call .PlaceMailCharset + ret +.switch_to_lowercase + ld de, MailEntry_Lowercase + call .PlaceMailCharset + ret + +Function120c1: ; 120c1 (4:60c1) + call Function1210c + ld hl, SpriteAnim1Sprite0d - SpriteAnim1 + add hl, bc + ld a, [hl] + ld e, a + swap e + ld hl, SpriteAnim1YOffset - SpriteAnim1 + add hl, bc + ld [hl], e + cp $5 + ld de, Unknown_120f8 + ld a, $0 + jr nz, .asm_120df + ld de, Unknown_12102 + ld a, $1 +.asm_120df + ld hl, SpriteAnim1Sprite0e - SpriteAnim1 + add hl, bc + add [hl] + ld hl, SpriteAnim1Sprite01 - SpriteAnim1 + add hl, bc + ld [hl], a + ld hl, SpriteAnim1Sprite0c - SpriteAnim1 + add hl, bc + ld l, [hl] + ld h, SpriteAnim1Index - SpriteAnim1 + add hl, de + ld a, [hl] + ld hl, SpriteAnim1XOffset - SpriteAnim1 + add hl, bc + ld [hl], a + ret +; 120f8 (4:60f8) + +Unknown_120f8: ; 120f8 + db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 +Unknown_12102: ; 12102 + db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 +; 1210c + +Function1210c: ; 1210c (4:610c) + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + ld a, [hl] + and D_LEFT + jr nz, .left + ld a, [hl] + and D_RIGHT + jr nz, .right + ret +.right + call Function1218b + and a + jr nz, .asm_12138 + ld hl, $c + add hl, bc + ld a, [hl] + cp $9 + jr nc, .asm_12135 + inc [hl] + ret +.asm_12135 + ld [hl], $0 + ret +.asm_12138 + cp $3 + jr nz, .asm_1213d + xor a +.asm_1213d + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.left + call Function1218b + and a + jr nz, .asm_12159 + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_12156 + dec [hl] + ret +.asm_12156 + ld [hl], $9 + ret +.asm_12159 + cp $1 + jr nz, .asm_1215f + ld a, $4 +.asm_1215f +rept 2 + dec a +endr + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.down + ld hl, $d + add hl, bc + ld a, [hl] + cp $5 + jr nc, .asm_12175 + inc [hl] + ret +.asm_12175 + ld [hl], $0 + ret +.up + ld hl, $d + add hl, bc + ld a, [hl] + and a + jr z, .asm_12182 + dec [hl] + ret +.asm_12182 + ld [hl], $5 + ret + +Function12185: ; 12185 (4:6185) + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + +Function1218b: ; 1218b (4:618b) + ld hl, $d + add hl, bc + ld a, [hl] + cp $5 + jr nz, .asm_121aa + ld hl, $c + add hl, bc + ld a, [hl] + cp $3 + jr c, .asm_121a4 + cp $6 + jr c, .asm_121a7 + ld a, $3 + ret +.asm_121a4 + ld a, $1 + ret +.asm_121a7 + ld a, $2 + ret +.asm_121aa + xor a + ret + +Function121ac: ; 121ac (4:61ac) + ld a, [wc6d7] + jp Function11b17 +; 121b2 (4:61b2) + +Function121b2: ; unreferenced + ld a, [wc6d2] + and a + ret z + cp $11 + jr nz, .asm_121c3 + push hl + ld hl, wc6d2 +rept 2 + dec [hl] +endr + jr .asm_121c8 + +.asm_121c3 + push hl + ld hl, wc6d2 + dec [hl] + +.asm_121c8 + call Function11bd0 + ld c, [hl] + pop hl +.asm_121cd + ld a, [hli] + cp $ff + jp z, Function11b27 + cp c + jr z, .asm_121d9 + inc hl + jr .asm_121cd + +.asm_121d9 + ld a, [hl] + jp Function11b23 +; 121dd + +MailEntry_Uppercase: ; 122dd + db "A B C D E F G H I J" + db "K L M N O P Q R S T" + db "U V W X Y Z , ? !" + db "1 2 3 4 5 6 7 8 9 0" + db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×" + db "lower DEL END " +; 1224f + +MailEntry_Lowercase: ; 1224f + db "a b c d e f g h i j" + db "k l m n o p q r s t" + db "u v w x y z . - /" + db "'d 'l 'm 'r 's 't 'v & ( )" + db "<``> <''> [ ] ' : ; " + db "UPPER DEL END " +; 122c1 diff --git a/engine/link.asm b/engine/link.asm index 28b420543..afc4f2d2e 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -3080,7 +3080,7 @@ Function29611: ; 29611 ; 2961b Function2961b: ; 2961b - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $e call _InitSpriteAnimStruct call Function29114 @@ -3090,7 +3090,7 @@ Function2961b: ; 2961b ; 2962c Function2962c: ; 2962c - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $e call _InitSpriteAnimStruct ld hl, $b @@ -3106,7 +3106,7 @@ Function2962c: ; 2962c ; 29649 Function29649: ; 29649 - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $f call _InitSpriteAnimStruct call Function29114 @@ -3120,7 +3120,7 @@ Function29649: ; 29649 Function29660: ; 29660 ld a, $e4 call Functioncf8 - lb de, $28, $58 + depixel 5, 11 ld a, $10 call _InitSpriteAnimStruct call Function29114 diff --git a/engine/mail.asm b/engine/mail.asm index 5748536dc..c0bc591b0 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -286,13 +286,13 @@ DeletePartyMonMail: ; 44765 (11:4765) ; 44781 (11:4781) -Function44781: ; 44781 +IsAnyMonHoldingMail: ; 44781 ld a, [PartyCount] and a - jr z, .asm_4479e + jr z, .no_mons ld e, a ld hl, PartyMon1Item -.asm_4478b +.loop ld d, [hl] push hl push de @@ -303,9 +303,9 @@ Function44781: ; 44781 ld bc, PARTYMON_STRUCT_LENGTH add hl, bc dec e - jr nz, .asm_4478b + jr nz, .loop -.asm_4479e +.no_mons and a ret ; 447a0 @@ -327,30 +327,30 @@ _KrisMailBoxMenu: ; 0x447a0 db "@" InitMail: ; 0x447b9 -; initialize wd0f2 and beyond with incrementing values, one per mail +; initialize wMailboxCount and beyond with incrementing values, one per mail ; set z if no mail ld a, BANK(sMailboxCount) call GetSRAMBank ld a, [sMailboxCount] call CloseSRAM - ld hl, wd0f2 + ld hl, wMailboxCount ld [hli], a and a jr z, .done ; if no mail, we're done - ; load values in memory with incrementing values starting at wd0f2 + ; load values in memory with incrementing values starting at wMailboxCount ld b, a - ld a, $1 + ld a, 1 .loop ld [hli], a inc a dec b jr nz, .loop .done - ld [hl], $ff ; terminate + ld [hl], -1 ; terminate - ld a, [wd0f2] + ld a, [wMailboxCount] and a ret ; 0x447da @@ -385,7 +385,7 @@ MailboxPC: ; 0x44806 xor a ld [OBPals + 8 * 6], a ld a, $1 - ld [wd0f1], a + ld [wCurMessageIndex], a .loop call InitMail ld hl, MenuData4494c @@ -394,7 +394,8 @@ MailboxPC: ; 0x44806 ld [hBGMapMode], a call InitScrollingMenu call UpdateSprites - ld a, [wd0f1] + + ld a, [wCurMessageIndex] ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a @@ -402,7 +403,8 @@ MailboxPC: ; 0x44806 ld a, [wd0e4] ld [OBPals + 8 * 6], a ld a, [MenuSelection2] - ld [wd0f1], a + ld [wCurMessageIndex], a + ld a, [wcf73] cp $2 jr z, .exit @@ -558,7 +560,7 @@ Function4484a: ; 0x4484a MenuData4494c: ; 0x4494c db %01000000 ; flags db 1, 8 ; start coords - db $a, $12 ; end coords + db 10, 18 ; end coords dw .MenuData2 db 1 ; default option @@ -566,7 +568,7 @@ MenuData4494c: ; 0x4494c db %00010000 ; flags db 4, 0 ; rows/columns? db 1 ; horizontal spacing? - dbw 0,wd0f2 ; text pointer + dbw 0, wMailboxCount ; text pointer dba Function447fb dbw 0,0 dbw 0,0 diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index 3b381a016..c62dc1a0f 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -173,7 +173,7 @@ Function117f5: ; 117f5 (4:57f5) ld hl, wc300 ld [hli], a ld [hl], a - lb de, $24, $20 + depixel 4, 4, 4, 0 ld a, SPRITE_ANIM_INDEX_0A call _InitSpriteAnimStruct ld hl, $1 @@ -230,7 +230,7 @@ Function11847: ; 11847 (4:5847) ld b, SPRITE_ANIM_INDEX_1E .asm_11873 ld a, b - lb de, $24, $20 + depixel 4, 4, 4, 0 call _InitSpriteAnimStruct ret @@ -400,10 +400,10 @@ Jumptable_11977: ; 11977 (4:5977) Function1197b: ; 1197b (4:597b) - lb de, $50, $18 + depixel 10, 3 call Function1189c jr nz, .asm_11985 - ld d, $40 + ld d, 8 * 8 .asm_11985 ld a, SPRITE_ANIM_INDEX_02 call _InitSpriteAnimStruct diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 02684aaab..424669b20 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -149,7 +149,7 @@ INCBIN "gfx/misc/fast_ship.2bpp" ; 90d32 Function90d32: ; 90d32 (24:4d32) - lb de, $24, $10 + depixel 4, 2, 4, 0 ld a, SPRITE_ANIM_INDEX_0D call _InitSpriteAnimStruct ld hl, $3 @@ -762,7 +762,7 @@ Function910e8: ; 910e8 Function910f9: ; 910f9 (24:50f9) call Function90da8 - lb de, $24, $54 + depixel 4, 10, 4, 4 ld a, SPRITE_ANIM_INDEX_14 call _InitSpriteAnimStruct ld hl, $3 diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 8318942fe..6f53bb6b3 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1037,7 +1037,7 @@ Function92d20: ; 92d20 call Function92fc0 push bc push af - lb de, $60, $68 + depixel 12, 13 ld a, SPRITE_ANIM_INDEX_06 call _InitSpriteAnimStruct ld hl, $e @@ -1096,7 +1096,7 @@ Function92d7e: ; 92d7e add hl, bc ld [hl], $0 push bc - lb de, $60, $00 + depixel 12, 0 ld a, SPRITE_ANIM_INDEX_07 call _InitSpriteAnimStruct pop bc @@ -2063,7 +2063,7 @@ Function932fc: ; 932fc (24:72fc) add hl, bc dec [hl] push bc - lb de, $60, $6c + depixel 12, 13, 0, 4 ld a, SPRITE_ANIM_INDEX_08 call _InitSpriteAnimStruct pop bc diff --git a/engine/sprites.asm b/engine/sprites.asm index e95894292..b8b4b2a47 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -615,7 +615,7 @@ endr dw .nine dw .ten dw .eleven - dw .twelve + dw .twelve ; blinking cursor dw .thirteen dw .fourteen dw .fifteen diff --git a/engine/startmenu.asm b/engine/startmenu.asm index ae6358014..94082ccad 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -1069,7 +1069,7 @@ StartMenuYesNo: ; 12cf5 Function12cfe: ; 12cfe (4:6cfe) ld de, wd002 - callba Function11e75 + callba ComposeMailMessage ld hl, PlayerName ld de, wd023 ld bc, NAME_LENGTH - 1 |