diff --git a/asm/include/overlay_01_021E6880.inc b/asm/include/overlay_01_021E6880.inc index ff6d547698..61d6d04b4a 100644 --- a/asm/include/overlay_01_021E6880.inc +++ b/asm/include/overlay_01_021E6880.inc @@ -14,7 +14,7 @@ .public GameStats_GetCapped .public GameStats_AddScore .public SaveData_GetPhoneCallPersistentState -.public sub_0202F08C +.public PhoneCallPersistentState_CheckCallTriggerFlag .public Save_SafariZone_Get .public sub_0202F620 .public Save_ApricornBox_Get diff --git a/asm/include/overlay_01_021F3610.inc b/asm/include/overlay_01_021F3610.inc index 4f89c4774b..6516e98681 100644 --- a/asm/include/overlay_01_021F3610.inc +++ b/asm/include/overlay_01_021F3610.inc @@ -8,7 +8,7 @@ .public sub_0201F990 .public sub_02020D2C .public GF_AssertFail -.public sub_02097268 +.public GetSafariObjectConfig .public NNS_G3dGlbFlushP .public NNS_G3dGlbSetBaseTrans .public NNS_G3dGlbSetBaseScale diff --git a/asm/include/overlay_02.inc b/asm/include/overlay_02.inc index 3cce43aef0..4d8bd44b24 100644 --- a/asm/include/overlay_02.inc +++ b/asm/include/overlay_02.inc @@ -182,7 +182,7 @@ .public SavePokegear_FindEmptyPhonebookSlot .public SavePokegear_IsNumberRegistered .public SavePokegear_AllocAndCopyPhonebook -.public sub_0202F08C +.public PhoneCallPersistentState_CheckCallTriggerFlag .public Save_SafariZone_Get .public sub_0202F620 .public SafariZone_GetAreaSet @@ -343,8 +343,8 @@ .public FreePhoneBook .public GetPhoneMessageGmm .public sub_02095FF8 -.public sub_02097268 -.public sub_020974C4 +.public GetSafariObjectConfig +.public SafariZoneAreaSet_LoadAreaEncounters .public sub_02097F6C .public NNS_G2dGetUnpackedCharacterData .public NNS_G2dGetUnpackedPaletteData diff --git a/asm/include/overlay_03.inc b/asm/include/overlay_03.inc index 7471954b20..62b6c86427 100644 --- a/asm/include/overlay_03.inc +++ b/asm/include/overlay_03.inc @@ -214,7 +214,7 @@ .public sub_020881C0 .public sub_020910B8 .public sub_02092B04 -.public sub_02097268 +.public GetSafariObjectConfig .public sub_02097720 .public MI_CpuFill8 .public abs diff --git a/asm/include/overlay_108.inc b/asm/include/overlay_108.inc index 81f1ebe021..574d222e50 100644 --- a/asm/include/overlay_108.inc +++ b/asm/include/overlay_108.inc @@ -197,7 +197,7 @@ .public Save_VarsFlags_Get .public ChangeFlag99D .public BgConfig_LoadAssetFromOpenNarc -.public sub_02097268 +.public GetSafariObjectConfig .public NNS_GfdGetLnkTexVramManagerWorkSize .public NNS_GfdGetLnkPlttVramManagerWorkSize .public NNS_G3dAnmObjInit diff --git a/asm/include/unk_02097268.inc b/asm/include/unk_02097268.inc index f87e91d7cc..472638bb71 100644 --- a/asm/include/unk_02097268.inc +++ b/asm/include/unk_02097268.inc @@ -5,19 +5,19 @@ .public Heap_Free .public GF_AssertFail .public SaveData_GetPhoneCallPersistentState -.public sub_0202F01C -.public sub_0202F050 +.public PhoneCallPersistentState_SetCallTriggerFlag +.public PhoneCallPersistentState_ClearCallTriggerFlag .public PhoneCallPersistentState_SafariZoneArrangement_Set .public Save_SafariZone_Get .public SafariZone_GetAreaSet -.public sub_0202F6A0 -.public sub_0202F6AC -.public sub_0202F6B8 +.public SafariZone_SetLevel +.public SafariZone_GetLevel +.public SafariZone_AddToAllAreaLevels .public SafariZone_GetObjectUnlockLevel .public Save_VarsFlags_Get .public Save_VarsFlags_CheckSafariSysFlag -.public sub_02097268 -.public sub_0209730C -.public sub_020974C4 +.public GetSafariObjectConfig +.public SaveData_SafariZone_CheckAreasWithUpdatedEncounters +.public SafariZoneAreaSet_LoadAreaEncounters .public MI_CpuFill8 .public _s32_div_f diff --git a/asm/macros/script.inc b/asm/macros/script.inc index 9523b6ac52..5678d29f80 100644 --- a/asm/macros/script.inc +++ b/asm/macros/script.inc @@ -903,7 +903,7 @@ .byte \arg1 .endm - .macro ScrCmd_149 arg0 + .macro UnsetPhoneCallTrigger arg0 .short 149 .byte \arg0 .endm diff --git a/asm/overlay_01_021E6880.s b/asm/overlay_01_021E6880.s index db49e2299a..d287920be0 100644 --- a/asm/overlay_01_021E6880.s +++ b/asm/overlay_01_021E6880.s @@ -7,6 +7,7 @@ #include "constants/flags.h" #include "constants/mmodel.h" #include "constants/items.h" +#include "constants/phone_constants.h" #include "msgdata/msg/msg_0096_D31R0201.h" #include "msgdata/msg/msg_0066_D23R0102.h" .include "asm/macros.inc" @@ -2193,13 +2194,13 @@ ov01_021E7A08: ; 0x021E7A08 add r5, r0, #0 ldr r0, [r4, #0xc] bl Save_VarsFlags_Get - ldr r1, _021E7A5C ; =FLAG_UNK_984 + ldr r1, _021E7A5C ; =FLAG_SYS_GOT_BIKE_SHOP_CALL bl Save_VarsFlags_CheckFlagInArray cmp r0, #0 bne _021E7A56 add r0, r5, #0 mov r1, #2 - bl sub_0202F08C + bl PhoneCallPersistentState_CheckCallTriggerFlag cmp r0, #0 bne _021E7A56 ldr r0, [r4, #0xc] @@ -2212,8 +2213,8 @@ ov01_021E7A08: ; 0x021E7A08 blo _021E7A56 add r0, r4, #0 bl FieldSystem_GetGearPhoneRingManager - mov r1, #2 - mov r2, #1 + mov r1, #CALL_TRIGGER_BIKE_SHOP_STEPS + mov r2, #1 // TRUE bl sub_02092E14 mov r0, #0 pop {r3, r4, r5, pc} @@ -2221,7 +2222,7 @@ _021E7A56: mov r0, #0 pop {r3, r4, r5, pc} nop -_021E7A5C: .word FLAG_UNK_984 +_021E7A5C: .word FLAG_SYS_GOT_BIKE_SHOP_CALL thumb_func_end ov01_021E7A08 thumb_func_start BugContestTimeoutCheck diff --git a/asm/overlay_01_021F3610.s b/asm/overlay_01_021F3610.s index 7110c280ff..654d77b666 100644 --- a/asm/overlay_01_021F3610.s +++ b/asm/overlay_01_021F3610.s @@ -378,7 +378,7 @@ _021F38AC: ldrb r1, [r4, #2] ldr r2, [sp, #0x4c] add r0, sp, #0x14 - bl sub_02097268 + bl GetSafariObjectConfig add r1, sp, #0x14 ldrb r2, [r1] ldr r0, [sp, #8] diff --git a/asm/overlay_02_02248728.s b/asm/overlay_02_02248728.s index 87d57e11ee..3a213bb5c6 100644 --- a/asm/overlay_02_02248728.s +++ b/asm/overlay_02_02248728.s @@ -12958,7 +12958,7 @@ _0224E7D4: ldrb r1, [r5] ldr r2, [sp, #4] add r0, sp, #0xc - bl sub_02097268 + bl GetSafariObjectConfig ldrb r1, [r5, #1] cmp r7, r1 blt _0224E810 diff --git a/asm/overlay_03.s b/asm/overlay_03.s index cec3aab50e..25cea05da1 100644 --- a/asm/overlay_03.s +++ b/asm/overlay_03.s @@ -9676,7 +9676,7 @@ ScrCmd_720: ; 0x02258A18 ldrb r1, [r4] add r0, sp, #0x1c lsr r2, r2, #0x18 - bl sub_02097268 + bl GetSafariObjectConfig ldrb r0, [r4, #3] mov ip, r0 add r0, sp, #0x1c diff --git a/asm/overlay_108.s b/asm/overlay_108.s index fe61667bd0..757309a39d 100644 --- a/asm/overlay_108.s +++ b/asm/overlay_108.s @@ -4613,7 +4613,7 @@ _021E7DD0: ldrb r1, [r6, #2] add r0, sp, #0x24 mov r2, #2 - bl sub_02097268 + bl GetSafariObjectConfig ldrb r1, [r7, #2] cmp r1, #0 bne _021E7DE8 diff --git a/asm/overlay_108_021E8850.s b/asm/overlay_108_021E8850.s index e98713a256..30ebc1df95 100644 --- a/asm/overlay_108_021E8850.s +++ b/asm/overlay_108_021E8850.s @@ -3818,7 +3818,7 @@ _021EA6B4: ldr r2, [sp, #4] add r0, r5, #2 add r1, r6, #0 - bl sub_02097268 + bl GetSafariObjectConfig ldrb r1, [r5, #3] lsl r0, r1, #0x1c lsl r1, r1, #0x19 diff --git a/asm/unk_02097268.s b/asm/unk_02097268.s deleted file mode 100644 index 183c96e127..0000000000 --- a/asm/unk_02097268.s +++ /dev/null @@ -1,688 +0,0 @@ -#include "constants/easy_chat.h" -#include "constants/items.h" -#include "constants/maps.h" -#include "constants/moves.h" -#include "constants/species.h" - .include "asm/macros.inc" - .include "unk_02097268.inc" - .include "global.inc" - - .text - - thumb_func_start sub_02097268 -sub_02097268: ; 0x02097268 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r2, #0 - cmp r1, #0x18 - blt _02097278 - bl GF_AssertFail - mov r1, #0 -_02097278: - lsl r0, r1, #1 - add r2, r1, r0 - ldr r0, _020972A0 ; =_02108EEE - add r1, r0, r2 - ldrb r0, [r0, r2] - strb r0, [r5] - ldrb r0, [r1, #1] - strb r0, [r5, #1] - ldrb r0, [r1, #2] - strb r0, [r5, #2] - ldrb r0, [r5, #1] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - beq _0209729E - cmp r4, #1 - bne _0209729E - ldrb r0, [r5] - add r0, r0, #1 - strb r0, [r5] -_0209729E: - pop {r3, r4, r5, pc} - .balign 4, 0 -_020972A0: .word _02108EEE - thumb_func_end sub_02097268 - - thumb_func_start sub_020972A4 -sub_020972A4: ; 0x020972A4 - ldr r3, [r0] - ldr r2, [r1] - cmp r3, r2 - bne _020972BC - ldrh r3, [r0, #4] - ldrh r2, [r1, #4] - cmp r3, r2 - bne _020972BC - ldrh r2, [r0, #6] - ldrh r0, [r1, #6] - cmp r2, r0 - beq _020972C0 -_020972BC: - mov r0, #0 - bx lr -_020972C0: - mov r0, #1 - bx lr - thumb_func_end sub_020972A4 - - thumb_func_start sub_020972C4 -sub_020972C4: ; 0x020972C4 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - mov r6, #0 -_020972CC: - add r0, r5, #0 - add r1, r4, #0 - bl sub_020972A4 - cmp r0, #0 - bne _020972DC - mov r0, #0 - pop {r4, r5, r6, pc} -_020972DC: - add r6, r6, #1 - add r4, #8 - add r5, #8 - cmp r6, #0xa - blt _020972CC - mov r0, #1 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end sub_020972C4 - - thumb_func_start sub_020972EC -sub_020972EC: ; 0x020972EC - push {r3, r4} - mov r4, #0 - cmp r2, #0 - ble _02097306 -_020972F4: - ldrb r3, [r1, r4] - cmp r0, r3 - bne _02097300 - mov r0, #1 - pop {r3, r4} - bx lr -_02097300: - add r4, r4, #1 - cmp r4, r2 - blt _020972F4 -_02097306: - mov r0, #0 - pop {r3, r4} - bx lr - thumb_func_end sub_020972EC - - thumb_func_start sub_0209730C -sub_0209730C: ; 0x0209730C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0xb0 - add r4, r0, #0 - str r1, [sp, #4] - bl SaveData_GetPhoneCallPersistentState - str r0, [sp, #0x2c] - add r0, r4, #0 - bl Save_SafariZone_Get - str r0, [sp, #0x28] - mov r1, #0 - bl SafariZone_GetAreaSet - str r0, [sp, #0x24] - ldr r0, [sp, #0x28] - bl SafariZone_GetObjectUnlockLevel - cmp r0, #0 - beq _0209733A - ldr r0, [sp, #4] - cmp r0, #0 - bgt _0209733C -_0209733A: - b _020974BC -_0209733C: - add r0, r4, #0 - bl Save_VarsFlags_Get - bl Save_VarsFlags_CheckSafariSysFlag - cmp r0, #0 - beq _02097364 - ldr r0, [sp, #0x28] - bl sub_0202F6AC - add r2, r0, #0 - ldr r1, [sp, #4] - ldr r0, [sp, #0x28] - add r1, r2, r1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl sub_0202F6A0 - add sp, #0xb0 - pop {r3, r4, r5, r6, r7, pc} -_02097364: - mov r0, #0 - str r0, [sp, #0x20] - ldr r1, [sp, #0x20] - add r0, sp, #0x30 - mov r2, #6 - bl MI_CpuFill8 - add r0, sp, #0x38 - mov r1, #0 - mov r2, #0x78 - bl MI_CpuFill8 - add r0, sp, #0x38 - mov r6, #0 - str r0, [sp, #0xc] -_02097382: - ldr r0, _020974C0 ; =0x0000FFFF - ldr r5, [sp, #0xc] - asr r0, r6 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1d - mov r4, #0 - add r7, r0, #1 -_02097390: - mov r0, #0xb - str r0, [sp] - ldr r0, [sp, #0x24] - add r1, r6, #0 - add r2, r4, #0 - mov r3, #0 - bl sub_020974C4 - add r4, r4, #1 - stmia r5!, {r0} - cmp r4, r7 - blt _02097390 - ldr r0, [sp, #0xc] - add r6, r6, #1 - add r0, #0x14 - str r0, [sp, #0xc] - cmp r6, #6 - blt _02097382 - ldr r0, [sp, #0x28] - ldr r1, [sp, #4] - bl sub_0202F6B8 - mov r0, #0 - str r0, [sp, #8] - ldr r0, [sp, #0x24] - str r0, [sp, #0x18] - add r0, sp, #0x38 - str r0, [sp, #0x14] -_020973C8: - ldr r0, [sp, #0x18] - ldr r2, [sp, #0x20] - ldrb r7, [r0] - lsl r2, r2, #0x18 - add r1, sp, #0x30 - add r0, r7, #0 - lsr r2, r2, #0x18 - bl sub_020972EC - cmp r0, #0 - bne _02097442 - ldr r1, _020974C0 ; =0x0000FFFF - ldr r0, [sp, #8] - ldr r4, [sp, #0x14] - asr r1, r0 - lsl r0, r1, #0x1f - lsr r0, r0, #0x1d - add r0, r0, #1 - mov r5, #0 - str r0, [sp, #0x10] -_020973F0: - mov r0, #0xb - str r0, [sp] - ldr r0, [sp, #0x24] - ldr r1, [sp, #8] - add r2, r5, #0 - mov r3, #0 - bl sub_020974C4 - add r6, r0, #0 - ldr r0, [r4] - add r1, r6, #0 - bl sub_020972C4 - cmp r0, #0 - beq _02097416 - add r0, r6, #0 - bl Heap_Free - b _02097438 -_02097416: - ldr r2, [sp, #0x20] - add r0, r7, #0 - lsl r2, r2, #0x18 - add r1, sp, #0x30 - lsr r2, r2, #0x18 - bl sub_020972EC - cmp r0, #0 - bne _02097432 - ldr r0, [sp, #0x20] - add r1, sp, #0x30 - strb r7, [r1, r0] - add r0, r0, #1 - str r0, [sp, #0x20] -_02097432: - add r0, r6, #0 - bl Heap_Free -_02097438: - ldr r0, [sp, #0x10] - add r5, r5, #1 - add r4, r4, #4 - cmp r5, r0 - blt _020973F0 -_02097442: - ldr r0, [sp, #0x18] - add r0, #0x7a - str r0, [sp, #0x18] - ldr r0, [sp, #0x14] - add r0, #0x14 - str r0, [sp, #0x14] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, #6 - blt _020973C8 - add r0, sp, #0x38 - mov r7, #0 - str r0, [sp, #0x1c] -_0209745E: - ldr r0, _020974C0 ; =0x0000FFFF - ldr r4, [sp, #0x1c] - asr r0, r7 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1d - mov r5, #0 - add r6, r0, #1 -_0209746C: - ldr r0, [r4] - cmp r0, #0 - beq _02097476 - bl Heap_Free -_02097476: - add r5, r5, #1 - add r4, r4, #4 - cmp r5, r6 - blt _0209746C - ldr r0, [sp, #0x1c] - add r7, r7, #1 - add r0, #0x14 - str r0, [sp, #0x1c] - cmp r7, #6 - blt _0209745E - ldr r0, [sp, #0x20] - cmp r0, #0 - bne _020974A6 - ldr r0, [sp, #0x2c] - mov r1, #6 - bl sub_0202F050 - mov r1, #0 - ldr r0, [sp, #0x2c] - add r2, r1, #0 - bl PhoneCallPersistentState_SafariZoneArrangement_Set - add sp, #0xb0 - pop {r3, r4, r5, r6, r7, pc} -_020974A6: - ldr r0, [sp, #0x2c] - mov r1, #6 - bl sub_0202F01C - ldr r2, [sp, #0x20] - ldr r0, [sp, #0x2c] - lsl r2, r2, #0x18 - add r1, sp, #0x30 - lsr r2, r2, #0x18 - bl PhoneCallPersistentState_SafariZoneArrangement_Set -_020974BC: - add sp, #0xb0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_020974C0: .word 0x0000FFFF - thumb_func_end sub_0209730C - - thumb_func_start sub_020974C4 -sub_020974C4: ; 0x020974C4 - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - str r1, [sp, #8] - str r0, [sp, #4] - ldr r0, [sp, #8] - mov r1, #0x7a - add r7, r0, #0 - ldr r0, [sp, #0x48] - mul r7, r1 - mov r1, #0x50 - add r4, r2, #0 - str r3, [sp, #0xc] - str r0, [sp, #0x14] - bl Heap_AllocAtEnd - str r0, [sp, #0x20] - mov r5, #0 - add r6, r0, #0 - mov r2, #0x81 - mov r3, #0x13 - mov r1, #5 -_020974EE: - cmp r4, #0 - bne _020974F6 - str r3, [r6] - b _020974F8 -_020974F6: - str r2, [r6] -_020974F8: - strh r1, [r6, #6] - ldrh r0, [r6, #6] - add r5, r5, #1 - strh r0, [r6, #4] - add r6, #8 - cmp r5, #0xa - blt _020974EE - mov r0, #1 - str r0, [sp] - ldr r1, [sp, #4] - ldr r3, [sp, #0x14] - ldrb r1, [r1, r7] - mov r0, #0xe8 - mov r2, #0 - bl GfGfxLoader_LoadFromNarc - add r5, r0, #0 - bne _02097522 - ldr r0, [sp, #0x20] - add sp, #0x34 - pop {r4, r5, r6, r7, pc} -_02097522: - ldr r0, [sp, #0x14] - mov r1, #0x64 - bl Heap_AllocAtEnd - str r0, [sp, #0x1c] - ldr r1, [sp, #0x1c] - mov r0, #8 - mov r2, #0 -_02097532: - add r3, r5, r0 - add r0, #0x78 - str r3, [r1] - add r3, r5, r0 - str r3, [r1, #4] - ldrb r3, [r5, r2] - add r2, r2, #1 - lsl r6, r3, #2 - strb r3, [r1, #0x10] - lsl r3, r6, #1 - add r3, r6, r3 - add r0, r0, r3 - str r6, [r1, #0xc] - add r3, r5, r0 - str r3, [r1, #8] - ldrb r3, [r1, #0x10] - add r1, #0x14 - lsl r3, r3, #2 - add r0, r0, r3 - cmp r2, #5 - blt _02097532 - ldr r0, [sp, #0x1c] - add r0, #0x24 - ldrb r0, [r0] - cmp r0, #0 - bne _0209757C - cmp r4, #0 - ble _0209757C - ldr r0, [sp, #0x1c] - bl Heap_Free - add r0, r5, #0 - bl Heap_Free - ldr r0, [sp, #0x20] - add sp, #0x34 - pop {r4, r5, r6, r7, pc} -_0209757C: - ldr r0, [sp, #0xc] - mov r2, #0x14 - add r7, r0, #0 - mov r1, #0xa - mul r2, r4 - ldr r3, [sp, #0x1c] - mul r7, r1 - ldr r0, [sp, #0x20] - mov r1, #0 - str r2, [sp, #0x10] - add r4, r3, r2 -_02097592: - add r2, r7, r1 - ldr r3, [r4] - lsl r2, r2, #2 - add r6, r3, r2 - ldrh r2, [r3, r2] - add r1, r1, #1 - str r2, [r0] - ldrh r2, [r6, #2] - strh r2, [r0, #6] - strh r2, [r0, #4] - add r0, #8 - cmp r1, #0xa - blt _02097592 - mov r0, #0 - str r0, [sp, #0x18] - ldr r0, [sp, #4] - ldr r1, [sp, #8] - add r2, sp, #0x2c - bl sub_02097694 - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0x10] - mov r2, #0 - add r0, r1, r0 - ldrb r0, [r0, #0x10] - cmp r0, #0 - ble _0209763C - add r1, r2, #0 -_020975CA: - ldr r3, [r4, #8] - ldrb r6, [r3, r1] - add r0, r3, r1 - add r3, sp, #0x2c - add r3, r3, r6 - sub r3, r3, #1 - ldrb r6, [r3] - ldrb r3, [r0, #1] - cmp r6, r3 - blo _02097632 - ldrb r6, [r0, #2] - cmp r6, #0 - beq _020975F2 - add r3, sp, #0x2c - add r3, r3, r6 - sub r3, r3, #1 - ldrb r3, [r3] - ldrb r0, [r0, #3] - cmp r3, r0 - blo _02097632 -_020975F2: - ldrb r3, [r4, #0x10] - ldr r0, [sp, #0xc] - mul r3, r0 - add r0, r2, r3 - lsl r0, r0, #2 - str r0, [sp, #0x28] - ldr r0, [sp, #0x18] - ldr r3, [sp, #0x20] - lsl r0, r0, #3 - mov ip, r0 - add r7, r3, r0 - ldr r3, [r4, #4] - ldr r0, [sp, #0x28] - mov r6, ip - ldrh r0, [r3, r0] - str r0, [sp, #0x24] - ldr r0, [sp, #0x20] - ldr r3, [sp, #0x24] - str r3, [r0, r6] - ldr r3, [r4, #4] - ldr r0, [sp, #0x28] - add r0, r3, r0 - ldrh r0, [r0, #2] - strh r0, [r7, #6] - strh r0, [r7, #4] - ldr r0, [sp, #0x18] - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x18] - cmp r0, #9 - bhi _0209763C -_02097632: - ldrb r0, [r4, #0x10] - add r2, r2, #1 - add r1, r1, #4 - cmp r2, r0 - blt _020975CA -_0209763C: - ldr r0, [sp, #0x1c] - bl Heap_Free - add r0, r5, #0 - bl Heap_Free - ldr r0, [sp, #0x20] - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_020974C4 - - thumb_func_start sub_02097650 -sub_02097650: ; 0x02097650 - push {r3, r4} - cmp r1, #0 - bne _0209765C - mov r0, #0 - pop {r3, r4} - bx lr -_0209765C: - sub r2, r1, #1 - lsl r1, r2, #2 - ldr r3, _02097690 ; =_02108EDA - add r1, r2, r1 - mov r4, #0 - add r2, r3, r1 -_02097668: - ldrb r1, [r2] - cmp r0, r1 - bhs _02097678 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, r4} - bx lr -_02097678: - add r4, r4, #1 - add r2, r2, #1 - cmp r4, #5 - blt _02097668 - cmp r0, #0x19 - bhs _0209768A - mov r0, #6 - pop {r3, r4} - bx lr -_0209768A: - mov r0, #7 - pop {r3, r4} - bx lr - .balign 4, 0 -_02097690: .word _02108EDA - thumb_func_end sub_02097650 - - thumb_func_start sub_02097694 -sub_02097694: ; 0x02097694 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r2, #0 - mov r2, #0x7a - mul r2, r1 - add r1, r0, r2 - str r1, [sp] - ldrb r1, [r0, r2] - add r1, r0, r1 - mov r0, #0xb7 - lsl r0, r0, #2 - ldrb r0, [r1, r0] - mov r1, #0xa - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #4] - add r0, r6, #0 - mov r1, #0 - mov r2, #8 - bl MI_CpuFill8 - ldr r0, [sp] - mov r4, #0 - ldrb r0, [r0, #1] - cmp r0, #0 - ble _0209771A - ldr r5, [sp] - add r7, sp, #8 -_020976D0: - ldrb r1, [r5, #2] - add r0, sp, #8 - mov r2, #2 - bl sub_02097268 - ldrb r0, [r7, #2] - cmp r0, #0 - beq _0209770E - add r0, r6, r0 - add r0, r0, #4 - sub r0, r0, #1 - ldrb r1, [r0] - add r1, r1, #1 - strb r1, [r0] - ldrb r1, [r7, #2] - ldr r0, [sp, #4] - bl sub_02097650 - add r3, r0, #0 - ldrb r0, [r7, #2] - add r0, r6, r0 - sub r0, r0, #1 - ldrb r1, [r0] - add r2, r3, r1 - cmp r2, #0xff - ble _0209770A - mov r1, #0xff - strb r1, [r0] - b _0209770E -_0209770A: - add r1, r1, r3 - strb r1, [r0] -_0209770E: - ldr r0, [sp] - add r4, r4, #1 - ldrb r0, [r0, #1] - add r5, r5, #4 - cmp r4, r0 - blt _020976D0 -_0209771A: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end sub_02097694 - - .rodata - -_02108ED8: - .byte 0xFF, 0xFF -_02108EDA: - .byte 0x01, 0x05, 0x0A, 0x0F, 0x14 - .byte 0x02, 0x06, 0x0B, 0x10, 0x15 - .byte 0x03, 0x07, 0x0C, 0x11, 0x16 - .byte 0x04, 0x08, 0x0D, 0x12, 0x17 -_02108EEE: - .byte 0xBD, 0x12, 0x01 - .byte 0xBE, 0x12, 0x01 - .byte 0xBF, 0x12, 0x01 - .byte 0xC0, 0x24, 0x02 - .byte 0xC1, 0x24, 0x02 - .byte 0xC2, 0x24, 0x02 - .byte 0xC3, 0x12, 0x03 - .byte 0xC4, 0x24, 0x03 - .byte 0xC5, 0x24, 0x03 - .byte 0xC6, 0x24, 0x04 - .byte 0xC7, 0x25, 0x04 - .byte 0xC8, 0x24, 0x04 - .byte 0xC9, 0x14, 0x00 - .byte 0xCA, 0x12, 0x00 - .byte 0xCB, 0x12, 0x00 - .byte 0xCC, 0x14, 0x00 - .byte 0xCD, 0x22, 0x00 - .byte 0xCE, 0x12, 0x00 - .byte 0xCF, 0x92, 0x00 - .byte 0xD1, 0x92, 0x00 - .byte 0xD3, 0x12, 0x00 - .byte 0xD4, 0x12, 0x00 - .byte 0xD5, 0x12, 0x00 - .byte 0xD6, 0x12, 0x00 diff --git a/files/.gitignore b/files/.gitignore index 748890f58d..e9bd858509 100644 --- a/files/.gitignore +++ b/files/.gitignore @@ -59,6 +59,7 @@ a/1/9/5 a/2/1/2 a/2/1/4 a/2/2/9 +a/2/3/0 a/2/5/2 a/2/5/4 a/2/6/0 diff --git a/files/arc/safari_enc.json b/files/arc/safari_enc.json new file mode 100644 index 0000000000..08d81493ac --- /dev/null +++ b/files/arc/safari_enc.json @@ -0,0 +1,12612 @@ +{ + "encounters": [ + { + "area": "SAFARI_ZONE_AREA_PLAINS", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_RATTATA", + "level": 15 + }, + { + "species": "SPECIES_ABRA", + "level": 15 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 15 + }, + { + "species": "SPECIES_RATTATA", + "level": 16 + }, + { + "species": "SPECIES_ABRA", + "level": 16 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 16 + }, + { + "species": "SPECIES_RATTATA", + "level": 17 + }, + { + "species": "SPECIES_ABRA", + "level": 17 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 17 + }, + { + "species": "SPECIES_SMEARGLE", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_RATTATA", + "level": 15 + }, + { + "species": "SPECIES_ABRA", + "level": 15 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 15 + }, + { + "species": "SPECIES_RATTATA", + "level": 16 + }, + { + "species": "SPECIES_ABRA", + "level": 16 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 16 + }, + { + "species": "SPECIES_RATTATA", + "level": 17 + }, + { + "species": "SPECIES_ABRA", + "level": 17 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 17 + }, + { + "species": "SPECIES_SMEARGLE", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_RATICATE", + "level": 15 + }, + { + "species": "SPECIES_ABRA", + "level": 15 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 15 + }, + { + "species": "SPECIES_RATICATE", + "level": 16 + }, + { + "species": "SPECIES_ABRA", + "level": 16 + }, + { + "species": "SPECIES_GIRAFARIG", + "level": 16 + }, + { + "species": "SPECIES_RATICATE", + "level": 17 + }, + { + "species": "SPECIES_ABRA", + "level": 17 + }, + { + "species": "SPECIES_STANTLER", + "level": 17 + }, + { + "species": "SPECIES_STANTLER", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_GIRAFARIG", + "level": 40 + }, + "day": { + "species": "SPECIES_GIRAFARIG", + "level": 40 + }, + "nite": { + "species": "SPECIES_STANTLER", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SHINX", + "level": 43 + }, + "day": { + "species": "SPECIES_SHINX", + "level": 43 + }, + "nite": { + "species": "SPECIES_SHINX", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_MANECTRIC", + "level": 45 + }, + "day": { + "species": "SPECIES_MANECTRIC", + "level": 45 + }, + "nite": { + "species": "SPECIES_MANECTRIC", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_SMEARGLE", + "level": 41 + }, + "day": { + "species": "SPECIES_SMEARGLE", + "level": 41 + }, + "nite": { + "species": "SPECIES_STANTLER", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_ZIGZAGOON", + "level": 44 + }, + "day": { + "species": "SPECIES_ZIGZAGOON", + "level": 44 + }, + "nite": { + "species": "SPECIES_ZIGZAGOON", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_PONYTA", + "level": 42 + }, + "day": { + "species": "SPECIES_PONYTA", + "level": 42 + }, + "nite": { + "species": "SPECIES_PONYTA", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_HOUNDOOM", + "level": 43 + }, + "day": { + "species": "SPECIES_HOUNDOOM", + "level": 43 + }, + "nite": { + "species": "SPECIES_HOUNDOOM", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_ZANGOOSE", + "level": 43 + }, + "day": { + "species": "SPECIES_ZANGOOSE", + "level": 43 + }, + "nite": { + "species": "SPECIES_ZANGOOSE", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 12 + } + ], + "morn": { + "species": "SPECIES_LOTAD", + "level": 42 + }, + "day": { + "species": "SPECIES_LOTAD", + "level": 42 + }, + "nite": { + "species": "SPECIES_LOTAD", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 46 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 46 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 46 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_MEADOW", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_JIGGLYPUFF", + "level": 15 + }, + { + "species": "SPECIES_HOPPIP", + "level": 15 + }, + { + "species": "SPECIES_HOPPIP", + "level": 15 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_HOPPIP", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_HOPPIP", + "level": 17 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_SKIPLOOM", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_JIGGLYPUFF", + "level": 15 + }, + { + "species": "SPECIES_SUNKERN", + "level": 15 + }, + { + "species": "SPECIES_HOPPIP", + "level": 15 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_SUNKERN", + "level": 16 + }, + { + "species": "SPECIES_HOPPIP", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_SUNKERN", + "level": 17 + }, + { + "species": "SPECIES_HOPPIP", + "level": 17 + }, + { + "species": "SPECIES_SKIPLOOM", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_JIGGLYPUFF", + "level": 15 + }, + { + "species": "SPECIES_MARILL", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_MARILL", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_MARILL", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_CLEFAIRY", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_RATICATE", + "level": 40 + }, + "day": { + "species": "SPECIES_RATICATE", + "level": 40 + }, + "nite": { + "species": "SPECIES_RATICATE", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 12 + } + ], + "morn": { + "species": "SPECIES_CHANSEY", + "level": 42 + }, + "day": { + "species": "SPECIES_CHANSEY", + "level": 42 + }, + "nite": { + "species": "SPECIES_CHANSEY", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_SEEDOT", + "level": 45 + }, + "day": { + "species": "SPECIES_SEEDOT", + "level": 45 + }, + "nite": { + "species": "SPECIES_SEEDOT", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_SKIPLOOM", + "level": 40 + }, + "day": { + "species": "SPECIES_SKIPLOOM", + "level": 40 + }, + "nite": { + "species": "SPECIES_SKIPLOOM", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_NUZLEAF", + "level": 38 + }, + "day": { + "species": "SPECIES_NUZLEAF", + "level": 38 + }, + "nite": { + "species": "SPECIES_NUZLEAF", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_NUZLEAF", + "level": 48 + }, + "day": { + "species": "SPECIES_NUZLEAF", + "level": 47 + }, + "nite": { + "species": "SPECIES_NUZLEAF", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_GEODUDE", + "level": 45 + }, + "day": { + "species": "SPECIES_GEODUDE", + "level": 45 + }, + "nite": { + "species": "SPECIES_CLEFAIRY", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_NOSEPASS", + "level": 45 + }, + "day": { + "species": "SPECIES_NOSEPASS", + "level": 45 + }, + "nite": { + "species": "SPECIES_NOSEPASS", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 42 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_RIOLU", + "level": 45 + }, + "day": { + "species": "SPECIES_RIOLU", + "level": 46 + }, + "nite": { + "species": "SPECIES_RIOLU", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_WOOPER", + "level": 40 + }, + "day": { + "species": "SPECIES_WOOPER", + "level": 40 + }, + "nite": { + "species": "SPECIES_WOOPER", + "level": 40 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_MARILL", + "level": 16 + }, + { + "species": "SPECIES_MARILL", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_MARILL", + "level": 16 + }, + { + "species": "SPECIES_MARILL", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_MARILL", + "level": 16 + }, + { + "species": "SPECIES_MARILL", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_SKIPLOOM", + "level": 47 + }, + "day": { + "species": "SPECIES_SKIPLOOM", + "level": 47 + }, + "nite": { + "species": "SPECIES_SKIPLOOM", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_MASQUERAIN", + "level": 42 + }, + "day": { + "species": "SPECIES_MASQUERAIN", + "level": 42 + }, + "nite": { + "species": "SPECIES_MASQUERAIN", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_MASQUERAIN", + "level": 46 + }, + "day": { + "species": "SPECIES_MASQUERAIN", + "level": 46 + }, + "nite": { + "species": "SPECIES_MASQUERAIN", + "level": 46 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_POLIWHIRL", + "level": 15 + }, + "day": { + "species": "SPECIES_POLIWHIRL", + "level": 15 + }, + "nite": { + "species": "SPECIES_POLIWHIRL", + "level": 15 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_POLIWHIRL", + "level": 16 + }, + "day": { + "species": "SPECIES_POLIWHIRL", + "level": 16 + }, + "nite": { + "species": "SPECIES_POLIWHIRL", + "level": 16 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_POLIWHIRL", + "level": 27 + }, + "day": { + "species": "SPECIES_POLIWHIRL", + "level": 27 + }, + "nite": { + "species": "SPECIES_POLIWHIRL", + "level": 27 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 7 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 28 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 28 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 28 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + } + ], + "day": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 42 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 42 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 45 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 45 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_SAVANNAH", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_NIDORAN_F", + "level": 15 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 15 + }, + { + "species": "SPECIES_TAUROS", + "level": 15 + }, + { + "species": "SPECIES_NIDORAN_F", + "level": 16 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 16 + }, + { + "species": "SPECIES_TAUROS", + "level": 16 + }, + { + "species": "SPECIES_NIDORAN_F", + "level": 17 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 17 + }, + { + "species": "SPECIES_TAUROS", + "level": 17 + }, + { + "species": "SPECIES_RHYHORN", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_NIDORAN_F", + "level": 15 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 15 + }, + { + "species": "SPECIES_TAUROS", + "level": 15 + }, + { + "species": "SPECIES_NIDORAN_F", + "level": 16 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 16 + }, + { + "species": "SPECIES_TAUROS", + "level": 16 + }, + { + "species": "SPECIES_NIDORAN_F", + "level": 17 + }, + { + "species": "SPECIES_NIDORAN_M", + "level": 17 + }, + { + "species": "SPECIES_TAUROS", + "level": 17 + }, + { + "species": "SPECIES_RHYHORN", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_NIDORINA", + "level": 15 + }, + { + "species": "SPECIES_NIDORINO", + "level": 15 + }, + { + "species": "SPECIES_ZUBAT", + "level": 15 + }, + { + "species": "SPECIES_NIDORINA", + "level": 16 + }, + { + "species": "SPECIES_NIDORINO", + "level": 16 + }, + { + "species": "SPECIES_ZUBAT", + "level": 16 + }, + { + "species": "SPECIES_NIDORINA", + "level": 17 + }, + { + "species": "SPECIES_NIDORINO", + "level": 17 + }, + { + "species": "SPECIES_ZUBAT", + "level": 17 + }, + { + "species": "SPECIES_GOLBAT", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_TAUROS", + "level": 41 + }, + "day": { + "species": "SPECIES_TAUROS", + "level": 41 + }, + "nite": { + "species": "SPECIES_TAUROS", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_ZIGZAGOON", + "level": 38 + }, + "day": { + "species": "SPECIES_ZIGZAGOON", + "level": 38 + }, + "nite": { + "species": "SPECIES_ZIGZAGOON", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 24 + } + ], + "morn": { + "species": "SPECIES_LUXIO", + "level": 46 + }, + "day": { + "species": "SPECIES_LUXIO", + "level": 46 + }, + "nite": { + "species": "SPECIES_LUXIO", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_HOUNDOUR", + "level": 42 + }, + "day": { + "species": "SPECIES_HOUNDOUR", + "level": 42 + }, + "nite": { + "species": "SPECIES_HOUNDOUR", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_CACTURNE", + "level": 42 + }, + "day": { + "species": "SPECIES_CACTURNE", + "level": 42 + }, + "nite": { + "species": "SPECIES_CACTURNE", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 12 + } + ], + "morn": { + "species": "SPECIES_SHROOMISH", + "level": 45 + }, + "day": { + "species": "SPECIES_SHROOMISH", + "level": 45 + }, + "nite": { + "species": "SPECIES_SHROOMISH", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_RHYHORN", + "level": 41 + }, + "day": { + "species": "SPECIES_RHYHORN", + "level": 41 + }, + "nite": { + "species": "SPECIES_RHYHORN", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_RHYDON", + "level": 44 + }, + "day": { + "species": "SPECIES_RHYDON", + "level": 44 + }, + "nite": { + "species": "SPECIES_RHYDON", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_TORKOAL", + "level": 46 + }, + "day": { + "species": "SPECIES_TORKOAL", + "level": 47 + }, + "nite": { + "species": "SPECIES_TORKOAL", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_AZURILL", + "level": 42 + }, + "day": { + "species": "SPECIES_AZURILL", + "level": 42 + }, + "nite": { + "species": "SPECIES_AZURILL", + "level": 42 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_PEAK", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_GRAVELER", + "level": 16 + }, + { + "species": "SPECIES_GEODUDE", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_GRAVELER", + "level": 17 + }, + { + "species": "SPECIES_MAGMAR", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_GRAVELER", + "level": 16 + }, + { + "species": "SPECIES_GEODUDE", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_GRAVELER", + "level": 17 + }, + { + "species": "SPECIES_MAGMAR", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 15 + }, + { + "species": "SPECIES_GEODUDE", + "level": 16 + }, + { + "species": "SPECIES_WOBBUFFET", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_GEODUDE", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_WOBBUFFET", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_LINOONE", + "level": 46 + }, + "day": { + "species": "SPECIES_LINOONE", + "level": 46 + }, + "nite": { + "species": "SPECIES_LINOONE", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 12 + } + ], + "morn": { + "species": "SPECIES_ZANGOOSE", + "level": 45 + }, + "day": { + "species": "SPECIES_ZANGOOSE", + "level": 45 + }, + "nite": { + "species": "SPECIES_ZANGOOSE", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_PARAS", + "level": 42 + }, + "day": { + "species": "SPECIES_PARAS", + "level": 42 + }, + "nite": { + "species": "SPECIES_PARAS", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_FEAROW", + "level": 44 + }, + "day": { + "species": "SPECIES_FEAROW", + "level": 44 + }, + "nite": { + "species": "SPECIES_FEAROW", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 56 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_VIGOROTH", + "level": 47 + }, + "day": { + "species": "SPECIES_VIGOROTH", + "level": 47 + }, + "nite": { + "species": "SPECIES_VIGOROTH", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_MAGMAR", + "level": 41 + }, + "day": { + "species": "SPECIES_MAGMAR", + "level": 41 + }, + "nite": { + "species": "SPECIES_WOBBUFFET", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 24 + } + ], + "morn": { + "species": "SPECIES_LAIRON", + "level": 45 + }, + "day": { + "species": "SPECIES_LAIRON", + "level": 45 + }, + "nite": { + "species": "SPECIES_LAIRON", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 35 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_BRONZOR", + "level": 45 + }, + "day": { + "species": "SPECIES_BRONZOR", + "level": 45 + }, + "nite": { + "species": "SPECIES_BRONZOR", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_SLOWBRO", + "level": 45 + }, + "day": { + "species": "SPECIES_SLOWBRO", + "level": 45 + }, + "nite": { + "species": "SPECIES_SLOWBRO", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_SPHEAL", + "level": 45 + }, + "day": { + "species": "SPECIES_SPHEAL", + "level": 45 + }, + "nite": { + "species": "SPECIES_SPHEAL", + "level": 44 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_ROCKY_BEACH", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_DODUO", + "level": 15 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + }, + { + "species": "SPECIES_DODUO", + "level": 16 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 16 + }, + { + "species": "SPECIES_KRABBY", + "level": 16 + }, + { + "species": "SPECIES_DODUO", + "level": 17 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 17 + }, + { + "species": "SPECIES_KRABBY", + "level": 17 + }, + { + "species": "SPECIES_SLOWBRO", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_DODUO", + "level": 15 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + }, + { + "species": "SPECIES_DODUO", + "level": 16 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 16 + }, + { + "species": "SPECIES_KRABBY", + "level": 16 + }, + { + "species": "SPECIES_DODUO", + "level": 17 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 17 + }, + { + "species": "SPECIES_KRABBY", + "level": 17 + }, + { + "species": "SPECIES_SLOWBRO", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_ZUBAT", + "level": 15 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + }, + { + "species": "SPECIES_ZUBAT", + "level": 16 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 16 + }, + { + "species": "SPECIES_KRABBY", + "level": 16 + }, + { + "species": "SPECIES_ZUBAT", + "level": 17 + }, + { + "species": "SPECIES_SLOWPOKE", + "level": 17 + }, + { + "species": "SPECIES_KRABBY", + "level": 17 + }, + { + "species": "SPECIES_SLOWBRO", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_DODRIO", + "level": 42 + }, + "day": { + "species": "SPECIES_DODRIO", + "level": 42 + }, + "nite": { + "species": "SPECIES_DODRIO", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_ELECTRIKE", + "level": 42 + }, + "day": { + "species": "SPECIES_ELECTRIKE", + "level": 42 + }, + "nite": { + "species": "SPECIES_ELECTRIKE", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 49 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_GIBLE", + "level": 44 + }, + "day": { + "species": "SPECIES_GIBLE", + "level": 44 + }, + "nite": { + "species": "SPECIES_GIBLE", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_MAREEP", + "level": 43 + }, + "day": { + "species": "SPECIES_MAREEP", + "level": 43 + }, + "nite": { + "species": "SPECIES_MAREEP", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_MANECTRIC", + "level": 37 + }, + "day": { + "species": "SPECIES_MANECTRIC", + "level": 37 + }, + "nite": { + "species": "SPECIES_MANECTRIC", + "level": 37 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 18 + } + ], + "morn": { + "species": "SPECIES_BUDEW", + "level": 40 + }, + "day": { + "species": "SPECIES_BUDEW", + "level": 40 + }, + "nite": { + "species": "SPECIES_BUDEW", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_SLOWBRO", + "level": 42 + }, + "day": { + "species": "SPECIES_SLOWBRO", + "level": 42 + }, + "nite": { + "species": "SPECIES_SLOWBRO", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_KINGLER", + "level": 40 + }, + "day": { + "species": "SPECIES_KINGLER", + "level": 40 + }, + "nite": { + "species": "SPECIES_KINGLER", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 24 + } + ], + "morn": { + "species": "SPECIES_ARON", + "level": 45 + }, + "day": { + "species": "SPECIES_ARON", + "level": 45 + }, + "nite": { + "species": "SPECIES_ARON", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_SLOWBRO", + "level": 37 + }, + "day": { + "species": "SPECIES_SLOWBRO", + "level": 37 + }, + "nite": { + "species": "SPECIES_SLOWBRO", + "level": 37 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 17 + }, + { + "species": "SPECIES_LAPRAS", + "level": 15 + }, + { + "species": "SPECIES_LAPRAS", + "level": 16 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 17 + }, + { + "species": "SPECIES_LAPRAS", + "level": 15 + }, + { + "species": "SPECIES_LAPRAS", + "level": 16 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 16 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 17 + }, + { + "species": "SPECIES_LAPRAS", + "level": 15 + }, + { + "species": "SPECIES_LAPRAS", + "level": 16 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_LAPRAS", + "level": 37 + }, + "day": { + "species": "SPECIES_LAPRAS", + "level": 37 + }, + "nite": { + "species": "SPECIES_LAPRAS", + "level": 36 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_LAPRAS", + "level": 42 + }, + "day": { + "species": "SPECIES_LAPRAS", + "level": 42 + }, + "nite": { + "species": "SPECIES_LAPRAS", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 18 + } + ], + "morn": { + "species": "SPECIES_LAPRAS", + "level": 47 + }, + "day": { + "species": "SPECIES_LAPRAS", + "level": 47 + }, + "nite": { + "species": "SPECIES_LAPRAS", + "level": 46 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 13 + }, + { + "species": "SPECIES_KRABBY", + "level": 14 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 13 + }, + { + "species": "SPECIES_KRABBY", + "level": 14 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 14 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_KRABBY", + "level": 13 + }, + { + "species": "SPECIES_KRABBY", + "level": 14 + }, + { + "species": "SPECIES_KRABBY", + "level": 15 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_KRABBY", + "level": 17 + }, + "day": { + "species": "SPECIES_KRABBY", + "level": 17 + }, + "nite": { + "species": "SPECIES_KRABBY", + "level": 17 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_KRABBY", + "level": 18 + }, + "day": { + "species": "SPECIES_KRABBY", + "level": 18 + }, + "nite": { + "species": "SPECIES_KRABBY", + "level": 18 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 22 + }, + { + "species": "SPECIES_KRABBY", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 24 + }, + { + "species": "SPECIES_KRABBY", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 22 + }, + { + "species": "SPECIES_KRABBY", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 24 + }, + { + "species": "SPECIES_KRABBY", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 22 + }, + { + "species": "SPECIES_KRABBY", + "level": 23 + }, + { + "species": "SPECIES_KRABBY", + "level": 24 + }, + { + "species": "SPECIES_KRABBY", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_KINGLER", + "level": 26 + }, + "day": { + "species": "SPECIES_KINGLER", + "level": 26 + }, + "nite": { + "species": "SPECIES_KINGLER", + "level": 26 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_KINGLER", + "level": 27 + }, + "day": { + "species": "SPECIES_KINGLER", + "level": 27 + }, + "nite": { + "species": "SPECIES_KINGLER", + "level": 27 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 38 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 39 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 38 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 39 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 38 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 38 + }, + { + "species": "SPECIES_KINGLER", + "level": 39 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_CORPHISH", + "level": 46 + }, + "day": { + "species": "SPECIES_CORPHISH", + "level": 46 + }, + "nite": { + "species": "SPECIES_CORPHISH", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_CORPHISH", + "level": 48 + }, + "day": { + "species": "SPECIES_CORPHISH", + "level": 48 + }, + "nite": { + "species": "SPECIES_CORPHISH", + "level": 48 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_WETLAND", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_SPEAROW", + "level": 15 + }, + { + "species": "SPECIES_SENTRET", + "level": 15 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 15 + }, + { + "species": "SPECIES_SPEAROW", + "level": 16 + }, + { + "species": "SPECIES_SENTRET", + "level": 16 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 16 + }, + { + "species": "SPECIES_SPEAROW", + "level": 17 + }, + { + "species": "SPECIES_SENTRET", + "level": 17 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 17 + }, + { + "species": "SPECIES_DITTO", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_SPEAROW", + "level": 15 + }, + { + "species": "SPECIES_SENTRET", + "level": 15 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 15 + }, + { + "species": "SPECIES_SPEAROW", + "level": 16 + }, + { + "species": "SPECIES_SENTRET", + "level": 16 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 16 + }, + { + "species": "SPECIES_SPEAROW", + "level": 17 + }, + { + "species": "SPECIES_SENTRET", + "level": 17 + }, + { + "species": "SPECIES_FARFETCHD", + "level": 17 + }, + { + "species": "SPECIES_DITTO", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 17 + }, + { + "species": "SPECIES_GOLDUCK", + "level": 17 + }, + { + "species": "SPECIES_GOLDUCK", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_FURRET", + "level": 37 + }, + "day": { + "species": "SPECIES_FURRET", + "level": 37 + }, + "nite": { + "species": "SPECIES_FURRET", + "level": 37 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 6 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 40 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 40 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_LOMBRE", + "level": 47 + }, + "day": { + "species": "SPECIES_LOMBRE", + "level": 47 + }, + "nite": { + "species": "SPECIES_LOMBRE", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_FARFETCHD", + "level": 41 + }, + "day": { + "species": "SPECIES_FARFETCHD", + "level": 41 + }, + "nite": { + "species": "SPECIES_FARFETCHD", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_PACHIRISU", + "level": 43 + }, + "day": { + "species": "SPECIES_PACHIRISU", + "level": 43 + }, + "nite": { + "species": "SPECIES_PACHIRISU", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_DODUO", + "level": 45 + }, + "day": { + "species": "SPECIES_DODUO", + "level": 45 + }, + "nite": { + "species": "SPECIES_DODUO", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_GOLDUCK", + "level": 40 + }, + "day": { + "species": "SPECIES_GOLDUCK", + "level": 40 + }, + "nite": { + "species": "SPECIES_GOLDUCK", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 63 + } + ], + "morn": { + "species": "SPECIES_SHELGON", + "level": 46 + }, + "day": { + "species": "SPECIES_SHELGON", + "level": 46 + }, + "nite": { + "species": "SPECIES_SHELGON", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_DITTO", + "level": 41 + }, + "day": { + "species": "SPECIES_DITTO", + "level": 41 + }, + "nite": { + "species": "SPECIES_DITTO", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_BUIZEL", + "level": 45 + }, + "day": { + "species": "SPECIES_BUIZEL", + "level": 45 + }, + "nite": { + "species": "SPECIES_BUIZEL", + "level": 44 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 17 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 16 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 17 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 16 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 16 + }, + { + "species": "SPECIES_PSYDUCK", + "level": 17 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 16 + }, + { + "species": "SPECIES_QUAGSIRE", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 37 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 37 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 37 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_GOLDUCK", + "level": 37 + }, + "day": { + "species": "SPECIES_GOLDUCK", + "level": 37 + }, + "nite": { + "species": "SPECIES_GOLDUCK", + "level": 37 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 6 + } + ], + "morn": { + "species": "SPECIES_GOLDUCK", + "level": 45 + }, + "day": { + "species": "SPECIES_GOLDUCK", + "level": 45 + }, + "nite": { + "species": "SPECIES_GOLDUCK", + "level": 45 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_POLIWHIRL", + "level": 17 + }, + "day": { + "species": "SPECIES_POLIWHIRL", + "level": 17 + }, + "nite": { + "species": "SPECIES_POLIWHIRL", + "level": 17 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_POLIWHIRL", + "level": 18 + }, + "day": { + "species": "SPECIES_POLIWHIRL", + "level": 18 + }, + "nite": { + "species": "SPECIES_POLIWHIRL", + "level": 18 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 22 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 23 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWAG", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_CORPHISH", + "level": 26 + }, + "day": { + "species": "SPECIES_CORPHISH", + "level": 26 + }, + "nite": { + "species": "SPECIES_CORPHISH", + "level": 26 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_CORPHISH", + "level": 28 + }, + "day": { + "species": "SPECIES_CORPHISH", + "level": 28 + }, + "nite": { + "species": "SPECIES_CORPHISH", + "level": 28 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + } + ], + "day": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 35 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 36 + }, + { + "species": "SPECIES_POLIWAG", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 6 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 45 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 44 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 9 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 48 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 47 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 48 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_FOREST", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_BELLSPROUT", + "level": 15 + }, + { + "species": "SPECIES_PIDGEY", + "level": 15 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 15 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 16 + }, + { + "species": "SPECIES_PIDGEY", + "level": 16 + }, + { + "species": "SPECIES_MR_MIME", + "level": 16 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 17 + }, + { + "species": "SPECIES_PIDGEY", + "level": 17 + }, + { + "species": "SPECIES_MR_MIME", + "level": 17 + }, + { + "species": "SPECIES_MISDREAVUS", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_BELLSPROUT", + "level": 15 + }, + { + "species": "SPECIES_PIDGEY", + "level": 15 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 15 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 16 + }, + { + "species": "SPECIES_PIDGEY", + "level": 16 + }, + { + "species": "SPECIES_MR_MIME", + "level": 16 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 17 + }, + { + "species": "SPECIES_PIDGEY", + "level": 17 + }, + { + "species": "SPECIES_MR_MIME", + "level": 17 + }, + { + "species": "SPECIES_MISDREAVUS", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_BELLSPROUT", + "level": 15 + }, + { + "species": "SPECIES_GASTLY", + "level": 15 + }, + { + "species": "SPECIES_MISDREAVUS", + "level": 15 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 16 + }, + { + "species": "SPECIES_HAUNTER", + "level": 16 + }, + { + "species": "SPECIES_MISDREAVUS", + "level": 16 + }, + { + "species": "SPECIES_BELLSPROUT", + "level": 17 + }, + { + "species": "SPECIES_GASTLY", + "level": 17 + }, + { + "species": "SPECIES_MISDREAVUS", + "level": 17 + }, + { + "species": "SPECIES_HAUNTER", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_MR_MIME", + "level": 45 + }, + "day": { + "species": "SPECIES_MR_MIME", + "level": 45 + }, + "nite": { + "species": "SPECIES_MR_MIME", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 24 + } + ], + "morn": { + "species": "SPECIES_BUDEW", + "level": 47 + }, + "day": { + "species": "SPECIES_BUDEW", + "level": 47 + }, + "nite": { + "species": "SPECIES_BUDEW", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_MISDREAVUS", + "level": 42 + }, + "day": { + "species": "SPECIES_MISDREAVUS", + "level": 42 + }, + "nite": { + "species": "SPECIES_MISDREAVUS", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_SHUPPET", + "level": 46 + }, + "day": { + "species": "SPECIES_SHUPPET", + "level": 46 + }, + "nite": { + "species": "SPECIES_SHUPPET", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_ELECTABUZZ", + "level": 41 + }, + "day": { + "species": "SPECIES_ELECTABUZZ", + "level": 41 + }, + "nite": { + "species": "SPECIES_ELECTABUZZ", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 56 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_BRONZONG", + "level": 45 + }, + "day": { + "species": "SPECIES_BRONZONG", + "level": 44 + }, + "nite": { + "species": "SPECIES_BRONZONG", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 63 + } + ], + "morn": { + "species": "SPECIES_BELDUM", + "level": 44 + }, + "day": { + "species": "SPECIES_BELDUM", + "level": 44 + }, + "nite": { + "species": "SPECIES_BELDUM", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_LICKITUNG", + "level": 40 + }, + "day": { + "species": "SPECIES_LICKITUNG", + "level": 40 + }, + "nite": { + "species": "SPECIES_LICKITUNG", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_BIDOOF", + "level": 40 + }, + "day": { + "species": "SPECIES_BIDOOF", + "level": 40 + }, + "nite": { + "species": "SPECIES_BIDOOF", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 24 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 42 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 42 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 42 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_SWAMP", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_SENTRET", + "level": 15 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 15 + }, + { + "species": "SPECIES_PARAS", + "level": 15 + }, + { + "species": "SPECIES_SENTRET", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_PARAS", + "level": 16 + }, + { + "species": "SPECIES_SENTRET", + "level": 17 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_PARAS", + "level": 17 + }, + { + "species": "SPECIES_MURKROW", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_SENTRET", + "level": 15 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 15 + }, + { + "species": "SPECIES_PARAS", + "level": 15 + }, + { + "species": "SPECIES_SENTRET", + "level": 16 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 16 + }, + { + "species": "SPECIES_PARAS", + "level": 16 + }, + { + "species": "SPECIES_SENTRET", + "level": 17 + }, + { + "species": "SPECIES_JIGGLYPUFF", + "level": 17 + }, + { + "species": "SPECIES_PARAS", + "level": 17 + }, + { + "species": "SPECIES_MURKROW", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_SENTRET", + "level": 15 + }, + { + "species": "SPECIES_DROWZEE", + "level": 15 + }, + { + "species": "SPECIES_MURKROW", + "level": 15 + }, + { + "species": "SPECIES_SENTRET", + "level": 16 + }, + { + "species": "SPECIES_HYPNO", + "level": 16 + }, + { + "species": "SPECIES_MURKROW", + "level": 16 + }, + { + "species": "SPECIES_SENTRET", + "level": 17 + }, + { + "species": "SPECIES_DROWZEE", + "level": 17 + }, + { + "species": "SPECIES_MURKROW", + "level": 17 + }, + { + "species": "SPECIES_HYPNO", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_PARASECT", + "level": 41 + }, + "day": { + "species": "SPECIES_PARASECT", + "level": 41 + }, + "nite": { + "species": "SPECIES_PARASECT", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_FURRET", + "level": 42 + }, + "day": { + "species": "SPECIES_FURRET", + "level": 42 + }, + "nite": { + "species": "SPECIES_FURRET", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_PACHIRISU", + "level": 47 + }, + "day": { + "species": "SPECIES_PACHIRISU", + "level": 47 + }, + "nite": { + "species": "SPECIES_PACHIRISU", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_MURKROW", + "level": 37 + }, + "day": { + "species": "SPECIES_MURKROW", + "level": 37 + }, + "nite": { + "species": "SPECIES_HYPNO", + "level": 37 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_WEEPINBELL", + "level": 46 + }, + "day": { + "species": "SPECIES_WEEPINBELL", + "level": 46 + }, + "nite": { + "species": "SPECIES_WEEPINBELL", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_CHIMECHO", + "level": 46 + }, + "day": { + "species": "SPECIES_CHIMECHO", + "level": 46 + }, + "nite": { + "species": "SPECIES_CHIMECHO", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_VOLTORB", + "level": 42 + }, + "day": { + "species": "SPECIES_VOLTORB", + "level": 42 + }, + "nite": { + "species": "SPECIES_VOLTORB", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_DUSKULL", + "level": 38 + }, + "day": { + "species": "SPECIES_DUSKULL", + "level": 38 + }, + "nite": { + "species": "SPECIES_DUSKULL", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 56 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_BAGON", + "level": 45 + }, + "day": { + "species": "SPECIES_BAGON", + "level": 45 + }, + "nite": { + "species": "SPECIES_BAGON", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_FLOATZEL", + "level": 44 + }, + "day": { + "species": "SPECIES_FLOATZEL", + "level": 44 + }, + "nite": { + "species": "SPECIES_FLOATZEL", + "level": 44 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 16 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 16 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 16 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 17 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 15 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 16 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 42 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 42 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_MURKROW", + "level": 47 + }, + "day": { + "species": "SPECIES_MURKROW", + "level": 47 + }, + "nite": { + "species": "SPECIES_MURKROW", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_DUSKULL", + "level": 48 + }, + "day": { + "species": "SPECIES_DUSKULL", + "level": 48 + }, + "nite": { + "species": "SPECIES_DUSKULL", + "level": 48 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_GOLDEEN", + "level": 17 + }, + "day": { + "species": "SPECIES_GOLDEEN", + "level": 17 + }, + "nite": { + "species": "SPECIES_GOLDEEN", + "level": 17 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 17 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 17 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 17 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 6 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 27 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 27 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 27 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 29 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 29 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 29 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_DRATINI", + "level": 36 + }, + { + "species": "SPECIES_DRATINI", + "level": 37 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_DRATINI", + "level": 36 + }, + { + "species": "SPECIES_DRATINI", + "level": 37 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 35 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 36 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 37 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 35 + }, + { + "species": "SPECIES_SEAKING", + "level": 36 + }, + { + "species": "SPECIES_SEAKING", + "level": 37 + }, + { + "species": "SPECIES_DRATINI", + "level": 36 + }, + { + "species": "SPECIES_DRATINI", + "level": 37 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 42 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 42 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_MARSHLAND", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_EKANS", + "level": 15 + }, + { + "species": "SPECIES_KOFFING", + "level": 15 + }, + { + "species": "SPECIES_WEEZING", + "level": 15 + }, + { + "species": "SPECIES_EKANS", + "level": 16 + }, + { + "species": "SPECIES_KOFFING", + "level": 16 + }, + { + "species": "SPECIES_WEEZING", + "level": 16 + }, + { + "species": "SPECIES_ARBOK", + "level": 17 + }, + { + "species": "SPECIES_KOFFING", + "level": 17 + }, + { + "species": "SPECIES_WEEZING", + "level": 17 + }, + { + "species": "SPECIES_GRIMER", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_EKANS", + "level": 15 + }, + { + "species": "SPECIES_KOFFING", + "level": 15 + }, + { + "species": "SPECIES_WEEZING", + "level": 15 + }, + { + "species": "SPECIES_EKANS", + "level": 16 + }, + { + "species": "SPECIES_KOFFING", + "level": 16 + }, + { + "species": "SPECIES_WEEZING", + "level": 16 + }, + { + "species": "SPECIES_ARBOK", + "level": 17 + }, + { + "species": "SPECIES_KOFFING", + "level": 17 + }, + { + "species": "SPECIES_WEEZING", + "level": 17 + }, + { + "species": "SPECIES_GRIMER", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_KOFFING", + "level": 15 + }, + { + "species": "SPECIES_ODDISH", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_KOFFING", + "level": 16 + }, + { + "species": "SPECIES_GLOOM", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_KOFFING", + "level": 17 + }, + { + "species": "SPECIES_ODDISH", + "level": 17 + }, + { + "species": "SPECIES_GLOOM", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_GLOOM", + "level": 42 + }, + "day": { + "species": "SPECIES_GLOOM", + "level": 42 + }, + "nite": { + "species": "SPECIES_GLOOM", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_JUMPLUFF", + "level": 38 + }, + "day": { + "species": "SPECIES_JUMPLUFF", + "level": 38 + }, + "nite": { + "species": "SPECIES_JUMPLUFF", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_SEVIPER", + "level": 48 + }, + "day": { + "species": "SPECIES_SEVIPER", + "level": 47 + }, + "nite": { + "species": "SPECIES_SEVIPER", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_CARNIVINE", + "level": 41 + }, + "day": { + "species": "SPECIES_CARNIVINE", + "level": 41 + }, + "nite": { + "species": "SPECIES_CARNIVINE", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 42 + } + ], + "morn": { + "species": "SPECIES_CROAGUNK", + "level": 44 + }, + "day": { + "species": "SPECIES_CROAGUNK", + "level": 44 + }, + "nite": { + "species": "SPECIES_CROAGUNK", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_ROSELIA", + "level": 46 + }, + "day": { + "species": "SPECIES_ROSELIA", + "level": 46 + }, + "nite": { + "species": "SPECIES_ROSELIA", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_DIGLETT", + "level": 43 + }, + "day": { + "species": "SPECIES_DIGLETT", + "level": 43 + }, + "nite": { + "species": "SPECIES_DIGLETT", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_SHUCKLE", + "level": 44 + }, + "day": { + "species": "SPECIES_SHUCKLE", + "level": 44 + }, + "nite": { + "species": "SPECIES_SHUCKLE", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_BANETTE", + "level": 44 + }, + "day": { + "species": "SPECIES_BANETTE", + "level": 44 + }, + "nite": { + "species": "SPECIES_BANETTE", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_MUK", + "level": 38 + }, + "day": { + "species": "SPECIES_MUK", + "level": 38 + }, + "nite": { + "species": "SPECIES_MUK", + "level": 38 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_GRIMER", + "level": 15 + }, + { + "species": "SPECIES_GRIMER", + "level": 16 + }, + { + "species": "SPECIES_GRIMER", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_GRIMER", + "level": 15 + }, + { + "species": "SPECIES_GRIMER", + "level": 16 + }, + { + "species": "SPECIES_GRIMER", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + { + "species": "SPECIES_POLIWAG", + "level": 17 + }, + { + "species": "SPECIES_WOOPER", + "level": 15 + }, + { + "species": "SPECIES_WOOPER", + "level": 16 + }, + { + "species": "SPECIES_WOOPER", + "level": 17 + }, + { + "species": "SPECIES_GRIMER", + "level": 15 + }, + { + "species": "SPECIES_GRIMER", + "level": 16 + }, + { + "species": "SPECIES_GRIMER", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_JUMPLUFF", + "level": 47 + }, + "day": { + "species": "SPECIES_JUMPLUFF", + "level": 47 + }, + "nite": { + "species": "SPECIES_JUMPLUFF", + "level": 47 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 13 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 43 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 43 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 16 + } + ], + "morn": { + "species": "SPECIES_MUK", + "level": 48 + }, + "day": { + "species": "SPECIES_MUK", + "level": 48 + }, + "nite": { + "species": "SPECIES_MUK", + "level": 48 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 14 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 15 + }, + { + "species": "SPECIES_POLIWAG", + "level": 12 + }, + { + "species": "SPECIES_POLIWAG", + "level": 13 + }, + { + "species": "SPECIES_POLIWAG", + "level": 14 + }, + { + "species": "SPECIES_POLIWAG", + "level": 15 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 2 + } + ], + "morn": { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + "day": { + "species": "SPECIES_POLIWAG", + "level": 16 + }, + "nite": { + "species": "SPECIES_POLIWAG", + "level": 16 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_POLIWAG", + "level": 18 + }, + "day": { + "species": "SPECIES_POLIWAG", + "level": 18 + }, + "nite": { + "species": "SPECIES_POLIWAG", + "level": 18 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 22 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 22 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 23 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 24 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 26 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 26 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 26 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_GYARADOS", + "level": 29 + }, + "day": { + "species": "SPECIES_GYARADOS", + "level": 29 + }, + "nite": { + "species": "SPECIES_GYARADOS", + "level": 29 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + }, + { + "species": "SPECIES_GYARADOS", + "level": 36 + }, + { + "species": "SPECIES_GYARADOS", + "level": 37 + } + ], + "day": [ + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + }, + { + "species": "SPECIES_GYARADOS", + "level": 36 + }, + { + "species": "SPECIES_GYARADOS", + "level": 37 + } + ], + "nite": [ + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 35 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 36 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 37 + }, + { + "species": "SPECIES_POLIWHIRL", + "level": 38 + }, + { + "species": "SPECIES_GYARADOS", + "level": 36 + }, + { + "species": "SPECIES_GYARADOS", + "level": 37 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 4 + } + ], + "morn": { + "species": "SPECIES_BARBOACH", + "level": 42 + }, + "day": { + "species": "SPECIES_BARBOACH", + "level": 42 + }, + "nite": { + "species": "SPECIES_BARBOACH", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_BARBOACH", + "level": 45 + }, + "day": { + "species": "SPECIES_BARBOACH", + "level": 45 + }, + "nite": { + "species": "SPECIES_BARBOACH", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_WASTELAND", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_KANGASKHAN", + "level": 15 + }, + { + "species": "SPECIES_ONIX", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_MACHOP", + "level": 16 + }, + { + "species": "SPECIES_ONIX", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_KANGASKHAN", + "level": 17 + }, + { + "species": "SPECIES_MACHOKE", + "level": 17 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 17 + }, + { + "species": "SPECIES_MACHOP", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_KANGASKHAN", + "level": 15 + }, + { + "species": "SPECIES_ONIX", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_MACHOP", + "level": 16 + }, + { + "species": "SPECIES_ONIX", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_KANGASKHAN", + "level": 17 + }, + { + "species": "SPECIES_ONIX", + "level": 17 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 17 + }, + { + "species": "SPECIES_MACHOP", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_FEAROW", + "level": 15 + }, + { + "species": "SPECIES_ONIX", + "level": 15 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 15 + }, + { + "species": "SPECIES_FEAROW", + "level": 16 + }, + { + "species": "SPECIES_ONIX", + "level": 16 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 16 + }, + { + "species": "SPECIES_FEAROW", + "level": 17 + }, + { + "species": "SPECIES_ONIX", + "level": 17 + }, + { + "species": "SPECIES_MAGNEMITE", + "level": 17 + }, + { + "species": "SPECIES_ONIX", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_MANECTRIC", + "level": 41 + }, + "day": { + "species": "SPECIES_MANECTRIC", + "level": 41 + }, + "nite": { + "species": "SPECIES_MANECTRIC", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_ILLUMISE", + "level": 46 + }, + "day": { + "species": "SPECIES_ILLUMISE", + "level": 46 + }, + "nite": { + "species": "SPECIES_ILLUMISE", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_BELLSPROUT", + "level": 41 + }, + "day": { + "species": "SPECIES_BELLSPROUT", + "level": 41 + }, + "nite": { + "species": "SPECIES_BELLSPROUT", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_MEDICHAM", + "level": 44 + }, + "day": { + "species": "SPECIES_MEDICHAM", + "level": 44 + }, + "nite": { + "species": "SPECIES_MEDICHAM", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 42 + } + ], + "morn": { + "species": "SPECIES_BRELOOM", + "level": 46 + }, + "day": { + "species": "SPECIES_BRELOOM", + "level": 46 + }, + "nite": { + "species": "SPECIES_BRELOOM", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_MACHOKE", + "level": 40 + }, + "day": { + "species": "SPECIES_MACHOKE", + "level": 40 + }, + "nite": { + "species": "SPECIES_MACHOKE", + "level": 40 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_SKORUPI", + "level": 44 + }, + "day": { + "species": "SPECIES_SKORUPI", + "level": 44 + }, + "nite": { + "species": "SPECIES_SKORUPI", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 42 + } + ], + "morn": { + "species": "SPECIES_SOLROCK", + "level": 45 + }, + "day": { + "species": "SPECIES_SOLROCK", + "level": 46 + }, + "nite": { + "species": "SPECIES_SOLROCK", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_GOLDUCK", + "level": 45 + }, + "day": { + "species": "SPECIES_GOLDUCK", + "level": 45 + }, + "nite": { + "species": "SPECIES_GOLDUCK", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_KINGLER", + "level": 48 + }, + "day": { + "species": "SPECIES_KINGLER", + "level": 48 + }, + "nite": { + "species": "SPECIES_KINGLER", + "level": 48 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_MOUNTAIN", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_RATICATE", + "level": 15 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 15 + }, + { + "species": "SPECIES_RATTATA", + "level": 15 + }, + { + "species": "SPECIES_RATICATE", + "level": 16 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 16 + }, + { + "species": "SPECIES_RATTATA", + "level": 16 + }, + { + "species": "SPECIES_RATICATE", + "level": 17 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_LARVITAR", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_RATICATE", + "level": 15 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 15 + }, + { + "species": "SPECIES_RATTATA", + "level": 15 + }, + { + "species": "SPECIES_RATICATE", + "level": 16 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 16 + }, + { + "species": "SPECIES_RATTATA", + "level": 16 + }, + { + "species": "SPECIES_RATICATE", + "level": 17 + }, + { + "species": "SPECIES_LICKITUNG", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_LARVITAR", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_ZUBAT", + "level": 15 + }, + { + "species": "SPECIES_GOLBAT", + "level": 15 + }, + { + "species": "SPECIES_RATTATA", + "level": 15 + }, + { + "species": "SPECIES_ZUBAT", + "level": 16 + }, + { + "species": "SPECIES_GOLBAT", + "level": 16 + }, + { + "species": "SPECIES_RATTATA", + "level": 16 + }, + { + "species": "SPECIES_ZUBAT", + "level": 17 + }, + { + "species": "SPECIES_GOLBAT", + "level": 17 + }, + { + "species": "SPECIES_MAGNETON", + "level": 17 + }, + { + "species": "SPECIES_ZUBAT", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_MAGNETON", + "level": 42 + }, + "day": { + "species": "SPECIES_MAGNETON", + "level": 42 + }, + "nite": { + "species": "SPECIES_MAGNETON", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_VOLBEAT", + "level": 46 + }, + "day": { + "species": "SPECIES_VOLBEAT", + "level": 46 + }, + "nite": { + "species": "SPECIES_VOLBEAT", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_CHINGLING", + "level": 38 + }, + "day": { + "species": "SPECIES_CHINGLING", + "level": 38 + }, + "nite": { + "species": "SPECIES_CHINGLING", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_MEDITITE", + "level": 44 + }, + "day": { + "species": "SPECIES_MEDITITE", + "level": 43 + }, + "nite": { + "species": "SPECIES_MEDITITE", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_DUSCLOPS", + "level": 45 + }, + "day": { + "species": "SPECIES_DUSCLOPS", + "level": 45 + }, + "nite": { + "species": "SPECIES_DUSCLOPS", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 5 + } + ], + "morn": { + "species": "SPECIES_LARVITAR", + "level": 42 + }, + "day": { + "species": "SPECIES_LARVITAR", + "level": 42 + }, + "nite": { + "species": "SPECIES_LARVITAR", + "level": 42 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 15 + } + ], + "morn": { + "species": "SPECIES_LUNATONE", + "level": 46 + }, + "day": { + "species": "SPECIES_LUNATONE", + "level": 46 + }, + "nite": { + "species": "SPECIES_LUNATONE", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 56 + } + ], + "morn": { + "species": "SPECIES_METANG", + "level": 44 + }, + "day": { + "species": "SPECIES_METANG", + "level": 44 + }, + "nite": { + "species": "SPECIES_METANG", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_KRABBY", + "level": 43 + }, + "day": { + "species": "SPECIES_KRABBY", + "level": 43 + }, + "nite": { + "species": "SPECIES_KRABBY", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 49 + }, + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 21 + } + ], + "morn": { + "species": "SPECIES_SEALEO", + "level": 45 + }, + "day": { + "species": "SPECIES_SEALEO", + "level": 45 + }, + "nite": { + "species": "SPECIES_SEALEO", + "level": 45 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + }, + { + "area": "SAFARI_ZONE_AREA_DESERT", + "land": { + "mons": { + "morn": [ + { + "species": "SPECIES_SANDSHREW", + "level": 15 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 15 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 15 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 16 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 16 + }, + { + "species": "SPECIES_CUBONE", + "level": 16 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 17 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 17 + }, + { + "species": "SPECIES_CUBONE", + "level": 17 + }, + { + "species": "SPECIES_MAROWAK", + "level": 17 + } + ], + "day": [ + { + "species": "SPECIES_SANDSHREW", + "level": 15 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 15 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 15 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 16 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 16 + }, + { + "species": "SPECIES_CUBONE", + "level": 16 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 17 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 17 + }, + { + "species": "SPECIES_CUBONE", + "level": 17 + }, + { + "species": "SPECIES_MAROWAK", + "level": 17 + } + ], + "nite": [ + { + "species": "SPECIES_SANDSHREW", + "level": 15 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 15 + }, + { + "species": "SPECIES_FEAROW", + "level": 15 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 16 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 16 + }, + { + "species": "SPECIES_FEAROW", + "level": 16 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 17 + }, + { + "species": "SPECIES_SANDSLASH", + "level": 17 + }, + { + "species": "SPECIES_SANDSHREW", + "level": 17 + }, + { + "species": "SPECIES_FEAROW", + "level": 17 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 3 + } + ], + "morn": { + "species": "SPECIES_FEAROW", + "level": 38 + }, + "day": { + "species": "SPECIES_FEAROW", + "level": 38 + }, + "nite": { + "species": "SPECIES_FEAROW", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 14 + } + ], + "morn": { + "species": "SPECIES_SPINDA", + "level": 45 + }, + "day": { + "species": "SPECIES_SPINDA", + "level": 45 + }, + "nite": { + "species": "SPECIES_SPINDA", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PLAINS", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_CARNIVINE", + "level": 48 + }, + "day": { + "species": "SPECIES_CARNIVINE", + "level": 48 + }, + "nite": { + "species": "SPECIES_CARNIVINE", + "level": 48 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 35 + } + ], + "morn": { + "species": "SPECIES_CACNEA", + "level": 35 + }, + "day": { + "species": "SPECIES_CACNEA", + "level": 35 + }, + "nite": { + "species": "SPECIES_CACNEA", + "level": 35 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_VIBRAVA", + "level": 44 + }, + "day": { + "species": "SPECIES_VIBRAVA", + "level": 45 + }, + "nite": { + "species": "SPECIES_VIBRAVA", + "level": 44 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 6 + } + ], + "morn": { + "species": "SPECIES_MAROWAK", + "level": 41 + }, + "day": { + "species": "SPECIES_MAROWAK", + "level": 41 + }, + "nite": { + "species": "SPECIES_FEAROW", + "level": 41 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 28 + } + ], + "morn": { + "species": "SPECIES_HIPPOPOTAS", + "level": 43 + }, + "day": { + "species": "SPECIES_HIPPOPOTAS", + "level": 43 + }, + "nite": { + "species": "SPECIES_HIPPOPOTAS", + "level": 43 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_PEAK", + "count": 49 + } + ], + "morn": { + "species": "SPECIES_TRAPINCH", + "level": 46 + }, + "day": { + "species": "SPECIES_TRAPINCH", + "level": 47 + }, + "nite": { + "species": "SPECIES_TRAPINCH", + "level": 46 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 8 + } + ], + "morn": { + "species": "SPECIES_LOTAD", + "level": 38 + }, + "day": { + "species": "SPECIES_LOTAD", + "level": 38 + }, + "nite": { + "species": "SPECIES_LOTAD", + "level": 38 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 42 + } + ], + "morn": { + "species": "SPECIES_CACTURNE", + "level": 48 + }, + "day": { + "species": "SPECIES_CACTURNE", + "level": 48 + }, + "nite": { + "species": "SPECIES_CACTURNE", + "level": 48 + } + } + ], + "bonus_param": [] + }, + "surf": { + "mons": { + "morn": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 22 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 23 + }, + { + "species": "SPECIES_WOOPER", + "level": 24 + }, + { + "species": "SPECIES_WOOPER", + "level": 25 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 23 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 24 + }, + { + "species": "SPECIES_TENTACOOL", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "day": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + }, + "nite": { + "species": "SPECIES_QUAGSIRE", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_FOREST", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "day": { + "species": "SPECIES_SURSKIT", + "level": 25 + }, + "nite": { + "species": "SPECIES_SURSKIT", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "oldrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 12 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 13 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 12 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 13 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "day": { + "species": "SPECIES_SEAKING", + "level": 20 + }, + "nite": { + "species": "SPECIES_SEAKING", + "level": 20 + } + } + ], + "bonus_param": [] + }, + "goodrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "day": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ], + "nite": [ + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 22 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 23 + }, + { + "species": "SPECIES_MAGIKARP", + "level": 24 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 22 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 23 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 24 + }, + { + "species": "SPECIES_SEAKING", + "level": 25 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 10 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "day": { + "species": "SPECIES_DRATINI", + "level": 25 + }, + "nite": { + "species": "SPECIES_DRATINI", + "level": 25 + } + } + ], + "bonus_param": [] + }, + "superrod": { + "mons": { + "morn": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "day": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ], + "nite": [ + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 42 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_GOLDEEN", + "level": 43 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_SEAKING", + "level": 44 + }, + { + "species": "SPECIES_SEAKING", + "level": 45 + }, + { + "species": "SPECIES_DRATINI", + "level": 44 + }, + { + "species": "SPECIES_DRATINI", + "level": 45 + } + ] + }, + "bonus_mons": [ + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 20 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + }, + { + "conditions": [ + { + "object_type": "SAFARI_ZONE_OBJECT_TYPE_WATER", + "count": 30 + } + ], + "morn": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "day": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + }, + "nite": { + "species": "SPECIES_DRAGONAIR", + "level": 45 + } + } + ], + "bonus_param": [] + } + } + ] +} \ No newline at end of file diff --git a/files/arc/safari_enc.json.txt b/files/arc/safari_enc.json.txt new file mode 100644 index 0000000000..d4f7d4f3fb --- /dev/null +++ b/files/arc/safari_enc.json.txt @@ -0,0 +1,188 @@ +{{ doNotModifyHeader }} + +#include "constants/species.h" +#include "constants/safari.h" + + .rodata +## for map in encounters + .type sMap_{{ map.area }},@object + .balign 4, 0 +sMap_{{ map.area }}: + .byte {{ length(map.land.bonus_mons) }} + .byte {{ length(map.surf.bonus_mons) }} + .byte {{ length(map.oldrod.bonus_mons) }} + .byte {{ length(map.goodrod.bonus_mons) }} + .byte {{ length(map.superrod.bonus_mons) }} + .balign 4, 0 +## for mon in map.land.mons.morn + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.land.mons.day + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.land.mons.nite + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for bonus in map.land.bonus_mons + .short {{ bonus.morn.species }} + .short {{ bonus.morn.level }} +## endfor +## for bonus in map.land.bonus_mons + .short {{ bonus.day.species }} + .short {{ bonus.day.level }} +## endfor +## for bonus in map.land.bonus_mons + .short {{ bonus.nite.species }} + .short {{ bonus.nite.level }} +## endfor +## for bonus in map.land.bonus_mons +## for condition in bonus.conditions + .byte {{ condition.object_type }} + .byte {{ condition.count }} +## endfor +## for i in range(2 - length(bonus.conditions)) + .byte 0 + .byte 0 +## endfor +## endfor +## for mon in map.surf.mons.morn + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.surf.mons.day + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.surf.mons.nite + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for bonus in map.surf.bonus_mons + .short {{ bonus.morn.species }} + .short {{ bonus.morn.level }} +## endfor +## for bonus in map.surf.bonus_mons + .short {{ bonus.day.species }} + .short {{ bonus.day.level }} +## endfor +## for bonus in map.surf.bonus_mons + .short {{ bonus.nite.species }} + .short {{ bonus.nite.level }} +## endfor +## for bonus in map.surf.bonus_mons +## for condition in bonus.conditions + .byte {{ condition.object_type }} + .byte {{ condition.count }} +## endfor +## for i in range(2 - length(bonus.conditions)) + .byte 0 + .byte 0 +## endfor +## endfor +## for mon in map.oldrod.mons.morn + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.oldrod.mons.day + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.oldrod.mons.nite + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for bonus in map.oldrod.bonus_mons + .short {{ bonus.morn.species }} + .short {{ bonus.morn.level }} +## endfor +## for bonus in map.oldrod.bonus_mons + .short {{ bonus.day.species }} + .short {{ bonus.day.level }} +## endfor +## for bonus in map.oldrod.bonus_mons + .short {{ bonus.nite.species }} + .short {{ bonus.nite.level }} +## endfor +## for bonus in map.oldrod.bonus_mons +## for condition in bonus.conditions + .byte {{ condition.object_type }} + .byte {{ condition.count }} +## endfor +## for i in range(2 - length(bonus.conditions)) + .byte 0 + .byte 0 +## endfor +## endfor +## for mon in map.goodrod.mons.morn + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.goodrod.mons.day + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.goodrod.mons.nite + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for bonus in map.goodrod.bonus_mons + .short {{ bonus.morn.species }} + .short {{ bonus.morn.level }} +## endfor +## for bonus in map.goodrod.bonus_mons + .short {{ bonus.day.species }} + .short {{ bonus.day.level }} +## endfor +## for bonus in map.goodrod.bonus_mons + .short {{ bonus.nite.species }} + .short {{ bonus.nite.level }} +## endfor +## for bonus in map.goodrod.bonus_mons +## for condition in bonus.conditions + .byte {{ condition.object_type }} + .byte {{ condition.count }} +## endfor +## for i in range(2 - length(bonus.conditions)) + .byte 0 + .byte 0 +## endfor +## endfor +## for mon in map.superrod.mons.morn + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.superrod.mons.day + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for mon in map.superrod.mons.nite + .short {{ mon.species }} + .short {{ mon.level }} +## endfor +## for bonus in map.superrod.bonus_mons + .short {{ bonus.morn.species }} + .short {{ bonus.morn.level }} +## endfor +## for bonus in map.superrod.bonus_mons + .short {{ bonus.day.species }} + .short {{ bonus.day.level }} +## endfor +## for bonus in map.superrod.bonus_mons + .short {{ bonus.nite.species }} + .short {{ bonus.nite.level }} +## endfor +## for bonus in map.superrod.bonus_mons +## for condition in bonus.conditions + .byte {{ condition.object_type }} + .byte {{ condition.count }} +## endfor +## for i in range(2 - length(bonus.conditions)) + .byte 0 + .byte 0 +## endfor +## endfor + .size sMap_{{ map.area }},.-sMap_{{ map.area }} +## endfor diff --git a/files/arc/safari_enc.mk b/files/arc/safari_enc.mk new file mode 100644 index 0000000000..67deafea3b --- /dev/null +++ b/files/arc/safari_enc.mk @@ -0,0 +1,12 @@ +SAFARI_ENC_JSON := files/arc/safari_enc.json +SAFARI_ENC_NARC := files/arc/safari_enc.narc + +$(SAFARI_ENC_NARC): $(SAFARI_ENC_JSON) $(SAFARI_ENC_JSON).txt + $(JSONPROC) $^ $*.s + $(WINE) $(MWAS) $(MWASFLAGS) -o $*.o $*.s + $(O2NARC) $*.o $@ + @$(RM) $*.s $*.o + +.PHONY: clean-safari-enc +clean-safari-enc: + rm -f $(SAFARI_ENC_NARC) diff --git a/files/a/2/3/0 b/files/arc/safari_enc.narc similarity index 100% rename from files/a/2/3/0 rename to files/arc/safari_enc.narc diff --git a/files/fielddata/script/scr_seq/scr_seq_0003.s b/files/fielddata/script/scr_seq/scr_seq_0003.s index 6a2d8e0b03..6add6fa93d 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0003.s +++ b/files/fielddata/script/scr_seq/scr_seq_0003.s @@ -243,7 +243,7 @@ _034D: _0364: SetFlag FLAG_WAS_TOLD_ABOUT_POKERUS - ScrCmd_148 1, 0 + ScrCmd_148 CALL_TRIGGER_ELM_POKERUS, FALSE ApplyMovement obj_player, _0468 WaitMovement GetPlayerState VAR_SPECIAL_RESULT diff --git a/files/fielddata/script/scr_seq/scr_seq_0144.s b/files/fielddata/script/scr_seq/scr_seq_0144.s index 3cd0538f38..1ffbb08d84 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0144.s +++ b/files/fielddata/script/scr_seq/scr_seq_0144.s @@ -160,7 +160,7 @@ _01F3: GoToIfEq _0222 CallStd std_give_item_verbose ScrCmd_812 - ScrCmd_149 12 + UnsetPhoneCallTrigger CALL_TRIGGER_MOM_BOUGHT_SOMETHING NPCMsg msg_0209_00020 WaitButton CloseMsg diff --git a/files/fielddata/script/scr_seq/scr_seq_0265.s b/files/fielddata/script/scr_seq/scr_seq_0265.s index 6ab1629ce7..64684ccd7f 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0265.s +++ b/files/fielddata/script/scr_seq/scr_seq_0265.s @@ -37,7 +37,7 @@ _0057: TouchscreenMenuShow Compare VAR_SPECIAL_RESULT, 1 GoToIfEq _0082 - SetFlag FLAG_UNK_99E + SetFlag FLAG_SYS_SUBSCRIBED_TO_EGG_CALLS NPCMsg msg_0439_00015 WaitButton CloseMsg @@ -45,8 +45,8 @@ _0057: End _0082: - ClearFlag FLAG_UNK_99E - ScrCmd_149 5 + ClearFlag FLAG_SYS_SUBSCRIBED_TO_EGG_CALLS + UnsetPhoneCallTrigger CALL_TRIGGER_DAYCARE_HAS_EGG NPCMsg msg_0439_00016 WaitButton CloseMsg @@ -54,7 +54,7 @@ _0082: End _0094: - ScrCmd_149 5 + UnsetPhoneCallTrigger CALL_TRIGGER_DAYCARE_HAS_EGG NPCMsg msg_0439_00001 TouchscreenMenuHide GetMenuChoice VAR_SPECIAL_RESULT @@ -72,7 +72,7 @@ _0094: GoToIfNe _00EB NPCMsg msg_0439_00012 SetVar VAR_UNK_408E, 4 - SetFlag FLAG_UNK_992 + SetFlag FLAG_SYS_TRIGGER_EGG_CALL GoTo _0057 _00EB: @@ -104,7 +104,7 @@ _0114: GoToIfNe _0146 NPCMsg msg_0439_00011 SetVar VAR_UNK_408E, 4 - SetFlag FLAG_UNK_992 + SetFlag FLAG_SYS_TRIGGER_EGG_CALL GoTo _0057 _0146: diff --git a/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s b/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s index 630738fbcc..4e9c44a488 100644 --- a/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s +++ b/files/fielddata/script/scr_seq/scr_seq_0843_T20R0101.s @@ -414,12 +414,12 @@ _0550: _055F: GetPartyLeadAlive VAR_TEMP_x4000 GetPartyMonSpecies VAR_TEMP_x4000, VAR_TEMP_x4001 - ScrCmd_149 0 - Compare VAR_TEMP_x4001, 175 + UnsetPhoneCallTrigger CALL_TRIGGER_ELM_EGG_HATCHED + Compare VAR_TEMP_x4001, SPECIES_TOGEPI GoToIfEq _0599 - Compare VAR_TEMP_x4001, 176 + Compare VAR_TEMP_x4001, SPECIES_TOGETIC GoToIfEq _0599 - Compare VAR_TEMP_x4001, 468 + Compare VAR_TEMP_x4001, SPECIES_TOGEKISS GoToIfEq _0599 GoTo _0637 diff --git a/filesystem.mk b/filesystem.mk index f6d7366f34..ce2f0cf714 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -456,6 +456,7 @@ $(eval $(call arc_strip_name,files/pbr/dp_height_o.narc,files/a/1/9/5)) $(eval $(call arc_strip_name,files/resource/eng/pms_aikotoba/pms_aikotoba.narc,files/a/2/1/2)) $(eval $(call arc_strip_name,files/application/zukanlist/zkn_data/zukan_data_gira.narc,files/a/2/1/4)) $(eval $(call arc_strip_name,files/fielddata/sodateya/kowaza_list.narc,files/a/2/2/9)) +$(eval $(call arc_strip_name,files/arc/safari_enc.narc,files/a/2/3/0)) $(eval $(call arc_strip_name,files/arc/headbutt.$(buildname).narc,files/a/2/5/2)) $(eval $(call arc_strip_name,files/demo/opening/gs_opening.narc,files/a/2/6/2)) $(eval $(call arc_strip_name,files/application/voltorb_flip.narc,files/a/2/6/4)) @@ -541,6 +542,7 @@ include files/application/guinness.mk include files/demo/intro/intro.mk include files/data/namein.mk include files/data/sbox_gra.mk +include files/arc/safari_enc.mk $(filter-out $(DIFF_ARCS) $(FS_RULE_OVERRIDES),$(NITROFS_FILES)): ; diff --git a/include/constants/buildmodel.h b/include/constants/buildmodel.h new file mode 100644 index 0000000000..a5ad1cc4ce --- /dev/null +++ b/include/constants/buildmodel.h @@ -0,0 +1,345 @@ +#ifndef GUARD_POKEHEARTGOLD_CONSTANTS_BUILDMODEL_H +#define GUARD_POKEHEARTGOLD_CONSTANTS_BUILDMODEL_H + +#define BUILD_MODEL_DMYBOX00 0 +#define BUILD_MODEL_EN_FS 1 +#define BUILD_MODEL_EN_PC 2 +#define BUILD_MODEL_EN_GATE01 3 +#define BUILD_MODEL_EN_GATE02 4 +#define BUILD_MODEL_EN_GYM 5 +#define BUILD_MODEL_EN_SEKIA 6 +#define BUILD_MODEL_EN_SEKIB 7 +#define BUILD_MODEL_EN_YAKE 8 +#define BUILD_MODEL_EN_SUZU 9 +#define BUILD_MODEL_EN_KABU 10 +#define BUILD_MODEL_EN_H01A 11 +#define BUILD_MODEL_EN_H01B 12 +#define BUILD_MODEL_EN_DOOR1 13 +#define BUILD_MODEL_EN_DOOR2 14 +#define BUILD_MODEL_P_DOOR 15 +#define BUILD_MODEL_GYM_DOOR 16 +#define BUILD_MODEL_EN_DOOR3 17 +#define BUILD_MODEL_EN_SP1 18 +#define BUILD_MODEL_EN_SKY 19 +#define BUILD_MODEL_WK_HHOUSE 20 +#define BUILD_MODEL_WK_LABO 21 +#define BUILD_MODEL_WK_H01 22 +#define BUILD_MODEL_WK_H02 23 +#define BUILD_MODEL_WK_DOOR1 24 +#define BUILD_MODEL_WK_DOOR2 25 +#define BUILD_MODEL_WK_DOOR3 26 +#define BUILD_MODEL_WK_SP1 27 +#define BUILD_MODEL_WIND 28 +#define BUILD_MODEL_BOARD_A 29 +#define BUILD_MODEL_BOARD_B 30 +#define BUILD_MODEL_BOARD_C 31 +#define BUILD_MODEL_BOARD_D 32 +#define BUILD_MODEL_BOARD_E 33 +#define BUILD_MODEL_BOARD_F 34 +#define BUILD_MODEL_GATE_A 35 +#define BUILD_MODEL_GATE_B 36 +#define BUILD_MODEL_YO_H01 37 +#define BUILD_MODEL_YO_H02 38 +#define BUILD_MODEL_POLYSURFACE2 39 +#define BUILD_MODEL_POLYSURFACE2_2 40 +#define BUILD_MODEL_KN_H01 41 +#define BUILD_MODEL_KN_GATE 42 +#define BUILD_MODEL_UZUSHIO 43 +#define BUILD_MODEL_KK_GYM 44 +#define BUILD_MODEL_HW_GYM 45 +#define BUILD_MODEL_HW_H01 46 +#define BUILD_MODEL_HW_H02 47 +#define BUILD_MODEL_HW_IDO 48 +#define BUILD_MODEL_TIME_ANIME 49 +#define BUILD_MODEL_YO_DOOR1 50 +#define BUILD_MODEL_YO_SP1 51 +#define BUILD_MODEL_YO_SP2 52 +#define BUILD_MODEL_R30_H01 53 +#define BUILD_MODEL_KK_MADA 54 +#define BUILD_MODEL_KK_TOUROU 55 +#define BUILD_MODEL_KK_H01 56 +#define BUILD_MODEL_KK_DOOR1 57 +#define BUILD_MODEL_KK_SCHOOL 58 +#define BUILD_MODEL_KK_BRIDGE 59 +#define BUILD_MODEL_KK_DOOR2 60 +#define BUILD_MODEL_KK_DOOR3 61 +#define BUILD_MODEL_KK_PC 62 +#define BUILD_MODEL_KK_FS 63 +#define BUILD_MODEL_D15_OBJ 64 +#define BUILD_MODEL_D15_PILLAR 65 +#define BUILD_MODEL_D15_STAIRUP 66 +#define BUILD_MODEL_D15_STAIRDW 67 +#define BUILD_MODEL_D15_LIGHT 68 +#define BUILD_MODEL_DUN_STAIRUP 69 +#define BUILD_MODEL_DUN_STAIRDW 70 +#define BUILD_MODEL_UBA_HOKORA 71 +#define BUILD_MODEL_UBA_EDA 72 +#define BUILD_MODEL_YADO_LIGHT 73 +#define BUILD_MODEL_KO_CHIKA 74 +#define BUILD_MODEL_KO_CYCLE 75 +#define BUILD_MODEL_KO_DEPART 76 +#define BUILD_MODEL_KO_FLOWER 77 +#define BUILD_MODEL_KO_FUNSUI 78 +#define BUILD_MODEL_KO_GAME 79 +#define BUILD_MODEL_KO_GYM 80 +#define BUILD_MODEL_KO_H01 81 +#define BUILD_MODEL_KO_H02 82 +#define BUILD_MODEL_KO_H03 83 +#define BUILD_MODEL_KO_FOOT 84 +#define BUILD_MODEL_KO_OVERPASS 85 +#define BUILD_MODEL_KO_RADIO 86 +#define BUILD_MODEL_KO_SEIMEI 87 +#define BUILD_MODEL_KO_STATION 88 +#define BUILD_MODEL_KO_WIFI 89 +#define BUILD_MODEL_SNAP_CAMERA 90 +#define BUILD_MODEL_HW_DOOR1 91 +#define BUILD_MODEL_HW_DOOR2 92 +#define BUILD_MODEL_HW_MAKI 93 +#define BUILD_MODEL_KO_DOOR1 94 +#define BUILD_MODEL_KO_LIGHT 95 +#define BUILD_MODEL_KO_FLAG 96 +#define BUILD_MODEL_KO_ARCH 97 +#define BUILD_MODEL_KO_TETRA 98 +#define BUILD_MODEL_KO_BELL 99 +#define BUILD_MODEL_HW_KEMURI 100 +#define BUILD_MODEL_KO_H03X 101 +#define BUILD_MODEL_TN_H01 102 +#define BUILD_MODEL_TN_DOOR1 103 +#define BUILD_MODEL_TN_PHARMACY 104 +#define BUILD_MODEL_TN_PHOTO 105 +#define BUILD_MODEL_TN_DRIED 106 +#define BUILD_MODEL_TN_GYMBASE 107 +#define BUILD_MODEL_TN_GYM 108 +#define BUILD_MODEL_AS_H01 109 +#define BUILD_MODEL_AS_TOUDAI 110 +#define BUILD_MODEL_AS_GYM 111 +#define BUILD_MODEL_R39_MOUMOU 112 +#define BUILD_MODEL_R39_NAYA 113 +#define BUILD_MODEL_R39_DOOR1 114 +#define BUILD_MODEL_AS_BENCH 115 +#define BUILD_MODEL_TN_DOOR2 116 +#define BUILD_MODEL_OBJ_YAKETA 117 +#define BUILD_MODEL_AS_RESTAURANT 118 +#define BUILD_MODEL_AS_YACHT 119 +#define BUILD_MODEL_AS_DOOR1 120 +#define BUILD_MODEL_AS_HATA 121 +#define BUILD_MODEL_TOUDAI_SKY 122 +#define BUILD_MODEL_TOU3F_BACK 123 +#define BUILD_MODEL_ELE_DOOR_DUN 124 +#define BUILD_MODEL_MAP15_01KOKAGE 125 +#define BUILD_MODEL_FALL03_01 126 +#define BUILD_MODEL_MAP15_02KOKAGE 127 +#define BUILD_MODEL_MAP16_01KOKAGE 128 +#define BUILD_MODEL_MAP16_02KOKAGE 129 +#define BUILD_MODEL_MAP17_01KOKAGE 130 +#define BUILD_MODEL_D_UZUSHIO 131 +#define BUILD_MODEL_FU_H01 132 +#define BUILD_MODEL_FU_DOOR1 133 +#define BUILD_MODEL_CH_H01 134 +#define BUILD_MODEL_CH_DOOR1 135 +#define BUILD_MODEL_ANTENA_TREE 136 +#define BUILD_MODEL_ANTENA_TREE_ 137 +#define BUILD_MODEL_CH_GYM 138 +#define BUILD_MODEL_FU_GYM 139 +#define BUILD_MODEL_D17_TMPL 140 +#define BUILD_MODEL_D17_TPDR 141 +#define BUILD_MODEL_D22_MIZU 142 +#define BUILD_MODEL_D22_FUNSUI 143 +#define BUILD_MODEL_FALL_TOUJOU 144 +#define BUILD_MODEL_PKE_OBJ01 145 +#define BUILD_MODEL_PKE_LEAGUE 146 +#define BUILD_MODEL_PKE_GATE 147 +#define BUILD_MODEL_PKE_FLOWER 148 +#define BUILD_MODEL_PKE_DOOR1 149 +#define BUILD_MODEL_KN_DOOR1 150 +#define BUILD_MODEL_KN_DOOR2 151 +#define BUILD_MODEL_FALL_SURI 152 +#define BUILD_MODEL_AR_STUDY 153 +#define BUILD_MODEL_AR_CENTER 154 +#define BUILD_MODEL_AR_SHRINE1 155 +#define BUILD_MODEL_AR_SHRINE2 156 +#define BUILD_MODEL_AR_SHRINE3 157 +#define BUILD_MODEL_AR_SHRINE1_2 158 +#define BUILD_MODEL_AR_SHRINE1_3 159 +#define BUILD_MODEL_AR_SHRINE1_4 160 +#define BUILD_MODEL_AR_SHRINE1_5 161 +#define BUILD_MODEL_AR_SHRINE1_6 162 +#define BUILD_MODEL_AR_SHRINE1_7 163 +#define BUILD_MODEL_AR_STUDY_DOOR 164 +#define BUILD_MODEL_R34_EDUCATE 165 +#define BUILD_MODEL_R34_DOOR1 166 +#define BUILD_MODEL_AS_AQUAGATE 167 +#define BUILD_MODEL_AQUA_GO 168 +#define BUILD_MODEL_OBJECT_SUZU 169 +#define BUILD_MODEL_FALL_R47 170 +#define BUILD_MODEL_MSG_GTMN 171 +#define BUILD_MODEL_MSG_GTOB 172 +#define BUILD_MODEL_MSG_TN01 173 +#define BUILD_MODEL_MSG_TN02 174 +#define BUILD_MODEL_MSG_TN03 175 +#define BUILD_MODEL_MSG_TN04 176 +#define BUILD_MODEL_WARP_J01 177 +#define BUILD_MODEL_POKE_C_BENCH 178 +#define BUILD_MODEL_POKE_C_DOME 179 +#define BUILD_MODEL_POKE_C_FLOWER 180 +#define BUILD_MODEL_POKE_C_GATE 181 +#define BUILD_MODEL_POKE_C_LIGHT 182 +#define BUILD_MODEL_POKE_C_MON 183 +#define BUILD_MODEL_POKE_C_OBJ 184 +#define BUILD_MODEL_SG_DOOR_OP 185 +#define BUILD_MODEL_D17_LIGHT 186 +#define BUILD_MODEL_SROOF_BACK 187 +#define BUILD_MODEL_KU_GYM 188 +#define BUILD_MODEL_SAF_GO01 189 +#define BUILD_MODEL_SAF_GO02 190 +#define BUILD_MODEL_SAF_GO03 191 +#define BUILD_MODEL_SAF_TO01 192 +#define BUILD_MODEL_SAF_TO02 193 +#define BUILD_MODEL_SAF_TO03 194 +#define BUILD_MODEL_SAF_RO01 195 +#define BUILD_MODEL_SAF_RO02 196 +#define BUILD_MODEL_SAF_RO03 197 +#define BUILD_MODEL_SAF_WO01 198 +#define BUILD_MODEL_SAF_WO02 199 +#define BUILD_MODEL_SAF_WO03 200 +#define BUILD_MODEL_SAF_EO01 201 +#define BUILD_MODEL_SAF_EO02 202 +#define BUILD_MODEL_SAF_EO03 203 +#define BUILD_MODEL_SAF_EO04 204 +#define BUILD_MODEL_SAF_EO05 205 +#define BUILD_MODEL_SAF_EO06 206 +#define BUILD_MODEL_SAF_EO07M 207 +#define BUILD_MODEL_SAF_EO07F 208 +#define BUILD_MODEL_SAF_EO08M 209 +#define BUILD_MODEL_SAF_EO08F 210 +#define BUILD_MODEL_SAF_EO09 211 +#define BUILD_MODEL_SAF_EO10 212 +#define BUILD_MODEL_SAF_EO11 213 +#define BUILD_MODEL_SAF_EO12 214 +#define BUILD_MODEL_KBC_H01 215 +#define BUILD_MODEL_KBC_H02 216 +#define BUILD_MODEL_KBC_LOVE 217 +#define BUILD_MODEL_KBC_PORT 218 +#define BUILD_MODEL_KBC_GYM 219 +#define BUILD_MODEL_GYM_DOOR_KN 220 +#define BUILD_MODEL_KBC_DR01 221 +#define BUILD_MODEL_KBC_DR02 222 +#define BUILD_MODEL_KBC_SL 223 +#define BUILD_MODEL_POKE_C_DOOR 224 +#define BUILD_MODEL_KBC_DR03 225 +#define BUILD_MODEL_POKE_C_DOME2 226 +#define BUILD_MODEL_EN_LIGHT 227 +#define BUILD_MODEL_D36_00_00 228 +#define BUILD_MODEL_D36_00_01 229 +#define BUILD_MODEL_D36_00_02 230 +#define BUILD_MODEL_D36_01_00 231 +#define BUILD_MODEL_D36_01_01 232 +#define BUILD_MODEL_D36_01_02 233 +#define BUILD_MODEL_FU_MON 234 +#define BUILD_MODEL_FU_ROCK 235 +#define BUILD_MODEL_TA_H01 236 +#define BUILD_MODEL_TA_H02 237 +#define BUILD_MODEL_TA_H03 238 +#define BUILD_MODEL_TA_FOUNTAIN 239 +#define BUILD_MODEL_TA_GIFT 240 +#define BUILD_MODEL_TA_GAME 241 +#define BUILD_MODEL_TA_DEPART 242 +#define BUILD_MODEL_TA_RESTAURANT 243 +#define BUILD_MODEL_TA_MANSION 244 +#define BUILD_MODEL_TA_GYM 245 +#define BUILD_MODEL_KN_GATE_A 246 +#define BUILD_MODEL_KN_GATE_B 247 +#define BUILD_MODEL_AS_LIGHT 248 +#define BUILD_MODEL_CH_MIHARI 249 +#define BUILD_MODEL_YA_GYM 250 +#define BUILD_MODEL_YBC_H01 251 +#define BUILD_MODEL_YBC_H02 252 +#define BUILD_MODEL_YBC_H03 253 +#define BUILD_MODEL_YBC_H04 254 +#define BUILD_MODEL_YBC_FGM 255 +#define BUILD_MODEL_YBC_LNR 256 +#define BUILD_MODEL_YBC_SLF 257 +#define BUILD_MODEL_YBC_MMC 258 +#define BUILD_MODEL_YBC_DOR1 259 +#define BUILD_MODEL_YBC_DOR2 260 +#define BUILD_MODEL_YBC_DOR3 261 +#define BUILD_MODEL_D31_S01 262 +#define BUILD_MODEL_D32_S01 263 +#define BUILD_MODEL_D32_S02 264 +#define BUILD_MODEL_D32_S03 265 +#define BUILD_MODEL_D32_S04 266 +#define BUILD_MODEL_D32_S05 267 +#define BUILD_MODEL_D32_S06 268 +#define BUILD_MODEL_GYM_DOOR00 269 +#define BUILD_MODEL_D32_HATA 270 +#define BUILD_MODEL_GATE_POKES 271 +#define BUILD_MODEL_BF_H01 272 +#define BUILD_MODEL_BF_DOOR1 273 +#define BUILD_MODEL_TAFL04_DOOR1 274 +#define BUILD_MODEL_TAFL04_H01 275 +#define BUILD_MODEL_HA_H01A 276 +#define BUILD_MODEL_HA_H01B 277 +#define BUILD_MODEL_HA_CYCLE 278 +#define BUILD_MODEL_MISAKI_H01 279 +#define BUILD_MODEL_SI_H01 280 +#define BUILD_MODEL_SI_RADIO 281 +#define BUILD_MODEL_SI_TEMP 282 +#define BUILD_MODEL_KN_POWER 283 +#define BUILD_MODEL_HA_GYM 284 +#define BUILD_MODEL_SI_GYM 285 +#define BUILD_MODEL_HA_DR01 286 +#define BUILD_MODEL_MSK_DR01 287 +#define BUILD_MODEL_SI_DOOR1 288 +#define BUILD_MODEL_SI_DOOR2 289 +#define BUILD_MODEL_KN_CHIKA 290 +#define BUILD_MODEL_A13_ANEMO 291 +#define BUILD_MODEL_NBC_H01 292 +#define BUILD_MODEL_NBC_MSEM 293 +#define BUILD_MODEL_NBC_GYM 294 +#define BUILD_MODEL_SE_PALPARK 295 +#define BUILD_MODEL_UZU_TAKI 296 +#define BUILD_MODEL_SK_H01 297 +#define BUILD_MODEL_SK_H02 298 +#define BUILD_MODEL_SK_H03 299 +#define BUILD_MODEL_SK_GYM 300 +#define BUILD_MODEL_NBC_DR1 301 +#define BUILD_MODEL_CL_SLHT 302 +#define BUILD_MODEL_CL_STBG 303 +#define BUILD_MODEL_OBJ_HOSZ 304 +#define BUILD_MODEL_OBJ_LGSZ 305 +#define BUILD_MODEL_SK_DOOR1 306 +#define BUILD_MODEL_SK_DOOR2 307 +#define BUILD_MODEL_KN_GATE_L 308 +#define BUILD_MODEL_KN_GATE_R 309 +#define BUILD_MODEL_MST_DR1 310 +#define BUILD_MODEL_MST_DR2 311 +#define BUILD_MODEL_MST_GRH 312 +#define BUILD_MODEL_MST_RDH 313 +#define BUILD_MODEL_MST_OKL 314 +#define BUILD_MODEL_TO_H01 315 +#define BUILD_MODEL_TO_H02 316 +#define BUILD_MODEL_TO_TRAINER 317 +#define BUILD_MODEL_TO_GYM 318 +#define BUILD_MODEL_DSM_FAL1 319 +#define BUILD_MODEL_DSM_FAL2 320 +#define BUILD_MODEL_DSM_BG1 321 +#define BUILD_MODEL_O_MOON 322 +#define BUILD_MODEL_FALL_FUTAGO 323 +#define BUILD_MODEL_MD52K_01 324 +#define BUILD_MODEL_MD52G_01 325 +#define BUILD_MODEL_MD52R_01 326 +#define BUILD_MODEL_TAFL_LIGHT 327 +#define BUILD_MODEL_MSP_F 328 +#define BUILD_MODEL_TKWA_SL 329 +#define BUILD_MODEL_YMBK_SL 330 +#define BUILD_MODEL_HNDA_SL 331 +#define BUILD_MODEL_TMMS_SL 332 +#define BUILD_MODEL_SKTK_SL 333 +#define BUILD_MODEL_NIBI_SL 334 +#define BUILD_MODEL_SINTO_H01 335 +#define BUILD_MODEL_SINTO_DOOR1 336 +#define BUILD_MODEL_MS01_P01 337 +#define BUILD_MODEL_RADIO 338 +#define BUILD_MODEL_KN_CHIKA_X 339 + +#endif // GUARD_POKEHEARTGOLD_CONSTANTS_BUILDMODEL_H diff --git a/include/constants/flags.h b/include/constants/flags.h index fc8459fe11..22ee8ff77f 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1739,8 +1739,8 @@ #define FLAG_SYS_CIANWOOD_WATERFALL_DISABLE 0x981 #define FLAG_UNK_982 0x982 #define FLAG_SYS_HATCHED_TOGEPI_EGG 0x983 -#define FLAG_UNK_984 0x984 -#define FLAG_UNK_985 0x985 +#define FLAG_SYS_GOT_BIKE_SHOP_CALL 0x984 +#define FLAG_SYS_GOT_BILL_PC_FULL_CALL 0x985 #define FLAG_SYS_MOMS_SAVINGS 0x986 #define FLAG_SYS_OAK_ACKNOWLEDGED_JOHTO_DEX_COMPLETION 0x987 #define FLAG_SYS_OAK_ACKNOWLEDGED_NATIONAL_DEX_COMPLETION 0x988 @@ -1753,7 +1753,7 @@ #define FLAG_UNK_98F 0x98F #define FLAG_UNK_990 0x990 #define FLAG_UNK_991 0x991 -#define FLAG_UNK_992 0x992 +#define FLAG_SYS_TRIGGER_EGG_CALL 0x992 #define FLAG_BUG_CONTEST_ACTIVE 0x993 #define FLAG_UNK_994 0x994 #define FLAG_UNK_995 0x995 @@ -1765,7 +1765,7 @@ #define FLAG_ROCKET_TAKEOVER_ACTIVE 0x99B #define FLAG_UNK_99C 0x99C #define FLAG_UNK_99D 0x99D -#define FLAG_UNK_99E 0x99E +#define FLAG_SYS_SUBSCRIBED_TO_EGG_CALLS 0x99E #define FLAG_UNK_99F 0x99F #define FLAG_UNK_9A0 0x9A0 #define FLAG_UNK_9A1 0x9A1 diff --git a/include/constants/phone_constants.h b/include/constants/phone_constants.h new file mode 100644 index 0000000000..3162e15d7d --- /dev/null +++ b/include/constants/phone_constants.h @@ -0,0 +1,19 @@ +#ifndef GUARD_POKEHEARTGOLD_CONSTANTS_PHONE_CONSTANTS_H +#define GUARD_POKEHEARTGOLD_CONSTANTS_PHONE_CONSTANTS_H + +#define CALL_TRIGGER_ELM_EGG_HATCHED 0 +#define CALL_TRIGGER_ELM_POKERUS 1 +#define CALL_TRIGGER_BIKE_SHOP_STEPS 2 +#define CALL_TRIGGER_BILL_PC_FULL 3 +#define CALL_TRIGGER_OAK_DEX_PROGRESS 4 +#define CALL_TRIGGER_DAYCARE_HAS_EGG 5 +#define CALL_TRIGGER_BAOBA_NEW_POKEMON 6 +#define CALL_TRIGGER_BAOBA_NEXT_TEST 7 +#define CALL_TRIGGER_BAOBA_OBJECT_ARRANGEMENT 8 +#define CALL_TRIGGER_BAOBA_MORE_OBJECTS 9 +#define CALL_TRIGGER_BAOBA_EVEN_MORE_OBJECTS 10 +#define CALL_TRIGGER_BAOBA_MEMORY_LOSS 11 +#define CALL_TRIGGER_MOM_BOUGHT_SOMETHING 12 +#define NUM_CALL_TRIGGERS 13 + +#endif // GUARD_POKEHEARTGOLD_CONSTANTS_PHONE_CONSTANTS_H diff --git a/include/constants/safari.h b/include/constants/safari.h new file mode 100644 index 0000000000..5533081a8b --- /dev/null +++ b/include/constants/safari.h @@ -0,0 +1,58 @@ +#ifndef GUARD_POKEHEARTGOLD_CONSTANTS_SAFARI_H +#define GUARD_POKEHEARTGOLD_CONSTANTS_SAFARI_H + +#define SAFARI_ZONE_MAX_OBJECTS 30 +#define SAFARI_ZONE_AREA_SET_COLS 3 +#define SAFARI_ZONE_AREA_SET_ROWS 2 +#define SAFARI_ZONE_MAX_AREAS_PER_SET (SAFARI_ZONE_AREA_SET_COLS * SAFARI_ZONE_AREA_SET_ROWS) +#define SAFARI_ZONE_MAX_AREA_SETS 2 + +#define SAFARI_ZONE_AREA_PLAINS 0 +#define SAFARI_ZONE_AREA_MEADOW 1 +#define SAFARI_ZONE_AREA_SAVANNAH 2 +#define SAFARI_ZONE_AREA_PEAK 3 +#define SAFARI_ZONE_AREA_ROCKY_BEACH 4 +#define SAFARI_ZONE_AREA_WETLAND 5 +#define SAFARI_ZONE_AREA_FOREST 6 +#define SAFARI_ZONE_AREA_SWAMP 7 +#define SAFARI_ZONE_AREA_MARSHLAND 8 +#define SAFARI_ZONE_AREA_WASTELAND 9 +#define SAFARI_ZONE_AREA_MOUNTAIN 10 +#define SAFARI_ZONE_AREA_DESERT 11 +#define NUM_SAFARI_ZONE_AREAS 12 + +#define SAFARI_ZONE_OBJECT_TYPE_NONE 0 +#define SAFARI_ZONE_OBJECT_TYPE_PLAINS 1 +#define SAFARI_ZONE_OBJECT_TYPE_FOREST 2 +#define SAFARI_ZONE_OBJECT_TYPE_PEAK 3 +#define SAFARI_ZONE_OBJECT_TYPE_WATER 4 + +#define SAFARI_ZONE_OBJECTID_SHRUBBERY 0 +#define SAFARI_ZONE_OBJECTID_RED_FLOWER 1 +#define SAFARI_ZONE_OBJECTID_WHITE_FLOWER 2 +#define SAFARI_ZONE_OBJECTID_TREE 3 +#define SAFARI_ZONE_OBJECTID_STUMP 4 +#define SAFARI_ZONE_OBJECTID_BRANCHES 5 +#define SAFARI_ZONE_OBJECTID_SMALL_ROCK 6 +#define SAFARI_ZONE_OBJECTID_BIG_ROCK 7 +#define SAFARI_ZONE_OBJECTID_MOSSY_ROCK 8 +#define SAFARI_ZONE_OBJECTID_PUDDLE 9 +#define SAFARI_ZONE_OBJECTID_FOUNTAIN 10 +#define SAFARI_ZONE_OBJECTID_WATER_HOLE 11 +#define SAFARI_ZONE_OBJECTID_BENCH 12 +#define SAFARI_ZONE_OBJECTID_SHORT_FENCE1 13 +#define SAFARI_ZONE_OBJECTID_SHORT_FENCE2 14 +#define SAFARI_ZONE_OBJECTID_LONG_FENCE1 15 +#define SAFARI_ZONE_OBJECTID_LONG_FENCE2 16 +#define SAFARI_ZONE_OBJECTID_SIGNBOARD 17 +#define SAFARI_ZONE_OBJECTID_YOUR_STATUE 18 +#define SAFARI_ZONE_OBJECTID_YOUR_FLAG 19 +#define SAFARI_ZONE_OBJECTID_OUTSIDE_LAMP 20 +#define SAFARI_ZONE_OBJECTID_GUIDEPOST_R_ 21 +#define SAFARI_ZONE_OBJECTID_GUIDEPOST_L_ 22 +#define SAFARI_ZONE_OBJECTID_TRASH_CAN 23 +#define NUM_SAFARI_ZONE_OBJECT_IDS 24 + +#define NUM_ENCOUNTERS_SAFARI 10 + +#endif // GUARD_POKEHEARTGOLD_CONSTANTS_SAFARI_H diff --git a/include/constants/scrcmd.h b/include/constants/scrcmd.h index e99374fda8..65c99ca5cc 100644 --- a/include/constants/scrcmd.h +++ b/include/constants/scrcmd.h @@ -8,10 +8,12 @@ #include "constants/game_stats.h" #include "constants/global.h" #include "constants/global_fieldmap.h" +#include "constants/init_script_types.h" #include "constants/items.h" #include "constants/maps.h" #include "constants/movements.h" #include "constants/moves.h" +#include "constants/phone_constants.h" #include "constants/phone_contacts.h" #include "constants/pokemon.h" #include "constants/ranking.h" @@ -23,7 +25,6 @@ #include "constants/std_script.h" #include "constants/trainers.h" #include "constants/vars.h" -#include "constants/init_script_types.h" #define lt 0 #define eq 1 diff --git a/include/field_system.h b/include/field_system.h index 3fcc3a6fec..61174eb6c1 100644 --- a/include/field_system.h +++ b/include/field_system.h @@ -52,7 +52,7 @@ struct GearPhoneRingManager { u8 isScriptedCall; u8 callScriptID; u8 unk_arr5[2]; - u8 unk_var7; + u8 callTriggerID; s32 unk_var8; s32 unk_varC; u16 maxActiveDuration; diff --git a/include/overlay_00_thumb.h b/include/overlay_00_thumb.h index 74804050ac..320f2535a4 100644 --- a/include/overlay_00_thumb.h +++ b/include/overlay_00_thumb.h @@ -6,10 +6,10 @@ int ov00_021E6EBC(void); void ov00_021E7220(s32); s32 ov00_021E70F4(void); void ov00_021E7130(void); -void ov00_021E5CA0(void*, void*); +void ov00_021E5CA0(void *, void *); void ov00_021E6A4C(void); void ov00_021E69A8(s32); -void ov00_021E6D60(void*, s32); +void ov00_021E6D60(void *, s32); void ov00_021E70B8(u8); void ov00_021EC454(s32); diff --git a/include/overlay_2/overlay_02_gear_phone.h b/include/overlay_2/overlay_02_gear_phone.h index ba2bd5f0d5..fce7052abf 100644 --- a/include/overlay_2/overlay_02_gear_phone.h +++ b/include/overlay_2/overlay_02_gear_phone.h @@ -1,6 +1,8 @@ #ifndef POKEHEARTGOLD_OVERLAY_02_GEAR_PHONE_H #define POKEHEARTGOLD_OVERLAY_02_GEAR_PHONE_H +#include "constants/phone_constants.h" + #include "field_system.h" #include "unk_02092BE8.h" diff --git a/include/overlay_42.h b/include/overlay_42.h index 22c62bc4be..13f137e8fe 100644 --- a/include/overlay_42.h +++ b/include/overlay_42.h @@ -1,11 +1,13 @@ #ifndef POKEHEARTGOLD_OVY_42_H #define POKEHEARTGOLD_OVY_42_H +#include "unk_02009D48.h" + u32 ov42_02229248(u32 a0); void ov42_022291AC(u32 a0); void ov42_022291B8(u32 a0); void ov42_0222919C(u32 a0, u32 a1); -void ov42_022291A0(u32 a0); +void ov42_022291A0(u32 a0); void ov42_02229200(u32 a0, u32 a1); s32 ov42_02228188(u32 a0, u32 a1); void ov42_0222901C(u32 a0); @@ -14,10 +16,10 @@ void ov42_0222807C(u32 a0); u32 ov42_0222903C(u32 a0, u32 a1, u32 a2, enum HeapID heapID); void ov42_02228FE0(u32 a0, u32 a1, u32 a2, enum HeapID heapID); s32 ov42_02229010(u32 a0, u32 a1); -s32 ov42_022280B8(u32 a0, u16* a1); +s32 ov42_022280B8(u32 a0, u16 *a1); void ov42_02228F94(u32 a0); void ov42_02228050(u32 a0); -u32 ov42_02228EDC(SpriteList* spriteList, u32 a1, u32 a2, u32 a3, enum HeapID heapID); +u32 ov42_02228EDC(SpriteList *spriteList, u32 a1, u32 a2, u32 a3, enum HeapID heapID); u32 ov42_02228010(u32 a0, enum HeapID heapID); #endif // POKEHEARTGOLD_OVY_42_H diff --git a/include/overlay_44.h b/include/overlay_44.h index 9bec719dc9..2f20a844fc 100644 --- a/include/overlay_44.h +++ b/include/overlay_44.h @@ -2,9 +2,10 @@ #define POKEHEARTGOLD_OVY_44_H #include "global.h" + #include "heap.h" -#include "main.h" #include "list_menu_2d.h" +#include "main.h" #include "render_window.h" #include "unk_02009D48.h" @@ -24,7 +25,7 @@ typedef struct UnkStruct_ov44_args { u8 unk5; u8 unk6; u8 unk7; - SaveData* unk8; + SaveData *unk8; } UnkStruct_ov44_args; typedef struct UnkStruct_ov44_022345FC { @@ -33,33 +34,33 @@ typedef struct UnkStruct_ov44_022345FC { } UnkStruct_ov44_022345FC; typedef struct UnkStruct_ov44_02232F64 { - BgConfig* bgConfig; - MessageFormat* msgFmt; - MsgData* msgData; - String* string1; - String* string2; + BgConfig *bgConfig; + MessageFormat *msgFmt; + MsgData *msgData; + String *string1; + String *string2; u8 printerId; u8 unk15; u16 textFrameDelay; - SpriteList* spriteList; // 0x18 + SpriteList *spriteList; // 0x18 G2dRenderer g2dRenderer; - GF_2DGfxResMan* gf2DGfxResManList[4]; + GF_2DGfxResMan *gf2DGfxResManList[4]; u32 unk154; u32 unk158; UnkStruct_ov44_022341C0 unk15C[4]; Window windowList[5]; // 0x18C - 0x1DC - struct ListMenu2D* listMenu2D; - void* scrnDataRaw; - NNSG2dScreenData* scrnData; - WaitingIcon* waitingIcon; //0x218; - void* plttDataRaw; - NNSG2dPaletteData* plttData; + struct ListMenu2D *listMenu2D; + void *scrnDataRaw; + NNSG2dScreenData *scrnData; + WaitingIcon *waitingIcon; // 0x218; + void *plttDataRaw; + NNSG2dPaletteData *plttData; s16 unk1F4; s16 unk1F6; } UnkStruct_ov44_02232F64; typedef struct UnkStruct_ov44_02235340 { - u8* unk0; + u8 *unk0; u8 unk4; u8 unk5; u8 unk6; @@ -84,144 +85,144 @@ typedef struct UnkStruct_ov44_02235340 { UnkStruct_ov44_02232F64 unk30; } UnkStruct_ov44_02235340; -typedef void (*func_type_022341C0)(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); -typedef s32 (*func_type_02232F64)(UnkStruct_ov44_02235340*, UnkStruct_ov44_args*, enum HeapID); +typedef void (*func_type_022341C0)(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1); +typedef s32 (*func_type_02232F64)(UnkStruct_ov44_02235340 *, UnkStruct_ov44_args *, enum HeapID); -void ov44_02232EA8(OverlayManager* overlayMananger); -s32 ov44_02232F64(OverlayManager* overlayManager, u32* arg1); -s32 ov44_022330A8(OverlayManager* arg0); -void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1); -void ov44_02233160(UnkStruct_ov44_02235340* arg0); -void ov44_0223317C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1); +void ov44_02232EA8(OverlayManager *overlayMananger); +s32 ov44_02232F64(OverlayManager *overlayManager, u32 *arg1); +s32 ov44_022330A8(OverlayManager *arg0); +void ov44_02233100(UnkStruct_ov44_02235340 *arg0, String *arg1); +void ov44_02233160(UnkStruct_ov44_02235340 *arg0); +void ov44_0223317C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1); // The following functions are likely static -s32 ov44_02234F60(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void ov44_0223319C(UnkStruct_ov44_02235340* arg0); -s32 ov44_022331B0(UnkStruct_ov44_02235340* arg0); -void ov44_022331C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void FreeStructOv44_02235340(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); +s32 ov44_02234F60(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void ov44_0223319C(UnkStruct_ov44_02235340 *arg0); +s32 ov44_022331B0(UnkStruct_ov44_02235340 *arg0); +void ov44_022331C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void FreeStructOv44_02235340(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID); void ov44_0223323C(void); -void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); -void FreeBgAndScreenData(UnkStruct_ov44_02232F64* arg0); -void InitWindowList(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void FreeWindowList(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); -void InitStringAndMsgData(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void FreeStringAndMsgData(UnkStruct_ov44_02232F64* arg0); -void ov44_02233698(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); -void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0); -void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, enum HeapID heapID); -void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, s32 arg3, enum HeapID heapID); -s32 ov44_02233914(UnkStruct_ov44_02232F64* arg0); -void ov44_02233954(UnkStruct_ov44_02232F64* arg0); -void ov44_0223398C(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID); -void ov44_02233A34(UnkStruct_ov44_02232F64* arg0); -void ov44_02233A50(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void ov44_02233AB8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_02232F64* arg1, UnkStruct_ov44_args* arg2, s32 arg3, enum HeapID heapID); -void ov44_02233C18(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID); -void ov44_02233C88(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID); -void ov44_02233CA0(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID); -void ov44_02233CCC(UnkStruct_ov44_02232F64* arg0); -void ov44_02233D08(UnkStruct_ov44_02232F64* arg0, s32 arg1); -u8 ov44_02233D38(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); -void ov44_02233D8C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void ov44_02233E48(UnkStruct_ov44_02235340* arg0); -s32 ov44_02233E6C(UnkStruct_ov44_02235340* arg0); +void InitBgAndScrnData(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID); +void FreeBgAndScreenData(UnkStruct_ov44_02232F64 *arg0); +void InitWindowList(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void FreeWindowList(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID); +void InitStringAndMsgData(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void FreeStringAndMsgData(UnkStruct_ov44_02232F64 *arg0); +void ov44_02233698(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID); +void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64 *arg0); +void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 strno, enum HeapID heapID); +void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 strno, s32 arg3, enum HeapID heapID); +s32 ov44_02233914(UnkStruct_ov44_02232F64 *arg0); +void ov44_02233954(UnkStruct_ov44_02232F64 *arg0); +void ov44_0223398C(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, enum HeapID heapID); +void ov44_02233A34(UnkStruct_ov44_02232F64 *arg0); +void ov44_02233A50(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void ov44_02233AB8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_02232F64 *arg1, UnkStruct_ov44_args *arg2, s32 arg3, enum HeapID heapID); +void ov44_02233C18(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, enum HeapID heapID); +void ov44_02233C88(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, s32 arg3, enum HeapID heapID); +void ov44_02233CA0(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, s32 arg3, enum HeapID heapID); +void ov44_02233CCC(UnkStruct_ov44_02232F64 *arg0); +void ov44_02233D08(UnkStruct_ov44_02232F64 *arg0, s32 arg1); +u8 ov44_02233D38(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID); +void ov44_02233D8C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void ov44_02233E48(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02233E6C(UnkStruct_ov44_02235340 *arg0); s32 ov44_02233E80(u32 arg0, u32 arg1); -void ov44_02233EB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1); -s32 ov44_02233EF8(UnkStruct_ov44_02235340* arg0); -s32 ov44_02233F20(UnkStruct_ov44_02235340* arg0); -void ov44_02233F3C(UnkStruct_ov44_02235340* arg0); -void ov44_02233F50(UnkStruct_ov44_02235340* arg0); -s32 ov44_02233F64(UnkStruct_ov44_02235340* arg0); -s32 ov44_02233F6C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); -void ov44_02233FA8(UnkStruct_ov44_02235340* arg0); -void ov44_02233FE8(UnkStruct_ov44_02235340* arg0); -void ov44_02234028(UnkStruct_ov44_02235340* arg0); -void ov44_02234038(UnkStruct_ov44_02235340* arg0); -s32 ov44_02234044(UnkStruct_ov44_02235340* arg0); -void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340* arg1, s32 arg2); -s32 ov44_0223407C(UnkStruct_ov44_02235340* arg0); -void ov44_022340B4(UnkStruct_ov44_02235340* arg0); -void ov44_022340BC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID); -void ov44_022340EC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID); -void ov44_022341C0(UnkStruct_ov44_02235340* arg0); -void ov44_02234204(UnkStruct_ov44_02235340* arg0); -void ov44_02234224(UnkStruct_ov44_02235340* arg0, s32 arg1); -void ov44_02234248(UnkStruct_ov44_02235340* arg0); -void ov44_0223427C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); -void ov44_022342B8(UnkStruct_ov44_02235340* arg0); -void ov44_022342E0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -void ov44_02234324(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); -void ov44_02234328(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); -void ov44_0223435C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); -void ov44_02234388(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); -void ov44_0223438C(UnkStruct_ov44_02235340* arg0); -int ov44_0223442C(UnkStruct_ov44_02235340* arg0); -void ov44_02234440(UnkStruct_ov44_02235340* arg0); -void ov44_02234450(UnkStruct_ov44_02235340* arg0); -s32 ov44_02234458(UnkStruct_ov44_02235340* arg0); -s32 ov44_02234474(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022344C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022345C8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022345FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022346B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022346E8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_0223471C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234764(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_0223479C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022347D4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022347FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234828(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022348A8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022348C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234904(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234944(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022349B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022349F4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234A68(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234AA8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234B18(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234B80(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234BB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234BF0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234C10(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234C88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234CE8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234D28(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234D4C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234D88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234DE4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234E08(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234EA4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234EF4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234F44(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234F88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02234FDC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235038(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235090(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235100(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235158(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_0223518C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022351BC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_022351DC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235218(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235268(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_0223532C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); -s32 ov44_02235340(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void ov44_02233EB4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1); +s32 ov44_02233EF8(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02233F20(UnkStruct_ov44_02235340 *arg0); +void ov44_02233F3C(UnkStruct_ov44_02235340 *arg0); +void ov44_02233F50(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02233F64(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02233F6C(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID); +void ov44_02233FA8(UnkStruct_ov44_02235340 *arg0); +void ov44_02233FE8(UnkStruct_ov44_02235340 *arg0); +void ov44_02234028(UnkStruct_ov44_02235340 *arg0); +void ov44_02234038(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02234044(UnkStruct_ov44_02235340 *arg0); +void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340 *arg1, s32 arg2); +s32 ov44_0223407C(UnkStruct_ov44_02235340 *arg0); +void ov44_022340B4(UnkStruct_ov44_02235340 *arg0); +void ov44_022340BC(UnkStruct_ov44_02235340 *arg0, s32 arg1, enum HeapID heapID); +void ov44_022340EC(UnkStruct_ov44_02235340 *arg0, s32 arg1, enum HeapID heapID); +void ov44_022341C0(UnkStruct_ov44_02235340 *arg0); +void ov44_02234204(UnkStruct_ov44_02235340 *arg0); +void ov44_02234224(UnkStruct_ov44_02235340 *arg0, s32 arg1); +void ov44_02234248(UnkStruct_ov44_02235340 *arg0); +void ov44_0223427C(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID); +void ov44_022342B8(UnkStruct_ov44_02235340 *arg0); +void ov44_022342E0(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +void ov44_02234324(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1); +void ov44_02234328(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1); +void ov44_0223435C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1); +void ov44_02234388(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1); +void ov44_0223438C(UnkStruct_ov44_02235340 *arg0); +int ov44_0223442C(UnkStruct_ov44_02235340 *arg0); +void ov44_02234440(UnkStruct_ov44_02235340 *arg0); +void ov44_02234450(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02234458(UnkStruct_ov44_02235340 *arg0); +s32 ov44_02234474(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022344C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022345C8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022345FC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022346B4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022346E8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_0223471C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234764(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_0223479C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022347D4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022347FC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234828(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234858(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022348A8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022348C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234904(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234944(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022349B4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022349F4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234A68(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234AA8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234B18(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234B80(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234BB4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234BF0(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234C10(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234C88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234CE8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234D28(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234D4C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234D88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234DE4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234E08(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234EA4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234EF4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234F44(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234F88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02234FDC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235038(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235090(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235100(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235158(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_0223518C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022351BC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_022351DC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235218(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235268(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_0223532C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); +s32 ov44_02235340(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID); #endif // POKEHEARTGOLD_OVY_44_H diff --git a/include/pokeathlon/pokeathlon.h b/include/pokeathlon/pokeathlon.h index 0b106faa5a..a6f8434a09 100644 --- a/include/pokeathlon/pokeathlon.h +++ b/include/pokeathlon/pokeathlon.h @@ -62,7 +62,7 @@ typedef enum PokeathlonCourseMainState { // State machine structure (overlays stateArgsPtr at 0x3B4) // This struct maps to a u32 array view for code generation compatibility typedef struct PokeathlonCourseState { - PokeathlonStateInfo *argsPtr; // [0] 0x3B4 - Pointer to state data pointer + PokeathlonStateInfo *argsPtr; // [0] 0x3B4 - Pointer to state data pointer u32 transitionType; // [1] 0x3B8 - Transition type (0x10 = exit) u32 mainState; // [2] 0x3BC - Main state machine state u32 exitFlag; // [3] 0x3C0 - Exit flag @@ -182,12 +182,12 @@ void *PokeathlonCourse_GetGraphicsSystem(PokeathlonCourseData *data); // Internal overlay 96 functions (stubs for now, in assembly) void ov96_021E67AC(PokeathlonCourseData *data); -void ov96_021E75BC(void*); +void ov96_021E75BC(void *); void ov96_021E7F98(s32 frameCount, u32 maxValue, Pokeathlon_UnkSubStruct_B00 *result); void *ov96_021E8770(int a0, int a1, PokeathlonCourseData *data, int a3, enum HeapID heapId); void ov96_021E87B4(int a0, void *a1, void *a2, int a3); void ov96_021E8810(void *ptr); -BOOL ov96_021E8828(void*); +BOOL ov96_021E8828(void *); u8 *ov96_021E8A20(void *ptr); int ov96_021E8A24(void); int ov96_021E8A2C(void); diff --git a/include/safari_zone.h b/include/safari_zone.h index b485062a4b..a87a7605da 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -1,31 +1,12 @@ #ifndef POKEHEARTGOLD_SAFARI_ZONE_H #define POKEHEARTGOLD_SAFARI_ZONE_H +#include "constants/safari.h" + #include "igt.h" #include "player_data.h" #include "save.h" -#define SAFARI_ZONE_MAX_OBJECTS 30 -#define SAFARI_ZONE_AREA_SET_COLS 3 -#define SAFARI_ZONE_AREA_SET_ROWS 2 -#define SAFARI_ZONE_MAX_AREAS_PER_SET (SAFARI_ZONE_AREA_SET_COLS * SAFARI_ZONE_AREA_SET_ROWS) -#define SAFARI_ZONE_MAX_AREA_SETS 2 - -#define SAFARI_ZONE_AREA_PLAINS 0 -#define SAFARI_ZONE_AREA_MEADOW 1 -#define SAFARI_ZONE_AREA_SAVANNAH 2 -#define SAFARI_ZONE_AREA_PEAK 3 -#define SAFARI_ZONE_AREA_ROCKY_BEACH 4 -#define SAFARI_ZONE_AREA_WETLAND 5 -#define SAFARI_ZONE_AREA_FOREST 6 -#define SAFARI_ZONE_AREA_SWAMP 7 -#define SAFARI_ZONE_AREA_MARSHLAND 8 -#define SAFARI_ZONE_AREA_WASTELAND 9 -#define SAFARI_ZONE_AREA_MOUNTAIN 10 -#define SAFARI_ZONE_AREA_DESERT 11 - -#define NUM_ENCOUNTERS_SAFARI 10 - typedef struct SAFARIZONE_OBJECT { u8 unk[4]; } SAFARIZONE_OBJECT; @@ -36,10 +17,10 @@ typedef struct SAFARIZONE_AREA { SAFARIZONE_OBJECT objects[SAFARI_ZONE_MAX_OBJECTS]; } SAFARIZONE_AREA; -typedef struct SAFARIZONE_AREASET { +typedef struct SafariZoneAreaSet { SAFARIZONE_AREA areas[SAFARI_ZONE_MAX_AREAS_PER_SET]; - u8 unk2DC[12]; -} SAFARIZONE_AREASET; + u8 areaLevels[NUM_SAFARI_ZONE_AREAS]; +} SafariZoneAreaSet; typedef struct SAFARIZONE_LINKLEADER { s64 received_timestamp; @@ -53,7 +34,7 @@ typedef struct SAFARIZONE_LINKLEADER { } SAFARIZONE_LINKLEADER; typedef struct SafariZone { - SAFARIZONE_AREASET area_sets[SAFARI_ZONE_MAX_AREA_SETS]; + SafariZoneAreaSet area_sets[SAFARI_ZONE_MAX_AREA_SETS]; SAFARIZONE_LINKLEADER link_leader; u8 unk5F8; u8 objectUnlockLevel : 6; @@ -64,15 +45,15 @@ typedef struct SafariZone { u32 Save_SafariZone_sizeof(void); SafariZone *Save_SafariZone_Get(SaveData *saveData); void Save_SafariZone_Init(SafariZone *safari_zone); -void SafariZone_ResetAreaSetToDefaultSet(SAFARIZONE_AREASET *area_set, u32 default_set_no); +void SafariZone_ResetAreaSetToDefaultSet(SafariZoneAreaSet *area_set, u32 default_set_no); void sub_0202F5F8(SafariZone *safari_zone, s32 areaSetNo); u8 sub_0202F620(SafariZone *safari_zone); -SAFARIZONE_AREASET *SafariZone_GetAreaSet(SafariZone *safari_zone, s32 area_set_no); -void SafariZone_CopyAreaSet(SafariZone *safari_zone, s32 area_set_no, SAFARIZONE_AREASET *area_set_dest); -void SafariZone_SetAreaSet(SafariZone *safari_zone, s32 area_set_no, SAFARIZONE_AREASET *area_set_src); -void sub_0202F6A0(SafariZone *safari_zone, u8 a1); -u8 sub_0202F6AC(SafariZone *safari_zone); -void sub_0202F6B8(SAFARIZONE_AREASET *area_set, s32 a1); +SafariZoneAreaSet *SafariZone_GetAreaSet(SafariZone *safari_zone, s32 area_set_no); +void SafariZone_CopyAreaSet(SafariZone *safari_zone, s32 area_set_no, SafariZoneAreaSet *area_set_dest); +void SafariZone_SetAreaSet(SafariZone *safari_zone, s32 area_set_no, SafariZoneAreaSet *area_set_src); +void SafariZone_SetLevel(SafariZone *safari_zone, u8 a1); +u8 SafariZone_GetLevel(SafariZone *safari_zone); +void SafariZone_AddToAllAreaLevels(SafariZone *safariZone, s32 a1); u8 SafariZone_GetObjectUnlockLevel(SafariZone *safari_zone); u8 SafariZone_IncObjectUnlockLevel(SafariZone *safari_zone, s32 a1); void SafariZone_SetObjectUnlockLevel(SafariZone *safari_zone, u8 a1); @@ -83,11 +64,11 @@ void SafariZone_GetLinkLeaderToProfile(SafariZone *safari_zone, PlayerProfile *p u8 SafariZone_GetLinkLeaderGender(SafariZone *safari_zone); u8 SafariZone_IsCurrentlyLinked(SafariZone *safari_zone); void SafariZone_DeactivateLinkIfExpired(SafariZone *safari_zone); -void SafariZone_SwapAreasInSet(SAFARIZONE_AREASET *area_set, u32 first, u32 second); -void SafariZone_InitAreaInSet(SAFARIZONE_AREASET *area_set, s32 area_idx, u32 area_no); -void SafariZone_AddObjectToArea(SAFARIZONE_AREASET *area_set, s32 area_idx, const SAFARIZONE_OBJECT *object); -void SafariZone_RemoveObjectFromArea(SAFARIZONE_AREASET *area_set, s32 area_idx, s32 object_idx); -void SafariZone_InitAreaSet(SAFARIZONE_AREASET *area_set); +void SafariZone_SwapAreasInSet(SafariZoneAreaSet *area_set, u32 first, u32 second); +void SafariZone_InitAreaInSet(SafariZoneAreaSet *area_set, s32 area_idx, u32 area_no); +void SafariZone_AddObjectToArea(SafariZoneAreaSet *area_set, s32 area_idx, const SAFARIZONE_OBJECT *object); +void SafariZone_RemoveObjectFromArea(SafariZoneAreaSet *area_set, s32 area_idx, s32 object_idx); +void SafariZone_InitAreaSet(SafariZoneAreaSet *area_set); void SafariZone_InitArea(SAFARIZONE_AREA *area, u8 area_no); void SafariZone_ClearObject(SAFARIZONE_OBJECT *object); void SafariZone_ClearLeader(SAFARIZONE_LINKLEADER *link_leader); diff --git a/include/save_pokegear.h b/include/save_pokegear.h index 38540ba02f..76b99aa60e 100644 --- a/include/save_pokegear.h +++ b/include/save_pokegear.h @@ -34,7 +34,7 @@ typedef struct PhoneCallPersistentState { u8 kenjiActive : 1; u8 numSafariAreas; u8 safariAreas[6]; - u8 unk_14E[2]; + u8 callTriggerFlags[2]; u8 filler_150[4]; } PhoneCallPersistentState; // size=0x154 @@ -82,9 +82,9 @@ void SavePokegear_RegisterPhoneNumber(SavePokegear *pokegear, u8 contact); PhoneContact *SavePokegear_AllocAndCopyPhonebook(SavePokegear *pokegear, enum HeapID heapID); void SavePokegear_SetPhonebookFromBuffer(SavePokegear *pokegear, PhoneContact *contacts, u8 num); -void sub_0202F01C(PhoneCallPersistentState *callPersistentState, u8 idx); -void sub_0202F050(PhoneCallPersistentState *callPersistentState, u8 idx); -BOOL sub_0202F08C(PhoneCallPersistentState *callPersistentState, u8 idx); +void PhoneCallPersistentState_SetCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx); +void PhoneCallPersistentState_ClearCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx); +BOOL PhoneCallPersistentState_CheckCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx); void PhoneCallPersistentState_PhoneRematches_SetSeeking(PhoneCallPersistentState *callPersistentState, u8 idx, BOOL state); BOOL PhoneCallPersistentState_PhoneRematches_IsSeeking(PhoneCallPersistentState *callPersistentState, u8 idx); void PhoneCallPersistentState_PhoneRematches_GiftItemIdSet(PhoneCallPersistentState *callPersistentState, u8 idx, u16 itemId); diff --git a/include/scrcmd.h b/include/scrcmd.h index b88e86e2a0..c4aba15bb3 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -174,7 +174,7 @@ BOOL ScrCmd_RegisterPokegearCard(ScriptContext *ctx); BOOL ScrCmd_RegisterGearNumber(ScriptContext *ctx); BOOL ScrCmd_CheckRegisteredPhoneNumber(ScriptContext *ctx); BOOL ScrCmd_148(ScriptContext *ctx); -BOOL ScrCmd_149(ScriptContext *ctx); +BOOL UnsetPhoneCallTrigger(ScriptContext *ctx); BOOL ScrCmd_RestoreOverworld(ScriptContext *ctx); BOOL ScrCmd_151(ScriptContext *ctx); BOOL ScrCmd_152(ScriptContext *ctx); diff --git a/include/terrain_attributes.h b/include/terrain_attributes.h index 61c057e9f3..8c0568199c 100644 --- a/include/terrain_attributes.h +++ b/include/terrain_attributes.h @@ -2,11 +2,12 @@ #define POKEHEARTGOLD_TERRAIN_ATTRIBUTES_H #include "global.h" -#include "script.h" + #include "field_types_def.h" +#include "script.h" -#define MAP_TILES_COUNT_X 32 -#define MAP_TILES_COUNT_Z 32 +#define MAP_TILES_COUNT_X 32 +#define MAP_TILES_COUNT_Z 32 #define TERRAIN_ATTRIBUTES_OFFSET 0x14 // was 0x10 in platinum, but is 0x14 in hg/ss #define TERRAIN_ATTRIBUTES_SIZE 0x800 #define TERRAIN_ATTRIBUTES_COUNT (TERRAIN_ATTRIBUTES_SIZE / sizeof(u16)) diff --git a/include/unk_020379A0.h b/include/unk_020379A0.h index 9ae1e18e80..1fcec55b42 100644 --- a/include/unk_020379A0.h +++ b/include/unk_020379A0.h @@ -8,6 +8,6 @@ void sub_02037AC0(u8 a0); BOOL sub_02037B38(u8 a0); void sub_02037BEC(void); u32 sub_02037C0C(u32 a0, u16 *a1); -u16* sub_02037C44(s32 a0); +u16 *sub_02037C44(s32 a0); #endif // POKEHEARTGOLD_UNK_020379A0_H diff --git a/include/unk_02037C94.h b/include/unk_02037C94.h index 3f016f1b62..afaa9ca85a 100644 --- a/include/unk_02037C94.h +++ b/include/unk_02037C94.h @@ -28,6 +28,6 @@ void sub_02039B18(void); void sub_02039AF8(void); s32 sub_02039080(void); s32 sub_02039264(void); -u8* sub_020398C8(void); +u8 *sub_020398C8(void); #endif // POKEHEARTGOLD_UNK_02037C94_H diff --git a/include/unk_02092BE8.h b/include/unk_02092BE8.h index f6c76a8928..f43b1ccb2f 100644 --- a/include/unk_02092BE8.h +++ b/include/unk_02092BE8.h @@ -35,7 +35,7 @@ typedef struct PokegearArgs { typedef struct UnkPokegearstruct_14 { u8 unk_0; u8 unk_1; - u8 unk_2; + u8 callTriggerID; u8 isScriptedCall; u8 callScriptID; } Unk_PokegearSTRUCT_14; diff --git a/include/unk_020971F8.h b/include/unk_020971F8.h index 1986a85b23..c14777e3c9 100644 --- a/include/unk_020971F8.h +++ b/include/unk_020971F8.h @@ -1,7 +1,7 @@ #ifndef POKEHEARTGOLD_UNK_020971F8_H #define POKEHEARTGOLD_UNK_020971F8_H -void sub_020971F8(void*); +void sub_020971F8(void *); void sub_02097214(void); void sub_0209722C(void); void sub_02097230(void); diff --git a/include/unk_02097268.h b/include/unk_02097268.h index 362bcb72a6..747299c95d 100644 --- a/include/unk_02097268.h +++ b/include/unk_02097268.h @@ -10,8 +10,19 @@ #define SAFARI_ENCOUNTER_SLOTS_LAND 0 #define SAFARI_ENCOUNTER_SLOTS_SURFING 1 #define SAFARI_ENCOUNTER_SLOTS_ROD(rod_type) (2 + (rod_type)) +#define NUM_SAFARI_ENCOUNTER_TYPES 5 -void sub_0209730C(SaveData *, int); -EncounterSlot *sub_020974C4(SAFARIZONE_AREASET *areaSet, int area, int encounterType, TimeOfDayWildParam timeOfDay, enum HeapID heapID); +typedef struct SafariObjectConfig { + u8 buildModel; + u8 isAnimated : 1; + u8 width : 3; + u8 height : 3; + u8 hasGenderedLayout : 1; + u8 objectType; +} SafariObjectConfig; + +void GetSafariObjectConfig(SafariObjectConfig *a0, int a1, BOOL a2); +void SaveData_SafariZone_CheckAreasWithUpdatedEncounters(SaveData *saveData, int a1); +EncounterSlot *SafariZoneAreaSet_LoadAreaEncounters(SafariZoneAreaSet *areaSet, int area, int encounterType, TimeOfDayWildParam timeOfDay, enum HeapID heapID); #endif // POKEHEARTGOLD_UNK_02097268_H diff --git a/main.lsf b/main.lsf index f1a0639f9f..25504ae1f1 100644 --- a/main.lsf +++ b/main.lsf @@ -332,7 +332,7 @@ Static main Object asm/unk_02096C88.o Object asm/unk_02097024.o Object asm/unk_020971F8.o - Object asm/unk_02097268.o + Object src/unk_02097268.o Object src/unk_02097720.o Object asm/unk_020977CC.o Object asm/unk_020979A8.o diff --git a/scripts/dump_safari_enc.py b/scripts/dump_safari_enc.py new file mode 100644 index 0000000000..6eab74c601 --- /dev/null +++ b/scripts/dump_safari_enc.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python + +import json +import pathlib +import struct + +project_root = pathlib.Path(__file__).parent.parent +arc_base = project_root / "files" / "arc" / "safari_enc" + +species_names = [] +with (project_root / "include" / "constants" / "species.h").open() as species_h: + for line in species_h: + if line.startswith("#define SPECIES_"): + species_names.append(line.split()[1]) + +safari_zone_area_names = [] +safari_zone_object_type_names = [] +with (project_root / "include" / "constants" / "safari.h").open() as safari_areas_h: + for line in safari_areas_h: + if line.startswith("#define SAFARI_ZONE_AREA_") and not line.startswith( + "#define SAFARI_ZONE_AREA_SET_" + ): + safari_zone_area_names.append(line.split()[1]) + elif line.startswith("#define SAFARI_ZONE_OBJECT_TYPE_"): + safari_zone_object_type_names.append(line.split()[1]) + +encounter_modes = "land", "surf", "oldrod", "goodrod", "superrod" +data = {"encounters": []} +for i, area_name in enumerate(safari_zone_area_names): + cur_map = {"area": area_name} + with (arc_base / f"safari_enc_{i:08d}.bin").open("rb") as fp: + bonus_counts = fp.read(8) + for name, num_bonus in zip(encounter_modes, bonus_counts): + cur_elem = { + "mons": { + "morn": [], + "day": [], + "nite": [], + }, + "bonus_mons": { + "morn": [], + "day": [], + "nite": [], + }, + "bonus_param": [], + } + for time_of_day in "morn", "day", "nite": + for i in range(10): + mon, level = struct.unpack("scriptType = 0; if (state->isIncomingCall) { - if (Save_VarsFlags_CheckFlagInArray(ctx->saveVarsFlags, FLAG_UNK_992)) { + if (Save_VarsFlags_CheckFlagInArray(ctx->saveVarsFlags, FLAG_SYS_TRIGGER_EGG_CALL)) { return PHONE_SCRIPT_096; } else { return PHONE_SCRIPT_095; diff --git a/src/data/fieldmap/script_cmd_table.h b/src/data/fieldmap/script_cmd_table.h index e7df409fbb..258444834e 100644 --- a/src/data/fieldmap/script_cmd_table.h +++ b/src/data/fieldmap/script_cmd_table.h @@ -148,7 +148,7 @@ BOOL ScrCmd_RegisterPokegearCard(ScriptContext *ctx); BOOL ScrCmd_RegisterGearNumber(ScriptContext *ctx); BOOL ScrCmd_CheckRegisteredPhoneNumber(ScriptContext *ctx); BOOL ScrCmd_148(ScriptContext *ctx); -BOOL ScrCmd_149(ScriptContext *ctx); +BOOL UnsetPhoneCallTrigger(ScriptContext *ctx); BOOL ScrCmd_RestoreOverworld(ScriptContext *ctx); BOOL ScrCmd_151(ScriptContext *ctx); BOOL ScrCmd_152(ScriptContext *ctx); @@ -1003,7 +1003,7 @@ const ScrCmdFunc gScriptCmdTable[] = { ScrCmd_RegisterGearNumber, ScrCmd_CheckRegisteredPhoneNumber, ScrCmd_148, - ScrCmd_149, + UnsetPhoneCallTrigger, ScrCmd_RestoreOverworld, ScrCmd_151, ScrCmd_152, diff --git a/src/field/encounter_check.c b/src/field/encounter_check.c index 93e9503ae2..7342ca747e 100644 --- a/src/field/encounter_check.c +++ b/src/field/encounter_check.c @@ -929,7 +929,7 @@ static BOOL FieldSystem_GenerateRegularEncounter(Pokemon *leadMon, int rodType, static BOOL FieldSystem_GenerateSafariEncounter(FieldSystem *fieldSystem, Pokemon *leadMon, int rodType, EncounterGenState *encounterGen, u8 encType, int battler, BattleSetup *battleSetup) { u8 slot; - SAFARIZONE_AREASET *areaSet = SafariZone_GetAreaSet(Save_SafariZone_Get(fieldSystem->saveData), 3); + SafariZoneAreaSet *areaSet = SafariZone_GetAreaSet(Save_SafariZone_Get(fieldSystem->saveData), 3); u16 species; u8 level; EncounterSlot *encSlots; @@ -938,13 +938,13 @@ static BOOL FieldSystem_GenerateSafariEncounter(FieldSystem *fieldSystem, Pokemo switch (encType) { case ENCOUNTER_TYPE_LAND: - encSlots = sub_020974C4(areaSet, area, SAFARI_ENCOUNTER_SLOTS_LAND, timeOfDay, HEAP_ID_FIELD1); + encSlots = SafariZoneAreaSet_LoadAreaEncounters(areaSet, area, SAFARI_ENCOUNTER_SLOTS_LAND, timeOfDay, HEAP_ID_FIELD1); break; case ENCOUNTER_TYPE_SURFING: - encSlots = sub_020974C4(areaSet, area, SAFARI_ENCOUNTER_SLOTS_SURFING, timeOfDay, HEAP_ID_FIELD1); + encSlots = SafariZoneAreaSet_LoadAreaEncounters(areaSet, area, SAFARI_ENCOUNTER_SLOTS_SURFING, timeOfDay, HEAP_ID_FIELD1); break; case ENCOUNTER_TYPE_FISHING: - encSlots = sub_020974C4(areaSet, area, SAFARI_ENCOUNTER_SLOTS_ROD(rodType), timeOfDay, HEAP_ID_FIELD1); + encSlots = SafariZoneAreaSet_LoadAreaEncounters(areaSet, area, SAFARI_ENCOUNTER_SLOTS_ROD(rodType), timeOfDay, HEAP_ID_FIELD1); break; default: // other encounter types invalid in safari GF_ASSERT(FALSE); diff --git a/src/field/overlay_2_gear_phone.c b/src/field/overlay_2_gear_phone.c index c9abcc17d0..c31603241d 100644 --- a/src/field/overlay_2_gear_phone.c +++ b/src/field/overlay_2_gear_phone.c @@ -1,4 +1,5 @@ #include "constants/maps.h" +#include "constants/phone_scripts.h" #include "constants/sndseq.h" #include "overlay_2/overlay_02_gear_phone.h" @@ -17,27 +18,37 @@ #include "unk_02092BE8.h" typedef struct UnkStruct_02253C86 { - u8 unk0; + u8 callerId; u8 unk1; - u16 unk2; - u8 unk4; + u16 callScriptID; + u8 forcePickUp; u8 unk5; } UnkStruct_02253C86; static const UnkStruct_02253C86 ov02_02253C84[] = { - { 1, 0, 13, 0, 0 }, - { 1, 0, 7, 0, 0 }, - { 15, 0, 85, 1, 0 }, - { 9, 0, 93, 1, 0 }, - { 2, 0, 0, 0, 0 }, - { 6, 0, 0, 0, 0 }, - { 24, 0, 0, 0, 0 }, - { 24, 0, 142, 1, 0 }, - { 24, 0, 143, 1, 0 }, - { 24, 0, 144, 1, 0 }, - { 24, 0, 145, 1, 0 }, - { 24, 0, 146, 1, 0 }, - { 0, 0, 27, 0, 0 } + // Hey, player, this is great news! A Pokémon hatched from that Egg! + { PHONE_CONTACT_PROF__ELM, 0, PHONE_SCRIPT_013, FALSE, 0 }, + // Hello, player? I discovered something called Pokérus + { PHONE_CONTACT_PROF__ELM, 0, PHONE_SCRIPT_007, FALSE, 0 }, + // Oh hey, this is the Bike Shop! + { PHONE_CONTACT_BIKE_SHOP, 0, PHONE_SCRIPT_085, TRUE, 0 }, + // Hey, this is Bill here. You know your PC boxes are full, right? + { PHONE_CONTACT_BILL, 0, PHONE_SCRIPT_093, TRUE, 0 }, + { PHONE_CONTACT_PROF__OAK, 0, PHONE_SCRIPT_NONE, FALSE, 0 }, + { PHONE_CONTACT_DAY_C_MAN, 0, PHONE_SCRIPT_NONE, FALSE, 0 }, + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_NONE, FALSE, 0 }, + // This is Baoba, I've finally come up with the next test + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_142, TRUE, 0 }, + // This is Baoba, I thought of a new way to play! It's called Object Arrangement! + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_143, TRUE, 0 }, + // This is Baoba, we've come up with new objects + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_144, TRUE, 0 }, + // This is Baoba, we've come up with so many objects! + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_145, TRUE, 0 }, + // This is Baoba, I'm stuck in a time loop! + { PHONE_CONTACT_BAOBA, 0, PHONE_SCRIPT_146, TRUE, 0 }, + // Hi honey, I bought something with your money :3 + { PHONE_CONTACT_MOTHER, 0, PHONE_SCRIPT_027, FALSE, 0 } }; static u32 ov02_02251FDC(GearPhoneRingManager *gearPhone, PhoneBook *phoneBook, u32 mapId); @@ -87,7 +98,7 @@ u8 ov02_02251EE8(GearPhoneRingManager *gearPhone, Unk_PokegearSTRUCT_14 *a1) { a1->unk_1 = gearPhone->unk_arr5[1]; a1->isScriptedCall = gearPhone->isScriptedCall; a1->callScriptID = gearPhone->callScriptID; - a1->unk_2 = gearPhone->unk_var7; + a1->callTriggerID = gearPhone->callTriggerID; return gearPhone->callerId; } @@ -107,7 +118,7 @@ BOOL ov02_02251F20(GearPhoneRingManager *gearPhone) { if (var) { FreePhoneBook(phoneBook); if (var == 2) { - gearPhone->sys->unkD2_7 = 1; + gearPhone->sys->unkD2_7 = TRUE; StartMapSceneScript(gearPhone->sys, 0x7FF, 0); return TRUE; } @@ -444,27 +455,27 @@ asm static u32 ov02_02251FDC(GearPhoneRingManager *gearPhone, PhoneBook *phoneBo #endif static u32 ov02_022521C0(GearPhoneRingManager *gearPhone, PhoneBook *phoneBook, u32 mapId) { - u8 r6 = ov02_02252218(gearPhone, phoneBook, mapId); - if (r6 == 0xFF) { + u8 callTriggerID = ov02_02252218(gearPhone, phoneBook, mapId); + if (callTriggerID == 0xFF) { return FALSE; } - GearPhoneRingManager_SetCallerParams(gearPhone, ov02_02253C84[r6].unk0, 0xFF, 0, 3, ov02_02253C84[r6].unk2); + GearPhoneRingManager_SetCallerParams(gearPhone, ov02_02253C84[callTriggerID].callerId, 0xFF, 0, 3, ov02_02253C84[callTriggerID].callScriptID); GearPhoneRingManager_StartRinging(gearPhone); - gearPhone->unk_var7 = r6; - return ov02_02253C84[r6].unk4 + 1; + gearPhone->callTriggerID = callTriggerID; + return ov02_02253C84[callTriggerID].forcePickUp + 1; } // FIXME: This is a fakematch from decomp.me, it doesn't match locally without the label https://decomp.me/scratch/YdDak static u8 ov02_02252218(GearPhoneRingManager *gearPhone, PhoneBook *phoneBook, u32 mapId) { - u8 *ptr = Heap_AllocAtEnd(HEAP_ID_FIELD1, 13); - MI_CpuFill8(ptr, 0, 13); + u8 *ptr = Heap_AllocAtEnd(HEAP_ID_FIELD1, NUM_CALL_TRIGGERS); + MI_CpuFill8(ptr, 0, NUM_CALL_TRIGGERS); int cnt = 0; - for (int i = 0; i < 13; i++) { - if (sub_0202F08C(gearPhone->savingsData, i) == 0) { + for (int i = 0; i < NUM_CALL_TRIGGERS; i++) { + if (PhoneCallPersistentState_CheckCallTriggerFlag(gearPhone->savingsData, i) == 0) { continue; } - PhoneBookEntry *entry = &phoneBook->entries[ov02_02253C84[i].unk0]; + PhoneBookEntry *entry = &phoneBook->entries[ov02_02253C84[i].callerId]; if (entry->id == PHONE_CONTACT_DAY_C_MAN) { if (SavePokegear_IsNumberRegistered(gearPhone->pokegearData, PHONE_CONTACT_DAY_C_MAN) != 0xFF) { // had to do this to match diff --git a/src/field_use_item.c b/src/field_use_item.c index 892d5d00ff..236ee008df 100644 --- a/src/field_use_item.c +++ b/src/field_use_item.c @@ -260,7 +260,7 @@ static void ItemMenuUseFunc_Bicycle(struct ItemMenuUseData *data, const struct I static BOOL ItemFieldUseFunc_Bicycle(struct ItemFieldUseData *data) { FieldSystem_CreateTask(data->fieldSystem, Task_MountOrDismountBicycle, NULL); - data->fieldSystem->unkD2_7 = 1; + data->fieldSystem->unkD2_7 = TRUE; return FALSE; } diff --git a/src/field_warp_tasks.c b/src/field_warp_tasks.c index abb5c9cb0c..9fa5d2d206 100644 --- a/src/field_warp_tasks.c +++ b/src/field_warp_tasks.c @@ -19,10 +19,10 @@ #include "sys_vars.h" #include "system.h" #include "task.h" +#include "terrain_attributes.h" #include "unk_02005D10.h" #include "unk_0200FA24.h" #include "unk_0203BA5C.h" -#include "terrain_attributes.h" #include "unk_02054648.h" #include "field_bgm.h" #include "unk_02055244.h" diff --git a/src/map_matrix.c b/src/map_matrix.c index 57ad4990b3..88f2c6209c 100644 --- a/src/map_matrix.c +++ b/src/map_matrix.c @@ -215,7 +215,7 @@ void PlaceSafariZoneAreas(MAPMATRIX *map_matrix, SaveData *save) { } SafariZone *safari_zone = Save_SafariZone_Get(save); - SAFARIZONE_AREASET *sz_area_set = SafariZone_GetAreaSet(safari_zone, 3); + SafariZoneAreaSet *sz_area_set = SafariZone_GetAreaSet(safari_zone, 3); for (s32 y = 0; y < SAFARI_ZONE_AREA_SET_ROWS; y++) { for (s32 x = 0; x < SAFARI_ZONE_AREA_SET_COLS; x++) { diff --git a/src/overlay_44_02235340.c b/src/overlay_44_02235340.c index fa3b6bf77a..d71c06c253 100644 --- a/src/overlay_44_02235340.c +++ b/src/overlay_44_02235340.c @@ -1,35 +1,35 @@ -#include "overlay_44.h" - -#include "unk_02037C94.h" -#include "unk_0200FA24.h" -#include "unk_0203A3B0.h" -#include "unk_02034354.h" -#include "unk_02035900.h" -#include "unk_020379A0.h" -#include "unk_02005D10.h" -#include "sound_02004A44.h" -#include "overlay_00_arm.h" -#include "overlay_00_thumb.h" -#include "overlay_42.h" -#include "unk_0200B150.h" -#include "unk_0200A090.h" -#include "unk_020971F8.h" - #include "global.h" -#include "obj_pltt_transfer.h" -#include "obj_char_transfer.h" -#include "overlay_manager.h" -#include "vram_transfer_manager.h" -#include "text.h" -#include "font.h" -#include "sprite.h" -#include "gf_gfx_loader.h" + #include "constants/sndseq.h" + #include "msgdata/msg.naix" #include "msgdata/msg/msg_0778.h" #include "bg_window.h" #include "filesystem.h" +#include "font.h" +#include "gf_gfx_loader.h" +#include "obj_char_transfer.h" +#include "obj_pltt_transfer.h" +#include "overlay_00_arm.h" +#include "overlay_00_thumb.h" +#include "overlay_42.h" +#include "overlay_44.h" +#include "overlay_manager.h" +#include "sound_02004A44.h" +#include "sprite.h" +#include "text.h" +#include "unk_02005D10.h" +#include "unk_0200A090.h" +#include "unk_0200B150.h" +#include "unk_0200FA24.h" +#include "unk_02034354.h" +#include "unk_02035900.h" +#include "unk_020379A0.h" +#include "unk_02037C94.h" +#include "unk_0203A3B0.h" +#include "unk_020971F8.h" +#include "vram_transfer_manager.h" // const u8 ov44_02236458[4] = {0x08, 0x00, 0x04, 0x0C}; // const WindowTemplate ov44_0223645C = {2, 25, 13, 5, 4, 1, 57}; @@ -61,7 +61,7 @@ // { 208, 96, 2, 0, 0, 0 }, // { 184, 72, 3, 0, 3, 0 }, // }; -// const func_type_1 ov44_02236540[30] = +// const func_type_1 ov44_02236540[30] = // {ov44_02234BF0, ov44_02234C10, Wifi_PromptAwaitingResponse, ov44_02234C88, ov44_02234CE8, // ov44_02234D28, ov44_02234D4C, ov44_02234D88, Wifi_PromptAwaitingMembers, // ov44_02234DE4, ov44_02234E08, ov44_02234EA4, ov44_02234EF4, @@ -71,7 +71,7 @@ // ov44_022351DC, ov44_02235218, ov44_02235268, ov44_0223532C, // ov44_02235340}; -// const func_type_1 ov44_022365B8[33] = +// const func_type_1 ov44_022365B8[33] = // {ov44_02234474, Wifi_PromptReadyMessage, ov44_022344C4, Wifi_PromptUserJoinRequest, // ov44_022345C8, ov44_022345FC, Wifi_PromptInsufficientMembers, ov44_022346B4, // Wifi_PromptConfirmMembers, ov44_022346E8, ov44_0223471C, ov44_02234764, @@ -106,20 +106,20 @@ extern u8 ov44_0223689C[]; FS_EXTERN_OVERLAY(OVY_42); -void ov44_02232EA8(OverlayManager* overlayMananger) { - UnkStruct_ov44_args* temp_r5 = OverlayManager_GetArgs(overlayMananger); +void ov44_02232EA8(OverlayManager *overlayMananger) { + UnkStruct_ov44_args *temp_r5 = OverlayManager_GetArgs(overlayMananger); HandleLoadOverlay(FS_OVERLAY_ID(OVY_42), OVY_LOAD_ASYNC); if (sub_02039998() != 1) { GF_AssertFail(); } Heap_Create(HEAP_ID_3, HEAP_ID_103, 0x18000); Heap_Create(HEAP_ID_3, HEAP_ID_104, 0xA000); - UnkStruct_ov44_02235340* temp_r0 = OverlayManager_CreateAndGetData(overlayMananger, sizeof(UnkStruct_ov44_02235340), HEAP_ID_103); + UnkStruct_ov44_02235340 *temp_r0 = OverlayManager_CreateAndGetData(overlayMananger, sizeof(UnkStruct_ov44_02235340), HEAP_ID_103); MI_CpuFill8(temp_r0, 0, sizeof(UnkStruct_ov44_02235340)); MI_CpuFill8(temp_r0->unk1C, 1, 4); MI_CpuFill8(temp_r0->unk20, 1, 4); GF_CreateVramTransferManager(16, HEAP_ID_103); - u8* temp_r0_2 = sub_020398C8(); + u8 *temp_r0_2 = sub_020398C8(); temp_r0->unk0 = temp_r0_2; temp_r0_2[33] = temp_r0_2[34]; temp_r0->unk4 = ov44_022331B0(temp_r0); @@ -127,72 +127,71 @@ void ov44_02232EA8(OverlayManager* overlayMananger) { sub_020971F8(temp_r0); ov44_02234028(temp_r0); ov44_022331C4(temp_r0, temp_r5, HEAP_ID_103); - Main_SetVBlankIntrCB((void*)&ov44_0223319C, temp_r0); + Main_SetVBlankIntrCB((void *)&ov44_0223319C, temp_r0); sub_0203A880(); temp_r0->unk27 = 1; } -s32 ov44_02232F64(OverlayManager* overlayManager, u32* arg1) { - UnkStruct_ov44_args* temp_r7; - UnkStruct_ov44_02235340* temp_r4; +s32 ov44_02232F64(OverlayManager *overlayManager, u32 *arg1) { + UnkStruct_ov44_args *temp_r7; + UnkStruct_ov44_02235340 *temp_r4; s32 var_r6; temp_r4 = OverlayManager_GetData(overlayManager); temp_r7 = OverlayManager_GetArgs(overlayManager); switch (arg1[0]) { - case 0: - BeginNormalPaletteFade(3, 1, 1, RGB_BLACK, 6, 1, HEAP_ID_103); + case 0: + BeginNormalPaletteFade(3, 1, 1, RGB_BLACK, 6, 1, HEAP_ID_103); + arg1[0]++; + break; + case 1: + if (IsPaletteFadeFinished() != 0) { arg1[0]++; - break; - case 1: - if (IsPaletteFadeFinished() != 0) { - arg1[0]++; - } - break; - case 2: - if (temp_r4->unk27 != 0) { - ov44_02233D8C(temp_r4, temp_r7, HEAP_ID_103); - } - if (temp_r4->unk4 != 0) { - if (sub_02034420() == 1) { - ov44_0223438C(temp_r4); - sub_02034638(); - ov44_02234248(temp_r4); - } - var_r6 = ov44_022365B8[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); - } - else { - var_r6 = ov44_02236540[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); - if (sub_02034420() == 1) { - ov44_0223427C(temp_r4, HEAP_ID_103); - } - } - if (ov44_0223407C(temp_r4) != 0) { - ov44_02233A50(temp_r4, temp_r7, HEAP_ID_103); + } + break; + case 2: + if (temp_r4->unk27 != 0) { + ov44_02233D8C(temp_r4, temp_r7, HEAP_ID_103); + } + if (temp_r4->unk4 != 0) { + if (sub_02034420() == 1) { + ov44_0223438C(temp_r4); + sub_02034638(); + ov44_02234248(temp_r4); } - ov44_022341C0(temp_r4); - if (var_r6 == 1) { - temp_r7->unk3 = temp_r4->unk7; - temp_r7->unk4 = temp_r4->unk11; - arg1[0]++; + var_r6 = ov44_022365B8[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); + } else { + var_r6 = ov44_02236540[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); + if (sub_02034420() == 1) { + ov44_0223427C(temp_r4, HEAP_ID_103); } - break; - case 3: - BeginNormalPaletteFade(3, 0, 0, RGB_BLACK, 6, 1, HEAP_ID_103); + } + if (ov44_0223407C(temp_r4) != 0) { + ov44_02233A50(temp_r4, temp_r7, HEAP_ID_103); + } + ov44_022341C0(temp_r4); + if (var_r6 == 1) { + temp_r7->unk3 = temp_r4->unk7; + temp_r7->unk4 = temp_r4->unk11; arg1[0]++; - break; - case 4: - if (IsPaletteFadeFinished() != 0) { - return 1; - } + } + break; + case 3: + BeginNormalPaletteFade(3, 0, 0, RGB_BLACK, 6, 1, HEAP_ID_103); + arg1[0]++; + break; + case 4: + if (IsPaletteFadeFinished() != 0) { + return 1; + } } ov44_02233CCC(&temp_r4->unk30); SpriteList_RenderAndAnimateSprites(temp_r4->unk30.spriteList); return 0; } -s32 ov44_022330A8(OverlayManager* arg0) { - UnkStruct_ov44_02235340* temp_r4; +s32 ov44_022330A8(OverlayManager *arg0) { + UnkStruct_ov44_02235340 *temp_r4; temp_r4 = OverlayManager_GetData(arg0); OverlayManager_GetArgs(arg0); @@ -209,12 +208,12 @@ s32 ov44_022330A8(OverlayManager* arg0) { return 1; } -void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1) { +void ov44_02233100(UnkStruct_ov44_02235340 *arg0, String *arg1) { if (arg0->unk4 == 0) { - + if (arg1->maxsize == sub_0203769C()) { switch (arg1->magic) { - case 1: + case 1: arg0->unk13 = 1; return; case 0: @@ -229,10 +228,10 @@ void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1) { switch (arg1->magic) { case 0: break; - case 1: + case 1: arg0->unk28[arg1->maxsize] = 1; return; - case 2: + case 2: break; default: return; @@ -244,33 +243,33 @@ void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1) { } } -void ov44_02233160(UnkStruct_ov44_02235340* arg0) { +void ov44_02233160(UnkStruct_ov44_02235340 *arg0) { if (arg0->unk2C == 0) { arg0->unk2C = 1; sub_02037AC0(13); } } -void ov44_0223317C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1) { +void ov44_0223317C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1) { if (arg0->unk4 != 1) { __memcpy(arg0->unk20, arg1, 4); } } -void ov44_0223319C(UnkStruct_ov44_02235340* arg0) { +void ov44_0223319C(UnkStruct_ov44_02235340 *arg0) { DoScheduledBgGpuUpdates(arg0->unk30.bgConfig); GF_RunVramTransferTasks(); OamManager_ApplyAndResetBuffers(); } -s32 ov44_022331B0(UnkStruct_ov44_02235340* arg0) { +s32 ov44_022331B0(UnkStruct_ov44_02235340 *arg0) { if (sub_0203769C() == 0) { return 1; } return 0; } -void ov44_022331C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +void ov44_022331C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_0223323C(); InitBgAndScrnData(&arg0->unk30, heapID); InitWindowList(&arg0->unk30, arg1, heapID); @@ -280,7 +279,7 @@ void ov44_022331C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enu InitSpritesAnd2DGfxResObjs(&arg0->unk30, heapID); } -void FreeStructOv44_02235340(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { +void FreeStructOv44_02235340(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID) { FreeSpritesAnd2DGfxResObjs(&arg0->unk30); FreeStringAndMsgData(&arg0->unk30); FreeWindowList(&arg0->unk30, heapID); @@ -292,7 +291,7 @@ void ov44_0223323C(void) { GfGfx_SetBanks(&graphicsBanks); } -void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { +void InitBgAndScrnData(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID) { arg0->bgConfig = BgConfig_Alloc(heapID); GraphicsModes graphicModes = ov44_02236474; SetBothScreensModesAndDisable(&graphicModes); @@ -319,8 +318,8 @@ void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { GfGfx_EngineBTogglePlanes(4, 0); GfGfx_EngineBTogglePlanes(8, 0); GfGfx_EngineBTogglePlanes(16, 0); - - NARC* narc = NARC_New(NARC_a_0_8_8, heapID); + + NARC *narc = NARC_New(NARC_a_0_8_8, heapID); GfGfxLoader_GXLoadPalFromOpenNarc(narc, 14, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_5_OFFSET, 32, heapID); GfGfxLoader_LoadCharDataFromOpenNarc(narc, 13, arg0->bgConfig, GF_BG_LYR_MAIN_2, 0, 1536, 0, heapID); arg0->scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(narc, 15, 0, &arg0->scrnData, heapID); @@ -333,7 +332,7 @@ void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { NARC_Delete(narc); } -void FreeBgAndScreenData(UnkStruct_ov44_02232F64* arg0) { +void FreeBgAndScreenData(UnkStruct_ov44_02232F64 *arg0) { Heap_Free(arg0->scrnDataRaw); Heap_Free(arg0->plttDataRaw); FreeBgTilemapBuffer(arg0->bgConfig, GF_BG_LYR_MAIN_2); @@ -342,10 +341,10 @@ void FreeBgAndScreenData(UnkStruct_ov44_02232F64* arg0) { Heap_Free(arg0->bgConfig); } -void InitWindowList(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +void InitWindowList(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { LoadFontPal1(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapID); - Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + Options *options = Save_PlayerData_GetOptionsAddr(arg1->unk8); LoadUserFrameGfx2(arg0->bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); LoadUserFrameGfx1(arg0->bgConfig, GF_BG_LYR_MAIN_1, 31, 3, 0, heapID); LoadUserFrameGfx1(arg0->bgConfig, GF_BG_LYR_MAIN_2, 48, 4, 0, heapID); @@ -364,7 +363,7 @@ void InitWindowList(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, en FillWindowPixelBuffer(&arg0->windowList[4], 15); } -void FreeWindowList(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { +void FreeWindowList(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID) { ov44_02233954(arg0); ClearFrameAndWindow2(&arg0->windowList[0], 0); RemoveWindow(&arg0->windowList[0]); @@ -375,31 +374,31 @@ void FreeWindowList(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { RemoveWindow(&arg0->windowList[3]); sub_0200E5D4(&arg0->windowList[4], 0); RemoveWindow(&arg0->windowList[4]); - + if (arg0->listMenu2D != NULL) { Clear2dMenuWindowAndDelete(arg0->listMenu2D, heapID); } } -void InitStringAndMsgData(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +void InitStringAndMsgData(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { arg0->msgFmt = MessageFormat_New(heapID); arg0->msgData = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, NARC_msg_msg_0778_bin, heapID); arg0->string1 = String_New(256, heapID); arg0->string2 = String_New(256, heapID); arg0->printerId = 255; - Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + Options *options = Save_PlayerData_GetOptionsAddr(arg1->unk8); arg0->textFrameDelay = Options_GetTextFrameDelay(options); } -void FreeStringAndMsgData(UnkStruct_ov44_02232F64* arg0) { +void FreeStringAndMsgData(UnkStruct_ov44_02232F64 *arg0) { String_Delete(arg0->string2); String_Delete(arg0->string1); DestroyMsgData(arg0->msgData); MessageFormat_Delete(arg0->msgFmt); } -void ov44_02233698(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +void ov44_02233698(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { switch (arg1->unk0) { case 0: break; @@ -428,7 +427,7 @@ void ov44_02233698(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enu ScheduleWindowCopyToVram(&arg0->windowList[0]); } -void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { +void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64 *arg0, enum HeapID heapID) { NNS_G2dInitOamManagerModule(); OamManager_Create(0, 126, 0, 31, 0, 126, 0, 31, heapID); ObjCharTransferTemplate objCharTransferTemplate = ov44_02236484; @@ -449,7 +448,7 @@ void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0, enum HeapID heapI arg0->unk158 = ov42_02228EDC(arg0->spriteList, 0, 4, 1, heapID); } -void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0) { +void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64 *arg0) { ov42_02228F94(arg0->unk158); ov42_02228050(arg0->unk154); SpriteList_Delete(arg0->spriteList); @@ -463,35 +462,34 @@ void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0) { OamManager_Free(); } -void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, enum HeapID heapID) { +void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 strno, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindow(arg0, arg1, strno, 0, heapID); } -void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, s32 arg3, enum HeapID heapID) { +void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 strno, s32 arg3, enum HeapID heapID) { if ((arg0->printerId != 255) && (TextPrinterCheckActive(arg0->printerId) != 0)) { RemoveTextPrinter(arg0->printerId); arg0->printerId = 255; } FillWindowPixelBuffer(&arg0->windowList[0], 15); - String* string = String_New(256, heapID); + String *string = String_New(256, heapID); ReadMsgDataIntoString(arg0->msgData, strno, string); StringExpandPlaceholders(arg0->msgFmt, arg0->string1, string); arg0->printerId = AddTextPrinterParameterizedWithColor(&arg0->windowList[0], 1, arg0->string1, 0, 0, arg0->textFrameDelay, MAKE_TEXT_COLOR(1, 2, 15), 0); ScheduleWindowCopyToVram(&arg0->windowList[0]); String_Delete(string); - Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + Options *options = Save_PlayerData_GetOptionsAddr(arg1->unk8); LoadUserFrameGfx2(arg0->bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); arg0->unk15 = arg3; } -s32 ov44_02233914(UnkStruct_ov44_02232F64* arg0) { +s32 ov44_02233914(UnkStruct_ov44_02232F64 *arg0) { if (arg0->printerId == 255) { if (arg0->unk15 != 0) { arg0->unk15--; return 0; } - } - else if ((TextPrinterCheckActive(arg0->printerId) == 0) && (arg0->printerId != 255)) { + } else if ((TextPrinterCheckActive(arg0->printerId) == 0) && (arg0->printerId != 255)) { arg0->printerId = 255; } if ((arg0->printerId == 255) && (arg0->unk15 == 0)) { @@ -500,7 +498,7 @@ s32 ov44_02233914(UnkStruct_ov44_02232F64* arg0) { return 0; } -void ov44_02233954(UnkStruct_ov44_02232F64* arg0) { +void ov44_02233954(UnkStruct_ov44_02232F64 *arg0) { if (arg0->printerId != 255) { if (TextPrinterCheckActive(arg0->printerId) != 0) { RemoveTextPrinter(arg0->printerId); @@ -513,10 +511,10 @@ void ov44_02233954(UnkStruct_ov44_02232F64* arg0) { } // {STRVAR_1 3, 0, 0}\nID {STRVAR_1 54, 1, 0} -void ov44_0223398C(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID) { - String* string1 = String_New(256, heapID); - String* string2 = String_New(256, heapID); - +void ov44_0223398C(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, enum HeapID heapID) { + String *string1 = String_New(256, heapID); + String *string2 = String_New(256, heapID); + ov44_02233C88(arg0, arg1, arg2, 0, heapID); ov44_02233CA0(arg0, arg1, arg2, 1, heapID); @@ -530,13 +528,13 @@ void ov44_0223398C(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 String_Delete(string2); } -void ov44_02233A34(UnkStruct_ov44_02232F64* arg0) { +void ov44_02233A34(UnkStruct_ov44_02232F64 *arg0) { sub_0200E5D4(&arg0->windowList[4], 1); ClearWindowTilemapAndScheduleTransfer(&arg0->windowList[4]); } -void ov44_02233A50(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { - UnkStruct_ov44_02232F64* temp_r6; +void ov44_02233A50(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { + UnkStruct_ov44_02232F64 *temp_r6; if (sub_02034420() != 0) { temp_r6 = &arg0->unk30; @@ -552,15 +550,15 @@ void ov44_02233A50(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enu } } -void ov44_02233AB8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_02232F64* arg1, UnkStruct_ov44_args* arg2, s32 arg3, enum HeapID heapID) { - String* string1 = String_New(256, heapID); - String* string2 = String_New(256, heapID); +void ov44_02233AB8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_02232F64 *arg1, UnkStruct_ov44_args *arg2, s32 arg3, enum HeapID heapID) { + String *string1 = String_New(256, heapID); + String *string2 = String_New(256, heapID); ov44_02233C88(arg1, arg2, arg3, 0, heapID); // {STRVAR_1 3, 0, 0} ReadMsgDataIntoString(arg1->msgData, msg_0778_00129, string1); StringExpandPlaceholders(arg1->msgFmt, string2, string1); - + u32 temp_r6 = arg3 * 16; FillWindowPixelRect(&arg1->windowList[3], 15, 0, temp_r6, 160, 16); AddTextPrinterParameterizedWithColor(&arg1->windowList[3], 0, string2, 0, temp_r6, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 15), 0); @@ -584,33 +582,33 @@ void ov44_02233AB8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_02232F64* arg1, var_r2 = 1; } - NNSG2dScreenData* screenData = arg1->scrnData; + NNSG2dScreenData *screenData = arg1->scrnData; u32 temp_r4 = (arg3 << 1) + 5; - CopyToBgTilemapRect(arg1->bgConfig, GF_BG_LYR_MAIN_2, 18, temp_r4, 2, 2, &screenData->rawData[0], var_r2*2, 0, screenData->screenWidth/8, screenData->screenHeight/8); + CopyToBgTilemapRect(arg1->bgConfig, GF_BG_LYR_MAIN_2, 18, temp_r4, 2, 2, &screenData->rawData[0], var_r2 * 2, 0, screenData->screenWidth / 8, screenData->screenHeight / 8); BgTilemapRectChangePalette(arg1->bgConfig, GF_BG_LYR_MAIN_2, 18, temp_r4, 2, 2, 5); ScheduleBgTilemapBufferTransfer(arg1->bgConfig, GF_BG_LYR_MAIN_2); String_Delete(string1); String_Delete(string2); } -void ov44_02233C18(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID) { +void ov44_02233C18(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, enum HeapID heapID) { FillWindowPixelRect(&arg0->windowList[3], 15, 0, arg2 * 16, 160, 16); - NNSG2dScreenData* screenData = arg0->scrnData; - CopyToBgTilemapRect(arg0->bgConfig, GF_BG_LYR_MAIN_2, 18, arg2 * 2 + 5, 2, 2, &screenData->rawData[0], 0, 0, screenData->screenWidth/8, screenData->screenHeight/8); + NNSG2dScreenData *screenData = arg0->scrnData; + CopyToBgTilemapRect(arg0->bgConfig, GF_BG_LYR_MAIN_2, 18, arg2 * 2 + 5, 2, 2, &screenData->rawData[0], 0, 0, screenData->screenWidth / 8, screenData->screenHeight / 8); ScheduleBgTilemapBufferTransfer(arg0->bgConfig, GF_BG_LYR_MAIN_2); ScheduleWindowCopyToVram(&arg0->windowList[3]); } -void ov44_02233C88(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID) { +void ov44_02233C88(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, s32 arg3, enum HeapID heapID) { BufferPlayersName(arg0->msgFmt, arg3, sub_02034818(arg2)); } -void ov44_02233CA0(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID) { +void ov44_02233CA0(UnkStruct_ov44_02232F64 *arg0, UnkStruct_ov44_args *arg1, s32 arg2, s32 arg3, enum HeapID heapID) { BufferIntegerAsString(arg0->msgFmt, arg3, PlayerProfile_GetTrainerID_VisibleHalf(sub_02034818(arg2)), 5, PRINTING_MODE_LEADING_ZEROS, 1); } -void ov44_02233CCC(UnkStruct_ov44_02232F64* arg0) { +void ov44_02233CCC(UnkStruct_ov44_02232F64 *arg0) { if (arg0->unk1F4 <= 0) { ov44_02233D08(arg0, arg0->unk1F6); arg0->unk1F4 = 3; @@ -620,13 +618,13 @@ void ov44_02233CCC(UnkStruct_ov44_02232F64* arg0) { arg0->unk1F4--; } -void ov44_02233D08(UnkStruct_ov44_02232F64* arg0, s32 arg1) { +void ov44_02233D08(UnkStruct_ov44_02232F64 *arg0, s32 arg1) { if (GF_CreateNewVramTransferTask(NNS_GFD_DST_2D_BG_PLTT_MAIN, 0, (ov44_0223663C[arg1] << 5) + arg0->plttData->pRawData, 32) == 0) { GF_AssertFail(); } } -u8 ov44_02233D38(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { +u8 ov44_02233D38(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID) { arg0->unk0[34] = 1 - arg0->unk0[34]; arg0->unk0[33] = arg0->unk0[34]; ov00_021E70B8(arg0->unk0[33]); @@ -671,13 +669,13 @@ void ov44_02233D8C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enu } } -void ov44_02233E48(UnkStruct_ov44_02235340* arg0) { +void ov44_02233E48(UnkStruct_ov44_02235340 *arg0) { if ((sub_020390C4() > 3) || (sub_02039264() != 0) || (sub_020393C8() != 0)) { arg0->unk5 = 15; } } -s32 ov44_02233E6C(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02233E6C(UnkStruct_ov44_02235340 *arg0) { if (sub_02037454() > 0) { return 1; } @@ -685,22 +683,22 @@ s32 ov44_02233E6C(UnkStruct_ov44_02235340* arg0) { } s32 ov44_02233E80(u32 arg0, u32 arg1) { - s32 var_r5 = sub_02039080(); - if (var_r5 == 1 ) { - switch(arg1) { - case 0: - sub_02039AF8(); - break; - case 1: - case 2: - case 3: - sub_02039B18(); + s32 var_r5 = sub_02039080(); + if (var_r5 == 1) { + switch (arg1) { + case 0: + sub_02039AF8(); + break; + case 1: + case 2: + case 3: + sub_02039B18(); } } return var_r5; } -void ov44_02233EB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1) { +void ov44_02233EB4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1) { switch (arg1->unk0) { case 0: arg0->unk0[27] = 18; @@ -718,7 +716,7 @@ void ov44_02233EB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1) { ov00_021E6D60(arg0->unk0, 36); } -s32 ov44_02233EF8(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02233EF8(UnkStruct_ov44_02235340 *arg0) { if (arg0->unk11 == 1) { return 0; } @@ -730,7 +728,7 @@ s32 ov44_02233EF8(UnkStruct_ov44_02235340* arg0) { return 0; } -s32 ov44_02233F20(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02233F20(UnkStruct_ov44_02235340 *arg0) { if (arg0->unk11 == 0) { return 0; } @@ -739,24 +737,24 @@ s32 ov44_02233F20(UnkStruct_ov44_02235340* arg0) { return 1; } -void ov44_02233F3C(UnkStruct_ov44_02235340* arg0) { +void ov44_02233F3C(UnkStruct_ov44_02235340 *arg0) { if (ov44_02233EF8(arg0) != 0) { GF_GetCurrentPlayingBGM(); sub_02005448(); } } -void ov44_02233F50(UnkStruct_ov44_02235340* arg0) { +void ov44_02233F50(UnkStruct_ov44_02235340 *arg0) { if (ov44_02233F20(arg0) != 0) { GF_SndHandleSetInitialVolume(0, 120); } } -s32 ov44_02233F64(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02233F64(UnkStruct_ov44_02235340 *arg0) { return sub_020347A0(); } -s32 ov44_02233F6C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { +s32 ov44_02233F6C(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID) { s32 var_r7 = 1; for (s32 i = sub_0203769C() - 1; i >= 0; i--) { if (sub_02034714(i) == 1) { @@ -768,13 +766,13 @@ s32 ov44_02233F6C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { return var_r7; } -void ov44_02233FA8(UnkStruct_ov44_02235340* arg0) { +void ov44_02233FA8(UnkStruct_ov44_02235340 *arg0) { UnkStruct_ov44_022345FC var_r5; var_r5.unk2 = 0; for (s32 i = 1; i < 4; i++) { if (sub_02034714(i) == 1) { var_r5.unk0 = i; - + if (sub_02037030(22, &var_r5, 8) != 1) { GF_AssertFail(); } @@ -783,7 +781,7 @@ void ov44_02233FA8(UnkStruct_ov44_02235340* arg0) { } } -void ov44_02233FE8(UnkStruct_ov44_02235340* arg0) { +void ov44_02233FE8(UnkStruct_ov44_02235340 *arg0) { UnkStruct_ov44_022345FC var_r5; var_r5.unk2 = 0; for (s32 i = 1; i < 4; i++) { @@ -797,15 +795,15 @@ void ov44_02233FE8(UnkStruct_ov44_02235340* arg0) { } } -void ov44_02234028(UnkStruct_ov44_02235340* arg0) { +void ov44_02234028(UnkStruct_ov44_02235340 *arg0) { ov00_021E5CA0(ov44_02234070, arg0); } -void ov44_02234038(UnkStruct_ov44_02235340* arg0) { +void ov44_02234038(UnkStruct_ov44_02235340 *arg0) { ov00_021E5CA0(0, 0); } -s32 ov44_02234044(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02234044(UnkStruct_ov44_02235340 *arg0) { s32 var_r7 = 0; for (s32 i = 0; i < 4; i++) { if (arg0->unk14[i] == 1) { @@ -813,18 +811,18 @@ s32 ov44_02234044(UnkStruct_ov44_02235340* arg0) { var_r7 = 1; } arg0->unk14[i] = 0; - arg0->unk18[i]= 0; + arg0->unk18[i] = 0; } } return var_r7; } -void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340* arg1, s32 arg2) { +void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340 *arg1, s32 arg2) { arg1->unk14[arg0] = 1; arg1->unk18[arg0] = arg0; } -s32 ov44_0223407C(UnkStruct_ov44_02235340* arg0) { +s32 ov44_0223407C(UnkStruct_ov44_02235340 *arg0) { s32 i; s32 ret = 0; for (i = 0; i < 4; i++) { @@ -833,20 +831,20 @@ s32 ov44_0223407C(UnkStruct_ov44_02235340* arg0) { } arg0->unk1C[i] = arg0->unk20[i]; } - + if (arg0->unk24 != 0) { arg0->unk24 = 0; ret = 1; } - + return ret; } -void ov44_022340B4(UnkStruct_ov44_02235340* arg0) { +void ov44_022340B4(UnkStruct_ov44_02235340 *arg0) { arg0->unk24 = 1; } -void ov44_022340BC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) { +void ov44_022340BC(UnkStruct_ov44_02235340 *arg0, s32 arg1, enum HeapID heapID) { if (sub_02034750(arg1) == 0) { sub_0203476C(arg1); arg0->unk25 = arg1; @@ -855,14 +853,14 @@ void ov44_022340BC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) } } -void ov44_022340EC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) { +void ov44_022340EC(UnkStruct_ov44_02235340 *arg0, s32 arg1, enum HeapID heapID) { u16 sp4[6]; if (arg0->unk30.unk15C[arg1].unk0 == 0) { sp4 = ov44_02236510[arg1]; - + if (arg1 != sub_0203769C()) { - PlayerProfile* playerProfile = sub_02034818(arg1); + PlayerProfile *playerProfile = sub_02034818(arg1); if (playerProfile == NULL) { GF_AssertFail(); } @@ -883,7 +881,7 @@ void ov44_022340EC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) } } -void ov44_022341C0(UnkStruct_ov44_02235340* arg0) { +void ov44_022341C0(UnkStruct_ov44_02235340 *arg0) { for (s32 i = 0; i < 4; i++) { func_type_022341C0 ov44_func = ov44_02236464[arg0->unk30.unk15C[i].unk8]; ov44_func(arg0, &arg0->unk30.unk15C[i]); @@ -892,12 +890,12 @@ void ov44_022341C0(UnkStruct_ov44_02235340* arg0) { ov42_022290DC(arg0->unk30.unk158); } -void ov44_02234204(UnkStruct_ov44_02235340* arg0) { +void ov44_02234204(UnkStruct_ov44_02235340 *arg0) { ov42_0222901C(arg0->unk30.unk158); memset(&arg0->unk30.unk15C, 0, 48); } -void ov44_02234224(UnkStruct_ov44_02235340* arg0, s32 arg1) { +void ov44_02234224(UnkStruct_ov44_02235340 *arg0, s32 arg1) { UnkStruct_ov44_022345FC sp; sp.unk0 = arg1; sp.unk2 = 2; @@ -906,7 +904,7 @@ void ov44_02234224(UnkStruct_ov44_02235340* arg0, s32 arg1) { } } -void ov44_02234248(UnkStruct_ov44_02235340* arg0) { +void ov44_02234248(UnkStruct_ov44_02235340 *arg0) { for (s32 i = 0; i < 4; i++) { if (((arg0->unk25 + 1) < i) && (sub_02034714(i) == 1)) { ov44_02234224(arg0, i); @@ -915,37 +913,36 @@ void ov44_02234248(UnkStruct_ov44_02235340* arg0) { } } -void ov44_0223427C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { +void ov44_0223427C(UnkStruct_ov44_02235340 *arg0, enum HeapID heapID) { for (s32 i = 0; i < 4; i++) { if ((arg0->unk28[i] == 1) && (sub_02034730(i) == 1)) { ov44_022340BC(arg0, i, heapID); arg0->unk28[i] = 0; arg0->unk12 = 1; } - } + } } -void ov44_022342B8(UnkStruct_ov44_02235340* arg0) { +void ov44_022342B8(UnkStruct_ov44_02235340 *arg0) { if (arg0->unk30.waitingIcon != 0) { GF_AssertFail(); } arg0->unk30.waitingIcon = WaitingIcon_New(&arg0->unk30.windowList[0], 1); } -void ov44_022342E0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +void ov44_022342E0(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk30.waitingIcon != 0) { sub_0200F450(arg0->unk30.waitingIcon); arg0->unk30.waitingIcon = 0; - Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + Options *options = Save_PlayerData_GetOptionsAddr(arg1->unk8); LoadUserFrameGfx2(arg0->unk30.bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); } } -void ov44_02234324(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { - +void ov44_02234324(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1) { } -void ov44_02234328(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { +void ov44_02234328(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1) { ov42_0222919C(arg1->unk4, 0); ov42_022291A0(arg1->unk4); ov42_02229200(arg1->unk4, 1); @@ -954,7 +951,7 @@ void ov44_02234328(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) arg1->unkA = ov44_02236458[idx] + 16; } -void ov44_0223435C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { +void ov44_0223435C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1) { ov42_022291AC(arg1->unk4); arg1->unkA = (arg1->unkA - 1); if (arg1->unkA <= 0) { @@ -964,11 +961,10 @@ void ov44_0223435C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) } } -void ov44_02234388(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { - +void ov44_02234388(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_022341C0 *arg1) { } -void ov44_0223438C(UnkStruct_ov44_02235340* arg0) { +void ov44_0223438C(UnkStruct_ov44_02235340 *arg0) { u8 sp4[4]; s32 sp0; s32 sp_count; @@ -1002,23 +998,23 @@ void ov44_0223438C(UnkStruct_ov44_02235340* arg0) { } } -int ov44_0223442C(UnkStruct_ov44_02235340* arg0) { +int ov44_0223442C(UnkStruct_ov44_02235340 *arg0) { if (sub_02037B38(13) != 0) { return 1; } return 0; } -void ov44_02234440(UnkStruct_ov44_02235340* arg0) { +void ov44_02234440(UnkStruct_ov44_02235340 *arg0) { arg0->unk10 = 1; arg0->unkC = 1800; } -void ov44_02234450(UnkStruct_ov44_02235340* arg0) { +void ov44_02234450(UnkStruct_ov44_02235340 *arg0) { arg0->unk10 = 0; } -s32 ov44_02234458(UnkStruct_ov44_02235340* arg0) { +s32 ov44_02234458(UnkStruct_ov44_02235340 *arg0) { if (arg0->unk10 == 0) { return 0; } @@ -1029,7 +1025,7 @@ s32 ov44_02234458(UnkStruct_ov44_02235340* arg0) { return 1; } -s32 ov44_02234474(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234474(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk0[33] == 1) { ov44_02233F3C(arg0); } @@ -1041,13 +1037,13 @@ s32 ov44_02234474(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // When the group is ready:\nA Button: Proceed B Button: Cancel -s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00107, heapID); arg0->unk5 = 2; return 0; } -s32 ov44_022344C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022344C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; if (ov44_02233914(&arg0->unk30) == 0) { @@ -1092,14 +1088,14 @@ s32 ov44_022344C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Someone wishes to join.\nAccept this Trainer as a member? -s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_0223398C(&arg0->unk30, arg1, arg0->unk6, heapID); Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00108, heapID); arg0->unk5 = 4; return 0; } -s32 ov44_022345C8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022345C8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1108,13 +1104,13 @@ s32 ov44_022345C8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022345FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022345FC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); if (temp_r0 != -1) { UnkStruct_ov44_022345FC subroutine_arg0; - subroutine_arg0.unk0 = (s16) arg0->unk6; + subroutine_arg0.unk0 = (s16)arg0->unk6; if (temp_r0 == 0) { subroutine_arg0.unk2 = 1; ov44_022340BC(arg0, arg0->unk6, heapID); @@ -1143,13 +1139,13 @@ s32 ov44_022345FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // There aren’t enough members.\r -s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00119, heapID); arg0->unk5 = 7; return 0; } -s32 ov44_022346B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022346B4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1158,13 +1154,13 @@ s32 ov44_022346B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Are these members OK? -s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00111, heapID); arg0->unk5 = 9; return 0; } -s32 ov44_022346E8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022346E8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1173,7 +1169,7 @@ s32 ov44_022346E8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_0223471C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_0223471C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); @@ -1191,7 +1187,7 @@ s32 ov44_0223471C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Communicating. Please stand by... -s32 ov44_02234764(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234764(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { arg0->unk8 = 30; ov44_02233FA8(arg0); Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00102, heapID); @@ -1202,7 +1198,7 @@ s32 ov44_02234764(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_0223479C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_0223479C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (sub_02037454() != sub_020347A0()) { ov44_02233FA8(arg0); return 0; @@ -1215,7 +1211,7 @@ s32 ov44_0223479C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022347D4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022347D4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk8 == 0) { if (sub_02037030(23, NULL, 0) != 0) { arg0->unk5 = 14; @@ -1226,7 +1222,7 @@ s32 ov44_022347D4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022347FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022347FC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (sub_02037B38(13) != 0) { ov44_02233EB4(arg0, arg1); sub_02037BEC(); @@ -1236,9 +1232,9 @@ s32 ov44_022347FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234828(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234828(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (sub_02037B38(14) != 0) { - s16 subroutine_arg0 = (s16) arg0->unk0[27]; + s16 subroutine_arg0 = (s16)arg0->unk0[27]; if (sub_02037C0C(sub_0203769C(), &subroutine_arg0) == 1) { arg0->unk5 = 16; } @@ -1246,7 +1242,7 @@ s32 ov44_02234828(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234858(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 i = 0; s32 temp_r7 = ov44_02233F64(arg0); s32 sp0 = sub_0203769C(); @@ -1254,7 +1250,7 @@ s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum for (i = 0; i < temp_r7; i++) { if (sp0 != i) { - u16* temp_r0 = sub_02037C44(i); + u16 *temp_r0 = sub_02037C44(i); if (temp_r0 != NULL) { if (temp_r0[0] == arg0->unk0[27]) { var_r5++; @@ -1272,14 +1268,14 @@ s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022348A8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022348A8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { sub_020398D4(1, 1); sub_02037AC0(18); arg0->unk5 = 18; return 0; } -s32 ov44_022348C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022348C4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (sub_02037B38(18) != 0) { arg0->unk7 = 1; ov44_022342E0(arg0, arg1, heapID); @@ -1289,13 +1285,13 @@ s32 ov44_022348C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Stop looking for members? -s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00120, heapID); arg0->unk5 = 20; return 0; } -s32 ov44_02234904(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234904(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1304,7 +1300,7 @@ s32 ov44_02234904(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234944(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234944(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); @@ -1326,13 +1322,13 @@ s32 ov44_02234944(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // If the leader drops out, the group will\nbe disbanded. Is that OK? -s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00121, heapID); arg0->unk5 = 23; return 0; } -s32 ov44_022349B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022349B4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1341,7 +1337,7 @@ s32 ov44_022349B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022349F4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022349F4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); @@ -1363,14 +1359,14 @@ s32 ov44_022349F4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // The member invitations will be canceled. -s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00122, heapID); arg0->unk8 = 30; arg0->unk5 = 26; return 0; } -s32 ov44_02234A68(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234A68(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; if (ov44_02233914(&arg0->unk30) == 0) { @@ -1389,7 +1385,7 @@ s32 ov44_02234A68(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 1; } -s32 ov44_02234AA8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234AA8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk30.listMenu2D != NULL) { Clear2dMenuWindowAndDelete(arg0->unk30.listMenu2D, heapID); arg0->unk30.listMenu2D = NULL; @@ -1401,19 +1397,19 @@ s32 ov44_02234AA8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // A member had to drop out.\nPlease register from the start again.\r -s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00118, heapID); arg0->unk5 = 29; ov44_02233FE8(arg0); ov44_02233EB4(arg0, arg1); - if ((u32) (sub_020390C4() - 4) <= 1U) { + if ((u32)(sub_020390C4() - 4) <= 1U) { ov00_021EDB1C(); } return 0; } -s32 ov44_02234B18(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { - if ((u32) (sub_020390C4() - 4) <= 1) { +s32 ov44_02234B18(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { + if ((u32)(sub_020390C4() - 4) <= 1) { ov00_021EDB1C(); } if (ov44_02233914(&arg0->unk30) == 0) { @@ -1427,7 +1423,7 @@ s32 ov44_02234B18(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 1; } -s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 strno; if (arg0->unk0[33] == 1) { @@ -1442,7 +1438,7 @@ s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_arg return 0; } -s32 ov44_02234B80(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234B80(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1451,7 +1447,7 @@ s32 ov44_02234B80(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234BB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234BB4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); @@ -1466,7 +1462,7 @@ s32 ov44_02234BB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234BF0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234BF0(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { sub_02034434(); sub_020398D4(0, 1); ov44_02234440(arg0); @@ -1474,7 +1470,7 @@ s32 ov44_02234BF0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234C10(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234C10(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); if (sub_020373B4(0) == 0) { ov44_02234450(arg0); @@ -1487,7 +1483,7 @@ s32 ov44_02234C10(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Awaiting {STRVAR_1 3, 0, 0}’s response... -s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00114, heapID); @@ -1496,7 +1492,7 @@ s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_ar return 0; } -s32 ov44_02234C88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234C88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { u8 temp_r0; ov44_02233F6C(arg0, heapID); @@ -1524,7 +1520,7 @@ s32 ov44_02234C88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // {STRVAR_1 3, 0, 0} approved your\nmember-registration request. -s32 ov44_02234CE8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234CE8(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); Wifi_LoadAndPrintTextToWindow(&arg0->unk30, arg1, msg_0778_00115, 30, heapID); @@ -1533,7 +1529,7 @@ s32 ov44_02234CE8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234D28(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234D28(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); if (ov44_02233914(&arg0->unk30) == 0) { return 0; @@ -1542,7 +1538,7 @@ s32 ov44_02234D28(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234D4C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234D4C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, arg0->unk2D, heapID); arg0->unk5 = 7; @@ -1551,7 +1547,7 @@ s32 ov44_02234D4C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234D88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234D88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1561,7 +1557,7 @@ s32 ov44_02234D88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Awaiting other members. -s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00123, heapID); ov44_022342B8(arg0); @@ -1572,7 +1568,7 @@ s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_arg return 0; } -s32 ov44_02234DE4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234DE4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); if (ov44_02233914(&arg0->unk30) == 0) { return 0; @@ -1582,7 +1578,7 @@ s32 ov44_02234DE4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Communicating. Please stand by... -s32 ov44_02234E08(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234E08(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); if (arg0->unk12 != 0) { arg0->unk12 = 0U; @@ -1608,11 +1604,11 @@ s32 ov44_02234E08(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234EA4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234EA4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; if (sub_02037B38(14) != 0) { - s16 subroutine_arg0 = (s16) arg0->unk0[27]; + s16 subroutine_arg0 = (s16)arg0->unk0[27]; if (ov44_02233F64(arg0) != sub_02037454()) { temp_r0 = arg0->unk8 - 1; arg0->unk8 = temp_r0; @@ -1628,15 +1624,15 @@ s32 ov44_02234EA4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234EF4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234EF4(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 i = 0; s32 temp_r7 = ov44_02233F64(arg0); s32 sp0 = sub_0203769C(); s32 var_r5 = 0; - + for (i = 0; i < temp_r7; i++) { if (sp0 != i) { - u16* temp_r0 = sub_02037C44(i); + u16 *temp_r0 = sub_02037C44(i); if (temp_r0 != NULL) { if (temp_r0[0] == arg0->unk0[27]) { var_r5++; @@ -1655,14 +1651,14 @@ s32 ov44_02234EF4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234F44(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234F44(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { sub_020398D4(1, 1); sub_02037AC0(18); arg0->unk5 = 14; return 0; } -s32 ov44_02234F60(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234F60(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (sub_02037B38(18) != 0) { ov44_022342E0(arg0, arg1, heapID); arg0->unk7 = 1; @@ -1671,7 +1667,7 @@ s32 ov44_02234F60(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02234F88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234F88(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk30.listMenu2D != NULL) { Clear2dMenuWindowAndDelete(arg0->unk30.listMenu2D, heapID); arg0->unk30.listMenu2D = NULL; @@ -1683,13 +1679,13 @@ s32 ov44_02234F88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // A member had to drop out.\nPlease register from the start again.\r -s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00118, heapID); arg0->unk5 = 17; return 0; } -s32 ov44_02234FDC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02234FDC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1700,7 +1696,7 @@ s32 ov44_02234FDC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 1; } -s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 strno; ov44_02233F6C(arg0, heapID); @@ -1716,7 +1712,7 @@ s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_ar return 0; } -s32 ov44_02235038(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235038(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233F6C(arg0, heapID); if (ov44_0223442C(arg0) == 1) { arg0->unk5 = 10; @@ -1731,7 +1727,7 @@ s32 ov44_02235038(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02235090(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235090(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; ov44_02233F6C(arg0, heapID); @@ -1755,7 +1751,7 @@ s32 ov44_02235090(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // The leader appears busy.\nPlease apply again.\r -s32 ov44_02235100(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235100(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { arg0->unk26 = sub_02034870(0); if (arg0->unk26 == 32) { GF_AssertFail(); @@ -1768,7 +1764,7 @@ s32 ov44_02235100(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02235158(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235158(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (ov44_02233914(&arg0->unk30) == 0) { return 0; } @@ -1777,7 +1773,7 @@ s32 ov44_02235158(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_0223518C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_0223518C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { s32 temp_r0; s8 var_r0; @@ -1795,7 +1791,7 @@ s32 ov44_0223518C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum } // Communicating with {STRVAR_1 3, 0, 0}... -s32 ov44_022351BC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022351BC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00017, heapID); ov44_022342B8(arg0); arg0->unk8 = 90; @@ -1803,7 +1799,7 @@ s32 ov44_022351BC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_022351DC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_022351DC(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (arg0->unk8 > 0) { arg0->unk8 = arg0->unk8 - 1; return 0; @@ -1817,7 +1813,7 @@ s32 ov44_022351DC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02235218(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235218(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { ov44_02233E48(arg0); if ((sub_020390C4() == 1) && (sub_020373B4(0) == 1)) { sub_020378E4(0); @@ -1828,9 +1824,9 @@ s32 ov44_02235218(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } -s32 ov44_02235268(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { - u8* temp_r0; - +s32 ov44_02235268(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { + u8 *temp_r0; + if (IsPaletteFadeFinished() != 0) { sub_02034354(arg1->unk8, 0); arg0->unk27 = 1; @@ -1868,18 +1864,17 @@ s32 ov44_02235268(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum return 0; } - -s32 ov44_0223532C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_0223532C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { if (IsPaletteFadeFinished() != 0) { arg0->unk5 = 0; } return 0; } -s32 ov44_02235340(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { +s32 ov44_02235340(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { sub_02039358(); sub_02039B58(); arg0->unk7 = 0; sub_020398D4(0, 1); return 1; -} \ No newline at end of file +} diff --git a/src/pokeathlon/pokeathlon_course.c b/src/pokeathlon/pokeathlon_course.c index 67ed5c700a..49d24380be 100644 --- a/src/pokeathlon/pokeathlon_course.c +++ b/src/pokeathlon/pokeathlon_course.c @@ -384,13 +384,13 @@ u32 PokeathlonCourse_GetField3D8_AtIndex(PokeathlonCourseData *data, u8 index) { u32 ov96_021E5E7C(PokeathlonCourseData *data) { u8 i, j, numParticipants; BOOL flag = (PokeathlonCourse_GetMode(data) == 1); - u32* fieldPtr = data->field_3D8; + u32 *fieldPtr = data->field_3D8; numParticipants = flag ? 4 : 3; for (i = 0; i < 10; i++) { BOOL match = TRUE; for (j = 0; j < numParticipants; j++) { - if (fieldPtr[j] != ov96_0221A934[i*4+j]) { + if (fieldPtr[j] != ov96_0221A934[i * 4 + j]) { match = FALSE; break; } diff --git a/src/safari_zone.c b/src/safari_zone.c index 8b87c22aae..44bb7bee86 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -31,19 +31,19 @@ SafariZone *Save_SafariZone_Get(SaveData *saveData) { void Save_SafariZone_Init(SafariZone *safari_zone) { for (s32 i = 0; i < SAFARI_ZONE_MAX_AREA_SETS; i++) { - MI_CpuClear8(&safari_zone->area_sets[i], sizeof(SAFARIZONE_AREASET)); + MI_CpuClear8(&safari_zone->area_sets[i], sizeof(SafariZoneAreaSet)); } SafariZone_ClearLeader(&safari_zone->link_leader); } -void SafariZone_ResetAreaSetToDefaultSet(SAFARIZONE_AREASET *area_set, u32 default_set_no) { +void SafariZone_ResetAreaSetToDefaultSet(SafariZoneAreaSet *area_set, u32 default_set_no) { u32 default_set_no_mod = default_set_no % NELEMS(sSafariZoneDefaultAreaSets); for (s32 i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; i++) { SafariZone_InitArea(&area_set->areas[i], sSafariZoneDefaultAreaSets[default_set_no_mod][i]); } - MI_CpuClear8(area_set->unk2DC, sizeof(area_set->unk2DC)); + MI_CpuClear8(area_set->areaLevels, sizeof(area_set->areaLevels)); } void sub_0202F5F8(SafariZone *safari_zone, s32 areaSetNo) { @@ -59,7 +59,7 @@ u8 sub_0202F620(SafariZone *safari_zone) { return safari_zone->unk5F9_6; } -SAFARIZONE_AREASET *SafariZone_GetAreaSet(SafariZone *safari_zone, s32 area_set_no) { +SafariZoneAreaSet *SafariZone_GetAreaSet(SafariZone *safari_zone, s32 area_set_no) { if (area_set_no == 3) { area_set_no = safari_zone->unk5F9_6; } @@ -72,34 +72,34 @@ SAFARIZONE_AREASET *SafariZone_GetAreaSet(SafariZone *safari_zone, s32 area_set_ return &safari_zone->area_sets[area_set_no]; } -void SafariZone_CopyAreaSet(SafariZone *safari_zone, s32 area_set_no, SAFARIZONE_AREASET *area_set_dest) { +void SafariZone_CopyAreaSet(SafariZone *safari_zone, s32 area_set_no, SafariZoneAreaSet *area_set_dest) { if (area_set_no >= SAFARI_ZONE_MAX_AREA_SETS) { GF_ASSERT(FALSE); SafariZone_InitAreaSet(area_set_dest); return; } - MI_CpuCopy8(&safari_zone->area_sets[area_set_no], area_set_dest, sizeof(SAFARIZONE_AREASET)); + MI_CpuCopy8(&safari_zone->area_sets[area_set_no], area_set_dest, sizeof(SafariZoneAreaSet)); } -void SafariZone_SetAreaSet(SafariZone *safari_zone, s32 area_set_no, SAFARIZONE_AREASET *area_set_src) { +void SafariZone_SetAreaSet(SafariZone *safari_zone, s32 area_set_no, SafariZoneAreaSet *area_set_src) { if (area_set_no >= SAFARI_ZONE_MAX_AREA_SETS) { GF_ASSERT(FALSE); return; } - MI_CpuCopy8(area_set_src, &safari_zone->area_sets[area_set_no], sizeof(SAFARIZONE_AREASET)); + MI_CpuCopy8(area_set_src, &safari_zone->area_sets[area_set_no], sizeof(SafariZoneAreaSet)); } -void sub_0202F6A0(SafariZone *safari_zone, u8 a1) { +void SafariZone_SetLevel(SafariZone *safari_zone, u8 a1) { safari_zone->unk5F8 = a1; } -u8 sub_0202F6AC(SafariZone *safari_zone) { +u8 SafariZone_GetLevel(SafariZone *safari_zone) { return safari_zone->unk5F8; } -void sub_0202F6B8(SAFARIZONE_AREASET *area_set, s32 a1) { +void SafariZone_AddToAllAreaLevels(SafariZone *safariZone, s32 a1) { u8 sp8[6]; u32 area_no; int j; @@ -112,15 +112,15 @@ void sub_0202F6B8(SAFARIZONE_AREASET *area_set, s32 a1) { j = 0; MI_CpuClear8(sp8, NELEMS(sp8)); for (i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; i++) { - area_no = area_set->areas[i].area_no; + area_no = safariZone->area_sets[0].areas[i].area_no; if (sub_0202FA3C(area_no, sp8, j)) { continue; } - if (area_set->unk2DC[area_no] + a1 < 0xFF) { - area_set->unk2DC[area_no] += a1; + if (safariZone->area_sets[0].areaLevels[area_no] + a1 < 0xFF) { + safariZone->area_sets[0].areaLevels[area_no] += a1; } else { - area_set->unk2DC[area_no] = 0xFF; + safariZone->area_sets[0].areaLevels[area_no] = 0xFF; } sp8[j++] = area_no; @@ -216,17 +216,17 @@ void SafariZone_DeactivateLinkIfExpired(SafariZone *safari_zone) { } } -void SafariZone_SwapAreasInSet(SAFARIZONE_AREASET *area_set, u32 first, u32 second) { +void SafariZone_SwapAreasInSet(SafariZoneAreaSet *area_set, u32 first, u32 second) { SAFARIZONE_AREA tmp = area_set->areas[first]; area_set->areas[first] = area_set->areas[second]; area_set->areas[second] = tmp; } -void SafariZone_InitAreaInSet(SAFARIZONE_AREASET *area_set, s32 area_idx, u32 area_no) { +void SafariZone_InitAreaInSet(SafariZoneAreaSet *area_set, s32 area_idx, u32 area_no) { SafariZone_InitArea(&area_set->areas[area_idx], area_no); } -void SafariZone_AddObjectToArea(SAFARIZONE_AREASET *area_set, s32 area_idx, const SAFARIZONE_OBJECT *object) { +void SafariZone_AddObjectToArea(SafariZoneAreaSet *area_set, s32 area_idx, const SAFARIZONE_OBJECT *object) { if (area_idx >= SAFARI_ZONE_MAX_AREAS_PER_SET) { GF_ASSERT(FALSE); return; @@ -241,7 +241,7 @@ void SafariZone_AddObjectToArea(SAFARIZONE_AREASET *area_set, s32 area_idx, cons area->objects[area->active_object_count++] = *object; } -void SafariZone_RemoveObjectFromArea(SAFARIZONE_AREASET *area_set, s32 area_idx, s32 object_idx) { +void SafariZone_RemoveObjectFromArea(SafariZoneAreaSet *area_set, s32 area_idx, s32 object_idx) { if (area_idx >= SAFARI_ZONE_MAX_AREAS_PER_SET) { GF_ASSERT(FALSE); return; @@ -264,7 +264,7 @@ void SafariZone_RemoveObjectFromArea(SAFARIZONE_AREASET *area_set, s32 area_idx, } } -void SafariZone_InitAreaSet(SAFARIZONE_AREASET *area_set) { +void SafariZone_InitAreaSet(SafariZoneAreaSet *area_set) { for (s32 i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; i++) { SafariZone_InitArea(&area_set->areas[i], i); } diff --git a/src/save_pokegear.c b/src/save_pokegear.c index 1f1412e590..0cab4bf06d 100644 --- a/src/save_pokegear.c +++ b/src/save_pokegear.c @@ -4,6 +4,8 @@ #include "constants/items.h" +#include "overlay_2/overlay_02_gear_phone.h" + #include "math_util.h" static void SavePokegear_Init_Internal(SavePokegear *pokegear); @@ -194,42 +196,42 @@ static void PhoneCallPersistentState_Init(PhoneCallPersistentState *callPersiste callPersistentState->kenjiWaitDays = 7; } -void sub_0202F01C(PhoneCallPersistentState *callPersistentState, u8 idx) { +void PhoneCallPersistentState_SetCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx) { u8 byteno; u8 flagno; - if (idx >= 13) { + if (idx >= NUM_CALL_TRIGGERS) { GF_ASSERT(FALSE); return; } byteno = idx / 8; flagno = idx % 8; - callPersistentState->unk_14E[byteno] |= (1 << flagno); + callPersistentState->callTriggerFlags[byteno] |= (1 << flagno); } -void sub_0202F050(PhoneCallPersistentState *callPersistentState, u8 idx) { +void PhoneCallPersistentState_ClearCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx) { u8 byteno; u8 mask; - if (idx >= 13) { + if (idx >= NUM_CALL_TRIGGERS) { GF_ASSERT(FALSE); return; } byteno = idx / 8; mask = 1 << (idx % 8); - if (callPersistentState->unk_14E[byteno] & mask) { - callPersistentState->unk_14E[byteno] ^= mask; + if (callPersistentState->callTriggerFlags[byteno] & mask) { + callPersistentState->callTriggerFlags[byteno] ^= mask; } } -BOOL sub_0202F08C(PhoneCallPersistentState *callPersistentState, u8 idx) { +BOOL PhoneCallPersistentState_CheckCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx) { u8 byteno; u8 flagno; - if (idx >= 13) { + if (idx >= NUM_CALL_TRIGGERS) { GF_ASSERT(FALSE); return FALSE; } byteno = idx / 8; flagno = idx % 8; - return (callPersistentState->unk_14E[byteno] >> flagno) & 1; + return (callPersistentState->callTriggerFlags[byteno] >> flagno) & 1; } void PhoneCallPersistentState_PhoneRematches_SetSeeking(PhoneCallPersistentState *callPersistentState, u8 idx, BOOL state) { diff --git a/src/scrcmd_c.c b/src/scrcmd_c.c index 633acb9816..6054c2034a 100644 --- a/src/scrcmd_c.c +++ b/src/scrcmd_c.c @@ -3406,10 +3406,10 @@ BOOL ScrCmd_SafariZoneAction(ScriptContext *ctx) { case 1: Save_VarsFlags_ClearSafariSysFlag(varsFlags); sub_0202F5F8(safariZone, 1); - r1 = sub_0202F6AC(safariZone); + r1 = SafariZone_GetLevel(safariZone); if (r1 != 0) { - sub_0209730C(ctx->fieldSystem->saveData, r1); - sub_0202F6A0(safariZone, 0); + SaveData_SafariZone_CheckAreasWithUpdatedEncounters(ctx->fieldSystem->saveData, r1); + SafariZone_SetLevel(safariZone, 0); } *p_nSafariBall = 0; *p_nSafariSteps = 0; @@ -4733,8 +4733,8 @@ BOOL ScrCmd_148(ScriptContext *ctx) { return FALSE; } -BOOL ScrCmd_149(ScriptContext *ctx) { - sub_0202F050(SaveData_GetPhoneCallPersistentState(ctx->fieldSystem->saveData), ScriptReadByte(ctx)); +BOOL UnsetPhoneCallTrigger(ScriptContext *ctx) { + PhoneCallPersistentState_ClearCallTriggerFlag(SaveData_GetPhoneCallPersistentState(ctx->fieldSystem->saveData), ScriptReadByte(ctx)); return FALSE; } diff --git a/src/terrain_attributes.c b/src/terrain_attributes.c index 0d1eb33253..713e9a0a19 100644 --- a/src/terrain_attributes.c +++ b/src/terrain_attributes.c @@ -13,10 +13,10 @@ void TerrainAttributes_New(FieldSystem *fieldSystem, const u8 blockCount) { } void TerrainAttributes_Free(FieldSystem *fieldSystem) { - if (fieldSystem->terrainAttributes != NULL) { - Heap_Free(fieldSystem->terrainAttributes); - fieldSystem->terrainAttributes = NULL; - } + if (fieldSystem->terrainAttributes != NULL) { + Heap_Free(fieldSystem->terrainAttributes); + fieldSystem->terrainAttributes = NULL; + } } const u16 *TerrainAttributes_Get(const u32 mapMatrixIndex, const TerrainAttributes *terrainAttributes) { @@ -56,7 +56,7 @@ static void TerrainAttributes_Load(MAPMATRIX *mapMatrix, TerrainAttributes *terr NARC_Delete(landDataNARC); } -static const u8 TerrainAttributes_GetOrPushLandDataID(const u16 landDataID, u16 *blockIndexToLandDataID, u8 *blockCount){ +static const u8 TerrainAttributes_GetOrPushLandDataID(const u16 landDataID, u16 *blockIndexToLandDataID, u8 *blockCount) { u8 i; for (i = 0; i < *blockCount; i++) { diff --git a/src/unk_02055418.c b/src/unk_02055418.c index fdfa4511fe..5d94000aa9 100644 --- a/src/unk_02055418.c +++ b/src/unk_02055418.c @@ -87,7 +87,7 @@ void sub_02055508(FieldSystem *fieldSystem, int days) { sub_0202F294(SaveData_GetPhoneCallPersistentState(fieldSystem->saveData), days); if (!hasPenalty) { sub_02031CCC(Save_ApricornBox_Get(fieldSystem->saveData), days); - sub_0209730C(fieldSystem->saveData, days); + SaveData_SafariZone_CheckAreasWithUpdatedEncounters(fieldSystem->saveData, days); } PokeathlonSave_ResetUnkB7C(Save_Pokeathlon_Get(fieldSystem->saveData)); Save_VarsFlags_UpdateBuenasPasswordSet(Save_VarsFlags_Get(fieldSystem->saveData)); diff --git a/src/unk_02092BE8.c b/src/unk_02092BE8.c index 17f1c87fef..b95944ce8d 100644 --- a/src/unk_02092BE8.c +++ b/src/unk_02092BE8.c @@ -77,7 +77,7 @@ static void FieldSystem_InitPokegearArgs(FieldSystem *sys, PokegearArgs *pokegea pokegearArgs->callScriptID = Unk_struct.callScriptID; // message num? pokegearArgs->isScriptedCall = Unk_struct.isScriptedCall; // call type? if (pokegearArgs->isScriptedCall == 3) { - sub_0202F050(SaveData_GetPhoneCallPersistentState(sys->saveData), Unk_struct.unk_2); + PhoneCallPersistentState_ClearCallTriggerFlag(SaveData_GetPhoneCallPersistentState(sys->saveData), Unk_struct.callTriggerID); } else if (pokegearArgs->isScriptedCall == 0) { sub_0202AB18(Save_Misc_Get(sys->saveData), Unk_struct.unk_0, Unk_struct.unk_1, pokegearArgs->callerId); } @@ -134,7 +134,7 @@ PhoneBookEntry *GearPhoneRingManager_GetCallerPhoneBookEntry(GearPhoneRingManage } void sub_02092E14(GearPhoneRingManager *ptr, u8 a1, BOOL a2) { - sub_0202F01C(ptr->savingsData, a1); + PhoneCallPersistentState_SetCallTriggerFlag(ptr->savingsData, a1); if (a2) { if (ptr->unk_var8 < ptr->unk_varC - 1) { ptr->unk_var8 = ptr->unk_varC - 1; @@ -160,7 +160,7 @@ static void sub_02092E54(GearPhoneRingManager *ptr) { u8 var4057 = Save_VarsFlags_GetVar4057(state); u8 i; for (i = 0; i < 5; i++) { - if (sub_0202F08C(ptr->savingsData, i + 7)) { + if (PhoneCallPersistentState_CheckCallTriggerFlag(ptr->savingsData, i + 7)) { return; } } @@ -172,7 +172,7 @@ static void sub_02092E54(GearPhoneRingManager *ptr) { if (sub_0202F798(zone, igt, 3) == 0) { return; } - sub_02092E14(ptr, 7, TRUE); + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_NEXT_TEST, TRUE); } else { if (var4057 < 6) { return; @@ -186,19 +186,17 @@ static void sub_02092E54(GearPhoneRingManager *ptr) { } if (Unkvar > 1) { if (var < 3) { - sub_02092E14(ptr, 11, TRUE); + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_MEMORY_LOSS, TRUE); } else { - sub_02092E14(ptr, 10, TRUE); + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_EVEN_MORE_OBJECTS, TRUE); } } else { if (var == 0) { - sub_02092E14(ptr, 8, TRUE); + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_OBJECT_ARRANGEMENT, TRUE); + } else if (var == 3) { + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_EVEN_MORE_OBJECTS, TRUE); } else { - if (var == 3) { - sub_02092E14(ptr, 10, TRUE); - } else { - sub_02092E14(ptr, 9, TRUE); - } + sub_02092E14(ptr, CALL_TRIGGER_BAOBA_MORE_OBJECTS, TRUE); } } } @@ -228,7 +226,7 @@ static void gearRingingManagerReset(GearPhoneRingManager *ptr) { ptr->callerId = PHONE_CONTACT_NONE; ptr->isScriptedCall = 0; ptr->callScriptID = 0; - ptr->unk_var7 = 0; + ptr->callTriggerID = 0; ptr->entry.id = PHONE_CONTACT_NONE; ptr->unk_var12 = 50; } @@ -282,13 +280,13 @@ BOOL sub_02093070(FieldSystem *sys) { if (SavePokegear_IsNumberRegistered(SaveData_Pokegear_Get(sys->saveData), PHONE_CONTACT_BILL) == 0xff) { return FALSE; } - if (Save_VarsFlags_CheckFlagInArray(Save_VarsFlags_Get(sys->saveData), FLAG_UNK_985)) { + if (Save_VarsFlags_CheckFlagInArray(Save_VarsFlags_Get(sys->saveData), FLAG_SYS_GOT_BILL_PC_FULL_CALL)) { return FALSE; } if (PCStorage_CountEmptySpotsInAllBoxes(SaveArray_PCStorage_Get(sys->saveData)) != 0) { return FALSE; } - sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), 3, TRUE); + sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), CALL_TRIGGER_BILL_PC_FULL, TRUE); return TRUE; } @@ -306,7 +304,7 @@ BOOL sub_020930C4(FieldSystem *sys) { var = 9; // unreachable } if (!Save_VarsFlags_CheckFlagInArray(state, var + FLAG_SYS_OAK_ACKNOWLEDGED_NATIONAL_DEX_COMPLETION)) { - sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), 4, FALSE); + sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), CALL_TRIGGER_OAK_DEX_PROGRESS, FALSE); return TRUE; } return FALSE; @@ -316,7 +314,7 @@ BOOL sub_02093134(FieldSystem *sys, Pokemon *mon) { if (MonIsFromTogepiEgg(mon, sys->saveData) == 0) { return FALSE; } - sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), 0, 1); + sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), CALL_TRIGGER_ELM_EGG_HATCHED, 1); Save_VarsFlags_SetFlagInArray(Save_VarsFlags_Get(sys->saveData), FLAG_SYS_HATCHED_TOGEPI_EGG); return TRUE; } @@ -326,9 +324,9 @@ BOOL sub_0209316C(FieldSystem *sys) { if (SavePokegear_IsNumberRegistered(SaveData_Pokegear_Get(sys->saveData), PHONE_CONTACT_DAY_C_MAN) == 0xff) { return FALSE; } - if (Save_VarsFlags_CheckFlagInArray(state, FLAG_UNK_992) && !Save_VarsFlags_CheckFlagInArray(state, FLAG_UNK_99E)) { + if (Save_VarsFlags_CheckFlagInArray(state, FLAG_SYS_TRIGGER_EGG_CALL) && !Save_VarsFlags_CheckFlagInArray(state, FLAG_SYS_SUBSCRIBED_TO_EGG_CALLS)) { return FALSE; } - sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), 5, 1); + sub_02092E14(FieldSystem_GetGearPhoneRingManager(sys), CALL_TRIGGER_DAYCARE_HAS_EGG, 1); return TRUE; } diff --git a/src/unk_02097268.c b/src/unk_02097268.c new file mode 100644 index 0000000000..a48b983d0f --- /dev/null +++ b/src/unk_02097268.c @@ -0,0 +1,301 @@ +#include "unk_02097268.h" + +#include "constants/buildmodel.h" +#include "constants/phone_constants.h" + +#include "gf_gfx_loader.h" +#include "sys_flags.h" + +typedef struct SafariZoneAreaEncounterSlot { + u16 species; + u16 level; +} SafariZoneAreaEncounterSlot; + +typedef struct SafariZoneAreaBonusSlotUnlockConditions { + u8 object1_type; + u8 object1_level; + u8 object2_type; + u8 object2_level; +} SafariZoneAreaBonusSlotUnlockConditions; + +typedef struct SafariZoneObjectLevels { + u8 levels[4]; + u8 count[4]; +} SafariZoneObjectLevels; + +typedef struct LoadedSafariZoneEncounterData { + SafariZoneAreaEncounterSlot *baseMons; + SafariZoneAreaEncounterSlot *bonusMons; + SafariZoneAreaBonusSlotUnlockConditions *unlockConditions; + int bonusMonsArraySize; + u8 numBonusMons; +} LoadedSafariZoneEncounterData; + +static BOOL encSlotsEqual(const EncounterSlot *a, const EncounterSlot *b); +static BOOL encSlotArraysEqual(const EncounterSlot *a, const EncounterSlot *b); +static BOOL areaIsInArray(u8 areaNum, const u8 *areas, u8 numAreas); +static u8 getObjectLevelBoost(u8 days, u8 objectType); +static void SafariZoneAreaSet_GetObjectsInArea(SafariZoneAreaSet *areaSet, int area, SafariZoneObjectLevels *out); + +// clang-format off +static const SafariObjectConfig sObjects[NUM_SAFARI_ZONE_OBJECT_IDS] = { + [SAFARI_ZONE_OBJECTID_SHRUBBERY] = { BUILD_MODEL_SAF_GO01, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_PLAINS }, + [SAFARI_ZONE_OBJECTID_RED_FLOWER] = { BUILD_MODEL_SAF_GO02, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_PLAINS }, + [SAFARI_ZONE_OBJECTID_WHITE_FLOWER] = { BUILD_MODEL_SAF_GO03, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_PLAINS }, + [SAFARI_ZONE_OBJECTID_TREE] = { BUILD_MODEL_SAF_TO01, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_FOREST }, + [SAFARI_ZONE_OBJECTID_STUMP] = { BUILD_MODEL_SAF_TO02, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_FOREST }, + [SAFARI_ZONE_OBJECTID_BRANCHES] = { BUILD_MODEL_SAF_TO03, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_FOREST }, + [SAFARI_ZONE_OBJECTID_SMALL_ROCK] = { BUILD_MODEL_SAF_RO01, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_PEAK }, + [SAFARI_ZONE_OBJECTID_BIG_ROCK] = { BUILD_MODEL_SAF_RO02, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_PEAK }, + [SAFARI_ZONE_OBJECTID_MOSSY_ROCK] = { BUILD_MODEL_SAF_RO03, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_PEAK }, + [SAFARI_ZONE_OBJECTID_PUDDLE] = { BUILD_MODEL_SAF_WO01, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_WATER }, + [SAFARI_ZONE_OBJECTID_FOUNTAIN] = { BUILD_MODEL_SAF_WO02, TRUE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_WATER }, + [SAFARI_ZONE_OBJECTID_WATER_HOLE] = { BUILD_MODEL_SAF_WO03, FALSE, 2, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_WATER }, + [SAFARI_ZONE_OBJECTID_BENCH] = { BUILD_MODEL_SAF_EO01, FALSE, 2, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_SHORT_FENCE1] = { BUILD_MODEL_SAF_EO02, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_SHORT_FENCE2] = { BUILD_MODEL_SAF_EO03, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_LONG_FENCE1] = { BUILD_MODEL_SAF_EO04, FALSE, 2, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_LONG_FENCE2] = { BUILD_MODEL_SAF_EO05, FALSE, 1, 2, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_SIGNBOARD] = { BUILD_MODEL_SAF_EO06, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_YOUR_STATUE] = { BUILD_MODEL_SAF_EO07M, FALSE, 1, 1, TRUE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_YOUR_FLAG] = { BUILD_MODEL_SAF_EO08M, FALSE, 1, 1, TRUE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_OUTSIDE_LAMP] = { BUILD_MODEL_SAF_EO09, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_GUIDEPOST_R_] = { BUILD_MODEL_SAF_EO10, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_GUIDEPOST_L_] = { BUILD_MODEL_SAF_EO11, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, + [SAFARI_ZONE_OBJECTID_TRASH_CAN] = { BUILD_MODEL_SAF_EO12, FALSE, 1, 1, FALSE, SAFARI_ZONE_OBJECT_TYPE_NONE }, +}; +// clang-format on + +void GetSafariObjectConfig(SafariObjectConfig *dest, int idx, int gender) { + if (idx >= NUM_SAFARI_ZONE_OBJECT_IDS) { + GF_ASSERT(FALSE); + idx = 0; + } + *dest = sObjects[idx]; + if (dest->hasGenderedLayout && gender == TRAINER_FEMALE) { + // BUILD_MODEL_SAF_EO07M --> BUILD_MODEL_SAF_EO07F + // BUILD_MODEL_SAF_EO08M --> BUILD_MODEL_SAF_EO08F + ++dest->buildModel; + } +} + +static BOOL encSlotsEqual(const EncounterSlot *a, const EncounterSlot *b) { + if (a->species != b->species || a->maxLevel != b->maxLevel || a->minLevel != b->minLevel) { + return FALSE; + } + + return TRUE; +} + +static BOOL encSlotArraysEqual(const EncounterSlot *a, const EncounterSlot *b) { + for (int i = 0; i < NUM_ENCOUNTERS_SAFARI; ++i) { + if (!encSlotsEqual(&a[i], &b[i])) { + return FALSE; + } + } + + return TRUE; +} + +static BOOL areaIsInArray(u8 areaNum, const u8 *areas, u8 numAreas) { + for (int i = 0; i < numAreas; ++i) { + if (areas[i] == areaNum) { + return TRUE; + } + } + + return FALSE; +} + +void SaveData_SafariZone_CheckAreasWithUpdatedEncounters(SaveData *saveData, int daysElapsed) { + int i; + int j; + int numAreas; + EncounterSlot *allEncounterSlots[SAFARI_ZONE_MAX_AREAS_PER_SET][NUM_SAFARI_ENCOUNTER_TYPES]; + EncounterSlot *encounters; + u8 areas[SAFARI_ZONE_MAX_AREAS_PER_SET]; + PhoneCallPersistentState *callPersistentState = SaveData_GetPhoneCallPersistentState(saveData); + SafariZone *safariZone = Save_SafariZone_Get(saveData); + SafariZoneAreaSet *areaSet = SafariZone_GetAreaSet(safariZone, 0); + + static const u16 ffff = 0xFFFF; + + if (SafariZone_GetObjectUnlockLevel(safariZone) == 0 || daysElapsed <= 0) { + return; + } + + if (Save_VarsFlags_CheckSafariSysFlag(Save_VarsFlags_Get(saveData))) { + int zoneLevel = SafariZone_GetLevel(safariZone); + SafariZone_SetLevel(safariZone, zoneLevel + daysElapsed); + return; + } + + numAreas = 0; + MI_CpuClear8(areas, sizeof(areas)); + MI_CpuClear8(allEncounterSlots, sizeof(allEncounterSlots)); + for (i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; ++i) { + // (((ffff >> i) & 1) * 4) + 1 + // fancy way of saying + // mapHasWater ? 5 : 1 + for (j = 0; j < (((ffff >> i) & 1) * 4) + 1; ++j) { + allEncounterSlots[i][j] = SafariZoneAreaSet_LoadAreaEncounters(areaSet, i, j, TIMEOFDAY_WILD_MORN, HEAP_ID_FIELD2); + } + } + SafariZone_AddToAllAreaLevels(safariZone, daysElapsed); + for (i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; ++i) { + u8 areaNum = areaSet->areas[i].area_no; + if (areaIsInArray(areaNum, areas, numAreas)) { + continue; + } + for (j = 0; j < (((ffff >> i) & 1) * 4) + 1; ++j) { + encounters = SafariZoneAreaSet_LoadAreaEncounters(areaSet, i, j, TIMEOFDAY_WILD_MORN, HEAP_ID_FIELD2); + if (encSlotArraysEqual(allEncounterSlots[i][j], encounters)) { + Heap_Free(encounters); + continue; + } + if (!areaIsInArray(areaNum, areas, numAreas)) { + areas[numAreas++] = areaNum; + } + Heap_Free(encounters); + } + } + for (i = 0; i < SAFARI_ZONE_MAX_AREAS_PER_SET; ++i) { + for (j = 0; j < (((ffff >> i) & 1) * 4) + 1; ++j) { + if (allEncounterSlots[i][j] != NULL) { + Heap_Free(allEncounterSlots[i][j]); + } + } + } + if (numAreas == 0) { + PhoneCallPersistentState_ClearCallTriggerFlag(callPersistentState, CALL_TRIGGER_BAOBA_NEW_POKEMON); + PhoneCallPersistentState_SafariZoneArrangement_Set(callPersistentState, NULL, 0); + } else { + PhoneCallPersistentState_SetCallTriggerFlag(callPersistentState, CALL_TRIGGER_BAOBA_NEW_POKEMON); + PhoneCallPersistentState_SafariZoneArrangement_Set(callPersistentState, areas, numAreas); + } +} + +EncounterSlot *SafariZoneAreaSet_LoadAreaEncounters(SafariZoneAreaSet *areaSet, int area, int encounterType, TimeOfDayWildParam timeOfDay, enum HeapID heapID) { + int i; + int offset; + u8 *encDataArc; + EncounterSlot *ret; + SAFARIZONE_AREA *safariZoneArea; + LoadedSafariZoneEncounterData *loadedEncData; + u32 lcl_heapID; // required to match + + safariZoneArea = &areaSet->areas[area]; + lcl_heapID = heapID; + ret = Heap_AllocAtEnd((enum HeapID)lcl_heapID, NUM_ENCOUNTERS_SAFARI * sizeof(EncounterSlot)); + + for (i = 0; i < NUM_ENCOUNTERS_SAFARI; ++i) { + if (encounterType == SAFARI_ENCOUNTER_SLOTS_LAND) { + ret[i].species = SPECIES_RATTATA; + } else { + ret[i].species = SPECIES_MAGIKARP; + } + ret[i].maxLevel = ret[i].minLevel = 5; + } + + encDataArc = GfGfxLoader_LoadFromNarc(NARC_a_2_3_0, safariZoneArea->area_no, FALSE, (enum HeapID)lcl_heapID, TRUE); + if (encDataArc == NULL) { + return ret; + } + + loadedEncData = Heap_AllocAtEnd((enum HeapID)lcl_heapID, NUM_SAFARI_ENCOUNTER_TYPES * sizeof(LoadedSafariZoneEncounterData)); + offset = 8; + for (i = 0; i < NUM_SAFARI_ENCOUNTER_TYPES; ++i) { + loadedEncData[i].baseMons = (SafariZoneAreaEncounterSlot *)&encDataArc[offset]; + offset += TIMEOFDAY_WILD_MAX * NUM_ENCOUNTERS_SAFARI * sizeof(SafariZoneAreaEncounterSlot); + loadedEncData[i].bonusMons = (SafariZoneAreaEncounterSlot *)&encDataArc[offset]; + loadedEncData[i].numBonusMons = encDataArc[i]; + loadedEncData[i].bonusMonsArraySize = loadedEncData[i].numBonusMons * sizeof(SafariZoneAreaEncounterSlot); + offset += TIMEOFDAY_WILD_MAX * loadedEncData[i].bonusMonsArraySize; + loadedEncData[i].unlockConditions = (SafariZoneAreaBonusSlotUnlockConditions *)&encDataArc[offset]; + offset += loadedEncData[i].numBonusMons * sizeof(SafariZoneAreaBonusSlotUnlockConditions); + } + if (loadedEncData[1].numBonusMons == 0 && encounterType > 0) { + Heap_Free(loadedEncData); + Heap_Free(encDataArc); + return ret; + } + offset = NUM_ENCOUNTERS_SAFARI * timeOfDay; + for (i = 0; i < NUM_ENCOUNTERS_SAFARI; ++i) { + SafariZoneAreaEncounterSlot *slot = &loadedEncData[encounterType].baseMons[offset + i]; + ret[i].species = slot->species; + ret[i].maxLevel = ret[i].minLevel = slot->level; + } + + SafariZoneObjectLevels areaObjects; + u8 numBonusMons = 0; + SafariZoneAreaSet_GetObjectsInArea(areaSet, area, &areaObjects); + for (i = 0; i < loadedEncData[encounterType].numBonusMons; ++i) { + int idx; + SafariZoneAreaBonusSlotUnlockConditions *unlockConditions = &loadedEncData[encounterType].unlockConditions[i]; + if (areaObjects.levels[unlockConditions->object1_type - 1] < unlockConditions->object1_level) { + continue; + } + if (unlockConditions->object2_type != 0 && areaObjects.levels[unlockConditions->object2_type - 1] < unlockConditions->object2_level) { + continue; + } + idx = loadedEncData[encounterType].numBonusMons * timeOfDay + i; + ret[numBonusMons].species = loadedEncData[encounterType].bonusMons[idx].species; + ret[numBonusMons].maxLevel = ret[numBonusMons].minLevel = loadedEncData[encounterType].bonusMons[idx].level; + if (++numBonusMons > NUM_ENCOUNTERS_SAFARI - 1) { + break; + } + } + + Heap_Free(loadedEncData); + Heap_Free(encDataArc); + return ret; +} + +// clang-format off +static const u8 sObjectLevelBoosts[][5] = { + [SAFARI_ZONE_OBJECT_TYPE_PLAINS - 1] = { 1, 5, 10, 15, 20 }, + [SAFARI_ZONE_OBJECT_TYPE_FOREST - 1] = { 2, 6, 11, 16, 21 }, + [SAFARI_ZONE_OBJECT_TYPE_PEAK - 1] = { 3, 7, 12, 17, 22 }, + [SAFARI_ZONE_OBJECT_TYPE_WATER - 1] = { 4, 8, 13, 18, 23 }, +}; +// clang-format on + +static u8 getObjectLevelBoost(u8 days, u8 objectType) { + if (objectType == SAFARI_ZONE_OBJECT_TYPE_NONE) { + return 0; + } + for (int i = 0; i < 5; ++i) { + if (days < sObjectLevelBoosts[objectType - 1][i]) { + return i + 1; + } + } + if (days < 25) { + return 6; + } + return 7; +} + +static void SafariZoneAreaSet_GetObjectsInArea(SafariZoneAreaSet *areaSet, int area, SafariZoneObjectLevels *out) { + SafariObjectConfig objectConfig; + u8 areaLevel; + SAFARIZONE_AREA *szArea; + + szArea = &areaSet->areas[area]; + areaLevel = areaSet->areaLevels[szArea->area_no] / 10; + + MI_CpuClear8(out, sizeof(SafariZoneObjectLevels)); + + for (int i = 0; i < szArea->active_object_count; ++i) { + GetSafariObjectConfig(&objectConfig, szArea->objects[i].unk[0], 2); + if (objectConfig.objectType == SAFARI_ZONE_OBJECT_TYPE_NONE) { + continue; + } + ++out->count[objectConfig.objectType - 1]; + u8 attrBonus = getObjectLevelBoost(areaLevel, objectConfig.objectType); + if (out->levels[objectConfig.objectType - 1] + attrBonus > 255) { + out->levels[objectConfig.objectType - 1] = 255; + } else { + out->levels[objectConfig.objectType - 1] += attrBonus; + } + } +} diff --git a/tools/py_scripts/scrcmd.json b/tools/py_scripts/scrcmd.json index 85e7b9aa75..c2a3b8e14a 100644 --- a/tools/py_scripts/scrcmd.json +++ b/tools/py_scripts/scrcmd.json @@ -945,7 +945,7 @@ ] }, { - "name": "ScrCmd_149", + "name": "UnsetPhoneCallTrigger", "args": [ 1 ] @@ -5407,4 +5407,4 @@ "prefix": "DIR_" } } -} +} \ No newline at end of file