Decomped ExclusiveItemEffectFlagTest

This commit is contained in:
AnonymousRandomPerson
2025-06-25 21:32:48 -04:00
parent c4627cfb60
commit 0990bcd309
18 changed files with 3294 additions and 3265 deletions

View File

@@ -2,118 +2,35 @@
.public AreItemsEquivalent
.public BAG_ITEMS_PTR_MIRROR
.public BulkItemToItem
.public CALCIUM_STAT_BOOST
.public CopyBitsFrom
.public CopyBitsTo
.public DUNGEON_MOVE_TABLES
.public Debug_Print0
.public EXCLUSIVE_ITEM_ATTACK_BOOSTS
.public EXCLUSIVE_ITEM_DEFENSE_BOOSTS
.public EXCLUSIVE_ITEM_EFFECT_DATA
.public EXCLUSIVE_ITEM_SPECIAL_ATTACK_BOOSTS
.public EXCLUSIVE_ITEM_SPECIAL_DEFENSE_BOOSTS
.public EXCLUSIVE_ITEM_STAT_BOOST_DATA_INDEXES
.public FemaleToMaleForm
.public GINSENG_CHANCE_3
.public GUMMI_STAT_BOOST
.public GetBagCapacity
.public GetBagCapacitySpecialEpisode
.public GetBaseFormCastformDeoxysCherrim
.public GetDungeonResultString
.public GetExclusiveItem
.public GetExclusiveItemParameter
.public GetExclusiveItemType
.public GetExecuteSpecialEpisodeType
.public GetFamilyIndex
.public GetItemCategory
.public GetItemCategoryVeneer
.public GetItemIdFromList
.public GetMaxPp
.public GetMoveBasePowerGround
.public GetMoveMaxGinsengBoostGround
.public GetPartyMembers
.public GetPerformanceFlagWithChecks
.public GetRank
.public GetRankStorageSize
.public GetScenarioBalance
.public GetTeamMember
.public GetType
.public HasMonsterBeenAttackedInDungeons
.public IQ_GUMMI_GAIN_TABLE
.public IRON_STAT_BOOST
.public InitBulkItem
.public Is2TurnsMove
.public IsGummi
.public IsItemInTimeDarkness
.public IsItemValidVeneer
.public IsMonsterValid
.public IsStorableItem
.public IsThrownItem
.public IsTicketItem
.public IsTreasureBox
.public ItemZInit
.public KECLEON_SHOP_ITEM_TABLE_LISTS_1
.public KECLEON_SHOP_ITEM_TABLE_LISTS_2
.public LIFE_SEED_HP_BOOST
.public LoadFileFromRom
.public LoadScriptVariableValue
.public MemAlloc
.public MemFree
.public MemZero
.public OpenWaza
.public PROTEIN_STAT_BOOST
.public RECYCLE_SHOP_ITEM_LIST
.public Rand16Bit
.public RandInt
.public RandIntSafe
.public RandRange
.public RemoveEmptyItems
.public SITRUS_BERRY_FULL_HP_BOOST
.public SaveScriptVariableValue
.public SelectWaza
.public SetItemAcquired
.public SetNbRecycled
.public SortItemList
.public StringFromId
.public TYPE_SPECIFIC_EXCLUSIVE_ITEMS
.public UnloadFile
.public WONDER_GUMMI_IQ_GAIN
.public WONDER_GUMMI_STAT_BOOST
.public ZINC_STAT_BOOST
.public ZInit8
.public _0209889C
.public _020988A4
.public _020988A8
.public _020988D0
.public _020988D4
.public _020988D8
.public _02098CB4
.public _02098CCC
.public _02098D24
.public _02098D48
.public _02098D68
.public _02098DE4
.public _02098DF4
.public _02098E04
.public _02098E0C
.public _02098E14
.public _02098E58
.public _02098E9C
.public _020A1878
.public _020AF6D0
.public _020AF6D4
.public _020AF700
.public _022A4BD8
.public _s32_div_f
.public sub_0200D1F0
.public sub_0200D8AC
.public sub_0200EB90
.public sub_02050974
.public sub_02050990
.public sub_020509BC
.public sub_02054FB8
.public sub_02054FEC
.public sub_02055020
.public sub_02055054
.public sub_020582E0
.public vsprintf

View File

