Merge pull request #233 from DizzyEggg/code_80521D0

code_80521D0.s (dungeon_message.c and dungeon_move.c)
This commit is contained in:
AnonymousRandomPerson 2024-10-26 17:11:16 -04:00 committed by GitHub
commit d8329f7eca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
132 changed files with 7298 additions and 12786 deletions

View File

@ -169,7 +169,7 @@ QuickSave:
movs r1, 0
movs r2, 0
movs r3, 0x20
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
b _08000892
.align 2, 0
_080007AC: .4byte gUnknown_2026E4E
@ -234,7 +234,7 @@ _08000822:
movs r1, 0
movs r2, 0
ldr r3, _08000838
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
movs r6, 0x3C
movs r4, 0x1
b _08000892
@ -248,7 +248,7 @@ _0800083C:
movs r1, 0
movs r2, 0
movs r3, 0
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
movs r4, 0x3
b _08000892
.align 2, 0
@ -258,7 +258,7 @@ _08000854:
movs r1, 0
movs r2, 0
ldr r3, _08000868
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
_08000860:
movs r4, 0x2
b _08000892
@ -358,7 +358,7 @@ _08000934:
movs r1, 0
movs r2, 0
movs r3, 0x20
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
movs r4, 0x2
b _080009A2
.align 2, 0
@ -374,7 +374,7 @@ _08000952:
ldr r3, _08000964
movs r1, 0
movs r2, 0
bl xxx_info_box_80141B4
bl CreateDialogueBoxAndPortrait
_0800095C:
movs r4, 0x1
b _080009A2

View File

@ -2325,9 +2325,9 @@ sub_8010C10:
str r1, [sp, 0x10]
movs r1, 0
movs r3, 0
bl sub_8014248
bl CreateMenuDialogueBoxAndPortrait
_08010C2C:
bl xxx_draw_string_80144C4
bl DrawDialogueBoxString
bl sub_8010960
add r0, sp, 0x14
bl sub_80144A4

View File

@ -5,8 +5,8 @@
.text
thumb_func_start sub_8014248
sub_8014248:
thumb_func_start CreateMenuDialogueBoxAndPortrait
CreateMenuDialogueBoxAndPortrait:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -277,7 +277,7 @@ _08014480:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8014248
thumb_func_end CreateMenuDialogueBoxAndPortrait
thumb_func_start sub_8014490
sub_8014490:
@ -311,8 +311,8 @@ _080144BC: .4byte gUnknown_202EC1C
_080144C0: .4byte gUnknown_202E744
thumb_func_end sub_80144A4
thumb_func_start xxx_draw_string_80144C4
xxx_draw_string_80144C4:
thumb_func_start DrawDialogueBoxString
DrawDialogueBoxString:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -1018,7 +1018,7 @@ _08014A72:
bx r0
.align 2, 0
_08014A84: .4byte gUnknown_202E744
thumb_func_end xxx_draw_string_80144C4
thumb_func_end DrawDialogueBoxString
thumb_func_start sub_8014A88
sub_8014A88:

View File

@ -1728,7 +1728,7 @@ _08040E6E:
ldr r0, _08040ECC
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r1, 0xD2
lsls r1, 1
adds r0, r6, 0

View File

@ -278,7 +278,7 @@ _08045FAC:
_08045FD0:
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08045FF2
.align 2, 0
_08045FDC: .4byte 0x00ff0008
@ -288,10 +288,10 @@ _08045FE8:
ldr r0, _08045FFC
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08045FF2:
ldrb r0, [r5, 0x2]
bl HandleOnPickupTutorial
bl TryDisplayItemPickupTutorialMessage
b _080460E0
.align 2, 0
_08045FFC: .4byte gPickedUpItemToolbox
@ -336,7 +336,7 @@ _0804602E:
_08046048:
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _080460E0
.align 2, 0
_08046054: .4byte gFormatItems
@ -379,7 +379,7 @@ _08046094:
_080460AC:
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _080460DA
.align 2, 0
_080460B8: .4byte gAvailablePokemonNames
@ -394,10 +394,10 @@ _080460C0:
ldr r0, _080460F4
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_080460DA:
ldrb r0, [r5, 0x2]
bl HandleOnPickupTutorial
bl TryDisplayItemPickupTutorialMessage
_080460E0:
add sp, 0xB8
pop {r3-r5}
@ -996,7 +996,7 @@ sub_804652C:
ldr r0, _080465A4
ldr r1, [r0]
mov r0, r10
bl SendMessage
bl TryDisplayDungeonLoggableMessage
mov r0, r9
ldrb r1, [r0]
movs r0, 0x1
@ -1156,7 +1156,7 @@ _080466B6:
ldr r2, [r0]
mov r0, r10
mov r1, sp
bl sub_8052364
bl TryDisplayDungeonLoggableMessage5
b _0804671E
.align 2, 0
_080466C4: .4byte gItemFellOutOfSight
@ -1202,7 +1202,7 @@ _0804670C:
ldr r2, [r0]
mov r0, r10
mov r1, sp
bl sub_8052364
bl TryDisplayDungeonLoggableMessage5
_0804671E:
add sp, 0x10
pop {r3-r5}
@ -1721,7 +1721,7 @@ _08046B0A:
ldr r4, _08046B38
add r4, sp
ldr r0, [r4]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08046C7C
.align 2, 0
_08046B2C: .4byte 0x0000052c
@ -1734,7 +1734,7 @@ _08046B3C:
ldr r5, _08046B50
add r5, sp
ldr r0, [r5]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08046C7C
.align 2, 0
_08046B4C: .4byte gItemLost
@ -1748,7 +1748,7 @@ _08046B54:
ldr r2, _08046C94
add r2, sp
ldr r0, [r2]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08046B68:
movs r3, 0
mov r9, r3

View File

@ -418,7 +418,7 @@ _08047462:
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
mov r0, r9
adds r1, r4, 0
bl TrySendImmobilizeSleepEndMsg
@ -475,7 +475,7 @@ _080474E2:
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _08047524
.align 2, 0
_0804750C: .4byte gAvailablePokemonNames
@ -486,7 +486,7 @@ _08047518:
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
_08047524:
adds r5, 0x8
subs r6, 0x1
@ -552,7 +552,7 @@ _08047596:
ldr r0, _080475C0
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_080475A8:
movs r3, 0x90
lsls r3, 2
@ -924,7 +924,7 @@ _0804786E:
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl TrySendImmobilizeSleepEndMsg
@ -962,7 +962,7 @@ _080478DC:
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _08047900
.align 2, 0
_080478F0: .4byte gUnknown_80F9510
@ -971,7 +971,7 @@ _080478F4:
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
_08047900:
movs r2, 0x1
str r2, [sp, 0x20]

View File

@ -4118,7 +4118,7 @@ sub_8051E7C:
ldr r0, _08051EB4
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _080520F6
.align 2, 0
_08051EB4: .4byte gUnknown_80FDDF0
@ -4378,7 +4378,7 @@ _0805207A:
ldr r0, _080520E8
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r0, 0x14
movs r1, 0x3C
bl sub_803E708
@ -4399,7 +4399,7 @@ _080520EC:
ldr r0, _08052108
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_080520F6:
add sp, 0x14
pop {r3-r5}
@ -4518,103 +4518,4 @@ _080521CA:
bx r1
thumb_func_end sub_805210C
thumb_func_start sub_80521D0
sub_80521D0:
push {r4-r6,lr}
movs r1, 0
ldr r5, _08052200
ldr r6, _08052204
ldr r4, _08052208
ldr r3, _0805220C
movs r2, 0
_080521DE:
ldr r0, [r4]
adds r0, r3
adds r0, r1
strb r2, [r0]
adds r1, 0x1
cmp r1, 0x9
ble _080521DE
movs r0, 0
str r0, [r5]
movs r0, 0x1
strb r0, [r6]
movs r0, 0
bl sub_8052210
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08052200: .4byte gUnknown_202F1E8
_08052204: .4byte gUnknown_203B434
_08052208: .4byte gDungeon
_0805220C: .4byte 0x0001c054
thumb_func_end sub_80521D0
thumb_func_start sub_8052210
sub_8052210:
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r5, _08052280
_0805221A:
lsls r0, r4, 6
ldr r1, [r5]
adds r0, r1
ldr r1, _08052284
adds r0, r1
ldr r1, _08052288
bl strcpy
adds r4, 0x1
cmp r4, 0x9
ble _0805221A
ldr r1, _08052280
ldr r0, [r1]
ldr r2, _0805228C
adds r0, r2
movs r3, 0
strb r3, [r0]
ldr r0, [r1]
adds r2, 0x1
adds r1, r0, r2
strh r3, [r1]
adds r2, 0x2
adds r1, r0, r2
strh r3, [r1]
adds r2, 0x2
adds r1, r0, r2
strh r3, [r1]
ldr r1, _08052290
adds r2, r0, r1
movs r1, 0x4
strh r1, [r2]
ldr r2, _08052294
adds r0, r2
str r3, [r0]
cmp r6, 0
beq _08052278
ldr r0, _08052298
ldr r0, [r0]
cmp r0, 0x3
bne _08052278
movs r0, 0
movs r1, 0
bl sub_803EAF0
movs r0, 0xB
bl sub_803E46C
_08052278:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08052280: .4byte gDungeon
_08052284: .4byte 0x0001bdd4
_08052288: .4byte gUnknown_80F7AE8
_0805228C: .4byte 0x0001c05f
_08052290: .4byte 0x0001c066
_08052294: .4byte 0x0001c06c
_08052298: .4byte gUnknown_202EDD0
thumb_func_end sub_8052210
.align 2,0

File diff suppressed because it is too large Load Diff

View File

@ -4122,7 +4122,7 @@ _08063AEC:
ldr r0, _08063B2C
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08063B3A
.align 2, 0
_08063B1C: .4byte gDungeon
@ -4134,7 +4134,7 @@ _08063B30:
ldr r0, _08063B50
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08063B3A:
movs r0, 0x78
movs r1, 0x1F
@ -4442,7 +4442,7 @@ _08063D70:
ldr r0, _08063DAC
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08063DBA
.align 2, 0
_08063D98: .4byte gDungeon
@ -4455,7 +4455,7 @@ _08063DB0:
ldr r0, _08063DD0
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08063DBA:
movs r0, 0x78
movs r1, 0x1F
@ -4914,7 +4914,7 @@ _0806414E:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
adds r3, r0, 0
b _08064162
.align 2, 0
@ -6385,7 +6385,7 @@ _08064CF2:
ldr r0, [r5]
cmp r0, 0x2
bne _08064CFC
bl sub_80532B4
bl DisplayMessageLog
_08064CFC:
ldr r0, [r5]
cmp r0, 0x3
@ -6817,7 +6817,7 @@ _08065062:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08065088
ldr r0, _08065094
@ -6846,7 +6846,7 @@ sub_806509C:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _080650B8
movs r0, 0
@ -7001,7 +7001,7 @@ sub_80651D0:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _080651F4
bl GetLeaderActionContainer
@ -7025,7 +7025,7 @@ sub_80651FC:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
adds r5, r0, 0
cmp r5, 0x1
bne _08065248
@ -8730,7 +8730,7 @@ _08065FFE:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _08066194
.align 2, 0
_0806600C: .4byte 0x0000065d

View File

@ -341,7 +341,7 @@ _08068BB2:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _08068BD0
.align 2, 0
_08068BC0: .4byte gUnknown_80FE168
@ -350,7 +350,7 @@ _08068BC4:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_08068BD0:
pop {r4-r7}
pop {r0}
@ -653,7 +653,7 @@ _08068E1C:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
add r4, sp, 0x3C
_08068E34:
add r0, sp, 0x214
@ -709,7 +709,7 @@ _08068E8E:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08068E34
_08068EA2:
@ -1028,7 +1028,7 @@ _08069104:
movs r0, 0x3C
movs r1, 0x49
bl sub_803E708
bl sub_80532B4
bl DisplayMessageLog
ldr r5, _08069198
ldr r2, [r5]
ldrb r0, [r2, 0x6]
@ -1071,7 +1071,7 @@ _08069104:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
adds r4, r0, 0
cmp r4, 0x1
bne _080691E0
@ -1079,7 +1079,7 @@ _08069104:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
ldr r0, [r5]
strb r4, [r0, 0x4]
ldr r0, [r5]
@ -1107,7 +1107,7 @@ _080691B4:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _080691E0
.align 2, 0
_080691C4: .4byte gUnknown_80FE2D0
@ -1353,7 +1353,7 @@ _08069384:
ldr r0, _080694A4
ldr r1, [r0]
mov r0, r8
bl sub_805239C
bl DisplayDungeonLoggableMessageTrue
bl sub_803E178
bl sub_8049ED4
_080693C6:

View File

@ -135,7 +135,7 @@ _08066ECC:
_08066F1E:
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08066F7E
.align 2, 0
_08066F28: .4byte 0xffffff00
@ -167,7 +167,7 @@ _08066F46:
ldr r0, _08066F98
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
ldr r0, _08066F9C
ldr r0, [r0]
ldr r2, _08066FA0
@ -314,7 +314,7 @@ _08067040:
_0806709E:
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _080670EE
.align 2, 0
_080670A8: .4byte gUnknown_202DEA8
@ -339,7 +339,7 @@ _080670CA:
ldr r0, _08067104
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
ldr r0, _08067108
ldr r0, [r0]
ldr r1, _0806710C
@ -390,7 +390,7 @@ sub_8067110:
bl sub_80464AC
adds r1, r0, 0
adds r0, r5, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
ldr r0, [r6]
str r0, [sp, 0x8]
adds r0, r5, 0
@ -498,7 +498,7 @@ _08067220:
_08067230:
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r0, 0x14
movs r1, 0x4C
bl sub_803E708
@ -677,7 +677,7 @@ _08067384:
ldr r0, _080673B8
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _080673C6
.align 2, 0
_080673B0: .4byte gFormatItems
@ -687,7 +687,7 @@ _080673BC:
ldr r0, _080673F8
ldr r1, [r0]
adds r0, r6, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_080673C6:
add r0, sp, 0x4
ldrb r0, [r0, 0x2]
@ -1109,14 +1109,14 @@ _08067708:
mov r1, sp
_08067716:
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _0806772A
_0806771E:
ldr r0, _08067738
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0806772A:
add sp, 0x12C
pop {r3,r4}
@ -1190,7 +1190,7 @@ sub_8067794:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _0806786C
.align 2, 0
_080677B0: .4byte gCannotFarewell
@ -1257,7 +1257,7 @@ _08067834:
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _0806786C
ldr r4, _0806787C
@ -1276,7 +1276,7 @@ _08067834:
movs r0, 0
adds r1, r6, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0806786C:
add sp, 0x40
pop {r4-r7}
@ -1401,7 +1401,7 @@ _0806794C:
_08067962:
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08067A56
.align 2, 0
_0806796C: .4byte gAvailablePokemonNames
@ -1441,7 +1441,7 @@ _0806798E:
mov r1, r10
movs r2, 0
movs r3, 0
bl sub_8055FA0
bl TryUseChosenMove
adds r0, r5, 0
bl EntityExists
lsls r0, 24
@ -1477,7 +1477,7 @@ _080679DE:
ldr r0, _08067A70
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08067A04:
ldrb r0, [r6, 0x7]
cmp r0, 0
@ -1869,7 +1869,7 @@ _08067D20:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08067D32
b _08067ED8

View File

@ -484,7 +484,7 @@ _0806A6C4:
beq _0806A6D2
adds r0, r6, 0
mov r1, r8
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0806A6D2:
add sp, 0x4
pop {r3}
@ -706,7 +706,7 @@ _0806A85C:
ldr r0, _0806A894
ldr r1, [r0]
movs r0, 0
bl sub_805239C
bl DisplayDungeonLoggableMessageTrue
_0806A87A:
adds r2, r4, 0
cmp r2, 0x17
@ -902,7 +902,7 @@ _0806A9E0:
_0806A9E6:
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0806AA02
.align 2, 0
_0806A9F0: .4byte gPtrLinkMoveOneUseWarningMessage
@ -912,7 +912,7 @@ _0806A9F4:
ldr r0, _0806AA08
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0806AA02:
pop {r4,r5}
pop {r0}

View File

@ -695,7 +695,7 @@ _0806F036:
ldr r2, [r0]
ldr r0, [sp, 0x70]
mov r1, r9
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _0806F0BC
.align 2, 0
_0806F098: .4byte gDungeon
@ -709,7 +709,7 @@ _0806F0B0:
ldr r2, [r0]
ldr r0, [sp, 0x70]
mov r1, r9
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
_0806F0BC:
ldr r1, [sp, 0x78]
cmp r1, 0

View File

@ -175,7 +175,7 @@ _08072894:
ldr r0, _080728D0
ldr r1, [r0]
mov r0, r9
bl sub_80528F4
bl DisplayDungeonLoggableMessage
b _08072928
.align 2, 0
_080728C8: .4byte gAvailablePokemonNames
@ -202,7 +202,7 @@ _080728D4:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_08072902:
movs r2, 0x1
str r2, [sp, 0xCC]
@ -370,7 +370,7 @@ _08072A0C:
ldr r0, _08072A4C
ldr r1, [r0]
mov r0, r9
bl sub_80528F4
bl DisplayDungeonLoggableMessage
b _08072A8C
.align 2, 0
_08072A44: .4byte gAvailablePokemonNames
@ -387,7 +387,7 @@ _08072A50:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
mov r0, r9
mov r1, sp
movs r2, 0x1
@ -421,7 +421,7 @@ _08072A92:
ldr r0, _08072AC4
ldr r1, [r0]
mov r0, r9
bl sub_80528F4
bl DisplayDungeonLoggableMessage
_08072AAE:
movs r0, 0x1
_08072AB0:

View File

@ -152,7 +152,7 @@ _080733FC:
ldr r0, _0807343C
ldr r1, [r0]
mov r0, r8
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r0, 0x7
mov r1, r9
ands r1, r0
@ -166,7 +166,7 @@ _080733FC:
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_8055FA0
bl TryUseChosenMove
movs r5, 0x1
b _08073456
.align 2, 0
@ -364,7 +364,7 @@ _0807359C:
ldr r0, _08073604
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r0, 0x7
mov r1, r8
ands r1, r0
@ -378,7 +378,7 @@ _0807359C:
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_8055FA0
bl TryUseChosenMove
ldr r2, _08073608
adds r1, r6, r2
ldrb r0, [r1]

View File

@ -165,7 +165,7 @@ _0807D634:
ldr r2, _0807D650
add r2, sp
ldr r0, [r2]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807D9F4
.align 2, 0
_0807D650: .4byte 0x00000d08
@ -585,7 +585,7 @@ _0807D996:
ldr r2, _0807D9C4
add r2, sp
ldr r0, [r2]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807D9EE
.align 2, 0
_0807D9B4: .4byte gUnknown_80F4468
@ -605,7 +605,7 @@ _0807D9E0:
ldr r3, _0807DA0C
add r3, sp
ldr r0, [r3]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807D9EE:
movs r0, 0x1
bl sub_807EC28
@ -663,7 +663,7 @@ _0807DA5C:
ldr r2, [r0]
adds r0, r5, 0
adds r1, r6, 0
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _0807DB5E
.align 2, 0
_0807DA68: .4byte gUnknown_80FC9C0
@ -818,7 +818,7 @@ _0807DB94:
_0807DBA0:
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807DC54
.align 2, 0
_0807DBAC: .4byte gUnknown_80FD08C
@ -878,7 +878,7 @@ _0807DBF4:
ldr r0, _0807DC2C
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807DC3A
.align 2, 0
_0807DC24: .4byte 0x0000fffc
@ -888,7 +888,7 @@ _0807DC30:
ldr r0, _0807DC60
ldr r1, [r0]
adds r0, r7, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807DC3A:
ldr r0, _0807DC64
ldr r0, [r0]
@ -953,7 +953,7 @@ _0807DCAC:
_0807DCB8:
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807DF0E
.align 2, 0
_0807DCC4: .4byte gUnknown_80FD3D0
@ -1192,7 +1192,7 @@ _0807DE74:
ldr r0, _0807DF30
ldr r1, [r0]
mov r0, r9
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r0, 0x28
movs r1, 0x2B
bl sub_803E708
@ -1334,7 +1334,7 @@ _0807DFC2:
ldr r2, [r0]
ldr r0, [sp, 0x8]
mov r1, r10
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _0807E174
.align 2, 0
_0807DFD0: .4byte gUnknown_80F96EC
@ -1351,7 +1351,7 @@ _0807DFD4:
ldr r2, [r0]
ldr r0, [sp, 0x8]
mov r1, r10
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
movs r5, 0
ldr r0, _0807E18C
lsls r1, r6, 2

View File

@ -228,7 +228,7 @@ _0807E816:
ldr r0, _0807E884
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807E844:
movs r5, 0
_0807E846:
@ -494,7 +494,7 @@ MudWaterSportEffect:
bl GetLeader
ldr r1, _0807EA68
ldr r1, [r1]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _0807EA8C
.align 2, 0
_0807EA5C: .4byte gUnknown_80F4EAC
@ -514,7 +514,7 @@ _0807EA6C:
bl GetLeader
ldr r1, _0807EA9C
ldr r1, [r1]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807EA8C:
pop {r0}
bx r0
@ -677,7 +677,7 @@ _0807EBA6:
bl GetLeader
ldr r1, _0807EC1C
ldr r1, [r1]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807EBD4:
ldr r4, _0807EC14
ldr r0, [r4]
@ -697,7 +697,7 @@ _0807EBD4:
bl GetLeader
ldr r1, _0807EC24
ldr r1, [r1]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_0807EC00:
ldr r0, [sp, 0x8]
add sp, 0xC
@ -856,7 +856,7 @@ _0807ED3A:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _0807EF32
.align 2, 0
_0807ED48: .4byte gDungeon
@ -1100,7 +1100,7 @@ _0807EF04:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0807EF32:
add sp, 0x1C
pop {r3-r5}
@ -1180,7 +1180,7 @@ sub_807EF84:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _0807EFEE
.align 2, 0
_0807EFD0: .4byte 0xffff0000
@ -1194,7 +1194,7 @@ _0807EFE2:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0807EFEE:
add sp, 0x4
pop {r4}
@ -1244,7 +1244,7 @@ _0807F036:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
beq _0807F04E
b _0807F158
@ -1378,7 +1378,7 @@ _0807F134:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0807F158:
add sp, 0x10
pop {r3-r5}
@ -1440,7 +1440,7 @@ _0807F1CE:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
beq _0807F204
_0807F1E6:
@ -1466,7 +1466,7 @@ _0807F204:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
movs r0, 0x2
b _0807F31C
.align 2, 0
@ -1588,7 +1588,7 @@ _0807F2F8:
ldr r1, [r0]
mov r0, sp
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
_0807F31A:
movs r0, 0
_0807F31C:
@ -1621,7 +1621,7 @@ sub_807F33C:
bl GetLeader
ldr r1, _0807F428
ldr r1, [r1]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
movs r6, 0
_0807F360:
movs r5, 0
@ -2037,7 +2037,7 @@ _0807F694:
ldr r0, [sp, 0xEC]
_0807F698:
mov r1, r8
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
b _0807F99C
.align 2, 0
_0807F6A0: .4byte 0xffff0000
@ -2051,7 +2051,7 @@ _0807F6A8:
ldr r2, [r0]
ldr r0, [sp, 0xEC]
mov r1, r8
bl sub_80522F4
bl TryDisplayDungeonLoggableMessage3
mov r0, r8
bl sub_8045888
lsls r0, 24

View File

@ -206,7 +206,7 @@ _08080A26:
_08080A2E:
ldr r1, [r0]
ldr r0, [sp, 0x14]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
b _08080A46
.align 2, 0
_08080A38: .4byte gUnknown_80FDACC
@ -214,7 +214,7 @@ _08080A3C:
ldr r0, _08080A58
ldr r1, [r0]
ldr r0, [sp, 0x14]
bl SendMessage
bl TryDisplayDungeonLoggableMessage
_08080A46:
add sp, 0x30
pop {r3-r5}

View File

@ -350,7 +350,7 @@ _08084484:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
beq _080844A4
b _080845D4
@ -399,7 +399,7 @@ _080844F0:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _080845D4
.align 2, 0
_080844FC: .4byte gDungeon
@ -421,7 +421,7 @@ _08084514:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
ldr r0, _0808453C
b _0808455E
.align 2, 0
@ -432,14 +432,14 @@ _08084540:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _080845D4
ldr r0, _080845B4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
ldr r0, _080845B8
_0808455E:
ldr r4, [r0]
@ -460,14 +460,14 @@ _08084582:
movs r0, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _080845C4
ldr r0, _080845C0
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
adds r1, r0, 0
cmp r1, 0x1
bne _08084582
@ -488,7 +488,7 @@ _080845C4:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08084582
_080845D4:
@ -608,7 +608,7 @@ _080846B4:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
b _08084768
.align 2, 0
_080846C0: .4byte gUnknown_80FA500
@ -617,7 +617,7 @@ _080846C4:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
bl DisplayDungeonMessage
mov r1, r8
movs r2, 0x2
ldrsh r0, [r1, r2]
@ -651,14 +651,14 @@ _08084716:
movs r0, 0
ldr r1, [r4]
movs r2, 0x1
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08084758
ldr r0, _08084754
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
adds r1, r0, 0
cmp r1, 0x1
bne _08084716
@ -679,7 +679,7 @@ _08084758:
ldr r1, [r0]
movs r0, 0
movs r2, 0
bl sub_8052B8C
bl DisplayDungeonYesNoMessage
cmp r0, 0x1
bne _08084716
_08084768:

View File

@ -1110,7 +1110,7 @@ _0809B14A:
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_8014248
bl CreateMenuDialogueBoxAndPortrait
ldr r0, _0809B184
ldr r0, [r0]
ldr r1, _0809B188
@ -1462,7 +1462,7 @@ _0809B3EA:
mov r1, r9
mov r2, r12
movs r3, 0
bl sub_8014248
bl CreateMenuDialogueBoxAndPortrait
_0809B3FA:
movs r0, 0x1
_0809B3FC:
@ -1681,7 +1681,7 @@ _0809B578: .4byte gUnknown_3001B64
sub_809B57C:
push {r4,r5,lr}
sub sp, 0x8
bl xxx_draw_string_80144C4
bl DrawDialogueBoxString
ldr r5, _0809B5C8
ldr r0, [r5]
ldr r1, [r0]

View File

@ -2,375 +2,7 @@
.section .rodata
#.incbin "baserom.gba", 0xF59C4, 0x4
.global gUnknown_80F59C8
gUnknown_80F59C8: @ 80F59C8
@ replacing .incbin "baserom.gba", 0xF59C8, 0x348
.byte 0x01, 0x00, 0x00, 0x00
.4byte sub_8057634
.byte 0x03, 0x00, 0x00, 0x00
.4byte YawnMoveAction
.byte 0x05, 0x00, 0x00, 0x00
.4byte NightmareMoveAction
.byte 0x0b, 0x00, 0x00, 0x00
.4byte sub_805783C
.byte 0x11, 0x00, 0x00, 0x00
.4byte EncoreMoveAction
.byte 0x14, 0x00, 0x00, 0x00
.4byte sub_8057974
.byte 0x15, 0x00, 0x00, 0x00
.4byte PainSplitMoveAction
.byte 0x16, 0x00, 0x00, 0x00
.4byte TormentMoveAction
.byte 0x18, 0x00, 0x00, 0x00
.4byte sub_8057BC4
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x20, 0x00, 0x00, 0x00
.4byte WhirlpoolMoveAction
.byte 0x21, 0x00, 0x00, 0x00
.4byte sub_8057D7C
.byte 0x23, 0x00, 0x00, 0x00
.4byte sub_8057D9C
.byte 0x25, 0x00, 0x00, 0x00
.4byte SmokescreenMoveAction
.byte 0x2d, 0x00, 0x00, 0x00
.4byte sub_8057FCC
.byte 0x2f, 0x00, 0x00, 0x00
.4byte sub_8057FF4
.byte 0x30, 0x00, 0x00, 0x00
.4byte sub_805805C
.byte 0x34, 0x00, 0x00, 0x00
.4byte sub_805816C
.byte 0x39, 0x00, 0x00, 0x00
.4byte sub_8058270
.byte 0x3b, 0x00, 0x00, 0x00
.4byte sub_80582C4
.byte 0x3e, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x3f, 0x00, 0x00, 0x00
.4byte sub_8058430
.byte 0x40, 0x00, 0x00, 0x00
.4byte sub_8058478
.byte 0x42, 0x00, 0x00, 0x00
.4byte sub_80584C0
.byte 0x43, 0x00, 0x00, 0x00
.4byte sub_8058548
.byte 0x47, 0x00, 0x00, 0x00
.4byte sub_8058580
.byte 0x48, 0x00, 0x00, 0x00
.4byte BrickBreakMoveAction
.byte 0x49, 0x00, 0x00, 0x00
.4byte sub_8058638
.byte 0x4c, 0x00, 0x00, 0x00
.4byte sub_80586DC
.byte 0x4d, 0x00, 0x00, 0x00
.4byte sub_8058770
.byte 0x4e, 0x00, 0x00, 0x00
.4byte sub_80587E8
.byte 0x53, 0x00, 0x00, 0x00
.4byte sub_8058838
.byte 0x55, 0x00, 0x00, 0x00
.4byte sub_8058858
.byte 0x5b, 0x00, 0x00, 0x00
.4byte sub_80588B8
.byte 0x5c, 0x00, 0x00, 0x00
.4byte sub_80588F4
.byte 0x5d, 0x00, 0x00, 0x00
.4byte sub_8058930
.byte 0x60, 0x00, 0x00, 0x00
.4byte sub_8058A18
.byte 0x6a, 0x00, 0x00, 0x00
.4byte sub_8058BF0
.byte 0x74, 0x00, 0x00, 0x00
.4byte sub_8058E5C
.byte 0x78, 0x00, 0x00, 0x00
.4byte sub_8058FBC
.byte 0x83, 0x00, 0x00, 0x00
.4byte sub_80590D4
.byte 0x85, 0x00, 0x00, 0x00
.4byte sub_8059190
.byte 0x87, 0x00, 0x00, 0x00
.4byte sub_80591E4
.byte 0x89, 0x00, 0x00, 0x00
.4byte SkillSwapMoveAction
.byte 0x8b, 0x00, 0x00, 0x00
.4byte sub_8059424
.byte 0x8c, 0x00, 0x00, 0x00
.4byte sub_805946C
.byte 0x8e, 0x00, 0x00, 0x00
.4byte sub_8059528
.byte 0x93, 0x00, 0x00, 0x00
.4byte sub_8059540
.byte 0x95, 0x00, 0x00, 0x00
.4byte sub_80595A0
.byte 0x96, 0x00, 0x00, 0x00
.4byte sub_80595EC
.byte 0x9f, 0x00, 0x00, 0x00
.4byte sub_80598CC
.byte 0xa2, 0x00, 0x00, 0x00
.4byte sub_8059928
.byte 0xa4, 0x00, 0x00, 0x00
.4byte sub_8059988
.byte 0xaa, 0x00, 0x00, 0x00
.4byte sub_8059A2C
.byte 0xab, 0x00, 0x00, 0x00
.4byte sub_8059AA8
.byte 0xac, 0x00, 0x00, 0x00
.4byte sub_8059AB8
.byte 0xb1, 0x00, 0x00, 0x00
.4byte sub_8059AF8
.byte 0xbc, 0x00, 0x00, 0x00
.4byte sub_8059D00
.byte 0xc0, 0x00, 0x00, 0x00
.4byte sub_8059D48
.byte 0xc2, 0x00, 0x00, 0x00
.4byte sub_8059D98
.byte 0xc4, 0x00, 0x00, 0x00
.4byte sub_8059DA4
.byte 0xc5, 0x00, 0x00, 0x00
.4byte sub_8059DB4
.byte 0xc6, 0x00, 0x00, 0x00
.4byte sub_8059DC4
.byte 0xc8, 0x00, 0x00, 0x00
.4byte sub_8059E0C
.byte 0xcf, 0x00, 0x00, 0x00
.4byte TriAttackMoveAction
.byte 0xd1, 0x00, 0x00, 0x00
.4byte sub_805A120
.byte 0xd2, 0x00, 0x00, 0x00
.4byte sub_805A210
.byte 0xd5, 0x00, 0x00, 0x00
.4byte sub_805A258
.byte 0xd6, 0x00, 0x00, 0x00
.4byte sub_805A2A0
.byte 0xdc, 0x00, 0x00, 0x00
.4byte RolePlayMoveAction
.byte 0xe0, 0x00, 0x00, 0x00
.4byte sub_805A3DC
.byte 0xe4, 0x00, 0x00, 0x00
.4byte sub_805A464
.byte 0xed, 0x00, 0x00, 0x00
.4byte CurseMoveAction
.byte 0xee, 0x00, 0x00, 0x00
.4byte sub_805A568
.byte 0xf3, 0x00, 0x00, 0x00
.4byte TickleMoveAction
.byte 0xf6, 0x00, 0x00, 0x00
.4byte sub_805A688
.byte 0xf9, 0x00, 0x00, 0x00
.4byte KnockOffMoveAction
.byte 0x07, 0x01, 0x00, 0x00
.4byte SecretPowerMoveAction
.byte 0x08, 0x01, 0x00, 0x00
.4byte sub_805AC90
.byte 0x0a, 0x01, 0x00, 0x00
.4byte sub_805AD04
.byte 0x0b, 0x01, 0x00, 0x00
.4byte sub_805AD34
.byte 0x0d, 0x01, 0x00, 0x00
.4byte sub_805AD54
.byte 0x10, 0x01, 0x00, 0x00
.4byte sub_805AE3C
.byte 0x13, 0x01, 0x00, 0x00
.4byte sub_805AE74
.byte 0x14, 0x01, 0x00, 0x00
.4byte sub_805AECC
.byte 0x15, 0x01, 0x00, 0x00
.4byte PresentMoveAction
.byte 0x16, 0x01, 0x00, 0x00
.4byte sub_805AFA4
.byte 0x19, 0x01, 0x00, 0x00
.4byte sub_805B028
.byte 0x1b, 0x01, 0x00, 0x00
.4byte sub_805B074
.byte 0x1c, 0x01, 0x00, 0x00
.4byte sub_805B0BC
.byte 0x23, 0x01, 0x00, 0x00
.4byte sub_805B17C
.byte 0x26, 0x01, 0x00, 0x00
.4byte WrapMoveAction
.byte 0x28, 0x01, 0x00, 0x00
.4byte sub_805B264
.byte 0x35, 0x01, 0x00, 0x00
.4byte sub_805B324
.byte 0x39, 0x01, 0x00, 0x00
.4byte DestinyBondMoveAction
.byte 0x3a, 0x01, 0x00, 0x00
.4byte sub_805B388
.byte 0x44, 0x01, 0x00, 0x00
.4byte sub_805B3E0
.byte 0x46, 0x01, 0x00, 0x00
.4byte sub_805B454
.byte 0x47, 0x01, 0x00, 0x00
.4byte MimicMoveAction
.byte 0x48, 0x01, 0x00, 0x00
.4byte sub_805B53C
.byte 0x49, 0x01, 0x00, 0x00
.4byte LeechSeedMoveAction
.byte 0x4b, 0x01, 0x00, 0x00
.4byte sub_805B668
.byte 0x4f, 0x01, 0x00, 0x00
.4byte sub_805B910
.byte 0x55, 0x01, 0x00, 0x00
.4byte sub_805B808
.byte 0xe2, 0x00, 0x00, 0x00
.4byte sub_805A408
.global gNaturePowerMoveTable
gNaturePowerMoveTable: @ 80F5D10
@ replacing .incbin "baserom.gba", 0xF5D10, 0x260
.byte 0xdb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x76, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x76, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0xfb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0xfb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0xfb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x76, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0xdb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x76, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0xff, 0x00, 0x00, 0x00
.4byte sub_8058580
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x7f, 0x00, 0x00, 0x00
.4byte sub_80583D8
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x7c, 0x00, 0x00, 0x00
.4byte sub_8059050
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0xfb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8057C88
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x91, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0xdb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0xdb, 0x00, 0x00, 0x00
.4byte sub_8055620
.byte 0x1e, 0x00, 0x00, 0x00
.4byte sub_8055620
.global gUnknown_80F5F70
gUnknown_80F5F70: @ 80F5F70
@ -14613,24 +14245,3 @@ gUnknown_810697C: @ 810697C
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.4byte gUnknown_8103E40
.string "pksdir0\0"
.align 2,0
.global gUnknown_8106990
gUnknown_8106990: @ 8106990
@ replacing .incbin "baserom.gba", 0x106990, 0x2C
.byte 0x01, 0x00, 0x54, 0x00, 0xf0, 0xff, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x54, 0x00
.byte 0x6a, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gUnknown_81069BC
gUnknown_81069BC: @ 81069BC
@ replacing .incbin "baserom.gba", 0x1069BC, 0x18
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gUnknown_81069D4
gUnknown_81069D4: @ 81069D4
@ replacing .incbin "baserom.gba", 0x1069D4, 0x20
.byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00

