wild encounter, fix merge conflicts

This commit is contained in:
DizzyEggg 2017-11-18 21:45:52 +01:00
commit 3de416662b
59 changed files with 4681 additions and 7626 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1390,7 +1390,7 @@ _0809CA04:
b _0809CB28
.pool
_0809CA48:
bl sub_8070BD0
bl DoEggActions_CheckHatch
lsls r0, 24
cmp r0, 0
beq _0809CA64

View File

@ -1988,7 +1988,7 @@ task00_8084310: @ 80B6A24
lsls r0, 24
cmp r0, 0
beq _080B6A8A
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -642,7 +642,7 @@ _080FA0C4:
thumb_func_start sub_80FA0DC
sub_80FA0DC: @ 80FA0DC
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -777,7 +777,7 @@ sub_80FA1D8: @ 80FA1D8
thumb_func_start sub_80FA1E8
sub_80FA1E8: @ 80FA1E8
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -950,7 +950,7 @@ sub_80FA33C: @ 80FA33C
thumb_func_start sub_80FA34C
sub_80FA34C: @ 80FA34C
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -32,7 +32,7 @@ _080D3754:
ldr r0, =gUnknown_0203AB40
adds r1, r0, 0x2
bl PlayerGetDestCoords
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
@ -384,7 +384,7 @@ hm2_ruin_valley: @ 80D3A50
push {lr}
movs r0, 0x1
bl FieldEffectStart
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -420,7 +420,7 @@ sub_80D3A6C: @ 80D3A6C
thumb_func_start sub_80D3A9C
sub_80D3A9C: @ 80D3A9C
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -8,7 +8,7 @@
thumb_func_start hm_prepare_dive_probably
hm_prepare_dive_probably: @ 8161508
push {r4-r6,lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
movs r6, 0x64
@ -20,7 +20,7 @@ hm_prepare_dive_probably: @ 8161508
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
muls r0, r6
@ -59,7 +59,7 @@ sub_8161560: @ 8161560
strb r1, [r0, 0xB]
ldrb r1, [r0, 0x9]
strb r1, [r0, 0xA]
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
movs r1, 0x1

View File

@ -18,7 +18,7 @@ hm_prepare_rocksmash: @ 8145DC4
b _08145DF2
_08145DD8:
ldr r4, =gSpecialVar_Result
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@ -39,7 +39,7 @@ _08145DF2:
thumb_func_start sub_8145E0C
sub_8145E0C: @ 8145E0C
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -23,7 +23,7 @@ hm2_sweet_scent: @ 8159F10
push {lr}
movs r0, 0x33
bl FieldEffectStart
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -38,7 +38,7 @@ hm_teleport_run_dp02scr: @ 817C8FC
bl sub_808469C
movs r0, 0x3F
bl FieldEffectStart
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -21515,7 +21515,7 @@ _08014714:
movs r1, 0x5
movs r2, 0x1
bl sub_8014290
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
ldr r1, =c2_load_new_map
@ -21536,7 +21536,7 @@ _0801474C:
movs r1, 0x5
movs r2, 0x1
bl sub_8014290
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
ldr r1, =c2_load_new_map
@ -23406,7 +23406,7 @@ _080158E0:
ldrh r0, [r4]
cmp r0, 0
beq _080159A0
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r4]
@ -23434,7 +23434,7 @@ _08015900:
b _0801598E
.pool
_0801592C:
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
@ -23468,7 +23468,7 @@ _0801596C:
ldr r1, =gUnknown_02022C2C
movs r0, 0x44
strb r0, [r1]
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0

View File

@ -18,7 +18,7 @@ _080D4372:
adds r1, r0
ldr r0, [r5]
adds r0, r1
bl sub_80D439C
bl ClearMailStruct
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@ -30,8 +30,8 @@ _080D4372:
.pool
thumb_func_end ClearMailData
thumb_func_start sub_80D439C
sub_80D439C: @ 80D439C
thumb_func_start ClearMailStruct
ClearMailStruct: @ 80D439C
push {r4-r6,lr}
adds r3, r0, 0
ldr r0, =0x0000ffff
@ -76,10 +76,10 @@ _080D43D6:
pop {r0}
bx r0
.pool
thumb_func_end sub_80D439C
thumb_func_end ClearMailStruct
thumb_func_start sub_80D43F0
sub_80D43F0: @ 80D43F0
thumb_func_start MonHasMail
MonHasMail: @ 80D43F0
push {r4,lr}
adds r4, r0, 0
movs r1, 0xC
@ -103,7 +103,7 @@ _080D441A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80D43F0
thumb_func_end MonHasMail
thumb_func_start sub_80D4420
sub_80D4420: @ 80D4420
@ -349,8 +349,8 @@ _080D4606:
bx r1
thumb_func_end sub_80D45E8
thumb_func_start sub_80D460C
sub_80D460C: @ 80D460C
thumb_func_start GiveMailToMon2
GiveMailToMon2: @ 80D460C
push {r4-r7,lr}
sub sp, 0x8
adds r6, r0, 0
@ -401,7 +401,7 @@ _080D4672:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80D460C
thumb_func_end GiveMailToMon2
thumb_func_start sub_80D467C
sub_80D467C: @ 80D467C
@ -409,12 +409,12 @@ sub_80D467C: @ 80D467C
bx lr
thumb_func_end sub_80D467C
thumb_func_start sub_80D4680
sub_80D4680: @ 80D4680
thumb_func_start TakeMailFromMon
TakeMailFromMon: @ 80D4680
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
bl sub_80D43F0
bl MonHasMail
lsls r0, 24
cmp r0, 0
beq _080D46D2
@ -454,7 +454,7 @@ _080D46D2:
pop {r0}
bx r0
.pool
thumb_func_end sub_80D4680
thumb_func_end TakeMailFromMon
thumb_func_start sub_80D46E0
sub_80D46E0: @ 80D46E0

View File

@ -727,9 +727,9 @@ _08153D86:
beq _08153DA4
adds r0, r7, 0
mov r1, sp
bl sub_80D460C
bl GiveMailToMon2
_08153DA4:
bl party_compaction
bl CompactPartySlots
bl CalculatePlayerPartyCount
ldr r0, =gStringVar4
ldr r1, =gUnknown_08674BF0

View File

