through NamingScreen_CreateRivalIcon

This commit is contained in:
PikalaxALT
2020-03-10 09:55:29 -04:00
parent 1689cb55a7
commit 98d63a5268
11 changed files with 232 additions and 615 deletions
+7 -7
View File
@@ -1470,8 +1470,8 @@ _0805E8E0:
bx r1
thumb_func_end TrySpawnObjectEvent
thumb_func_start sub_805E8E8
sub_805E8E8: @ 805E8E8
thumb_func_start MakeObjectTemplateFromObjectEventGraphicsInfo
MakeObjectTemplateFromObjectEventGraphicsInfo: @ 805E8E8
push {r4-r7,lr}
adds r6, r1, 0
adds r4, r2, 0
@@ -1515,7 +1515,7 @@ _0805E936:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_805E8E8
thumb_func_end MakeObjectTemplateFromObjectEventGraphicsInfo
thumb_func_start MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex
MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex: @ 805E940
@@ -1527,7 +1527,7 @@ MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex: @ 805E940
lsrs r1, 14
adds r1, r4
ldr r1, [r1]
bl sub_805E8E8
bl MakeObjectTemplateFromObjectEventGraphicsInfo
pop {r4}
pop {r0}
bx r0
@@ -1565,7 +1565,7 @@ AddPseudoObjectEvent: @ 805E978
lsrs r4, 24
add r3, sp, 0x18
mov r2, sp
bl sub_805E8E8
bl MakeObjectTemplateFromObjectEventGraphicsInfo
mov r0, sp
ldrh r1, [r0, 0x2]
ldr r0, _0805E9F0 @ =0x0000ffff
@@ -1649,7 +1649,7 @@ sprite_new: @ 805E9F8
add r3, sp, 0x1C
adds r0, r5, 0
mov r2, sp
bl sub_805E8E8
bl MakeObjectTemplateFromObjectEventGraphicsInfo
mov r1, sp
ldr r2, _0805EB3C @ =0x0000ffff
adds r0, r2, 0
@@ -1799,7 +1799,7 @@ sub_805EB44: @ 805EB44
add r3, sp, 0x18
adds r0, r6, 0
mov r2, sp
bl sub_805E8E8
bl MakeObjectTemplateFromObjectEventGraphicsInfo
mov r1, sp
ldr r2, _0805EC28 @ =0x0000ffff
adds r0, r2, 0
-549
View File
@@ -5,555 +5,6 @@
.text
thumb_func_start sub_809EC7C
sub_809EC7C: @ 809EC7C
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x3A
ldrsh r0, [r6, r1]
lsls r5, r0, 4
adds r5, r0
lsls r5, 2
ldr r1, _0809ECC4 @ =gSprites
adds r5, r1
movs r2, 0x3C
ldrsh r0, [r6, r2]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r4, r1
ldr r0, _0809ECC8 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809ECCC @ =0x00001e22
adds r0, r1
ldrb r0, [r0]
bl sub_809DE20
lsls r0, 24
lsrs r0, 24
adds r1, r5, 0
adds r2, r4, 0
bl sub_809ED88
ldrh r0, [r6, 0x2E]
adds r0, 0x1
strh r0, [r6, 0x2E]
movs r0, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809ECC4: .4byte gSprites
_0809ECC8: .4byte gNamingScreenData
_0809ECCC: .4byte 0x00001e22
thumb_func_end sub_809EC7C
thumb_func_start sub_809ECD0
sub_809ECD0: @ 809ECD0
movs r0, 0
bx lr
thumb_func_end sub_809ECD0
thumb_func_start sub_809ECD4
sub_809ECD4: @ 809ECD4
push {r4,r5,lr}
adds r3, r0, 0
movs r0, 0x3A
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r2, _0809ED40 @ =gSprites
adds r4, r0, r2
movs r0, 0x3C
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r5, r0, r2
ldrh r0, [r4, 0x26]
adds r0, 0x1
strh r0, [r4, 0x26]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7
ble _0809ED38
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
ldr r0, _0809ED44 @ =0x0000fffc
strh r0, [r4, 0x26]
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
ldrh r0, [r3, 0x30]
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
movs r1, 0x3
bl __modsi3
lsls r0, 24
lsrs r0, 24
bl sub_809DE20
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
adds r2, r5, 0
bl sub_809ED88
_0809ED38:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0809ED40: .4byte gSprites
_0809ED44: .4byte 0x0000fffc
thumb_func_end sub_809ECD4
thumb_func_start sub_809ED48
sub_809ED48: @ 809ED48
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3A
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0809ED84 @ =gSprites
adds r2, r0, r1
adds r3, r2, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r3]
ldrh r0, [r2, 0x26]
adds r0, 0x1
strh r0, [r2, 0x26]
lsls r0, 16
cmp r0, 0
blt _0809ED7C
movs r0, 0
strh r0, [r2, 0x26]
movs r0, 0x1
strh r0, [r4, 0x2E]
_0809ED7C:
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0809ED84: .4byte gSprites
thumb_func_end sub_809ED48
thumb_func_start sub_809ED88
sub_809ED88: @ 809ED88
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
ldr r0, _0809EDE0 @ =gUnknown_83E2388
lsls r4, r5, 1
adds r0, r4, r0
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 4
mov r1, r8
ldrb r2, [r1, 0x5]
movs r1, 0xF
ands r1, r2
orrs r1, r0
mov r0, r8
strb r1, [r0, 0x5]
ldr r0, _0809EDE4 @ =gUnknown_83E238E
adds r4, r0
ldrh r0, [r4]
bl GetSpriteTileStartByTag
adds r1, r6, 0
adds r1, 0x40
strh r0, [r1]
adds r6, 0x42
movs r1, 0x3F
ands r1, r5
ldrb r2, [r6]
movs r0, 0x40
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r6]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809EDE0: .4byte gUnknown_83E2388
_0809EDE4: .4byte gUnknown_83E238E
thumb_func_end sub_809ED88
thumb_func_start CreateBackOkSprites
CreateBackOkSprites: @ 809EDE8
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, _0809EE50 @ =gUnknown_83E25BC
movs r1, 0xCC
movs r2, 0x74
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r6, _0809EE54 @ =gSprites
adds r4, r6
ldr r0, _0809EE58 @ =gUnknown_83E2524
mov r8, r0
adds r0, r4, 0
mov r1, r8
bl SetSubspriteTables
adds r4, 0x3E
ldrb r0, [r4]
movs r5, 0x4
orrs r0, r5
strb r0, [r4]
ldr r0, _0809EE5C @ =gUnknown_83E25D4
movs r1, 0xCC
movs r2, 0x8C
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
adds r4, r6
adds r0, r4, 0
mov r1, r8
bl SetSubspriteTables
adds r4, 0x3E
ldrb r0, [r4]
orrs r0, r5
strb r0, [r4]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809EE50: .4byte gUnknown_83E25BC
_0809EE54: .4byte gSprites
_0809EE58: .4byte gUnknown_83E2524
_0809EE5C: .4byte gUnknown_83E25D4
thumb_func_end CreateBackOkSprites
thumb_func_start CreateUnderscoreSprites
CreateUnderscoreSprites: @ 809EE60
push {r4-r6,lr}
ldr r5, _0809EF0C @ =gNamingScreenData
ldr r0, [r5]
ldr r4, _0809EF10 @ =0x00001e16
adds r0, r4
ldrh r1, [r0]
subs r1, 0x5
ldr r0, _0809EF14 @ =gUnknown_83E2604
lsls r1, 16
asrs r1, 16
movs r2, 0x38
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
ldr r3, _0809EF18 @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldr r0, [r5]
adds r4, r0, r4
ldrh r1, [r4]
movs r5, 0
ldr r2, _0809EF1C @ =0x00001e28
adds r0, r2
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r5, r0
bcs _0809EF04
adds r6, r3, 0
_0809EEB2:
lsls r1, 16
asrs r4, r1, 16
movs r0, 0xC0
lsls r0, 10
adds r1, r0
asrs r1, 16
ldr r0, _0809EF20 @ =gUnknown_83E261C
movs r2, 0x3C
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
strh r5, [r0, 0x2E]
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r4, 0x8
lsls r4, 16
lsrs r1, r4, 16
ldr r0, _0809EF0C @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809EF1C @ =0x00001e28
adds r0, r2
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r5, r0
bcc _0809EEB2
_0809EF04:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809EF0C: .4byte gNamingScreenData
_0809EF10: .4byte 0x00001e16
_0809EF14: .4byte gUnknown_83E2604
_0809EF18: .4byte gSprites
_0809EF1C: .4byte 0x00001e28
_0809EF20: .4byte gUnknown_83E261C
thumb_func_end CreateUnderscoreSprites
thumb_func_start CreateInputTargetIcon
CreateInputTargetIcon: @ 809EF24
push {lr}
ldr r1, _0809EF44 @ =gUnknown_83E2394
ldr r0, _0809EF48 @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809EF4C @ =0x00001e28
adds r0, r2
ldr r0, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_0809EF44: .4byte gUnknown_83E2394
_0809EF48: .4byte gNamingScreenData
_0809EF4C: .4byte 0x00001e28
thumb_func_end CreateInputTargetIcon
thumb_func_start nullsub_54
nullsub_54: @ 809EF50
bx lr
thumb_func_end nullsub_54
thumb_func_start sub_809EF54
sub_809EF54: @ 809EF54
push {lr}
sub sp, 0x4
ldr r0, _0809EFA0 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809EFA4 @ =0x00001e34
adds r0, r1
ldrb r1, [r0]
movs r0, 0
bl sub_805C7C8
lsls r0, 24
lsrs r0, 24
ldr r1, _0809EFA8 @ =SpriteCallbackDummy
movs r2, 0
str r2, [sp]
movs r2, 0x38
movs r3, 0x25
bl AddPseudoObjectEvent
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r2, _0809EFAC @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
movs r1, 0x4
bl StartSpriteAnim
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0809EFA0: .4byte gNamingScreenData
_0809EFA4: .4byte 0x00001e34
_0809EFA8: .4byte SpriteCallbackDummy
_0809EFAC: .4byte gSprites
thumb_func_end sub_809EF54
thumb_func_start sub_809EFB0
sub_809EFB0: @ 809EFB0
push {r4,lr}
ldr r0, _0809EFE4 @ =gUnknown_83E2634
movs r1, 0x38
movs r2, 0x29
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r0, _0809EFE8 @ =gSprites
adds r4, r0
ldr r1, _0809EFEC @ =gUnknown_83E252C
adds r0, r4, 0
bl SetSubspriteTables
ldrb r0, [r4, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r4, 0x5]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809EFE4: .4byte gUnknown_83E2634
_0809EFE8: .4byte gSprites
_0809EFEC: .4byte gUnknown_83E252C
thumb_func_end sub_809EFB0
thumb_func_start sub_809EFF0
sub_809EFF0: @ 809EFF0
push {lr}
sub sp, 0xC
bl LoadMonIconPalettes
ldr r0, _0809F038 @ =gNamingScreenData
ldr r3, [r0]
ldr r1, _0809F03C @ =0x00001e34
adds r0, r3, r1
ldrh r0, [r0]
ldr r1, _0809F040 @ =SpriteCallbackDummy
movs r2, 0
str r2, [sp]
ldr r2, _0809F044 @ =0x00001e38
adds r3, r2
ldr r2, [r3]
str r2, [sp, 0x4]
movs r2, 0x1
str r2, [sp, 0x8]
movs r2, 0x38
movs r3, 0x28
bl CreateMonIcon
lsls r0, 24
lsrs r0, 24
ldr r2, _0809F048 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x5]
movs r2, 0xC
orrs r0, r2
strb r0, [r1, 0x5]
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_0809F038: .4byte gNamingScreenData
_0809F03C: .4byte 0x00001e34
_0809F040: .4byte SpriteCallbackDummy
_0809F044: .4byte 0x00001e38
_0809F048: .4byte gSprites
thumb_func_end sub_809EFF0
thumb_func_start sub_809F04C
sub_809F04C: @ 809F04C
push {r4,lr}
sub sp, 0x2C
ldr r0, _0809F0B8 @ =gUnknown_83E23C0
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x1C]
str r1, [sp, 0x20]
ldr r0, _0809F0BC @ =gUnknown_83E23C8
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x24]
str r1, [sp, 0x28]
ldr r1, _0809F0C0 @ =SpriteCallbackDummy
add r3, sp, 0x18
movs r0, 0
mov r2, sp
bl sub_805E8E8
mov r2, sp
add r0, sp, 0x1C
ldrh r1, [r0, 0x6]
strh r1, [r2]
add r4, sp, 0x24
ldrh r1, [r4, 0x4]
strh r1, [r2, 0x2]
ldr r1, _0809F0C4 @ =gUnknown_83E23BC
str r1, [sp, 0x8]
bl LoadSpriteSheet
adds r0, r4, 0
bl LoadSpritePalette
mov r0, sp
movs r1, 0x38
movs r2, 0x25
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, _0809F0C8 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x5]
movs r2, 0xC
orrs r0, r2
strb r0, [r1, 0x5]
add sp, 0x2C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809F0B8: .4byte gUnknown_83E23C0
_0809F0BC: .4byte gUnknown_83E23C8
_0809F0C0: .4byte SpriteCallbackDummy
_0809F0C4: .4byte gUnknown_83E23BC
_0809F0C8: .4byte gSprites
thumb_func_end sub_809F04C
thumb_func_start HandleKeyboardEvent
HandleKeyboardEvent: @ 809F0CC
push {r4,r5,lr}
+8 -37
View File
@@ -6,35 +6,6 @@
.section .rodata
.align 2
gUnknown_83E2388:: @ 83E2388
.2byte 0x0001, 0x0003, 0x0002
gUnknown_83E238E:: @ 83E238E
.2byte 0x0004, 0x0006, 0x0005
gUnknown_83E2394:: @ 83E2394
.4byte nullsub_54
.4byte sub_809EF54
.4byte sub_809EFB0
.4byte sub_809EFF0
.4byte sub_809F04C
gUnknown_83E23A8:: @ 83E23A8
obj_image_anim_frame 0, 10
obj_image_anim_frame 24, 10
obj_image_anim_frame 0, 10
obj_image_anim_frame 32, 10
obj_image_anim_jump 0
gUnknown_83E23BC:: @ 83E23BC
.4byte gUnknown_83E23A8
gUnknown_83E23C0:: @ 83E23C0
obj_tiles gUnknown_83E1980, 0x0900, 255
gUnknown_83E23C8:: @ 83E23C8
obj_pal gUnknown_8E98004, 255
gUnknown_83E23D0:: @ 83E23D0
.4byte sub_809F11C
.4byte KeyboardKeyHandler_Page
@@ -119,11 +90,11 @@ gUnknown_83E2480:: @ 83E2480
.4byte gUnknown_8418E69
sNamingScreenTemplates:: @ 83E248C
.4byte gUnknown_83E245C
.4byte gUnknown_83E2468
.4byte gUnknown_83E2474
.4byte gUnknown_83E2474
.4byte gUnknown_83E2480
.4byte gUnknown_83E245C @ NAMING_SCREEN_PLAYER
.4byte gUnknown_83E2468 @ NAMING_SCREEN_BOX
.4byte gUnknown_83E2474 @ NAMING_SCREEN_CAUGHT_MON
.4byte gUnknown_83E2474 @ NAMING_SCREEN_NAME_RATER
.4byte gUnknown_83E2480 @ NAMING_SCREEN_RIVAL
gUnknown_83E24A0:: @ 83E24A0
.4byte 0x00000000, 0x00000000
@@ -216,7 +187,7 @@ gUnknown_83E2570:: @ 83E2570
.4byte gUnknown_83E2558
gUnknown_83E2574:: @ 83E2574
spr_template 2, 4, gUnknown_83E24A0, gUnknown_83E2564, NULL, gDummySpriteAffineAnimTable, sub_809EC54
spr_template 2, 4, gUnknown_83E24A0, gUnknown_83E2564, NULL, gDummySpriteAffineAnimTable, SpriteCB_PageSwap
gUnknown_83E258C:: @ 83E258C
spr_template 3, 1, gUnknown_83E24B0, gUnknown_83E2564, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
@@ -233,10 +204,10 @@ gUnknown_83E25D4:: @ 83E25D4
gUnknown_83E25EC:: @ 83E25EC
spr_template 7, 5, gUnknown_83E24A8, gUnknown_83E2568, NULL, gDummySpriteAffineAnimTable, sub_809E700
gUnknown_83E2604:: @ 83E2604
sSpriteTemplate_InputArrow:: @ 83E2604
spr_template 10, 3, gUnknown_83E24A0, gUnknown_83E2564, NULL, gDummySpriteAffineAnimTable, sub_809E7F0
gUnknown_83E261C:: @ 83E261C
sSpriteTemplate_Underscore:: @ 83E261C
spr_template 11, 3, gUnknown_83E24A0, gUnknown_83E2564, NULL, gDummySpriteAffineAnimTable, sub_809E83C
gUnknown_83E2634:: @ 83E2634
+1
View File
@@ -128,6 +128,7 @@ void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2);
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
u8 ZCoordToPriority(u8 z);
void SetObjectSubpriorityByZCoord(u8 z, struct Sprite * sprite, u8 offset);
void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
// Exported data declarations
+1
View File
@@ -37,5 +37,6 @@ bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerSurfingNorth(void);
void player_get_pos_including_state_based_drift(s16 *x, s16 *y);
void sub_805CBE8(void);
u8 sub_805C7C8(u8 state, u8 gender);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
+1
View File
@@ -4899,5 +4899,6 @@ extern const u32 gEasyChatModeIcons_Tiles[];
extern const u32 gUnknown_8E982BC[];
extern const u32 gUnknown_8E98458[];
extern const u32 gUnknown_8E98398[];
extern const u16 gUnknown_8E98004[];
#endif //GUARD_GRAPHICS_H
+2 -2
View File
@@ -6,8 +6,8 @@
#define NAMING_SCREEN_PLAYER 0
#define NAMING_SCREEN_BOX 1
#define NAMING_SCREEN_CAUGHT_MON 2
#define NAMING_SCREEN_3 3
#define NAMING_SCREEN_WALDA 4 // Wrong name?
#define NAMING_SCREEN_NAME_RATER 3
#define NAMING_SCREEN_RIVAL 4
void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback);
+1 -1
View File
@@ -1967,7 +1967,7 @@ static void CB2_EggHatch_1(void)
species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES);
gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]);
personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0);
DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname);
DoNamingScreen(NAMING_SCREEN_NAME_RATER, gStringVar3, species, gender, personality, EggHatchSetMonNickname);
break;
case 1:
case -1:
+2 -2
View File
@@ -1637,7 +1637,7 @@ void ChangeBoxPokemonNickname(void)
species = GetBoxMonData(pokemon, MON_DATA_SPECIES, NULL);
gender = GetBoxMonGender(pokemon);
personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY, NULL);
DoNamingScreen(3, gStringVar2, species, gender, personality, ChangeBoxPokemonNickname_CB);
DoNamingScreen(NAMING_SCREEN_NAME_RATER, gStringVar2, species, gender, personality, ChangeBoxPokemonNickname_CB);
}
static void ChangeBoxPokemonNickname_CB(void)
@@ -1657,7 +1657,7 @@ void ChangePokemonNickname(void)
species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL);
gender = GetMonGender(&gPlayerParty[gSpecialVar_0x8004]);
personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL);
DoNamingScreen(3, gStringVar2, species, gender, personality, ChangePokemonNickname_CB);
DoNamingScreen(NAMING_SCREEN_NAME_RATER, gStringVar2, species, gender, personality, ChangePokemonNickname_CB);
}
static void ChangePokemonNickname_CB(void)
+207 -15
View File
@@ -1,21 +1,23 @@
#include "global.h"
#include "gflib.h"
#include "battle_message.h"
#include "graphics.h"
#include "event_data.h"
#include "event_object_movement.h"
#include "event_scripts.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "field_specials.h"
#include "help_system.h"
#include "naming_screen.h"
#include "new_menu_helpers.h"
#include "pokemon_icon.h"
#include "pokemon_storage_system.h"
#include "strings.h"
#include "task.h"
#include "trig.h"
#include "constants/help_system.h"
#include "constants/flags.h"
#include "constants/songs.h"
#include "constants/event_objects.h"
enum
{
@@ -137,13 +139,19 @@ bool8 IsCursorAnimFinished();
u8 GetCurrentPageColumnCount(void);
void CreatePageSwitcherSprites(void);
void sub_809EC20(void);
bool8 sub_809EC7C(struct Sprite * sprite);
bool8 sub_809ECD0(struct Sprite * sprite);
bool8 sub_809ECD4(struct Sprite * sprite);
bool8 sub_809ED48(struct Sprite * sprite);
bool8 PageSwapSpritesCB_Init(struct Sprite * sprite);
bool8 PageSwapSpritesCB_Idle(struct Sprite * sprite);
bool8 PageSwapSpritesCB_SwapHide(struct Sprite * sprite);
bool8 PageSwapSpritesCB_SwapShow(struct Sprite * sprite);
void sub_809ED88(u8 a0, struct Sprite * spr1, struct Sprite * spr2);
void CreateBackOkSprites(void);
void CreateUnderscoreSprites(void);
void CreateInputTargetIcon(void);
void NamingScreen_NoCreateIcon(void);
void NamingScreen_CreatePlayerIcon(void);
void NamingScreen_CreatePCIcon(void);
void NamingScreen_CreateMonIcon(void);
void NamingScreen_CreateRivalIcon(void);
void sub_809FA60(void);
bool8 NamingScreen_InitDisplayMode(void);
void NamingScreen_TurnOffScreen(void);
@@ -164,6 +172,8 @@ void sub_809FC34(void);
extern const struct SubspriteTable gUnknown_83E2504[];
extern const struct SubspriteTable gUnknown_83E250C[];
extern const struct SubspriteTable gUnknown_83E2524[];
extern const struct SubspriteTable gUnknown_83E252C[];
extern const struct SpriteTemplate gUnknown_83E2574;
extern const struct SpriteTemplate gUnknown_83E258C;
@@ -171,8 +181,8 @@ extern const struct SpriteTemplate gUnknown_83E25A4;
extern const struct SpriteTemplate gUnknown_83E25BC;
extern const struct SpriteTemplate gUnknown_83E25D4;
extern const struct SpriteTemplate gUnknown_83E25EC;
extern const struct SpriteTemplate gUnknown_83E2604;
extern const struct SpriteTemplate gUnknown_83E261C;
extern const struct SpriteTemplate sSpriteTemplate_InputArrow;
extern const struct SpriteTemplate sSpriteTemplate_Underscore;
extern const struct SpriteTemplate gUnknown_83E2634;
const u16 gUnknown_83E1800[] = INCBIN_U16("graphics/interface/naming_screen_83E1800.4bpp");
@@ -1115,15 +1125,197 @@ void sub_809EC20(void)
sprite->data[1] = gNamingScreenData->currentPage;
}
bool8 (*const gUnknown_83E2378[])(struct Sprite * sprite) = {
sub_809EC7C,
sub_809ECD0,
sub_809ECD4,
sub_809ED48
bool8 (*const sPageSwapSpritesCBs[])(struct Sprite * sprite) = {
PageSwapSpritesCB_Init,
PageSwapSpritesCB_Idle,
PageSwapSpritesCB_SwapHide,
PageSwapSpritesCB_SwapShow
};
void sub_809EC54(struct Sprite *sprite)
void SpriteCB_PageSwap(struct Sprite *sprite)
{
while (gUnknown_83E2378[sprite->data[0]](sprite))
while (sPageSwapSpritesCBs[sprite->data[0]](sprite))
;
}
bool8 PageSwapSpritesCB_Init(struct Sprite *sprite)
{
struct Sprite *sprite1 = &gSprites[sprite->data[6]];
struct Sprite *sprite2 = &gSprites[sprite->data[7]];
sub_809ED88(sub_809DE20(gNamingScreenData->currentPage), sprite1, sprite2);
sprite->data[0]++;
return FALSE;
}
bool8 PageSwapSpritesCB_Idle(struct Sprite *sprite)
{
struct Sprite *sprite1 = &gSprites[sprite->data[6]];
struct Sprite *sprite2 = &gSprites[sprite->data[7]];
return FALSE;
}
bool8 PageSwapSpritesCB_SwapHide(struct Sprite *sprite)
{
struct Sprite *sprite1 = &gSprites[sprite->data[6]];
struct Sprite *sprite2 = &gSprites[sprite->data[7]];
u8 page;
sprite1->pos2.y++;
if (sprite1->pos2.y > 7)
{
sprite->data[0]++;
sprite1->pos2.y = -4;
sprite1->invisible = TRUE;
page = sprite->data[1];
sub_809ED88(sub_809DE20((page + 1) % 3), sprite1, sprite2);
}
return FALSE;
}
bool8 PageSwapSpritesCB_SwapShow(struct Sprite *sprite)
{
struct Sprite *sprite1 = &gSprites[sprite->data[6]];
struct Sprite *sprite2 = &gSprites[sprite->data[7]];
sprite1->invisible = FALSE;
sprite1->pos2.y++;
if (sprite1->pos2.y >= 0)
{
sprite1->pos2.y = 0;
sprite->data[0] = 1;
}
return FALSE;
}
const u16 gUnknown_83E2388[] = {1, 3, 2};
const u16 gUnknown_83E238E[] = {4, 6, 5};
void sub_809ED88(u8 page, struct Sprite * sprite1, struct Sprite * sprite2)
{
sprite2->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_83E2388[page]);
sprite1->sheetTileStart = GetSpriteTileStartByTag(gUnknown_83E238E[page]);
sprite1->subspriteTableNum = page;
}
//
void CreateBackOkSprites(void)
{
u8 spriteId;
spriteId = CreateSprite(&gUnknown_83E25BC, 0xCC, 0x74, 0);
SetSubspriteTables(&gSprites[spriteId], gUnknown_83E2524);
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSprite(&gUnknown_83E25D4, 0xCC, 0x8C, 0);
SetSubspriteTables(&gSprites[spriteId], gUnknown_83E2524);
gSprites[spriteId].invisible = TRUE;
}
void CreateUnderscoreSprites(void)
{
u8 spriteId;
s16 xPos;
u8 i;
xPos = gNamingScreenData->inputCharBaseXPos - 5;
spriteId = CreateSprite(&sSpriteTemplate_InputArrow, xPos, 0x38, 0);
gSprites[spriteId].oam.priority = 3;
gSprites[spriteId].invisible = TRUE;
xPos = gNamingScreenData->inputCharBaseXPos;
for (i = 0; i < gNamingScreenData->template->maxChars; i++, xPos += 8)
{
spriteId = CreateSprite(&sSpriteTemplate_Underscore, xPos + 3, 0x3C, 0);
gSprites[spriteId].oam.priority = 3;
gSprites[spriteId].data[0] = i;
gSprites[spriteId].invisible = TRUE;
}
}
//--------------------------------------------------
// Icon creation (the thing you're naming or giving input to)
//--------------------------------------------------
void (*const sIconFunctions[])(void) = {
NamingScreen_NoCreateIcon,
NamingScreen_CreatePlayerIcon,
NamingScreen_CreatePCIcon,
NamingScreen_CreateMonIcon,
NamingScreen_CreateRivalIcon
};
void CreateInputTargetIcon(void)
{
sIconFunctions[gNamingScreenData->template->iconFunction]();
}
void NamingScreen_NoCreateIcon(void)
{
}
void NamingScreen_CreatePlayerIcon(void)
{
u8 rivalGfxId;
u8 spriteId;
rivalGfxId = sub_805C7C8(0, gNamingScreenData->monSpecies);
spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 0x38, 0x25, 0);
gSprites[spriteId].oam.priority = 3;
StartSpriteAnim(&gSprites[spriteId], 4);
}
void NamingScreen_CreatePCIcon(void)
{
u8 spriteId;
spriteId = CreateSprite(&gUnknown_83E2634, 0x38, 0x29, 0);
SetSubspriteTables(&gSprites[spriteId], gUnknown_83E252C);
gSprites[spriteId].oam.priority = 3;
}
void NamingScreen_CreateMonIcon(void)
{
u8 spriteId;
LoadMonIconPalettes();
spriteId = CreateMonIcon(gNamingScreenData->monSpecies, SpriteCallbackDummy, 0x38, 0x28, 0, gNamingScreenData->monPersonality, 1);
gSprites[spriteId].oam.priority = 3;
}
const union AnimCmd gUnknown_83E23A8[] = {
ANIMCMD_FRAME( 0, 10),
ANIMCMD_FRAME(24, 10),
ANIMCMD_FRAME( 0, 10),
ANIMCMD_FRAME(32, 10),
ANIMCMD_JUMP(0)
};
const union AnimCmd *const gUnknown_83E23BC[] = {
gUnknown_83E23A8
};
void NamingScreen_CreateRivalIcon(void)
{
const struct SpriteSheet sheet = {
gUnknown_83E1980, 0x900, 255
};
const struct SpritePalette palette = {
gUnknown_8E98004, 255
};
struct SpriteTemplate template;
const struct SubspriteTable * tables_p;
u8 spriteId;
MakeObjectTemplateFromObjectEventGraphicsInfo(OBJ_EVENT_GFX_RED_NORMAL, SpriteCallbackDummy, &template, &tables_p);
template.tileTag = sheet.tag;
template.paletteTag = palette.tag;
template.anims = gUnknown_83E23BC;
LoadSpriteSheet(&sheet);
LoadSpritePalette(&palette);
spriteId = CreateSprite(&template, 0x38, 0x25, 0);
gSprites[spriteId].oam.priority = 3;
}
+2 -2
View File
@@ -1223,13 +1223,13 @@ static void Task_OakSpeech25(u8 taskId)
GetDefaultName(sOakSpeechResources->unk_0010, 0);
if (sOakSpeechResources->unk_0010 == 0)
{
DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
}
else
{
ClearStdWindowAndFrameToTransparent(gTasks[taskId].data[13], 1);
RemoveWindow(gTasks[taskId].data[13]);
DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
DoNamingScreen(NAMING_SCREEN_RIVAL, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
}
DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1);
FreeAllWindowBuffers();