View File

@ -0,0 +1,18 @@
#ifndef GUARD_CALLED_MOVE_DATA_H
#define GUARD_CALLED_MOVE_DATA_H
#include "structs/dungeon_entity.h"
#include "structs/str_moves.h"
typedef bool8 (*MoveCallback)(Entity *pokemon, Entity *target, Move *move, s32 param_4);
struct CalledMove
{
u16 moveID;
MoveCallback callback;
};
#define METRONOME_AVAILABLE_CALLED_MOVES 105
extern const struct CalledMove gMetronomeCalledMoves[METRONOME_AVAILABLE_CALLED_MOVES];
extern const struct CalledMove gNaturePowerCalledMoves[];
#endif

View File

@ -5,20 +5,32 @@
#include "structs/menu.h"
#include "structs/str_text.h"
struct MonPortraitMsg
{
OpenedFile *faceFile;
void *faceData;
Position pos;
u8 spriteId; // Which mon's sprite to use. For example Kecleon has multiple sprites depending on whether it's green or purple.
bool8 flip; // Whether the mon's sprite is flipped.
u8 unkE;
};
// code_80130A8.s
extern void sub_8013E54(void);
extern void sub_8013F84(void);
extern void sub_80140B4(UnkTextStruct2 *);
extern void sub_80140DC(void);
extern void sub_8014114(void);
extern void xxx_info_box_80141B4(const u8 *, u32, OpenedFile **, u16);
extern void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32);
extern s32 sub_80144A4(s32 *);
extern void sub_80151C0(u32, u8 *);
extern u32 sub_80154F0(void);
extern void sub_80155F0(void);
extern void xxx_draw_string_80144C4(void);
extern void PrintFormatStringOnWindow(u32, u32, const u8 *, u32 windowId, u32);
extern void xxx_format_string(const u8 *, u8 *, u8 *, u32);
void sub_8013E54(void);
void sub_8013F84(void);
void sub_80140B4(UnkTextStruct2 *);
void sub_80140DC(void);
void sub_8014114(void);
void CreateDialogueBoxAndPortrait(const u8 *, u32, struct MonPortraitMsg *, u16);
void CreateYesNoDialogueBoxAndPortrait_DefaultYes(const u8 *text, struct MonPortraitMsg *monPortraitPtr, u16 param_3);
void CreateYesNoDialogueBoxAndPortrait_DefaultNo(const u8 *text, struct MonPortraitMsg *monPortraitPtr, u16 param_3);
void CreateMenuDialogueBoxAndPortrait(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, struct MonPortraitMsg *, u32);
s32 sub_80144A4(s32 *);
void sub_80151C0(u32, u8 *);
u32 sub_80154F0(void);
void sub_80155F0(void);
void DrawDialogueBoxString(void);
void PrintFormatStringOnWindow(u32, u32, const u8 *, u32 windowId, u32);
u8 *xxx_format_string(const u8 *, u8 *, u8 *, u32);
#endif // GUARD_CODE_80130A8_H

View File

@ -4,6 +4,7 @@
#include "file_system.h"
#include "structs/str_text.h"
#include "structs/str_wonder_mail.h"
#include "code_80130A8.h"
// size: 0xA8
struct unkStruct_203B2FC
@ -13,13 +14,7 @@ struct unkStruct_203B2FC
unkStruct_802F204 unk8;
/* 0x30 */ u8 jobSlotIndex;
/* 0x34 */ WonderMail *jobInfo;
/* 0x38 */ OpenedFile *faceFile;
/* 0x3C */ u8 *faceData;
u16 unk40;
u16 unk42;
u8 unk44;
u8 unk45;
u8 unk46;
/* 0x38 */ struct MonPortraitMsg monPortrait;
UnkTextStruct2 unk48[4];
};
@ -27,4 +22,4 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon);
u32 sub_802DBD4(void);
void sub_802DC00(void);
#endif // GUARD_CODE_802DB28_H
#endif // GUARD_CODE_802DB28_H

View File

@ -1,8 +0,0 @@
#ifndef GUARD_CODE_80521D0_H
#define GUARD_CODE_80521D0_H
#include "structs/dungeon_entity.h"
void SendMessage(Entity *pokemon, const char message[]);
#endif // GUARD_CODE_80521D0_H

View File

@ -3,6 +3,6 @@
#include "structs/dungeon_entity.h"
s32 CalculateStatusTurns(Entity *target, s16 *turnRange, bool8 factorCurerSkills);
s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills);
#endif // GUARD_808417C_H

View File

@ -2,6 +2,7 @@
#define GUARD_CODE_80869E4_H
#include "structs/dungeon_entity.h"
#include "dungeon_message.h"
// size: 0x8
typedef struct unkStruct_202F3D0
@ -24,7 +25,7 @@ void sub_8086598(void);
void sub_80865E8(void);
void sub_808663C(void);
void sub_8086690(void);
void sub_80866C4(const u8 *dialogue);
void sub_80866C4(const struct DungeonDialogueStruct *dialogue);
void sub_8086738(void);
void sub_8086764(void);
void sub_8086794(void);
@ -39,4 +40,4 @@ void sub_8086910(Entity *entity);
void sub_808692C(void);
void sub_80869E4(Entity *, s32, u8, s8);
#endif // GUARD_CODE_80869E4_H
#endif // GUARD_CODE_80869E4_H

View File

@ -19,6 +19,7 @@ enum MoveFlag2
MOVE_FLAG_SEALED = 1 << 0,
MOVE_FLAG2_UNK4 = 1 << 2,
MOVE_FLAG_TEMPORARY = 1 << 3, // Used for moves copied by Mimic.
MOVE_FLAG2_x10 = 1 << 4, // Checked with pressure's pp loss
MOVE_FLAG_REPLACE = 1 << 5 // Used for moves copied by Sketch.
};

54
include/dungeon_message.h Normal file
View File

@ -0,0 +1,54 @@
#ifndef GUARD_DUNGEON_MESSAGE_H
#define GUARD_DUNGEON_MESSAGE_H
#include "structs/dungeon_entity.h"
#include "code_80130A8.h"
struct MonDialogueSpriteInfo
{
s16 species;
u8 spriteId;
};
struct DungeonDialogueStruct
{
u16 unk0;
u8 unk2;
u8 unk3;
s16 unk4;
s16 unk6;
const u8 *str;
};
void sub_80521D0(void);
void sub_8052210(bool8 a0);
// These functions display the string if certain conditions are met. The conditions differ depending on the function. The string is then saved to the message log.
void TryDisplayDungeonLoggableMessage(Entity *pokemon, const u8 *str);
void TryDisplayDungeonLoggableMessage2(Entity *pokemon, const u8 *str);
void TryDisplayDungeonLoggableMessage3(Entity *attacker, Entity *target, const u8 *str);
void TryDisplayDungeonLoggableMessage4(Entity *attacker, Entity *target, const u8 *str);
void TryDisplayDungeonLoggableMessage5(Entity *pokemon, Position *pos, const u8 *str);
// As opposed to the above - these always display the string and save it in the message log. False/True stand for an unknown argument. Not sure what the practical difference is between these.
void DisplayDungeonLoggableMessage(Entity *pokemon, const u8 *str);
void DisplayDungeonLoggableMessageFalse(Entity *pokemon, const u8 *str);
void DisplayDungeonLoggableMessageTrue(Entity *pokemon, const u8 *str);
void xxx_draw_string_80524F0(void);
void sub_80526D0(s32 r0);
void sub_8052740(s32 a0);
void DisplayDungeonMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, bool8 a2);
void DisplayDungeonDialogue(const struct DungeonDialogueStruct *dialogueInfo);
bool32 DisplayDungeonYesNoMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, bool32 defaultYes);
s32 DisplayDungeonMenuMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, const MenuItem *menuItems, u16 unkArg);
void sub_8052D44(s16 *ids, Entity *leader, Entity *partner);
void TryDisplayGeneralTutorialMessage(void);
void TryDisplayItemPickupTutorialMessage(u8 itemId);
void DisplayYouReachedDestFloorStr(void);
void sub_8052FB8(const u8 *str);
const u8 *GetCurrentDungeonName(void);
void ResetMessageLog(void);
bool32 DisplayMessageLog(void);
#endif // GUARD_DUNGEON_MESSAGE_H

View File

@ -4,6 +4,7 @@
#include "file_system.h"
#include "structs/menu.h"
#include "structs/str_text.h"
#include "code_80130A8.h"
#define FELICITY_BANK_ACTION_WITHDRAW 0
#define FELICITY_BANK_ACTION_DEPOSIT 1
@ -19,15 +20,8 @@ typedef struct FelicityBankWork
MenuItem unk14[8];
u16 unk54[8];
unkStructFor8013AA0 unk64;
/* 0x94 */ OpenedFile *faceFile;
/* 0x98 */ u8 *faceData;
u16 unk9C;
u16 unk9E;
u8 unkA0;
u8 unkA1;
u8 unkA2;
u8 unkA3;
OpenedFile **unkA4;
/* 0x94 */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unkA8[4];
} FelicityBankWork;
@ -36,4 +30,4 @@ void DestroyFelicityBank(void);
void DrawTeamMoneyBox(u32);
u32 FelicityBankCallback(void);
#endif // GUARD_FELICITY_BANK_H
#endif // GUARD_FELICITY_BANK_H

View File

@ -699,6 +699,7 @@
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) // 0xF0
#define AB_BUTTONS (A_BUTTON | B_BUTTON)
#define JOY_EXCL_DPAD 0x030F
// interrupt flags

View File

@ -5,6 +5,7 @@
#include "structs/menu.h"
#include "structs/str_text.h"
#include "structs/str_moves.h"
#include "code_80130A8.h"
// size: 0x18C
typedef struct GulpinShopWork
@ -24,15 +25,8 @@ typedef struct GulpinShopWork
u16 unk68[8];
MenuStruct unk78;
u8 fillC8[0x118 - 0xC8];
/* 0x118 */ OpenedFile *faceFile;
/* 0x11C */ u8 *faceData;
u16 unk120;
u16 unk122;
u8 unk124;
u8 unk125;
u8 unk126;
u8 unk127;
OpenedFile **unk128;
/* 0x118 */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unk12C[4];
} GulpinShopWork;

View File

@ -33,14 +33,8 @@ typedef struct unkStruct_203B27C
u16 unkBC[8];
MenuStruct unkCC;
u8 fill11C[0x16C - 0x11C];
/* 0x16C */ OpenedFile *faceFile;
/* 0x170 */ u8 *faceData;
u16 unk174;
u16 unk176;
u8 unk178;
u8 unk179;
u8 unk17A;
OpenedFile **unk17C;
/* 0x16C */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unk180[4];
} unkStruct_203B27C;
@ -48,4 +42,4 @@ bool8 sub_801FB50(u32 mode);
u32 sub_801FC40(void);
void sub_801FD7C(void);
#endif // GUARD_GULPIN_SHOP_801FB50_H
#endif // GUARD_GULPIN_SHOP_801FB50_H

View File

@ -18,7 +18,7 @@ enum KangaskhanStorageStates
KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9,
};
enum KangaskhanStorageMenuActions
enum KangaskhanStorageMenuActions
{
MENU_CANCEL = 1,
MENU_STORE = 2,
@ -45,14 +45,8 @@ struct KangaskhanStorageWork
u16 unk4C[5];
MenuStruct unk58;
unkStructFor8013AA0 unkA8;
/* 0xD8 */ OpenedFile *faceFile;
/* 0xDC */ u8 *faceData; // Written to but never read
u16 unkE0; // Written to but never read
u16 unkE2; // Written to but never read
bool8 unkE4;
u8 unkE5; // Written to but never read
u8 unkE6; // Written to but never read
OpenedFile **unkE8;
/* 0xD8 */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unkEC[4];
};

View File

@ -63,15 +63,8 @@ typedef struct KecleonBrosWork1
/* 0x34 */ MenuItem menuItems[8];
u16 unk74[8];
/* 0x84 */ MenuStruct menu;
/* 0xD4 */ OpenedFile *faceFile;
/* 0xD8 */ u8 *faceData;
u16 unkDC;
u16 unkDE;
u8 unkE0;
u8 unkE1;
u8 unkE2;
u8 unkE3;
OpenedFile **unkE4;
/* 0xD4 */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unkE8[4];
} KecleonBrosWork1;

View File

@ -28,15 +28,8 @@ typedef struct MakuhitaDojoWork1
/* 0x14 */ s32 menuAction;
MenuItem unk18[4];
u8 fill38[0x58 - 0x38];
/* 0x58 */ OpenedFile *faceFile;
/* 0x5C */ u8 *faceData;
u16 unk60;
u16 unk62;
u8 unk64;
u8 unk65;
u8 unk66;
u8 unk67;
OpenedFile** unk68;
/* 0x58 */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unk6C[4];
} MakuhitaDojoWork1;

View File

@ -41,7 +41,7 @@ void sub_8013984(MenuInputStruct * param_1);
void sub_8013A54(MenuInputStruct *param_1);
void sub_8013A7C(MenuInputStruct *param_1);
void AddMenuCursorSprite_(MenuInputStruct *, u8 *);
void nullsub_34(MenuInputStructSub *);
void nullsub_34(MenuInputStructSub *, s32 a1);
void sub_8013AA0(unkStructFor8013AA0 *);
u32 sub_8013BBC(unkStructFor8013AA0 *);

View File

@ -76,9 +76,9 @@ s16 GetInternalNo(s16 index);
s32 CalculateEXPGain(s16 index, s32 level);
s16 GetPokemonEvolveConditons(s16 index, unkEvolve *);
u8 GetPokemonOverworldPalette(s16 index, u32 r1);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 r1);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 spriteId);
OpenedFile *OpenPokemonDialogueSpriteFile(s16 index);
OpenedFile *GetDialogueSpriteDataPtr(s16 index);
OpenedFile *GetDialogueSpriteDataPtr(s32 index);
s32 GetUnownIndex(s16 index);
void GenerateHiddenPower(HiddenPower *);
s32 GetEvolutionSequence(PokemonStruct1 *pokemon, EvolveStage *);

View File

@ -8,17 +8,11 @@ typedef struct PostOfficeWork
{
/* 0x0 */ u8 state;
/* 0x4 */ s32 currMenuChoice;
/* 0x8 */ OpenedFile *faceFile;
/* 0xC */ u8 *faceData;
u16 unk10;
u16 unk12;
u8 unk14;
u8 unk15;
u8 unk16;
/* 0x8 */ struct MonPortraitMsg monPortrait;
} PostOfficeWork;
void CleanHelperPelipper(void);
bool8 CreateHelperPelipperMenu(s16 speciesID);
u32 HelperPelipperCallback(void);
#endif // GUARD_POST_OFFICE_GUIDE1_H
#endif // GUARD_POST_OFFICE_GUIDE1_H

View File

@ -9,14 +9,7 @@ typedef struct SavePakWrite
/* 0x0 */ u32 state;
s32 unk4;
/* 0x8 */ u32 saveStatus;
/* 0xC */ OpenedFile *faceFile;
/* 0x10 */ u8 *faceData;
u16 unk14;
u16 unk16;
u8 unk18;
u8 unk19;
u8 unk1A;
u8 unk1B;
/* 0xC */ struct MonPortraitMsg monPortrait;
/* 0x1C */ u16 pokeID;
} SavePakWrite;
@ -25,4 +18,4 @@ u32 GetSavePakStatus(void);
void PrepareSavePakWrite(s16 pokemonID);
bool8 WriteSavePak(void);
#endif // GUARD_SAVE_WRITE_H
#endif // GUARD_SAVE_WRITE_H

View File

@ -260,7 +260,7 @@ typedef struct EntityInfo
/* 0xF8 */ bool8 speedStageChanged; // Toggled when pokemon is movement speed is sped up
/* 0xF9 */ u8 unkF9;
/* 0xFA */ u8 terrifiedTurns; // Doubles as a bool for whether the Pokémon is terrified.
u8 expMultiplier;
/* 0xFB */ u8 expMultiplier;
// Set to true if the player makes a teammate use their held item.
// This is done by going to the teammate's held item in the toolbox and selecting "Use".
/* 0xFC */ bool8 useHeldItem;
@ -318,7 +318,7 @@ typedef struct EntityInfo
/* 0x16C */ Position targetPos;
/* 0x170 */ Position pixelPos;
u32 unk174;
u16 unk178;
u16 abilityEffectFlags; // See enum AbilityEffectFlags
/* 0x17A */ u16 mimicMoveIDs[MAX_MON_MOVES]; // All moves that Mimic has copied (not sure on size...)
// Previous value of targetPosition for movement, 1 and 2 moves ago.
/* 0x184 */ Unk_Entity_x184 unk184[4];
@ -381,6 +381,21 @@ enum MovementFlag
MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY = 1 << 15 // Set if the Pokémon is petrified and the leader cures them by swapping places.
};
enum AbilityEffectFlags
{
ABILITY_FLAG_ARENA_TRAP = 1 << 0,
ABILITY_FLAG_SHADOW_TAG = 1 << 1,
ABILITY_FLAG_MAGNET_PULL = 1 << 2,
ABILITY_FLAG_STATIC = 1 << 3,
ABILITY_FLAG_EFFECT_SPORE_PRLZ = 1 << 4,
ABILITY_FLAG_POISON_POINT = 1 << 5,
ABILITY_FLAG_EFFECT_SPORE_PSN = 1 << 6,
ABILITY_FLAG_EFFECT_SPORE_SLP = 1 << 7,
ABILITY_FLAG_FLAME_BODY = 1 << 8,
ABILITY_FLAG_CUTE_CHARM = 1 << 9,
ABILITY_FLAG_STENCH = 1 << 10,
};
enum ShopkeeperMode
{
SHOPKEEPER_MODE_NORMAL,
@ -422,7 +437,7 @@ enum ExpMultiplier
{
EXP_HALVED, // 0.5x when fainting a mon with only the regular attack and no moves
EXP_REGULAR, // 1x
EXP_BOOSTED, // 1.5x so far use not found, but most likely linked moves ; to be confirmed once more code is decompiled
EXP_BOOSTED, // 1.5x when using linked moves
};
static inline bool8 ExpMultiplierChanged(EntityInfo *info)

View File

@ -211,6 +211,33 @@ struct unkStruct_Dungeon64C
u32 unk4;
};
#define UNK_1BBD4_STR_COUNT 10
struct UnkStructDungeon1BDD4
{
u8 unk0[UNK_1BBD4_STR_COUNT][64];
u8 unk1C054[UNK_1BBD4_STR_COUNT]; // 0x280
u8 unk1C05E; // 0x28A
u8 unk1C05F; // 0x28B
s16 unk1C060; // 0x28C
s16 unk1C062; // 0x29E
s16 unk1C064; // 0x290
s16 unk1C066; // 0x292
s16 unk1C068; // 0x294
u32 unk1C06C; // 0x298
};
#define MESSAGE_LOG_STRINGS_COUNT 20
#define MESSAGE_LOG_BUFFER_SIZE 60
struct MessageLogString
{
u8 unk0;
u8 unk1;
u8 unk2;
u8 str[MESSAGE_LOG_BUFFER_SIZE];
};
// size: 0x1CEDC
typedef struct Dungeon
{
@ -234,6 +261,7 @@ typedef struct Dungeon
u8 unk11;
s16 unk12;
s16 unk14;
s16 unk16;
u32 unk18[(0xB8 - 0x18) / 4];
Entity *unkB8;
Entity *unkBC;
@ -379,11 +407,9 @@ typedef struct Dungeon
/* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX];
/* 0x181E4 */ OpenedFile *paletFile;
/* 0x181E8 */ UnkDungeonGlobal_unk181E8_sub unk181e8;
u8 fill18220[0x1C05E - 0x1822C];
u8 unk1C05E;
u8 fill1C05F[0x1C06C - 0x1C05F];
u32 unk1C06C;
u8 fill1C070[0x1C570 - 0x1C070];
u8 fill18220[0x1BDD4 - 0x1822C];
struct UnkStructDungeon1BDD4 unk1BDD4;
struct MessageLogString messageLogStrings[MESSAGE_LOG_STRINGS_COUNT];
/* 0x1C570 */ DungeonLocation unk1C570;
/* 0x1C574 */ UnkDungeonGlobal_unk1C574 unk1C574;
/* 0x1C590 */ UnkDungeonGlobal_unk1C590 unk1C590[4];

View File

@ -32,6 +32,39 @@ struct unkStruct_80B8848
u32 xxx_call_draw_char(s32, s32, u32, u32, u32);
struct UnkDrawStringStruct;
struct UnkDrawStringStruct
{
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unkA;
s32 unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u8 unk20;
u8 unk21;
u8 fill22;
u8 fill23;
const u8* (*unk24)(const u8 *, const u8 *, struct UnkDrawStringStruct*);
u8 fill28;
u8 fill29;
u8 fill2A;
u8 fill2B;
u32 unk2C;
u8 fill30;
u8 fill31;
u8 fill32;
u8 fill33;
u32 unk34;
};
void RestoreUnkTextStruct_8006518(UnkTextStruct2 *);
void sub_8006554(UnkTextStruct1 *, u32 *, u32 *, u16 *, u32, const UnkTextStruct2 *, u8, u32, UnkTextStruct2_sub *, u8);
void sub_80073B8(s32);
@ -41,6 +74,8 @@ void sub_800792C(u32, s32, s32, s32, u32);
void sub_8007A78(u32, s32, s32, s32, u32);
void sub_8007B7C(u32, s32, s32, s32, u32);
void sub_8007E20(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4, u32 *a5, u32 a6);
const u8 *xxx_get_next_char_from_string(const u8 *a1, u32 *a0);
const u8 *xxx_handle_format_global(const u8 *str, struct UnkDrawStringStruct *unkStrPtr);
// text.s
extern const struct unkChar *GetCharacter(s32);

View File

@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C4
UnkTextStruct2 unk35C[4];
UnkTextStruct2 unk3BC[4];
Item unk41C;
/* 0x420 */ OpenedFile *faceFile;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
/* 0x420 */ struct MonPortraitMsg monPortrait;
u32 unk430;
/* 0x434 */ u8 formattedString[0x100];
/* 0x534 */ s32 wonderMailMethod;
@ -39,4 +33,4 @@ typedef struct WonderMailStruct_203B2C4
unkStruct_802F204 unk53C;
} WonderMailStruct_203B2C4;
#endif // GUARD_THANK_YOU_WONDER_MAIL_H
#endif // GUARD_THANK_YOU_WONDER_MAIL_H

View File

@ -52,15 +52,8 @@ typedef struct WigglytuffShop3Work
MenuItem unk1C[8];
u16 unk5C[8];
MenuStruct unk6C;
/* 0xBC */ OpenedFile *faceFile;
/* 0xC0 */ u8 *faceData;
u16 unkC4;
u16 unkC6;
u8 unkC8;
u8 unkC9;
u8 unkCA;
u8 fillCB;
OpenedFile **unkCC;
/* 0xBC */ struct MonPortraitMsg monPortrait;
struct MonPortraitMsg *monPortraitPtr;
UnkTextStruct2 unkD0[4];
u32 unk130;
u32 unk134;

View File

@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C0
UnkTextStruct2 unk35C[4];
UnkTextStruct2 unk3BC[4];
/* 0x41C */ u32 unkfill; // ItemSlot?
/* 0x420 */ OpenedFile *faceFile;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
/* 0x420 */ struct MonPortraitMsg monPortrait;
/* 0x430 */ u8 padding3[0x534 - 0x430];
u32 unk534;
s32 unk538; // A7 << 3
@ -40,4 +34,4 @@ typedef struct WonderMailStruct_203B2C0
/* 0x544 */ s16 speciesNum;
} WonderMailStruct_203B2C0;
#endif // GUARD_WONDER_MAIL_H
#endif // GUARD_WONDER_MAIL_H

View File