@ -2111,13 +2111,13 @@ _081B134C:
bx r0
thumb_func_end c3_0811FAB4
thumb_func_start brm_get_pokemon_selection
brm_get_pokemon_selection: @ 81B1354
thumb_func_start GetCursorSelectionMonId
GetCursorSelectionMonId: @ 81B1354
ldr r0, =gUnknown_0203CEC8
ldrb r0, [r0, 0x9]
bx lr
.pool
thumb_func_end brm_get_pokemon_selection
thumb_func_end GetCursorSelectionMonId
thumb_func_start sub_81B1360
sub_81B1360: @ 81B1360
@ -8140,7 +8140,7 @@ sub_81B4578: @ 81B4578
cmp r7, 0
bne _081B45F8
adds r0, r5, 0
bl sub_80D4680
bl TakeMailFromMon
ldr r4, =gUnknown_0203CEFC
adds r0, r5, 0
movs r1, 0xC
@ -8925,7 +8925,7 @@ _081B4CBE:
ldrsb r0, [r1, r0]
muls r0, r7
adds r0, r6
bl sub_80D4680
bl TakeMailFromMon
ldr r0, =gText_MailTakenFromPkmn
movs r1, 0
bl sub_81B1B5C
@ -10134,7 +10134,7 @@ _081B57FE:
thumb_func_start hm_surf_run_dp02scr
hm_surf_run_dp02scr: @ 81B5804
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -10238,7 +10238,7 @@ sub_81B58A8: @ 81B58A8
thumb_func_start hm2_waterfall
hm2_waterfall: @ 81B58D4
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -10298,7 +10298,7 @@ _081B594E:
thumb_func_start sub_81B5958
sub_81B5958: @ 81B5958
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -14938,7 +14938,7 @@ sub_81B81A8: @ 81B81A8
cmp r0, 0
bne _081B8208
adds r0, r5, 0
bl sub_80D4680
bl TakeMailFromMon
ldr r4, =gUnknown_0203CEFC
adds r0, r5, 0
movs r1, 0xC
@ -15281,9 +15281,9 @@ sub_81B8474: @ 81B8474
_081B84DC:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80D460C
bl GiveMailToMon2
adds r0, r4, 0
bl sub_80D439C
bl ClearMailStruct
ldr r0, =gText_MailTransferredFromMailbox
movs r1, 0x1
bl sub_81B1B5C
@ -15994,7 +15994,7 @@ sub_81B8A7C: @ 81B8A7C
push {r4-r7,lr}
mov r7, r8
push {r7}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r5, r0, 24
bl sub_81B1250
@ -17113,7 +17113,7 @@ sub_81B9354: @ 81B9354
sub_81B9390: @ 81B9390
push {r4,lr}
ldr r4, =gSpecialVar_0x8004
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@ -17218,7 +17218,7 @@ _081B945C:
thumb_func_start sub_81B9470
sub_81B9470: @ 81B9470
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r2, =gUnknown_02039F24
strb r0, [r2]
lsls r0, 24
@ -17345,7 +17345,7 @@ _081B9574:
sub_81B9588: @ 81B9588
push {r4,r5,lr}
ldr r5, =gSpecialVar_0x8004
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r5]

View File

@ -1444,7 +1444,7 @@ _0816BA68:
adds r0, r6, 0
bl DisplayItemMessageOnField
adds r0, r5, 0
bl sub_80D439C
bl ClearMailStruct
bl sub_816B54C
ldrb r0, [r4, 0x5]
subs r0, 0x1

View File

@ -1310,8 +1310,8 @@ _08068FF4:
bx r0
thumb_func_end CalculateMonStats
thumb_func_start sub_8069004
sub_8069004: @ 8069004
thumb_func_start BoxMonToMon
BoxMonToMon: @ 8069004
push {r4,lr}
sub sp, 0x4
adds r2, r0, 0
@ -1346,7 +1346,7 @@ sub_8069004: @ 8069004
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8069004
thumb_func_end BoxMonToMon
thumb_func_start GetLevelFromMonExp
GetLevelFromMonExp: @ 8069054

View File

@ -3323,7 +3323,7 @@ _080C8E38:
b _080C8EA0
.pool
_080C8E4C:
bl party_compaction
bl CompactPartySlots
bl sub_80CB950
ldr r0, =gUnknown_02039D08
ldr r1, [r0]
@ -3483,7 +3483,7 @@ _080C8FA4:
ldrb r0, [r0]
cmp r0, 0
beq _080C8FD0
bl party_compaction
bl CompactPartySlots
bl sub_80CB950
b _080C905C
.pool
@ -4237,7 +4237,7 @@ sub_80C9670: @ 80C9670
b _080C96AE
.pool
_080C9688:
bl party_compaction
bl CompactPartySlots
bl sub_80CB950
ldr r1, [r4]
ldrb r0, [r1]
@ -6351,7 +6351,7 @@ _080CA94C:
movs r1, 0
strb r1, [r0]
bl sub_80CBB9C
bl party_compaction
bl CompactPartySlots
movs r0, 0x2
str r0, [sp]
movs r1, 0
@ -13977,8 +13977,8 @@ _080CE900:
.pool
thumb_func_end sub_80CE8E4
thumb_func_start party_compaction
party_compaction: @ 80CE90C
thumb_func_start CompactPartySlots
CompactPartySlots: @ 80CE90C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@ -14055,7 +14055,7 @@ _080CE992:
pop {r1}
bx r1
.pool
thumb_func_end party_compaction
thumb_func_end CompactPartySlots
thumb_func_start sub_80CE9A8
sub_80CE9A8: @ 80CE9A8
@ -20826,7 +20826,7 @@ sub_80D2054: @ 80D2054
lsls r1, 4
adds r0, r1
adds r1, r5, 0
bl sub_8069004
bl BoxMonToMon
_080D2088:
pop {r4,r5}
pop {r0}

View File

@ -25722,7 +25722,7 @@ sub_81D3AD8: @ 81D3AD8
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0x1E
bl sub_81535DC
bl TryCopySpecialSaveSection
cmp r0, 0x1
bne _081D3B04
ldr r2, =0x00000ee8

View File

@ -3607,7 +3607,7 @@ sub_80E89F8: @ 80E89F8
ldr r1, =0x00003030
adds r0, r1
adds r1, r5, 0
bl sub_806FA9C
bl InitDaycareMailRecordMixing
ldr r0, =gUnknown_03001148
ldr r1, [r0]
adds r0, r6, 0

File diff suppressed because it is too large Load Diff

View File

@ -263,7 +263,7 @@ sub_8135654: @ 8135654
cmp r0, 0
beq _0813568C
ldr r4, =gSpecialVar_Result
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@ -302,7 +302,7 @@ _081356AC:
thumb_func_start sub_81356C4
sub_81356C4: @ 81356C4
push {lr}
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -379,7 +379,7 @@ hm2_dig: @ 8135760
bl flagmods_08054D70
movs r0, 0x26
bl FieldEffectStart
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
@ -3334,7 +3334,7 @@ sub_81370FC: @ 81370FC
cmp r0, 0
beq _08137134
ldr r4, =gSpecialVar_Result
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@ -3380,7 +3380,7 @@ hm2_flash: @ 8137178
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl brm_get_pokemon_selection
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24

View File

