From 2e8be0b321ef123ac0dfc0d423ab138e7d54253a Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Thu, 4 Dec 2025 22:11:07 -0500 Subject: [PATCH] Moved min IQ consts to C --- asm/include/main_rodata_0209CECC.inc | 220 +++++++++++++++++++++++++++ asm/include/main_rodata_020A1894.inc | 1 + asm/include/main_rodata_020A18BC.inc | 1 + asm/main_rodata_0209CECC.s | 90 ----------- asm/main_rodata_020A1894.s | 19 +++ asm/main_rodata_020A18BC.s | 73 +++++++++ asm/overlay_29_0232E864.s | 1 + include/dungeon_parameters_3.h | 7 + include/dungeon_parameters_4.h | 7 + main.lsf | 4 + src/dungeon_parameters_3.c | 3 + src/dungeon_parameters_4.c | 3 + src/dungeon_pokemon_attributes_1.c | 5 +- 13 files changed, 341 insertions(+), 93 deletions(-) create mode 100644 asm/include/main_rodata_0209CECC.inc create mode 100644 asm/include/main_rodata_020A1894.inc create mode 100644 asm/include/main_rodata_020A18BC.inc create mode 100644 asm/main_rodata_020A1894.s create mode 100644 asm/main_rodata_020A18BC.s create mode 100644 include/dungeon_parameters_3.h create mode 100644 include/dungeon_parameters_4.h create mode 100644 src/dungeon_parameters_3.c create mode 100644 src/dungeon_parameters_4.c diff --git a/asm/include/main_rodata_0209CECC.inc b/asm/include/main_rodata_0209CECC.inc new file mode 100644 index 00000000..ffbc56b2 --- /dev/null +++ b/asm/include/main_rodata_0209CECC.inc @@ -0,0 +1,220 @@ +#pragma once +.public ARM9_UNKNOWN_DATA__NA_209EAAC +.public MISSION_FLOOR_RANKS_AND_ITEM_LISTS_1 +.public _0209CE8C +.public _0209CE94 +.public _0209CE9C +.public _0209CEA4 +.public _0209CFA4 +.public _0209CFA8 +.public _0209CFB0 +.public _0209CFBC +.public _0209CFC8 +.public _0209CFD4 +.public _0209CFE0 +.public _0209CFEC +.public _0209CFF8 +.public _0209D004 +.public _0209D010 +.public _0209D01C +.public _0209D028 +.public _0209D034 +.public _0209D040 +.public _0209D04C +.public _0209D058 +.public _0209D068 +.public _0209D078 +.public _0209D088 +.public _0209D098 +.public _0209D0A8 +.public _0209D0B8 +.public _0209D0C8 +.public _0209D0D8 +.public _0209D0E8 +.public _0209D0F8 +.public _0209D108 +.public _0209D118 +.public _0209D128 +.public _0209D138 +.public _0209D148 +.public _0209D158 +.public _0209D168 +.public _0209D178 +.public _0209D188 +.public _0209D198 +.public _0209D1A8 +.public _0209D1B8 +.public _0209D1C8 +.public _0209D1D8 +.public _0209D1E8 +.public _0209D1F8 +.public _0209D208 +.public _0209D218 +.public _0209D228 +.public _0209D238 +.public _0209D248 +.public _0209D258 +.public _0209D268 +.public _0209D27C +.public _0209D290 +.public _0209D2A4 +.public _0209D2B8 +.public _0209D2CC +.public _0209D2E0 +.public _0209D2F4 +.public _0209D308 +.public _0209D31C +.public _0209D330 +.public _0209D344 +.public _0209D358 +.public _0209D36C +.public _0209D380 +.public _0209D394 +.public _0209D3A8 +.public _0209D3BC +.public _0209D3D0 +.public _0209D3E4 +.public _0209D3F8 +.public _0209D40C +.public _0209D420 +.public _0209D434 +.public _0209D448 +.public _0209D45C +.public _0209D470 +.public _0209D484 +.public _0209D498 +.public _0209D4AC +.public _0209D4C0 +.public _0209D4D8 +.public _0209D4F0 +.public _0209D508 +.public _0209D520 +.public _0209D538 +.public _0209D550 +.public _0209D568 +.public _0209D580 +.public _0209D598 +.public _0209D5B0 +.public _0209D5C8 +.public _0209D5E0 +.public _0209D5F8 +.public _0209D610 +.public _0209D628 +.public _0209D640 +.public _0209D658 +.public _0209D670 +.public _0209D688 +.public _0209D6A0 +.public _0209D6BC +.public _0209D6D8 +.public _0209D6F4 +.public _0209D710 +.public _0209D72C +.public _0209D748 +.public _0209D764 +.public _0209D780 +.public _0209D79C +.public _0209D7B8 +.public _0209D7D4 +.public _0209D7F0 +.public _0209D810 +.public _0209D830 +.public _0209D850 +.public _0209EAB4 +.public _0209EABC +.public _0209EAC4 +.public _0209EACC +.public _0209EAD4 +.public _0209EADC +.public _0209EAE4 +.public _0209EAEC +.public _0209EAF4 +.public _0209EAFC +.public _0209EB04 +.public _0209EB0C +.public _0209EB14 +.public _0209EB1C +.public _0209EB24 +.public _0209EB2C +.public _0209EB34 +.public _0209EB3C +.public _0209EB44 +.public _0209EB4C +.public _0209EB54 +.public _0209EB60 +.public _0209EB6C +.public _0209EB78 +.public _0209EB84 +.public _0209EB90 +.public _0209EB9C +.public _0209EBA8 +.public _0209EBB4 +.public _0209EBC0 +.public _0209EBCC +.public _0209EBD8 +.public _0209EBE4 +.public _0209EBF0 +.public _0209EBFC +.public _0209EC08 +.public _0209EC14 +.public _0209EC20 +.public _0209EC2C +.public _0209EC38 +.public _0209EC48 +.public _0209EC58 +.public _0209EC68 +.public _0209EC78 +.public _0209EC88 +.public _0209EC98 +.public _0209ECA8 +.public _0209ECB8 +.public _0209ECC8 +.public _0209ECD8 +.public _0209ECE8 +.public _0209ECF8 +.public _0209ED08 +.public _0209ED18 +.public _0209ED2C +.public _0209ED40 +.public _0209ED54 +.public _0209ED68 +.public _0209ED7C +.public _0209ED90 +.public _0209EDA4 +.public _0209EDB8 +.public _0209EDCC +.public _0209EDE0 +.public _0209EDF4 +.public _0209EE0C +.public _0209EE24 +.public _0209EE3C +.public _0209EE54 +.public _0209EE6C +.public _0209EE84 +.public _0209EE9C +.public _0209EEB4 +.public _0209EECC +.public _0209EEE4 +.public _0209EEFC +.public _0209EF14 +.public _0209EF2C +.public _0209EF48 +.public _0209EF64 +.public _0209EF80 +.public _0209EF9C +.public _0209EFB8 +.public _0209EFD4 +.public _0209EFF4 +.public _0209F014 +.public _0209F034 +.public _0209F054 +.public _0209F074 +.public _0209F0A0 +.public _0209F0CC +.public _0209F0F8 +.public _0209F12C +.public _0209F160 +.public _0209F1D4 +.public _0209F330 +.public _0209F394 +.public _0209F3F8 diff --git a/asm/include/main_rodata_020A1894.inc b/asm/include/main_rodata_020A1894.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/main_rodata_020A1894.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/include/main_rodata_020A18BC.inc b/asm/include/main_rodata_020A18BC.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/main_rodata_020A18BC.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/main_rodata_0209CECC.s b/asm/main_rodata_0209CECC.s index 4ab4f3bc..0e4d3387 100644 --- a/asm/main_rodata_0209CECC.s +++ b/asm/main_rodata_0209CECC.s @@ -2441,93 +2441,3 @@ _020A1884: .global GUMMI_STAT_BOOST GUMMI_STAT_BOOST: .byte 0x01, 0x00, 0x00, 0x00 - .global MIN_IQ_EXCLUSIVE_MOVE_USER -MIN_IQ_EXCLUSIVE_MOVE_USER: - .byte 0x4B, 0x01, 0x00, 0x00 - .global WONDER_GUMMI_IQ_GAIN -WONDER_GUMMI_IQ_GAIN: - .byte 0x0F, 0x00, 0x00, 0x00 - .global _020A1894 -_020A1894: - .byte 0x32, 0x00, 0x00, 0x00 - .global AURA_BOW_STAT_BOOST -AURA_BOW_STAT_BOOST: - .byte 0x01, 0x00, 0x00, 0x00 - .global _020A189C -_020A189C: - .byte 0x2C, 0x01, 0x00, 0x00 - .global MULTITALENT_PP_BOOST_AMOUNT -MULTITALENT_PP_BOOST_AMOUNT: - .byte 0x05, 0x00, 0x00, 0x00 - .global MIN_IQ_ITEM_MASTER -MIN_IQ_ITEM_MASTER: - .byte 0x96, 0x00, 0x00, 0x00 - .global DEF_SCARF_STAT_BOOST -DEF_SCARF_STAT_BOOST: - .byte 0x08, 0x00, 0x00, 0x00 - .global POWER_BAND_STAT_BOOST -POWER_BAND_STAT_BOOST: - .byte 0x0C, 0x00, 0x00, 0x00 - .global WONDER_GUMMI_STAT_BOOST -WONDER_GUMMI_STAT_BOOST: - .byte 0x03, 0x00, 0x00, 0x00 - .global ZINC_BAND_STAT_BOOST -ZINC_BAND_STAT_BOOST: - .byte 0x08, 0x00, 0x00, 0x00 - .global EGG_HP_BONUS -EGG_HP_BONUS: - .byte 0x0A, 0x00, 0x00, 0x00 - .global _020A18BC -_020A18BC: - .byte 0x78, 0x05, 0x00, 0x00 - .global _020A18C0 -_020A18C0: - .byte 0x2C, 0x01, 0x00, 0x00 - .global EVOLUTION_HP_BONUS -EVOLUTION_HP_BONUS: - .byte 0x0A, 0x00, 0x00, 0x00 - .global EXCLUSIVE_ITEM_PP_BOOST_AMOUNT -EXCLUSIVE_ITEM_PP_BOOST_AMOUNT: - .byte 0x02, 0x00, 0x00, 0x00 - .global DAMAGE_FORMULA_FLV_SHIFT -DAMAGE_FORMULA_FLV_SHIFT: - .byte 0x00, 0x32, 0x00, 0x00 - .global EVOLUTION_PHYSICAL_STAT_BONUSES -EVOLUTION_PHYSICAL_STAT_BONUSES: - .byte 0x05, 0x00, 0x05, 0x00 - .global DAMAGE_FORMULA_CONSTANT_SHIFT -DAMAGE_FORMULA_CONSTANT_SHIFT: - .byte 0x00, 0xC9, 0xFE, 0xFF - .global DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR -DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR: - .byte 0x00, 0x08, 0x00, 0x00 - .global EGG_STAT_BONUSES -EGG_STAT_BONUSES: - .byte 0x05, 0x00, 0x05, 0x00 - .global _020A18E0 -_020A18E0: - .byte 0x05, 0x00, 0x05, 0x00 - .global EVOLUTION_SPECIAL_STAT_BONUSES -EVOLUTION_SPECIAL_STAT_BONUSES: - .byte 0x05, 0x00, 0x05, 0x00 - .global DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER -DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER: - .byte 0x54, 0x01, 0x00, 0x00 - .global DAMAGE_FORMULA_LN_PREFACTOR -DAMAGE_FORMULA_LN_PREFACTOR: - .byte 0x00, 0x32, 0x00, 0x00 - .global DAMAGE_FORMULA_DEF_PREFACTOR -DAMAGE_FORMULA_DEF_PREFACTOR: - .byte 0x80, 0xFF, 0xFF, 0xFF - .global DAMAGE_FORMULA_AT_PREFACTOR -DAMAGE_FORMULA_AT_PREFACTOR: - .byte 0x99, 0x00, 0x00, 0x00 - .global DAMAGE_FORMULA_LN_ARG_PREFACTOR -DAMAGE_FORMULA_LN_ARG_PREFACTOR: - .byte 0x00, 0x0A, 0x00, 0x00 - .global _020A18FC -_020A18FC: - .byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0x00, 0x00, 0x00 - .global _020A1904 -_020A1904: - .byte 0x96, 0x97, 0x98, 0x99, 0x9A, 0x00, 0x00, 0x00 diff --git a/asm/main_rodata_020A1894.s b/asm/main_rodata_020A1894.s new file mode 100644 index 00000000..2d700720 --- /dev/null +++ b/asm/main_rodata_020A1894.s @@ -0,0 +1,19 @@ + .include "asm/macros.inc" + .include "main_rodata_020A1894.inc" + + .rodata + .global WONDER_GUMMI_IQ_GAIN +WONDER_GUMMI_IQ_GAIN: + .byte 0x0F, 0x00, 0x00, 0x00 + .global _020A1894 +_020A1894: + .byte 0x32, 0x00, 0x00, 0x00 + .global AURA_BOW_STAT_BOOST +AURA_BOW_STAT_BOOST: + .byte 0x01, 0x00, 0x00, 0x00 + .global _020A189C +_020A189C: + .byte 0x2C, 0x01, 0x00, 0x00 + .global MULTITALENT_PP_BOOST_AMOUNT +MULTITALENT_PP_BOOST_AMOUNT: + .byte 0x05, 0x00, 0x00, 0x00 diff --git a/asm/main_rodata_020A18BC.s b/asm/main_rodata_020A18BC.s new file mode 100644 index 00000000..a01757b5 --- /dev/null +++ b/asm/main_rodata_020A18BC.s @@ -0,0 +1,73 @@ + .include "asm/macros.inc" + .include "main_rodata_020A18BC.inc" + + .rodata + .global DEF_SCARF_STAT_BOOST +DEF_SCARF_STAT_BOOST: + .byte 0x08, 0x00, 0x00, 0x00 + .global POWER_BAND_STAT_BOOST +POWER_BAND_STAT_BOOST: + .byte 0x0C, 0x00, 0x00, 0x00 + .global WONDER_GUMMI_STAT_BOOST +WONDER_GUMMI_STAT_BOOST: + .byte 0x03, 0x00, 0x00, 0x00 + .global ZINC_BAND_STAT_BOOST +ZINC_BAND_STAT_BOOST: + .byte 0x08, 0x00, 0x00, 0x00 + .global EGG_HP_BONUS +EGG_HP_BONUS: + .byte 0x0A, 0x00, 0x00, 0x00 + .global _020A18BC +_020A18BC: + .byte 0x78, 0x05, 0x00, 0x00 + .global _020A18C0 +_020A18C0: + .byte 0x2C, 0x01, 0x00, 0x00 + .global EVOLUTION_HP_BONUS +EVOLUTION_HP_BONUS: + .byte 0x0A, 0x00, 0x00, 0x00 + .global EXCLUSIVE_ITEM_PP_BOOST_AMOUNT +EXCLUSIVE_ITEM_PP_BOOST_AMOUNT: + .byte 0x02, 0x00, 0x00, 0x00 + .global DAMAGE_FORMULA_FLV_SHIFT +DAMAGE_FORMULA_FLV_SHIFT: + .byte 0x00, 0x32, 0x00, 0x00 + .global EVOLUTION_PHYSICAL_STAT_BONUSES +EVOLUTION_PHYSICAL_STAT_BONUSES: + .byte 0x05, 0x00, 0x05, 0x00 + .global DAMAGE_FORMULA_CONSTANT_SHIFT +DAMAGE_FORMULA_CONSTANT_SHIFT: + .byte 0x00, 0xC9, 0xFE, 0xFF + .global DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR +DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR: + .byte 0x00, 0x08, 0x00, 0x00 + .global EGG_STAT_BONUSES +EGG_STAT_BONUSES: + .byte 0x05, 0x00, 0x05, 0x00 + .global _020A18E0 +_020A18E0: + .byte 0x05, 0x00, 0x05, 0x00 + .global EVOLUTION_SPECIAL_STAT_BONUSES +EVOLUTION_SPECIAL_STAT_BONUSES: + .byte 0x05, 0x00, 0x05, 0x00 + .global DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER +DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER: + .byte 0x54, 0x01, 0x00, 0x00 + .global DAMAGE_FORMULA_LN_PREFACTOR +DAMAGE_FORMULA_LN_PREFACTOR: + .byte 0x00, 0x32, 0x00, 0x00 + .global DAMAGE_FORMULA_DEF_PREFACTOR +DAMAGE_FORMULA_DEF_PREFACTOR: + .byte 0x80, 0xFF, 0xFF, 0xFF + .global DAMAGE_FORMULA_AT_PREFACTOR +DAMAGE_FORMULA_AT_PREFACTOR: + .byte 0x99, 0x00, 0x00, 0x00 + .global DAMAGE_FORMULA_LN_ARG_PREFACTOR +DAMAGE_FORMULA_LN_ARG_PREFACTOR: + .byte 0x00, 0x0A, 0x00, 0x00 + .global _020A18FC +_020A18FC: + .byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0x00, 0x00, 0x00 + .global _020A1904 +_020A1904: + .byte 0x96, 0x97, 0x98, 0x99, 0x9A, 0x00, 0x00, 0x00 diff --git a/asm/overlay_29_0232E864.s b/asm/overlay_29_0232E864.s index 4f99c834..f035cc4d 100644 --- a/asm/overlay_29_0232E864.s +++ b/asm/overlay_29_0232E864.s @@ -3,6 +3,7 @@ .text +; https://decomp.me/scratch/H0aXM arm_func_start ExecuteMoveEffect ExecuteMoveEffect: ; 0x0232E864 #ifdef JAPAN diff --git a/include/dungeon_parameters_3.h b/include/dungeon_parameters_3.h new file mode 100644 index 00000000..436f1ea6 --- /dev/null +++ b/include/dungeon_parameters_3.h @@ -0,0 +1,7 @@ +#ifndef PMDSKY_DUNGEON_PARAMETERS_3_H +#define PMDSKY_DUNGEON_PARAMETERS_3_H + +// Minimum IQ required for enemies to use Exclusive-Move User +extern const s16 MIN_IQ_EXCLUSIVE_MOVE_USER; + +#endif //PMDSKY_DUNGEON_PARAMETERS_3_H diff --git a/include/dungeon_parameters_4.h b/include/dungeon_parameters_4.h new file mode 100644 index 00000000..e440e716 --- /dev/null +++ b/include/dungeon_parameters_4.h @@ -0,0 +1,7 @@ +#ifndef PMDSKY_DUNGEON_PARAMETERS_4_H +#define PMDSKY_DUNGEON_PARAMETERS_4_H + +// Minimum IQ required for enemies to use Item Master +extern const s16 MIN_IQ_ITEM_MASTER; + +#endif //PMDSKY_DUNGEON_PARAMETERS_4_H diff --git a/main.lsf b/main.lsf index d3a61549..c5caabcd 100644 --- a/main.lsf +++ b/main.lsf @@ -82,6 +82,10 @@ Static main Object asm/main_0204B018.o Object src/script_variable.o Object asm/main_rodata_0209CECC.o + Object src/dungeon_parameters_3.o + Object asm/main_rodata_020A1894.o + Object src/dungeon_parameters_4.o + Object asm/main_rodata_020A18BC.o Object src/story_progress.o Object src/special_episode.o Object src/dungeon_recruitment_3.o diff --git a/src/dungeon_parameters_3.c b/src/dungeon_parameters_3.c new file mode 100644 index 00000000..109bf814 --- /dev/null +++ b/src/dungeon_parameters_3.c @@ -0,0 +1,3 @@ +#include "dungeon_parameters_3.h" + +const s16 MIN_IQ_EXCLUSIVE_MOVE_USER = 331; diff --git a/src/dungeon_parameters_4.c b/src/dungeon_parameters_4.c new file mode 100644 index 00000000..b3989642 --- /dev/null +++ b/src/dungeon_parameters_4.c @@ -0,0 +1,3 @@ +#include "dungeon_parameters_4.h" + +const s16 MIN_IQ_ITEM_MASTER = 150; diff --git a/src/dungeon_pokemon_attributes_1.c b/src/dungeon_pokemon_attributes_1.c index 9107d648..1ca18714 100644 --- a/src/dungeon_pokemon_attributes_1.c +++ b/src/dungeon_pokemon_attributes_1.c @@ -1,5 +1,7 @@ #include "dungeon_pokemon_attributes_1.h" #include "dungeon_logic_7.h" +#include "dungeon_parameters_3.h" +#include "dungeon_parameters_4.h" #include "dungeon_util_static.h" #include "overlay_29_022FF898.h" #include "overlay_29_023000E4.h" @@ -11,9 +13,6 @@ extern void EnableIqSkill(u32 *iq_skills_flags, enum iq_skill_id iq_id); extern bool8 GetPerformanceFlagWithChecks(s32 flag_id); extern enum iq_skill_id GetSpeciesIqSkill(s16 monster_id, u8 index); -extern s16 MIN_IQ_EXCLUSIVE_MOVE_USER; -extern s16 MIN_IQ_ITEM_MASTER; - bool8 CanSeeInvisibleMonsters(struct entity *entity) { if (GetEntInfo(entity)->blinker_class_status.blinded == STATUS_BLINKER_EYEDROPS)