@ -234,10 +234,8 @@ SECTIONS {
asm/code_804AFAC.o(.text);
src/code_804AFAC.o(.text);
asm/code_804FD30.o(.text);
src/code_80521D0.o(.text);
asm/code_80521D0.o(.text);
src/charge_move.o(.text);
src/move_util.o(.text);
src/dungeon_message.o(.text);
src/dungeon_move.o(.text);
src/move_actions.o(.text);
src/status_actions.o(.text);
src/move_checks.o(.text);
@ -556,8 +554,10 @@ SECTIONS {
src/move_checks.o(.rodata);
data/data_80F5668.o(.rodata);
src/dungeon_pokemon_attributes.o(.rodata);
src/called_move_data.o(.rodata);
data/data_80F59C8.o(.rodata);
src/charge_move.o(.rodata);
src/dungeon_message.o(.rodata);
src/dungeon_move.o(.rodata);
data/data_8106A4C.o(.rodata);
src/code_806CD90.o(.rodata);
src/type_effectiveness.o(.data);

306
src/called_move_data.c Normal file
View File

@ -0,0 +1,306 @@
#include "global.h"
#include "called_move_data.h"
#include "constants/move_id.h"
extern bool8 sub_8057634(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805783C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057974(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057BC4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057C88(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057D7C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057D9C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057FCC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8057FF4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805805C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805816C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058270(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80582C4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80583D8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058430(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058478(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80584C0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058548(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058638(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80586DC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058770(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80587E8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058838(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058858(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80588B8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80588F4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058930(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058A18(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058BF0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8058FBC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80590D4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059190(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80591E4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059424(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805946C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059540(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80595A0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_80598CC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059928(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059988(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059AA8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059AB8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059AF8(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059D00(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059D48(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059D98(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059DA4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059DB4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059DC4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059E0C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A120(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A210(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A258(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A2A0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A3DC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A464(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A688(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AD04(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AD34(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AD54(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AE3C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AE74(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AECC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805AFA4(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B028(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B074(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B0BC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B264(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B324(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B388(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B3E0(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B454(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B53C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B668(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B910(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805B808(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_805A408(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 HandleRegularDamagingMove(Entity *pokemon, Entity *target, Move *move, s32 param_4);
extern bool8 sub_8059050(Entity *pokemon, Entity *target, Move *move, s32 param_4);
// Todo: move this data to some better place once the file structure is better understood
// These are random
const struct CalledMove gMetronomeCalledMoves[METRONOME_AVAILABLE_CALLED_MOVES] =
{
{MOVE_IRON_TAIL, sub_8057634},
{MOVE_YAWN, YawnMoveAction},
{MOVE_NIGHTMARE, NightmareMoveAction},
{MOVE_CHARM, sub_805783C},
{MOVE_ENCORE, EncoreMoveAction},
{MOVE_SUPER_FANG, sub_8057974},
{MOVE_PAIN_SPLIT, PainSplitMoveAction},
{MOVE_TORMENT, TormentMoveAction},
{MOVE_SWAGGER, sub_8057BC4},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_WHIRLPOOL, WhirlpoolMoveAction},
{MOVE_FAKE_TEARS, sub_8057D7C},
{MOVE_SPITE, sub_8057D9C},
{MOVE_SMOKESCREEN, SmokescreenMoveAction},
{MOVE_FLATTER, sub_8057FCC},
{MOVE_WILL_O_WISP, sub_8057FF4},
{MOVE_RETURN, sub_805805C},
{MOVE_FLAME_WHEEL, sub_805816C},
{MOVE_GUST, sub_8058270},
{MOVE_DISABLE, sub_80582C4},
{MOVE_CRUNCH, sub_80583D8},
{MOVE_BITE, sub_8058430},
{MOVE_THUNDER, sub_8058478},
{MOVE_ENDEAVOR, sub_80584C0},
{MOVE_FACADE, sub_8058548},
{MOVE_CONSTRICT, sub_8058580},
{MOVE_BRICK_BREAK, BrickBreakMoveAction},
{MOVE_ROCK_TOMB, sub_8058638},
{MOVE_GIGA_DRAIN, sub_80586DC},
{MOVE_REVERSAL, sub_8058770},
{MOVE_SMELLINGSALT, sub_80587E8},
{MOVE_METAL_SOUND, sub_8058838},
{MOVE_TICKLE, sub_8058858},
{MOVE_OUTRAGE, sub_80588B8},
{MOVE_LOW_KICK, sub_80588F4},
{MOVE_ANCIENTPOWER, sub_8058930},
{MOVE_RAPID_SPIN, sub_8058A18},
{MOVE_SCARY_FACE, sub_8058BF0},
{MOVE_SUBMISSION, sub_8058E5C},
{MOVE_LICK, sub_8058FBC},
{MOVE_FISSURE, sub_80590D4},
{MOVE_EXTRASENSORY, sub_8059190},
{MOVE_ABSORB, sub_80591E4},
{MOVE_SKILL_SWAP, SkillSwapMoveAction},
{MOVE_HEADBUTT, sub_8059424},
{MOVE_DOUBLE_EDGE, sub_805946C},
{MOVE_SAND_ATTACK, sub_8059528},
{MOVE_SMOG, sub_8059540},
{MOVE_SACRED_FIRE, sub_80595A0},
{MOVE_SHEER_COLD, sub_80595EC},
{MOVE_MUDDY_WATER, sub_80598CC},
{MOVE_TWISTER, sub_8059928},
{MOVE_TWINEEDLE, sub_8059988},
{MOVE_SEISMIC_TOSS, sub_8059A2C},
{MOVE_SUPERSONIC, sub_8059AA8},
{MOVE_TAUNT, sub_8059AB8},
{MOVE_HORN_DRILL, sub_8059AF8},
{MOVE_THUNDERSHOCK, sub_8059D00},
{MOVE_THUNDER_WAVE, sub_8059D48},
{MOVE_BLOCK, sub_8059D98},
{MOVE_POISON_GAS, sub_8059DA4},
{MOVE_TOXIC, sub_8059DB4},
{MOVE_POISON_FANG, sub_8059DC4},
{MOVE_POISON_STING, sub_8059E0C},
{MOVE_TRI_ATTACK, TriAttackMoveAction},
{MOVE_TRICK, sub_805A120},
{MOVE_TRIPLE_KICK, sub_805A210},
{MOVE_MUD_SLAP, sub_805A258},
{MOVE_THIEF, sub_805A2A0},
{MOVE_ROLE_PLAY, RolePlayMoveAction},
{MOVE_LEER, sub_805A3DC},
{MOVE_PAY_DAY, sub_805A464},
{MOVE_CURSE, CurseMoveAction},
{MOVE_FRENZY_PLANT, sub_805A568},
{MOVE_SUPERPOWER, TickleMoveAction},
{MOVE_DYNAMICPUNCH, sub_805A688},
{MOVE_KNOCK_OFF, KnockOffMoveAction},
{MOVE_SECRET_POWER, SecretPowerMoveAction},
{MOVE_DIZZY_PUNCH, sub_805AC90},
{MOVE_IMPRISON, sub_805AD04},
{MOVE_FEATHERDANCE, sub_805AD34},
{MOVE_BEAT_UP, sub_805AD54},
{MOVE_BLAST_BURN, sub_805AE3C},
{MOVE_CRUSH_CLAW, sub_805AE74},
{MOVE_BLAZE_KICK, sub_805AECC},
{MOVE_PRESENT, PresentMoveAction},
{MOVE_ERUPTION, sub_805AFA4},
{MOVE_GLARE, sub_805B028},
{MOVE_POISON_TAIL, sub_805B074},
{MOVE_ROAR, sub_805B0BC},
{MOVE_FIRE_SPIN, sub_805B17C},
{MOVE_WRAP, WrapMoveAction},
{MOVE_MAGNITUDE, sub_805B264},
{MOVE_MIST_BALL, sub_805B324},
{MOVE_DESTINY_BOND, DestinyBondMoveAction},
{MOVE_FALSE_SWIPE, sub_805B388},
{MOVE_HIDDEN_POWER, sub_805B3E0},
{MOVE_ATTRACT, sub_805B454},
{MOVE_MIMIC, MimicMoveAction},
{MOVE_FRUSTRATION, sub_805B53C},
{MOVE_LEECH_SEED, LeechSeedMoveAction},
{MOVE_DREAM_EATER, sub_805B668},
{MOVE_LUSTER_PURGE, sub_805B910},
{MOVE_DRAGON_RAGE, sub_805B808},
{MOVE_FAKE_OUT, sub_805A408},
};
// These correspond to dungeon's tileset id
const struct CalledMove gNaturePowerCalledMoves[] =
{
{MOVE_SURF, HandleRegularDamagingMove},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SURF, HandleRegularDamagingMove},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
{MOVE_BUBBLEBEAM, sub_8058580},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_SHADOW_BALL, sub_80583D8},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_STUN_SPORE, sub_8059050},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, sub_8057C88},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SWIFT, HandleRegularDamagingMove},
{MOVE_SURF, HandleRegularDamagingMove},
{MOVE_SURF, HandleRegularDamagingMove},
{MOVE_ROCK_SLIDE, HandleRegularDamagingMove},
};
//

View File

@ -1,123 +0,0 @@
#include "global.h"
#include "charge_move.h"
#include "constants/move_id.h"
#include "constants/status.h"
#include "dungeon_random.h"
#include "dungeon_util.h"
#include "moves.h"
struct MultiTurnChargeMove
{
u16 moveID;
u8 chargingStatus;
};
const struct MultiTurnChargeMove gMultiTurnChargeMoves[10] = {
{MOVE_SOLARBEAM, STATUS_SOLARBEAM},
{MOVE_SKY_ATTACK, STATUS_SKY_ATTACK},
{MOVE_RAZOR_WIND, STATUS_RAZOR_WIND},
{MOVE_FOCUS_PUNCH, STATUS_FOCUS_PUNCH},
{MOVE_SKULL_BASH, STATUS_SKULL_BASH},
{MOVE_FLY, STATUS_FLYING},
{MOVE_BOUNCE, STATUS_BOUNCING},
{MOVE_DIVE, STATUS_DIVING},
{MOVE_DIG, STATUS_DIGGING},
{MOVE_NOTHING, STATUS_NONE}
};
const u32 gMultiTurnChargingStatuses[10] = {
STATUS_SOLARBEAM,
STATUS_SKY_ATTACK,
STATUS_RAZOR_WIND,
STATUS_FOCUS_PUNCH,
STATUS_SKULL_BASH,
STATUS_FLYING,
STATUS_BOUNCING,
STATUS_DIVING,
STATUS_DIGGING,
STATUS_NONE
};
u32 sub_8057070(Move *move)
{
u32 numberOfChainedHits;
numberOfChainedHits = GetMoveNumberOfChainedHits(move);
if(numberOfChainedHits == 0)
return DungeonRandRange(2, 6);
else
return numberOfChainedHits;
}
bool8 MoveCausesPaused(Move *move)
{
if(move->id == MOVE_FRENZY_PLANT) return TRUE;
if(move->id == MOVE_HYDRO_CANNON) return TRUE;
if(move->id == MOVE_HYPER_BEAM) return TRUE;
if(move->id == MOVE_BLAST_BURN) return TRUE;
return FALSE;
}
bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move)
{
if (!EntityExists(pokemon))
{
return FALSE;
}
else
{
EntityInfo *pokemonInfo = pokemon->info;
s32 i;
for (i = 0; i < 100; i++)
{
if (gMultiTurnChargeMoves[i].moveID == MOVE_NOTHING)
{
return FALSE;
}
if (move->id == gMultiTurnChargeMoves[i].moveID &&
pokemonInfo->charging.chargingStatus == gMultiTurnChargeMoves[i].chargingStatus)
{
return TRUE;
}
}
return FALSE;
}
}
bool8 IsChargingAnyTwoTurnMove(Entity *pokemon, bool8 checkCharge)
{
if (!EntityExists(pokemon))
{
return FALSE;
}
else
{
EntityInfo *pokemonInfo = pokemon->info;
int i = 0;
u8 *chargingStatusPointer = &pokemonInfo->charging.chargingStatus;
u8 *chargingStatusPointer2;
u8 chargeStatus = STATUS_CHARGING;
for (; i < 100; i++)
{
u8 currentStatus = gMultiTurnChargingStatuses[i];
u8 chargingStatus;
if (currentStatus == STATUS_NONE)
{
return FALSE;
}
chargingStatus = *chargingStatusPointer;
chargingStatusPointer2 = &pokemonInfo->charging.chargingStatus;
if (chargingStatus == currentStatus)
{
return TRUE;
}
}
// BUG: This condition is never reached because the for loop terminates by returning FALSE at the end of the gMultiTurnChargingStatuses array.
if (checkCharge && *chargingStatusPointer2 == chargeStatus)
{
return TRUE;
}
return FALSE;
}
}

View File

@ -179,7 +179,7 @@ void GameLoop(void)
void xxx_update_stuff(u32 r0)
{
xxx_draw_string_80144C4();
DrawDialogueBoxString();
sub_8005838(NULL, 0);
nullsub_8(gGameOptionsRef->unkA);
sub_8005180();

View File

@ -13,7 +13,7 @@ extern void xxx_call_update_bg_vram();
void sub_8012A18()
{
sub_8011860();
xxx_draw_string_80144C4();
DrawDialogueBoxString();
nullsub_8(gGameOptionsRef->unkA);
sub_8005180();
sub_80060EC();

View File

@ -61,12 +61,12 @@ u32 sub_8014128(void) {
}
u32 sub_801413C(void)
{
{
return 0;
}
u32 sub_8014140(void)
{
{
return 0;
}
@ -91,18 +91,18 @@ void sub_801416C(s32 param_1,s32 param_2)
gUnknown_202E73C = (param_2 < 0 ) ? 0 : param_2;
}
void xxx_info_box_80141B4(const u8 *text, u32 param_2, OpenedFile **file, u16 param_4)
void CreateDialogueBoxAndPortrait(const u8 *text, u32 param_2, struct MonPortraitMsg *monPortraitPtr, u16 param_4)
{
sub_8014248(text, param_2, -1, NULL, NULL, 3, 0, file, param_4);
CreateMenuDialogueBoxAndPortrait(text, param_2, -1, NULL, NULL, 3, 0, monPortraitPtr, param_4);
}
void sub_80141E0(const u8 *text, OpenedFile **file, u16 param_3)
void CreateYesNoDialogueBoxAndPortrait_DefaultYes(const u8 *text, struct MonPortraitMsg *monPortraitPtr, u16 param_3)
{
sub_8014248(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, file, param_3 | 0x300);
CreateMenuDialogueBoxAndPortrait(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, monPortraitPtr, param_3 | 0x300);
}
void sub_8014214(const u8 *text, OpenedFile **file, u16 param_3)
void CreateYesNoDialogueBoxAndPortrait_DefaultNo(const u8 *text, struct MonPortraitMsg *monPortraitPtr, u16 param_3)
{
sub_8014248(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, file, param_3 | 0x300);
CreateMenuDialogueBoxAndPortrait(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, monPortraitPtr, param_3 | 0x300);
}

View File

@ -109,14 +109,14 @@ static void sub_8016110(void)
else
sub_80922B4(gAvailablePokemonNames, sUnknown_203B200->pokeName, POKEMON_NAME_LENGTH);
sub_8014248(sIsNameOKPrompt, 0, 3, sUnknown_203B200->menus, 0, 4, 0, NULL, 32);
CreateMenuDialogueBoxAndPortrait(sIsNameOKPrompt, 0, 3, sUnknown_203B200->menus, 0, 4, 0, NULL, 32);
break;
case CONFIRM_NAME_MENU_TOO_LONG:
xxx_info_box_80141B4(sNameTooLong, 0, 0, 0x121);
CreateDialogueBoxAndPortrait(sNameTooLong, 0, 0, 0x121);
break;
case CONFIRM_NAME_MENU_EMPTY:
xxx_info_box_80141B4(sEnterAName, 0, 0, 0x121);
CreateDialogueBoxAndPortrait(sEnterAName, 0, 0, 0x121);
break;
default:
break;

View File

@ -87,7 +87,7 @@ static void sub_801B080(void)
switch (sUnknown_203B22C->state) {
case 0:
sub_801B178();
sub_8014248(sFmtWhoWillLearnTheMove, 0, sUnknown_203B22C->unk60, sUnknown_203B22C->menuItems, 0, 4, 0, NULL, 32);
CreateMenuDialogueBoxAndPortrait(sFmtWhoWillLearnTheMove, 0, sUnknown_203B22C->unk60, sUnknown_203B22C->menuItems, 0, 4, 0, NULL, 32);
break;
case 1:
CreateGulpinShop(2, sUnknown_203B22C->chosenPokemon, sUnknown_203B22C->moves);
@ -99,10 +99,10 @@ static void sub_801B080(void)
gTeamInventoryRef->teamItems[sUnknown_203B22C->teamItemIndex].id = ITEM_TM_USED_TM;
}
PlaySound(312);
xxx_info_box_80141B4(sFmtLearnedTheMove, 0, 0, 0x121);
CreateDialogueBoxAndPortrait(sFmtLearnedTheMove, 0, 0, 0x121);
break;
case 3:
xxx_info_box_80141B4(sFmtNoOneCanLearnThisMove, 0, 0, 0x121);
CreateDialogueBoxAndPortrait(sFmtNoOneCanLearnThisMove, 0, 0, 0x121);
break;
default:
case 4:

View File

@ -212,31 +212,31 @@ store:
break;
case 1:
if (GetUnitSum_808D544(0) < 2)
xxx_info_box_80141B4(sFmtReceivedThePromised, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtReceivedThePromised, 0, 0, 0x101);
else
xxx_info_box_80141B4(sFmtTeamReceivedThePromised, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtTeamReceivedThePromised, 0, 0, 0x101);
break;
case 2:
xxx_info_box_80141B4(sFmtTeamAlsoReceived, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtTeamAlsoReceived, 0, 0, 0x101);
break;
case 3:
PlaySound(212);
xxx_info_box_80141B4(sFmtReceivedStatue, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtReceivedStatue, 0, 0, 0x101);
break;
case 4:
xxx_info_box_80141B4(sFmtReceive1000Instead, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtReceive1000Instead, 0, 0, 0x101);
break;
case 5:
sUnknown_203B234->fallbackState = 16;
xxx_info_box_80141B4(sFmtFullSoSentToStorage, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtFullSoSentToStorage, 0, 0, 0x101);
break;
case 6:
sub_801BB20();
sub_8014248(sFmtFullSoPrompt, 0, 4, sUnknown_203B234->unkCC, 0, 4, 0, 0, 0);
CreateMenuDialogueBoxAndPortrait(sFmtFullSoPrompt, 0, 4, sUnknown_203B234->unkCC, 0, 4, 0, 0, 0);
break;
case 7:
sub_801BC24();
sub_8014248(sFmtConfirmThrowAway, 0, 3, sUnknown_203B234->unkCC, 0, 4, 0, 0, 0);
CreateMenuDialogueBoxAndPortrait(sFmtConfirmThrowAway, 0, 3, sUnknown_203B234->unkCC, 0, 4, 0, 0, 0);
break;
case 8:
sub_801A5D8(1, 3, NULL, 10);
@ -259,15 +259,15 @@ store:
break;
case 13:
sUnknown_203B234->fallbackState = 16;
xxx_info_box_80141B4(sFmtThrownAway, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtThrownAway, 0, 0, 0x101);
break;
case 14:
sUnknown_203B234->fallbackState = 16;
xxx_info_box_80141B4(sFmtPutInStorageForReceive, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtPutInStorageForReceive, 0, 0, 0x101);
break;
case 15:
sUnknown_203B234->fallbackState = 16;
xxx_info_box_80141B4(sFmtDiscardedForReceive, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtDiscardedForReceive, 0, 0, 0x101);
break;
case 16:
break;

View File

@ -167,19 +167,19 @@ static void sub_8022A10(void)
sub_801B3C0(&sUnknown_203B294->item);
break;
case 5:
xxx_info_box_80141B4(sDoesNotAppearHungry, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sDoesNotAppearHungry, 0, 0, 0x301);
break;
case 6:
xxx_info_box_80141B4(sFmtGummiBigFav, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtGummiBigFav, 0, 0, 0x101);
break;
case 7:
xxx_info_box_80141B4(sFmtGummiFav, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtGummiFav, 0, 0, 0x101);
break;
case 8:
xxx_info_box_80141B4(sFmtGummiOkay, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtGummiOkay, 0, 0, 0x101);
break;
case 9:
xxx_info_box_80141B4(sFmtGummiSatisfied, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtGummiSatisfied, 0, 0, 0x101);
break;
case 10:
do {
@ -204,7 +204,7 @@ static void sub_8022A10(void)
sUnknown_203B294->fallbackState = 10;
strcpy(gUnknown_202DEA8, GetIQSkillName(sUnknown_203B294->unk40));
PlaySound(203);
xxx_info_box_80141B4(sFmtIQHelpedLearn, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sFmtIQHelpedLearn, 0, 0, 0x101);
sUnknown_203B294->unk40++;
break;
}
@ -239,35 +239,35 @@ static void sub_8022A10(void)
}
break;
case 12:
xxx_info_box_80141B4(sFmtPlusEverything, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sFmtPlusEverything, 0, 0, 0x301);
break;
case 13:
xxx_info_box_80141B4(sFmtPlusAtk, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sFmtPlusAtk, 0, 0, 0x301);
break;
case 14:
xxx_info_box_80141B4(sFmtPlusSpAtk, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sFmtPlusSpAtk, 0, 0, 0x301);
break;
case 15:
xxx_info_box_80141B4(sFmtPlusDef, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sFmtPlusDef, 0, 0, 0x301);
break;
case 16:
xxx_info_box_80141B4(sFmtPlusSpDef, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sFmtPlusSpDef, 0, 0, 0x301);
break;
case 17:
sUnknown_203B294->fallbackState = 22;
xxx_info_box_80141B4(sNoGummis, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sNoGummis, 0, 0, 0x301);
break;
case 18:
sUnknown_203B294->fallbackState = 22;
xxx_info_box_80141B4(sNoItem, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sNoItem, 0, 0, 0x301);
break;
case 19:
sUnknown_203B294->fallbackState = 22;
xxx_info_box_80141B4(sGummiGone, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sGummiGone, 0, 0, 0x301);
break;
case 20:
sUnknown_203B294->fallbackState = 22;
xxx_info_box_80141B4(sItemGone, 0, 0, 0x301);
CreateDialogueBoxAndPortrait(sItemGone, 0, 0, 0x301);
break;
case 21:
sub_801AFA4(sUnknown_203B294->itemIndex);

View File

@ -45,16 +45,16 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon)
sub_8096EEC(sUnknown_203B2FC->jobInfo);
sub_803C21C(sUnknown_203B2FC->jobInfo, &sUnknown_203B2FC->unk8);
sUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies);
sUnknown_203B2FC->faceData = NULL;
sUnknown_203B2FC->unk44 = 0;
sUnknown_203B2FC->unk45 = 0;
sUnknown_203B2FC->unk46 = 0;
sUnknown_203B2FC->unk40 = 2;
sUnknown_203B2FC->unk42 = 8;
sUnknown_203B2FC->monPortrait.faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies);
sUnknown_203B2FC->monPortrait.faceData = NULL;
sUnknown_203B2FC->monPortrait.spriteId = 0;
sUnknown_203B2FC->monPortrait.flip = FALSE;
sUnknown_203B2FC->monPortrait.unkE = 0;
sUnknown_203B2FC->monPortrait.pos.x = 2;
sUnknown_203B2FC->monPortrait.pos.y = 8;
if (sUnknown_203B2FC->faceFile != NULL)
sUnknown_203B2FC->faceData = sUnknown_203B2FC->faceFile->data;
if (sUnknown_203B2FC->monPortrait.faceFile != NULL)
sUnknown_203B2FC->monPortrait.faceData = sUnknown_203B2FC->monPortrait.faceFile->data;
sub_802DC28(0);
return TRUE;
@ -78,8 +78,8 @@ u32 sub_802DBD4(void)
void sub_802DC00(void)
{
if (sUnknown_203B2FC != NULL) {
if (sUnknown_203B2FC->faceFile != NULL)
CloseFile(sUnknown_203B2FC->faceFile);
if (sUnknown_203B2FC->monPortrait.faceFile != NULL)
CloseFile(sUnknown_203B2FC->monPortrait.faceFile);
MemoryFree(sUnknown_203B2FC);
sUnknown_203B2FC = NULL;
@ -150,16 +150,16 @@ static void sub_802DC9C(void)
}
break;
case 1:
xxx_info_box_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D);
CreateDialogueBoxAndPortrait(sThanksForRescuingMe, 0, &sUnknown_203B2FC->monPortrait, 0x10D);
break;
case 2:
xxx_info_box_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceFile, 0x10D);
CreateDialogueBoxAndPortrait(sThanksForRescuingThem, 0, &sUnknown_203B2FC->monPortrait, 0x10D);
break;
case 3:
xxx_info_box_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D);
CreateDialogueBoxAndPortrait(sThanksForEscortingMe, 0, &sUnknown_203B2FC->monPortrait, 0x10D);
break;
case 5:
xxx_info_box_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceFile, 0x10D);
CreateDialogueBoxAndPortrait(sThanksForDelivering, 0, &sUnknown_203B2FC->monPortrait, 0x10D);
break;
case 4:
index = FindItemInInventory(sUnknown_203B2FC->jobInfo->targetItem);
@ -167,7 +167,7 @@ static void sub_802DC9C(void)
ShiftItemsDownFrom(index);
FillInventoryGaps();
}
xxx_info_box_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceFile, 0x10D);
CreateDialogueBoxAndPortrait(sThanksForGetting, 0, &sUnknown_203B2FC->monPortrait, 0x10D);
break;
case 6:
sub_802F204(&sUnknown_203B2FC->unk8, 1);

View File

@ -86,9 +86,9 @@ void sub_803E490(u32 unused)
sub_803EDF0();
if(gDungeon->unk181e8.unk18215 != 0 && gDungeon->unk1C06C != 3)
if(gDungeon->unk181e8.unk18215 != 0 && gDungeon->unk1BDD4.unk1C06C != 3)
sub_8004AF0(gUnknown_203B40D, gUnknown_202EE8C, 0xA0, 0x20, gUnknown_202EDC8, (u8 *)gDungeon->unk17C);
nullsub_8(gGameOptionsRef->unkA);
sub_8005180();
nullsub_12();
@ -103,13 +103,13 @@ void sub_803E490(u32 unused)
nullsub_13();
sub_8005304();
nullsub_14();
TransferBGPaletteBuffer();
sub_8009908();
xxx_call_update_bg_vram();
sub_8040788();
xxx_call_update_bg_sound_input();
gDungeon->unk181e8.unk18213 = 0;
UpdateDungeonMusic();
sub_8011860();
@ -156,7 +156,7 @@ void sub_803E708(s32 a0, u32 a1)
void sub_803E724(s32 r0)
{
do
do
{
sub_803E46C(r0);
} while (gRealInputs.held & 0xF0);
@ -225,7 +225,7 @@ void sub_803E7C8(void)
gUnknown_203B40D = 0;
}
void sub_803E830(void)
void sub_803E830(void)
{
s32 index;

View File

@ -17,6 +17,7 @@
#include "game_options.h"
#include "code_800558C.h"
#include "dungeon_range.h"
#include "dungeon_message.h"
#include "code_806CD90.h"
#include "dungeon_items.h"
#include "constants/item.h"
@ -63,10 +64,8 @@ extern u8 gUnknown_202D068[];
extern s32 gUnknown_202EDCC;
extern u32 gUnknown_3001018[];
extern void sub_8052210(u32);
extern void sub_8040A84();
extern void sub_8083D44(void);
extern void sub_8052210(u32);
extern void sub_8049ED4(void);
extern void sub_8040A84(void);
extern void sub_80400D4(void);
@ -101,7 +100,7 @@ void sub_803E874(bool8 r10, s32 r9)
index++;
}
if (gDungeon->unk181e8.unk18215 == 0 || gDungeon->unk1C06C == 3) {
if (gDungeon->unk181e8.unk18215 == 0 || gDungeon->unk1BDD4.unk1C06C == 3) {
sub_8004AF0(TRUE, gUnknown_202EE8C, 0xA0, 0x20, gUnknown_202EDC8, (void *) &gDungeon->unk17C);
}
@ -169,7 +168,7 @@ void sub_803EA10(void)
index++;
}
if (gDungeon->unk181e8.unk18215 == 0 || gDungeon->unk1C06C == 3) {
if (gDungeon->unk181e8.unk18215 == 0 || gDungeon->unk1BDD4.unk1C06C == 3) {
sub_8004AF0(TRUE, gUnknown_202EE8C, 0xA0, 0x20, gUnknown_202EDC8, (void *) &gDungeon->unk17C);
}

View File

@ -2,7 +2,7 @@
#include "code_800558C.h"
#include "code_800C9CC.h"
#include "code_80118A4.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "structs/dungeon_entity.h"
#include "structs/str_dungeon.h"
#include "dungeon_map_access.h"
@ -44,7 +44,7 @@ void HandleLuminousOrbAction(Entity *pokemon)
sub_803F580(0);
sub_8049ED4();
sub_8040A84();
SendMessage(pokemon, gUnknown_80FD040);
TryDisplayDungeonLoggableMessage(pokemon, gUnknown_80FD040);
}
void sub_8040094(u8 r0)

View File

@ -8,6 +8,7 @@
#include "dungeon.h"
#include "dungeon_engine.h"
#include "dungeon_leader.h"
#include "dungeon_message.h"
#include "dungeon_music.h"
#include "dungeon_util.h"
#include "structs/str_dungeon.h"
@ -32,8 +33,6 @@ extern bool8 sub_8042CC0(void);
extern void sub_8042D7C(void);
extern u8 sub_8043D10(void);
extern bool8 sub_8045888(Entity *);
extern void sub_8052210(u32);
extern void sub_805239C(Entity *, const u8 *);
// This func plays the appropriate ascend/descend SFX for stairs depending on the direction
void PlayStairsSound(void)
@ -115,7 +114,7 @@ void sub_80427AC(void)
sub_80429A0(entity);
if (!enInfo->isNotTeamMember) {
SetMessageArgument(gAvailablePokemonNames, entity, 0);
sub_805239C(entity, *gPtrFeralFoundItemMessage);
DisplayDungeonLoggableMessageTrue(entity, *gPtrFeralFoundItemMessage);
}
}
}

View File

@ -7,6 +7,7 @@
#include "code_800DAC0.h"
#include "code_800E9A8.h"
#include "dungeon_util.h"
#include "dungeon_message.h"
#include "bg_control.h"
#include "random.h"
#include "file_system.h"
@ -278,9 +279,6 @@ extern void sub_8068BDC(u8 r0);
extern s16 GetTurnLimit(u8 dungeon);
extern void sub_8041888(u8 param_1);
extern void sub_8040150(bool8 param_1);
extern void sub_8052210(u32);
extern void sub_80526D0(u32);
extern void sub_8052740(u32);
extern void sub_803D4AC(void);
extern void sub_804513C(void);
extern void sub_8043CD8(void);
@ -317,12 +315,10 @@ extern void sub_803E178(void);
extern void sub_80848F0(void);
extern void sub_8097890(void);
extern void sub_806AB2C(void);
extern void sub_8052DD0(void);
extern void DisplayPreFightDialogue(void);
extern void sub_8071DA4(Entity *);
extern void sub_803E748(void);
extern void sub_8083D68(void);
extern void sub_8052F80(void);
extern void sub_803E7C8(void);
extern void sub_8040A84(void);
extern void sub_807E5AC(void);
@ -331,12 +327,10 @@ extern void sub_807E88C(void);
extern void InitDungeonPokemonSprites(void);
extern void nullsub_16(void);
extern void sub_80521D0(void);
extern void sub_80531A8(void);
extern void sub_803F27C(u8);
extern void sub_807E7FC(u8);
extern void sub_80095CC(u32, u32);
extern void sub_8081BF4(u8 *r0, u32 r1);
extern void PrintFieldMessage(u32, const u8 *, u32);
extern bool8 IsLevelResetTo1(u8 dungeon);
extern void sub_8068A84(PokemonStruct1 *pokemon);
extern void sub_807EAA0(u32, u32);
@ -516,10 +510,10 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
if (r9) {
gFormatData_202DE30 = gDungeon->unk67B;
if (gFormatData_202DE30 != 0) {
PrintFieldMessage(0, gUnknown_80FEC48, 1);
DisplayDungeonMessage(0, gUnknown_80FEC48, 1);
}
else {
PrintFieldMessage(0, gUnknown_80FEC7C, 1);
DisplayDungeonMessage(0, gUnknown_80FEC7C, 1);
}
}
@ -540,10 +534,10 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
unkStruct_203B480 *mailStr = GetMailatIndex(sp);
if (mailStr->rescuesAllowed) {
gFormatData_202DE30 = mailStr->rescuesAllowed;
PrintFieldMessage(0, gUnknown_81002B8, 1);
DisplayDungeonMessage(0, gUnknown_81002B8, 1);
}
else {
PrintFieldMessage(0, gPtrFinalChanceMessage, 1);
DisplayDungeonMessage(0, gPtrFinalChanceMessage, 1);
}
}
}
@ -552,7 +546,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
sub_8098080();
nullsub_16();
sub_80521D0();
sub_80531A8();
ResetMessageLog();
InitDungeonPokemonSprites();
if (!r6) {
sub_804513C();
@ -593,7 +587,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
gDungeon->unkB = 1;
gDungeon->unkD = 1;
gDungeon->unkE = 0;
gDungeon->unk1C05E = 0;
gDungeon->unk1BDD4.unk1C05E = 0;
if (!r6) {
gDungeon->unk679 = 0;
gDungeon->unk68C = 0;
@ -719,11 +713,11 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
gDungeon->unk0 = 1;
if (!r6) {
sub_8052DD0();
TryDisplayGeneralTutorialMessage();
if (gDungeon->unk9 != 0) {
gDungeon->unk9 = 0;
sub_8083D68();
sub_8052F80();
DisplayYouReachedDestFloorStr();
}
}
gLeaderPointer = NULL;
@ -820,7 +814,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
gDungeon->unk181e8.unk18218 = 1;
if ((gDungeon->unk10 == 2 || gDungeon->unk10 == 3) && gDungeon->unk6 != 0) {
leader = GetLeader();
PrintFieldMessage(0, gPtrClientFaintedMessage, 1);
DisplayDungeonMessage(0, gPtrClientFaintedMessage, 1);
gDungeon->unk6 = 0;
sub_8083AB0(0x222, leader, leader);
}
@ -1089,7 +1083,7 @@ bool8 sub_8043ED0(bool8 a0)
if (EntityExists(leader)) {
if (!a0) {
strcpy(gAvailablePokemonNames, gDungeon->faintStringBuffer);
PrintFieldMessage(0, gUnknown_80F89B4, 1);
DisplayDungeonMessage(0, gUnknown_80F89B4, 1);
}
sub_8042B0C(leader);
sub_8068FE0(leader, 0x21F, leader);
@ -1101,7 +1095,7 @@ bool8 sub_8043ED0(bool8 a0)
if (EntityExists(leader)) {
if (!a0) {
strcpy(gAvailablePokemonNames, gDungeon->faintStringBuffer);
PrintFieldMessage(0, gUnknown_80F89D4, 1);
DisplayDungeonMessage(0, gUnknown_80F89D4, 1);
}
sub_8042B0C(leader);
sub_8068FE0(leader, 0x222, leader);
@ -1113,7 +1107,7 @@ bool8 sub_8043ED0(bool8 a0)
if (EntityExists(leader)) {
if (!a0) {
strcpy(gAvailablePokemonNames, gDungeon->faintStringBuffer);
PrintFieldMessage(0, gUnknown_80F89D8, 1);
DisplayDungeonMessage(0, gUnknown_80F89D8, 1);
}
sub_8042B0C(leader);
sub_8068FE0(leader, 0x222, leader);

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "code_803E668.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_8077274_1.h"
#include "code_807CD9C.h"
#include "code_808417C.h"
@ -100,22 +100,19 @@ extern void sub_8063CF0(ActionContainer *, u32);
extern void sub_8063A70(ActionContainer *, u32);
extern u8 sub_8062F90(Entity *, u32, u32, u32, u32);
extern void sub_8044DF0(Entity *, u32, u32);
extern s32 sub_8052B8C(u32, u8 *, u32);
extern void sub_803EAF0(u32, u32);
extern void sub_8044C10(bool8);
Entity *DrawFieldGiveItemMenu(u32, u32);
extern void PrintFieldMessage(u32, u8 *, u32);
extern void sub_8044E24(Entity *, u32, u32);
extern void sub_804245C(Entity *, Item *);
extern u8 sub_8072938(Entity *, u16);
extern void sub_8072008(Entity *pokemon, Entity *r1, u32 r2, u8 r3, u32);
extern void LevelDownTarget(Entity *pokemon, Entity *r1, u32 r2);
extern void sub_80522F4(Entity *pokemon, Entity *r1, const u8[]);
extern void sub_806F370(Entity *pokemon, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
extern s32 sub_8042520(Entity *);
Entity *sub_80696FC(Entity *);
extern void sub_806A7E8(EntityInfo *, s32);
extern u32 sub_8055640(struct Entity *, struct Entity *, struct Move *, u32, u32);
extern u32 HandleDamagingMove(struct Entity *, struct Entity *, struct Move *, u32, u32);
void StunSeedItemAction(Entity *, Entity *);
void MaxElixirAction(Entity *, Entity *);
@ -227,7 +224,7 @@ void sub_80479B8(char param_1, char param_2, u8 param_3, Entity *pokemon, Entity
PlaySoundEffect(0x14d);
sub_8045BF8(gFormatItems,item);
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FDBB8); // $m0 caught the $i0
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FDBB8); // $m0 caught the $i0
info->heldItem = *item;
sub_806A6E8(target);
return;
@ -240,7 +237,7 @@ void sub_80479B8(char param_1, char param_2, u8 param_3, Entity *pokemon, Entity
}
if ((item->flags & ITEM_FLAG_STICKY)) {
sub_8045BF8(gFormatItems,item);
sub_80522F4(pokemon,target,*gItemStickyDoesntWorkText);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gItemStickyDoesntWorkText);
if (param_1 != '\0') {
sub_806F370(pokemon,target,gUnknown_80F4FAE,1,&uStack_24,0,0x217,0,0,0);
sub_8071DA4(pokemon);
@ -263,7 +260,7 @@ _jump:
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FE458);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE458);
goto _080482B4;
}
}
@ -467,7 +464,7 @@ _jump:
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FE458);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE458);
}
break;
}
@ -488,7 +485,7 @@ void sub_80482FC(Entity *pokemon, Entity *target, u32 pp, u8 param_4)
InitPokemonMove(&move, MOVE_PROJECTILE);
move.PP = pp;
sub_8055640(pokemon, target, &move, 0x100, param_4);
HandleDamagingMove(pokemon, target, &move, 0x100, param_4);
}
void sub_8048340(Entity *pokemon, Entity *target, u32 r2)
@ -547,7 +544,7 @@ void CheriBerryItemAction(Entity *pokemon, Entity *target)
SendNonVolatileEndMessage(pokemon, target);
else
// Pointer to "But nothing happened!"
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F89F4);
}
void PechaBerryItemAction(Entity *pokemon, Entity *target)
@ -556,7 +553,7 @@ void PechaBerryItemAction(Entity *pokemon, Entity *target)
SendNonVolatileEndMessage(pokemon, target);
else
// Pointer to "But nothing happened!"
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F89F4);
}
void WarpSeedItemAction(Entity *pokemon, Entity *target)
@ -587,7 +584,7 @@ void StunSeedItemAction(Entity *pokemon, Entity *target)
void PlainSeedItemAction(Entity *pokemon, Entity *target)
{
// Pointer to "But nothing happened!"
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F89F4);
}
void DoomSeedItemAction(Entity *pokemon, Entity *target)
@ -603,7 +600,7 @@ void RawstBerryItemAction(Entity *pokemon, Entity *target)
{
SetMessageArgument(gAvailablePokemonNames, target, 0);
// Pointer to "But nothing happened!"
sub_80522F4(pokemon, target, *gUnknown_80FB580);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FB580);
}
}
@ -617,15 +614,15 @@ void HungerSeedItemAction(Entity *pokemon, Entity * target)
entityInfo = target->info;
SetMessageArgument(gAvailablePokemonNames, target, 0);
if (IQSkillIsEnabled(target, IQ_SELF_CURER))
sub_80522F4(pokemon, target, *gPtrSelfHealPreventedHungerMessage);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gPtrSelfHealPreventedHungerMessage);
else
{
if (FixedPointToInt(entityInfo->belly) != 0) {
entityInfo->belly = IntToFixedPoint(0);
sub_80522F4(pokemon, target, *gUnknown_80F9740);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F9740);
}
else
sub_80522F4(pokemon, target, *gUnknown_80F9760);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F9760);
}
}
}
@ -668,17 +665,17 @@ void GinsengItemAction(Entity *pokemon, Entity * target)
}
if (isMoveBoosted) {
sub_80522F4(pokemon,target,*gUnknown_80FE454);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE454);
if (moveBoost != 1) {
sub_803E708(10,0x40);
sub_80522F4(pokemon,target,*gUnknown_80FE434);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE434);
}
}
else
sub_80522F4(pokemon,target,*gUnknown_80FE40C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE40C);
}
else
sub_80522F4(pokemon,target,*gUnknown_80FE40C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE40C);
}
void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3)
@ -694,7 +691,7 @@ void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3)
entityInfo_1 = entityInfo;
if (gDungeon->unk675 != 0) {
uVar1 = gUnknown_80F4FA8;
sub_80522F4(pokemon, target, *gUnknown_80FEAE8);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FEAE8);
}
else {
uVar1 = gUnknown_80F4FA4;
@ -710,14 +707,14 @@ void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3)
entity = sub_80696FC(pokemon);
if (entity == NULL)
{
sub_80522F4(pokemon, target, *gUnknown_80FDBA0);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FDBA0);
}
else
{
entityInfo = entity->info;
if (gDungeon->unk675 != 0) {
uVar1 = gUnknown_80F4FAA;
sub_80522F4(pokemon, target, *gUnknown_80FEAE8);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FEAE8);
}
else {
uVar1 = gUnknown_80F4FA6;
@ -763,7 +760,7 @@ void HandleGummiItemAction(Entity *pokemon, Entity *target, u8 gummiIndex)
targetInfo->IQ = 999;
}
if (baseIQ == targetInfo->IQ) {
sub_80522F4(pokemon,target,*gUnknown_80FD644);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD644);
}
else {
iVar5 = currIQ - baseIQ;
@ -776,8 +773,8 @@ void HandleGummiItemAction(Entity *pokemon, Entity *target, u8 gummiIndex)
if (((iVar5 < 9) && (iVar3 = 1, iVar5 < 5)) && (iVar3 = 3, 2 < iVar5)) {
iVar3 = 2;
}
sub_80522F4(pokemon,target,gUnknown_80FD648[iVar4]);
sub_80522F4(pokemon,target,gUnknown_80FD6E8[iVar3]);
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FD648[iVar4]);
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FD6E8[iVar3]);
LoadIQSkills(target);
sub_806A7E8(targetInfo,baseIQ);
}
@ -819,11 +816,11 @@ bool8 sub_8048950(Entity *param_1,Item *item)
moveID = GetItemMoveID(item->id);
if ((item->flags & ITEM_FLAG_STICKY)) {
PrintFieldMessage(0,*gItemStickyDoesntWorkText,1);
DisplayDungeonMessage(0,*gItemStickyDoesntWorkText,1);
return FALSE;
}
else if (IsHMItem(item->id)) {
PrintFieldMessage(0,*gPtrCantUseInDungeonMessage,1);
DisplayDungeonMessage(0,*gPtrCantUseInDungeonMessage,1);
return FALSE;
}
else
@ -870,13 +867,13 @@ bool8 sub_8048A68(Entity *param_1,Item *item)
PokemonStruct2 *pokemon;
if ((item->flags & ITEM_FLAG_STICKY)) {
PrintFieldMessage(0,*gItemStickyDoesntWorkText,1);
DisplayDungeonMessage(0,*gItemStickyDoesntWorkText,1);
return FALSE;
}
else
{
if (gDungeon->unk65C == 0) {
PrintFieldMessage(0,*gUnknown_80F9BD8,1);
DisplayDungeonMessage(0,*gUnknown_80F9BD8,1);
return FALSE;
}
else
@ -946,7 +943,7 @@ bool32 sub_8048B9C(Entity *entity,Item *param_2)
entityInfo = entity->info;
actionPointer = &(entityInfo->action);
if ((param_2->flags & ITEM_FLAG_STICKY)) {
PrintFieldMessage(0,*gItemStickyDoesntWorkText,1);
DisplayDungeonMessage(0,*gItemStickyDoesntWorkText,1);
return FALSE;
}
else
@ -1011,7 +1008,7 @@ _clear:
if (sub_8062F90(entity2,1,0,0,1) != 0) {
if (bVar2)
{
if (sub_8052B8C(0,*gUnknown_80FECA0,1) == 1) {
if (DisplayDungeonYesNoMessage(0,*gUnknown_80FECA0,1) == 1) {
*actionPointer = actionContainer;
sub_8044DF0(entity,0,0x6e);
SetMonsterActionFields(actionPointer,0x2c);
@ -1039,14 +1036,14 @@ bool8 sub_8048D50(Entity * pokemon, Item *item)
if ((item->flags & ITEM_FLAG_STICKY) != 0) {
sub_8045BF8(gFormatItems, item);
SendMessage(pokemon,*gItemStickyDoesntWorkText);
TryDisplayDungeonLoggableMessage(pokemon,*gItemStickyDoesntWorkText);
return FALSE;
}
else
{
if ((entityInfo->muzzled.muzzled == TRUE) && (IsEdibleItem(item->id))) {
SetMessageArgument(gAvailablePokemonNames,pokemon,0);
SendMessage(pokemon,*gUnknown_80FDCA4);
TryDisplayDungeonLoggableMessage(pokemon,*gUnknown_80FDCA4);
return FALSE;
}
}
@ -1088,27 +1085,27 @@ void GrimyFoodItemAction(Entity *pokemon, Entity * target)
void IcePartItemAction(Entity *pokemon, Entity *target, u8 r2)
{
SendMessage(pokemon, *gPtrIcePartCrumbledMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrIcePartCrumbledMessage);
}
void RockPartItemAction(Entity *pokemon, Entity *target, u8 r2)
{
SendMessage(pokemon, *gPtrRockPartCrumbledMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrRockPartCrumbledMessage);
}
void SteelPartItemAction(Entity *pokemon, Entity *target, u8 r2)
{
SendMessage(pokemon, *gPtrSteelPartCrumbledMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrSteelPartCrumbledMessage);
}
void WishStoneItemAction(Entity *pokemon, Entity *target, u8 r2)
{
SendMessage(pokemon, *gPtrWishStoneCrumbledMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrWishStoneCrumbledMessage);
}
void MusicBoxItemAction(Entity *pokemon, Entity *target, u8 r2)
{
sub_80421C0(pokemon, 0xD6);
SendMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
sub_803E708(0x3C, 0x46);
}

View File

@ -1,79 +0,0 @@
#include "global.h"
#include "code_80521D0.h"
extern void sub_80526D0(u8 r0);
extern bool8 sub_8045888(Entity *r0);
extern void sub_80523A8(Entity *r0, const char r1[], u8 r2);
extern u8 sub_8052DC0(Entity *);
extern u8 sub_803F428(Position *);
void sub_805229C(void)
{
return sub_80526D0(0x50);
}
void SendMessage(Entity *pokemon, const char message[])
{
if (sub_8045888(pokemon)){
sub_80523A8(pokemon, message, 1);
}
}
void sub_80522C8(Entity *r0, const char r1[])
{
if (sub_8045888(r0)){
sub_80523A8(r0, r1, 0);
}
}
void sub_80522E8(Entity *r0, const char r1[])
{
sub_80523A8(r0, r1, 0);
}
void sub_80522F4(Entity *r0, Entity *r1, const char r2[])
{
u8 flag;
flag = sub_8045888(r0) ? TRUE : FALSE;
if(sub_8052DC0(r1) != 0)
{
flag = TRUE;
}
if(flag)
{
sub_80523A8(r0, r2, 1);
}
}
void sub_805232C(Entity *r0, Entity *r1, const char r2[])
{
u8 flag;
flag = sub_8045888(r0) ? TRUE : FALSE;
if(sub_8052DC0(r1) != 0)
{
flag = TRUE;
}
if(flag)
{
sub_80523A8(r0, r2, 0);
}
}
void sub_8052364(Entity *r0, Position *pos, const char r2[])
{
u8 flag;
flag = sub_8045888(r0) ? TRUE : FALSE;
if(sub_803F428(pos) != 0)
{
flag = TRUE;
}
if(flag)
{
sub_80523A8(r0, r2, 1);
}
}
void sub_805239C(Entity *r0, const char r1[])
{
sub_80523A8(r0, r1, 1);
}

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
#include "number_util.h"
#include "input.h"
#include "structs/map.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "dungeon_action.h"
#include "dungeon_ai_targeting.h"
#include "dungeon_pokemon_attributes.h"
@ -57,7 +57,6 @@ struct UnkMenuBitsStruct {
u8 a0_32;
};
extern void PrintFieldMessage(u32, const u8 *, u32);
extern void HandleSetItemAction(Entity *,bool8);
extern void HandleUnsetItemAction(Entity *,bool8);
extern bool8 sub_8048A68(Entity *param_1,Item *item);
@ -67,12 +66,10 @@ extern Item *sub_8044D90(Entity *, s32, u32);
extern void sub_8083D44(void);
extern void sub_8083D30(void);
extern void sub_8083D08(void);
extern void sub_805239C(Entity *, const u8 *);
extern void sub_806A6E8(Entity *);
extern bool8 sub_8047084(s32 itemFlag);
extern void sub_807FE9C(Entity *pokemon, Position *pos, int param_3, char param_4);
extern void sub_8045DB4(Position *, u32);
extern s32 sub_8052B8C(u32, const u8 *, u32);
bool8 sub_807EF48(void);
void sub_806A2BC(Entity *a0, u8 a1);
bool8 sub_805E874(void);
@ -89,7 +86,6 @@ void sub_8094C88(void);
void sub_8040A84(void);
void sub_8047158(void);
void sub_804AA60(void);
void sub_80532B4(void);
void sub_806A914(u8 a0, u8 a1, u8 a2);
void sub_8044C10(u8 a0);
u16 GetLeaderActionId(void);
@ -97,7 +93,6 @@ void sub_80978C8(s16 a0);
void sub_8044C50(u16 a0);
static void TryCreateModeArrows(Entity *leader);
bool8 sub_8094C48(void);
void sub_8052210(u8 a0);
bool8 sub_805EC4C(Entity *a0, u8 a1);
void sub_803E724(s32 a0);
void HandleTalkFieldAction(Entity *);
@ -269,7 +264,7 @@ void DungeonHandlePlayerInput(void)
}
}
else if (ShouldMonsterRunAwayAndShowEffect(leader, TRUE)) {
SendMessage(leader, gUnknown_80FD4B0);
TryDisplayDungeonLoggableMessage(leader, gUnknown_80FD4B0);
sub_8044C50(1);
gDungeon->unk673 = 1;
break;
@ -284,7 +279,7 @@ void DungeonHandlePlayerInput(void)
}
}
if (i == MAX_MON_MOVES) {
SendMessage(leader, gUnknown_80F8A28);
TryDisplayDungeonLoggableMessage(leader, gUnknown_80F8A28);
break;
}
@ -310,7 +305,7 @@ void DungeonHandlePlayerInput(void)
}
}
if (!canUseMove) {
SendMessage(leader, gUnknown_80F8A4C);
TryDisplayDungeonLoggableMessage(leader, gUnknown_80F8A4C);
}
else {
SetMonsterActionFields(&leaderInfo->action, ACTION_USE_MOVE_PLAYER);
@ -379,7 +374,7 @@ void DungeonHandlePlayerInput(void)
if (gRealInputs.held & L_BUTTON) {
if (gRealInputs.pressed & B_BUTTON) {
sub_80532B4();
DisplayMessageLog();
ResetRepeatTimers();
ResetUnusedInputStruct();
}
@ -534,7 +529,7 @@ void DungeonHandlePlayerInput(void)
if (!(canMoveFlags & 2)) {
if (canMoveFlags & 1) {
if (immobilizedMsg != NULL) {
SendMessage(leader, immobilizedMsg);
TryDisplayDungeonLoggableMessage(leader, immobilizedMsg);
}
sub_8044C50(1);
gDungeon->unk673 = 1;
@ -1577,7 +1572,7 @@ bool8 sub_805EC4C(Entity *a0, u8 a1)
if (IsChargingAnyTwoTurnMove(tileMonster, FALSE)) return FALSE;
if (!sub_8070F80(a0, entityInfo->action.direction)) return FALSE;
if (a1 != 0 && sub_807049C(tileMonster, &a0->pos) && !sub_8052B8C(0, gUnknown_8100208, 0)) return FALSE;
if (a1 != 0 && sub_807049C(tileMonster, &a0->pos) && !DisplayDungeonYesNoMessage(0, gUnknown_8100208, 0)) return FALSE;
SetMonsterActionFields(&entityInfo->action, ACTION_WALK);
if (gRealInputs.held & B_BUTTON) {
@ -1721,13 +1716,13 @@ void sub_805F02C(void)
EntityInfo *leaderInfo = leader->info;
if (r8->isTeamLeader) {
sub_805239C(r7, gUnknown_80F9BD8);
DisplayDungeonLoggableMessageTrue(r7, gUnknown_80F9BD8);
}
else if (sub_8047084(ITEM_FLAG_IN_SHOP) || sub_807EF48()) {
sub_805239C(r7, gUnknown_80F9C08);
DisplayDungeonLoggableMessageTrue(r7, gUnknown_80F9C08);
}
else if (gDungeon->unk66E) {
sub_805239C(r7, gUnknown_80F9C2C);
DisplayDungeonLoggableMessageTrue(r7, gUnknown_80F9C2C);
}
else {
gDungeon->unk679 = 0;
@ -1761,7 +1756,7 @@ void sub_805F02C(void)
sub_8041AD0(leader);
sub_8041AE0(GetLeader());
SetMessageArgument(gAvailablePokemonNames, r7, 0);
SendMessage(r7, gUnknown_80F9BB0);
TryDisplayDungeonLoggableMessage(r7, gUnknown_80F9BB0);
sub_807EC28(FALSE);
r8->unk64 = 0;
leaderInfo->unk64 = 0;
@ -2124,7 +2119,7 @@ void ShowFieldMenu(u8 a0_, bool8 a1)
}
else {
SetMessageArgument(gAvailablePokemonNames, GetLeader(), 0);
PrintFieldMessage(0, gUnknown_80FDE18, 1);
DisplayDungeonMessage(0, gUnknown_80FDE18, 1);
}
}
r10 = -1;
@ -2168,7 +2163,7 @@ extern const u8 *const gUnknown_80F91E0;
extern const u8 *const gUnknown_80F91A8;
extern const u8 *const gUnknown_80FE954;
const u8 *sub_805317C(void);
const u8 *GetCurrentDungeonName(void);
void GetWeatherName(u8 *dst, u8 weatherId);
extern s32 gFormatData_202DE30[];
@ -2232,7 +2227,7 @@ void DrawFieldMenu(u8 a0)
if (a0) {
u32 hours, minutes, seconds;
EntityInfo *leaderInfo = GetLeader()->info;
const u8 *dungeonName = sub_805317C();
const u8 *dungeonName = GetCurrentDungeonName();
x = (136 - sub_8008ED0(dungeonName)) / 2;
sub_80073B8(1);
@ -2279,7 +2274,7 @@ bool8 sub_805FBE8(u8 *a0)
do
{
sub_803E46C(0xE);
xxx_draw_string_80144C4();
DrawDialogueBoxString();
r4 = sub_8016080();
} while (r4 == 0);
CleanConfirmNameMenu();
@ -2435,7 +2430,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
sUnknown_202F258 = sub_8060D64(sUnknown_202F248, var_30, var_34, var_28, a0);
if (sUnknown_202F258 == 0) {
PrintFieldMessage(0, gUnknown_80F8B24, 1);
DisplayDungeonMessage(0, gUnknown_80F8B24, 1);
return TRUE;
}

View File

@ -1,6 +1,6 @@
#include "global.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_807CD9C.h"
#include "dungeon_map_access.h"
#include "dungeon_movement.h"
@ -58,7 +58,7 @@ void HandleSetItemAction(Entity *param_1, bool8 param_2)
if (((itemPtr->flags & ITEM_FLAG_EXISTS)) && ((itemPtr->flags & ITEM_FLAG_SET))) {
if ((itemPtr->flags & ITEM_FLAG_STICKY)) {
sub_8045BF8(gFormatItems,itemPtr);
SendMessage(param_1,*gItemStickyCannotEquip);
TryDisplayDungeonLoggableMessage(param_1,*gItemStickyCannotEquip);
return;
}
itemPtr->flags &= ~(ITEM_FLAG_SET);
@ -68,22 +68,22 @@ void HandleSetItemAction(Entity *param_1, bool8 param_2)
PlaySoundEffect(0x133);
if (param_2 != 0) {
if ((item->flags & ITEM_FLAG_STICKY)) {
SendMessage(param_1,*gUnknown_80F8D04);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8D04);
}
else {
if (GetItemCategory(item->id) == CATEGORY_THROWN_LINE) {
SendMessage(param_1,*gUnknown_80F8CE4);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8CE4);
}
else
{
SendMessage(param_1,*gUnknown_80F8CE8);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8CE8);
}
}
}
item->flags |= ITEM_FLAG_SET;
if (((item->flags & ITEM_FLAG_STICKY)) && (param_2 != 0)) {
sub_8045BF8(gFormatItems,item);
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
}
@ -99,14 +99,14 @@ void HandleUnsetItemAction(Entity *entity,bool8 enableMessage)
if (((item->flags & ITEM_FLAG_EXISTS)) && ((item->flags & ITEM_FLAG_SET))) {
if ((item->flags & ITEM_FLAG_STICKY)) {
sub_8045BF8(gFormatItems,item);
SendMessage(entity,*gItemStickyCannotEquip);
TryDisplayDungeonLoggableMessage(entity,*gItemStickyCannotEquip);
return;
}
item->flags &= ~(ITEM_FLAG_SET);
sub_8045BF8(gFormatItems,item);
PlaySoundEffect(0x133);
if (enableMessage) {
SendMessage(entity,*gUnknown_80F8D20);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8D20);
}
}
}
@ -136,7 +136,7 @@ void HandleGiveItemAction(Entity *param_1)
if ((!bVar3) && ((item->flags & (ITEM_FLAG_STICKY | ITEM_FLAG_SET)) == (ITEM_FLAG_STICKY | ITEM_FLAG_SET))) {
sub_8045BF8(gUnknown_202DEA8,item);
SendMessage(param_1,*gItemStickyCannotMove2);
TryDisplayDungeonLoggableMessage(param_1,*gItemStickyCannotMove2);
}
else
{
@ -144,7 +144,7 @@ void HandleGiveItemAction(Entity *param_1)
if (((info2->heldItem).flags & ITEM_FLAG_EXISTS)) {
if (((info2->heldItem).flags & ITEM_FLAG_STICKY)) {
sub_8045BF8(gUnknown_202DEA8,&info2->heldItem);
SendMessage(param_1,*gItemStickyCannotMove1);
TryDisplayDungeonLoggableMessage(param_1,*gItemStickyCannotMove1);
return;
}
item1 = (info2->heldItem);
@ -162,9 +162,9 @@ void HandleGiveItemAction(Entity *param_1)
sub_8045BF8(gFormatItems,&item2);
sub_8045BF8(gFormatItems + 0x50,&item1);
PlaySoundEffect(0x14d);
SendMessage(param_1,*gMonTookAndReturnedItem);
TryDisplayDungeonLoggableMessage(param_1,*gMonTookAndReturnedItem);
if ((item2.flags & ITEM_FLAG_STICKY)) {
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
}
else {
@ -174,9 +174,9 @@ void HandleGiveItemAction(Entity *param_1)
info2->heldItem = item3;
sub_8045BF8(gFormatItems,&item3);
PlaySoundEffect(0x14d);
SendMessage(param_1,*gUnknown_80F8D44);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8D44);
if ((item3.flags & ITEM_FLAG_STICKY)) {
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
}
sub_806A6E8(entity);
@ -204,13 +204,13 @@ void HandleTakeItemAction(Entity *param_1)
info2 = entity->info;
heldItem = &info->heldItem;
if ((gTeamInventoryRef->teamItems[ITEM_POWER_BAND].flags & ITEM_FLAG_EXISTS)) {
SendMessage(param_1,*gUnknown_80F8D60);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8D60);
}
else
{
if ((heldItem->flags & ITEM_FLAG_STICKY)) {
sub_8045BF8(gFormatItems,heldItem);
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
else
{
@ -223,7 +223,7 @@ void HandleTakeItemAction(Entity *param_1)
heldItem->flags = 0;
AddItemToInventory(&item);
PlaySoundEffect(0x14d);
SendMessage(param_1,*gUnknown_80F8D7C);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8D7C);
sub_806A6E8(entity);
if (sub_80706A4(entity,&entity->pos) != 0) {
sub_807D148(param_1,entity,0,0);
@ -251,11 +251,11 @@ void sub_8066BD4(Entity *param_1)
if (heldItem->flags & ITEM_FLAG_STICKY)
{
sub_8045BF8(gFormatItems,heldItem);
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
else if ((item->flags & (ITEM_FLAG_STICKY | ITEM_FLAG_SET)) == (ITEM_FLAG_STICKY | ITEM_FLAG_SET)) {
sub_8045BF8(gFormatItems,item);
SendMessage(param_1,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8BE0);
}
else
{
@ -268,7 +268,7 @@ void sub_8066BD4(Entity *param_1)
info->heldItem = *item;
*item = temp;
PlaySoundEffect(0x14d);
SendMessage(param_1,*gUnknown_80F8DB4);
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80F8DB4);
if (sub_80706A4(entity,&entity->pos) != 0) {
sub_807D148(param_1,entity,0,0);
}
@ -304,13 +304,13 @@ void HandlePlaceItemAction(Entity *param_1)
item = sub_8044D90(entity,0,4);
sub_8045BF8(gFormatItems,item);
if (info->action.unk4[0].actionUseIndex == 0x80) {
SendMessage(entity,*gUnknown_80F8DE0);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8DE0);
}
else if ((info->action.unk4[0].actionUseIndex < 0x15) && ((item->flags & (ITEM_FLAG_STICKY | ITEM_FLAG_SET)) == (ITEM_FLAG_STICKY | ITEM_FLAG_SET))) {
SendMessage(entity,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8BE0);
}
else if ((info->action.unk4[0].actionUseIndex == 0x81) && ((item->flags & ITEM_FLAG_STICKY))) {
SendMessage(entity,*gUnknown_80F8BE0);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8BE0);
}
else {
tile = GetTile(entity->pos.x, entity->pos.y);
@ -322,7 +322,7 @@ void HandlePlaceItemAction(Entity *param_1)
sub_8045BF8(gFormatItems,item);
if (sub_80460F8(&entity->pos,item,1) == 0) {
_message:
SendMessage(entity,*gUnknown_80F8E04);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8E04);
}
else
{
@ -332,7 +332,7 @@ void HandlePlaceItemAction(Entity *param_1)
FillInventoryGaps();
PlaySoundEffect(0x14d);
SetMessageArgument(gAvailablePokemonNames,entity,0);
SendMessage(entity,*gUnknown_80F8E28);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80F8E28);
sub_807AB38(entity,gDungeon->unk3A08);
}
}

View File

@ -10,6 +10,7 @@
#include "dungeon_map_access.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_random.h"
#include "dungeon_message.h"
#include "dungeon_util.h"
#include "game_options.h"
#include "move_effects_target.h"
@ -35,7 +36,6 @@ extern u8 *gUnknown_80FCC7C[];
extern u8 *gUnknown_80FCCAC[];
extern u8 *gUnknown_80FDCC8[];
void sub_80522F4(Entity *r0, Entity *r1, const char r2[]);
extern void sub_8042900(Entity *r0);
extern void sub_8042968(Entity *r0);
extern void sub_806ABAC(Entity *, Entity *);
@ -174,7 +174,7 @@ void sub_8069F9C(Entity *pokemon,Entity * target,Move *move)
iVar6->abilities[abilityIndex] = local_20[randomIndex];
gDungeon->unkC = 1;
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FCC7C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCC7C);
sub_8042900(target);
sub_806ABAC(pokemon,target);
}
@ -194,7 +194,7 @@ _0806A068:
SetMessageArgument(gAvailablePokemonNames,target,0);
__src = GetUnformattedTypeString(iVar6->types[0]);
strcpy(gFormatItems,__src);
sub_80522F4(pokemon,target,*gUnknown_80FCCAC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCCAC);
sub_8042968(target);
}
}
@ -219,7 +219,7 @@ void sub_806A120(Entity * pokemon, Entity * target, Move* move)
SetMessageArgument(gAvailablePokemonNames,target,0);
typeString = GetUnformattedTypeString(uVar2_u32);
strcpy(gFormatItems,typeString);
sub_80522F4(pokemon,target,*gUnknown_80FDCC8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FDCC8);
}
}
}