@ -1343,7 +1343,7 @@ ScriptGiveEgg: @ 80F92C8
lsrs r1, 16
mov r0, sp
movs r2, 0x1
bl sub_8070954
bl CreateEgg
add r2, sp, 0x64
movs r0, 0x1
strb r0, [r2]

View File

@ -5112,7 +5112,7 @@ _08079DDE:
_08079DF0:
add r0, sp, 0xC
movs r1, 0
bl sub_8070ECC
bl NameHasGenderSymbol
lsls r0, 24
movs r2, 0x83
cmp r0, 0
@ -5122,7 +5122,7 @@ _08079DF0:
_08079E04:
add r0, sp, 0xC
movs r1, 0xFE
bl sub_8070ECC
bl NameHasGenderSymbol
lsls r0, 24
movs r2, 0x83
cmp r0, 0
@ -7948,7 +7948,7 @@ sub_807B4D0: @ 807B4D0
adds r1, r2
ldr r0, [r0]
adds r0, r1
bl sub_80D439C
bl ClearMailStruct
_0807B52A:
ldr r4, =gUnknown_020322A0
ldr r0, [r4]
@ -7985,7 +7985,7 @@ _0807B566:
ldr r0, =gUnknown_020321C0
adds r1, r0
adds r0, r7, 0
bl sub_80D460C
bl GiveMailToMon2
_0807B57C:
mov r0, r9
bl sub_807B464

View File

@ -5000,7 +5000,7 @@ _080C5240:
adds r0, r2
ldrh r0, [r0]
strh r0, [r1, 0x6]
bl sub_8185290
bl CanCopyRecordedBattleSaveData
ldr r3, [r5]
movs r1, 0x1
ands r0, r1
@ -5825,7 +5825,7 @@ _080C5970:
strh r0, [r1, 0x6]
bl sub_80C52E4
ldr r0, =sub_80C58D4
bl sub_8185E24
bl PlayRecordedBattle
b _080C599A
.pool
_080C5994:

View File

@ -131,7 +131,7 @@
.equiv FLAG_0x083, 0x83
.equiv FLAG_0x084, 0x84
.equiv FLAG_0x085, 0x85
.equiv FLAG_0x086, 0x86
.equiv FLAG_PENDING_DAYCARE_EGG, 0x86
.equiv FLAG_0x087, 0x87
.equiv FLAG_0x088, 0x88
.equiv FLAG_0x089, 0x89

View File

@ -1,24 +0,0 @@
@ the third big chunk of data
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
@ 832ADD8
.include "data/egg_moves.inc"
.align 2
gUnknown_0832B6C0:: @ 832B6C0
.incbin "baserom.gba", 0x32b6c0, 0x20
gUnknown_0832B6E0:: @ 832B6E0
.incbin "baserom.gba", 0x32b6e0, 0x18
gUnknown_0832B6F8:: @ 832B6F8
.incbin "baserom.gba", 0x32b6f8, 0x10
gEggName:: @ 832B708
.string "$" @ "tamago" ("egg" in Japanese)

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
Route117_EventScript_291C18:: @ 8291C18
lock
faceplayer
special sp0B5_daycare
specialvar VAR_RESULT, sp0B6_daycare
special GetDaycareMonNicknames
specialvar VAR_RESULT, GetDaycareState
compare_var_to_value VAR_RESULT, 1
goto_eq Route117_EventScript_291C4D
compare_var_to_value VAR_RESULT, 2
@ -21,8 +21,8 @@ Route117_EventScript_291C4D:: @ 8291C4D
compare_var_to_value VAR_RESULT, 1
goto_eq Route117_EventScript_291C83
msgbox Route117_Text_292149, 4
clearflag FLAG_0x086
special sub_8070728
clearflag FLAG_PENDING_DAYCARE_EGG
special RejectEggFromDayCare
release
end
@ -40,8 +40,8 @@ Route117_EventScript_291C9D:: @ 8291C9D
waitfanfare
waitbuttonpress
msgbox Route117_Text_2921CF, 4
special sp0B8_daycare
clearflag FLAG_0x086
special GiveEggFromDaycare
clearflag FLAG_PENDING_DAYCARE_EGG
release
end
@ -56,7 +56,7 @@ Route117_EventScript_291CC8:: @ 8291CC8
return
Route117_EventScript_291CD1:: @ 8291CD1
special sp0B5_daycare
special GetDaycareMonNicknames
msgbox Route117_Text_292114, 4
setvar VAR_0x8004, 0
call Route117_EventScript_291CB7
@ -64,9 +64,9 @@ Route117_EventScript_291CD1:: @ 8291CD1
end
Route117_EventScript_291CE8:: @ 8291CE8
special sp0B5_daycare
special GetDaycareMonNicknames
msgbox Route117_Text_292299, 4
special sp0B9_daycare_relationship_comment
special SetDaycareCompatibilityString
special sub_8138AC0
waitmessage
waitbuttonpress
@ -80,7 +80,7 @@ Route117_EventScript_291CE8:: @ 8291CE8
Route117_PokemonDayCare_EventScript_291D11:: @ 8291D11
lock
faceplayer
specialvar VAR_RESULT, sp0B6_daycare
specialvar VAR_RESULT, GetDaycareState
compare_var_to_value VAR_RESULT, 1
goto_eq Route117_PokemonDayCare_EventScript_291E0B
compare_var_to_value VAR_RESULT, 2
@ -103,21 +103,21 @@ Route117_PokemonDayCare_EventScript_291D56:: @ 8291D56
goto_eq Route117_PokemonDayCare_EventScript_291E01
msgbox Route117_PokemonDayCare_Text_292349, 4
fadescreen 1
special sub_8071330
special ChooseSendDaycareMon
waitstate
compare_var_to_value VAR_0x8004, 255
goto_eq Route117_PokemonDayCare_EventScript_291DCA
specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
compare_var_to_value VAR_RESULT, 0
goto_eq Route117_PokemonDayCare_EventScript_291DF7
specialvar VAR_0x8005, sub_8070C58
specialvar VAR_0x8005, GetSelectedMonNickAndSpecies
waitse
playmoncry VAR_0x8005, 0
msgbox Route117_PokemonDayCare_Text_292370, 4
waitmoncry
special daycare_send_selected_pokemon
special StoreSelectedPokemonInDaycare
incrementgamestat 47
specialvar VAR_RESULT, sp0B6_daycare
specialvar VAR_RESULT, GetDaycareState
compare_var_to_value VAR_RESULT, 2
goto_eq Route117_PokemonDayCare_EventScript_291DD4
release
@ -160,7 +160,7 @@ Route117_PokemonDayCare_EventScript_291E15:: @ 8291E15
return
Route117_PokemonDayCare_EventScript_291E1E:: @ 8291E1E
specialvar VAR_RESULT, sub_806FF30
specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare
compare_var_to_value VAR_RESULT, 0
call_if 5, Route117_PokemonDayCare_EventScript_291E15
return
@ -182,11 +182,11 @@ Route117_PokemonDayCare_EventScript_291E6D:: @ 8291E6D
specialvar VAR_RESULT, CalculatePlayerPartyCount
compare_var_to_value VAR_RESULT, 6
goto_eq Route117_PokemonDayCare_EventScript_291F3D
specialvar VAR_RESULT, sp0B6_daycare
specialvar VAR_RESULT, GetDaycareState
setvar VAR_0x8004, 0
compare_var_to_value VAR_RESULT, 2
goto_eq Route117_PokemonDayCare_EventScript_291EAC
special sub_80712C0
special ShowDaycareLevelMenu
waitstate
copyvar VAR_0x8004, VAR_RESULT
compare_var_to_value VAR_RESULT, 2
@ -195,7 +195,7 @@ Route117_PokemonDayCare_EventScript_291E6D:: @ 8291E6D
end
Route117_PokemonDayCare_EventScript_291EAC:: @ 8291EAC
special sub_806FED8
special GetDaycareCost
msgbox Route117_PokemonDayCare_Text_292549, 5
compare_var_to_value VAR_RESULT, 1
goto_eq Route117_PokemonDayCare_EventScript_291EC8
@ -213,7 +213,7 @@ Route117_PokemonDayCare_EventScript_291EC8:: @ 8291EC8
Route117_PokemonDayCare_EventScript_291EE2:: @ 8291EE2
applymovement 1, Route117_PokemonDayCare_Movement_291F47
waitmovement 0
specialvar VAR_RESULT, sub_806FDC4
specialvar VAR_RESULT, TakePokemonFromDaycare
special SubtractMoneyFromVar0x8005
playse SE_REGI
msgbox Route117_PokemonDayCare_Text_292575, 4
@ -221,7 +221,7 @@ Route117_PokemonDayCare_EventScript_291EE2:: @ 8291EE2
playmoncry VAR_RESULT, 0
msgbox Route117_PokemonDayCare_Text_292593, 4
waitmoncry
specialvar VAR_RESULT, sp0B6_daycare
specialvar VAR_RESULT, GetDaycareState
compare_var_to_value VAR_RESULT, 2
goto_eq Route117_PokemonDayCare_EventScript_291F24
goto Route117_PokemonDayCare_EventScript_291DCA
@ -278,12 +278,12 @@ Route117_PokemonDayCare_EventScript_291F5C:: @ 8291F5C
end
Route117_PokemonDayCare_EventScript_291F95:: @ 8291F95
special sub_80712C0
special ShowDaycareLevelMenu
waitstate
compare_var_to_value VAR_RESULT, 2
goto_eq Route117_PokemonDayCare_EventScript_291DCA
copyvar VAR_0x8004, VAR_RESULT
specialvar VAR_RESULT, sub_806FDC4
specialvar VAR_RESULT, TakePokemonFromDaycare
msgbox Route117_PokemonDayCare_Text_292575, 4
msgbox Route117_PokemonDayCare_Text_292476, 4
release