@@ -0,0 +1,111 @@
#pragma once
.public ApplyExclusiveItemStatBoosts
.public BAG_ITEMS_PTR_MIRROR
.public CALCIUM_STAT_BOOST
.public ConvertStorageItemAtIdxToBulkItem
.public CopyBitsFrom
.public CopyBitsTo
.public CountNbItemsOfTypeInBag
.public CountNbItemsOfTypeInStorage
.public CountNbOfItemsInStorage
.public DUNGEON_MOVE_TABLES
.public Debug_Print0
.public EXCLUSIVE_ITEM_EFFECT_DATA
.public ExclusiveItemEffectFlagTest
.public FemaleToMaleForm
.public GINSENG_CHANCE_3
.public GUMMI_STAT_BOOST
.public GetBaseFormCastformDeoxysCherrim
.public GetCurrentBagCapacity
.public GetDungeonResultString
.public GetEquivBulkItemIdxInStorage
.public GetExclusiveItem
.public GetExclusiveItemOffset
.public GetExclusiveItemParameter
.public GetExclusiveItemType
.public GetFamilyIndex
.public GetFirstUnequippedItemOfType
.public GetItemAtIdx
.public GetItemCategory
.public GetItemCategoryVeneer
.public GetMaxPp
.public GetMoveBasePowerGround
.public GetMoveMaxGinsengBoostGround
.public GetNbItemsInBag
.public GetPartyMembers
.public GetRank
.public GetScenarioBalance
.public GetTeamMember
.public GetType
.public HasMonsterBeenAttackedInDungeons
.public IQ_GUMMI_GAIN_TABLE
.public IRON_STAT_BOOST
.public InitBulkItem
.public Is2TurnsMove
.public IsGummi
.public IsMonsterValid
.public IsTicketItem
.public LIFE_SEED_HP_BOOST
.public LoadFileFromRom
.public LoadScriptVariableValue
.public MemAlloc
.public MemFree
.public MemZero
.public OpenWaza
.public PROTEIN_STAT_BOOST
.public RECYCLE_SHOP_ITEM_LIST
.public Rand16Bit
.public RandInt
.public RandIntSafe
.public RandRange
.public RemoveEmptyItemsInBag
.public RemoveItem
.public RemoveItemAtIdxInStorage
.public SITRUS_BERRY_FULL_HP_BOOST
.public SaveScriptVariableValue
.public SelectWaza
.public SetExclusiveItemEffect
.public SetNbRecycled
.public StringFromId
.public TYPE_SPECIFIC_EXCLUSIVE_ITEMS
.public UnloadFile
.public WONDER_GUMMI_IQ_GAIN
.public WONDER_GUMMI_STAT_BOOST
.public ZINC_STAT_BOOST
.public ZInit8
.public _0209889C
.public _020988A4
.public _020988A8
.public _020988D0
.public _020988D4
.public _020988D8
.public _02098CB4
.public _02098CCC
.public _02098D24
.public _02098D48
.public _02098D68
.public _02098DE4
.public _02098DF4
.public _02098E04
.public _02098E0C
.public _02098E14
.public _02098E58
.public _02098E9C
.public _020A1878
.public _020AF6D0
.public _020AF6D4
.public _020AF700
.public _022A4BD8
.public _s32_div_f
.public sub_0200D1F0
.public sub_0200EB90
.public sub_02010044
.public sub_0201007C
.public sub_02050974
.public sub_02050990
.public sub_020509BC
.public sub_02054FB8
.public sub_02054FEC
.public sub_02055020
.public sub_02055054
.public vsprintf

File diff suppressed because it is too large Load Diff

3152
asm/main_02010FC4.s Normal file

File diff suppressed because it is too large Load Diff

9
include/exclusive_item.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_EXCLUSIVE_ITEM_H
#define PMDSKY_EXCLUSIVE_ITEM_H
#include "util.h"
// Tests the exclusive item bitvector for a specific exclusive item effect.
bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, u32 effect_id);
#endif //PMDSKY_EXCLUSIVE_ITEM_H

View File

@@ -33,6 +33,8 @@ Static main
Object asm/main_0200EB30.o
Object src/main_0200ECFC.o
Object asm/main_0200ED1C.o
Object src/exclusive_item.o
Object asm/main_02010FC4.o
Object src/moves_1.o
Object asm/main_020137E8.o
Object src/moves_2.o

9
src/exclusive_item.c Normal file
View File

@@ -0,0 +1,9 @@
#include "exclusive_item.h"
bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, u32 effect_id)
{
u32 effect_bit = effect_id >> 5;
if (effect_flags[effect_bit] & 1 << effect_id - (effect_bit << 5))
return TRUE;
return FALSE;
}

View File

@@ -1,7 +1,6 @@
#include "overlay_29_022FAC98.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__022FAC98(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_022FFF28.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__022FFF28(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_0230A994.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 IsMonster__0230A994(struct entity *entity)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_0230F8AC.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__0230F8AC(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -2,8 +2,7 @@
#include "dungeon_items.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 EntityIsValid__02311010(struct entity *entity)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_023147EC.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__023147EC(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_023197A8.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__023197A8(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_0231A87C.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__0231A87C(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_02323918.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__02323918(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -1,7 +1,6 @@
#include "overlay_29_023329E8.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ExclusiveItemEffectIsActive__023329E8(struct entity *entity, enum exclusive_item_effect_id effect_id)
{

View File

@@ -2,8 +2,7 @@
#include "dungeon_items.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_util_static.h"
extern bool8 ExclusiveItemEffectFlagTest(u32 *effect_flags, enum exclusive_item_effect_id effect_id);
#include "exclusive_item.h"
bool8 ItemIsActive__02347B50(struct entity *entity, enum item_id item_id)
{