View File

@ -34,12 +34,12 @@
#include "dungeon_pokemon_attributes.h"
#include "code_8041AD0.h"
#include "type_chart.h"
#include "dungeon_message.h"
extern u8 gUnknown_202F221;
extern u8 gUnknown_202DFE8[];
extern void sub_806BFC0(EntityInfo *, u32);
extern void sub_805239C(Entity *, const u8 *);
const u8 gUnknown_8106EEF[] = {0x03, 0x04, 0x05, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 };
@ -259,7 +259,6 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
extern void sub_807F43C(Entity *, Entity *);
extern void sub_8041B18(Entity *pokemon);
extern void sub_8041B90(Entity *pokemon);
extern void sub_80522F4(Entity *, Entity *, const u8 *);
extern void sub_8041D00(Entity *pokemon, Entity *target);
extern void DealDamageToEntity(Entity *, s32, u32, u32);
extern void SetShopkeeperAggression(Entity *, Entity *);
@ -323,7 +322,7 @@ extern const u8 *const gUnknown_80F9D28[];
extern u8 gAvailablePokemonNames[];
extern u32 gFormatData_202DE30;
void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *dmgStruct, bool32 isFalseSwipe, s32 giveExp, s16 arg4, bool32 arg8, s32 argC)
void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *dmgStruct, bool32 isFalseSwipe, bool32 giveExp, s16 arg4, bool32 arg8, s32 argC)
{
bool32 r9;
// Some compiler weirdness, because it won't match without creating arg4 again
@ -383,7 +382,7 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *
if (returnDmg) {
struct DamageStruct sp;
sub_80522F4(attacker, target, gUnknown_80FCFA4);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80FCFA4);
sp.dmg = (dmgStruct->dmg * returnDmg) / 4;
sp.type = dmgStruct->type;
sp.residualDmgType = 6;
@ -410,30 +409,30 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *
&& !HasAbility(attacker, ABILITY_LEVITATE)
&& DungeonRandInt(100) < gUnknown_80F4E10)
{
attackerInfo->unk178 |= 1;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_ARENA_TRAP;
}
if (HasAbility(target, ABILITY_SHADOW_TAG)
&& DungeonRandInt(100) < gUnknown_80F4E12)
{
attackerInfo->unk178 |= 2;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_SHADOW_TAG;
}
if (HasAbility(target, ABILITY_MAGNET_PULL)
&& MonsterIsType(attacker, TYPE_STEEL)
&& DungeonRandInt(100) < gUnknown_80F4E14)
{
attackerInfo->unk178 |= 4;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_MAGNET_PULL;
}
if (HasAbility(target, ABILITY_STATIC)
&& isPhysical
&& DungeonRandInt(100) < gUnknown_80F4E16)
{
attackerInfo->unk178 |= 8;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_STATIC;
}
if (HasAbility(target, ABILITY_POISON_POINT)
&& DungeonRandInt(100) < gUnknown_80F4E18)
{
attackerInfo->unk178 |= 0x20;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_POISON_POINT;
}
if (HasAbility(target, ABILITY_EFFECT_SPORE)
&& isPhysical
@ -441,27 +440,27 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *
{
s32 rnd = DungeonRandInt(3);
if (rnd < 1)
attackerInfo->unk178 |= 0x40;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_EFFECT_SPORE_PSN;
else if (rnd < 2)
attackerInfo->unk178 |= 0x10;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_EFFECT_SPORE_PRLZ;
else
attackerInfo->unk178 |= 0x80;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_EFFECT_SPORE_SLP;
}
if (HasAbility(target, ABILITY_FLAME_BODY)
&& DungeonRandInt(100) < gUnknown_80F4E1C)
{
attackerInfo->unk178 |= 0x100;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_FLAME_BODY;
}
if (HasAbility(target, ABILITY_CUTE_CHARM)
&& isPhysical
&& DungeonRandInt(100) < gUnknown_80F4E1E)
{
attackerInfo->unk178 |= 0x200;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_CUTE_CHARM;
}
if (HasAbility(target, ABILITY_STENCH)
&& DungeonRandInt(100) < gUnknown_80F4E20)
{
attackerInfo->unk178 |= 0x400;
attackerInfo->abilityEffectFlags |= ABILITY_FLAG_STENCH;
}
}
if (!EntityExists(attacker) || !EntityExists(target))
@ -519,14 +518,14 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
if (arg4 != 0x20E && HasAbility(target, ABILITY_STURDY) && dmgStruct->dmg == 9999) {
SetMessageArgument(gUnknown_202DFE8, target, 0);
sub_80522F4(attacker, target, gUnknown_80FCA90);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80FCA90);
sub_8042238(attacker, target);
dmgStruct->unkF = 1;
return FALSE;
}
if (targetData->immobilize.immobilizeStatus == STATUS_FROZEN) {
SetMessageArgument(gUnknown_202DFE8, target, 0);
sub_80522F4(attacker, target, gUnknown_80F9600);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9600);
sub_8042238(attacker, target);
dmgStruct->unkF = 1;
return FALSE;
@ -551,17 +550,17 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
if (targetData->unk152 == 0) {
if (dmgStruct->isCrit) {
sub_80522F4(attacker, target, gUnknown_80F9614);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9614);
}
switch (dmgStruct->typeEffectiveness) {
case EFFECTIVENESS_IMMUNE:
sub_80522F4(attacker, target, gUnknown_80F9630);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9630);
break;
case EFFECTIVENESS_RESIST:
sub_80522F4(attacker, target, gUnknown_80F9654);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9654);
break;
case EFFECTIVENESS_SUPER:
sub_80522F4(attacker, target, gUnknown_80F9670);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9670);
break;
}
}
@ -571,13 +570,13 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
if (dmgStruct->dmg == 0) {
if (sub_8045888(attacker) && sub_8045888(target)) {
if (targetData->unk152 == 0) {
sub_80522F4(attacker, target, gUnknown_80F9688);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9688);
}
sub_8042238(attacker, target);
}
else {
if (targetData->unk152 == 0) {
sub_80522F4(attacker, target, gUnknown_80F9688);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9688);
}
sub_803E708(0x1E, 0x18);
}
@ -592,7 +591,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
sub_8049ED4();
}
if (targetData->unk152 == 0) {
sub_80522F4(attacker, target, gUnknown_80F96A8);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F96A8);
}
targetData->unkA0 = 999;
}
@ -602,8 +601,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
gFormatData_202DE30 = dmgStruct->dmg;
str = gUnknown_80F9764[dmgStruct->residualDmgType];
// Needed to match - the line can be safely removed
dmgStruct++;dmgStruct--;
ASM_MATCH_TRICK(dmgStruct);
targetData->unkA0 += dmgStruct->dmg;
if (targetData->unkA0 > 999)
@ -614,12 +612,12 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
sub_803ED30(-dmgStruct->dmg, target, 1, -1);
}
if (targetData->unk152 == 0 && str != NULL) {
sub_80522F4(attacker, target, str);
TryDisplayDungeonLoggableMessage3(attacker, target, str);
}
}
else {
if (targetData->unk152 == 0 && str != NULL) {
sub_80522F4(attacker, target, str);
TryDisplayDungeonLoggableMessage3(attacker, target, str);
}
}
}
@ -661,12 +659,12 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
if (targetData->protection.protectionStatus == STATUS_ENDURING) {
if (targetData->HP == 0) {
targetData->HP = 1;
sub_80522F4(attacker, target, gUnknown_8100548);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_8100548);
}
}
else if (isFalseSwipe == TRUE && targetData->HP == 0) {
targetData->HP = 1;
sub_80522F4(attacker, target, gUnknown_810056C);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_810056C);
}
hpChange = hpBefore - targetData->HP;
@ -718,42 +716,42 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
SetMessageArgument(gAvailablePokemonNames + 0x50, target, 0);
if (dmgStruct->residualDmgType == 19 || dmgStruct->residualDmgType == 20) {
if (targetData->isNotTeamMember) {
sub_80522F4(attacker, target, gUnknown_80F9E44);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9E44);
}
else {
sub_805239C(attacker, gUnknown_80F9E44);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9E44);
}
}
else if (targetData->isNotTeamMember)
{
if (targetData->clientType == CLIENT_TYPE_CLIENT) {
sub_805239C(attacker, gUnknown_80F9DF0[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9DF0[r8]);
}
else {
sub_80522F4(attacker, target, gUnknown_80F9CC0[r8]);
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9CC0[r8]);
}
}
else {
PokemonStruct2 *recruitedMon = &gRecruitedPokemonRef->pokemon2[targetData->teamIndex];
if (targetData->isTeamLeader || (targetData->joinedAt.joinedAt == DUNGEON_JOIN_LOCATION_PARTNER && gDungeon->unk65C == 0)) {
sub_805239C(attacker, gUnknown_80F9CEC[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9CEC[r8]);
}
else if (IsClientOrTeamBase(targetData->joinedAt.joinedAt)) {
sub_805239C(attacker, gUnknown_80F9DAC[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9DAC[r8]);
}
else if (targetData->clientType == CLIENT_TYPE_CLIENT) {
sub_805239C(attacker, gUnknown_80F9DF0[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9DF0[r8]);
}
else if (sub_806A58C(recruitedMon->unkA)) {
if (gDungeon->unk65D != 0) {
sub_805239C(attacker, gUnknown_80F9D8C[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9D8C[r8]);
}
else {
sub_805239C(attacker, gUnknown_80F9D84[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9D84[r8]);
}
}
else {
sub_805239C(attacker, gUnknown_80F9D28[r8]);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80F9D28[r8]);
}
}
@ -791,7 +789,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
sub_806CCB4(target, sub_806CEBC(target));
EntityUpdateStatusSprites(target);
SetMessageArgument(gUnknown_202DFE8, target, 0);
sub_805239C(attacker, gUnknown_80FD46C);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80FD46C);
sub_806F63C(target);
return FALSE;
}
@ -849,7 +847,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
EntityUpdateStatusSprites(target);
SetMessageArgument(gAvailablePokemonNames, target, 0);
SetMessageArgument(gAvailablePokemonNames + 0x50, teamMember, 0);
sub_805239C(attacker, gUnknown_80FD484);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80FD484);
sub_806F63C(target);
return FALSE;
}
@ -902,7 +900,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
sub_806CCB4(target, sub_806CEBC(target));
EntityUpdateStatusSprites(target);
SetMessageArgument(gUnknown_202DFE8, target, 0);
sub_805239C(attacker, gUnknown_80FD46C);
DisplayDungeonLoggableMessageTrue(attacker, gUnknown_80FD46C);
sub_806F63C(target);
return FALSE;
}

View File

@ -4,6 +4,7 @@
#include "dungeon_pokemon_attributes.h"
#include "status_checks_1.h"
#include "text_util.h"
#include "dungeon_message.h"
extern u8 *gUnknown_80FEE04[];
extern u8 *gUnknown_80FEE2C[];
@ -12,7 +13,6 @@ extern u8 *gUnknown_80FEE54[];
void sub_8042940(Entity *r0);
void sub_80428B0(Entity *r0);
void sub_80428C4(Entity *r0);
void sub_80522F4(Entity *r0, Entity *r1, const char r2[]);
void sub_806E8B0(Entity * pokemon, Entity * target, u8 param_3, s32 *param_4, s32 *param_5, s32 param_6)
{
@ -30,13 +30,13 @@ void sub_806E8B0(Entity * pokemon, Entity * target, u8 param_3, s32 *param_4, s3
s32 r10;
s32 sp_0x4;
s32 sp_0x8;
r7 = 1;
r8 = 1;
sp_0x4 = 1;
sp_0x8 = 1;
r10 = IsTypePhysical(param_3) == 0;
if (HasAbility(pokemon, ABILITY_GUTS)) {
entityInfo = pokemon->info;
@ -47,7 +47,7 @@ void sub_806E8B0(Entity * pokemon, Entity * target, u8 param_3, s32 *param_4, s3
}
if (visFlags_pokemon_1) {
sub_80428B0(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FEE04); // Guts boosted its power
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FEE04); // Guts boosted its power
}
}
@ -64,7 +64,7 @@ void sub_806E8B0(Entity * pokemon, Entity * target, u8 param_3, s32 *param_4, s3
}
if (visFlags_pokemon_2) {
sub_80428C4(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FEE2C); // It's special ability boosted Attack
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FEE2C); // It's special ability boosted Attack
}
}
@ -108,7 +108,7 @@ void sub_806E8B0(Entity * pokemon, Entity * target, u8 param_3, s32 *param_4, s3
}
if (visFlags_target) {
sub_8042940(target);
sub_80522F4(pokemon,target,*gUnknown_80FEE54); // Its special ability quickened attacks!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FEE54); // Its special ability quickened attacks!
}
}

View File