View File

@ -7,7 +7,7 @@ Route117_MapScript1_1F3983: @ 81F3983
end
Route117_EventScript_1F3989:: @ 81F3989
checkflag FLAG_0x086
checkflag FLAG_PENDING_DAYCARE_EGG
goto_if 0, Route117_EventScript_1F3999
setobjectxyperm 3, 47, 6

View File

@ -191,18 +191,18 @@ gSpecials:: @ 81DBA64
def_special GabbyAndTyGetLastBattleTrivia
def_special GabbyAndTySetScriptVarsToFieldObjectLocalIds
def_special sub_8138B80
def_special sp0B5_daycare
def_special sp0B6_daycare
def_special sub_8070728
def_special sp0B8_daycare
def_special sp0B9_daycare_relationship_comment
def_special sub_8070C58
def_special daycare_send_selected_pokemon
def_special sub_8071330
def_special sub_80712C0
def_special sub_806FF30
def_special sub_806FED8
def_special sub_806FDC4
def_special GetDaycareMonNicknames
def_special GetDaycareState
def_special RejectEggFromDayCare
def_special GiveEggFromDaycare
def_special SetDaycareCompatibilityString
def_special GetSelectedMonNickAndSpecies
def_special StoreSelectedPokemonInDaycare
def_special ChooseSendDaycareMon
def_special ShowDaycareLevelMenu
def_special GetNumLevelsGainedFromDaycare
def_special GetDaycareCost
def_special TakePokemonFromDaycare
def_special ScriptHatchMon
def_special EggHatch
def_special sub_8071614
@ -534,4 +534,3 @@ gSpecials:: @ 81DBA64
def_special sub_813C5A0
def_special sub_8139C10
def_special sub_80B3BC4

View File

@ -5121,16 +5121,16 @@ gText_YouDontHaveThreeCoins:: @ 85EF734
gText_ReelTimeHelp:: @ 85EF750
.string "REEL TIME\nHeres your chance to take\naim and nail marks!\nReel Time continues for the\nawarded number of spins.\nIt all ends on a Big Bonus.$"
gUnknown_085EF7DA:: @ 85EF7DA
gDaycareText_GetAlongVeryWell:: @ 85EF7DA
.string "The two seem to get along\nvery well.$"
gUnknown_085EF7FF:: @ 85EF7FF
gDaycareText_GetAlong:: @ 85EF7FF
.string "The two seem to get along.$"
gUnknown_085EF81A:: @ 85EF81A
gDaycareText_DontLikeOther:: @ 85EF81A
.string "The two dont seem to like\neach other much.$"
gUnknown_085EF846:: @ 85EF846
gDaycareText_PlayOther:: @ 85EF846
.string "The two prefer to play with other\nPOKéMON than each other.$"
gText_NewLine2:: @ 85EF881

View File

@ -19,13 +19,13 @@ gUnknown_0832D2BC:: @ 832D2BC
gUnknown_0832DABC:: @ 832DABC
.incbin "baserom.gba", 0x32dabc, 0xb
gUnknown_0832DAC7:: @ 832DAC7
.incbin "baserom.gba", 0x32dac7, 0x2
gText_MaleSymbol4:: @ 832DAC7
.string "$"
gUnknown_0832DAC9:: @ 832DAC9
.incbin "baserom.gba", 0x32dac9, 0x2
gText_FemaleSymbol4:: @ 832DAC9
.string "$"
gUnknown_0832DACB:: @ 832DACB
gText_GenderlessSymbol:: @ 832DACB
.incbin "baserom.gba", 0x32dacb, 0x7
gUnknown_0832DAD2:: @ 832DAD2

File diff suppressed because it is too large Load Diff

27
include/daycare.h Normal file
View File

@ -0,0 +1,27 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
#define EGG_HATCH_LEVEL 5
u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
u8 CountPokemonInDaycare(struct DayCare *daycare);
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
void StoreSelectedPokemonInDaycare(void);
u16 TakePokemonFromDaycare(void);
void GetDaycareCost(void);
u8 GetNumLevelsGainedFromDaycare(void);
void TriggerPendingDaycareEgg(void);
void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
bool8 DoEggActions_CheckHatch(void);
u16 GetSelectedMonNickAndSpecies(void);
void GetDaycareMonNicknames(void);
u8 GetDaycareState(void);
void SetDaycareCompatibilityString(void);
bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio);
void ShowDaycareLevelMenu(void);
void ChooseSendDaycareMon(void);
#endif // GUARD_DAYCARE_H

10
include/egg_hatch.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef GUARD_EGG_HATCH_H
#define GUARD_EGG_HATCH_H
void ScriptHatchMon(void);
bool8 sub_8071614(void);
void EggHatch(void);
u8 GetEggStepsToSubtract(void);
u16 sub_80722E0(void);
#endif // GUARD_EGG_HATCH_H

View File

@ -2,8 +2,10 @@
#define GUARD_FLAGS_H
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_PENDING_DAYCARE_EGG 0x86
#define FLAG_TRAINER_FLAG_START 0x500
#define TRAINERS_FLAG_NO 0x356
#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860

View File

@ -167,9 +167,31 @@ struct BerryCrush
u32 unk;
};
#define PLAYER_NAME_LENGTH 8
struct UnknownSaveBlock2Struct
{
u8 field_0;
u8 field_1;
u8 field_2[2];
u8 field_4[8];
u8 field_C[16];
u16 field_1C[6];
u16 field_28[6];
u8 field_34[176];
u8 field_E4;
u8 field_E5;
u8 field_E6;
u8 field_E7;
u8 field_E8;
u8 field_E9;
u8 field_EA;
u8 field_EB;
}; // sizeof = 0xEC
struct SaveBlock2
{
/*0x00*/ u8 playerName[8];
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x08*/ u8 playerGender; // MALE, FEMALE
/*0x09*/ u8 specialSaveWarp;
/*0x0A*/ u8 playerTrainerId[4];
@ -201,7 +223,8 @@ struct SaveBlock2
// All below could be a one giant struct
/*0x64C*/ u8 field_64C[0x588];
/*0x64C*/ u8 field_64C[236];
/*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
@ -428,30 +451,52 @@ struct ContestWinner
u8 contestRank;
};
struct DaycareMiscMon
{
struct MailStruct mail;
u8 OT_name[OT_NAME_LENGTH + 1];
u8 monName[POKEMON_NAME_LENGTH + 1];
u8 gameLanguage:4;
u8 monLanguage:4;
};
struct DaycareMon
{
struct BoxPokemon mon;
struct MailStruct mail;
u8 OT_name[OT_NAME_LENGTH + 1];
u8 monName[11];
u8 language_maybe : 4;
u8 unknown : 4;
u32 stepsTaken;
struct DaycareMiscMon misc;
u32 steps;
};
struct DaycareData
#define DAYCARE_MON_COUNT 2
struct DayCare
{
struct DaycareMon mons[2];
struct DaycareMon mons[DAYCARE_MON_COUNT];
u32 offspringPersonality;
u8 stepCounter;
};
struct DayCareMail
{
/*0x00*/ struct MailStruct message;
/*0x24*/ u8 names[19];
};
struct RecordMixingDayCareMail
{
struct DayCareMail mail[DAYCARE_MON_COUNT];
u32 numDaycareMons;
bool16 holdsItem[DAYCARE_MON_COUNT];
};
#define MAP_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 300
#define VARS_COUNT 256
#define MAIL_COUNT 16
enum {
enum
{
LILYCOVE_LADY_QUIZ,
LILYCOVE_LADY_FAVOUR,
LILYCOVE_LADY_CONTEST
@ -582,13 +627,13 @@ struct SaveBlock1
/*0x2BBC*/ u16 unk2BBC[6];
/*0x2BC8*/ u16 unk2BC8[6];
/*0x2BD4*/ u16 unk2BD4[6];
/*0x2BE0*/ struct MailStruct mail[16];
/*0x2BE0*/ struct MailStruct mail[MAIL_COUNT];
/*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
/*0x2E25*/ u8 unk2E25[3]; // possibly padding?
/*0x2E28*/ OldMan oldMan;
/*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DaycareData daycare;
/*0x3030*/ struct DayCare daycare;
/*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x31A0*/ u8 unk_31A0;
/*0x31A1*/ u8 filler_31A1[7];

View File

@ -386,4 +386,7 @@ enum
ITEM_OLD_SEA_MAP, // 0x178
};
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
#endif // GUARD_ITEMS_H

View File

@ -68,7 +68,7 @@ struct LinkPlayer
/* 0x08 */ u8 name[11];
/* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType;
/* 0x18 */ u16 lp_field_18;
/* 0x18 */ u16 lp_field_18; // battle bank in battles
/* 0x1A */ u16 language;
};

View File