@ -5,7 +5,7 @@
#include "code_80118A4.h"
#include "code_803E668.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_806CD90.h"
#include "code_8077274_1.h"
#include "code_8097670.h"
@ -45,8 +45,6 @@ extern u8 *gUnknown_80FA090[];
void sub_8068FE0(Entity *, u32, Entity *);
u8 sub_806B8CC();
bool8 sub_805FBE8(u8 *a0);
extern s32 sub_8052B8C(u32, const u8 *, u32);
extern void PrintFieldMessage(u32, const u8 *, u32);
void sub_8083D88();
u8 sub_808529C(s32);
extern u8 GetBodySize(s16 index);
@ -749,9 +747,9 @@ bool8 sub_806FA5C(Entity *entity1, Entity *entity2, struct unkStruct_8069D4C *pa
sub_806CE68(entity2, direction);
CopyCyanMonsterNametoBuffer(gAvailablePokemonNames,param_3->id);
if (sub_8052B8C(0,*gUnknown_80F9FE8,1) == 0) {
if (DisplayDungeonYesNoMessage(0,*gUnknown_80F9FE8,1) == 0) {
if (param_3->id != MONSTER_JIRACHI) {
SendMessage(entity1,*gUnknown_80FA004);
TryDisplayDungeonLoggableMessage(entity1,*gUnknown_80FA004);
}
return 0;
}
@ -764,7 +762,7 @@ bool8 sub_806FA5C(Entity *entity1, Entity *entity2, struct unkStruct_8069D4C *pa
}
if (pokeIndex == MAX_TEAM_MEMBERS) {
SendMessage(entity1,*gUnknown_80FA030);
TryDisplayDungeonLoggableMessage(entity1,*gUnknown_80FA030);
return FALSE;
}
else {
@ -805,25 +803,25 @@ bool8 sub_806FA5C(Entity *entity1, Entity *entity2, struct unkStruct_8069D4C *pa
sub_8097848();
if (sub_806B8CC(param_3->id,param_3->pos.x,param_3->pos.y,pokeStruct2,&local_2c,0,1) == 0) {
SendMessage(entity1,*gUnknown_80FA058);
TryDisplayDungeonLoggableMessage(entity1,*gUnknown_80FA058);
pokeStruct2->unk0 = 0;
}
else {
sub_8083D88();
sub_803E708(0xa0,0x46);
if (sub_8052B8C(0,*gUnknown_80FA090,1) == 1) {
if (DisplayDungeonYesNoMessage(0,*gUnknown_80FA090,1) == 1) {
while (sub_805FBE8(pokeStruct2->name) == 0) {
PrintFieldMessage(0,*gUnknown_80FA0C8,1);
DisplayDungeonMessage(0,*gUnknown_80FA0C8,1);
}
}
sub_808D9DC(gAvailablePokemonNames,pokeStruct2,0);
SendMessage(entity1,*gUnknown_80FA0F0);
TryDisplayDungeonLoggableMessage(entity1,*gUnknown_80FA0F0);
if (flag) {
leader = xxx_call_GetLeader();
SetMessageArgument(gAvailablePokemonNames,leader,0);
sub_8092558(gUnknown_202E628,friendArea);
PlaySound(0xce);
PrintFieldMessage(0,*gUnknown_80FA120,1);
DisplayDungeonMessage(0,*gUnknown_80FA120,1);
}
if (param_3->id == MONSTER_MEW) {
gDungeon->unk4 = 1;
@ -1072,9 +1070,9 @@ bool8 sub_806FDF4(Entity *entity1,Entity *entity2,Entity **entityPtr)
pokeStruct2->unk0 = 0;
}
else {
if (sub_8052B8C(0,*gUnknown_80FA090,1) == 1) {
if (DisplayDungeonYesNoMessage(0,*gUnknown_80FA090,1) == 1) {
while (!sub_805FBE8(buffer)) {
PrintFieldMessage(0,*gUnknown_80FA0C8,1);
DisplayDungeonMessage(0,*gUnknown_80FA0C8,1);
}
}
if (flag) {
@ -1082,7 +1080,7 @@ bool8 sub_806FDF4(Entity *entity1,Entity *entity2,Entity **entityPtr)
SetMessageArgument(gAvailablePokemonNames,leader,0);
sub_8092558(gUnknown_202E628,friendArea);
PlaySound(0xce);
PrintFieldMessage(0,*gUnknown_80FA120,1);
DisplayDungeonMessage(0,*gUnknown_80FA120,1);
}
sub_808D9DC(gUnknown_202E088,pokeStruct2,0);
*entityPtr = local_2c;

View File

@ -3,6 +3,7 @@
#include "dungeon_capabilities.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_leader.h"
#include "dungeon_message.h"
#include "code_8045A00.h"
#include "code_8077274_1.h"
#include "constants/dungeon.h"
@ -55,7 +56,6 @@ extern u8 gUnknown_8107010[8];
extern u8 *gUnknown_8107018[3];
extern void sub_80421C0(Entity *pokemon, u16 r1);
void sub_80528F4(Entity *, u8 *);
void sub_8083D58(void);
void sub_8072778(Entity *, Entity *, u8, u8);
bool8 sub_80725A4(Entity *, Entity *);
@ -64,15 +64,12 @@ bool8 sub_80723D0(Entity *, Entity *, u8, u8);
void sub_807218C(Entity *);
void sub_806A2BC(Entity *, u32);
void sub_806A3D4(u8 *, s32, s32, s32);
extern void PrintFieldMessage(u32, u8 *, u32);
extern Entity* sub_806B7F8(struct unkStruct_806B7F8 *, bool8);
extern void sub_805239C(struct Entity *r0, const char r1[]);
extern void sub_8042920(struct Entity *r0);
extern s16 sub_803D970(u32);
extern s32 sub_803DA20(s32 param_1);
extern bool8 sub_806AA0C(s32, u32);
extern bool8 sub_8083660(struct Position *param_1);
extern void sub_80522F4(Entity *pokemon, Entity *r1, const u8[]);
void GetPokemonLevelData(LevelData* a1, s32 _id, s32 level); // TODO: change to s32
void sub_8071B48(void)
@ -140,7 +137,7 @@ void sub_8071B48(void)
}
if (entityPtr != NULL) {
sub_805239C(0,*gUnknown_80FED68);
DisplayDungeonLoggableMessageTrue(0,*gUnknown_80FED68);
sub_8042920(entityPtr);
}
if (dungeon->unk66E != 0) {
@ -329,7 +326,7 @@ void sub_8071DA4(Entity *entity)
" ldr r2, [r0]\n"
" ldr r0, [sp, 0xB4]\n"
" mov r1, r8\n"
" bl sub_80522F4\n"
" bl TryDisplayDungeonLoggableMessage3\n"
" ldr r0, [sp, 0xB4]\n"
" mov r1, r8\n"
" movs r2, 0x1\n"
@ -466,7 +463,7 @@ void sub_8071DA4(Entity *entity)
" ldr r2, [r0]\n"
" ldr r0, [sp, 0xB4]\n"
" mov r1, r8\n"
" bl sub_80522F4\n"
" bl TryDisplayDungeonLoggableMessage3\n"
"_08071FC4:\n"
" adds r4, 0x1\n"
" cmp r4, 0xB\n"
@ -554,7 +551,7 @@ void sub_8072008(Entity *pokemon, Entity *target, s32 level, u8 param_4, u8 para
if ((tacticsBuffer1[tacticIndex] == 0) && (tacticsBuffer2[tacticIndex] == 1)) {
SetMessageArgument(gAvailablePokemonNames,target,0);
CopyTacticsNameToBuffer(gFormatItems,tacticIndex);
sub_80522F4(pokemon,target,*gUnknown_80FF730);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FF730);
}
}
}
@ -562,7 +559,7 @@ void sub_8072008(Entity *pokemon, Entity *target, s32 level, u8 param_4, u8 para
info->unk149 = 0;
if ((flag == 0) && (param_4 != 0)) {
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80F9B74);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80F9B74);
}
}
}
@ -603,7 +600,7 @@ void sub_807218C(Entity *pokemon)
{
strcpy(buffer, *gUnknown_80FCF18);
}
PrintFieldMessage(0, buffer, 1);
DisplayDungeonMessage(0, buffer, 1);
buffer[0] = 0;
@ -642,7 +639,7 @@ void sub_807218C(Entity *pokemon)
}
if(buffer[0])
PrintFieldMessage(0, buffer, 1);
DisplayDungeonMessage(0, buffer, 1);
sub_806A2BC(GetLeader(), 0);
}
@ -677,7 +674,7 @@ void LevelDownTarget(Entity *pokemon, Entity *target, u32 level)
if(!flag)
{
SetMessageArgument(gAvailablePokemonNames, target, 0);
sub_80522F4(pokemon, target, *gUnknown_80F9B94);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F9B94);
}
}
}
@ -718,7 +715,7 @@ bool8 sub_80723D0(Entity *pokemon, Entity *target, u8 param_3, u8 param_4)
gFormatData_202DE30[0] = level;
SetMessageArgument_2(gAvailablePokemonNames, info, 0);
sub_80528F4(target, *gUnknown_80F9E80);
DisplayDungeonLoggableMessage(target, *gUnknown_80F9E80);
}
else
{
@ -726,7 +723,7 @@ bool8 sub_80723D0(Entity *pokemon, Entity *target, u8 param_3, u8 param_4)
sub_8083D58();
gFormatData_202DE30[0] = level;
SetMessageArgument_2(gAvailablePokemonNames, info, 0);
sub_805239C(target, *gUnknown_80F9E80);
DisplayDungeonLoggableMessageTrue(target, *gUnknown_80F9E80);
}
}
flag = TRUE;
@ -873,12 +870,12 @@ bool8 sub_80725A4(Entity *pokemon, Entity *target)
{
gFormatData_202DE30[0] = info->level;
sub_80421C0(target, 0xD3 << 1);
sub_80522F4(pokemon, target, *gUnknown_80F9EC8); // $m0 dropped to Level $d0!
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F9EC8); // $m0 dropped to Level $d0!
return TRUE;
}
else
{
sub_80522F4(pokemon, target, *gUnknown_80F9EEC); // $m0's level didn't drop!
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F9EEC); // $m0's level didn't drop!
return FALSE;
}
}

View File

@ -4,6 +4,7 @@
#include "dungeon_map_access.h"
#include "dungeon_movement.h"
#include "dungeon_random.h"
#include "dungeon_message.h"
#include "moves.h"
#include "pokemon_mid.h"
#include "pokemon_mid.h"
@ -31,7 +32,6 @@ struct unkStruct_806B7F8
extern Entity* sub_806B7F8(struct unkStruct_806B7F8 *, bool8);
extern void sub_806BFC0(EntityInfo *, u32);
void sub_8069E0C(Entity *pokemon);
void sub_80522F4(Entity *r0, Entity *r1, const char r2[]);
void sub_8042A44(Entity *r0);
void sub_8083D78(void);
extern bool8 sub_803D930(u32);
@ -121,7 +121,7 @@ void sub_8072B78(Entity *pokemon, Entity *target, s16 id)
sub_806BFC0(entityInfo,0);
sub_8069E0C(target);
sub_806CCB4(target,7);
sub_80522F4(pokemon,target,*gUnknown_80FE2EC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FE2EC);
sub_8042A44(target);
sub_8083D78();
if (id_s32 == MONSTER_NINJASK) {

View File

@ -29,19 +29,17 @@
#include "constants/move_id.h"
#include "constants/weather.h"
#include "number_util.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_8077274_1.h"
#include "dungeon_pokemon_attributes.h"
extern bool8 sub_8044B28(void);
extern void sub_8075708(Entity *entity);
extern void sub_80526D0(u8 r0);
extern void DealDamageToEntity(Entity *, s32, u32, u32);
extern void sub_8067110(Entity *);
extern void sub_80671A0(Entity *);
extern void sub_8073D14(Entity *);
extern void sub_8045BF8(u8 *, Item *);
extern void sub_805239C(Entity *, const u8 *);
extern bool8 sub_80461C8(Position *, u32);
extern void sub_805229C(void);
extern void sub_807E8F0(Entity *);
@ -52,7 +50,7 @@ extern void sub_80420B8(Entity *pokemon);
extern void sub_8041C4C(Entity *pokemon, u32 r1);
extern void sub_805E804(void);
extern void sub_80838EC(u8 *a);
extern bool8 sub_8055FA0(struct Entity *, u32, u32, u32, u32, struct Move *);
extern bool8 TryUseChosenMove(struct Entity *, u32, u32, u32, u32, struct Move *);
extern bool8 sub_8045888(Entity *);
extern void nullsub_97(Entity *entity);
extern void sub_805EE30(void);
@ -161,7 +159,7 @@ void sub_8073D14(Entity *entity)
if (ShouldMonsterRunAwayAndShowEffect(entity, TRUE)) {
sub_8045BF8(gFormatItems, groundItem);
SetMessageArgument(gAvailablePokemonNames, entity, 0);
sub_805239C(entity, gMonTerrifiedCouldntPickUpItem);
DisplayDungeonLoggableMessageTrue(entity, gMonTerrifiedCouldntPickUpItem);
}
else if (!_entityInfo->isNotTeamMember && GetItemCategory(groundItem->id) == CATEGORY_POKE) {
// Why check the same thing again?
@ -174,7 +172,7 @@ void sub_8073D14(Entity *entity)
AddToTeamMoney(GetMoneyValue(groundItem));
sub_8045BF8(gFormatItems, groundItem);
sub_80461C8(&entity->pos, 1);
sub_805239C(entity, gMonPickedUpItem);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem);
}
else {
s32 i, nItems, newInventoryId;
@ -238,9 +236,9 @@ void sub_8073D14(Entity *entity)
sub_80461C8(&entity->pos, 1);
PlaySoundEffect(0x14A);
if (inventoryIds[newInventoryId] <= -1)
sub_805239C(entity, gMonPickedUpItem2);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem2);
else
sub_805239C(entity, gMonPickedUpItemToolbox);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItemToolbox);
return;
}
@ -253,7 +251,7 @@ void sub_8073D14(Entity *entity)
if (i == nItems) {
sub_8045BF8(gFormatItems, groundItem);
sub_805239C(entity, gMonSteppedOnItem);
DisplayDungeonLoggableMessageTrue(entity, gMonSteppedOnItem);
}
else {
if (_entityInfo->isNotTeamMember) {
@ -267,16 +265,16 @@ void sub_8073D14(Entity *entity)
_entityInfo->heldItem = *groundItem;
sub_8045BF8(gFormatItems, groundItem);
sub_80461C8(&entity->pos, 1);
sub_805239C(entity, gMonPickedUpItem2);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItem2);
}
else if (AddItemToInventory(groundItem)) {
SetMessageArgument(gAvailablePokemonNames, entity, 0);
sub_805239C(entity, gMonCouldntPickUpItem);
DisplayDungeonLoggableMessageTrue(entity, gMonCouldntPickUpItem);
}
else {
sub_8045BF8(gFormatItems, groundItem);
sub_80461C8(&entity->pos, 1);
sub_805239C(entity, gMonPickedUpItemToolbox);
DisplayDungeonLoggableMessageTrue(entity, gMonPickedUpItemToolbox);
}
}
}
@ -388,7 +386,7 @@ void sub_8074094(Entity *entity)
if (str != NULL) {
if (sound)
PlaySoundEffect(0x153);
SendMessage(entity, str);
TryDisplayDungeonLoggableMessage(entity, str);
sub_803E708(0x1E, 0x32);
}
}
@ -577,10 +575,10 @@ void sub_8074094(Entity *entity)
if (!EntityExists(entity) || sub_8044B28())
return;
SetMessageArgument(gUnknown_202DFE8, entity, 0);
SendMessage(entity, gUnknown_80FEB30);
TryDisplayDungeonLoggableMessage(entity, gUnknown_80FEB30);
TrySendImmobilizeSleepEndMsg(entity, entity);
if (entityInfo->protection.protectionStatus == STATUS_PROTECT) {
SendMessage(entity, gPtrProtectSavedItMessage);
TryDisplayDungeonLoggableMessage(entity, gPtrProtectSavedItMessage);
}
else {
DealDamageToEntity(entity, 0x270F, 0xB, 0x20E);
@ -600,7 +598,7 @@ void sub_8074094(Entity *entity)
UseAttack(NULL);
InitPokemonMove(&bideMove, MOVE_BIDE_2);
bideMove.moveFlags |= MOVE_FLAG_LAST_USED;
sub_8055FA0(entity, 0, 0, 0, 0, &bideMove);
TryUseChosenMove(entity, 0, 0, 0, 0, &bideMove);
if (!EntityExists(entity) || sub_8044B28())
return;
entityInfo->unkA0 = 0;
@ -617,7 +615,7 @@ void sub_8074094(Entity *entity)
entityInfo->charging.chargingStatus = 0;
entityInfo->unk14A = 0;
SetMessageArgument(gAvailablePokemonNames, entity, 0);
SendMessage(entity, gUnknown_80FABD8);
TryDisplayDungeonLoggableMessage(entity, gUnknown_80FABD8);
}
}
@ -773,7 +771,7 @@ void TickStatusHeal(Entity *entity)
sub_80838EC(&entityInfo->terrifiedTurns);
if (entityInfo->terrifiedTurns == 0) {
SetMessageArgument(gAvailablePokemonNames, entity, 0);
SendMessage(entity, gPtrStenchWavedOffMessage);
TryDisplayDungeonLoggableMessage(entity, gPtrStenchWavedOffMessage);
}
}
@ -797,7 +795,7 @@ void TickStatusHeal(Entity *entity)
if (oldSpdStage != newSpdStage) {
SetMessageArgument(gAvailablePokemonNames, entity, 0);
SendMessage(entity, gUnknown_80FA124[newSpdStage]);
TryDisplayDungeonLoggableMessage(entity, gUnknown_80FA124[newSpdStage]);
}
}
}

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "code_803E46C.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_805D8C8.h"
#include "code_806CD90.h"
#include "code_8077274_1.h"
@ -169,7 +169,6 @@ extern u8 *gUnknown_80FBF84[];
extern void sub_8049ED4();
extern void sub_8040A84();
extern void sub_80522F4(Entity *pokemon, Entity *r1, const char[]);
extern void EntityUpdateStatusSprites(Entity *);
extern void sub_8042A74(Entity *r0);
extern void sub_807EC28(bool8);
@ -224,11 +223,11 @@ void MuzzleTarget(Entity *pokemon, Entity *target)
entityInfo->muzzled.muzzled = TRUE;
entityInfo->muzzled.muzzledTurns = CalculateStatusTurns(target,gUnknown_80F4F1C, TRUE) + 1;
nullsub_86(target);
sub_80522F4(pokemon, target, *gUnknown_80FBF68);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBF68);
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FBF84);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBF84);
}
EntityUpdateStatusSprites(target);
}
@ -251,13 +250,13 @@ void TransformStatusTarget(Entity * pokemon, Entity * target)
entityInfo = target->info;
if (entityInfo->transformStatus.transformStatus == STATUS_TRANSFORMED)
sub_80522F4(pokemon, target, *gUnknown_80FBF04);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBF04);
else {
SetMessageArgument(gAvailablePokemonNames, target, 0);
iVar5 = sub_803D870(auStack544, 0);
if (iVar5 == 0)
sub_80522F4(pokemon, target, *gUnknown_80FBEE4);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBEE4);
else {
sprite = NULL;
@ -274,7 +273,7 @@ void TransformStatusTarget(Entity * pokemon, Entity * target)
}
if (index == DUNGEON_MAX_POKEMON || sprite == NULL)
sub_80522F4(pokemon, target, *gUnknown_80FBEE4);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBEE4);
else {
entityInfo->apparentID = apparentID;
target->sprite = sprite;
@ -284,7 +283,7 @@ void TransformStatusTarget(Entity * pokemon, Entity * target)
nullsub_87(target);
sub_806CCB4(target, sub_806CEBC(target));
CopyCyanMonsterNametoBuffer(gUnknown_202DFE8, entityInfo->apparentID);
sub_80522F4(pokemon, target, *gUnknown_80FBEC0);
TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBEC0);
EntityUpdateStatusSprites(target);
}
}
@ -309,10 +308,10 @@ void MobileStatusTarget(Entity * pokemon, Entity * target)
entityInfo->transformStatus.transformStatus = STATUS_MOBILE;
entityInfo->transformStatus.transformStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F04, FALSE) + 1;
nullsub_88(target);
sub_80522F4(pokemon,target,*gUnknown_80FBF28);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBF28);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBF50);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBF50);
}
EntityUpdateStatusSprites(target);
}
@ -341,11 +340,11 @@ void ExposeStatusTarget(Entity * pokemon, Entity * target, s16 param_3)
if(flag)
{
sub_8041DD8(target,param_3_s16);
sub_80522F4(pokemon,target,*gUnknown_80FC000);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC000);
flag2 = TRUE;
}
if (entityInfo->exposed) {
sub_80522F4(pokemon,target,*gUnknown_80FBFB8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBFB8);
}
else
{
@ -353,11 +352,11 @@ void ExposeStatusTarget(Entity * pokemon, Entity * target, s16 param_3)
sub_8041DD8(target,param_3_s16_2);
}
if (!MonsterIsType(target, TYPE_GHOST)) {
sub_80522F4(pokemon,target,*gUnknown_80FBFD8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBFD8);
}
else {
entityInfo->exposed = TRUE;
sub_80522F4(pokemon,target,*gUnknown_80FBF9C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBF9C);
}
EntityUpdateStatusSprites(target);
}
@ -374,11 +373,11 @@ void IdentityItemHolders(Entity *pokemon, Entity *target)
nullsub_89(target);
gDungeon->itemHoldersIdentified = TRUE;
EntityUpdateStatusSprites(target);
sub_80522F4(pokemon,target,*gUnknown_80FC028);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC028);
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FC054);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC054);
}
}
}
@ -394,14 +393,14 @@ void BlindTarget(Entity *pokemon, Entity *target)
entityInfo->eyesightStatus.eyesightStatus = STATUS_BLINKER;
entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F08, TRUE) + 1;
sub_8041E0C(target);
sub_80522F4(pokemon,target,*gUnknown_80FB7F4);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB7F4);
sub_803E46C(0x31);
sub_8049ED4();
sub_8040A84();
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FB810);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB810);
}
EntityUpdateStatusSprites(target);
}
@ -419,7 +418,7 @@ void CrossEyeVisionTarget(Entity *pokemon, Entity *target)
SetMessageArgument(gAvailablePokemonNames,target,0);
if (entityInfo->eyesightStatus.eyesightStatus != STATUS_CROSS_EYED) {
sub_8041E1C(target);
sub_80522F4(pokemon,target,*gUnknown_80FB834);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB834);
entityInfo->eyesightStatus.eyesightStatus = STATUS_CROSS_EYED;
entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F0C, TRUE) + 1;
sub_803F580(0x1);
@ -428,7 +427,7 @@ void CrossEyeVisionTarget(Entity *pokemon, Entity *target)
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FB85C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB85C);
}
EntityUpdateStatusSprites(target);
}
@ -447,14 +446,14 @@ void RestoreVisionTarget(Entity *pokemon, Entity *target)
entityInfo->eyesightStatus.eyesightStatus = STATUS_EYEDROPS;
entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F10, FALSE) + 1;
sub_8041E3C(target);
sub_80522F4(pokemon,target,*gUnknown_80FB880);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB880);
sub_803E46C(0x31);
sub_8049ED4();
sub_8040A84();
}
else
{
sub_80522F4(pokemon,target,*gUnknown_80FB89C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB89C);
}
EntityUpdateStatusSprites(target);
}
@ -493,10 +492,10 @@ void RestorePPTarget(Entity * pokemon,Entity * target, s32 param_3)
}
if (PPChanged) {
sub_8041E4C(target);
sub_80522F4(pokemon,target,*gUnknown_80FDBD0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FDBD0);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FDBF0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FDBF0);
}
EntityUpdateStatusSprites(target);
}
@ -523,10 +522,10 @@ void RaiseAtkStatTarget(Entity * pokemon, Entity *target, s32 increment)
entityInfo->atk = newStat;
if (oldStat1 < (u8)newStat) {
sub_8041E60(target);
sub_80522F4(pokemon,target,*gUnknown_80FC33C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC33C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FC360);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC360);
}
EntityUpdateStatusSprites(target);
}
@ -553,10 +552,10 @@ void RaiseSpAtkStatTarget(Entity * pokemon, Entity *target, s32 increment)
entityInfo->spAtk = newStat;
if (oldStat1 < (u8)newStat) {
sub_8041E74(target);
sub_80522F4(pokemon,target,*gUnknown_80FC388);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC388);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FC3B4);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC3B4);
}
EntityUpdateStatusSprites(target);
}
@ -583,10 +582,10 @@ void RaiseDefStatTarget(Entity * pokemon, Entity *target, s32 increment)
entityInfo->def = newStat;
if (oldStat1 < (u8)newStat) {
sub_8041E84(target);
sub_80522F4(pokemon,target,*gUnknown_80FC3D8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC3D8);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FC3FC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC3FC);
}
EntityUpdateStatusSprites(target);
}
@ -613,10 +612,10 @@ void RaiseSpDefStatTarget(Entity * pokemon, Entity *target, s32 increment)
entityInfo->spDef = newStat;
if (oldStat1 < (u8)newStat) {
sub_8041E94(target);
sub_80522F4(pokemon,target,*gUnknown_80FC428);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC428);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FC454);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC454);
}
EntityUpdateStatusSprites(target);
}
@ -631,10 +630,10 @@ void LongTossStatusTarget(Entity * pokemon, Entity * target)
if (entityInfo->itemStatus.itemStatus != STATUS_LONG_TOSS) {
entityInfo->itemStatus.itemStatus = STATUS_LONG_TOSS;
sub_8041EA4(target);
sub_80522F4(pokemon,target,*gUnknown_80FD20C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD20C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FD22C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD22C);
}
EntityUpdateStatusSprites(target);
}
@ -648,10 +647,10 @@ void PierceStatusTarget(Entity * pokemon, Entity * target)
if (entityInfo->itemStatus.itemStatus != STATUS_PIERCE) {
entityInfo->itemStatus.itemStatus = STATUS_PIERCE;
sub_8041EB4(target);
sub_80522F4(pokemon,target,*gUnknown_80FD254);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD254);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FD27C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD27C);
}
EntityUpdateStatusSprites(target);
}
@ -670,7 +669,7 @@ void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move *
entityInfo = target->info;
SetMessageArgument(gAvailablePokemonNames,target,0);
if ((entityInfo->charging.chargingStatus == newStatus) && (newStatus == STATUS_ENRAGED)) {
sub_80522F4(pokemon,target,*gUnknown_80FC074);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC074);
}
else {
entityInfo->charging.chargingStatus = newStatus;
@ -702,7 +701,7 @@ void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move *
entityInfo->charging.chargingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EA0, FALSE) + 1;
}
sub_8041BD0(target,uVar5);
sub_80522F4(pokemon,target,message);
TryDisplayDungeonLoggableMessage3(pokemon,target,message);
EntityUpdateStatusSprites(target);
// TODO: this could probably be cleaner..
@ -745,7 +744,7 @@ void CounterStatusTarget(Entity * pokemon, Entity * target, u8 newStatus)
entityInfo = target->info;
SetMessageArgument(gAvailablePokemonNames,target,0);
if (entityInfo->protection.protectionStatus == newStatus) {
sub_80522F4(pokemon,target,*gUnknown_80FB10C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB10C);
}
else {
nullsub_57(target);
@ -753,7 +752,7 @@ void CounterStatusTarget(Entity * pokemon, Entity * target, u8 newStatus)
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E98, FALSE) + 1;
}
entityInfo->protection.protectionStatus = newStatus;
sub_80522F4(pokemon,target,*gUnknown_80FB0E0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB0E0);
EntityUpdateStatusSprites(target);
}
}
@ -770,10 +769,10 @@ void SafeguardStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_SAFEGUARD;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E88, FALSE) + 1;
nullsub_58(target);
sub_80522F4(pokemon,target,*gUnknown_80FB048);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB048);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FB074);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB074);
}
EntityUpdateStatusSprites(target);
}
@ -790,10 +789,10 @@ void MistStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_MIST;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E8C, FALSE) + 1;
nullsub_59(target);
sub_80522F4(pokemon,target,*gUnknown_80FB09C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB09C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FB0C4);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB0C4);
}
EntityUpdateStatusSprites(target);
}
@ -810,10 +809,10 @@ void WishStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_WISH;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EB4, FALSE) + 1;
sub_8041B34(target);
sub_80522F4(pokemon,target,*gUnknown_80FAE1C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAE1C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FAE3C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAE3C);
}
EntityUpdateStatusSprites(target);
}
@ -830,10 +829,10 @@ void MagicCoatStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_MAGIC_COAT;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E90, FALSE) + 1;
nullsub_60(target);
sub_80522F4(pokemon,target,*gUnknown_80FAF5C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAF5C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FAF8C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAF8C);
}
EntityUpdateStatusSprites(target);
}
@ -850,10 +849,10 @@ void LightScreenStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_LIGHT_SCREEN;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E84, FALSE) + 1;
nullsub_61(target);
sub_80522F4(pokemon,target,*gUnknown_80FB130);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB130);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FB160);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB160);
}
EntityUpdateStatusSprites(target);
}
@ -870,10 +869,10 @@ void ReflectStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_REFLECT;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E80, FALSE) + 1;
nullsub_62(target);
sub_80522F4(pokemon,target,*gUnknown_80FB17C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB17C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FB1A8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB1A8);
}
EntityUpdateStatusSprites(target);
}
@ -890,11 +889,11 @@ void ProtectStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_PROTECT;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4ED4, FALSE) + 1;
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FB9B0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB9B0);
}
else {
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FB9D8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB9D8);
}
EntityUpdateStatusSprites(target);
}
@ -911,10 +910,10 @@ void MirrorCoatStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_MIRROR_COAT;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EE8, FALSE) + 1;
nullsub_64(target);
sub_80522F4(pokemon,target,*gUnknown_80FBAC0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBAC0);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBAE4);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBAE4);
}
EntityUpdateStatusSprites(target);
}
@ -931,10 +930,10 @@ void EndureStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_ENDURING;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EF8, FALSE) + 1;
nullsub_65(target);
sub_80522F4(pokemon,target,*gUnknown_80FBBF0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBBF0);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBC14);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC14);
}
EntityUpdateStatusSprites(target);
}
@ -951,10 +950,10 @@ void MirrorMoveStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_MIRROR_MOVE;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F18, FALSE) + 1;
nullsub_66(target);
sub_80522F4(pokemon,target,*gUnknown_80FBC38);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC38);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBC5C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC5C);
}
EntityUpdateStatusSprites(target);
}
@ -968,7 +967,7 @@ void Conversion2StatusTarget(Entity * pokemon, Entity * target)
entityInfo = target->info;
if(HasAbility(target, ABILITY_FORECAST))
sub_80522F4(pokemon,target,*gPtrForecastPreventsConversion2Message);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gPtrForecastPreventsConversion2Message);
else
{
SetMessageArgument(gAvailablePokemonNames,target,0);
@ -976,10 +975,10 @@ void Conversion2StatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_CONVERSION2;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F20, FALSE) + 1;
nullsub_67(target);
sub_80522F4(pokemon,target,*gUnknown_80FBC7C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC7C);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBCA4);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBCA4);
}
EntityUpdateStatusSprites(target);
}
@ -997,10 +996,10 @@ void VitalThrowStatusTarget(Entity * pokemon, Entity * target)
entityInfo->protection.protectionStatus = STATUS_VITAL_THROW;
entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F24, FALSE) + 1;
nullsub_68(target);
sub_80522F4(pokemon,target,*gUnknown_80FBCC8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBCC8);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBCF0);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBCF0);
}
EntityUpdateStatusSprites(target);
}
@ -1047,10 +1046,10 @@ void sub_8079E34(Entity * pokemon, Entity * target, bool8 param_3)
}
SetMessageArgument(gAvailablePokemonNames,target,0);
if (statChanged) {
sub_80522F4(pokemon,target,*gUnknown_80FBD18);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBD18);
}
else {
sub_80522F4(pokemon,target,*gUnknown_80FBD3C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBD3C);
}
EntityUpdateStatusSprites(target);
}
@ -1085,11 +1084,11 @@ void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4)
SendMuzzledEndMessage(pokemon,target);
if (entityInfo->perishSongTurns != 0) {
entityInfo->perishSongTurns = 0;
sub_80522F4(pokemon,target,*gUnknown_8100594);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_8100594);
}
if (entityInfo->exposed) {
entityInfo->exposed = FALSE;
sub_80522F4(pokemon,target,*gPtrExposedWoreOffMessage);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gPtrExposedWoreOffMessage);
}
}
@ -1101,7 +1100,7 @@ void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4)
if (moveSpeed != CalcSpeedStage(target)) {
bVar8 = TRUE;
sub_80522F4(pokemon,target,gUnknown_80FA124[entityInfo->speedStage]);
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FA124[entityInfo->speedStage]);
}
for(index = 0; index < MAX_MON_MOVES; index++)
@ -1119,11 +1118,11 @@ void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4)
sub_80420C8(target);
}
if (moveUnsealed) {
sub_80522F4(pokemon,target,*gPtrSealedMoveReleasedMessage);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gPtrSealedMoveReleasedMessage);
}
}
else if (param_4 == 0) {
sub_80522F4(pokemon,target,*gUnknown_81004E8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_81004E8);
}
EntityUpdateStatusSprites(target);
}
@ -1169,21 +1168,21 @@ void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8
break;
case STATUS_SLEEP:
isAsleep = TRUE;
sub_80522F4(pokemon,target,*gUnknown_80FA6E8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA6E8);
break;
case STATUS_SLEEPLESS:
sub_80522F4(pokemon,target,*gUnknown_80FA708);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA708);
break;
case STATUS_NIGHTMARE:
isAsleep = TRUE;
sub_80522F4(pokemon,target,*gUnknown_80FA70C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA70C);
if (param_4) {
DealDamageToEntity(target,gUnknown_80F4F78,8,0x20f);
}
break;
case STATUS_NAPPING:
isAsleep = TRUE;
sub_80522F4(pokemon,target,*gUnknown_80FA710);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA710);
HealTargetHP(pokemon,target,gUnknown_80F4F7A, 0, FALSE);
entityInfo->sleep.sleep = 0;
sub_8079F20(pokemon,target,1,1);
@ -1194,7 +1193,7 @@ void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8
sub_8075C58(pokemon,target,CalculateStatusTurns(target, gUnknown_80F4F2C, TRUE) + 1, TRUE);
return;
}
sub_80522F4(pokemon,target,*gUnknown_80FA734);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA734);
break;
}
entityInfo->sleep.sleep = STATUS_NONE;
@ -1219,13 +1218,13 @@ void SendNonVolatileEndMessage(Entity * pokemon, Entity * target)
break;
case STATUS_POISONED:
case STATUS_BADLY_POISONED:
sub_80522F4(pokemon,target,*gUnknown_80FA8A8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA8A8);
break;
case STATUS_PARALYSIS:
sub_80522F4(pokemon,target,*gUnknown_80FA868);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA868);
break;
case STATUS_BURN:
sub_80522F4(pokemon,target,*gUnknown_80FA888);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA888);
break;
}
@ -1249,23 +1248,23 @@ void SendImmobilizeEndMessage(Entity * pokemon, Entity *target)
case 8:
break;
case STATUS_FROZEN:
sub_80522F4(pokemon,target,*gUnknown_80FA8BC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA8BC);
isFrozen = TRUE;
break;
case STATUS_CONSTRICTION:
sub_80522F4(pokemon,target,*gUnknown_80FA820);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA820);
break;
case STATUS_SHADOW_HOLD:
case STATUS_INGRAIN:
sub_80522F4(pokemon,target,*gUnknown_80FA824);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA824);
break;
case STATUS_WRAP:
case STATUS_WRAPPED:
sub_80522F4(pokemon,target,*gUnknown_80FA81C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA81C);
sub_8076CB4(entityInfo->unk9C);
break;
case STATUS_PETRIFIED:
sub_80522F4(pokemon,target, *gPtrMonNoLongerPetrifiedMessage);
TryDisplayDungeonLoggableMessage3(pokemon,target, *gPtrMonNoLongerPetrifiedMessage);
break;
}
entityInfo->immobilize.immobilizeStatus = STATUS_NONE;
@ -1289,25 +1288,25 @@ void SendVolatileEndMessage(Entity * pokemon, Entity *target)
case 8:
break;
case STATUS_CONFUSED:
sub_80522F4(pokemon,target,*gUnknown_80FA800);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA800);
break;
case STATUS_COWERING:
sub_80522F4(pokemon,target,*gUnknown_80FA97C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA97C);
break;
case STATUS_TAUNTED:
sub_80522F4(pokemon,target,*gUnknown_80FA9DC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA9DC);
break;
case STATUS_PAUSED:
sub_80522F4(pokemon,target,*gUnknown_80FAC38);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAC38);
break;
case STATUS_INFATUATED:
sub_80522F4(pokemon,target,*gUnknown_80FAB90);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAB90);
break;
case STATUS_ENCORE:
sub_80522F4(pokemon,target,*gUnknown_80FAAAC);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAAAC);
break;
case STATUS_CRINGE:
sub_80522F4(pokemon,target, *gPtrMonNoLongerCringingMessage);
TryDisplayDungeonLoggableMessage3(pokemon,target, *gPtrMonNoLongerCringingMessage);
break;
}
entityInfo->volatileStatus.volatileStatus = STATUS_NONE;
@ -1329,44 +1328,44 @@ void SendProtectionEndMessage(Entity * pokemon, Entity *target)
case 0xF:
break;
case STATUS_REFLECT:
SendMessage(target,*gUnknown_80FA638);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA638);
break;
case STATUS_SAFEGUARD:
SendMessage(target,*gUnknown_80FA69C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA69C);
break;
case STATUS_LIGHT_SCREEN:
SendMessage(target,*gUnknown_80FA658);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA658);
break;
case STATUS_COUNTER:
case STATUS_MINI_COUNTER:
SendMessage(target,*gUnknown_80FA67C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA67C);
break;
case STATUS_MAGIC_COAT:
SendMessage(target,*gUnknown_80FA6BC);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA6BC);
break;
case STATUS_WISH:
SendMessage(target,*gUnknown_80FA6D4);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA6D4);
break;
case STATUS_PROTECT:
SendMessage(target,*gUnknown_80FA9C0);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA9C0);
break;
case STATUS_MIRROR_COAT:
SendMessage(target,*gUnknown_80FAA68);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAA68);
break;
case STATUS_ENDURING:
SendMessage(target, *gPtrMonStoppedEnduringMessage);
TryDisplayDungeonLoggableMessage(target, *gPtrMonStoppedEnduringMessage);
break;
case STATUS_MIRROR_MOVE:
SendMessage(target,*gPtrMonMirrorMoveFadedMessage);
TryDisplayDungeonLoggableMessage(target,*gPtrMonMirrorMoveFadedMessage);
break;
case STATUS_CONVERSION2:
SendMessage(target, *gPtrMonConversion2FailedMessage);
TryDisplayDungeonLoggableMessage(target, *gPtrMonConversion2FailedMessage);
break;
case STATUS_VITAL_THROW:
SendMessage(target, *gPtrMonGaveUpVitalThrowMessage);
TryDisplayDungeonLoggableMessage(target, *gPtrMonGaveUpVitalThrowMessage);
break;
case STATUS_MIST:
SendMessage(target,*gUnknown_80FAB40);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAB40);
break;
}
entityInfo->protection.protectionStatus = STATUS_NONE;
@ -1387,12 +1386,12 @@ void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus)
break;
case STATUS_CURSED:
if (waitingStatus != STATUS_CURSED) {
SendMessage(target,*gUnknown_80FA7BC);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA7BC);
}
break;
case STATUS_SNATCH:
if (waitingStatus != STATUS_SNATCH) {
SendMessage(target,*gUnknown_80FA7DC);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA7DC);
}
gDungeon->snatchPokemon = NULL;
gDungeon->unk17B3C = 0;
@ -1404,7 +1403,7 @@ void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus)
gDungeon->decoyActive = FALSE;
if (waitingStatus != STATUS_DECOY) {
SetMessageArgument(gAvailablePokemonNames,target,0);
SendMessage(target,*gUnknown_80FA9A0);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA9A0);
}
break;
}
@ -1425,10 +1424,10 @@ void SendLinkedEndMessage(Entity * pokemon, Entity * target)
case STATUS_NONE:
break;
case STATUS_LEECH_SEED:
SendMessage(target,*gUnknown_80FA79C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA79C);
break;
case STATUS_DESTINY_BOND:
SendMessage(target,*gUnknown_80FAA8C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAA8C);
break;
}
entityInfo->linked.linkedStatus = STATUS_NONE;
@ -1451,16 +1450,16 @@ void SendMoveEndMessage(Entity * pokemon, Entity * target)
case 5:
break;
case STATUS_SURE_SHOT:
SendMessage(target,*gUnknown_80FA8E0);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA8E0);
break;
case STATUS_WHIFFER:
SendMessage(target,*gUnknown_80FA90C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA90C);
break;
case STATUS_SET_DAMAGE:
SendMessage(target,*gUnknown_80FA934);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA934);
break;
case STATUS_FOCUS_ENERGY:
SendMessage(target,*gUnknown_80FA95C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA95C);
break;
}
entityInfo->moveStatus.moveStatus = STATUS_NONE;
@ -1485,17 +1484,17 @@ void SendTransformEndMessage(Entity * pokemon, Entity *target)
break;
case STATUS_INVISIBLE:
isInvisible = TRUE;
SendMessage(target,*gUnknown_80FA9F4);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FA9F4);
break;
case STATUS_MOBILE:
SendMessage(target,*gUnknown_80FABBC);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FABBC);
break;
case STATUS_TRANSFORMED:
entityInfo->apparentID = sub_8069F54(target, entityInfo->id);
target->sprite = GetSpriteData(entityInfo->apparentID);
uVar3 = sub_806CEBC(target);
sub_806CCB4(target,uVar3);
SendMessage(target,*gUnknown_80FAB6C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAB6C);
break;
}
entityInfo->transformStatus.transformStatus = STATUS_NONE;
@ -1519,13 +1518,13 @@ void SendEyesightEndMessage(Entity * pokemon,Entity * target)
case 4:
break;
case STATUS_BLINKER:
SendMessage(target,*gUnknown_80FAA0C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAA0C);
break;
case STATUS_CROSS_EYED:
SendMessage(target,*gUnknown_80FAA2C);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAA2C);
break;
case STATUS_EYEDROPS:
SendMessage(target,*gUnknown_80FAA48);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FAA48);
break;
}
entityInfo->eyesightStatus.eyesightStatus = STATUS_NONE;
@ -1551,7 +1550,7 @@ void SendMuzzledEndMessage(Entity * pokemon, Entity * target)
case 2:
break;
case TRUE:
SendMessage(target,*gUnknown_80FABC0);
TryDisplayDungeonLoggableMessage(target,*gUnknown_80FABC0);
break;
}
entityInfo->muzzled.muzzled = FALSE;
@ -1596,7 +1595,7 @@ void SendThawedMessage(Entity *pokemon, Entity *target)
entityInfo->immobilize.immobilizeStatusTurns = 0;
entityInfo->immobilize.immobilizeStatusDamageCountdown = 0;
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FA8BC); // $m0 thawed out!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA8BC); // $m0 thawed out!
EntityUpdateStatusSprites(target);
}
}