@ -5,31 +5,33 @@
// Exported RAM declarations
struct ListMenuItem {
struct ListMenuItem
{
const u8 *unk_00;
s32 unk_04;
};
struct ListMenu;
struct ListMenuTemplate {
struct ListMenuItem *unk_00;
struct ListMenuTemplate
{
const struct ListMenuItem *items;
void (* unk_04)(u32, bool8, struct ListMenu *);
void (* unk_08)(u8, s32, u8);
u16 unk_0c;
u16 unk_0e;
u16 totalItems;
u16 maxShowed;
u8 unk_10;
u8 unk_11;
u8 unk_12;
u8 unk_13;
u32 unk_14_0:4;
u32 unk_14_4:4;
u32 unk_15_0:4;
u32 unk_15_4:4;
u32 unk_16_0:1;
u32 unk_16_1:6;
u32 unk_16_7:1;
u32 unk_17_0:6;
u8 cursor_Y;
u32 upText_Y:4; // x1, x2, x4, x8 = xF
u32 cursorColor:4; // x10, x20, x40, x80 = xF0
u32 fillColor:4; // x100, x200, x400, x800 = xF00
u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
u32 unk_16_0:1; // x10000
u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
u32 unk_16_7:1; // x800000
u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
};
struct ListMenu {

View File

@ -16,4 +16,10 @@
|| itemId == ITEM_FAB_MAIL \
|| itemId == ITEM_RETRO_MAIL))
bool8 MonHasMail(struct Pokemon *mon);
void TakeMailFromMon(struct Pokemon *mon);
u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
void ClearMailStruct(struct MailStruct *mail);
#endif // GUARD_MAIL_H

View File

@ -509,9 +509,11 @@ struct Evolution
u16 targetSpecies;
};
#define EVOS_PER_MON 5
struct EvolutionData
{
struct Evolution evolutions[5];
struct Evolution evolutions[EVOS_PER_MON];
};
extern u8 gPlayerPartyCount;
@ -648,6 +650,9 @@ u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
void sub_806A1C0(u16 arg0, u8 bankIdentity);
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
u8 GetSecretBaseTrainerPicIndex(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
#include "sprite.h"

View File

@ -7,6 +7,7 @@
u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H

View File

@ -2,23 +2,40 @@
#define GUARD_RECORDED_BATTLE_H
extern u32 gRecordedBattleRngSeed;
extern u32 gBattlePalaceMoveSelectionRngValue;
extern u8 gUnknown_0203C7B4;
void sub_8184DA4(u8 arg0);
void sub_8185F84(void);
void sub_8184E58(void);
u8 RecordedBattle_ReadBankAction(u8 bank);
void RecordedBattle_SetBankAction(u8 bank, u8 action);
void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear);
void sub_8185F90(u16 arg0);
bool8 sub_8186450(void);
u8 sub_8185FAC(void);
u8 sub_8185FB8(void);
u8 MoveRecordedBattleToSaveData(void);
void sub_818603C(u8);
void sub_8185FD0(void);
void sub_8186444(void);
void sub_8185EB8(void);
u8 RecordedBattle_ReadBankAction(u8 bank);
u8 sub_81850D0(void);
u8 sub_81850DC(u8 *arg0);
u8 sub_8185F40(void);
void sub_81851A8(u8 *arg0);
bool32 CanCopyRecordedBattleSaveData(void);
u32 MoveRecordedBattleToSaveData(void);
void PlayRecordedBattle(void (*CB2_After)(void));
u8 sub_8185EA0(void);
u8 sub_8185EAC(void);
void RecordedBattle_SaveParties(void);
u8 GetActiveBankLinkPlayerGender(void);
void sub_8185F84(void);
void sub_8185F90(u16 arg0);
u8 sub_8185FAC(void);
u8 GetBattleStyleInRecordedBattle(void);
u8 GetTextSpeedInRecordedBattle(void);
void RecordedBattle_CopyBankMoves(void);
void sub_818603C(u8 arg0);
u32 GetAiScriptsInRecordedBattle(void);
void sub_8186444(void);
bool8 sub_8186450(void);
void sub_8186468(u8 *dst);
u8 sub_818649C(void);
u8 sub_81864A8(void);
u8 sub_81864B4(void);
u8 sub_81864C0(void);
void sub_81864CC(void);
u16 *sub_81864E0(void);
#endif // GUARD_RECORDED_BATTLE_H

View File

@ -56,41 +56,42 @@ enum
HOF_DELETE_SAVE // unused
};
#define SECTION_ID_RECORDED_BATTLE 31
void ClearSaveData(void);
void ResetSaveCounters(void);
//bool32 ManipulateSectorBits(u8 op, u8 bit);
//u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *a2);
u8 HandleWriteSector(u16, const struct SaveSectionLocation *);
//u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
u8 TryWriteSector(u8, u8 *);
//u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
//u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
//u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location);
bool32 SetDamagedSectorBits(u8 op, u8 bit);
u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location);
u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
u8 TryWriteSector(u8 sector, u8 *data);
u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location);
u8 ClearSaveData_2(u16, const struct SaveSectionLocation *location);
//u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location);
//u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location);
//u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152E10(u16, const struct SaveSectionLocation *location);
u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
//u8 sub_8125B88(u8 a1, u8 *data, u16 size);
u8 DoReadFlashWholeSection(u8, struct SaveSection *);
u16 CalculateChecksum(void *, u16);
u8 sub_81530DC(u8 a1, u8 *data, u16 size);
u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
u16 CalculateChecksum(void *data, u16 size);
void UpdateSaveAddresses(void);
u8 HandleSavingData(u8 saveType);
//u8 TrySavingData(u8 saveType);
//u8 sub_8125D80(void);
//bool8 sub_8125DA8(void);
//u8 sub_8125DDC(void);
//u8 sub_8125E04(void);
//u8 sub_8125E2C(void);
//bool8 sub_8125E6C(void);
//u8 sub_8125EC8(u8 a1);
//bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
//u8 unref_sub_8125FA0(void);
//u8 unref_sub_8125FF0(u8 *data, u16 size);
//u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
//u8 unref_sub_8126080(u8 sector, u8 *data);
u8 TrySavingData(u8 saveType);
u8 sub_8153380(void);
bool8 sub_81533AC(void);
u8 sub_81533E0(void);
u8 sub_8153408(void);
u8 sub_8153430(void);
bool8 sub_8153474(void);
u8 sub_81534D0(u8 a1);
u16 sub_815355C(void);
u8 sub_81534D0(u8);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);
#endif // GUARD_SAVE_H

View File

@ -77,7 +77,7 @@ SECTIONS {
src/rng.o(.text);
src/util.o(.text);
src/blend_palette.o(.text);
asm/daycare.o(.text);
src/daycare.o(.text);
src/egg_hatch.o(.text);
src/battle_interface.o(.text);
asm/smokescreen.o(.text);
@ -232,7 +232,7 @@ SECTIONS {
asm/fldeff_teleport.o(.text);
asm/battle_link_817C95C.o(.text);
asm/pokemon_animation.o(.text);
asm/recorded_battle.o(.text);
src/recorded_battle.o(.text);
src/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
src/battle_dome_cards.o(.text);
@ -344,7 +344,7 @@ SECTIONS {
data/data2c.o(.rodata);
src/trig.o(.rodata);
src/util.o(.rodata);
data/daycare.o(.rodata);
src/daycare.o(.rodata);
src/egg_hatch.o(.rodata);
src/battle_gfx_sfx_util.o(.rodata);
src/battle_interface.o(.rodata);

View File

@ -142,7 +142,6 @@ extern u8 gLastUsedAbility;
extern u8 gUnknown_0203CF00[];
extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT];
extern const u8* gBattlescriptCurrInstr;
extern u32 gBattlePalaceMoveSelectionRngValue;
extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT];
extern u8 gCurrentTurnActionNumber;
extern u16 gDynamicBasePower;
@ -2803,7 +2802,7 @@ static void BattleStartClearSetData(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE)
gHitMarker |= HITMARKER_NO_ANIMATIONS;
}
else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && sub_8185FB8())
else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleStyleInRecordedBattle())
gHitMarker |= HITMARKER_NO_ANIMATIONS;
gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
@ -3920,7 +3919,7 @@ static void HandleTurnActionSelectionState(void)
switch (gBattleCommunication[gActiveBank])
{
case STATE_TURN_START_RECORD: // recorded battle related on start of every turn
sub_8185FD0();
RecordedBattle_CopyBankMoves();
gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN;
break;
case STATE_BEFORE_ACTION_CHOSEN: // choose an action

View File

@ -1261,7 +1261,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
}
else
{
trainerPicId = PlayerGenderToFrontTrainerPicId(sub_8185F40());
trainerPicId = PlayerGenderToFrontTrainerPicId(GetActiveBankLinkPlayerGender());
}
}
else