View File

@ -3,7 +3,7 @@
#include "constants/ability.h"
#include "code_803E46C.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_806CD90.h"
#include "code_807CD9C.h"
#include "structs/str_dungeon.h"
@ -39,7 +39,6 @@ bool8 ExposeTrap(s32 x, s32 y);
void sub_8040A84();
void sub_8049ED4();
void sub_806A5B8(Entity *);
void sub_80522F4(Entity *, Entity *, u8 *);
void sub_80421C0(Entity *, u32);
u8 sub_8045888(Entity *);
void sub_807EC28(u32);
@ -66,19 +65,19 @@ void sub_807CD9C(Entity *pokemon, Entity *target, u32 direction)
sp_0x24 = 10;
if (IsCurrentFixedRoomBossFight()) {
sub_80522F4(pokemon,target,*gUnknown_80FC9E8); // It couldn't be knocked flying!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC9E8); // It couldn't be knocked flying!
return;
}
else
{
if (pokemon == target) {
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FCA10); // {POKEMON_0} couldn't be knocked flying!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCA10); // {POKEMON_0} couldn't be knocked flying!
return;
}
SetMessageArgument(gAvailablePokemonNames,target,0);
if (HasAbility(target,ABILITY_SUCTION_CUPS)) {
sub_80522F4(pokemon,target,*gUnknown_80FCBCC); // {POKEMON_0} is anchored! It can't be knocked flying!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCBCC); // {POKEMON_0} is anchored! It can't be knocked flying!
return;
}
else
@ -86,7 +85,7 @@ void sub_807CD9C(Entity *pokemon, Entity *target, u32 direction)
(target->info->action).direction = (direction + 4) & DIRECTION_MASK;
sub_806CDD4(target, 6, (direction + 4) & DIRECTION_MASK);
sub_80421C0(target,0x1a3);
sub_80522F4(pokemon,target,*gUnknown_80F8A0C); // {POKEMON_0} was blown away!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80F8A0C); // {POKEMON_0} was blown away!
flag = TRUE;
sp_0x28 = NULL;
@ -230,24 +229,24 @@ void sub_807D148(Entity *pokemon, Entity *target, u32 param_3, Position *pos)
SetMessageArgument(gAvailablePokemonNames,target,0);
if (HasAbility(target,ABILITY_SUCTION_CUPS)) {
sub_80522F4(pokemon,target,*gUnknown_80FCAE8);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCAE8);
return;
}
if (IsCurrentFixedRoomBossFight()) {
sub_80522F4(pokemon,target,*gUnknown_80FC97C);
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC97C);
return;
}
if (param_3 == 1)
{
pos2 = gDungeon->unkE21C;
if(pos2.x == target->pos.x && pos2.y == target->pos.y) {
sub_80522F4(pokemon,target,*gUnknown_80FC9A0); // It's already on the stairs!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC9A0); // It's already on the stairs!
PetrifiedStatusTarget(pokemon,target);
return;
}
}
sub_80522F4(pokemon,target,*gUnknown_80FC584); // $m0 warped!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC584); // $m0 warped!
TrySendImmobilizeSleepEndMsg(target,target);
sub_80421AC(pokemon,target);
if (sub_8045888(target)) {
@ -312,7 +311,7 @@ void sub_807D148(Entity *pokemon, Entity *target, u32 param_3, Position *pos)
target->unk1C = 0;
sub_803E46C(0x22);
if (flag) {
sub_80522F4(pokemon,target,*gUnknown_80FCB14); // But it dropped back at the same spot!
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCB14); // But it dropped back at the same spot!
}
if (param_3 == 1) {
PetrifiedStatusTarget(pokemon,target);
@ -360,12 +359,12 @@ void sub_807D3CC(Entity *param_1)
}
}
if (flag) {
SendMessage(param_1,*gUnknown_80FD2F8); // All traps were exposed
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80FD2F8); // All traps were exposed
sub_8040A84();
sub_8049ED4();
}
else {
SendMessage(param_1,*gUnknown_80FD320); // There appears to be no hidden traps.
TryDisplayDungeonLoggableMessage(param_1,*gUnknown_80FD320); // There appears to be no hidden traps.
}
}

View File

@ -2,7 +2,7 @@
#include "code_804267C.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "constants/ability.h"
#include "constants/type.h"
#include "dungeon_ai.h"
@ -20,7 +20,6 @@ void sub_806A2BC(Entity *pokemon, u8 param_2);
extern u8 sub_8044B28(void);
extern void sub_8068FE0(Entity *, u32, Entity *r2);
extern void nullsub_93(Position *);
extern void sub_80522F4(Entity *, Entity *, u8 *);
extern void sub_806F370(Entity *pokemon, Entity *target, u32, u32, u8 *, u8 moveType, s32, u32, u32, u32);
extern void sub_80694C0(Entity *, s32, s32, u32);
extern void sub_807EC28(bool8);
@ -77,12 +76,12 @@ void sub_807E254(Entity *pokemon,Entity *target)
if (HasAbility(pokemon, ABILITY_SUCTION_CUPS)) {
SetMessageArgument(gAvailablePokemonNames,pokemon,0);
sub_80522F4(pokemon,target,*gUnknown_80FCAC0); // $m0 is anchored! It won't switch places
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCAC0); // $m0 is anchored! It won't switch places
}
else if(HasAbility(target, ABILITY_SUCTION_CUPS))
{
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,*gUnknown_80FCAC0); // $m0 is anchored! It won't switch places
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCAC0); // $m0 is anchored! It won't switch places
}
else
{
@ -137,7 +136,7 @@ void sub_807E378(void)
sub_806A2BC(leader,1);
UseAttack(leader);
if (sub_8044B28() == 0) {
SendMessage(leader,*gUnknown_80F9C4C);
TryDisplayDungeonLoggableMessage(leader,*gUnknown_80F9C4C);
sub_80426C8(gUnknown_80F5FAC[gDungeon->tileset],0);
gDungeon->unk67A = 1;
}
@ -149,7 +148,7 @@ void sub_807E378(void)
sub_806A2BC(leader,1);
UseAttack(leader);
if (sub_8044B28() == 0) {
SendMessage(leader,*gUnknown_80F9C70);
TryDisplayDungeonLoggableMessage(leader,*gUnknown_80F9C70);
sub_80426C8(gUnknown_80F5FAC[gDungeon->tileset],1);
gDungeon->unk67A = 2;
}
@ -161,7 +160,7 @@ void sub_807E378(void)
sub_806A2BC(leader,1);
UseAttack(leader);
if (sub_8044B28() == 0) {
SendMessage(leader,*gUnknown_80F9C8C);
TryDisplayDungeonLoggableMessage(leader,*gUnknown_80F9C8C);
sub_80426C8(gUnknown_80F5FAC[gDungeon->tileset],2);
gDungeon->unk67A = 3;
}
@ -172,7 +171,7 @@ void sub_807E378(void)
sub_806A2BC(leader,1);
UseAttack(leader);
if (sub_8044B28() == 0) {
SendMessage(leader,*gUnknown_80F9CBC);
TryDisplayDungeonLoggableMessage(leader,*gUnknown_80F9CBC);
sub_80426C8(gUnknown_80F5FAC[gDungeon->tileset],3);
gDungeon->unk67A = 4;
sub_8068FE0(leader,0x21e,leader);

View File

@ -23,7 +23,6 @@ s8 sub_8002984(s8, u8);
extern void BgColorCallNullsub4(void);
extern void SetDungeonBGColorRGB(u32, u32, u32, u32, u32);
extern void PlaySoundEffect(u32);
extern void DisplayDungeonDialogue(const u8 *);
extern void sub_8085EB0(void);
@ -292,7 +291,7 @@ void sub_8086690(void)
sub_80855E4(sub_8086404);
}
void sub_80866C4(const u8 *dialogue)
void sub_80866C4(const struct DungeonDialogueStruct *dialogue)
{
SpriteLookAroundEffect(xxx_call_GetLeader());
sub_803E708(10, 70);

View File

@ -22,7 +22,6 @@ extern u8 sub_8044B28(void);
extern u8 gUnknown_202E038[];
extern void sub_8085374();
extern void sub_8068FE0(Entity *, u32, u32);
extern void DisplayDungeonDialogue(const u8 *);
extern void sub_8086448(void);
extern void SkarmoryEntry(Entity *);
extern void sub_8086A54(Entity *);
@ -34,33 +33,33 @@ extern const u8 gUnknown_810739C[];
extern const u8 gUnknown_81073D4[];
extern const u8 gUnknown_810740C[];
extern const s16 gUnknown_80F57CC;
extern const u8 gUnknown_8101440[];
extern const u8 gSkarmoryPreFightDialogue_1[];
extern const u8 gSkarmoryPreFightDialogue_2[];
extern const u8 gSkarmoryPreFightDialogue_3[];
extern const u8 gSkarmoryPreFightDialogue_4[];
extern const u8 gSkarmoryPreFightDialogue_5[];
extern const u8 gSkarmoryPreFightDialogue_6[];
extern const u8 gSkarmoryPreFightDialogue_7[];
extern const u8 gSkarmoryPreFightDialogue_8[];
extern const u8 gSkarmoryPreFightDialogue_9[];
extern const u8 gSkarmoryReFightDialogue_1[];
extern const u8 gSkarmoryReFightDialogue_2[];
extern const u8 gSkarmoryReFightDialogue_3[];
extern const u8 gTeamMeaniesPreFightDialogue_1[];
extern const u8 gTeamMeaniesPreFightDialogue_2[];
extern const u8 gTeamMeaniesPreFightDialogue_3[];
extern const u8 gTeamMeaniesPreFightDialogue_4[];
extern const u8 gTeamMeaniesPreFightDialogue_5[];
extern const u8 gTeamMeaniesPreFightDialogue_6[];
extern const u8 gTeamMeaniesPreFightDialogue_7[];
extern const u8 gTeamMeaniesReFightDialogue_1[];
extern const u8 gTeamMeaniesReFightDialogue_2[];
extern const u8 gTeamMeaniesReFightDialogue_3[];
extern const u8 gTeamMeaniesReFightDialogue_4[];
extern const u8 gTeamMeaniesReFightDialogue_5[];
extern const struct DungeonDialogueStruct gUnknown_8101440;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_1;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_2;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_3;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_4;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_5;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_6;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_7;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_8;
extern const struct DungeonDialogueStruct gSkarmoryPreFightDialogue_9;
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_1;
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_2;
extern const struct DungeonDialogueStruct gSkarmoryReFightDialogue_3;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_1;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_2;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_3;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_4;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_5;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_6;
extern const struct DungeonDialogueStruct gTeamMeaniesPreFightDialogue_7;
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_1;
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_2;
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_3;
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_4;
extern const struct DungeonDialogueStruct gTeamMeaniesReFightDialogue_5;
extern const u8 gUnknown_8100D3C[];
extern const struct DungeonDialogueStruct gUnknown_8100D3C;
void sub_8086A3C(Entity *pokemon)
{
@ -184,33 +183,33 @@ void SkarmoryPreFightDialogue(void)
SpriteShockEffect(PartnerEntity);
sub_803E708(0x20,0x46);
sub_803E708(10,0x46);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_1);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_1);
ShiftCameraToPosition(&pos1,0x40);
sub_803E708(0x40,0x46);
ShiftCameraToPosition(&pos2,0x30);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_2);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_2);
sub_803E708(10,0x46);
DiglettEntity->info->unk15D = 1;
ShiftCameraToPosition(&pos1,0x30);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_3); // Diglett: ...I...\nI'm scared.
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_3); // Diglett: ...I...\nI'm scared.
sub_803E708(10,0x46);
ShiftCameraToPosition(&pos2,0x20);
sub_803E708(0x20,0x46);
SkarmoryEntry(SkarmoryEntity);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_4); // Skarmory: You!\nWhat do you think you're doing here?!
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_4); // Skarmory: You!\nWhat do you think you're doing here?!
sub_803E708(10,0x46);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_5);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_5);
sub_803E708(10,0x46);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_6);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_6);
sub_803E708(10,0x46);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_7);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_7);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_8);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_8);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
DisplayDungeonDialogue(gSkarmoryPreFightDialogue_9);
DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_9);
sub_80869E4(PartnerEntity,4,2,4);
sub_80869E4(LeaderEntity,4,1,4);
sub_803E708(10,0x46);
@ -232,12 +231,12 @@ void SkarmoryReFightDialogue(void)
sub_803E708(10,0x46);
SkarmoryEntry(SkarmoryEntity);
ShiftCameraToPosition(&pos,0x10);
DisplayDungeonDialogue(gSkarmoryReFightDialogue_1);
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_1);
sub_803E708(10,0x46);
DisplayDungeonDialogue(gSkarmoryReFightDialogue_2);
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_2);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
DisplayDungeonDialogue(gSkarmoryReFightDialogue_3);
DisplayDungeonDialogue(&gSkarmoryReFightDialogue_3);
sub_803E708(10,0x46);
ShiftCameraToPosition(&LeaderEntity->pixelPos,0x10);
DungeonStartNewBGM(MUS_BOSS_BATTLE);
@ -247,7 +246,7 @@ void sub_8086E40(void)
{
SpriteLookAroundEffect(xxx_call_GetLeader());
sub_803E708(10,0x46);
DisplayDungeonDialogue(gUnknown_8100D3C);
DisplayDungeonDialogue(&gUnknown_8100D3C);
sub_803E708(10,0x46);
gDungeon->unk2 = 1;
}
@ -328,21 +327,21 @@ void TeamMeaniesPreFightDialogue(void)
LeaderEntity = xxx_call_GetLeader();
sub_8086448();
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_1);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_1);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_2);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_2);
sub_803E708(10, 0x46);
sub_8087144();
DungeonStartNewBGM(MUS_THERES_TROUBLE);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_3);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_3);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_4);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_4);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_5);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_5);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_6);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_6);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_7);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_7);
sub_803E708(10, 0x46);
ShiftCameraToPosition(&LeaderEntity->pixelPos, 0x10);
}
@ -355,15 +354,15 @@ void TeamMeaniesReFightDialogue(void)
LeaderEntity = xxx_call_GetLeader();
PartnerEntity = GetPartnerEntity();
sub_8086448();
DisplayDungeonDialogue(gTeamMeaniesReFightDialogue_1);
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_1);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesPreFightDialogue_2);
DisplayDungeonDialogue(&gTeamMeaniesPreFightDialogue_2);
sub_803E708(10, 0x46);
sub_8087144();
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesReFightDialogue_2);
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_2);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesReFightDialogue_3);
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_3);
sub_803E708(10, 0x46);
sub_806CDD4(LeaderEntity, 6, 4);
sub_806CDD4(PartnerEntity, 6, 4);
@ -371,8 +370,8 @@ void TeamMeaniesReFightDialogue(void)
sub_806CDD4(LeaderEntity, 7, 4);
sub_806CDD4(PartnerEntity, 7, 4);
sub_803E708(10, 0x46);
DisplayDungeonDialogue(gTeamMeaniesReFightDialogue_4);
DisplayDungeonDialogue(gTeamMeaniesReFightDialogue_5);
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_4);
DisplayDungeonDialogue(&gTeamMeaniesReFightDialogue_5);
sub_803E708(10, 0x46);
ShiftCameraToPosition(&LeaderEntity->pixelPos, 0x10);
}
@ -380,7 +379,7 @@ void TeamMeaniesReFightDialogue(void)
void sub_8087130(void)
{
sub_8086448();
sub_80866C4(gUnknown_8101440);
sub_80866C4(&gUnknown_8101440);
}
void sub_8087144(void)

View File

@ -59,10 +59,10 @@ void sub_80993E4(void) {
and is very long. I didn't want to split up the
file or spend time decomping so here it is in
asm();
*/
*/
void sub_8099648(void);
NAKED void sub_80993F0(void)
NAKED void sub_80993F0(void)
{
asm_unified(" .text\n"
" push {r4-r7,lr}\n"
@ -272,7 +272,7 @@ NAKED void sub_80993F0(void)
"_080995AE:\n"
" bl sub_809D25C\n"
" bl sub_80A59DC\n"
" bl xxx_draw_string_80144C4\n"
" bl DrawDialogueBoxString\n"
" movs r0, 0\n"
" movs r1, 0\n"
" bl sub_8005838\n"

View File

@ -3,7 +3,7 @@
#include "code_803E668.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_8077274_1.h"
#include "code_808417C.h"
#include "constants/ability.h"
@ -57,7 +57,7 @@ void sub_8075900(Entity *pokemon, u8 r1)
if((GetTileAtEntitySafe(pokemon)->terrainType & TERRAIN_TYPE_IN_MONSTER_HOUSE))
{
// It's a monster house!
SendMessage(GetLeader(), gPtrItsaMonsterHouseMessage);
TryDisplayDungeonLoggableMessage(GetLeader(), gPtrItsaMonsterHouseMessage);
gDungeon->monsterHouseTriggeredEvent = TRUE;
sub_807AB38(pokemon, r1);
sub_8041888(0);
@ -91,7 +91,7 @@ void RunMonsterAI(Entity *pokemon, u32 unused)
{
pokemonInfo->useHeldItem = FALSE;
SetMessageArgument(gAvailablePokemonNames, pokemon, 0);
SendMessage(pokemon, gPtrCouldntBeUsedMessage);
TryDisplayDungeonLoggableMessage(pokemon, gPtrCouldntBeUsedMessage);
return;
}
AIDecideUseItem(pokemon);

View File

@ -3,7 +3,7 @@
#include "charge_move.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_806CD90.h"
#include "constants/direction.h"
#include "constants/dungeon_action.h"
@ -60,7 +60,7 @@ extern void sub_8057588(Entity *, u32);
extern void sub_806A1B0(Entity *);
extern Item *sub_8044D90(Entity *, s32, u32);
extern bool8 sub_8044D40(ActionContainer *, u32);
extern bool8 sub_8055FA0(struct Entity *, u32, u32, u32, u32, struct Move *);
extern bool8 TryUseChosenMove(struct Entity *, u32, u32, u32, u32, struct Move *);
extern void sub_8045BF8(u8 *, struct Item *);
extern void sub_8044DF0(struct Entity *, u32, u32);
extern void sub_8071DA4(struct Entity *);
@ -995,14 +995,14 @@ void HandleUseOrbAction(Entity *pokemon)
if (item->flags & ITEM_FLAG_STICKY) {
sub_8045BF8(gFormatItems, item);
SendMessage(pokemon, *gItemStickyDoesntWorkText);
TryDisplayDungeonLoggableMessage(pokemon, *gItemStickyDoesntWorkText);
return;
}
act = entityInfo->action;
if (IsBossFight()) {
SendMessage(pokemon, *gPtrMysteriousPowerPreventedUseMessage);
TryDisplayDungeonLoggableMessage(pokemon, *gPtrMysteriousPowerPreventedUseMessage);
r4 = TRUE;
}
else {
@ -1022,20 +1022,20 @@ void HandleUseOrbAction(Entity *pokemon)
if (entityInfo->volatileStatus.volatileStatus == 1) {
SetMessageArgument(gAvailablePokemonNames, pokemon, 0);
SendMessage(pokemon, *gUnknown_80FC714);
TryDisplayDungeonLoggableMessage(pokemon, *gUnknown_80FC714);
r4 = FALSE;
r8 = FALSE;
}
else if (entityInfo->volatileStatus.volatileStatus == 7) {
SetMessageArgument(gAvailablePokemonNames, pokemon, 0);
SendMessage(pokemon, *gUnknown_80FC718);
TryDisplayDungeonLoggableMessage(pokemon, *gUnknown_80FC718);
r4 = FALSE;
r8 = FALSE;
}
else if (entityInfo->nonVolatile.nonVolatileStatus == 4)
{
SetMessageArgument(gAvailablePokemonNames, pokemon, 0);
SendMessage(pokemon, *gUnknown_80FC6A8);
TryDisplayDungeonLoggableMessage(pokemon, *gUnknown_80FC6A8);
r4 = FALSE;
r8 = FALSE;
}
@ -1046,11 +1046,11 @@ void HandleUseOrbAction(Entity *pokemon)
move.moveFlags |= MOVE_FLAG_SET;
move.moveFlags |= MOVE_FLAG_ENABLED_FOR_AI;
move.PP = 10;
sub_8055FA0(pokemon, 0, IVar5.id, 0, 0, &move);
TryUseChosenMove(pokemon, 0, IVar5.id, 0, 0, &move);
r4 = FALSE;
}
else {
r4 = sub_8055FA0(pokemon, 0, IVar5.id, 0, 0, &move);
r4 = TryUseChosenMove(pokemon, 0, IVar5.id, 0, 0, &move);
}
}
else {

View File

@ -5,7 +5,7 @@
#include "code_803E46C.h"
#include "code_804267C.h"
#include "code_8045A00.h"
#include "code_80521D0.h"
#include "dungeon_message.h"
#include "code_8077274_1.h"
#include "code_807CD9C.h"
#include "constants/dungeon_action.h"
@ -71,7 +71,6 @@ void HandleSetItemAction(Entity *,bool8);
void HandleUnsetItemAction(Entity *,bool8);
extern u8 sub_8044B28(void);
extern u8 UseAttack(Entity *);
void sub_8052740(u32);
void sub_806A1E8(Entity *pokemon);
extern void sub_80694C0(Entity *, s32, s32, u32);
bool8 sub_804AE08(Position *pos);
@ -226,7 +225,7 @@ bool8 sub_8072CF4(Entity *entity)
break;
case ACTION_STAIRS:
if ((gDungeon->dungeonLocation.id == DUNGEON_METEOR_CAVE) && (!gDungeon->deoxysDefeat)) {
SendMessage(entity,*gUnknown_80FA5B4); // It's impossible to go down the stairs now!
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80FA5B4); // It's impossible to go down the stairs now!
}
else
{
@ -285,7 +284,7 @@ bool8 sub_8072CF4(Entity *entity)
break;
}
SetMessageArgument(gAvailablePokemonNames,entity,0);
SendMessage(entity,*gUnknown_80FE6D4);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80FE6D4);
break;
case ACTION_TALK_FIELD:
HandleTalkFieldAction(entity);
@ -313,7 +312,7 @@ bool8 sub_8072CF4(Entity *entity)
break;
case ACTION_SECOND_THOUGHTS:
SetMessageArgument(gAvailablePokemonNames,entity,0);
SendMessage(entity,*gUnknown_80FE478);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80FE478);
break;
default:
info->action.action = ACTION_PASS_TURN;
@ -341,7 +340,7 @@ bool8 sub_8072CF4(Entity *entity)
}
}
if (bVar4) {
SendMessage(entity,*gUnknown_80FD2CC);
TryDisplayDungeonLoggableMessage(entity,*gUnknown_80FD2CC);
}
}
sub_807360C();

View File

@ -20,8 +20,6 @@ extern u8 *gUnknown_8105360[];
extern u8 *gUnknown_81053A8[];
extern u8 *gUnknown_8105434[];
extern s32 sub_8052B8C(u32, u8 *, u32);
extern void PrintFieldMessage(u32, u8 *, u32);
extern void sub_80416E0(Position32 *r0, u32, bool8);
extern void sub_80421C0(Entity *, u32);
extern void sub_80855E4(void *);
@ -75,7 +73,7 @@ void sub_8046D20(void)
cVar1 = gDungeon->unk8;
gDungeon->unk8 = sub_8046D70();
if (((gDungeon->unk8 == 1) && (cVar1 == 0)) &&
(sub_8052B8C(0, *gUnknown_80FA408, 1) == 1)) {
(DisplayDungeonYesNoMessage(0, *gUnknown_80FA408, 1) == 1)) {
gDungeon->unk4 = 1;
gDungeon->unk11 = 2;
}
@ -145,18 +143,18 @@ void MusicBoxCreation(void)
entity = GetLeader();
sub_80855E4(sub_80861A8);
gDungeon->unk1356C = 1;
PrintFieldMessage(0,*gUnknown_810531C,1);
DisplayDungeonMessage(0,*gUnknown_810531C,1);
sub_803E708(0x3c,0x41);
PrintFieldMessage(0,*gUnknown_8105360,1);
DisplayDungeonMessage(0,*gUnknown_8105360,1);
sub_80869E4(entity,4,10,0);
sub_80416E0(&entity->pixelPos,0x10c,FALSE);
sub_80421C0(entity,0xd7);
sub_803E708(0x3c,0x41);
SetMessageArgument(gAvailablePokemonNames,entity,0);
PrintFieldMessage(0,*gUnknown_81053A8,1);
DisplayDungeonMessage(0,*gUnknown_81053A8,1);
sub_803E708(10,0x41);
PlaySoundEffect(0xd4);
PrintFieldMessage(0,*gUnknown_8105434,1);
DisplayDungeonMessage(0,*gUnknown_8105434,1);
sub_803E708(10,0x41);
sub_804178C(1);
gDungeon->unk1356C = 0;

1127
src/dungeon_message.c Normal file

File diff suppressed because it is too large Load Diff

3314
src/dungeon_move.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
#include "global.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_message.h"
#include "code_8045A00.h"
#include "constants/ability.h"
#include "constants/dungeon.h"
@ -20,18 +20,17 @@
const s16 gItemMasterMinWildLevel[] = {16};
extern u8 gAvailablePokemonNames[];
extern u32 gUnknown_80FC31C;
extern u32 gUnknown_80FCEFC;
extern u32 gUnknown_80FC2FC;
extern const u8 *gUnknown_80FC31C;
extern const u8 * gUnknown_80FCEFC;
extern const u8 * gUnknown_80FC2FC;
extern bool8 sub_805744C(Entity *, Move *, u32);
extern void sub_80522F4(Entity *r1, Entity *r2, u32);
bool8 HasSafeguardStatus(Entity * pokemon, Entity * target, bool8 displayMessage)
{
if (target->info->protection.protectionStatus == STATUS_SAFEGUARD) {
if (displayMessage) {
SetMessageArgument(gAvailablePokemonNames,target,0);
sub_80522F4(pokemon,target,gUnknown_80FC2FC);
TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC2FC);
}
return TRUE;
}
@ -43,7 +42,7 @@ bool8 sub_8071728(Entity * pokemon, Entity * target, bool8 displayMessage)
if (target->info->protection.protectionStatus == STATUS_MIST) {
if (displayMessage) {
SetMessageArgument(gAvailablePokemonNames, target, 0);
sub_80522F4(pokemon, target, gUnknown_80FC31C);
TryDisplayDungeonLoggableMessage3(pokemon, target, gUnknown_80FC31C);
}
return TRUE;
}
@ -51,7 +50,7 @@ bool8 sub_8071728(Entity * pokemon, Entity * target, bool8 displayMessage)
if (HasAbility(target, ABILITY_CLEAR_BODY) || HasAbility(target, ABILITY_WHITE_SMOKE)) {
if (displayMessage) {
SetMessageArgument(gAvailablePokemonNames, target, 0);
sub_80522F4(pokemon, target, gUnknown_80FCEFC);
TryDisplayDungeonLoggableMessage3(pokemon, target, gUnknown_80FCEFC);
}
return TRUE;
}

View File