View File

@ -1229,7 +1229,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
trainerPicId = sub_8185F40();
trainerPicId = GetActiveBankLinkPlayerGender();
else
trainerPicId = gLinkPlayers[gUnknown_0203C7B4].gender;
}

View File

@ -113,7 +113,7 @@ void sub_8032768(void)
sub_8184DA4(2);
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
sub_8185EB8();
RecordedBattle_SaveParties();
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
SetControllersVariablesInLinkBattle();

View File

@ -58,7 +58,7 @@ extern const u8* GetTrainer1LoseText(void); // battle_setup
extern const u8* GetTrainer2LoseText(void); // battle_setup
extern void GetFrontierTrainerName(u8 *dst, u16 trainerId);
extern s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, const u8 *str, s32 totalWidth, s16 letterSpacing);
extern u8 sub_8185FC4(void);
extern u8 GetTextSpeedInRecordedBattle(void);
extern u8 sav2_get_text_speed(void);
// this file's functions
@ -2264,7 +2264,7 @@ void BattleHandleAddTextPrinter(const u8 *text, u8 arg1)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
speed = 1;
else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
speed = sRecordedBattleTextSpeeds[sub_8185FC4()];
speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()];
else
speed = sav2_get_text_speed();

View File

@ -13,7 +13,7 @@ extern void DrawWholeMapView(); // field_camera
extern void SetCameraPanningCallback(void ( *callback)()); // field_camera
extern void InstallCameraPanAheadCallback(void);
extern void SetCameraPanning(s16 x, s16 y);
extern u8 brm_get_pokemon_selection(void);
extern u8 GetCursorSelectionMonId(void);
extern void FieldEffectActiveListRemove(u8 id); // field_effect
extern u8 oei_task_add(void);
@ -220,7 +220,7 @@ bool8 ShouldDoBrailleStrengthEffect(void)
void sub_8179834(void)
{
gFieldEffectArguments[0] = brm_get_pokemon_selection();
gFieldEffectArguments[0] = GetCursorSelectionMonId();
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
}
@ -256,7 +256,7 @@ bool8 ShouldDoBrailleFlyEffect(void)
void sub_8179918(void)
{
gFieldEffectArguments[0] = brm_get_pokemon_selection();
gFieldEffectArguments[0] = GetCursorSelectionMonId();
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
}

1318
src/daycare.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,3 @@
// Includes
#include "global.h"
#include "decompress.h"
#include "malloc.h"
@ -68,27 +66,27 @@ struct DecorRearrangementDataBuffer {
// Static RAM declarations
EWRAM_DATA u8 *gCurDecorInventoryItems = NULL;
EWRAM_DATA u8 sSecretBasePCMenuCursorPos = 0;
EWRAM_DATA u8 sCurDecorCatCount = 0;
EWRAM_DATA u8 sSecretBaseItemsIndicesBuffer[16] = {};
EWRAM_DATA u8 sPlayerRoomItemsIndicesBuffer[12] = {};
EWRAM_DATA u16 sSecretBasePCSelectDecorLineNo = 0;
EWRAM_DATA u16 sSecretBasePCSelectDecorPageNo = 0;
EWRAM_DATA static u8 sSecretBasePCMenuCursorPos = 0;
EWRAM_DATA static u8 sCurDecorCatCount = 0;
EWRAM_DATA static u8 sSecretBaseItemsIndicesBuffer[16] = {};
EWRAM_DATA static u8 sPlayerRoomItemsIndicesBuffer[12] = {};
EWRAM_DATA static u16 sSecretBasePCSelectDecorLineNo = 0;
EWRAM_DATA static u16 sSecretBasePCSelectDecorPageNo = 0;
EWRAM_DATA u8 gCurDecorationIndex = 0;
EWRAM_DATA u8 sCurDecorationCategory = DECORCAT_DESK;
EWRAM_DATA u32 filler_0203a174[2] = {};
EWRAM_DATA static u8 sCurDecorationCategory = DECORCAT_DESK;
EWRAM_DATA static u32 filler_0203a174[2] = {};
EWRAM_DATA struct DecorPCPointers gUnknown_0203A17C = {};
EWRAM_DATA u8 sDecorMenuWindowIndices[4] = {};
EWRAM_DATA static u8 sDecorMenuWindowIndices[4] = {};
EWRAM_DATA struct DecorPCBuffer *sDecorPCBuffer = NULL;
EWRAM_DATA struct PlaceDecorationGraphicsDataBuffer sPlaceDecorationGraphicsDataBuffer = {};
EWRAM_DATA u16 sCurDecorMapX = 0;
EWRAM_DATA u16 sCurDecorMapY = 0;
EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx1 = 0;
EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx2 = 0;
EWRAM_DATA u8 sDecorationLastDirectionMoved = 0;
EWRAM_DATA struct OamData sDecorSelectorOam = {};
EWRAM_DATA struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {};
EWRAM_DATA u8 sCurDecorSelectedInRearrangement = 0;
EWRAM_DATA static u16 sCurDecorMapX = 0;
EWRAM_DATA static u16 sCurDecorMapY = 0;
EWRAM_DATA static u8 sDecor_CameraSpriteObjectIdx1 = 0;
EWRAM_DATA static u8 sDecor_CameraSpriteObjectIdx2 = 0;
EWRAM_DATA static u8 sDecorationLastDirectionMoved = 0;
EWRAM_DATA static struct OamData sDecorSelectorOam = {};
EWRAM_DATA static struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {};
EWRAM_DATA static u8 sCurDecorSelectedInRearrangement = 0;
// Static ROM declarations
@ -800,9 +798,9 @@ void sub_8127330(u8 taskId)
sDecorPCBuffer->items[i].unk_04 = -2;
gUnknown_03006310 = gUnknown_085A6BD0;
gUnknown_03006310.unk_10 = sDecorMenuWindowIndices[1];
gUnknown_03006310.unk_0c = sDecorPCBuffer->unk_520;
gUnknown_03006310.unk_00 = sDecorPCBuffer->items;
gUnknown_03006310.unk_0e = sDecorPCBuffer->unk_521;
gUnknown_03006310.totalItems = sDecorPCBuffer->unk_520;
gUnknown_03006310.items = sDecorPCBuffer->items;
gUnknown_03006310.maxShowed = sDecorPCBuffer->unk_521;
}
void sub_8127454(u8 *dest, u16 decorId)

View File