@ -139,70 +139,33 @@ bool8 sub_8098100(u8 param_1)
}
else
{
return (gUnknown_203B498->unk3C[param_1 >> 0x5] & (1 << (index & 0x1f))) ? TRUE : FALSE;
return (gUnknown_203B498->unk3C[param_1 >> 0x5] & (1 << (index & 0x1f))) != 0;
}
}
bool8 sub_8098134(s16 pokeID)
{
s32 index;
s32 pokeID_s32;
s32 pokeID_s32_1;
struct ExclusivePokemonData *ptr;
pokeID_s32 = pokeID;
pokeID_s32_1 = pokeID_s32;
ptr = gUnknown_203B498;
if (pokeID < 0) {
index = pokeID_s32 + 0x1f;
}
else
{
index = pokeID_s32;
}
return ((ptr->unk4[(index >> 5)] & (1 << (s16)(pokeID_s32_1 - ((index >> 5) * 0x20)))) != 0) ? TRUE : FALSE;
return ((gUnknown_203B498->unk4[pokeID_s32 / 32] & (1 << (s16)(pokeID_s32_1 - ((pokeID_s32 / 32) * 0x20)))) != 0);
}
void SetTutorialFlag(s32 param_1)
void SetTutorialFlag(s32 index)
{
s32 index;
struct ExclusivePokemonData *ptr;
ptr = gUnknown_203B498;
if (param_1 < 0) {
index = param_1 + 0x1f;
}
else
{
index = param_1;
}
ptr->unk54[(index >> 5)] |= 1 << (param_1 - ((index >> 5) * 0x20));
gUnknown_203B498->unk54[index / 32] |= (1 << (index - ((index / 32) * 32)));
}
bool32 GetTutorialFlag(s32 param_1)
bool32 GetTutorialFlag(s32 index)
{
s32 index;
bool32 flag;
struct ExclusivePokemonData *ptr;
if (param_1 > 0x1e) {
return FALSE;
}
else {
ptr = gUnknown_203B498;
if (param_1 < 0) {
index = param_1 + 0x1f;
if (index > 0x1e) {
return FALSE;
}
else
{
index = param_1;
else {
return (((gUnknown_203B498->unk54[index / 32]) & (1 << (index - ((index / 32) * 32)))) != 0);
}
flag = ptr->unk54[(index >> 5)] & 1 << (param_1 - ((index >> 5) * 0x20));
if (flag != 0) {
flag = TRUE;
}
return flag;
}
}
bool8 IsExclusivePokemonUnlocked(s16 pokeID)

View File

@ -67,18 +67,18 @@ bool8 CreateFelicityBank(s32 mode)
strcpy(gUnknown_202E1C8 - 80, monName);
if (sFelicityBankWork->mode == FEL_MODE_ASLEEP)
sFelicityBankWork->unkA4 = NULL;
sFelicityBankWork->monPortraitPtr = NULL;
else
sFelicityBankWork->unkA4 = &sFelicityBankWork->faceFile;
sFelicityBankWork->monPortraitPtr = &sFelicityBankWork->monPortrait;
faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN);
sFelicityBankWork->faceFile = faceFile;
sFelicityBankWork->faceData = faceFile->data;
sFelicityBankWork->unkA0 = 0;
sFelicityBankWork->unkA1 = 0;
sFelicityBankWork->unkA2 = 0;
sFelicityBankWork->unk9C = 2;
sFelicityBankWork->unk9E = 8;
sFelicityBankWork->monPortrait.faceFile = faceFile;
sFelicityBankWork->monPortrait.faceData = faceFile->data;
sFelicityBankWork->monPortrait.spriteId = 0;
sFelicityBankWork->monPortrait.flip = FALSE;
sFelicityBankWork->monPortrait.unkE = 0;
sFelicityBankWork->monPortrait.pos.x = 2;
sFelicityBankWork->monPortrait.pos.y = 8;
UpdateFelicityBankState(FELICITY_BANK_INIT);
return TRUE;
}
@ -118,7 +118,7 @@ u32 FelicityBankCallback(void)
void DestroyFelicityBank(void)
{
if (sFelicityBankWork != NULL) {
CloseFile(sFelicityBankWork->faceFile);
CloseFile(sFelicityBankWork->monPortrait.faceFile);
MemoryFree(sFelicityBankWork);
sFelicityBankWork = NULL;
}
@ -170,49 +170,49 @@ static void UpdateFelicityBankDialogue(void)
switch (sFelicityBankWork->currState) {
case FELICITY_BANK_INIT:
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WELCOME], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WELCOME], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
break;
case 1:
CreateFelicityBankShopMenu();
sFelicityBankWork->fallbackState = 2;
if (gTeamInventoryRef->teamSavings == 0)
sub_8014248(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY], 0, sFelicityBankWork->menuAction,
sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC);
CreateMenuDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__NO_MONEY], 0, sFelicityBankWork->menuAction,
sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->monPortraitPtr, 0xC);
else {
gFormatData_202DE30 = gTeamInventoryRef->teamSavings;
sub_8014248(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY], 0, sFelicityBankWork->menuAction,
sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->unkA4, 0xC);
CreateMenuDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_MAY_I_SERVE__HAS_MONEY], 0, sFelicityBankWork->menuAction,
sFelicityBankWork->unk14, sFelicityBankWork->unk54, 4, 0, sFelicityBankWork->monPortraitPtr, 0xC);
}
break;
case FELICITY_BANK_INFO:
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_IT_WORKS], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_HOW_IT_WORKS], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
break;
case 4:
sFelicityBankWork->fallbackState = FELICITY_BANK_EXIT;
if (gTeamInventoryRef->teamSavings == 0)
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__NO_MONEY], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
else {
gFormatData_202DE30 = gTeamInventoryRef->teamSavings;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__HAS_MONEY], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_BYE__HAS_MONEY], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
break;
case 5:
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_VERY_WELL], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_VERY_WELL], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
break;
case FELICITY_BANK_STORE:
if (gTeamInventoryRef->teamMoney == 0) {
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__NO_MONEY], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) {
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__BANK_FULL], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__BANK_FULL], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
else {
sFelicityBankWork->fallbackState = FELICITY_BANK_STORE_HOW_MUCH;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__HOW_MUCH], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__HOW_MUCH], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
break;
case FELICITY_BANK_STORE_HOW_MUCH:
@ -233,21 +233,21 @@ static void UpdateFelicityBankDialogue(void)
case FELICITY_BANK_STORE_RECEIPT:
sFelicityBankWork->fallbackState = 1;
gFormatData_202DE30 = sFelicityBankWork->chosenAmount;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__RECEIPT], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_DEPOSIT__RECEIPT], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
break;
case FELICITY_BANK_TAKE:
if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) {
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__WALLET_FULL], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__WALLET_FULL], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
else if (gTeamInventoryRef->teamSavings == 0) {
sFelicityBankWork->fallbackState = 1;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__NO_MONEY], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__NO_MONEY], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
else {
sFelicityBankWork->fallbackState = FELICITY_BANK_TAKE_HOW_MUCH;
gFormatData_202DE30 = gTeamInventoryRef->teamSavings;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__HOW_MUCH], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__HOW_MUCH], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
}
break;
case FELICITY_BANK_TAKE_HOW_MUCH:
@ -271,7 +271,7 @@ static void UpdateFelicityBankDialogue(void)
case FELICITY_BANK_TAKE_DEPOSIT:
sFelicityBankWork->fallbackState = 1;
gFormatData_202DE30 = sFelicityBankWork->chosenAmount;
xxx_info_box_80141B4(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__RECEIPT], 0, sFelicityBankWork->unkA4, 0x10D);
CreateDialogueBoxAndPortrait(gCommonFelicity[sFelicityBankWork->mode][FEL_DLG_WITHDRAW__RECEIPT], 0, sFelicityBankWork->monPortraitPtr, 0x10D);
break;
}
}
@ -424,7 +424,7 @@ static void CreateFelicityMoneySavingsHeader(u32 param_1)
}
void DrawTeamMoneyBox(u32 param_1)
{
{
CallPrepareTextbox_8008C54(param_1);
sub_80073B8(param_1);
PrintStringOnWindow(6, 0, sMoney, param_1, 0);

View File

@ -217,11 +217,11 @@ void sub_8027274(void)
break;
case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_PROMPT:
sub_8027794();
sub_8014248(sSayFarewellPrompt,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
CreateMenuDialogueBoxAndPortrait(sSayFarewellPrompt,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
break;
case FRIEND_AREA_ACTION_MENU_SAY_FAREWELL_CONFIRM:
sub_8027794();
sub_8014248(sSayFarewellConfirm,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
CreateMenuDialogueBoxAndPortrait(sSayFarewellConfirm,0,3,sUnknown_203B2BC->menuItems,0,4,0,0,0x101);
break;
case 0x10:
GetLinkedSequence(sUnknown_203B2BC->moveIndex,sUnknown_203B2BC->moves,sUnknown_203B2BC->moveIDs);
@ -229,11 +229,11 @@ void sub_8027274(void)
break;
case 6:
sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
xxx_info_box_80141B4(sReturnedToToolbox, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sReturnedToToolbox, 0, 0, 0x101);
break;
case 7:
sUnknown_203B2BC->fallbackState = FRIEND_AREA_ACTION_MENU_MAIN_2;
xxx_info_box_80141B4(sSentToStorage, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sSentToStorage, 0, 0, 0x101);
break;
}
}

View File

@ -187,7 +187,7 @@ void sub_8025518(void)
{
case 0:
gUnknown_203B2B4->fallbackState = 1;
xxx_info_box_80141B4(sVisitWhoPrompt,0,0,0x301);
CreateDialogueBoxAndPortrait(sVisitWhoPrompt,0,0,0x301);
break;
case 1:
uVar3 = 4;
@ -230,20 +230,20 @@ void sub_8025518(void)
break;
case FRIEND_LIST_MENU_STATE_ITEM_GIVEN:
gUnknown_203B2B4->fallbackState = 2;
xxx_info_box_80141B4(sItemHandedOver,0,0,0x101);
CreateDialogueBoxAndPortrait(sItemHandedOver,0,0,0x101);
break;
case FRIEND_LIST_MENU_STATE_ITEM_EXCHANGE:
gUnknown_203B2B4->fallbackState = 2;
xxx_info_box_80141B4(sItemExchanged,0,0,0x101);
CreateDialogueBoxAndPortrait(sItemExchanged,0,0,0x101);
break;
case FRIEND_LIST_MENU_STATE_TAKE:
gUnknown_203B2B4->fallbackState = 2;
xxx_info_box_80141B4(sReturnedToToolbox,0,0,0x101);
CreateDialogueBoxAndPortrait(sReturnedToToolbox,0,0,0x101);
break;
case FRIEND_LIST_MENU_STATE_STANDBY:
gUnknown_203B2B4->fallbackState = 1;
PlaySound(0xcf);
xxx_info_box_80141B4(sLeftOnStandby,0,0,0x101);
CreateDialogueBoxAndPortrait(sLeftOnStandby,0,0,0x101);
break;
case FRIEND_LIST_MENU_STATE_MOVES:
unk_CopyMoves4To8(gUnknown_203B2B4->moves,gUnknown_203B2B4->pokeStruct->moves);

View File

@ -719,107 +719,107 @@ void sub_8032828(void)
case 0x0:
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0 && CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0) {
if (gUnknown_203B33C->unk52C != 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
}
else {
if (gUnknown_203B33C->unk52C != 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
}
break;
case 0x1:
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0 && CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0) {
if (gUnknown_203B33C->unk52C != 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2108, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20B8, NULL, 4, 0, NULL, 0x101);
}
else {
if (gUnknown_203B33C->unk52C != 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E20E0, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 0, gUnknown_80E2068, NULL, 4, 0, NULL, 0x101);
}
break;
case 0x3:
if (CountMailType(WONDER_MAIL_TYPE_AOK) != 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2130, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2130, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2190, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 3, gUnknown_80E2190, NULL, 4, 0, NULL, 0x101);
break;
case 0x4:
if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) {
if (CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2268, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2268, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2218, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2218, NULL, 4, 0, NULL, 0x101);
}
else {
if (CountMailType(WONDER_MAIL_TYPE_THANK_YOU) == 0)
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2240, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E2240, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E21B8, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E25F4[0], 0, 17, gUnknown_80E21B8, NULL, 4, 0, NULL, 0x101);
}
break;
case 0xE:
switch(gUnknown_203B33C->unk528) {
case 0x11:
sub_8014248(&gUnknown_80E2610[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2610[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x3:
sub_8014248(&gUnknown_80E2640[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2640[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x4:
sub_8014248(&gUnknown_80E2680[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2680[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x12:
sub_8014248(&gUnknown_80E26B0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E26B0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x13:
sub_8014248(&gUnknown_80E26F0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E26F0[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x14:
sub_8014248(&gUnknown_80E2728[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2728[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
}
break;
case 0x3C:
xxx_info_box_80141B4(&gUnknown_80E276C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E276C[0], 0, 0, 0x101);
break;
case 0x3D:
sub_8014248(&gUnknown_80E27A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E27A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
break;
case 0x43:
xxx_info_box_80141B4(&gUnknown_80E2814[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2814[0], 0, 0, 0x101);
break;
case 0x3E:
xxx_info_box_80141B4(&gUnknown_80E2840[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2840[0], 0, 0, 0x101);
break;
case 0x3F:
xxx_info_box_80141B4(&gUnknown_80E2874[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2874[0], 0, 0, 0x101);
break;
case 0x40:
switch ((u32)gUnknown_203B33C->unk524) {
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(&gUnknown_80E2898[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2898[0], 0, 0, 0x101);
break;
case 0xC:
break;
}
break;
case 0x42:
xxx_info_box_80141B4(&gUnknown_80E28D8[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E28D8[0], 0, 0, 0x101);
break;
case 0x30:
xxx_info_box_80141B4(&gUnknown_80E2904[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2904[0], 0, 0, 0x101);
break;
case 0x31:
xxx_info_box_80141B4(&gUnknown_80E296C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E296C[0], 0, 0, 0x101);
break;
case 0x32:
if (sub_8030894() == 0) {
@ -829,7 +829,7 @@ void sub_8032828(void)
}
break;
case 0x35:
sub_8014248(&gUnknown_80E29A0[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E29A0[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
break;
case 0x37:
switch ((u32)gUnknown_203B33C->unk524) {
@ -838,12 +838,12 @@ void sub_8032828(void)
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(&gUnknown_80E29D0[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E29D0[0], 0, 0, 0x101);
break;
}
break;
case 0x38:
xxx_info_box_80141B4(&gUnknown_80E2A0C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2A0C[0], 0, 0, 0x101);
break;
case 0x3A:
RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC);
@ -852,19 +852,19 @@ void sub_8032828(void)
sub_8031D70(gUnknown_203B33C->unk218, 0);
break;
case 0x3B:
xxx_info_box_80141B4(&gUnknown_80E2A1C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2A1C[0], 0, 0, 0x101);
break;
case 0x39:
xxx_info_box_80141B4(&gUnknown_80E2A5C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2A5C[0], 0, 0, 0x101);
break;
case 0x2D:
xxx_info_box_80141B4(&gUnknown_80E2A80[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2A80[0], 0, 0, 0x101);
break;
case 0x2F:
xxx_info_box_80141B4(&gUnknown_80E2AA8[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2AA8[0], 0, 0, 0x101);
break;
case 0x2A:
xxx_info_box_80141B4(&gUnknown_80E2AE4[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2AE4[0], 0, 0, 0x101);
break;
case 0x2B:
#ifndef NONMATCHING
@ -880,21 +880,21 @@ void sub_8032828(void)
#ifndef NONMATCHING
gUnknown_80E2BE0[0] = gUnknown_80E2BE0[0];
#endif //NONMATCHING
xxx_info_box_80141B4(&gUnknown_80E2B54[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2B54[0], 0, 0, 0x101);
break;
}
break;
case 0x2C:
xxx_info_box_80141B4(&gUnknown_80E2A0C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2A0C[0], 0, 0, 0x101);
break;
case 0x23:
xxx_info_box_80141B4(&gUnknown_80E2B90[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2B90[0], 0, 0, 0x101);
break;
case 0x21:
sub_8014248(&gUnknown_80E2BE0[0], 0, 15, gUnknown_80E23A8, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2BE0[0], 0, 15, gUnknown_80E23A8, NULL, 4, 0, NULL, 0x101);
break;
case 0x25:
xxx_info_box_80141B4(&gUnknown_80E2C48[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2C48[0], 0, 0, 0x101);
break;
case 0x26:
if (sub_8023CE8() != 0)
@ -910,13 +910,13 @@ void sub_8032828(void)
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
break;
case 0x24:
sub_8014248(&gUnknown_80E2C94[0], 0, 16, gUnknown_80E22F0, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2C94[0], 0, 16, gUnknown_80E22F0, NULL, 4, 0, NULL, 0x101);
break;
case 0x29:
sub_8014248(&gUnknown_80E2CD4[0], 0, 6, gUnknown_80E22D0, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2CD4[0], 0, 6, gUnknown_80E22D0, NULL, 4, 0, NULL, 0x101);
break;
case 0x1C:
xxx_info_box_80141B4(&gUnknown_80E2CE8[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2CE8[0], 0, 0, 0x101);
break;
case 0x1D:
if (sub_8030894() == 0) {
@ -926,25 +926,25 @@ void sub_8032828(void)
}
break;
case 0x20:
sub_8014248(&gUnknown_80E2D30[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2D30[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
break;
case 0x22:
xxx_info_box_80141B4(&gUnknown_80E2D60[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2D60[0], 0, 0, 0x101);
break;
case 0x5:
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
break;
case 0xA:
case 0x4C:
sub_8014248(&gUnknown_80E2E20[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2E20[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
break;
case 0xB:
case 0x4D:
xxx_info_box_80141B4(&gUnknown_80E2E54[0], 0, NULL, 0);
CreateDialogueBoxAndPortrait(&gUnknown_80E2E54[0], 0, NULL, 0);
break;
case 0xC:
case 0x4E:
xxx_info_box_80141B4(&gUnknown_80E2EB4[0], 0, NULL, 0);
CreateDialogueBoxAndPortrait(&gUnknown_80E2EB4[0], 0, NULL, 0);
break;
case 0x7:
gUnknown_203B33C->status = 0;
@ -1019,10 +1019,10 @@ void sub_8032828(void)
xxx_call_start_bg_music();
break;
case 0x10:
xxx_info_box_80141B4(&gUnknown_80E2F14[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2F14[0], 0, 0, 0x101);
break;
case 0x11:
xxx_info_box_80141B4(&gUnknown_80E2F44[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2F44[0], 0, 0, 0x101);
break;
case 0x12:
if (sub_8030894() != 0)
@ -1032,10 +1032,10 @@ void sub_8032828(void)
sub_80306A8(WONDER_MAIL_TYPE_SOS, 0, NULL, 6);
break;
case 0x15:
sub_8014248(&gUnknown_80E2F78[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2F78[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
break;
case 0xF:
xxx_info_box_80141B4(&gUnknown_80E2FA0[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2FA0[0], 0, 0, 0x101);
break;
case 0x16:
switch ((u32)gUnknown_203B33C->unk524) {
@ -1044,15 +1044,15 @@ void sub_8032828(void)
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(&gUnknown_80E2FEC[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E2FEC[0], 0, 0, 0x101);
break;
}
break;
case 0x18:
xxx_info_box_80141B4(&gUnknown_80E3030[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3030[0], 0, 0, 0x101);
break;
case 0x19:
xxx_info_box_80141B4(&gUnknown_80E3078[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3078[0], 0, 0, 0x101);
break;
case 0x1A:
RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC);
@ -1061,10 +1061,10 @@ void sub_8032828(void)
sub_80151C0(4, gUnknown_203B33C->passwordBuffer);
break;
case 0x5A:
sub_8014248(&gUnknown_80E30A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E30A4[0], 0, 6, gUnknown_80E2458, NULL, 4, 0, NULL, 0x101);
break;
case 0x5B:
xxx_info_box_80141B4(gUnknown_80E30D0, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E30D0, 0, 0, 0x101);
break;
case 0x5D:
RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk35C);
@ -1117,7 +1117,7 @@ void sub_8032828(void)
xxx_call_start_bg_music();
break;
case 0x72:
xxx_info_box_80141B4(gUnknown_80E311C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E311C, 0, 0, 0x101);
break;
case 0x73:
RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC);
@ -1126,7 +1126,7 @@ void sub_8032828(void)
sub_80151C0(4, gUnknown_203B33C->passwordBuffer);
break;
case 0x66:
xxx_info_box_80141B4(gUnknown_80E314C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E314C, 0, 0, 0x101);
break;
case 0x67:
case 0x2E:
@ -1136,19 +1136,19 @@ void sub_8032828(void)
sub_8031D70(gUnknown_203B33C->unk218, 0);
break;
case 0x68:
xxx_info_box_80141B4(gUnknown_80E317C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E317C, 0, 0, 0x101);
break;
case 0x6F:
xxx_info_box_80141B4(gUnknown_80E319C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E319C, 0, 0, 0x101);
break;
case 0x70: // Yes we need duplicates in order to match :) - Kermalis
xxx_info_box_80141B4(gUnknown_80E317C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E317C, 0, 0, 0x101);
break;
case 0x6C:
xxx_info_box_80141B4(gUnknown_80E31D8, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E31D8, 0, 0, 0x101);
break;
case 0x50:
xxx_info_box_80141B4(&gUnknown_80E31FC[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E31FC[0], 0, 0, 0x101);
break;
case 0x6D:
switch ((u32)gUnknown_203B33C->unk524) {
@ -1157,7 +1157,7 @@ void sub_8032828(void)
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(&gUnknown_80E3220[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3220[0], 0, 0, 0x101);
break;
}
break;
@ -1183,7 +1183,7 @@ void sub_8032828(void)
case 0xD:
case 0x62:
nullsub_23(FALSE);
xxx_info_box_80141B4(&gUnknown_80E2DD0[0], 0, NULL, 0);
CreateDialogueBoxAndPortrait(&gUnknown_80E2DD0[0], 0, NULL, 0);
break;
case 0x64:
switch ((u32)gUnknown_203B33C->unk524) {
@ -1192,47 +1192,47 @@ void sub_8032828(void)
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(gUnknown_80E3248, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E3248, 0, 0, 0x101);
break;
}
break;
case 0x63:
xxx_info_box_80141B4(gUnknown_80E3288, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E3288, 0, 0, 0x101);
break;
case 0x69:
sub_8014248(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
break;
case 0x59:
sub_80922B4(buffer, GetPlayerPokemonStruct()->name, POKEMON_NAME_LENGTH);
sprintfStatic(gUnknown_203B33C->unk424, gUnknown_80E32C4, buffer);
xxx_info_box_80141B4(gUnknown_203B33C->unk424, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_203B33C->unk424, 0, 0, 0x101);
break;
case 0x58:
sub_8014248(&gUnknown_80E331C[0], 0, 6, gUnknown_80E24D8, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E331C[0], 0, 6, gUnknown_80E24D8, NULL, 4, 0, NULL, 0x101);
break;
case 0x75:
xxx_info_box_80141B4(gUnknown_80E317C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E317C, 0, 0, 0x101);
break;
case 0x76:
xxx_info_box_80141B4(gUnknown_80E2A0C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E2A0C, 0, 0, 0x101);
break;
case 0x57:
xxx_info_box_80141B4(&gUnknown_80E3378[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3378[0], 0, 0, 0x101);
break;
case 0x56:
sub_8014248(&gUnknown_80E339C[0], 0, 22, gUnknown_80E24B0, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E339C[0], 0, 22, gUnknown_80E24B0, NULL, 4, 0, NULL, 0x101);
break;
case 0x55:
sub_8014248(&gUnknown_80E33D8[0], 0, 21, gUnknown_80E2470, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E33D8[0], 0, 21, gUnknown_80E2470, NULL, 4, 0, NULL, 0x101);
break;
case 0x53:
xxx_info_box_80141B4(&gUnknown_80E3430[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3430[0], 0, 0, 0x101);
break;
case 0x54:
sub_8014248(&gUnknown_80E34B0[0], 0, 6, gUnknown_80E2440, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E34B0[0], 0, 6, gUnknown_80E2440, NULL, 4, 0, NULL, 0x101);
break;
case 0x46:
xxx_info_box_80141B4(&gUnknown_80E34F0[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E34F0[0], 0, 0, 0x101);
break;
case 0x47:
case 0x5C:
@ -1252,74 +1252,74 @@ void sub_8032828(void)
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
break;
case 0x4A:
sub_8014248(&gUnknown_80E352C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E352C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
break;
case 0x44:
xxx_info_box_80141B4(&gUnknown_80E355C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E355C[0], 0, 0, 0x101);
break;
case 0x45:
xxx_info_box_80141B4(&gUnknown_80E35AC[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E35AC[0], 0, 0, 0x101);
break;
case 0x51:
xxx_info_box_80141B4(&gUnknown_80E35E8[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E35E8[0], 0, 0, 0x101);
break;
case 0x52:
if (gUnknown_203B33C->unk40 == 6)
sub_8014248(&gUnknown_80E360C[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E360C[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
else
sub_8014248(&gUnknown_80E3644[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E3644[0], 0, 11, gUnknown_80E236C, NULL, 4, 0, NULL, 0x101);
break;
case 0x7C:
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E25B4, 0, 4, 0, 0, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E25B4, 0, 4, 0, 0, 0x101);
break;
case 0x7D:
switch (gUnknown_203B33C->unk564) {
case 0x23:
xxx_info_box_80141B4(&gUnknown_80E3690[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3690[0], 0, 0, 0x101);
break;
case 0x24:
xxx_info_box_80141B4(&gUnknown_80E3818[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3818[0], 0, 0, 0x101);
break;
case 0x25:
xxx_info_box_80141B4(&gUnknown_80E3998[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3998[0], 0, 0, 0x101);
break;
case 0x26:
xxx_info_box_80141B4(&gUnknown_80E3B1C[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3B1C[0], 0, 0, 0x101);
break;
}
break;
case 0x7A:
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E2554, 0, 4, 0, 0, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E2554, 0, 4, 0, 0, 0x101);
break;
case 0x7B:
switch (gUnknown_203B33C->unk564) {
case 0x1E:
xxx_info_box_80141B4(&gUnknown_80E3BF8[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3BF8[0], 0, 0, 0x101);
break;
case 0x1F:
xxx_info_box_80141B4(&gUnknown_80E3DE4[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3DE4[0], 0, 0, 0x101);
break;
case 0x21:
xxx_info_box_80141B4(&gUnknown_80E3E98[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E3E98[0], 0, 0, 0x101);
break;
case 0x20:
xxx_info_box_80141B4(&gUnknown_80E4014[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E4014[0], 0, 0, 0x101);
break;
case 0x22:
xxx_info_box_80141B4(&gUnknown_80E4130[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E4130[0], 0, 0, 0x101);
break;
}
break;
case 0x78:
sub_8014248(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E24F8, 0, 4, 0, 0, 0x101);
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E367C[0], 0, gUnknown_203B33C->unk564, gUnknown_80E24F8, 0, 4, 0, 0, 0x101);
break;
case 0x79:
switch (gUnknown_203B33C->unk564) {
case 0x1D:
xxx_info_box_80141B4(&gUnknown_80E41DC[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E41DC[0], 0, 0, 0x101);
break;
case 0x1A:
xxx_info_box_80141B4(&gUnknown_80E4314[0], 0, 0, 0x101);
CreateDialogueBoxAndPortrait(&gUnknown_80E4314[0], 0, 0, 0x101);
break;
}
break;
@ -1341,48 +1341,48 @@ void PrintFriendRescueError(u32 status)
case COMMS_GOOD:
break;
case COMMS_INCORRECT_NUM_SYSTEMS:
xxx_info_box_80141B4(gUnknown_80E44A4, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E44A4, 0, 0, 0x101);
break;
case COMMS_NO_RESPONSE:
xxx_info_box_80141B4(gUnknown_80E4500, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4500, 0, 0, 0x101);
break;
case COMMS_DIFFERENT_MODES:
xxx_info_box_80141B4(gUnknown_80E4550, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4550, 0, 0, 0x101);
break;
case COMMS_NO_ROOM_STORAGE:
xxx_info_box_80141B4(gUnknown_80E45B4, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E45B4, 0, 0, 0x101);
break;
case COMMS_DUPLICATE_MAIL:
xxx_info_box_80141B4(gUnknown_80E460C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E460C, 0, 0, 0x101);
break;
case COMMS_MAIL_SENT_ALREADY:
xxx_info_box_80141B4(gUnknown_80E4650, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4650, 0, 0, 0x101);
break;
case COMMS_NOT_ELIGIBLE_1:
xxx_info_box_80141B4(gUnknown_80E468C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E468C, 0, 0, 0x101);
break;
case COMMS_FRIEND_NOT_ELIGIBLE:
xxx_info_box_80141B4(gUnknown_80E46C8, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E46C8, 0, 0, 0x101);
break;
case COMMS_NOT_ELIGIBLE_2:
xxx_info_box_80141B4(gUnknown_80E4704, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4704, 0, 0, 0x101);
break;
case COMMS_FRIEND_NOT_ELIGIBLE_2:
xxx_info_box_80141B4(gUnknown_80E4744, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4744, 0, 0, 0x101);
break;
case 16:
xxx_info_box_80141B4(gUnknown_80E4788, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4788, 0, 0, 0x101);
break;
case COMMS_NO_ROOM_MAIL:
xxx_info_box_80141B4(gUnknown_80E47D8, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E47D8, 0, 0, 0x101);
break;
case 1:
case 5:
case 14:
xxx_info_box_80141B4(gUnknown_80E4480, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4480, 0, 0, 0x101);
break;
case COMMS_NOT_READY:
xxx_info_box_80141B4(gUnknown_80E482C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E482C, 0, 0, 0x101);
break;
}
}
@ -1675,30 +1675,30 @@ void sub_8033DBC(void)
switch(sub_8039068(mailMode, gUnknown_203B33C->passwordBuffer, &mail))
{
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2290, 0, 4, 0, 0, 0x101);
CreateMenuDialogueBoxAndPortrait(gUnknown_80E48A8, 0, 6, gUnknown_80E2290, 0, 4, 0, 0, 0x101);
SetFriendRescueMenuState(0x1B);
break;
case PASSWORD_ENTRY_NOT_SOS_MAIL:
xxx_info_box_80141B4(gUnknown_80E48E8, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E48E8, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR);
break;
case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL:
xxx_info_box_80141B4(gUnknown_80E460C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E460C, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR);
break;
case PASSWORD_ENTRY_SOS_MAIL_SUCCESS:
sub_8095274(mail.unk10.unk10);
mail.mailType = 2;
sub_80951BC(&mail);
xxx_info_box_80141B4(gUnknown_80E4928, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4928, 0, 0, 0x101);
SetFriendRescueMenuState(0x16);
break;
case PASSWORD_ENTRY_NOT_AOK_MAIL:
xxx_info_box_80141B4(gUnknown_80E4964, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4964, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR);
break;
case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL:
xxx_info_box_80141B4(gUnknown_80E499C, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E499C, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR);
break;
case PASSWORD_ENTRY_AOK_MAIL_SUCCESS:
@ -2316,7 +2316,7 @@ void sub_80348C4(void)
case 0xB:
case 0xD:
case 0xE:
xxx_info_box_80141B4(gUnknown_80E31FC, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E31FC, 0, 0, 0x101);
SetFriendRescueMenuState(0x77);
break;
case 0xC:
@ -2559,15 +2559,15 @@ void sub_8034D74(void)
switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE, gUnknown_203B33C->passwordBuffer, &mail))
{
case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101);
CreateMenuDialogueBoxAndPortrait(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101);
SetFriendRescueMenuState(0x74);
break;
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
xxx_info_box_80141B4(gUnknown_80E49C4, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E49C4, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR_2);
break;
case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL:
xxx_info_box_80141B4(gUnknown_80E4704, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E4704, 0, 0, 0x101);
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_ERROR_2);
break;
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:

View File

@ -45,20 +45,20 @@ bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves)
sGulpinShopWork->unk1C = moves[4].id; // 5th move..?
if (mode == GULPIN_SHOP_MODE_AWAKE)
sGulpinShopWork->unk128 = &sGulpinShopWork->faceFile;
sGulpinShopWork->monPortraitPtr = &sGulpinShopWork->monPortrait;
else
sGulpinShopWork->unk128 = NULL;
sGulpinShopWork->monPortraitPtr = NULL;
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
sGulpinShopWork->faceFile = faceFile;
sGulpinShopWork->faceData = faceFile->data;
sGulpinShopWork->monPortrait.faceFile = faceFile;
sGulpinShopWork->monPortrait.faceData = faceFile->data;
sGulpinShopWork->unk124 = 0;
sGulpinShopWork->unk125 = 0;
sGulpinShopWork->unk126 = 0;
sGulpinShopWork->monPortrait.spriteId = 0;
sGulpinShopWork->monPortrait.flip = FALSE;
sGulpinShopWork->monPortrait.unkE = 0;
sGulpinShopWork->unk120 = 2;
sGulpinShopWork->unk122 = 8;
sGulpinShopWork->monPortrait.pos.x = 2;
sGulpinShopWork->monPortrait.pos.y = 8;
SetGulpinShopState(0);
return TRUE;
}
@ -97,7 +97,7 @@ bool8 GulpinIsNextMoveLinked(void)
void DestroyGulpinShop(void)
{
if (sGulpinShopWork != NULL) {
CloseFile(sGulpinShopWork->faceFile);
CloseFile(sGulpinShopWork->monPortrait.faceFile);
MemoryFree(sGulpinShopWork);
sGulpinShopWork = NULL;
}
@ -160,15 +160,15 @@ static void sub_801EA28(void)
case GULPIN_SHOP_MODE_AWAKE:
case GULPIN_SHOP_MODE_ASLEEP:
if (sGulpinShopWork->isNextMoveLinked)
sub_8014248(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_12], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->monPortraitPtr, 12);
else
sub_8014248(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->unk128, 12);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[sGulpinShopWork->mode][GULPIN_DLG_11], 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, sGulpinShopWork->monPortraitPtr, 12);
break;
case GULPIN_SHOP_MODE_UNK2:
if (sGulpinShopWork->isNextMoveLinked)
sub_8014248(sForgetMoveAndLinkedOnes, 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, NULL, 32);
CreateMenuDialogueBoxAndPortrait(sForgetMoveAndLinkedOnes, 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, NULL, 32);
else
sub_8014248(sForgetMoveOnly, 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, NULL, 32);
CreateMenuDialogueBoxAndPortrait(sForgetMoveOnly, 0, 5, &sGulpinShopWork->unk28[0], &sGulpinShopWork->unk68, 4, 0, NULL, 32);
break;
}
break;
@ -180,15 +180,15 @@ static void sub_801EBC4(void)
s32 which;
s32 i;
which = 0;
MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68));
sGulpinShopWork->unk28[which].text = sForget;
sGulpinShopWork->unk28[which].menuAction = 2;
if (!IsAnyMoveLinked(sGulpinShopWork->unk1E, sGulpinShopWork->moves) || (s32)sGulpinShopWork->unk20 >= 4)
sGulpinShopWork->unk68[0] = 1;
which++;
sGulpinShopWork->unk28[which].text = gCommonInfo[0];
sGulpinShopWork->unk28[which].menuAction = 3;
@ -216,7 +216,7 @@ static void sub_801EC7C(void)
{
s32 which;
which = 0;
MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68));
sGulpinShopWork->unk28[which].text = gCommonYes[0];
sGulpinShopWork->unk28[which].menuAction = 4;
@ -314,4 +314,4 @@ static void sub_801EDC0(void)
break;
}
}
}
}

View File

@ -99,18 +99,18 @@ bool8 sub_801FB50(u32 mode)
PrintPokeNameToBuffer(gUnknown_202E1C8 - 0xF0, GetPlayerPokemonStruct());
if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_ASLEEP)
gUnknown_203B27C->unk17C = NULL;
gUnknown_203B27C->monPortraitPtr = NULL;
else
gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceFile;
gUnknown_203B27C->monPortraitPtr = &gUnknown_203B27C->monPortrait;
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
gUnknown_203B27C->faceFile = faceFile;
gUnknown_203B27C->faceData = faceFile->data;
gUnknown_203B27C->unk178 = 0;
gUnknown_203B27C->unk179 = 0;
gUnknown_203B27C->unk17A = 0;
gUnknown_203B27C->unk174 = 2;
gUnknown_203B27C->unk176 = 8;
gUnknown_203B27C->monPortrait.faceFile = faceFile;
gUnknown_203B27C->monPortrait.faceData = faceFile->data;
gUnknown_203B27C->monPortrait.spriteId = 0;
gUnknown_203B27C->monPortrait.flip = FALSE;
gUnknown_203B27C->monPortrait.unkE = 0;
gUnknown_203B27C->monPortrait.pos.x = 2;
gUnknown_203B27C->monPortrait.pos.y = 8;
sub_801FDA8(0);
return TRUE;
}
@ -184,7 +184,7 @@ u32 sub_801FC40(void)
void sub_801FD7C(void)
{
if (gUnknown_203B27C) {
CloseFile(gUnknown_203B27C->faceFile);
CloseFile(gUnknown_203B27C->monPortrait.faceFile);
MemoryFree(gUnknown_203B27C);
gUnknown_203B27C = NULL;
}
@ -254,63 +254,63 @@ static void sub_801FF28(void)
gUnknown_203B27C->menuAction1 = 2;
CreateGulpinShopMenu();
gUnknown_203B27C->fallbackState = 2;
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_00],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_00],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->monPortraitPtr,0xc);
break;
case 1:
CreateGulpinShopMenu();
gUnknown_203B27C->fallbackState = 2;
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_01],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->unk17C,0xc);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_01],0,gUnknown_203B27C->menuAction1,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,gUnknown_203B27C->monPortraitPtr,0xc);
break;
case 2:
DrawTeamMoneyBox(3);
break;
case 3:
gUnknown_203B27C->fallbackState = 0x1f;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_02],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_02],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 4:
gUnknown_203B27C->fallbackState = 0x1f;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_03],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_03],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 5:
gUnknown_203B27C->fallbackState = 0x1f;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_04],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_04],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 6:
gUnknown_203B27C->fallbackState = 0x1f;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_05],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_05],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 7:
sub_8020900();
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_06],0,0x10,
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_06],0,0x10,
gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->unk17C,0xc);
gUnknown_203B27C->monPortraitPtr,0xc);
break;
case 8:
sub_8020950();
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_21],0,0xd,
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_21],0,0xd,
gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->unk17C,0xc);
gUnknown_203B27C->monPortraitPtr,0xc);
break;
case 9:
gUnknown_203B27C->fallbackState = 1;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_22],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_22],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 10:
gUnknown_203B27C->fallbackState = 1;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_23],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_23],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0xb:
gUnknown_203B27C->fallbackState = 1;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_24],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_24],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0xc:
gUnknown_203B27C->fallbackState = 0xd;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_07],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_07],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0xe:
gUnknown_203B27C->fallbackState = 0xf;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_08],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_08],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0xf:
sub_8023868(2,0,0,10);
@ -330,7 +330,7 @@ static void sub_801FF28(void)
break;
case 0x14:
gUnknown_203B27C->fallbackState = 0x15;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_09],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_09],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0x15:
sub_801F428(gUnknown_203B27C->speciesNum,0);
@ -354,17 +354,17 @@ static void sub_801FF28(void)
sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves);
gUnknown_203B27C->fallbackState = 0x10;
sub_8092C84(gAvailablePokemonNames,gUnknown_203B27C->unk1E);
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_10],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_10],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0x1a:
sub_8094060(gUnknown_203B27C->moves,gUnknown_203B27C->pokeStruct->moves);
gUnknown_203B27C->fallbackState = 0x10;
if (gUnknown_203B27C->isNextMoveLinked) {
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_14],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_14],0,gUnknown_203B27C->monPortraitPtr,0x10d);
}
else
{
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_13],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_13],0,gUnknown_203B27C->monPortraitPtr,0x10d);
}
break;
case 0x1d:
@ -377,11 +377,11 @@ static void sub_801FF28(void)
break;
case 0x1b:
gUnknown_203B27C->fallbackState = 0x10;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_15],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_15],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0x1c:
gUnknown_203B27C->fallbackState = 0x10;
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_16],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_16],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0x1e:
@ -403,24 +403,24 @@ static void sub_801FF28(void)
sub_80208B0();
sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20);
if (gUnknown_203B27C->isNextMoveLinked) {
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->unk17C,0xc);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_18],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->monPortraitPtr,0xc);
}
else {
sub_8014248(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->unk17C,0xc);
CreateMenuDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_17],0,0x11,gUnknown_203B27C->unk7C,gUnknown_203B27C->unkBC,4,0,
gUnknown_203B27C->monPortraitPtr,0xc);
}
break;
case 0x23:
gUnknown_203B27C->fallbackState = 0x1f;
sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20);
if (gUnknown_203B27C->isNextMoveLinked)
if (gUnknown_203B27C->isNextMoveLinked)
{
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_20],0,gUnknown_203B27C->monPortraitPtr,0x10d);
}
else
{
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_19],0,gUnknown_203B27C->unk17C,0x10d);
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_19],0,gUnknown_203B27C->monPortraitPtr,0x10d);
}
break;
}
@ -546,15 +546,15 @@ static void CreateGulpinLinkMenu(void)
}
gUnknown_203B27C->unk7C[loopMax].menuAction = 7;
}
loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinLink;
gUnknown_203B27C->unk7C[loopMax].menuAction = LINK_ACTION;
loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinDelink;
gUnknown_203B27C->unk7C[loopMax].menuAction = DE_LINK_ACTION;
loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinForget;
gUnknown_203B27C->unk7C[loopMax].menuAction = FORGET_ACTION;
@ -978,12 +978,12 @@ static void sub_8020EB4(void)
if(gTeamInventoryRef->teamMoney < 150)
{
PlayMenuSoundEffect(2);
sub_801FDA8(0x3);
sub_801FDA8(0x3);
}
else if(!sub_8093318(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves))
{
PlayMenuSoundEffect(2);
sub_801FDA8(0x4);
sub_801FDA8(0x4);
}
else
{
@ -1004,7 +1004,7 @@ static void sub_8020EB4(void)
if(!sub_809333C(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves))
{
PlayMenuSoundEffect(2);
sub_801FDA8(0x5);
sub_801FDA8(0x5);
}
else
{

View File

@ -63,18 +63,18 @@ bool8 CreateKangaskhanStorage(u32 mode)
strcpy(gUnknown_202E1C8 - 0x50, monName);
if (gKangaskhanStorageWork->mode == KANG_MODE_ASLEEP)
gKangaskhanStorageWork->unkE8 = NULL;
gKangaskhanStorageWork->monPortraitPtr = NULL;
else
gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile;
gKangaskhanStorageWork->monPortraitPtr = &gKangaskhanStorageWork->monPortrait;
faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN);
gKangaskhanStorageWork->faceFile = faceFile;
gKangaskhanStorageWork->faceData = faceFile->data;
gKangaskhanStorageWork->unkE4 = FALSE;
gKangaskhanStorageWork->unkE5 = 0;
gKangaskhanStorageWork->unkE6 = 0;
gKangaskhanStorageWork->unkE0 = 2;
gKangaskhanStorageWork->unkE2 = 8;
gKangaskhanStorageWork->monPortrait.faceFile = faceFile;
gKangaskhanStorageWork->monPortrait.faceData = faceFile->data;
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
gKangaskhanStorageWork->monPortrait.flip = FALSE;
gKangaskhanStorageWork->monPortrait.unkE = 0;
gKangaskhanStorageWork->monPortrait.pos.x = 2;
gKangaskhanStorageWork->monPortrait.pos.y = 8;
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT);
return TRUE;
}
@ -133,7 +133,7 @@ u32 KangaskhanStorageCallback(void)
void DeleteKangaskhanStorage(void)
{
if (gKangaskhanStorageWork != NULL) {
CloseFile(gKangaskhanStorageWork->faceFile);
CloseFile(gKangaskhanStorageWork->monPortrait.faceFile);
MemoryFree(gKangaskhanStorageWork);
gKangaskhanStorageWork = NULL;
}
@ -189,66 +189,66 @@ static void sub_8016FF8(void)
switch (gKangaskhanStorageWork->currState) {
case KANGASKHAN_STORAGE_INIT:
BuildKangaskhanMainMenu();
gKangaskhanStorageWork->unkE4 = TRUE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = TRUE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case KANGASKHAN_STORAGE_MAIN_MENU:
BuildKangaskhanMainMenu();
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case 2:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_HOW_IT_WORKS], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_HOW_IT_WORKS], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case 3:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT;
gKangaskhanStorageWork->unkE4 = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_BYE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = TRUE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_BYE], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case KANGASKHAN_STORAGE_NO_INV_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_HAVE_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_HAVE_NOTHING], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case KANGASKHAN_STORAGE_TOO_MANY_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_ARE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_ARE_FULL], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case 7:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_HAS_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_HAS_NOTHING], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case 8:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_FULL], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case KANGASKHAN_STORAGE_IS_MONEY_USED_TM:
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__INVALID_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__INVALID_ITEM], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 10:
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 11:
gKangaskhanStorageWork->fallbackState = 13;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_WHAT], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 12:
gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_MORE], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 13:
sub_801A5D8(3, 3, NULL, 10);
@ -264,15 +264,15 @@ static void sub_8016FF8(void)
case 17:
sub_80177F8();
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case 18:
sub_80177F8();
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case 19:
if (GetNumberOfFilledInventorySlots() == 0) {
@ -282,18 +282,18 @@ static void sub_8016FF8(void)
else
gKangaskhanStorageWork->fallbackState = 12;
gKangaskhanStorageWork->unkE4 = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = TRUE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_CONFIRMATION], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
case 20:
gKangaskhanStorageWork->fallbackState = 22;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_WHAT], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 21:
gKangaskhanStorageWork->fallbackState = 23;
gKangaskhanStorageWork->unkE4 = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_MORE], 0, gKangaskhanStorageWork->monPortraitPtr, 0x30D);
break;
case 22:
sub_801C8C4(1, 3, 0, 10);
@ -333,15 +333,15 @@ static void sub_8016FF8(void)
case 27:
sub_80177F8();
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case 28:
sub_80177F8();
gKangaskhanStorageWork->unkE4 = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12);
gKangaskhanStorageWork->monPortrait.spriteId = FALSE;
CreateMenuDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->monPortraitPtr, 12);
break;
case 29:
if (sub_801CF14(1) || GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) {
@ -351,8 +351,8 @@ static void sub_8016FF8(void)
else
gKangaskhanStorageWork->fallbackState = 21;
gKangaskhanStorageWork->unkE4 = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
gKangaskhanStorageWork->monPortrait.spriteId = TRUE;
CreateDialogueBoxAndPortrait(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_CONFIRMATION], 0, gKangaskhanStorageWork->monPortraitPtr, 0x10D);
break;
}
}