@ -1,5 +1,6 @@
#include "global.h"
#include "pokemon.h"
#include "egg_hatch.h"
#include "pokedex.h"
#include "items.h"
#include "script.h"
@ -23,6 +24,7 @@
#include "m4a.h"
#include "window.h"
#include "abilities.h"
#include "daycare.h"
#include "battle.h" // to get rid of later
struct EggHatchData
@ -327,7 +329,7 @@ static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
pokerus = GetMonData(egg, MON_DATA_POKERUS);
obedience = GetMonData(egg, MON_DATA_OBEDIENCE);
CreateMon(temp, species, 5, 32, TRUE, personality, 0, 0);
CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, 0, 0);
for (i = 0; i < 4; i++)
{
@ -393,19 +395,19 @@ void ScriptHatchMon(void)
AddHatchedMonToParty(gSpecialVar_0x8004);
}
static bool8 sub_807158C(struct DaycareData* daycare, u8 daycareId)
static bool8 sub_807158C(struct DayCare *daycare, u8 daycareId)
{
u8 nick[0x20];
struct DaycareMon *daycareMon = &daycare->mons[daycareId];
GetBoxMonNick(&daycareMon->mon, nick);
if (daycareMon->mail.itemId != 0
&& (StringCompareWithoutExtCtrlCodes(nick, daycareMon->monName) != 0
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0))
if (daycareMon->misc.mail.itemId != 0
&& (StringCompareWithoutExtCtrlCodes(nick, daycareMon->misc.monName) != 0
|| StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->misc.OT_name) != 0))
{
StringCopy(gStringVar1, nick);
TVShowConvertInternationalString(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe);
TVShowConvertInternationalString(gStringVar3, daycareMon->monName, daycareMon->unknown);
TVShowConvertInternationalString(gStringVar2, daycareMon->misc.OT_name, daycareMon->misc.gameLanguage);
TVShowConvertInternationalString(gStringVar3, daycareMon->misc.monName, daycareMon->misc.monLanguage);
return TRUE;
}
return FALSE;

View File

@ -97,7 +97,6 @@ extern u8 gUnknown_08D97D0C;
extern void reset_temp_tile_data_buffers();
extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d);
extern u8 free_temp_tile_data_buffers_if_possible();
extern void sub_8069004(struct BoxPokemon* a, void* b);
extern void sub_81C1E20(u8 taskId);
extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
extern u16 SpeciesToPokedexNum(u16 species);
@ -667,7 +666,7 @@ void sub_81C0098(struct Pokemon *mon)
else
{
struct BoxPokemon *boxMon = gUnknown_0203CF1C->unk0->boxMon;
sub_8069004(&boxMon[gUnknown_0203CF1C->unk40BE], mon);
BoxMonToMon(&boxMon[gUnknown_0203CF1C->unk40BE], mon);
}
}

1676
src/recorded_battle.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -797,7 +797,7 @@ u16 sub_815355C(void)
return 0;
}
u32 sub_81535DC(u8 sector, u8* dst)
u32 TryCopySpecialSaveSection(u8 sector, u8* dst)
{
s32 i;
s32 size;
@ -826,6 +826,7 @@ u32 sub_8153634(u8 sector, u8* src)
if (sector != 30 && sector != 31)
return 0xFF;
savDataBuffer = &gSaveDataBuffer;
*(u32*)(savDataBuffer) = 0xB39D;

View File

@ -1099,9 +1099,9 @@ void game_continue(u8 taskId)
}
gUnknown_03006310 = gUnknown_0858D07C;
gUnknown_03006310.unk_10 = data[6];
gUnknown_03006310.unk_0c = data[0];
gUnknown_03006310.unk_00 = gUnknown_0203A020->items;
gUnknown_03006310.unk_0e = data[3];
gUnknown_03006310.totalItems = data[0];
gUnknown_03006310.items = gUnknown_0203A020->items;
gUnknown_03006310.maxShowed = data[3];
}
void sub_80E9DEC(u32 a0, bool8 flag, struct ListMenu *menu)

View File

@ -544,23 +544,7 @@ gUnknown_020249B4: @ 20249B4
.space 0x8
.include "src/rng.o"
.align 2
gUnknown_020249C4: @ 20249C4
.space 0x64
gUnknown_02024A28: @ 2024A28
.space 0x8
gUnknown_02024A30: @ 2024A30
.space 0x8
gUnknown_02024A38: @ 2024A38
.space 0x14
gUnknown_02024A4C: @ 2024A4C
.space 0x8
.include "src/daycare.o"
.include "src/load_save.o"
gUnknown_02031C58: @ 2031C58
@ -1440,90 +1424,7 @@ gUnknown_0203BD26: @ 203BD26
gUnknown_0203BD28: @ 203BD28
.space 0x4
gRecordedBattleRngSeed: @ 203BD2C
.space 0x4
gBattlePalaceMoveSelectionRngValue: @ 203BD30
.space 0x4
gUnknown_0203BD34: @ 203BD34
.space 0xA60
gUnknown_0203C794: @ 203C794
.space 0x8
gUnknown_0203C79C: @ 203C79C
.space 0x8
gUnknown_0203C7A4: @ 203C7A4
.space 0x8
gUnknown_0203C7AC: @ 203C7AC
.space 0x1
gUnknown_0203C7AD: @ 203C7AD
.space 0x1
gUnknown_0203C7AE: @ 203C7AE
.space 0x1
gUnknown_0203C7AF: @ 203C7AF
.space 0x1
gUnknown_0203C7B0: @ 203C7B0
.space 0x4
gUnknown_0203C7B4: @ 203C7B4
.space 0x1
gUnknown_0203C7B5: @ 203C7B5
.space 0x1
gUnknown_0203C7B6: @ 203C7B6
.space 0x1
gUnknown_0203C7B7: @ 203C7B7
.space 0x1
gUnknown_0203C7B8: @ 203C7B8
.space 0x4
gUnknown_0203C7BC: @ 203C7BC
.space 0x4
gUnknown_0203C7C0: @ 203C7C0
.space 0x258
gUnknown_0203CA18: @ 203CA18
.space 0x258
gUnknown_0203CC70: @ 203CC70
.space 0x10
gUnknown_0203CC80: @ 203CC80
.space 0x4
gUnknown_0203CC84: @ 203CC84
.space 0x4C
gUnknown_0203CCD0: @ 203CCD0
.space 0x1
gUnknown_0203CCD1: @ 203CCD1
.space 0x8
gUnknown_0203CCD9: @ 203CCD9
.space 0x1
gUnknown_0203CCDA: @ 203CCDA
.space 0x2
gUnknown_0203CCDC: @ 203CCDC
.space 0xC
gUnknown_0203CCE8: @ 203CCE8
.space 0x4
.include "src/recorded_battle.o"
.include "src/battle_dome_cards.o"
.include "src/lilycove_lady.o"