View File

@ -48,7 +48,7 @@ static void sub_8019D30(void);
static void sub_8019D4C(void);
static void ProceedToKecleonBros1FallbackState(void);
static void KecleonCalcSellPriceForAllItems(void);
static void sub_8019E04(bool32);
static void SetKecleonPortraitSpriteId(bool32 angrySprite);
enum MenuActions {
CANCEL_ACTION = 1,
@ -74,7 +74,7 @@ bool8 CreateKecleonBros(u32 mode)
switch (mode) {
case KECLEON_BROS_MODE_ITEMS_AWAKE:
sKecleonBrosWork1->isKecleonItemShop = TRUE;
sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile;
sKecleonBrosWork1->monPortraitPtr = &sKecleonBrosWork1->monPortrait;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON);
@ -82,7 +82,7 @@ bool8 CreateKecleonBros(u32 mode)
break;
case KECLEON_BROS_MODE_ITEMS_ASLEEP:
sKecleonBrosWork1->isKecleonItemShop = TRUE;
sKecleonBrosWork1->unkE4 = NULL;
sKecleonBrosWork1->monPortraitPtr = NULL;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON);
@ -90,7 +90,7 @@ bool8 CreateKecleonBros(u32 mode)
break;
case KECLEON_BROS_MODE_WARES_AWAKE:
sKecleonBrosWork1->isKecleonItemShop = FALSE;
sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile;
sKecleonBrosWork1->monPortraitPtr = &sKecleonBrosWork1->monPortrait;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON);
@ -98,7 +98,7 @@ bool8 CreateKecleonBros(u32 mode)
break;
case KECLEON_BROS_MODE_WARES_ASLEEP:
sKecleonBrosWork1->isKecleonItemShop = FALSE;
sKecleonBrosWork1->unkE4 = NULL;
sKecleonBrosWork1->monPortraitPtr = NULL;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON);
@ -109,13 +109,13 @@ bool8 CreateKecleonBros(u32 mode)
}
faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON);
sKecleonBrosWork1->faceFile = faceFile;
sKecleonBrosWork1->faceData = faceFile->data;
sKecleonBrosWork1->unkE0 = 0;
sKecleonBrosWork1->unkE1 = 0;
sKecleonBrosWork1->unkE2 = 0;
sKecleonBrosWork1->unkDC = 2;
sKecleonBrosWork1->unkDE = 8;
sKecleonBrosWork1->monPortrait.faceFile = faceFile;
sKecleonBrosWork1->monPortrait.faceData = faceFile->data;
sKecleonBrosWork1->monPortrait.spriteId = 0;
sKecleonBrosWork1->monPortrait.flip = FALSE;
sKecleonBrosWork1->monPortrait.unkE = 0;
sKecleonBrosWork1->monPortrait.pos.x = 2;
sKecleonBrosWork1->monPortrait.pos.y = 8;
SetKecleonBrosState(KECLEON_STORE_INIT);
return TRUE;
}
@ -168,7 +168,7 @@ u32 KecleonBrosCallback(void)
void DeleteKecleonBros(void)
{
if (sKecleonBrosWork1 != NULL) {
CloseFile(sKecleonBrosWork1->faceFile);
CloseFile(sKecleonBrosWork1->monPortrait.faceFile);
MemoryFree(sKecleonBrosWork1);
sKecleonBrosWork1 = NULL;
}
@ -227,87 +227,87 @@ static void UpdateKecleonStoreDialogue(void)
case KECLEON_STORE_INIT:
KecleonCalcSellPriceForAllItems();
BuildKecleonBrosMainMenu();
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_00], 0, sKecleonBrosWork1->menuAction1,
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12);
SetKecleonPortraitSpriteId(FALSE);
CreateMenuDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_00], 0, sKecleonBrosWork1->menuAction1,
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->monPortraitPtr, 12);
break;
case KECLEON_STORE_MAIN_MENU:
KecleonCalcSellPriceForAllItems();
BuildKecleonBrosMainMenu();
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_01], 0, sKecleonBrosWork1->menuAction1,
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12);
SetKecleonPortraitSpriteId(FALSE);
CreateMenuDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_01], 0, sKecleonBrosWork1->menuAction1,
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->monPortraitPtr, 12);
break;
case KECLEON_STORE_INFO:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 3:
case 3:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_EXIT;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->unkE4, 0x30D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->monPortraitPtr, 0x30D);
break;
case KECLEON_STORE_NO_STORE_ITEMS:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_12], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_12], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_NO_MONEY:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_BUY_ITEM_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_13], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_13], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_TOO_MUCH_MONEY:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_14], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_14], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_NO_ITEMS_TO_SELL:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_15], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_15], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_NO_ITEMS:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_16], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_16], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_TOO_MANY_ITEMS:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_17], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_17], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 11:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_18], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_18], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_NOT_ENOUGH_MONEY:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_BUY_ITEM_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_19], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_19], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_CANT_SELL_ITEM:
sub_8090E14(gFormatItems, &sKecleonBrosWork1->soldItem, NULL);
sKecleonBrosWork1->fallbackState = KECLEON_STORE_SELL_ITEM_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_20], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_20], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_SELL_ITEM_TOO_MUCH_MONEY:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_SELL_ITEM_MENU;
sub_8019E04(TRUE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_21], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(TRUE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_21], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 15:
sKecleonBrosWork1->fallbackState = 18;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_03], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_03], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_BUY_ITEM_MENU:
sKecleonBrosWork1->fallbackState = 19;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_04], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_04], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 18:
if (sKecleonBrosWork1->isKecleonItemShop)
@ -342,8 +342,8 @@ static void UpdateKecleonStoreDialogue(void)
BuildKecleonBrosYesNoMenu();
sub_8090E14(gFormatItems, &sKecleonBrosWork1->soldItem, 0);
gFormatData_202DE30 = sKecleonBrosWork1->itemSellPrice;
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_05], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12);
SetKecleonPortraitSpriteId(FALSE);
CreateMenuDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_05], 0, 5,sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->monPortraitPtr, 12);
break;
case KECLEON_STORE_BUY_ITEM_RECEIPT:
if (CountKecleonItems() == 0) {
@ -364,18 +364,18 @@ static void UpdateKecleonStoreDialogue(void)
else
sKecleonBrosWork1->fallbackState = KECLEON_STORE_BUY_ITEM_MENU;
}
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_06], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_06], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 23:
sKecleonBrosWork1->fallbackState = 26;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_07], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_07], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_SELL_ITEM_MENU:
sKecleonBrosWork1->fallbackState = 27;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_08], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_08], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case 26:
sub_801A5D8(4, 3, NULL, 10);
@ -395,8 +395,8 @@ static void UpdateKecleonStoreDialogue(void)
BuildKecleonBrosYesNoMenu();
sub_8090E14(gFormatItems, &sKecleonBrosWork1->soldItem, NULL);
gFormatData_202DE30 = sKecleonBrosWork1->itemSellPrice;
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_09], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12);
SetKecleonPortraitSpriteId(FALSE);
CreateMenuDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_09], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->monPortraitPtr, 12);
break;
case KECLEON_STORE_BUY_ITEM_INFO:
case KECLEON_STORE_SELL_ITEM_INFO:
@ -410,19 +410,19 @@ static void UpdateKecleonStoreDialogue(void)
else
sKecleonBrosWork1->fallbackState = KECLEON_STORE_SELL_ITEM_MENU;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
case KECLEON_STORE_SELL_ALL_ITEMS:
BuildKecleonBrosYesNoMenu();
gFormatData_202DE30 = sKecleonBrosWork1->inventoryItemSellPrice;
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12);
SetKecleonPortraitSpriteId(FALSE);
CreateMenuDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->monPortraitPtr, 12);
break;
case KECLEON_STORE_SELL_ALL_ITEMS_RECEIPT:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->unkE4, 0x10D);
SetKecleonPortraitSpriteId(FALSE);
CreateDialogueBoxAndPortrait(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->monPortraitPtr, 0x10D);
break;
}
}
@ -895,18 +895,18 @@ static void KecleonCalcSellPriceForAllItems(void)
}
}
static void sub_8019E04(bool32 a0)
static void SetKecleonPortraitSpriteId(bool32 angrySprite)
{
if (sKecleonBrosWork1->isKecleonItemShop) {
if (a0 == TRUE)
sKecleonBrosWork1->unkE0 = 1;
if (angrySprite == TRUE)
sKecleonBrosWork1->monPortrait.spriteId = 1;
else
sKecleonBrosWork1->unkE0 = 0;
sKecleonBrosWork1->monPortrait.spriteId = 0;
}
else {
if (a0 == TRUE)
sKecleonBrosWork1->unkE0 = 7;
if (angrySprite == TRUE)
sKecleonBrosWork1->monPortrait.spriteId = 7;
else
sKecleonBrosWork1->unkE0 = 6;
sKecleonBrosWork1->monPortrait.spriteId = 6;
}
}

View File

@ -225,24 +225,24 @@ static void UpdateLuminousCaveDialogue(void)
sLuminousCaveWork->menuAction1 = LUMINOUS_CAVE_CANCEL;
sub_8024CFC();
sub_8014248(sSeekEvolutionIntro,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
CreateMenuDialogueBoxAndPortrait(sSeekEvolutionIntro,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case LUMINOUS_CAVE_ASK_EVOLVE:
sub_8024CFC();
sub_8014248(sSeekEvolutionPrompt,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
CreateMenuDialogueBoxAndPortrait(sSeekEvolutionPrompt,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case LUMINOUS_CAVE_EVOLVE_INFO:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE;
xxx_info_box_80141B4(sEvolveInfo,0,0,0x105);
CreateDialogueBoxAndPortrait(sEvolveInfo,0,0,0x105);
break;
case LUMINOUS_CAVE_SHALL_RETURN:
sLuminousCaveWork->fallbackState = 4;
xxx_call_fade_in_new_bgm(MUS_FILE_SELECT,0x3c);
xxx_info_box_80141B4(sYeShallReturn,0,0,0x305);
CreateDialogueBoxAndPortrait(sYeShallReturn,0,0,0x305);
break;
case LUMINOUS_CAVE_GIVE_ITEM_1:
sub_8024D48();
sub_8014248(sGiveItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
CreateMenuDialogueBoxAndPortrait(sGiveItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case 6:
sub_801A5D8(2,3,NULL,10);
@ -252,7 +252,7 @@ static void UpdateLuminousCaveDialogue(void)
break;
case LUMINOUS_CAVE_GIVE_ITEM_2:
sub_8024DBC();
sub_8014248(sGiveAnotherItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
CreateMenuDialogueBoxAndPortrait(sGiveAnotherItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case 11:
sub_801A5D8(2,3,NULL,10);
@ -277,11 +277,11 @@ static void UpdateLuminousCaveDialogue(void)
break;
case LUMINOUS_CAVE_LACK_WHAT_NEEDED:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1;
xxx_info_box_80141B4(sLackWhatIsNeeded,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackWhatIsNeeded,0,0,0x105);
break;
case LUMINOUS_CAVE_ONLY_ONE_ITEM:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2;
xxx_info_box_80141B4(sOnlyOneItem,0,0,0x105);
CreateDialogueBoxAndPortrait(sOnlyOneItem,0,0,0x105);
break;
case LUMINOUS_CAVE_LET_US_BEGIN:
sub_8025254();
@ -303,13 +303,13 @@ static void UpdateLuminousCaveDialogue(void)
else
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET;
xxx_call_fade_out_bgm(0x3c);
xxx_info_box_80141B4(sLetUsBegin,0,0,0x105);
CreateDialogueBoxAndPortrait(sLetUsBegin,0,0,0x105);
break;
case LUMINOUS_CAVE_CHANGED_APPEARANCE:
PrintColoredPokeNameToBuffer(gPlayerName,sLuminousCaveWork->pokeStruct, COLOR_CYAN);
PlaySound(0x1ff);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_EVOLVED;
xxx_info_box_80141B4(sFmtChangedAppearance,0,0,0x105);
CreateDialogueBoxAndPortrait(sFmtChangedAppearance,0,0,0x105);
break;
case LUMINOUS_CAVE_EVOLVED:
monName = GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum);
@ -334,44 +334,44 @@ static void UpdateLuminousCaveDialogue(void)
BoundedCopyStringtoBuffer(sLuminousCaveWork->pokeStruct->name,GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
}
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sFmtEvolved,0,0,0x105);
CreateDialogueBoxAndPortrait(sFmtEvolved,0,0,0x105);
break;
case LUMINOUS_CAVE_COME_ALONE:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sComeAlone,0,0,0x105);
CreateDialogueBoxAndPortrait(sComeAlone,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_LEVEL:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sLackLevel,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackLevel,0,0,0x105);
break;
case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sNoMoreEvolutions,0,0,0x105);
CreateDialogueBoxAndPortrait(sNoMoreEvolutions,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_FRIEND_AREA:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sLackFriendArea,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackFriendArea,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_ROOM:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sLackFriendAreaRoom,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackFriendAreaRoom,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_IQ:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sLackIQ,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackIQ,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_ITEM:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sLackItem,0,0,0x105);
CreateDialogueBoxAndPortrait(sLackItem,0,0,0x105);
break;
case LUMINOUS_CAVE_CANT_EVOLVE_YET:
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
xxx_info_box_80141B4(sCannotEvolveYet,0,0,0x105);
CreateDialogueBoxAndPortrait(sCannotEvolveYet,0,0,0x105);
break;
case LUMINOUS_CAVE_PROMPT_NAME:
xxx_call_fade_in_new_bgm(8,0x3c);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_FINISH_NAME;
xxx_info_box_80141B4(sMustGiveName,0,0,0x105);
CreateDialogueBoxAndPortrait(sMustGiveName,0,0,0x105);
break;
case LUMINOUS_CAVE_FINISH_NAME:
if (sLuminousCaveWork->pokeRenamed) {

View File

@ -90,9 +90,9 @@ bool8 MakuhitaDojo_New(u32 mode)
}
if (sMakuhitaDojoWork1->dlgMode == MAKUHITA_DOJO_MODE_ASLEEP)
sMakuhitaDojoWork1->unk68 = NULL;
sMakuhitaDojoWork1->monPortraitPtr = NULL;
else
sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceFile;
sMakuhitaDojoWork1->monPortraitPtr = &sMakuhitaDojoWork1->monPortrait;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_MAKUHITA);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_MAKUHITA);
@ -100,13 +100,13 @@ bool8 MakuhitaDojo_New(u32 mode)
strcpy(gUnknown_202E1C8 - 0x50, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_MAKUHITA);
sMakuhitaDojoWork1->faceFile = faceFile;
sMakuhitaDojoWork1->faceData = faceFile->data;
sMakuhitaDojoWork1->unk64 = 0;
sMakuhitaDojoWork1->unk65 = 0;
sMakuhitaDojoWork1->unk66 = 0;
sMakuhitaDojoWork1->unk60 = 2;
sMakuhitaDojoWork1->unk62 = 8;
sMakuhitaDojoWork1->monPortrait.faceFile = faceFile;
sMakuhitaDojoWork1->monPortrait.faceData = faceFile->data;
sMakuhitaDojoWork1->monPortrait.spriteId = 0;
sMakuhitaDojoWork1->monPortrait.flip = FALSE;
sMakuhitaDojoWork1->monPortrait.unkE = 0;
sMakuhitaDojoWork1->monPortrait.pos.x = 2;
sMakuhitaDojoWork1->monPortrait.pos.y = 8;
MakuhitaDojo_SetState(initialState);
return TRUE;
}
@ -141,7 +141,7 @@ s16 sub_802FED0(void)
void MakuhitaDojo_Delete(void)
{
if (sMakuhitaDojoWork1 != NULL) {
CloseFile(sMakuhitaDojoWork1->faceFile);
CloseFile(sMakuhitaDojoWork1->monPortrait.faceFile);
MemoryFree(sMakuhitaDojoWork1);
sMakuhitaDojoWork1 = NULL;
}
@ -182,18 +182,18 @@ static void MakuhitaDojo_UpdateDialogue(void)
switch (sMakuhitaDojoWork1->state) {
case 0:
MakuhitaDojo_DrawMainMenu();
sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12);
CreateMenuDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_0], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->monPortraitPtr, 12);
break;
case 1:
sub_8014248(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->unk68, 12);
CreateMenuDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_1], 0, sMakuhitaDojoWork1->menuAction, sMakuhitaDojoWork1->unk18, NULL, 4, 0, sMakuhitaDojoWork1->monPortraitPtr, 12);
break;
case 2:
sMakuhitaDojoWork1->fallbackState = 13;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_2], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_2], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 3:
sMakuhitaDojoWork1->fallbackState = 4;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_3], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_3], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 4:
sub_80302E8(3, NULL, 10);
@ -203,36 +203,36 @@ static void MakuhitaDojo_UpdateDialogue(void)
dLoc.id = sub_80A2740(sMakuhitaDojoWork1->unk10);
dLoc.floor = 1;
PrintYellowDungeonNametoBuffer(gAvailablePokemonNames, &dLoc);
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_4], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_4], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 7:
sMakuhitaDojoWork1->fallbackState = 13;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_6], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_6], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 6:
sMakuhitaDojoWork1->fallbackState = 13;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_5], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_5], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 8:
sMakuhitaDojoWork1->fallbackState = 9;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_7], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_7], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 9:
PrintColoredPokeNameToBuffer(gPlayerName, GetPlayerPokemonStruct(), COLOR_YELLOW);
sMakuhitaDojoWork1->fallbackState = 11;
PlaySound(203);
xxx_info_box_80141B4(sReceivedBonslyDoll, 0, 0, 0x101);
CreateDialogueBoxAndPortrait(sReceivedBonslyDoll, 0, 0, 0x101);
break;
case 10:
sMakuhitaDojoWork1->fallbackState = 13;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_8], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_8], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 11:
sub_801B60C(1, ITEM_GINSENG, 1);
break;
case 12:
sMakuhitaDojoWork1->fallbackState = 1;
xxx_info_box_80141B4(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_9], 0, sMakuhitaDojoWork1->unk68, 0x10D);
CreateDialogueBoxAndPortrait(gCommonMakuhita[sMakuhitaDojoWork1->dlgMode][MAKUHITA_DLG_9], 0, sMakuhitaDojoWork1->monPortraitPtr, 0x10D);
break;
case 13:
return;
@ -291,7 +291,7 @@ static void sub_8030258(void)
sMakuhitaDojoWork1->unk10 = sub_8030418();
sub_8030480();
MakuhitaDojo_SetState(5);
break;
break;
case 2:
sub_8030480();
sMakuhitaDojoWork1->unk10 = -1;

View File

@ -77,7 +77,7 @@ u32 sub_8012A64(MenuInputStructSub *r0, s32 r1)
return sub_8012AE8();
if (r1 != -1)
nullsub_34(r0);
nullsub_34(r0, r1);
if (r0->a_button != 0) {
r0->a_button = 0;
@ -712,7 +712,7 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
a0->unk24++;
}
void nullsub_34(MenuInputStructSub *a0)
void nullsub_34(MenuInputStructSub *a0, s32 a1)
{
}

View File

@ -23,13 +23,7 @@ struct unkStruct_203B310
/* 0x9 */ u8 currTeamRank; // team rank
/* 0xC */ s32 itemRewardIndex;
unkStruct_802F204 *unk10;
/* 0x14 */ OpenedFile *faceFile;
/* 0x18 */ u8 *faceData;
s16 unk1C;
s16 unk1E;
u8 unk20;
u8 unk21;
u8 unk22;
/* 0x14 */ struct MonPortraitMsg monPortrait;
UnkTextStruct2 unk24[4];
};
@ -138,18 +132,18 @@ u32 sub_802F204(unkStruct_802F204 *r0, bool8 displayClientSprite)
strcpy(gUnknown_202E5D8, preload->unk10->clientName);
PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct());
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies);
gUnknown_203B310->faceData = NULL;
gUnknown_203B310->monPortrait.faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies);
gUnknown_203B310->monPortrait.faceData = NULL;
gUnknown_203B310->unk20 = 0;
gUnknown_203B310->unk21 = 0;
gUnknown_203B310->unk22 = 0;
gUnknown_203B310->unk1C = 2;
gUnknown_203B310->unk1E = 8;
gUnknown_203B310->monPortrait.spriteId = 0;
gUnknown_203B310->monPortrait.flip = FALSE;
gUnknown_203B310->monPortrait.unkE = 0;
gUnknown_203B310->monPortrait.pos.x = 2;
gUnknown_203B310->monPortrait.pos.y = 8;
if(gUnknown_203B310->faceFile != NULL)
if(gUnknown_203B310->monPortrait.faceFile != NULL)
{
gUnknown_203B310->faceData = gUnknown_203B310->faceFile->data;
gUnknown_203B310->monPortrait.faceData = gUnknown_203B310->monPortrait.faceFile->data;
}
SetRewardSceneState(PREP_MONEY_REWARD);
@ -175,8 +169,8 @@ void sub_802F2C0(void)
{
if(gUnknown_203B310 != NULL)
{
if(gUnknown_203B310->faceFile != 0)
CloseFile(gUnknown_203B310->faceFile);
if(gUnknown_203B310->monPortrait.faceFile != 0)
CloseFile(gUnknown_203B310->monPortrait.faceFile);
MemoryFree(gUnknown_203B310);
gUnknown_203B310 = NULL;
}
@ -214,7 +208,7 @@ void HandleMissionReward(void)
u8 itemID;
struct unkStruct_8090F58 local_20;
Item item;
switch(gUnknown_203B310->state) {
case PREP_MONEY_REWARD:
moneyReward = gUnknown_203B310->unk10->moneyReward;
@ -224,7 +218,7 @@ void HandleMissionReward(void)
else {
gFormatData_202DE30 = moneyReward;
if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E0434,0,&gUnknown_203B310->faceFile,0x10d);
CreateDialogueBoxAndPortrait(gUnknown_80E0434,0,&gUnknown_203B310->monPortrait,0x10d);
gUnknown_203B310->nextState = MONEY_REWARD;
}
else {
@ -236,10 +230,10 @@ void HandleMissionReward(void)
PlaySound(0xcb);
AddToTeamMoney(gUnknown_203B310->unk10->moneyReward);
if (GetUnitSum_808D544(0) < 2) {
xxx_info_box_80141B4(gUnknown_80E045C,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E045C,0,0,0x101);
}
else {
xxx_info_box_80141B4(gUnknown_80E0484,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E0484,0,0,0x101);
}
gUnknown_203B310->nextState = PREP_FRIEND_AREA_REWARD;
break;
@ -250,7 +244,7 @@ void HandleMissionReward(void)
else {
WriteFriendAreaName(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,FALSE);
if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E04B4,0,&gUnknown_203B310->faceFile,0x10d);
CreateDialogueBoxAndPortrait(gUnknown_80E04B4,0,&gUnknown_203B310->monPortrait,0x10d);
gUnknown_203B310->nextState = UNLOCK_FRIEND_AREA;
}
else {
@ -262,27 +256,27 @@ void HandleMissionReward(void)
if (GetFriendAreaStatus(gUnknown_203B310->unk10->friendAreaReward)) {
// We already have the friend area
AddToTeamMoney(1000);
xxx_info_box_80141B4(gUnknown_80E04F4,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E04F4,0,0,0x101);
}
else
{
if (GetUnitSum_808D544(0) < 2) {
UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward);
PlaySound(0xce);
xxx_info_box_80141B4(gUnknown_80E05C0,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E05C0,0,0,0x101);
}
else
{
UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward);
PlaySound(0xce);
xxx_info_box_80141B4(gUnknown_80E05FC,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E05FC,0,0,0x101);
}
}
gUnknown_203B310->nextState = PREP_ITEM_REWARD;
break;
case PREP_ITEM_REWARD:
itemID = gUnknown_203B310->unk10->itemRewards[0];
if (itemID != ITEM_NOTHING)
if (itemID != ITEM_NOTHING)
{
if (gUnknown_203B310->unk10->moneyReward == 0) {
item.id = itemID;
@ -298,7 +292,7 @@ void HandleMissionReward(void)
local_20.unk8 = 1;
sub_8090E14(gUnknown_202DEA8,&item,&local_20);
if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceFile,0x10d);
CreateDialogueBoxAndPortrait(gUnknown_80E0640,0,&gUnknown_203B310->monPortrait,0x10d);
gUnknown_203B310->nextState = GIVE_ITEM_REWARD;
}
else
@ -349,7 +343,7 @@ void HandleMissionReward(void)
gUnknown_203B310->nextState = REWARD_EXIT;
}
gFormatData_202DE30 = gUnknown_203B310->unk10->teamRankPtsReward;
xxx_info_box_80141B4(gUnknown_80E0670,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E0670,0,0,0x101);
}
break;
case NEW_TEAM_RANK:
@ -359,7 +353,7 @@ void HandleMissionReward(void)
strcpy(gUnknown_202E038,rankString);
rankString = GetTeamRankString(GetRescueTeamRank());
strcpy(gUnknown_202E038 + 0x50,rankString);
xxx_info_box_80141B4(gUnknown_80E06A8,0,0,0x101);
CreateDialogueBoxAndPortrait(gUnknown_80E06A8,0,0,0x101);
break;
case REWARD_EXIT:
break;

Some files were not shown because too many files have changed in this diff Show More