Decomped ItemIsActive

This commit is contained in:
AnonymousRandomPerson
2025-03-05 23:46:22 -05:00
parent 1e66f00068
commit f4ecfd41e6
69 changed files with 11325 additions and 11212 deletions

View File

@@ -1,15 +1,17 @@
#pragma once
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AnimationDelayOrSomething
.public AnimationHasMoreFrames
.public DisplayUi
.public DUNGEON_PTR
.public DisplayUi
.public EntityIsValid__022E37B8
.public GetEffectAnimationField0x19
.public GetTileSafe
.public HasHeldItem
.public LogMessageByIdWithPopupCheckUser
.public ShouldDisplayEntityAdvanced
.public UpdateCamera
.public UpdateMinimap
.public UpdateTrapsVisibility
.public ov10_022BF274
.public ov10_022BF2B4
.public ov10_022BF8E8
@@ -17,9 +19,5 @@
.public ov29_022E2C6C
.public ov29_0235110C
.public ov29_0235354C
.public ShouldDisplayEntityAdvanced
.public sub_0201C000
.public sub_0201CF90
.public UpdateCamera
.public UpdateMinimap
.public UpdateTrapsVisibility

View File

@@ -1,13 +1,10 @@
#pragma once
.public _020AFC4C
.public _020AFC70
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public ApplyTrapEffect
.public AreLateGameTrapsEnabled
.public CreateMonsterSummaryFromMonster
.public DrawMinimapTile
.public DUNGEON_PTR
.public DrawMinimapTile
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EnemyEvolution
@@ -18,16 +15,25 @@
.public GetTile
.public GetTileSafe
.public GetTrapInfo
.public HasHeldItem
.public InitRender3dElement64
.public IqSkillIsEnabled
.public IsFullFloorFixedRoom
.public ItemIsActive__022EE318
.public LoadWteFromFileDirectory
.public LogMessageByIdWithPopupCheckUser
.public LogMessageByIdWithPopupCheckUserTarget
.public LogMessageByIdWithPopupCheckUserUnknown
.public memset
.public MemZero
.public ProcessWte
.public SpawnTrap
.public StringFromId
.public SubstitutePlaceholderStringTags
.public TRAP_BUSTER_ACTIVATION_CHANCE
.public UpdateShopkeeperModeAfterTrap
.public UpdateTrapsVisibility
.public _020AFC4C
.public _020AFC70
.public memset
.public ov29_022E2CA0
.public ov29_022E56A0
.public ov29_022E58B0
@@ -41,15 +47,8 @@
.public ov29_0237C864
.public ov29_0237C974
.public ov29_0237C99C
.public ProcessWte
.public SpawnTrap
.public strcpy
.public StringFromId
.public sub_0201B9F8
.public sub_0201E080
.public sub_0201F2A0
.public sub_02024FC8
.public SubstitutePlaceholderStringTags
.public TRAP_BUSTER_ACTIVATION_CHANCE
.public UpdateShopkeeperModeAfterTrap
.public UpdateTrapsVisibility

View File

@@ -1,105 +1,42 @@
#pragma once
.public _s32_div_f
.public AbilityIsActiveVeneer
.public AllocateTemp1024ByteBufferFromPool
.public ApplyItemEffect
.public AreMovesEnabled
.public CanMonsterUseItem
.public ChangeMonsterAnimation
.public CheckTeamMemberIdxVeneer
.public CheckVariousStatuses2
.public DecrementStackItem
.public DIRECTIONS_XY
.public DisplayMessage
.public DisplayMessage2
.public DUNGEON_PTR
.public DecrementStackItem
.public DungeonRandInt
.public EnemyEvolution
.public EntityIsValid__022F528C
.public EntityIsValid__022F62A8
.public ExclusiveItemEffectFlagTest
.public GetActiveTeamMember
.public GetDirectionTowardsPosition
.public GetItemCategoryVeneer
.public GetItemToUse
.public GetLeader
.public GetMissionDestination
.public GetNumberOfAttacks
.public GetPersonalityIndex
.public GetStringFromFileVeneer
.public GetTalkLine
.public GetTreatmentBetweenMonsters
.public HandleFaint
.public HasHeldItem
.public HasLowHealth
.public InitMove
.public InitPortraitDungeon
.public IqSkillIsEnabled
.public IsFloorOver
.public IsMarowakTrainingMaze
.public IsMonsterIdInNormalRangeVeneer
.public IsSecretBazaarNpcBehavior
.public ItemIsActive__022F5994
.public ItemZInit
.public LogItemBlockedByEmbargo
.public LogMessageByIdWithPopupCheckUser
.public MonsterHasEmbargoStatus
.public ov29_022E56A0
.public ov29_022E5728
.public ov29_022E690C
.public ov29_022E8104
.public ov29_022E81F8
.public ov29_022E9A9C
.public ov29_022EA370
.public ov29_022EB378
.public ov29_022F3B8C
.public ov29_022F6748
.public ov29_022F87C0
.public ov29_022FA574
.public ov29_0230040C
.public ov29_023009CC
.public ov29_02304A48
.public ov29_02304AFC
.public ov29_02307BDC
.public ov29_0230F9A4
.public ov29_0231AE3C
.public ov29_0232145C
.public ov29_02322374
.public ov29_02338430
.public ov29_0233A248
.public ov29_02343D30
.public ov29_02344544
.public ov29_02344B44
.public ov29_02344B70
.public ov29_02346FB8
.public ov29_02347000
.public ov29_02347518
.public ov29_02347BC8
.public ov29_02348C64
.public ov29_0234A2D4
.public ov29_0234A5E4
.public ov29_0234B034
.public ov29_0234B0B4
.public ov29_0234CFA0
.public ov29_0234D304
.public ov29_0235171E
.public ov29_02352750
.public ov29_02352758
.public ov29_0237CA80
.public RemoveEmptyItemsInBagWrapper
.public RemoveEquivItemNoHole
.public RemoveGroundItem
.public RemoveUsedItem
.public ShouldDisplayEntityWrapper
.public ShouldMonsterRunAwayVariation
.public ShouldUsePp
.public SpawnItem
.public strcpy
.public strncpy
.public sub_02020880
.public sub_02024FB8
.public SubstitutePlaceholderStringTags
.public TryActivateTruant
.public TryTriggerMonsterHouse
.public UpdateMapSurveyorFlag
.public UpdateMovePp
.public YesNoMenu
.public ov29_022E56A0
.public ov29_022E5728
.public ov29_022E9A9C
.public ov29_022EA370
.public ov29_022EB378
.public ov29_022F3B8C
.public ov29_0230040C
.public ov29_02304A48
.public ov29_0230F9A4
.public ov29_02343D30
.public ov29_02344B44
.public ov29_02344B70
.public ov29_02346FB8
.public ov29_02347000
.public ov29_02347518
.public ov29_02347BC8
.public ov29_0234B034

View File

@@ -0,0 +1,69 @@
#pragma once
.public AllocateTemp1024ByteBufferFromPool
.public AreMovesEnabled
.public CheckTeamMemberIdxVeneer
.public CheckVariousStatuses2
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DisplayMessage
.public DisplayMessage2
.public EnemyEvolution
.public EntityIsValid__022F528C
.public EntityIsValid__022F62A8
.public GetActiveTeamMember
.public GetDirectionTowardsPosition
.public GetLeader
.public GetMissionDestination
.public GetNumberOfAttacks
.public GetPersonalityIndex
.public GetStringFromFileVeneer
.public GetTalkLine
.public GetTreatmentBetweenMonsters
.public HandleFaint
.public HasLowHealth
.public InitMove
.public InitPortraitDungeon
.public IsFloorOver
.public IsMarowakTrainingMaze
.public IsMonsterIdInNormalRangeVeneer
.public IsSecretBazaarNpcBehavior
.public LogMessageByIdWithPopupCheckUser
.public ShouldUsePp
.public SubstitutePlaceholderStringTags
.public TryActivateTruant
.public UpdateMapSurveyorFlag
.public UpdateMovePp
.public YesNoMenu
.public _s32_div_f
.public ov29_022E690C
.public ov29_022E8104
.public ov29_022E81F8
.public ov29_022F3B8C
.public ov29_022F6748
.public ov29_022F87C0
.public ov29_022FA574
.public ov29_0230040C
.public ov29_023009CC
.public ov29_02304AFC
.public ov29_02307BDC
.public ov29_0231AE3C
.public ov29_0232145C
.public ov29_02322374
.public ov29_02338430
.public ov29_0233A248
.public ov29_02344544
.public ov29_02348C64
.public ov29_0234A2D4
.public ov29_0234A5E4
.public ov29_0234B034
.public ov29_0234B0B4
.public ov29_0234CFA0
.public ov29_0234D304
.public ov29_0235171E
.public ov29_02352750
.public ov29_02352758
.public ov29_0237CA80
.public strcpy
.public strncpy
.public sub_02020880
.public sub_02024FB8

View File

@@ -1,5 +1,4 @@
#pragma once
.public AbilityIsActive
.public ActivateFlashFire
.public CanMonsterMoveInDirection
.public CanMonsterUseMove
@@ -7,35 +6,25 @@
.public DUNGEON_PTR
.public DungeonRandInt
.public EntityIsValid__022FED98
.public EntityIsValid__023000E4
.public EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
.public EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
.public ExclusiveItemEffectFlagTest
.public GetApparentWeather
.public GetExclusiveItemWithEffectFromBag
.public GetMobilityType
.public GetSpeedStatus
.public GetMobilityTypeAfterIqSkills
.public GetTile
.public HasHeldItem
.public IqSkillIsEnabled
.public IsBlinded
.public IsChargingTwoTurnMove
.public IsCurrentTilesetBackground
.public IsFloating
.public IsMonsterSleeping
.public ItemIsActive__022FF898
.public LogMessageByIdWithPopupCheckUser
.public MonsterIsType
.public ov29_022E56A0
.public ov29_022E655C
.public ov29_022FAA04
.public ov29_02300DCC
.public ov29_02318D58
.public ov29_02322374
.public ov29_02344B44
.public ov29_0237C9B8
.public SetActionPassTurnOrWalk
.public SetActionUseMovePlayer
.public SetMonsterActionFields
.public SubstitutePlaceholderStringTags
.public TickStatusTurnCounter
.public UpdateStateFlags
.public ov29_022E56A0
.public ov29_022FAA04
.public ov29_02300DCC
.public ov29_02318D58
.public ov29_02322374
.public ov29_0237C9B8

View File

@@ -0,0 +1,21 @@
#pragma once
.public AbilityIsActive
.public DUNGEON_PTR
.public EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
.public EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
.public EntityIsValid__023000E4
.public ExclusiveItemEffectFlagTest
.public GetApparentWeather
.public GetExclusiveItemWithEffectFromBag
.public GetMobilityTypeCheckSlipAndFloating
.public GetSpeedStatus
.public GetTile
.public IqSkillIsEnabled
.public IsCurrentTilesetBackground
.public ItemIsActive__022FF898
.public LogMessageByIdWithPopupCheckUser
.public MonsterIsType
.public SubstitutePlaceholderStringTags
.public UpdateStateFlags
.public ov29_022E655C
.public ov29_02344B44

View File

@@ -1,58 +1,38 @@
#pragma once
.public _s32_div_f
.public AbilityIsActive
.public AbilityIsActiveVeneer
.public AllocateTemp1024ByteBufferFromPool
.public CanLearnIqSkill
.public CanSeeTarget
.public CanThrowItems
.public DisableIqSkill
.public DUNGEON_PTR
.public DungeonGetSpriteIndex
.public DungeonRandInt
.public DisableIqSkill
.public EXCLUSIVE_ITEM_EXP_BOOST
.public EXP_ELITE_EXP_BOOST
.public EnableIqSkill
.public EntityIsValid__023000E4
.public EntityIsValid__02302A38
.public EvolveMonster
.public EXCLUSIVE_ITEM_EXP_BOOST
.public ExclusiveItemEffectFlagTest
.public ExclusiveItemEffectIsActive__022FFF28
.public EXP_ELITE_EXP_BOOST
.public GetEntityNaturalGiftInfo
.public GetEntityWeatherBallType
.public GetEvolutions
.public GetExclusiveItemWithEffectFromBag
.public GetForcedLossReason
.public GetMoveBasePower
.public GetMoveType
.public GetPerformanceFlagWithChecks
.public GetSpeciesIqSkill
.public GetUnlockedTacticFlags
.public HasHeldItem
.public IqSkillFlagTest
.public IsBlinded
.public IsExpEnabledInDungeon
.public IsExperienceLocked
.public IsOnMonsterSpawnList
.public IsRegularAttackOrProjectile
.public ItemIsActive__022FF898
.public ItemIsActive__023026CC
.public LeafGuardIsActive
.public LevelUp
.public LogMessageByIdWithPopup
.public LogMessageByIdWithPopupCheckUserTarget
.public MIN_IQ_EXCLUSIVE_MOVE_USER
.public MIN_IQ_ITEM_MASTER
.public MIRACLE_CHEST_EXP_BOOST
.public MultiplyByFixedPoint
.public ov29_022E2470
.public ov29_022FBDE0
.public ov29_0230040C
.public ov29_02301A84
.public ov29_02302C04
.public ov29_02302CC8
.public ov29_02344B44
.public ov29_0234B034
.public ov29_0234B09C
.public ov29_023527F8
.public SubstitutePlaceholderStringTags
.public WONDER_CHEST_EXP_BOOST
.public _s32_div_f
.public ov29_022FBDE0
.public ov29_02301A84
.public ov29_02344B44

View File

@@ -0,0 +1,21 @@
#pragma once
.public AllocateTemp1024ByteBufferFromPool
.public DUNGEON_PTR
.public DungeonGetSpriteIndex
.public DungeonRandInt
.public EntityIsValid__02302A38
.public EvolveMonster
.public GetEvolutions
.public GetForcedLossReason
.public GetUnlockedTacticFlags
.public IsExpEnabledInDungeon
.public IsOnMonsterSpawnList
.public LevelUp
.public LogMessageByIdWithPopup
.public ov29_022E2470
.public ov29_0230040C
.public ov29_02302C04
.public ov29_02302CC8
.public ov29_0234B034
.public ov29_0234B09C
.public ov29_023527F8

View File

@@ -1,5 +1,4 @@
#pragma once
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AnimationDelayOrSomething
.public DUNGEON_PTR
@@ -9,9 +8,8 @@
.public GetMonsterIdToSpawn
.public GetTileAtEntity
.public GetTileSafe
.public HasHeldItem
.public MewSpawnCheck
.public MONSTER_HOUSE_MAX_MONSTER_SPAWNS
.public MewSpawnCheck
.public MultiplyByFixedPoint
.public ov10_022C4560
.public SpawnMonster
.public ov10_022C4560

View File

@@ -1,210 +1,2 @@
#pragma once
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AddFixedPoint64
.public AdvanceFrame
.public AFTERMATH_CHANCE
.public AIR_BLADE_DAMAGE_MULTIPLIER
.public AllocateTemp1024ByteBufferFromPool
.public ApplyDamageAndEffects
.public AURA_BOW_STAT_BOOST
.public AuraBowIsActive
.public BURN_DAMAGE_MULTIPLIER
.public CanSeeTarget
.public CeilFixedPoint
.public ClampedLn
.public CLOUDY_DAMAGE_MULTIPLIER
.public DAMAGE_FORMULA_AT_PREFACTOR
.public DAMAGE_FORMULA_CONSTANT_SHIFT
.public DAMAGE_FORMULA_DEF_PREFACTOR
.public DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR
.public DAMAGE_FORMULA_FLV_SHIFT
.public DAMAGE_FORMULA_LN_ARG_PREFACTOR
.public DAMAGE_FORMULA_LN_PREFACTOR
.public DAMAGE_FORMULA_MAX_BASE
.public DAMAGE_FORMULA_MIN_BASE
.public DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER
.public DAMAGE_MULTIPLIER_0_5
.public DAMAGE_MULTIPLIER_1_5
.public DAMAGE_MULTIPLIER_2
.public Debug_Print0
.public DebugRecruitingEnabled
.public DEF_SCARF_STAT_BOOST
.public DefenderAbilityIsActive__0230A940
.public DEFENSIVE_STAT_STAGE_MULTIPLIERS
.public DivideFixedPoint64
.public DUNGEON_PTR
.public DungeonModeSetupAndShowNameKeyboard
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EnableAllLearnableIqSkills
.public EnsureCanStandCurrentTile
.public EntityIsValid__02308FBC
.public EntityIsValid__0230E8F0
.public ExclusiveItemDefenseBoost
.public ExclusiveItemEffectFlagTest
.public ExclusiveItemEffectIsActiveWithLogging
.public ExclusiveItemOffenseBoost
.public FixedPoint32To64
.public FixedPoint64CmpLt
.public FixedPoint64IsZero
.public FixedPoint64ToInt
.public FixedRoomIsSubstituteRoom
.public FlashFireShouldActivate
.public GendersEqualNotGenderless
.public GendersNotEqualNotGenderless
.public GenerateStandardItem
.public GetActiveTeamMember
.public GetApparentWeather
.public GetDirectionTowardsPosition
.public GetEquivItemIndex
.public GetFirstEmptyMemberIdx
.public GetItemAtIdx
.public GetKecleonIdToSpawnByFloor
.public GetMonsterGenderVeneer
.public GetMonsterIdToSpawn
.public GetMonsterLevelToSpawn
.public GetMoveCategory
.public GetNameString
.public GetRandomMovementChance
.public GetRandomTile
.public GetRecruitRate1
.public GetRecruitRate2
.public GetTile
.public GravityIsActive
.public HandleFaint
.public HasHeldItem
.public HasPlayedOldGame
.public InitTeamMember
.public IntToFixedPoint64
.public IqSkillIsEnabled
.public IsCurrentMissionTypeExact
.public IsFloating
.public IsFullFloorFixedRoom
.public IsLegendaryChallengeFloor
.public IsMonster__0230A994
.public IsMonsterOnTeam
.public IsPunchMove
.public IsRecoilMove
.public IsRecruitingAllowed
.public IsRegularAttackOrProjectile
.public LevitateIsActive
.public LogMessageByIdWithPopup
.public LogMessageByIdWithPopupCheckParticipants
.public LogMessageByIdWithPopupCheckUser
.public LogMessageByIdWithPopupCheckUserTarget
.public MATCHUP_IMMUNE_MULTIPLIER
.public MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_NEUTRAL_MULTIPLIER
.public MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER
.public MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_SUPER_EFFECTIVE_MULTIPLIER
.public MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER
.public ME_FIRST_MULTIPLIER
.public MemZero
.public MewSpawnCheck
.public MonsterHasNegativeStatus
.public MonsterIsType
.public MoveIsNotPhysical
.public MultiplyByFixedPoint
.public MultiplyFixedPoint64
.public MUNCH_BELT_STAT_BOOST
.public NearbyAllyIqSkillIsEnabled
.public OFFENSIVE_STAT_STAGE_MULTIPLIERS
.public OtherMonsterAbilityIsActive
.public ov10_022BDE50
.public ov10_022BF964
.public ov10_022C4410
.public ov10_022C441C
.public ov10_022C443C
.public ov10_022C447C
.public ov10_022C44FC
.public ov10_022C45B4
.public ov10_022C46FC
.public ov10_022C4700
.public ov10_022C4704
.public ov10_022C4708
.public ov10_022C470C
.public ov29_022E1B28
.public ov29_022E2470
.public ov29_022E62F0
.public ov29_022E68BC
.public ov29_022E8104
.public ov29_022E81F8
.public ov29_022EACAC
.public ov29_022FBC94
.public ov29_022FBDE0
.public ov29_022FD318
.public ov29_0230040C
.public ov29_02304A48
.public ov29_02305F60
.public ov29_02337EC0
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_0234B1A4
.public ov29_0234BA54
.public ov29_0234BB50
.public ov29_0234D630
.public ov29_0234D6C8
.public ov29_0234D7C0
.public ov29_0234D838
.public ov29_0234D8A0
.public ov29_0234EE10
.public ov29_02352838
.public ov29_02352884
.public ov29_02352894
.public ov29_02352984
.public ov29_02352990
.public ov29_0235299C
.public ov29_023535D4
.public PlayEffectAnimation0x171
.public PlayEffectAnimation0x171Full
.public PlayEffectAnimation0x18E
.public PlayEffectAnimation0x1A9__022E6130
.public PlayEffectAnimation0x1A9__022E617C
.public PlayEffectAnimation0x1A9__022E61C8
.public PlayEffectAnimation0x1A9__022E6214
.public PlayEffectAnimation0x1A9__022E64C4
.public PlayEffectAnimation0x1A9__022E6510
.public PlayEffectAnimationEntity
.public PointCameraToMonster
.public POWER_BAND_STAT_BOOST
.public POWER_PITCHER_DAMAGE_MULTIPLIER
.public PreprocessString
.public RECRUITMENT_LEVEL_BOOST_TABLE
.public ResetDamageData
.public RoundUpDiv256
.public SCOPE_LENS_CRIT_RATE_BOOST
.public SetItemAcquired
.public SetPokemonJoined
.public SOLID_ROCK_MULTIPLIER
.public SPAWN_CAP_NO_MONSTER_HOUSE
.public SPAWN_CAP_WITH_MONSTER_HOUSE
.public SPAWN_COOLDOWN
.public SPAWN_COOLDOWN_THIEF_ALERT
.public SpawnMonster
.public SPECIAL_BAND_STAT_BOOST
.public StrcpySimple
.public StringFromId
.public StrncpyName
.public StrncpySimpleNoPad
.public sub_020534BC
.public sub_02055CCC
.public sub_02055D7C
.public sub_02056698
.public sub_02056830
.public sub_020584FC
.public sub_020585B4
.public SubstitutePlaceholderStringTags
.public SUPER_LUCK_CRIT_RATE_BOOST
.public TECHNICIAN_MOVE_POWER_THRESHOLD
.public TINTED_LENS_MULTIPLIER
.public TryAftermathExplosion
.public TYPE_ADVANTAGE_MASTER_CRIT_RATE
.public TYPE_MATCHUP_COMBINATOR_TABLE
.public TYPE_MATCHUP_TABLE
.public UpdateStateFlags
.public ZINC_BAND_STAT_BOOST

View File

@@ -0,0 +1,188 @@
#pragma once
.public AFTERMATH_CHANCE
.public AIR_BLADE_DAMAGE_MULTIPLIER
.public AURA_BOW_STAT_BOOST
.public AbilityIsActiveVeneer
.public AddFixedPoint64
.public AdvanceFrame
.public ApplyDamageAndEffects
.public AuraBowIsActive
.public BURN_DAMAGE_MULTIPLIER
.public CLOUDY_DAMAGE_MULTIPLIER
.public CanSeeTarget
.public CeilFixedPoint
.public ClampedLn
.public DAMAGE_FORMULA_AT_PREFACTOR
.public DAMAGE_FORMULA_CONSTANT_SHIFT
.public DAMAGE_FORMULA_DEF_PREFACTOR
.public DAMAGE_FORMULA_FLV_DEFICIT_DIVISOR
.public DAMAGE_FORMULA_FLV_SHIFT
.public DAMAGE_FORMULA_LN_ARG_PREFACTOR
.public DAMAGE_FORMULA_LN_PREFACTOR
.public DAMAGE_FORMULA_MAX_BASE
.public DAMAGE_FORMULA_MIN_BASE
.public DAMAGE_FORMULA_NON_TEAM_MEMBER_MODIFIER
.public DAMAGE_MULTIPLIER_0_5
.public DAMAGE_MULTIPLIER_1_5
.public DAMAGE_MULTIPLIER_2
.public DEFENSIVE_STAT_STAGE_MULTIPLIERS
.public DEF_SCARF_STAT_BOOST
.public DUNGEON_PTR
.public DebugRecruitingEnabled
.public Debug_Print0
.public DefenderAbilityIsActive__0230A940
.public DivideFixedPoint64
.public DungeonModeSetupAndShowNameKeyboard
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EnableAllLearnableIqSkills
.public EnsureCanStandCurrentTile
.public EntityIsValid__02308FBC
.public ExclusiveItemDefenseBoost
.public ExclusiveItemEffectIsActiveWithLogging
.public ExclusiveItemEffectIsActive__0230A9B8
.public ExclusiveItemOffenseBoost
.public FixedPoint32To64
.public FixedPoint64CmpLt
.public FixedPoint64IsZero
.public FixedPoint64ToInt
.public FixedRoomIsSubstituteRoom
.public FlashFireShouldActivate
.public GendersEqualNotGenderless
.public GendersNotEqualNotGenderless
.public GenerateStandardItem
.public GetActiveTeamMember
.public GetApparentWeather
.public GetDirectionTowardsPosition
.public GetEquivItemIndex
.public GetFirstEmptyMemberIdx
.public GetItemAtIdx
.public GetMonsterGenderVeneer
.public GetMoveCategory
.public GetNameString
.public GetRecruitRate1
.public GetRecruitRate2
.public GravityIsActive
.public HandleFaint
.public HasPlayedOldGame
.public InitTeamMember
.public IntToFixedPoint64
.public IqSkillIsEnabled
.public IsCurrentMissionTypeExact
.public IsFloating
.public IsFullFloorFixedRoom
.public IsLegendaryChallengeFloor
.public IsMonsterOnTeam
.public IsMonster__0230A994
.public IsPunchMove
.public IsRecoilMove
.public IsRecruitingAllowed
.public IsRegularAttackOrProjectile
.public ItemIsActive__0230A9DC
.public ItemIsActive__0230E578
.public LevitateIsActive
.public LogMessageByIdWithPopupCheckParticipants
.public LogMessageByIdWithPopupCheckUser
.public LogMessageByIdWithPopupCheckUserTarget
.public MATCHUP_IMMUNE_MULTIPLIER
.public MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_NEUTRAL_MULTIPLIER
.public MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER
.public MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER
.public MATCHUP_SUPER_EFFECTIVE_MULTIPLIER
.public MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER
.public ME_FIRST_MULTIPLIER
.public MUNCH_BELT_STAT_BOOST
.public MemZero
.public MonsterHasNegativeStatus
.public MonsterIsType
.public MoveIsNotPhysical
.public MultiplyByFixedPoint
.public MultiplyFixedPoint64
.public NearbyAllyIqSkillIsEnabled
.public OFFENSIVE_STAT_STAGE_MULTIPLIERS
.public OtherMonsterAbilityIsActive
.public POWER_BAND_STAT_BOOST
.public POWER_PITCHER_DAMAGE_MULTIPLIER
.public PlayEffectAnimation0x171
.public PlayEffectAnimation0x171Full
.public PlayEffectAnimation0x18E
.public PlayEffectAnimation0x1A9__022E6130
.public PlayEffectAnimation0x1A9__022E617C
.public PlayEffectAnimation0x1A9__022E61C8
.public PlayEffectAnimation0x1A9__022E6214
.public PlayEffectAnimation0x1A9__022E64C4
.public PlayEffectAnimation0x1A9__022E6510
.public PlayEffectAnimationEntity
.public PointCameraToMonster
.public RECRUITMENT_LEVEL_BOOST_TABLE
.public ResetDamageData
.public RoundUpDiv256
.public SCOPE_LENS_CRIT_RATE_BOOST
.public SOLID_ROCK_MULTIPLIER
.public SPECIAL_BAND_STAT_BOOST
.public SUPER_LUCK_CRIT_RATE_BOOST
.public SetItemAcquired
.public SetPokemonJoined
.public StrcpySimple
.public StrncpyName
.public StrncpySimpleNoPad
.public SubstitutePlaceholderStringTags
.public TECHNICIAN_MOVE_POWER_THRESHOLD
.public TINTED_LENS_MULTIPLIER
.public TYPE_ADVANTAGE_MASTER_CRIT_RATE
.public TYPE_MATCHUP_COMBINATOR_TABLE
.public TYPE_MATCHUP_TABLE
.public TryAftermathExplosion
.public UpdateStateFlags
.public ZINC_BAND_STAT_BOOST
.public _s32_div_f
.public abs
.public ov10_022BDE50
.public ov10_022BF964
.public ov10_022C4410
.public ov10_022C441C
.public ov10_022C443C
.public ov10_022C447C
.public ov10_022C44FC
.public ov10_022C45B4
.public ov10_022C46FC
.public ov10_022C4700
.public ov10_022C4704
.public ov10_022C4708
.public ov10_022C470C
.public ov29_022E1B28
.public ov29_022E2470
.public ov29_022E68BC
.public ov29_022E8104
.public ov29_022E81F8
.public ov29_022EACAC
.public ov29_022FBDE0
.public ov29_0230040C
.public ov29_02304A48
.public ov29_02305F60
.public ov29_0230E5A8
.public ov29_0230E5FC
.public ov29_0230E658
.public ov29_02337EC0
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_0234B1A4
.public ov29_0234BA54
.public ov29_0234D630
.public ov29_0234D7C0
.public ov29_0234D838
.public ov29_0234D8A0
.public ov29_0234EE10
.public ov29_02352838
.public ov29_02352884
.public ov29_02352894
.public ov29_02352984
.public ov29_02352990
.public ov29_0235299C
.public ov29_023535D4
.public sub_02056698
.public sub_020584FC
.public sub_020585B4

View File

@@ -0,0 +1,31 @@
#pragma once
.public AllocateTemp1024ByteBufferFromPool
.public DUNGEON_PTR
.public DungeonRandInt
.public EntityIsValid__0230E8F0
.public GetKecleonIdToSpawnByFloor
.public GetMonsterIdToSpawn
.public GetMonsterLevelToSpawn
.public GetRandomMovementChance
.public GetRandomTile
.public GetTile
.public LogMessageByIdWithPopup
.public MewSpawnCheck
.public PreprocessString
.public SPAWN_CAP_NO_MONSTER_HOUSE
.public SPAWN_CAP_WITH_MONSTER_HOUSE
.public SPAWN_COOLDOWN
.public SPAWN_COOLDOWN_THIEF_ALERT
.public SpawnMonster
.public StringFromId
.public SubstitutePlaceholderStringTags
.public ov29_022E62F0
.public ov29_022FBC94
.public ov29_022FD318
.public ov29_0234B034
.public ov29_0234BB50
.public ov29_0234D6C8
.public sub_020534BC
.public sub_02055CCC
.public sub_02055D7C
.public sub_02056830

View File

@@ -1,21 +1,17 @@
#pragma once
.public AbilityIsActiveVeneer
.public abs
.public AddMoneyCarried
.public AI_THROWN_ITEM_ACTION_CHOICE_COUNT
.public AbilityIsActiveVeneer
.public AddMoneyCarried
.public BAG_ITEMS_PTR_MIRROR
.public CanSeeTarget
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__0230F008
.public ExclusiveItemEffectFlagTest
.public GetAiUseItemProbability
.public GetCurrentBagCapacity
.public GetExclusiveItemForMonsterFromBag
.public GetItemCategoryVeneer
.public GetItemInfo
.public GetTile
.public GetTileAtEntity
.public GetTreatmentBetweenMonsters
.public HasHeldItem
@@ -23,8 +19,13 @@
.public IsAuraBow
.public IsExperienceLocked
.public IsFloorOver
.public IsMonster__0230F980
.public ItemIsActive__0230F810
.public LogMessageByIdWithPopup
.public RemoveGroundItem
.public ShouldMonsterRunAwayVariation
.public SubstitutePlaceholderStringTags
.public UseThrowableItem
.public abs
.public ov29_022EACCC
.public ov29_022F52BC
.public ov29_022F9EA0
@@ -35,8 +36,4 @@
.public ov29_02348D3C
.public ov29_02348DD8
.public ov29_02348ECC
.public RemoveGroundItem
.public ShouldMonsterRunAwayVariation
.public sub_0200D8AC
.public SubstitutePlaceholderStringTags
.public UseThrowableItem

View File

@@ -0,0 +1,8 @@
#pragma once
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public EntityIsValid__0230F008
.public ExclusiveItemEffectFlagTest
.public GetTile
.public IsMonster__0230F980
.public ItemIsActive__0230F810

View File

@@ -21,17 +21,17 @@
.public ExclusiveItemEffectFlagTest
.public GetApparentWeather
.public GetRegenSpeed
.public HasHeldItem
.public ICE_BODY_BONUS_REGEN
.public IqSkillIsEnabled
.public IsFloorOver
.public ItemIsActive__02311034
.public LogMessageByIdWithPopupCheckUser
.public ov10_022C4674
.public ov10_022C46F8
.public ov29_0234B294
.public ov29_02353318
.public RAIN_ABILITY_BONUS_REGEN
.public SubstitutePlaceholderStringTags
.public TickStatusTurnCounter
.public UpdateStatusIconFlags
.public WISH_BONUS_REGEN
.public ov10_022C4674
.public ov10_022C46F8
.public ov29_0234B294
.public ov29_02353318

View File

@@ -1,93 +1,14 @@
#pragma once
.public AbilityIsActiveVeneer
.public AllocateTemp1024ByteBufferFromPool
.public CalcSpeedStage
.public CalcSpeedStageWrapper
.public CalcStatusDuration
.public ChangeShayminForme
.public CopyStringFromId
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__023118B4
.public EntityIsValid__02315118
.public ExclusiveItemEffectFlagTest
.public GetExclusiveItemWithEffectFromBag
.public GetTile
.public GetTileAtEntity
.public HasHeldItem
.public ExclusiveItemEffectIsActiveWithLogging
.public InflictSleepStatusSingle
.public IqSkillIsEnabled
.public IsProtectedFromNegativeStatus
.public IsProtectedFromStatDrops
.public ItemIsActive__0231513C
.public ItemIsActive__02311BF8
.public LogMessageByIdWithPopupCheckUserTarget
.public MonsterIsType
.public MultiplyByFixedPoint
.public ov10_022C4618
.public ov10_022C4728
.public ov10_022C479C
.public ov10_022C47A0
.public ov10_022C4804
.public ov10_022C4870
.public ov10_022C4874
.public ov10_022C4878
.public ov10_022C4880
.public ov10_022C4884
.public ov10_022C488C
.public ov10_022C4890
.public ov10_022C4894
.public ov10_022C4898
.public ov10_022C48A0
.public ov10_022C48AC
.public ov10_022C48B8
.public ov29_022E3E74
.public ov29_022E41CC
.public ov29_022E41F0
.public ov29_022E4240
.public ov29_022E4290
.public ov29_022E4294
.public ov29_022E42E0
.public ov29_022E42E4
.public ov29_022E4338
.public ov29_022E4388
.public ov29_022E43D8
.public ov29_022E4428
.public ov29_022E44CC
.public ov29_022E451C
.public ov29_022E4B8C
.public ov29_022E4BA0
.public ov29_022E4BB4
.public ov29_022E4C00
.public ov29_022E4C4C
.public ov29_022E4D24
.public ov29_022E4D28
.public ov29_022E4DCC
.public ov29_022E4E74
.public ov29_022E4F1C
.public ov29_022E4FC0
.public ov29_022E5068
.public ov29_022E510C
.public ov29_022E51B0
.public ov29_022E5258
.public ov29_022E52F8
.public ov29_022E539C
.public ov29_022E53EC
.public ov29_022E543C
.public ov29_022E60E4
.public ov29_0230040C
.public ov29_023018AC
.public ov29_02304A48
.public ov29_02304A84
.public ov29_02344B44
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_02353318
.public SafeguardIsActive
.public SECONDARY_TERRAIN_TYPES
.public SPEED_BOOST_TURN_RANGE
.public SubstitutePlaceholderStringTags
.public TryActivateSteadfast
.public UpdateStatusIconFlags
.public TryActivateQuickFeet
.public ov29_022E3E74
.public ov29_02304A48

View File

@@ -0,0 +1,92 @@
#pragma once
.public AbilityIsActiveVeneer
.public AllocateTemp1024ByteBufferFromPool
.public CalcSpeedStage
.public CalcSpeedStageWrapper
.public CalcStatusDuration
.public ChangeShayminForme
.public CopyStringFromId
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DefenderAbilityIsActive__02311B94
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__023118B4
.public EntityIsValid__02315118
.public ExclusiveItemEffectFlagTest
.public GetExclusiveItemWithEffectFromBag
.public GetTile
.public GetTileAtEntity
.public IsProtectedFromNegativeStatus
.public IsProtectedFromSleepClassStatus
.public IsProtectedFromStatDrops
.public ItemIsActive__02311BF8
.public ItemIsActive__0231513C
.public LogMessageByIdWithPopupCheckUserTarget
.public MonsterIsType
.public MultiplyByFixedPoint
.public SECONDARY_TERRAIN_TYPES
.public SPEED_BOOST_TURN_RANGE
.public SafeguardIsActive
.public SubstitutePlaceholderStringTags
.public TryActivateSteadfast
.public UpdateStatusIconFlags
.public ov10_022C4618
.public ov10_022C4728
.public ov10_022C479C
.public ov10_022C47A0
.public ov10_022C4804
.public ov10_022C4870
.public ov10_022C4874
.public ov10_022C4878
.public ov10_022C4880
.public ov10_022C4884
.public ov10_022C488C
.public ov10_022C4890
.public ov10_022C4894
.public ov10_022C4898
.public ov10_022C48A0
.public ov10_022C48AC
.public ov10_022C48B8
.public ov29_022E41CC
.public ov29_022E41F0
.public ov29_022E4240
.public ov29_022E4290
.public ov29_022E4294
.public ov29_022E42E0
.public ov29_022E42E4
.public ov29_022E4338
.public ov29_022E4388
.public ov29_022E43D8
.public ov29_022E4428
.public ov29_022E44CC
.public ov29_022E451C
.public ov29_022E4B8C
.public ov29_022E4BA0
.public ov29_022E4BB4
.public ov29_022E4C00
.public ov29_022E4C4C
.public ov29_022E4D24
.public ov29_022E4D28
.public ov29_022E4DCC
.public ov29_022E4E74
.public ov29_022E4F1C
.public ov29_022E4FC0
.public ov29_022E5068
.public ov29_022E510C
.public ov29_022E51B0
.public ov29_022E5258
.public ov29_022E52F8
.public ov29_022E539C
.public ov29_022E53EC
.public ov29_022E543C
.public ov29_022E60E4
.public ov29_0230040C
.public ov29_023018AC
.public ov29_02304A48
.public ov29_02304A84
.public ov29_02344B44
.public ov29_0234B034
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_02353318

View File

@@ -1,17 +1,16 @@
#pragma once
.public _s32_div_f
.public ATK_STAT_IDX
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AiMovement
.public AnimationDelayOrSomething
.public ATK_STAT_IDX
.public BoostDefensiveStat
.public BoostOffensiveStat
.public CalcStatusDuration
.public CeilFixedPoint
.public DUNGEON_PTR
.public DetermineMonsterShadow
.public DisplayAnimatedNumbers
.public DUNGEON_PTR
.public DungeonGetSpriteIndex
.public DungeonRandInt
.public EndCurseClassStatus
@@ -23,16 +22,28 @@
.public GetMonsterApparentId
.public GetMonsterIdFromSpawnEntry
.public GetNameWithGender
.public HasHeldItem
.public HiddenStairsTrigger
.public IqSkillIsEnabled
.public IsProtectedFromNegativeStatus
.public ItemIsActive__0231513C
.public LogMessageByIdWithPopupCheckUserTarget
.public LowerSpeed
.public MewSpawnCheck
.public MonsterIsType
.public MonsterSpawnListPartialCopy
.public MultiplyByFixedPoint
.public PERISH_SONG_TURN_RANGE
.public SafeguardIsActive
.public ShouldDisplayEntityWrapper
.public SubFixedPoint
.public SubstitutePlaceholderStringTags
.public TryActivateQuickFeet
.public TryRemoveSnatchedMonsterFromDungeonStruct
.public UpdateCamera
.public UpdateMinimap
.public UpdateStatusIconFlags
.public UpdateTrapsVisibility
.public _s32_div_f
.public ov10_022C4470
.public ov10_022C44B0
.public ov10_022C4784
@@ -84,20 +95,9 @@
.public ov29_02304830
.public ov29_0234B09C
.public ov29_0234B0B4
.public PERISH_SONG_TURN_RANGE
.public SafeguardIsActive
.public ShouldDisplayEntityWrapper
.public strcpy
.public sub_02001888
.public sub_02024FB8
.public sub_02050EBC
.public sub_02050F78
.public sub_02050FF8
.public SubFixedPoint
.public SubstitutePlaceholderStringTags
.public TryActivateQuickFeet
.public TryRemoveSnatchedMonsterFromDungeonStruct
.public UpdateCamera
.public UpdateMinimap
.public UpdateStatusIconFlags
.public UpdateTrapsVisibility

View File

@@ -1,8 +1,4 @@
#pragma once
.public _020AFC4C
.public _s32_div_f
.public AbilityIsActiveVeneer
.public abs
.public AddMoneyCarried
.public AdvanceFrame
.public ApplyItemEffect
@@ -12,16 +8,16 @@
.public DIRECTIONS_XY
.public DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST
.public DISPLACEMENTS_WITHIN_3
.public DUNGEON_PTR
.public DisplayMessage2
.public DoesProjectileHitTarget
.public DrawMinimapTile
.public DUNGEON_PTR
.public DungeonRand16Bit
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public EntityIsValid__02345698
.public EntityIsValid__02347BA4
.public ExclusiveItemEffectFlagTest
.public ExclusiveItemEffectIsActive__02347B80
.public GetActiveTeamMember
.public GetActualBuyPrice
.public GetActualSellPrice
@@ -52,6 +48,7 @@
.public IsShoppableItem
.public IsUnown
.public IsWaterTileset
.public ItemIsActive__02347B50
.public ItemZInit
.public LogMessageByIdQuiet
.public LogMessageByIdWithPopupCheckUser
@@ -59,6 +56,22 @@
.public LogMessageByIdWithPopupCheckUserUnknown
.public MONEY_QUANTITY_TABLE
.public MonsterHasEmbargoStatus
.public RemoveEmptyItemsInBag
.public RetrieveFromItemList1
.public SECONDARY_TERRAIN_TYPES
.public SetEntityPixelPosXY
.public SetItemAcquired
.public ShouldDisplayEntityWrapper
.public SpawnItem
.public SubstitutePlaceholderStringTags
.public TestItemAiFlag
.public TwoTurnMoveForcedMiss
.public UNOWN_STONE_DROP_CHANCE
.public UpdateEntityPixelPos
.public YesNoMenu
.public _020AFC4C
.public _s32_div_f
.public abs
.public ov10_022C44C8
.public ov10_022C48EC
.public ov10_022C4CD8
@@ -87,13 +100,6 @@
.public ov29_023537B4
.public ov29_023537BC
.public ov29_0237C864
.public RemoveEmptyItemsInBag
.public RetrieveFromItemList1
.public SECONDARY_TERRAIN_TYPES
.public SetEntityPixelPosXY
.public SetItemAcquired
.public ShouldDisplayEntityWrapper
.public SpawnItem
.public sub_020018D0
.public sub_0200CF6C
.public sub_0200D1FC
@@ -104,9 +110,3 @@
.public sub_0204F7A8
.public sub_02053D1C
.public sub_02057CE8
.public SubstitutePlaceholderStringTags
.public TestItemAiFlag
.public TwoTurnMoveForcedMiss
.public UNOWN_STONE_DROP_CHANCE
.public UpdateEntityPixelPos
.public YesNoMenu

View File

@@ -0,0 +1,2 @@
#pragma once
.public ExclusiveItemEffectFlagTest

View File

@@ -1,24 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_022E330C.inc"
.include "overlay_29_022E333C.inc"
.text
arm_func_start ItemIsActive__022E330C
ItemIsActive__022E330C: ; 0x022E330C
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__022E330C
arm_func_start GetVisibilityRange
GetVisibilityRange: ; 0x022E333C
ldr r0, _022E3358 ; =DUNGEON_PTR

View File

@@ -1650,19 +1650,3 @@ _022EE30C: .word 0x00000E5C + TRY_TRIGGER_TRAP_DATA_OFFSET
_022EE310: .word TRAP_BUSTER_ACTIVATION_CHANCE
_022EE314: .word 0x00000E5D + TRY_TRIGGER_TRAP_DATA_OFFSET
arm_func_end TryTriggerTrap
arm_func_start ItemIsActive__022EE318
ItemIsActive__022EE318: ; 0x022EE318
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__022EE318

View File

@@ -541,782 +541,3 @@ _022F6F84: .word 0x000008FF
_022F598C: .word 0x00000BBF + USE_THROWABLE_ITEM_OFFSET
_022F5990: .word DUNGEON_PTR
arm_func_end UseThrowableItem
arm_func_start ItemIsActive__022F5994
ItemIsActive__022F5994: ; 0x022F5994
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__022F5994
arm_func_start ov29_022F59C4
ov29_022F59C4: ; 0x022F59C4
stmdb sp!, {r4, lr}
mov r4, r0
bl ov29_022F87C0
movs r1, r0
moveq r1, #0
beq _022F59FC
ldr r0, [r1]
cmp r0, #1
movne r1, #0
bne _022F59FC
ldr r0, [r4, #0xb4]
ldrb r0, [r0, #6]
cmp r0, #0
movne r1, #0
_022F59FC:
mov r0, r4
mvn r2, #0
bl ov29_022F5A40
ldmia sp!, {r4, pc}
arm_func_end ov29_022F59C4
arm_func_start ov29_022F5A0C
ov29_022F5A0C: ; 0x022F5A0C
stmdb sp!, {r4, lr}
mov r4, r0
bl GetLeader
ldr r1, _022F5A3C ; =DUNGEON_PTR
ldrb r3, [r4, #4]
ldr r1, [r1]
mov r2, #0
add r1, r1, r3, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
bl ov29_022F5A40
ldmia sp!, {r4, pc}
.align 2, 0
_022F5A3C: .word DUNGEON_PTR
arm_func_end ov29_022F5A0C
arm_func_start ov29_022F5A40
ov29_022F5A40: ; 0x022F5A40
#ifdef JAPAN
#define OV29_022F5A40_OFFSET -4
#else
#define OV29_022F5A40_OFFSET 0
#endif
#ifdef JAPAN
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
#else
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
#endif
sub sp, sp, #0x18 + OV29_022F5A40_OFFSET
mov r6, r0
movs sl, r1
mov r5, r2
ldr r8, [r6, #0xb4]
bne _022F5A70
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5A70:
bl ov29_023009CC
cmp r0, #0
bne _022F5A90
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5A90:
ldr r0, [sl, #0xb4]
ldrb r0, [r0, #0xbc]
bl IsSecretBazaarNpcBehavior
movs r4, r0
bne _022F5ADC
mov r0, r6
mov r1, sl
mov r2, #1
mov r3, #0
bl GetTreatmentBetweenMonsters
cmp r0, #1
beq _022F5D84
mov r0, sl
mov r1, r6
mov r2, #1
mov r3, #0
bl GetTreatmentBetweenMonsters
cmp r0, #1
beq _022F5D84
_022F5ADC:
ldr sb, [sl, #0xb4]
bl ov29_0234B034
mov r1, #0
mov r2, sb
mov r3, r1
str r1, [sp]
bl ov29_0230040C
bl ov29_0234B034
mov r1, #0
str r1, [sp]
mov r1, #1
mov r2, sb
mov r3, #7
bl ov29_0230040C
mov r0, #3
bl ov29_02348C64
mov r0, r6
mov r1, sl
bl ov29_02307BDC
mov r0, sl
bl ov29_023009CC
cmp r0, #0
beq _022F5B4C
mov r0, sl
mov r1, #1
bl CheckVariousStatuses2
cmp r0, #0
beq _022F5B78
_022F5B4C:
add r0, r6, #4
add r1, sl, #4
bl GetDirectionTowardsPosition
mov r1, r0
mov r0, r6
bl ov29_02304AFC
ldr r1, _022F5DA0 ; =0x00000BC2
mov r0, #0
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5B78:
add r0, r6, #4
add r1, sl, #4
bl GetDirectionTowardsPosition
mov r1, r0
mov r0, r6
bl ov29_02304AFC
cmp r5, #0
blt _022F5BA8
mov r0, sl
mov r1, r5
bl ov29_02304AFC
b _022F5BB8
_022F5BA8:
ldrb r1, [r8, #0x4c]
mov r0, sl
add r1, r1, #4
bl ov29_02304AFC
_022F5BB8:
cmp r4, #0
beq _022F5BD0
mov r0, r6
mov r1, sl
bl ov29_02344544
b _022F5D94
_022F5BD0:
ldrb r0, [sb, #9]
cmp r0, #1
bne _022F5BE4
bl ov29_022F6748
b _022F5D94
_022F5BE4:
ldrb r0, [sb, #0xbc]
cmp r0, #7
bne _022F5C3C
ldr r0, _022F5DA4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x790]
cmp r0, #0
beq _022F5C18
ldr r1, _022F5DA8 ; =0x00000BC3
mov r0, #0
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5C18:
bl GetMissionDestination
ldrb r0, [r0, #0x18]
cmp r0, #0
mov r0, sl
beq _022F5C34
bl ov29_0234A5E4
b _022F5D94
_022F5C34:
bl ov29_0234A2D4
b _022F5D94
_022F5C3C:
ldrsh r2, [sb, #0x12]
ldrsh r1, [sb, #0x16]
ldr r0, _022F5DAC ; =0x000003E7
add r1, r2, r1
cmp r1, r0
movgt r1, r0
mov r0, r1, lsl #3
mov r1, #0xa
bl _s32_div_f
ldrsh r1, [sb, #0x10]
cmp r1, r0
movge r4, #0
bge _022F5C84
mov r0, sl
bl HasLowHealth
cmp r0, #0
moveq r4, #1
movne r4, #2
_022F5C84:
bl AllocateTemp1024ByteBufferFromPool
ldrb r1, [sb, #0x48]
mov r5, r0
cmp r1, #0xd6
bne _022F5CA4
ldr r1, _022F5DB0 ; =0x0000025E
bl GetStringFromFileVeneer
b _022F5D3C
_022F5CA4:
mov r0, sl
mov r6, #0x14
bl ov29_0231AE3C
#ifdef JAPAN
mov r7, r0
#else
str r0, [sp, #4]
ldr r0, _022F5DB4 ; =0x000004D3
sub fp, r0, #0x1b
#endif
_022F5CBC:
mov r0, sb
bl GetPersonalityIndex
#ifdef JAPAN
mov fp, r0
ldr r0, _022F5DB4 ; =0x000004D3
cmp fp, r0
#else
mov r7, r0
cmp r7, fp
ldrne r0, _022F5DB4 ; =0x000004D3
cmpne r7, r0
#endif
moveq r2, #0
beq _022F5CE8
ldrb r0, [r8, #0x48]
bl ov29_0234CFA0
mov r2, r0
_022F5CE8:
#ifdef JAPAN
mov r0, fp
#else
mov r0, r7
#endif
mov r1, r4
bl GetTalkLine
mov r1, r0
mov r0, r5
bl GetStringFromFileVeneer
#ifdef JAPAN
cmp r7, #0
#else
ldr r0, [sp, #4]
cmp r0, #0
#endif
bne _022F5D3C
ldr r1, _022F5DB8 ; =ov29_02352750
mov r0, r5
bl sub_02020880
cmp r0, #0
beq _022F5D3C
subs r6, r6, #1
bne _022F5D34
ldr r1, _022F5DBC ; =ov29_02352758
mov r0, r5
bl strcpy
_022F5D34:
cmp r6, #0
bne _022F5CBC
_022F5D3C:
ldrb r0, [sb, #0x48]
cmp r0, #0xd7
bne _022F5D5C
mov r0, sl
bl HasLowHealth
cmp r0, #0
movne r2, #2
bne _022F5D60
_022F5D5C:
mov r2, #0
_022F5D60:
ldrsh r1, [sb, #4]
add r0, sp, #8 + OV29_022F5A40_OFFSET
bl InitPortraitDungeon
add r1, sp, #8 + OV29_022F5A40_OFFSET
mov r0, sl
mov r2, r5
mov r3, #1
bl ov29_0234D304
b _022F5D94
_022F5D84:
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
_022F5D94:
add sp, sp, #0x18 + OV29_022F5A40_OFFSET
#ifdef JAPAN
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
#else
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
#endif
.align 2, 0
#ifdef JAPAN
_022F5DA0: .word 0x00000901
_022F5DA4: .word DUNGEON_PTR
_022F5DA8: .word 0x00000902
_022F5DAC: .word 0x000003E7
_022F5DB0: .word 0x000004F8
_022F5DB4: .word 0x000004B8
#else
_022F5D9C: .word 0x00000BC1
_022F5DA0: .word 0x00000BC2
_022F5DA4: .word DUNGEON_PTR
_022F5DA8: .word 0x00000BC3
_022F5DAC: .word 0x000003E7
_022F5DB0: .word 0x0000025E
_022F5DB4: .word 0x000004D3
#endif
_022F5DB8: .word ov29_02352750
_022F5DBC: .word ov29_02352758
arm_func_end ov29_022F5A40
arm_func_start ov29_022F5DC0
ov29_022F5DC0: ; 0x022F5DC0
stmdb sp!, {r4, lr}
mov r4, r0
bl GetLeader
ldr r1, _022F5DF0 ; =DUNGEON_PTR
ldrb r3, [r4, #4]
ldr r1, [r1]
mov r2, #0
add r1, r1, r3, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
bl ov29_022F5DF4
ldmia sp!, {r4, pc}
.align 2, 0
_022F5DF0: .word DUNGEON_PTR
arm_func_end ov29_022F5DC0
arm_func_start ov29_022F5DF4
ov29_022F5DF4: ; 0x022F5DF4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x44
movs r7, r1
ldr r4, [r7, #0xb4]
mov r0, #0
bne _022F5E1C
ldr r1, _022F5F0C ; =0x00000BC4
mov r2, #1
bl DisplayMessage2
b _022F5F04
_022F5E1C:
mov r2, r0
bl SubstitutePlaceholderStringTags
ldrsh r0, [r4, #0xc]
ldr r5, _022F5F10 ; =0x00000BC5
cmp r0, #0
add r6, r5, #4
blt _022F5E84
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
bl GetActiveTeamMember
mov r4, r0
ldrsh r0, [r4, #8]
bl CheckTeamMemberIdxVeneer
cmp r0, #0
addne r5, r5, #3
addne r6, r5, #3
bne _022F5E84
ldrsh r0, [r4, #8]
bl IsMonsterIdInNormalRangeVeneer
cmp r0, #0
beq _022F5E84
bl IsMarowakTrainingMaze
cmp r0, #0
addne r5, r5, #2
ldr r6, _022F5F14 ; =0x00000BCA
addeq r5, r5, #1
_022F5E84:
mov r2, #1
#ifdef JAPAN
mov r0, #0
mov r1, r5
mov r3, r2
str r0, [sp]
#else
mov r1, r5
mov r3, r2
mov r0, #0
str r2, [sp]
#endif
bl YesNoMenu
cmp r0, #1
bne _022F5F04
mov r0, #0
bl ov29_0233A248
mov r0, #0
bl sub_02024FB8
mov r1, r0
add r0, sp, #4
mov r2, #0x40
bl strncpy
mov r0, r7
bl ov29_022E690C
mov r0, r7
mov r1, #0x25c
mov r2, #0
bl HandleFaint
#if defined(NORTH_AMERICA)
bl UpdateMapSurveyorFlag
#endif
bl ov29_022E8104
bl ov29_022E81F8
mov r0, #0
add r1, sp, #4
bl ov29_0234B0B4
mov r1, r6
mov r0, #0
mov r2, #1
#ifdef JAPAN
bl DisplayMessage2
#else
bl DisplayMessage
#endif
_022F5F04:
add sp, sp, #0x44
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
#ifdef JAPAN
_022F5F0C: .word 0x00000903
_022F5F10: .word 0x00000904
_022F5F14: .word 0x00000909
#else
_022F5F0C: .word 0x00000BC4
_022F5F10: .word 0x00000BC5
_022F5F14: .word 0x00000BCA
#endif
arm_func_end ov29_022F5DF4
arm_func_start ov29_022F5F18
ov29_022F5F18: ; 0x022F5F18
#ifdef JAPAN
#define OV29_022F5F18_OFFSET -4
#else
#define OV29_022F5F18_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #4
mov sb, r0
mov r7, #0
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F5F88
ldr r0, _022F6050 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x4000
#ifdef JAPAN
ldrb r0, [r0, #0x36]
#else
ldrb r0, [r0, #0xda]
#endif
bl AreMovesEnabled
cmp r0, #0
bne _022F5F60
ldr r1, _022F6054 ; =0x00000DFD
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
b _022F6048
_022F5F60:
ldr r4, [sb, #0xb4]
mov r1, r7
mov r0, sb
strb r1, [r4, #0x23f + OV29_022F5F18_OFFSET]
bl ShouldUsePp
cmp r0, #0
movne r7, #1
strneb r7, [r4, #0x23f + OV29_022F5F18_OFFSET]
mov r0, #0
strb r0, [r4, #0x23e + OV29_022F5F18_OFFSET]
_022F5F88:
mov r6, #0
mov r4, #1
mov r5, r6
mov sl, r4
b _022F5FD8
_022F5F9C:
ldr r8, [sb, #0xb4]
mov r0, sb
str r5, [sp]
ldrb r1, [r8, #0x54]
mov r2, r4
mov r3, r5
bl ov29_0232145C
bl IsFloorOver
cmp r0, #0
ldreqb r0, [r8, #0x23e + OV29_022F5F18_OFFSET]
cmpeq r0, #0
ldreqb r0, [r8, #0x163 + OV29_022F5F18_OFFSET]
cmpeq r0, #0
bne _022F5FEC
add r6, r6, #1
_022F5FD8:
mov r0, sb
mov r1, sl
bl GetNumberOfAttacks
cmp r6, r0
blt _022F5F9C
_022F5FEC:
mov r0, sb
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6014
cmp r7, #0
moveq r1, #1
movne r1, #0
mov r0, sb
and r1, r1, #0xff
bl UpdateMovePp
_022F6014:
bl IsFloorOver
cmp r0, #0
bne _022F6048
mov r0, sb
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6040
ldr r1, [sb, #0xb4]
mov r0, sb
ldrb r1, [r1, #0x54]
bl ov29_022FA574
_022F6040:
mov r0, sb
bl TryActivateTruant
_022F6048:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_022F6050: .word DUNGEON_PTR
#ifdef JAPAN
_022F6054: .word 0x00000B3D
#else
_022F6054: .word 0x00000DFD
#endif
arm_func_end ov29_022F5F18
arm_func_start ov29_022F6058
ov29_022F6058: ; 0x022F6058
#ifdef JAPAN
#define OV29_022F6058_OFFSET -4
#else
#define OV29_022F6058_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov sl, r0
ldr r7, [sl, #0xb4]
ldr r2, _022F61F8 ; =ov29_0237CA80
mov r3, #0
add r0, sp, #0xc
str r3, [r2]
mov sb, r1
bl InitMove
ldrb r0, [r7, #0xd0]
cmp r0, #1
bne _022F60AC
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _022F61FC ; =0x00000BCC
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
b _022F61F0
_022F60AC:
ldrb r0, [r7, #0xbf]
cmp r0, #4
bne _022F60D8
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _022F6200 ; =0x00000BCD
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
b _022F61F0
_022F60D8:
mov r6, #0
cmp sb, #0x160
moveq r8, #1
movne r8, #0
strb r6, [r7, #0x163 + OV29_022F6058_OFFSET]
mov fp, r6
mov r5, #0xa
add r4, sp, #0xc
b _022F6154
_022F60FC:
mov r0, sl
bl ov29_022F3B8C
str fp, [r7, #0x18c + OV29_022F6058_OFFSET]
ldrb r1, [sp, #0xc]
strb r5, [sp, #0x12]
mov r0, sl
orr r1, r1, #0xc
strb r1, [sp, #0xc]
str fp, [sp]
mov r1, r8
mov r2, fp
mov r3, fp
str r4, [sp, #4]
bl ov29_02322374
mov r0, sl
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6168
ldrb r0, [r7, #0x163 + OV29_022F6058_OFFSET]
cmp r0, #0
bne _022F6168
add r6, r6, #1
_022F6154:
mov r0, sl
mov r1, #1
bl GetNumberOfAttacks
cmp r6, r0
blt _022F60FC
_022F6168:
mov r0, sl
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F61F0
cmp sb, #0x160
ldreq r0, _022F61F8 ; =ov29_0237CA80
ldreq r0, [r0]
cmpeq r0, #0
bne _022F6198
ldr r1, _022F6204 ; =0x00000BCE
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
_022F6198:
ldrb r0, [r7, #7]
cmp r0, #0
cmpne sb, #0x160
beq _022F61E8
ldrb r1, [r7, #0x4c]
ldr r0, _022F6208 ; =DIRECTIONS_XY
ldrsh r3, [sl, #4]
mov r1, r1, lsl #2
ldrsh r2, [r0, r1]
ldr r1, _022F620C ; =ov29_0235171E
add r0, sp, #8
add r2, r3, r2
strh r2, [sp, #8]
ldrb r2, [r7, #0x4c]
ldrsh r3, [sl, #6]
mov r2, r2, lsl #2
ldrsh r1, [r1, r2]
add r1, r3, r1
strh r1, [sp, #0xa]
bl ov29_02338430
_022F61E8:
mov r0, sl
bl EnemyEvolution
_022F61F0:
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_022F61F8: .word ov29_0237CA80
#ifdef JAPAN
_022F61FC: .word 0x0000090B
_022F6200: .word 0x0000090C
_022F6204: .word 0x0000090D
#else
_022F61FC: .word 0x00000BCC
_022F6200: .word 0x00000BCD
_022F6204: .word 0x00000BCE
#endif
_022F6208: .word DIRECTIONS_XY
_022F620C: .word ov29_0235171E
arm_func_end ov29_022F6058
arm_func_start ov29_022F6210
ov29_022F6210: ; 0x022F6210
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r0
bl EntityIsValid__022F62A8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r4, #0
ldr r7, _022F62A4 ; =DUNGEON_PTR
b _022F6294
_022F6234:
ldr r0, [r7]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r5, [r0, #0xa94]
#else
ldr r5, [r0, #0xb38]
#endif
mov r0, r5
bl EntityIsValid__022F62A8
cmp r0, #0
beq _022F6288
ldr r0, [r5, #0xb4]
ldrb r0, [r0, #9]
cmp r0, #1
bne _022F6288
mov r0, r5
bl ov29_023009CC
cmp r0, #0
beq _022F6288
ldrb r1, [r6, #0x25]
ldrb r0, [r5, #0x25]
cmp r1, r0
moveq r0, r5
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_022F6288:
add r0, r4, #1
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
_022F6294:
cmp r4, #0x10
blt _022F6234
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022F62A4: .word DUNGEON_PTR
arm_func_end ov29_022F6210

767
asm/overlay_29_022F59C4.s Normal file
View File

@@ -0,0 +1,767 @@
.include "asm/macros.inc"
.include "overlay_29_022F59C4.inc"
.text
arm_func_start ov29_022F59C4
ov29_022F59C4: ; 0x022F59C4
stmdb sp!, {r4, lr}
mov r4, r0
bl ov29_022F87C0
movs r1, r0
moveq r1, #0
beq _022F59FC
ldr r0, [r1]
cmp r0, #1
movne r1, #0
bne _022F59FC
ldr r0, [r4, #0xb4]
ldrb r0, [r0, #6]
cmp r0, #0
movne r1, #0
_022F59FC:
mov r0, r4
mvn r2, #0
bl ov29_022F5A40
ldmia sp!, {r4, pc}
arm_func_end ov29_022F59C4
arm_func_start ov29_022F5A0C
ov29_022F5A0C: ; 0x022F5A0C
stmdb sp!, {r4, lr}
mov r4, r0
bl GetLeader
ldr r1, _022F5A3C ; =DUNGEON_PTR
ldrb r3, [r4, #4]
ldr r1, [r1]
mov r2, #0
add r1, r1, r3, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
bl ov29_022F5A40
ldmia sp!, {r4, pc}
.align 2, 0
_022F5A3C: .word DUNGEON_PTR
arm_func_end ov29_022F5A0C
arm_func_start ov29_022F5A40
ov29_022F5A40: ; 0x022F5A40
#ifdef JAPAN
#define OV29_022F5A40_OFFSET -4
#else
#define OV29_022F5A40_OFFSET 0
#endif
#ifdef JAPAN
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
#else
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
#endif
sub sp, sp, #0x18 + OV29_022F5A40_OFFSET
mov r6, r0
movs sl, r1
mov r5, r2
ldr r8, [r6, #0xb4]
bne _022F5A70
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5A70:
bl ov29_023009CC
cmp r0, #0
bne _022F5A90
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5A90:
ldr r0, [sl, #0xb4]
ldrb r0, [r0, #0xbc]
bl IsSecretBazaarNpcBehavior
movs r4, r0
bne _022F5ADC
mov r0, r6
mov r1, sl
mov r2, #1
mov r3, #0
bl GetTreatmentBetweenMonsters
cmp r0, #1
beq _022F5D84
mov r0, sl
mov r1, r6
mov r2, #1
mov r3, #0
bl GetTreatmentBetweenMonsters
cmp r0, #1
beq _022F5D84
_022F5ADC:
ldr sb, [sl, #0xb4]
bl ov29_0234B034
mov r1, #0
mov r2, sb
mov r3, r1
str r1, [sp]
bl ov29_0230040C
bl ov29_0234B034
mov r1, #0
str r1, [sp]
mov r1, #1
mov r2, sb
mov r3, #7
bl ov29_0230040C
mov r0, #3
bl ov29_02348C64
mov r0, r6
mov r1, sl
bl ov29_02307BDC
mov r0, sl
bl ov29_023009CC
cmp r0, #0
beq _022F5B4C
mov r0, sl
mov r1, #1
bl CheckVariousStatuses2
cmp r0, #0
beq _022F5B78
_022F5B4C:
add r0, r6, #4
add r1, sl, #4
bl GetDirectionTowardsPosition
mov r1, r0
mov r0, r6
bl ov29_02304AFC
ldr r1, _022F5DA0 ; =0x00000BC2
mov r0, #0
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5B78:
add r0, r6, #4
add r1, sl, #4
bl GetDirectionTowardsPosition
mov r1, r0
mov r0, r6
bl ov29_02304AFC
cmp r5, #0
blt _022F5BA8
mov r0, sl
mov r1, r5
bl ov29_02304AFC
b _022F5BB8
_022F5BA8:
ldrb r1, [r8, #0x4c]
mov r0, sl
add r1, r1, #4
bl ov29_02304AFC
_022F5BB8:
cmp r4, #0
beq _022F5BD0
mov r0, r6
mov r1, sl
bl ov29_02344544
b _022F5D94
_022F5BD0:
ldrb r0, [sb, #9]
cmp r0, #1
bne _022F5BE4
bl ov29_022F6748
b _022F5D94
_022F5BE4:
ldrb r0, [sb, #0xbc]
cmp r0, #7
bne _022F5C3C
ldr r0, _022F5DA4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x790]
cmp r0, #0
beq _022F5C18
ldr r1, _022F5DA8 ; =0x00000BC3
mov r0, #0
mov r2, #1
bl DisplayMessage2
b _022F5D94
_022F5C18:
bl GetMissionDestination
ldrb r0, [r0, #0x18]
cmp r0, #0
mov r0, sl
beq _022F5C34
bl ov29_0234A5E4
b _022F5D94
_022F5C34:
bl ov29_0234A2D4
b _022F5D94
_022F5C3C:
ldrsh r2, [sb, #0x12]
ldrsh r1, [sb, #0x16]
ldr r0, _022F5DAC ; =0x000003E7
add r1, r2, r1
cmp r1, r0
movgt r1, r0
mov r0, r1, lsl #3
mov r1, #0xa
bl _s32_div_f
ldrsh r1, [sb, #0x10]
cmp r1, r0
movge r4, #0
bge _022F5C84
mov r0, sl
bl HasLowHealth
cmp r0, #0
moveq r4, #1
movne r4, #2
_022F5C84:
bl AllocateTemp1024ByteBufferFromPool
ldrb r1, [sb, #0x48]
mov r5, r0
cmp r1, #0xd6
bne _022F5CA4
ldr r1, _022F5DB0 ; =0x0000025E
bl GetStringFromFileVeneer
b _022F5D3C
_022F5CA4:
mov r0, sl
mov r6, #0x14
bl ov29_0231AE3C
#ifdef JAPAN
mov r7, r0
#else
str r0, [sp, #4]
ldr r0, _022F5DB4 ; =0x000004D3
sub fp, r0, #0x1b
#endif
_022F5CBC:
mov r0, sb
bl GetPersonalityIndex
#ifdef JAPAN
mov fp, r0
ldr r0, _022F5DB4 ; =0x000004D3
cmp fp, r0
#else
mov r7, r0
cmp r7, fp
ldrne r0, _022F5DB4 ; =0x000004D3
cmpne r7, r0
#endif
moveq r2, #0
beq _022F5CE8
ldrb r0, [r8, #0x48]
bl ov29_0234CFA0
mov r2, r0
_022F5CE8:
#ifdef JAPAN
mov r0, fp
#else
mov r0, r7
#endif
mov r1, r4
bl GetTalkLine
mov r1, r0
mov r0, r5
bl GetStringFromFileVeneer
#ifdef JAPAN
cmp r7, #0
#else
ldr r0, [sp, #4]
cmp r0, #0
#endif
bne _022F5D3C
ldr r1, _022F5DB8 ; =ov29_02352750
mov r0, r5
bl sub_02020880
cmp r0, #0
beq _022F5D3C
subs r6, r6, #1
bne _022F5D34
ldr r1, _022F5DBC ; =ov29_02352758
mov r0, r5
bl strcpy
_022F5D34:
cmp r6, #0
bne _022F5CBC
_022F5D3C:
ldrb r0, [sb, #0x48]
cmp r0, #0xd7
bne _022F5D5C
mov r0, sl
bl HasLowHealth
cmp r0, #0
movne r2, #2
bne _022F5D60
_022F5D5C:
mov r2, #0
_022F5D60:
ldrsh r1, [sb, #4]
add r0, sp, #8 + OV29_022F5A40_OFFSET
bl InitPortraitDungeon
add r1, sp, #8 + OV29_022F5A40_OFFSET
mov r0, sl
mov r2, r5
mov r3, #1
bl ov29_0234D304
b _022F5D94
_022F5D84:
#ifdef JAPAN
mov r0, #0
mov r1, #0x900
#else
ldr r1, _022F5D9C ; =0x00000BC1
mov r0, #0
#endif
mov r2, #1
bl DisplayMessage2
_022F5D94:
add sp, sp, #0x18 + OV29_022F5A40_OFFSET
#ifdef JAPAN
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
#else
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
#endif
.align 2, 0
#ifdef JAPAN
_022F5DA0: .word 0x00000901
_022F5DA4: .word DUNGEON_PTR
_022F5DA8: .word 0x00000902
_022F5DAC: .word 0x000003E7
_022F5DB0: .word 0x000004F8
_022F5DB4: .word 0x000004B8
#else
_022F5D9C: .word 0x00000BC1
_022F5DA0: .word 0x00000BC2
_022F5DA4: .word DUNGEON_PTR
_022F5DA8: .word 0x00000BC3
_022F5DAC: .word 0x000003E7
_022F5DB0: .word 0x0000025E
_022F5DB4: .word 0x000004D3
#endif
_022F5DB8: .word ov29_02352750
_022F5DBC: .word ov29_02352758
arm_func_end ov29_022F5A40
arm_func_start ov29_022F5DC0
ov29_022F5DC0: ; 0x022F5DC0
stmdb sp!, {r4, lr}
mov r4, r0
bl GetLeader
ldr r1, _022F5DF0 ; =DUNGEON_PTR
ldrb r3, [r4, #4]
ldr r1, [r1]
mov r2, #0
add r1, r1, r3, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
bl ov29_022F5DF4
ldmia sp!, {r4, pc}
.align 2, 0
_022F5DF0: .word DUNGEON_PTR
arm_func_end ov29_022F5DC0
arm_func_start ov29_022F5DF4
ov29_022F5DF4: ; 0x022F5DF4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x44
movs r7, r1
ldr r4, [r7, #0xb4]
mov r0, #0
bne _022F5E1C
ldr r1, _022F5F0C ; =0x00000BC4
mov r2, #1
bl DisplayMessage2
b _022F5F04
_022F5E1C:
mov r2, r0
bl SubstitutePlaceholderStringTags
ldrsh r0, [r4, #0xc]
ldr r5, _022F5F10 ; =0x00000BC5
cmp r0, #0
add r6, r5, #4
blt _022F5E84
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
bl GetActiveTeamMember
mov r4, r0
ldrsh r0, [r4, #8]
bl CheckTeamMemberIdxVeneer
cmp r0, #0
addne r5, r5, #3
addne r6, r5, #3
bne _022F5E84
ldrsh r0, [r4, #8]
bl IsMonsterIdInNormalRangeVeneer
cmp r0, #0
beq _022F5E84
bl IsMarowakTrainingMaze
cmp r0, #0
addne r5, r5, #2
ldr r6, _022F5F14 ; =0x00000BCA
addeq r5, r5, #1
_022F5E84:
mov r2, #1
#ifdef JAPAN
mov r0, #0
mov r1, r5
mov r3, r2
str r0, [sp]
#else
mov r1, r5
mov r3, r2
mov r0, #0
str r2, [sp]
#endif
bl YesNoMenu
cmp r0, #1
bne _022F5F04
mov r0, #0
bl ov29_0233A248
mov r0, #0
bl sub_02024FB8
mov r1, r0
add r0, sp, #4
mov r2, #0x40
bl strncpy
mov r0, r7
bl ov29_022E690C
mov r0, r7
mov r1, #0x25c
mov r2, #0
bl HandleFaint
#if defined(NORTH_AMERICA)
bl UpdateMapSurveyorFlag
#endif
bl ov29_022E8104
bl ov29_022E81F8
mov r0, #0
add r1, sp, #4
bl ov29_0234B0B4
mov r1, r6
mov r0, #0
mov r2, #1
#ifdef JAPAN
bl DisplayMessage2
#else
bl DisplayMessage
#endif
_022F5F04:
add sp, sp, #0x44
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
#ifdef JAPAN
_022F5F0C: .word 0x00000903
_022F5F10: .word 0x00000904
_022F5F14: .word 0x00000909
#else
_022F5F0C: .word 0x00000BC4
_022F5F10: .word 0x00000BC5
_022F5F14: .word 0x00000BCA
#endif
arm_func_end ov29_022F5DF4
arm_func_start ov29_022F5F18
ov29_022F5F18: ; 0x022F5F18
#ifdef JAPAN
#define OV29_022F5F18_OFFSET -4
#else
#define OV29_022F5F18_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #4
mov sb, r0
mov r7, #0
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F5F88
ldr r0, _022F6050 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x4000
#ifdef JAPAN
ldrb r0, [r0, #0x36]
#else
ldrb r0, [r0, #0xda]
#endif
bl AreMovesEnabled
cmp r0, #0
bne _022F5F60
ldr r1, _022F6054 ; =0x00000DFD
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
b _022F6048
_022F5F60:
ldr r4, [sb, #0xb4]
mov r1, r7
mov r0, sb
strb r1, [r4, #0x23f + OV29_022F5F18_OFFSET]
bl ShouldUsePp
cmp r0, #0
movne r7, #1
strneb r7, [r4, #0x23f + OV29_022F5F18_OFFSET]
mov r0, #0
strb r0, [r4, #0x23e + OV29_022F5F18_OFFSET]
_022F5F88:
mov r6, #0
mov r4, #1
mov r5, r6
mov sl, r4
b _022F5FD8
_022F5F9C:
ldr r8, [sb, #0xb4]
mov r0, sb
str r5, [sp]
ldrb r1, [r8, #0x54]
mov r2, r4
mov r3, r5
bl ov29_0232145C
bl IsFloorOver
cmp r0, #0
ldreqb r0, [r8, #0x23e + OV29_022F5F18_OFFSET]
cmpeq r0, #0
ldreqb r0, [r8, #0x163 + OV29_022F5F18_OFFSET]
cmpeq r0, #0
bne _022F5FEC
add r6, r6, #1
_022F5FD8:
mov r0, sb
mov r1, sl
bl GetNumberOfAttacks
cmp r6, r0
blt _022F5F9C
_022F5FEC:
mov r0, sb
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6014
cmp r7, #0
moveq r1, #1
movne r1, #0
mov r0, sb
and r1, r1, #0xff
bl UpdateMovePp
_022F6014:
bl IsFloorOver
cmp r0, #0
bne _022F6048
mov r0, sb
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6040
ldr r1, [sb, #0xb4]
mov r0, sb
ldrb r1, [r1, #0x54]
bl ov29_022FA574
_022F6040:
mov r0, sb
bl TryActivateTruant
_022F6048:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_022F6050: .word DUNGEON_PTR
#ifdef JAPAN
_022F6054: .word 0x00000B3D
#else
_022F6054: .word 0x00000DFD
#endif
arm_func_end ov29_022F5F18
arm_func_start ov29_022F6058
ov29_022F6058: ; 0x022F6058
#ifdef JAPAN
#define OV29_022F6058_OFFSET -4
#else
#define OV29_022F6058_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov sl, r0
ldr r7, [sl, #0xb4]
ldr r2, _022F61F8 ; =ov29_0237CA80
mov r3, #0
add r0, sp, #0xc
str r3, [r2]
mov sb, r1
bl InitMove
ldrb r0, [r7, #0xd0]
cmp r0, #1
bne _022F60AC
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _022F61FC ; =0x00000BCC
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
b _022F61F0
_022F60AC:
ldrb r0, [r7, #0xbf]
cmp r0, #4
bne _022F60D8
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
ldr r1, _022F6200 ; =0x00000BCD
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
b _022F61F0
_022F60D8:
mov r6, #0
cmp sb, #0x160
moveq r8, #1
movne r8, #0
strb r6, [r7, #0x163 + OV29_022F6058_OFFSET]
mov fp, r6
mov r5, #0xa
add r4, sp, #0xc
b _022F6154
_022F60FC:
mov r0, sl
bl ov29_022F3B8C
str fp, [r7, #0x18c + OV29_022F6058_OFFSET]
ldrb r1, [sp, #0xc]
strb r5, [sp, #0x12]
mov r0, sl
orr r1, r1, #0xc
strb r1, [sp, #0xc]
str fp, [sp]
mov r1, r8
mov r2, fp
mov r3, fp
str r4, [sp, #4]
bl ov29_02322374
mov r0, sl
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F6168
ldrb r0, [r7, #0x163 + OV29_022F6058_OFFSET]
cmp r0, #0
bne _022F6168
add r6, r6, #1
_022F6154:
mov r0, sl
mov r1, #1
bl GetNumberOfAttacks
cmp r6, r0
blt _022F60FC
_022F6168:
mov r0, sl
bl EntityIsValid__022F528C
cmp r0, #0
beq _022F61F0
cmp sb, #0x160
ldreq r0, _022F61F8 ; =ov29_0237CA80
ldreq r0, [r0]
cmpeq r0, #0
bne _022F6198
ldr r1, _022F6204 ; =0x00000BCE
mov r0, sl
bl LogMessageByIdWithPopupCheckUser
_022F6198:
ldrb r0, [r7, #7]
cmp r0, #0
cmpne sb, #0x160
beq _022F61E8
ldrb r1, [r7, #0x4c]
ldr r0, _022F6208 ; =DIRECTIONS_XY
ldrsh r3, [sl, #4]
mov r1, r1, lsl #2
ldrsh r2, [r0, r1]
ldr r1, _022F620C ; =ov29_0235171E
add r0, sp, #8
add r2, r3, r2
strh r2, [sp, #8]
ldrb r2, [r7, #0x4c]
ldrsh r3, [sl, #6]
mov r2, r2, lsl #2
ldrsh r1, [r1, r2]
add r1, r3, r1
strh r1, [sp, #0xa]
bl ov29_02338430
_022F61E8:
mov r0, sl
bl EnemyEvolution
_022F61F0:
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_022F61F8: .word ov29_0237CA80
#ifdef JAPAN
_022F61FC: .word 0x0000090B
_022F6200: .word 0x0000090C
_022F6204: .word 0x0000090D
#else
_022F61FC: .word 0x00000BCC
_022F6200: .word 0x00000BCD
_022F6204: .word 0x00000BCE
#endif
_022F6208: .word DIRECTIONS_XY
_022F620C: .word ov29_0235171E
arm_func_end ov29_022F6058
arm_func_start ov29_022F6210
ov29_022F6210: ; 0x022F6210
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r0
bl EntityIsValid__022F62A8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r4, #0
ldr r7, _022F62A4 ; =DUNGEON_PTR
b _022F6294
_022F6234:
ldr r0, [r7]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r5, [r0, #0xa94]
#else
ldr r5, [r0, #0xb38]
#endif
mov r0, r5
bl EntityIsValid__022F62A8
cmp r0, #0
beq _022F6288
ldr r0, [r5, #0xb4]
ldrb r0, [r0, #9]
cmp r0, #1
bne _022F6288
mov r0, r5
bl ov29_023009CC
cmp r0, #0
beq _022F6288
ldrb r1, [r6, #0x25]
ldrb r0, [r5, #0x25]
cmp r1, r0
moveq r0, r5
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_022F6288:
add r0, r4, #1
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
_022F6294:
cmp r4, #0x10
blt _022F6234
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022F62A4: .word DUNGEON_PTR
arm_func_end ov29_022F6210

View File

@@ -909,729 +909,3 @@ _022FF890:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FF764
arm_func_start ItemIsActive__022FF898
ItemIsActive__022FF898: ; 0x022FF898
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActive
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__022FF898
#ifndef JAPAN
arm_func_start GetMobilityTypeAfterIqSkills
GetMobilityTypeAfterIqSkills: ; 0x022FF8C8
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
cmp r4, #3
beq _022FF8EC
mov r1, #0xc
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #2
_022FF8EC:
mov r0, r5
mov r1, #0xd
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
arm_func_end GetMobilityTypeAfterIqSkills
#endif
arm_func_start ov29_022FF908
ov29_022FF908: ; 0x022FF908
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r4, [r5, #0xb4]
ldrb r1, [r4, #0xef]
cmp r1, #3
moveq r0, #1
ldmeqia sp!, {r3, r4, r5, pc}
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, pc}
ldrsh r1, [r4, #2]
mov r0, r5
bl GetMobilityTypeCheckSlipAndFloating
cmp r0, #3
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_022FF908
arm_func_start ov29_022FF958
ov29_022FF958: ; 0x022FF958
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFA0C
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA0C:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFA84
_022FFA38: ; jump table
b _022FFA48 ; case 0
b _022FFA58 ; case 1
b _022FFA74 ; case 2
b _022FFA84 ; case 3
_022FFA48:
#ifdef JAPAN
cmp r5, #1
#else
cmp r4, #1
#endif
bne _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA58:
#ifdef JAPAN
cmp r5, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r5, #1
#else
cmp r4, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, #1
#endif
bne _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA74:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
beq _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA84:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA8C:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FF958
arm_func_start ov29_022FFA94
ov29_022FFA94: ; 0x022FFA94
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r1, [r4]
cmp r0, #3
and r1, r1, #3
addls pc, pc, r0, lsl #2
b _022FFB80
_022FFB34: ; jump table
b _022FFB44 ; case 0
b _022FFB54 ; case 1
b _022FFB70 ; case 2
b _022FFB70 ; case 3
_022FFB44:
cmp r1, #1
bne _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB54:
cmp r1, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #1
bne _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB70:
cmp r1, #0
beq _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB80:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB88:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FFA94
arm_func_start ov29_022FFB90
ov29_022FFB90: ; 0x022FFB90
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFC44
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFC44:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFC94
_022FFC70: ; jump table
b _022FFC80 ; case 0
b _022FFC80 ; case 1
b _022FFC80 ; case 2
b _022FFC94 ; case 3
_022FFC80:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFC94:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FFB90
arm_func_start CannotStandOnTile
CannotStandOnTile: ; 0x022FFC9C
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, [r4, #0xc]
cmp r1, #0
beq _022FFD38
ldr r0, [r1]
cmp r0, #1
bne _022FFD30
ldr r0, [r1, #0xb4]
cmp r0, r5
beq _022FFD38
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD30:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD38:
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFD6C
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD6C:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFDE4
_022FFD98: ; jump table
b _022FFDA8 ; case 0
b _022FFDB8 ; case 1
b _022FFDD4 ; case 2
b _022FFDE4 ; case 3
_022FFDA8:
#ifdef JAPAN
cmp r5, #1
#else
cmp r4, #1
#endif
bne _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDB8:
#ifdef JAPAN
cmp r5, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r5, #1
#else
cmp r4, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, #1
#endif
bne _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDD4:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
beq _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDE4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDEC:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end CannotStandOnTile
arm_func_start CalcSpeedStage
CalcSpeedStage: ; 0x022FFDF4
#ifdef JAPAN
#define CALC_SPEED_STAGE_OFFSET -4
#else
#define CALC_SPEED_STAGE_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
mov r7, r1
ldr r6, [r8, #0xb4]
bl GetApparentWeather
mov r4, #0
mov r5, r0
mov r1, r4
_022FFE14:
add r2, r6, r1
ldrb r0, [r2, #0x119 + CALC_SPEED_STAGE_OFFSET]
add r1, r1, #1
cmp r0, #0
ldrb r0, [r2, #0x114 + CALC_SPEED_STAGE_OFFSET]
subne r4, r4, r7
cmp r0, #0
addne r4, r4, r7
cmp r1, #5
blt _022FFE14
ldrb r0, [r6, #0xbf]
cmp r0, #4
ldrsh r0, [r6, #2]
subeq r4, r4, #1
bl GetSpeedStatus
add r4, r4, r0
mov r0, r8
mov r1, #6
bl MonsterIsType
cmp r0, #0
beq _022FFE78
mov r0, r8
bl GetApparentWeather
cmp r0, #7
addeq r4, r4, #1
_022FFE78:
mov r0, r8
mov r1, #0x3a
bl IqSkillIsEnabled
cmp r0, #0
ldr r1, _022FFF18 ; =EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
addne r4, r4, #1
ldrb r0, [r1, r5]
cmp r0, #0
beq _022FFEB0
ldrb r1, [r1, r5]
mov r0, r8
bl ExclusiveItemEffectIsActive__022FFF28
cmp r0, #0
addne r4, r4, #1
_022FFEB0:
ldrsh r1, [r6, #4]
ldr r0, _022FFF1C ; =0x000001A5
cmp r1, r0
addne r0, r0, #0x72
cmpne r1, r0
ldrsh r1, [r6, #2]
ldr r0, _022FFF20 ; =0x0000017F
addeq r4, r4, #1
cmp r1, r0
addne r0, r0, #0x258
cmpne r1, r0
bne _022FFEFC
ldrb r0, [r6, #6]
cmp r0, #0
ldrne r0, _022FFF24 ; =DUNGEON_PTR
ldrne r0, [r0]
ldrneb r0, [r0, #0x790]
cmpne r0, #0
addne r4, r4, #1
_022FFEFC:
cmp r4, #0
movlt r4, #0
cmp r4, #5
movge r4, #4
mov r0, r4
str r4, [r6, #0x110 + CALC_SPEED_STAGE_OFFSET]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_022FFF18: .word EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
_022FFF1C: .word 0x000001A5
_022FFF20: .word 0x0000017F
_022FFF24: .word DUNGEON_PTR
arm_func_end CalcSpeedStage
arm_func_start ExclusiveItemEffectIsActive__022FFF28
ExclusiveItemEffectIsActive__022FFF28: ; 0x022FFF28
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__022FFF28
arm_func_start CalcSpeedStageWrapper
CalcSpeedStageWrapper: ; 0x022FFF4C
ldr ip, _022FFF58 ; =CalcSpeedStage
mov r1, #1
bx ip
.align 2, 0
_022FFF58: .word CalcSpeedStage
arm_func_end CalcSpeedStageWrapper
arm_func_start GetNumberOfAttacks
GetNumberOfAttacks: ; 0x022FFF5C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r5, #0
mov sl, r0
mov sb, r1
mov r6, r5
mov r7, r5
bl EntityIsValid__023000E4
cmp r0, #0
moveq r0, r5
beq _023000D4
mov r0, sl
bl GetApparentWeather
mov r8, r0
cmp r8, #4
bne _022FFFB8
mov r0, sl
mov r1, #0x1b
bl AbilityIsActive
cmp r0, #0
movne r5, #1
movne r6, r5
b _022FFFD8
_022FFFB8:
cmp r8, #1
bne _022FFFD8
mov r0, sl
mov r1, #0x4a
bl AbilityIsActive
cmp r0, #0
movne r5, #1
movne r6, r5
_022FFFD8:
ldr r4, _023000DC ; =EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
ldrb r0, [r4, r8]
cmp r0, #0
beq _02300000
ldrb r1, [r4, r8]
mov r0, sl
bl ExclusiveItemEffectIsActive__022FFF28
cmp r0, #0
ldrneb r7, [r4, r8]
movne r5, #1
_02300000:
mov r0, sl
mov r1, #0x54
bl AbilityIsActive
cmp r0, #0
beq _02300028
ldr r0, [sl, #0xb4]
ldrsh r0, [r0, #0x66]
cmp r0, #0
moveq r5, #1
moveq r6, r5
_02300028:
cmp sb, #0
beq _023000C8
cmp r6, #0
beq _02300068
ldr r0, [sl, #0xb4]
mov r2, r5
mov r1, #0x40
bl UpdateStateFlags
cmp r0, #0
beq _023000C8
mov r0, sl
bl ov29_022E655C
#ifdef JAPAN
ldr r1, _02301510 ; =0x0000096F
mov r0, sl
#else
mov r0, sl
mov r1, #0xc30
#endif
bl LogMessageByIdWithPopupCheckUser
b _023000C8
_02300068:
cmp r7, #0
beq _023000C8
ldr r0, [sl, #0xb4]
mov r2, r5
mov r1, #0x40
bl UpdateStateFlags
cmp r0, #0
beq _023000C8
mov r0, sl
bl ov29_022E655C
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
add r2, sp, #0
mov r0, sl
mov r1, r7
bl GetExclusiveItemWithEffectFromBag
add r1, sp, #0
mov r0, #0
bl ov29_02344B44
#ifdef JAPAN
mov r0, sl
mov r1, #0x970
#else
ldr r1, _023000E0 ; =0x00000C31
mov r0, sl
#endif
bl LogMessageByIdWithPopupCheckUser
_023000C8:
cmp r5, #0
movne r0, #2
moveq r0, #1
_023000D4:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_023000DC: .word EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
#ifdef JAPAN
_02301510: .word 0x0000096F
#else
_023000E0: .word 0x00000C31
#endif
arm_func_end GetNumberOfAttacks

714
asm/overlay_29_022FF8C8.s Normal file
View File

@@ -0,0 +1,714 @@
.include "asm/macros.inc"
.include "overlay_29_022FF8C8.inc"
.text
#ifndef JAPAN
arm_func_start GetMobilityTypeAfterIqSkills
GetMobilityTypeAfterIqSkills: ; 0x022FF8C8
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
cmp r4, #3
beq _022FF8EC
mov r1, #0xc
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #2
_022FF8EC:
mov r0, r5
mov r1, #0xd
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
arm_func_end GetMobilityTypeAfterIqSkills
#endif
arm_func_start ov29_022FF908
ov29_022FF908: ; 0x022FF908
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r4, [r5, #0xb4]
ldrb r1, [r4, #0xef]
cmp r1, #3
moveq r0, #1
ldmeqia sp!, {r3, r4, r5, pc}
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, pc}
ldrsh r1, [r4, #2]
mov r0, r5
bl GetMobilityTypeCheckSlipAndFloating
cmp r0, #3
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_022FF908
arm_func_start ov29_022FF958
ov29_022FF958: ; 0x022FF958
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFA0C
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA0C:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFA84
_022FFA38: ; jump table
b _022FFA48 ; case 0
b _022FFA58 ; case 1
b _022FFA74 ; case 2
b _022FFA84 ; case 3
_022FFA48:
#ifdef JAPAN
cmp r5, #1
#else
cmp r4, #1
#endif
bne _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA58:
#ifdef JAPAN
cmp r5, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r5, #1
#else
cmp r4, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, #1
#endif
bne _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA74:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
beq _022FFA8C
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA84:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFA8C:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FF958
arm_func_start ov29_022FFA94
ov29_022FFA94: ; 0x022FFA94
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r1, [r4]
cmp r0, #3
and r1, r1, #3
addls pc, pc, r0, lsl #2
b _022FFB80
_022FFB34: ; jump table
b _022FFB44 ; case 0
b _022FFB54 ; case 1
b _022FFB70 ; case 2
b _022FFB70 ; case 3
_022FFB44:
cmp r1, #1
bne _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB54:
cmp r1, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #1
bne _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB70:
cmp r1, #0
beq _022FFB88
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB80:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFB88:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FFA94
arm_func_start ov29_022FFB90
ov29_022FFB90: ; 0x022FFB90
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r0, [r4, #0xc]
cmp r0, #0
ldrne r0, [r0]
cmpne r0, #1
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFC44
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFC44:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFC94
_022FFC70: ; jump table
b _022FFC80 ; case 0
b _022FFC80 ; case 1
b _022FFC80 ; case 2
b _022FFC94 ; case 3
_022FFC80:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFC94:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end ov29_022FFB90
arm_func_start CannotStandOnTile
CannotStandOnTile: ; 0x022FFC9C
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r1
mov r6, r0
ldrsh r0, [r7]
ldrsh r1, [r7, #2]
ldr r5, [r6, #0xb4]
bl GetTile
ldrsh r1, [r7]
mov r4, r0
cmp r1, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrsh r0, [r7, #2]
cmp r0, #0
movlt r0, #1
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
cmp r1, #0x38
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, #0x20
movge r0, #1
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r4]
tst r0, #0x10
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, [r4, #0xc]
cmp r1, #0
beq _022FFD38
ldr r0, [r1]
cmp r0, #1
bne _022FFD30
ldr r0, [r1, #0xb4]
cmp r0, r5
beq _022FFD38
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD30:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD38:
bl IsCurrentTilesetBackground
cmp r0, #0
bne _022FFD6C
ldrb r0, [r5, #0xef]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r6
mov r1, #0x10
bl ItemIsActive__022FF898
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_022FFD6C:
ldrsh r1, [r5, #2]
mov r0, r6
bl GetMobilityTypeCheckSlipAndFloating
ldrh r2, [r4]
#ifdef JAPAN
mov r4, r0
mov r0, r6
mov r1, #0xc
and r5, r2, #3
bl IqSkillIsEnabled
cmp r0, #0
mov r0, r6
mov r1, #0xd
movne r4, #2
bl IqSkillIsEnabled
cmp r0, #0
movne r4, #3
cmp r4, #3
addls pc, pc, r4, lsl #2
#else
mov r1, r0
mov r0, r6
and r4, r2, #3
bl GetMobilityTypeAfterIqSkills
cmp r0, #3
addls pc, pc, r0, lsl #2
#endif
b _022FFDE4
_022FFD98: ; jump table
b _022FFDA8 ; case 0
b _022FFDB8 ; case 1
b _022FFDD4 ; case 2
b _022FFDE4 ; case 3
_022FFDA8:
#ifdef JAPAN
cmp r5, #1
#else
cmp r4, #1
#endif
bne _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDB8:
#ifdef JAPAN
cmp r5, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r5, #1
#else
cmp r4, #2
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
cmp r4, #1
#endif
bne _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDD4:
#ifdef JAPAN
cmp r5, #0
#else
cmp r4, #0
#endif
beq _022FFDEC
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDE4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022FFDEC:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end CannotStandOnTile
arm_func_start CalcSpeedStage
CalcSpeedStage: ; 0x022FFDF4
#ifdef JAPAN
#define CALC_SPEED_STAGE_OFFSET -4
#else
#define CALC_SPEED_STAGE_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
mov r7, r1
ldr r6, [r8, #0xb4]
bl GetApparentWeather
mov r4, #0
mov r5, r0
mov r1, r4
_022FFE14:
add r2, r6, r1
ldrb r0, [r2, #0x119 + CALC_SPEED_STAGE_OFFSET]
add r1, r1, #1
cmp r0, #0
ldrb r0, [r2, #0x114 + CALC_SPEED_STAGE_OFFSET]
subne r4, r4, r7
cmp r0, #0
addne r4, r4, r7
cmp r1, #5
blt _022FFE14
ldrb r0, [r6, #0xbf]
cmp r0, #4
ldrsh r0, [r6, #2]
subeq r4, r4, #1
bl GetSpeedStatus
add r4, r4, r0
mov r0, r8
mov r1, #6
bl MonsterIsType
cmp r0, #0
beq _022FFE78
mov r0, r8
bl GetApparentWeather
cmp r0, #7
addeq r4, r4, #1
_022FFE78:
mov r0, r8
mov r1, #0x3a
bl IqSkillIsEnabled
cmp r0, #0
ldr r1, _022FFF18 ; =EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
addne r4, r4, #1
ldrb r0, [r1, r5]
cmp r0, #0
beq _022FFEB0
ldrb r1, [r1, r5]
mov r0, r8
bl ExclusiveItemEffectIsActive__022FFF28
cmp r0, #0
addne r4, r4, #1
_022FFEB0:
ldrsh r1, [r6, #4]
ldr r0, _022FFF1C ; =0x000001A5
cmp r1, r0
addne r0, r0, #0x72
cmpne r1, r0
ldrsh r1, [r6, #2]
ldr r0, _022FFF20 ; =0x0000017F
addeq r4, r4, #1
cmp r1, r0
addne r0, r0, #0x258
cmpne r1, r0
bne _022FFEFC
ldrb r0, [r6, #6]
cmp r0, #0
ldrne r0, _022FFF24 ; =DUNGEON_PTR
ldrne r0, [r0]
ldrneb r0, [r0, #0x790]
cmpne r0, #0
addne r4, r4, #1
_022FFEFC:
cmp r4, #0
movlt r4, #0
cmp r4, #5
movge r4, #4
mov r0, r4
str r4, [r6, #0x110 + CALC_SPEED_STAGE_OFFSET]
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_022FFF18: .word EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST
_022FFF1C: .word 0x000001A5
_022FFF20: .word 0x0000017F
_022FFF24: .word DUNGEON_PTR
arm_func_end CalcSpeedStage
arm_func_start ExclusiveItemEffectIsActive__022FFF28
ExclusiveItemEffectIsActive__022FFF28: ; 0x022FFF28
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__022FFF28
arm_func_start CalcSpeedStageWrapper
CalcSpeedStageWrapper: ; 0x022FFF4C
ldr ip, _022FFF58 ; =CalcSpeedStage
mov r1, #1
bx ip
.align 2, 0
_022FFF58: .word CalcSpeedStage
arm_func_end CalcSpeedStageWrapper
arm_func_start GetNumberOfAttacks
GetNumberOfAttacks: ; 0x022FFF5C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r5, #0
mov sl, r0
mov sb, r1
mov r6, r5
mov r7, r5
bl EntityIsValid__023000E4
cmp r0, #0
moveq r0, r5
beq _023000D4
mov r0, sl
bl GetApparentWeather
mov r8, r0
cmp r8, #4
bne _022FFFB8
mov r0, sl
mov r1, #0x1b
bl AbilityIsActive
cmp r0, #0
movne r5, #1
movne r6, r5
b _022FFFD8
_022FFFB8:
cmp r8, #1
bne _022FFFD8
mov r0, sl
mov r1, #0x4a
bl AbilityIsActive
cmp r0, #0
movne r5, #1
movne r6, r5
_022FFFD8:
ldr r4, _023000DC ; =EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
ldrb r0, [r4, r8]
cmp r0, #0
beq _02300000
ldrb r1, [r4, r8]
mov r0, sl
bl ExclusiveItemEffectIsActive__022FFF28
cmp r0, #0
ldrneb r7, [r4, r8]
movne r5, #1
_02300000:
mov r0, sl
mov r1, #0x54
bl AbilityIsActive
cmp r0, #0
beq _02300028
ldr r0, [sl, #0xb4]
ldrsh r0, [r0, #0x66]
cmp r0, #0
moveq r5, #1
moveq r6, r5
_02300028:
cmp sb, #0
beq _023000C8
cmp r6, #0
beq _02300068
ldr r0, [sl, #0xb4]
mov r2, r5
mov r1, #0x40
bl UpdateStateFlags
cmp r0, #0
beq _023000C8
mov r0, sl
bl ov29_022E655C
#ifdef JAPAN
ldr r1, _02301510 ; =0x0000096F
mov r0, sl
#else
mov r0, sl
mov r1, #0xc30
#endif
bl LogMessageByIdWithPopupCheckUser
b _023000C8
_02300068:
cmp r7, #0
beq _023000C8
ldr r0, [sl, #0xb4]
mov r2, r5
mov r1, #0x40
bl UpdateStateFlags
cmp r0, #0
beq _023000C8
mov r0, sl
bl ov29_022E655C
mov r0, #0
mov r1, sl
mov r2, r0
bl SubstitutePlaceholderStringTags
add r2, sp, #0
mov r0, sl
mov r1, r7
bl GetExclusiveItemWithEffectFromBag
add r1, sp, #0
mov r0, #0
bl ov29_02344B44
#ifdef JAPAN
mov r0, sl
mov r1, #0x970
#else
ldr r1, _023000E0 ; =0x00000C31
mov r0, sl
#endif
bl LogMessageByIdWithPopupCheckUser
_023000C8:
cmp r5, #0
movne r0, #2
moveq r0, #1
_023000D4:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_023000DC: .word EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST
#ifdef JAPAN
_02301510: .word 0x0000096F
#else
_023000E0: .word 0x00000C31
#endif
arm_func_end GetNumberOfAttacks

View File

@@ -597,258 +597,3 @@ _023026C0: .word MIRACLE_CHEST_EXP_BOOST
_023026C4: .word EXCLUSIVE_ITEM_EXP_BOOST
_023026C8: .word 0x0098967F
arm_func_end AddExpSpecial
arm_func_start ItemIsActive__023026CC
ItemIsActive__023026CC: ; 0x023026CC
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__023026CC
arm_func_start EnemyEvolution
EnemyEvolution: ; 0x023026FC
#ifdef JAPAN
#define ENEMY_EVOLUTION_OFFSET -4
#else
#define ENEMY_EVOLUTION_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x168
mov sl, r0
bl AllocateTemp1024ByteBufferFromPool
ldr r0, _02302A28 ; =DUNGEON_PTR
ldr r2, [r0]
ldrb r1, [r2, #0xf]
ldrb r0, [r2, #0x748]
cmp r1, #0
str r0, [sp, #8]
beq _02302A20
mov r0, #0
strb r0, [r2, #0xf]
bl GetForcedLossReason
cmp r0, #0
bne _02302A20
mov r0, sl
bl EntityIsValid__02302A38
cmp r0, #0
bne _02302758
add r0, sp, #0xb0
bl ov29_022E2470
add sl, sp, #0xb0
_02302758:
ldr r0, _02302A2C ; =ov29_023527F8
mov r4, #0
ldr r3, [r0]
ldr r2, [r0, #4]
ldr r1, [r0, #8]
ldr r0, [r0, #0xc]
str r3, [sp, #0x14]
str r2, [sp, #0x18]
str r1, [sp, #0xc]
str r0, [sp, #0x10]
_02302780:
ldr r0, _02302A28 ; =DUNGEON_PTR
ldr r3, [sp, #0x14]
ldr r0, [r0]
ldr r2, [sp, #0x18]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r5, [r0, #0xad4]
#else
ldr r5, [r0, #0xb78]
#endif
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
mov r6, #0
str r6, [sp, #4]
str r3, [sp, #0x24]
str r2, [sp, #0x28]
str r1, [sp, #0x1c]
str r0, [sp, #0x20]
cmp r5, #0
beq _02302A14
mov r0, r5
bl EntityIsValid__02302A38
cmp r0, #0
ldrne sb, [r5, #0xb4]
ldrnesh r0, [sb, #0x10]
cmpne r0, #0
beq _02302A14
ldrb r0, [sb, #0x102]
cmp r0, #0
movne r0, r6
strneb r0, [sb, #0x102]
bne _02302A08
ldr fp, [sb, #0x214 + ENEMY_EVOLUTION_OFFSET]
cmp fp, #0
beq _023028C4
ldrb r0, [sb, #7]
cmp r0, #0
beq _02302818
ldrb r1, [sb, #0xa]
add r0, sp, #0x54
bl GetUnlockedTacticFlags
_02302818:
ldrsh r2, [sb, #0x12]
ldrsh r0, [sb, #0x16]
ldrb r7, [sb, #0x1a]
ldr r1, _02302A30 ; =0x000003E7
add r0, r2, r0
ldrb r3, [sb, #0x1b]
ldrb r2, [sb, #0x1c]
str r0, [sp, #4]
cmp r0, r1
strgt r1, [sp, #4]
ldrb r1, [sb, #0x1d]
ldrb r0, [sb, #0xa]
str r7, [sp, #0x24]
str r3, [sp, #0x28]
str r2, [sp, #0x1c]
str r1, [sp, #0x20]
cmp r0, #0x64
beq _023028C4
ldr r0, [sp, #8]
bl IsExpEnabledInDungeon
cmp r0, #0
beq _023028C4
ldr r0, [sb, #0x20]
mov r1, fp
add r2, r0, fp
mov r0, #0
str r2, [sb, #0x20]
bl ov29_0234B09C
bl ov29_0234B034
mov r1, #0
str r1, [sp]
mov r2, sb
mov r3, r1
bl ov29_0230040C
mov r0, sl
ldr r1, _02302A34 ; =0x00000F1F
bl LogMessageByIdWithPopup
mov r0, sl
mov r1, r5
mov r2, #1
mov r3, r2
bl LevelUp
orr r6, r6, r0
_023028C4:
ldrb r0, [sb, #0x153 + ENEMY_EVOLUTION_OFFSET]
cmp r0, #0
beq _02302968
ldrsh r0, [sb, #2]
mov r2, #0
add r1, sp, #0x2c
mov r3, r2
bl GetEvolutions
movs r6, r0
beq _02302964
bl DungeonRandInt
mov r8, r0
mov r7, #0
b _0230293C
_023028FC:
mov r1, r8, lsl #1
add r0, sp, #0x2c
ldrsh r0, [r0, r1]
bl IsOnMonsterSpawnList
cmp r0, #0
beq _0230292C
mov r1, r8, lsl #1
add r0, sp, #0x2c
ldrsh r0, [r0, r1]
bl DungeonGetSpriteIndex
cmp r0, #0
bne _02302944
_0230292C:
add r8, r8, #1
cmp r8, r6
movge r8, #0
add r7, r7, #1
_0230293C:
cmp r7, r6
blt _023028FC
_02302944:
cmp r7, r6
bge _02302964
add r0, sp, #0x2c
mov r1, r8, lsl #1
ldrsh r2, [r0, r1]
mov r0, sl
mov r1, r5
bl EvolveMonster
_02302964:
mov r6, #0
_02302968:
cmp r6, #0
beq _023029EC
ldrb r0, [sb, #6]
cmp r0, #0
bne _023029EC
ldrsh r2, [sb, #0x12]
ldrsh r1, [sb, #0x16]
ldr r0, _02302A30 ; =0x000003E7
ldr r3, [sp, #0x28]
add r1, r2, r1
cmp r1, r0
movgt r1, r0
ldr r0, [sp, #4]
sub r0, r1, r0
str r0, [sp, #0x84]
ldrb r2, [sb, #0x1a]
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x1c]
sub r1, r2, r1
str r1, [sp, #0x88]
ldrb r1, [sb, #0x1c]
ldr r2, [sp, #0x20]
sub r0, r1, r0
str r0, [sp, #0x8c]
ldrb r6, [sb, #0x1b]
add r1, sp, #0x60
mov r0, r5
sub r3, r6, r3
str r3, [sp, #0x90]
ldrb r3, [sb, #0x1d]
sub r2, r3, r2
str r2, [sp, #0x94]
bl ov29_02302CC8
_023029EC:
cmp fp, #0
beq _02302A08
add r2, sp, #0x54
mov r0, sl
mov r1, r5
mov r3, #1
bl ov29_02302C04
_02302A08:
mov r0, #0
str r0, [sb, #0x214 + ENEMY_EVOLUTION_OFFSET]
strb r0, [sb, #0x153 + ENEMY_EVOLUTION_OFFSET]
_02302A14:
add r4, r4, #1
cmp r4, #0x14
blt _02302780
_02302A20:
add sp, sp, #0x168
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_02302A28: .word DUNGEON_PTR
_02302A2C: .word ov29_023527F8
_02302A30: .word 0x000003E7
#ifdef JAPAN
_02302A34: .word 0x00002486
#else
_02302A34: .word 0x00000F1F
#endif
arm_func_end EnemyEvolution

243
asm/overlay_29_023026FC.s Normal file
View File

@@ -0,0 +1,243 @@
.include "asm/macros.inc"
.include "overlay_29_023026FC.inc"
.text
arm_func_start EnemyEvolution
EnemyEvolution: ; 0x023026FC
#ifdef JAPAN
#define ENEMY_EVOLUTION_OFFSET -4
#else
#define ENEMY_EVOLUTION_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x168
mov sl, r0
bl AllocateTemp1024ByteBufferFromPool
ldr r0, _02302A28 ; =DUNGEON_PTR
ldr r2, [r0]
ldrb r1, [r2, #0xf]
ldrb r0, [r2, #0x748]
cmp r1, #0
str r0, [sp, #8]
beq _02302A20
mov r0, #0
strb r0, [r2, #0xf]
bl GetForcedLossReason
cmp r0, #0
bne _02302A20
mov r0, sl
bl EntityIsValid__02302A38
cmp r0, #0
bne _02302758
add r0, sp, #0xb0
bl ov29_022E2470
add sl, sp, #0xb0
_02302758:
ldr r0, _02302A2C ; =ov29_023527F8
mov r4, #0
ldr r3, [r0]
ldr r2, [r0, #4]
ldr r1, [r0, #8]
ldr r0, [r0, #0xc]
str r3, [sp, #0x14]
str r2, [sp, #0x18]
str r1, [sp, #0xc]
str r0, [sp, #0x10]
_02302780:
ldr r0, _02302A28 ; =DUNGEON_PTR
ldr r3, [sp, #0x14]
ldr r0, [r0]
ldr r2, [sp, #0x18]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r5, [r0, #0xad4]
#else
ldr r5, [r0, #0xb78]
#endif
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
mov r6, #0
str r6, [sp, #4]
str r3, [sp, #0x24]
str r2, [sp, #0x28]
str r1, [sp, #0x1c]
str r0, [sp, #0x20]
cmp r5, #0
beq _02302A14
mov r0, r5
bl EntityIsValid__02302A38
cmp r0, #0
ldrne sb, [r5, #0xb4]
ldrnesh r0, [sb, #0x10]
cmpne r0, #0
beq _02302A14
ldrb r0, [sb, #0x102]
cmp r0, #0
movne r0, r6
strneb r0, [sb, #0x102]
bne _02302A08
ldr fp, [sb, #0x214 + ENEMY_EVOLUTION_OFFSET]
cmp fp, #0
beq _023028C4
ldrb r0, [sb, #7]
cmp r0, #0
beq _02302818
ldrb r1, [sb, #0xa]
add r0, sp, #0x54
bl GetUnlockedTacticFlags
_02302818:
ldrsh r2, [sb, #0x12]
ldrsh r0, [sb, #0x16]
ldrb r7, [sb, #0x1a]
ldr r1, _02302A30 ; =0x000003E7
add r0, r2, r0
ldrb r3, [sb, #0x1b]
ldrb r2, [sb, #0x1c]
str r0, [sp, #4]
cmp r0, r1
strgt r1, [sp, #4]
ldrb r1, [sb, #0x1d]
ldrb r0, [sb, #0xa]
str r7, [sp, #0x24]
str r3, [sp, #0x28]
str r2, [sp, #0x1c]
str r1, [sp, #0x20]
cmp r0, #0x64
beq _023028C4
ldr r0, [sp, #8]
bl IsExpEnabledInDungeon
cmp r0, #0
beq _023028C4
ldr r0, [sb, #0x20]
mov r1, fp
add r2, r0, fp
mov r0, #0
str r2, [sb, #0x20]
bl ov29_0234B09C
bl ov29_0234B034
mov r1, #0
str r1, [sp]
mov r2, sb
mov r3, r1
bl ov29_0230040C
mov r0, sl
ldr r1, _02302A34 ; =0x00000F1F
bl LogMessageByIdWithPopup
mov r0, sl
mov r1, r5
mov r2, #1
mov r3, r2
bl LevelUp
orr r6, r6, r0
_023028C4:
ldrb r0, [sb, #0x153 + ENEMY_EVOLUTION_OFFSET]
cmp r0, #0
beq _02302968
ldrsh r0, [sb, #2]
mov r2, #0
add r1, sp, #0x2c
mov r3, r2
bl GetEvolutions
movs r6, r0
beq _02302964
bl DungeonRandInt
mov r8, r0
mov r7, #0
b _0230293C
_023028FC:
mov r1, r8, lsl #1
add r0, sp, #0x2c
ldrsh r0, [r0, r1]
bl IsOnMonsterSpawnList
cmp r0, #0
beq _0230292C
mov r1, r8, lsl #1
add r0, sp, #0x2c
ldrsh r0, [r0, r1]
bl DungeonGetSpriteIndex
cmp r0, #0
bne _02302944
_0230292C:
add r8, r8, #1
cmp r8, r6
movge r8, #0
add r7, r7, #1
_0230293C:
cmp r7, r6
blt _023028FC
_02302944:
cmp r7, r6
bge _02302964
add r0, sp, #0x2c
mov r1, r8, lsl #1
ldrsh r2, [r0, r1]
mov r0, sl
mov r1, r5
bl EvolveMonster
_02302964:
mov r6, #0
_02302968:
cmp r6, #0
beq _023029EC
ldrb r0, [sb, #6]
cmp r0, #0
bne _023029EC
ldrsh r2, [sb, #0x12]
ldrsh r1, [sb, #0x16]
ldr r0, _02302A30 ; =0x000003E7
ldr r3, [sp, #0x28]
add r1, r2, r1
cmp r1, r0
movgt r1, r0
ldr r0, [sp, #4]
sub r0, r1, r0
str r0, [sp, #0x84]
ldrb r2, [sb, #0x1a]
ldr r1, [sp, #0x24]
ldr r0, [sp, #0x1c]
sub r1, r2, r1
str r1, [sp, #0x88]
ldrb r1, [sb, #0x1c]
ldr r2, [sp, #0x20]
sub r0, r1, r0
str r0, [sp, #0x8c]
ldrb r6, [sb, #0x1b]
add r1, sp, #0x60
mov r0, r5
sub r3, r6, r3
str r3, [sp, #0x90]
ldrb r3, [sb, #0x1d]
sub r2, r3, r2
str r2, [sp, #0x94]
bl ov29_02302CC8
_023029EC:
cmp fp, #0
beq _02302A08
add r2, sp, #0x54
mov r0, sl
mov r1, r5
mov r3, #1
bl ov29_02302C04
_02302A08:
mov r0, #0
str r0, [sb, #0x214 + ENEMY_EVOLUTION_OFFSET]
strb r0, [sb, #0x153 + ENEMY_EVOLUTION_OFFSET]
_02302A14:
add r4, r4, #1
cmp r4, #0x14
blt _02302780
_02302A20:
add sp, sp, #0x168
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_02302A28: .word DUNGEON_PTR
_02302A2C: .word ov29_023527F8
_02302A30: .word 0x000003E7
#ifdef JAPAN
_02302A34: .word 0x00002486
#else
_02302A34: .word 0x00000F1F
#endif
arm_func_end EnemyEvolution

View File

@@ -1,24 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_02307F1C.inc"
.include "overlay_29_02307F4C.inc"
.text
arm_func_start ItemIsActive__02307F1C
ItemIsActive__02307F1C: ; 0x02307F1C
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__02307F1C
arm_func_start TryTriggerMonsterHouse
TryTriggerMonsterHouse: ; 0x02307F4C
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}

File diff suppressed because it is too large Load Diff

4327
asm/overlay_29_0230AA0C.s Normal file

File diff suppressed because it is too large Load Diff

253
asm/overlay_29_0230E5A8.s Normal file
View File

@@ -0,0 +1,253 @@
.include "asm/macros.inc"
.include "overlay_29_0230E5A8.inc"
.text
arm_func_start ov29_0230E5A8
ov29_0230E5A8: ; 0x0230E5A8
stmdb sp!, {r4, lr}
ldr r4, [r1, #0xb4]
mov r1, r2
ldrsh r0, [r4, #2]
mov r2, r3
mov r3, #1
bl ov29_022FD318
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldrsh r0, [r4, #2]
bl ov29_022FBC94
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
bl sub_02056830
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r4, pc}
arm_func_end ov29_0230E5A8
arm_func_start ov29_0230E5FC
ov29_0230E5FC: ; 0x0230E5FC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x44
mov r5, r0
mov r4, r1
add r0, sp, #0
mov r1, r5
bl sub_020534BC
mov r1, #0
sub r0, r1, #1
strb r1, [sp, #6]
strb r1, [sp, #7]
cmp r4, r0
bne _0230E640
add r0, sp, #0
bl sub_02055CCC
mov r4, r0
b _0230E64C
_0230E640:
ldrsh r0, [r5, #8]
add r1, sp, #0
bl sub_02055D7C
_0230E64C:
mov r0, r4
add sp, sp, #0x44
ldmia sp!, {r4, r5, pc}
arm_func_end ov29_0230E5FC
arm_func_start ov29_0230E658
ov29_0230E658: ; 0x0230E658
stmdb sp!, {r3, r4, r5, lr}
mov r4, r0
bl AllocateTemp1024ByteBufferFromPool
mov r5, r0
mov r0, r4
bl StringFromId
mov r4, r0
bl ov29_0234B034
mov r2, r4
str r0, [sp]
mov r0, r5
mov r1, #0x400
mov r3, r1
bl PreprocessString
mov r0, r5
bl ov29_0234BB50
bl ov29_0234B034
mov r1, r0
mov r0, r5
mov r2, #1
str r2, [sp]
mov r2, #0
mov r3, r2
bl ov29_0234D6C8
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_0230E658
arm_func_start TrySpawnMonsterAndTickSpawnCounter
TrySpawnMonsterAndTickSpawnCounter: ; 0x0230E6BC
#ifdef JAPAN
#define TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET -0xA4
#else
#define TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
ldr r0, _0230E8D8 ; =DUNGEON_PTR
mov r6, #0
ldr r7, [r0]
add r0, r7, #0x700
ldrsh r1, [r0, #0x86]
cmp r1, #0
beq _0230E8D0
ldrsh r1, [r0, #0x82]
add r1, r1, #1
strh r1, [r0, #0x82]
ldrb r1, [r7, #0x790]
cmp r1, #0
bne _0230E710
ldr r1, _0230E8DC ; =SPAWN_COOLDOWN
ldrsh r2, [r0, #0x82]
ldrsh r0, [r1]
cmp r2, r0
bge _0230E724
b _0230E8D0
_0230E710:
ldr r1, _0230E8E0 ; =SPAWN_COOLDOWN_THIEF_ALERT
ldrsh r2, [r0, #0x82]
ldrsh r0, [r1]
cmp r2, r0
blt _0230E8D0
_0230E724:
cmp r2, #0x384
ble _0230E76C
add r0, r7, #0x19000
ldr r4, [r0, #0x908 + TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET]
mov r0, r4
bl EntityIsValid__0230E8F0
cmp r0, #0
beq _0230E76C
add r0, r7, #0x19000
ldrh r1, [r4, #0x26]
ldr r0, [r0, #0x910 + TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET]
cmp r1, r0
bne _0230E76C
mov r0, #0
mov r1, r4
mov r2, r0
bl SubstitutePlaceholderStringTags
mov r6, r4
_0230E76C:
mov r5, #0
add r0, r7, #0x700
strh r5, [r0, #0x82]
add r0, r7, #0x19000
mov r4, r5
str r5, [r0, #0x908 + TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET]
_0230E784:
add r0, r7, r4, lsl #2
add r0, r0, #0x12000
ldr r8, [r0, #0xb38 + TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET]
mov r0, r8
bl EntityIsValid__0230E8F0
cmp r0, #0
beq _0230E7B8
ldrsh r0, [r8, #4]
ldrsh r1, [r8, #6]
bl GetTile
ldrh r0, [r0]
tst r0, #0x100
addeq r5, r5, #1
_0230E7B8:
add r4, r4, #1
cmp r4, #0x10
blt _0230E784
ldrb r0, [r7, #0x790]
cmp r0, #0
bne _0230E80C
ldr r0, _0230E8D8 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x4000
ldrb r0, [r0, #0xc9 + TRY_SPAWN_MONSTER_AND_TICK_SPAWN_COUNTER_OFFSET]
cmp r0, #0xff
bne _0230E7FC
ldr r0, _0230E8E4 ; =SPAWN_CAP_NO_MONSTER_HOUSE
ldrsh r0, [r0]
cmp r5, r0
blt _0230E80C
b _0230E8D0
_0230E7FC:
ldr r0, _0230E8E8 ; =SPAWN_CAP_WITH_MONSTER_HOUSE
ldrsh r0, [r0]
cmp r5, r0
bge _0230E8D0
_0230E80C:
cmp r6, #0
beq _0230E828
ldr r1, _0230E8EC ; =0x00000C5D
mov r0, #0
bl LogMessageByIdWithPopup
mov r0, r6
bl ov29_022E62F0
_0230E828:
ldrb r0, [r7, #0x790]
cmp r0, #0
beq _0230E83C
bl GetKecleonIdToSpawnByFloor
b _0230E844
_0230E83C:
mov r0, #0
bl GetMonsterIdToSpawn
_0230E844:
mov r5, r0
mov r0, r5
bl GetMonsterLevelToSpawn
movs r4, r0
mov r0, r5
mov r1, #0
moveq r4, #1
bl MewSpawnCheck
cmp r0, #0
beq _0230E8D0
add r0, sp, #0xa
mov r1, #0
bl GetRandomTile
cmp r0, #0
beq _0230E8D0
mov r1, #0
mov r0, #0x64
strh r5, [sp]
strh r4, [sp, #8]
strb r1, [sp, #2]
bl DungeonRandInt
ldr r1, _0230E8D8 ; =DUNGEON_PTR
mov r4, r0
ldr r0, [r1]
ldrb r0, [r0, #0x748]
bl GetRandomMovementChance
cmp r4, r0
movlt r0, #1
strlt r0, [sp, #4]
movge r0, #0
strge r0, [sp, #4]
mov r1, #0
add r0, sp, #0
strb r1, [sp, #0xe]
bl SpawnMonster
_0230E8D0:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0230E8D8: .word DUNGEON_PTR
_0230E8DC: .word SPAWN_COOLDOWN
_0230E8E0: .word SPAWN_COOLDOWN_THIEF_ALERT
_0230E8E4: .word SPAWN_CAP_NO_MONSTER_HOUSE
_0230E8E8: .word SPAWN_CAP_WITH_MONSTER_HOUSE
#ifdef JAPAN
_0230E8EC: .word 0x0000099C
#else
_0230E8EC: .word 0x00000C5D
#endif
arm_func_end TrySpawnMonsterAndTickSpawnCounter

View File

@@ -640,127 +640,3 @@ _0230F7F0:
.align 2, 0
_0230F80C: .word DUNGEON_PTR
arm_func_end TeamMemberHasItemActive
arm_func_start ItemIsActive__0230F810
ItemIsActive__0230F810: ; 0x0230F810
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__0230F810
arm_func_start TeamMemberHasExclusiveItemEffectActive
TeamMemberHasExclusiveItemEffectActive: ; 0x0230F840
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
mov r6, #0
ldr r5, _0230F8A8 ; =DUNGEON_PTR
b _0230F898
_0230F854:
ldr r0, [r5]
add r0, r0, r6, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r7, [r0, #0xa84]
#else
ldr r7, [r0, #0xb28]
#endif
mov r0, r7
bl EntityIsValid__0230F008
cmp r0, #0
beq _0230F88C
mov r0, r7
mov r1, r4
bl ExclusiveItemEffectIsActive__0230F8AC
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_0230F88C:
add r0, r6, #1
mov r0, r0, lsl #0x10
mov r6, r0, asr #0x10
_0230F898:
cmp r6, #4
blt _0230F854
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0230F8A8: .word DUNGEON_PTR
arm_func_end TeamMemberHasExclusiveItemEffectActive
arm_func_start ExclusiveItemEffectIsActive__0230F8AC
ExclusiveItemEffectIsActive__0230F8AC: ; 0x0230F8AC
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__0230F8AC
arm_func_start ov29_0230F8D0
ov29_0230F8D0: ; 0x0230F8D0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
mov r8, r0
mov r7, r1
bl EntityIsValid__0230F008
cmp r0, #0
moveq r0, #0xff
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, [r8, #0xb4]
mov r5, #0
ldrb r6, [r0, #0x4c]
ldr r4, _0230F97C ; =DIRECTIONS_XY
b _0230F96C
_0230F900:
mov r1, r6, lsl #2
add r0, r4, r6, lsl #2
ldrsh ip, [r8, #4]
ldrsh r3, [r4, r1]
ldrsh r2, [r8, #6]
ldrsh r1, [r0, #2]
add r0, ip, r3
add r1, r2, r1
bl GetTile
ldr sb, [r0, #0xc]
cmp sb, #0
beq _0230F958
mov r0, sb
bl IsMonster__0230F980
cmp r0, #0
beq _0230F958
mov r0, sb
mov r1, r7
bl ItemIsActive__0230F810
cmp r0, #0
movne r0, r6
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_0230F958:
add r0, r6, #1
and r0, r0, #0xff
add r1, r5, #1
and r6, r0, #7
and r5, r1, #0xff
_0230F96C:
cmp r5, #8
blo _0230F900
mov r0, #0xff
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0230F97C: .word DIRECTIONS_XY
arm_func_end ov29_0230F8D0

112
asm/overlay_29_0230F840.s Normal file
View File

@@ -0,0 +1,112 @@
.include "asm/macros.inc"
.include "overlay_29_0230F840.inc"
.text
arm_func_start TeamMemberHasExclusiveItemEffectActive
TeamMemberHasExclusiveItemEffectActive: ; 0x0230F840
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
mov r6, #0
ldr r5, _0230F8A8 ; =DUNGEON_PTR
b _0230F898
_0230F854:
ldr r0, [r5]
add r0, r0, r6, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r7, [r0, #0xa84]
#else
ldr r7, [r0, #0xb28]
#endif
mov r0, r7
bl EntityIsValid__0230F008
cmp r0, #0
beq _0230F88C
mov r0, r7
mov r1, r4
bl ExclusiveItemEffectIsActive__0230F8AC
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
_0230F88C:
add r0, r6, #1
mov r0, r0, lsl #0x10
mov r6, r0, asr #0x10
_0230F898:
cmp r6, #4
blt _0230F854
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0230F8A8: .word DUNGEON_PTR
arm_func_end TeamMemberHasExclusiveItemEffectActive
arm_func_start ExclusiveItemEffectIsActive__0230F8AC
ExclusiveItemEffectIsActive__0230F8AC: ; 0x0230F8AC
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__0230F8AC
arm_func_start ov29_0230F8D0
ov29_0230F8D0: ; 0x0230F8D0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
mov r8, r0
mov r7, r1
bl EntityIsValid__0230F008
cmp r0, #0
moveq r0, #0xff
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, [r8, #0xb4]
mov r5, #0
ldrb r6, [r0, #0x4c]
ldr r4, _0230F97C ; =DIRECTIONS_XY
b _0230F96C
_0230F900:
mov r1, r6, lsl #2
add r0, r4, r6, lsl #2
ldrsh ip, [r8, #4]
ldrsh r3, [r4, r1]
ldrsh r2, [r8, #6]
ldrsh r1, [r0, #2]
add r0, ip, r3
add r1, r2, r1
bl GetTile
ldr sb, [r0, #0xc]
cmp sb, #0
beq _0230F958
mov r0, sb
bl IsMonster__0230F980
cmp r0, #0
beq _0230F958
mov r0, sb
mov r1, r7
bl ItemIsActive__0230F810
cmp r0, #0
movne r0, r6
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_0230F958:
add r0, r6, #1
and r0, r0, #0xff
add r1, r5, #1
and r6, r0, #7
and r5, r1, #0xff
_0230F96C:
cmp r5, #8
blo _0230F900
mov r0, #0xff
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0230F97C: .word DIRECTIONS_XY
arm_func_end ov29_0230F8D0

View File

@@ -1,24 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_02311034.inc"
.include "overlay_29_02311064.inc"
.text
arm_func_start ItemIsActive__02311034
ItemIsActive__02311034: ; 0x02311034
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__02311034
arm_func_start ExclusiveItemEffectIsActive__02311064
ExclusiveItemEffectIsActive__02311064: ; 0x02311064
stmdb sp!, {r3, lr}

File diff suppressed because it is too large Load Diff

4092
asm/overlay_29_02311C28.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_0231513C.inc"
.include "overlay_29_0231516C.inc"
.text
arm_func_start ItemIsActive__0231513C
ItemIsActive__0231513C: ; 0x0231513C
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__0231513C
arm_func_start TryInflictCoweringStatus
TryInflictCoweringStatus: ; 0x0231516C
stmdb sp!, {r3, r4, r5, r6, r7, lr}

View File

@@ -3061,36 +3061,3 @@ _02347B48: .word 0x00000BE1
_02347B4C: .word 0x00000BE5
#endif
arm_func_end ov29_02347518
arm_func_start ItemIsActive__02347B50
ItemIsActive__02347B50: ; 0x02347B50
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r1, #0x6f
mov r5, r0
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r5
mov r1, r4
bl HasHeldItem
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ItemIsActive__02347B50
arm_func_start ExclusiveItemEffectIsActive__02347B80
ExclusiveItemEffectIsActive__02347B80: ; 0x02347B80
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__02347B80

21
asm/overlay_29_02347B80.s Normal file
View File

@@ -0,0 +1,21 @@
.include "asm/macros.inc"
.include "overlay_29_02347B80.inc"
.text
arm_func_start ExclusiveItemEffectIsActive__02347B80
ExclusiveItemEffectIsActive__02347B80: ; 0x02347B80
stmdb sp!, {r3, lr}
ldr r2, [r0, #0xb4]
ldrb r0, [r2, #6]
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, pc}
#ifdef JAPAN
add r0, r2, #0x224
#else
add r0, r2, #0x228
#endif
bl ExclusiveItemEffectFlagTest
ldmia sp!, {r3, pc}
arm_func_end ExclusiveItemEffectIsActive__02347B80

View File

@@ -5,5 +5,7 @@
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__022E32E8(struct entity *entity);
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__022E330C(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_022E32E8_H

View File

@@ -3,6 +3,8 @@
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__022EE318(struct entity *entity, enum item_id item_id);
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__022EE348(struct entity *entity);

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_022F5994_H
#define PMDSKY_OVERLAY_29_022F5994_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__022F5994(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_022F5994_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_022FF898_H
#define PMDSKY_OVERLAY_29_022FF898_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__022FF898(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_022FF898_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_023026CC_H
#define PMDSKY_OVERLAY_29_023026CC_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__023026CC(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_023026CC_H

View File

@@ -5,5 +5,7 @@
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__02307EF8(struct entity *entity);
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__02307F1C(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_02307EF8_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_0230A9DC_H
#define PMDSKY_OVERLAY_29_0230A9DC_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__0230A9DC(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_0230A9DC_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_0230E578_H
#define PMDSKY_OVERLAY_29_0230E578_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__0230E578(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_0230E578_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_0230F810_H
#define PMDSKY_OVERLAY_29_0230F810_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__0230F810(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_0230F810_H

View File

@@ -5,5 +5,7 @@
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__02311010(struct entity *entity);
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__02311034(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_02311010_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_02311BF8_H
#define PMDSKY_OVERLAY_29_02311BF8_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__02311BF8(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_02311BF8_H

View File

@@ -5,5 +5,7 @@
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__02315118(struct entity *entity);
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__0231513C(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_02315118_H

View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_OVERLAY_29_02347B50_H
#define PMDSKY_OVERLAY_29_02347B50_H
#include "dungeon_mode.h"
// Checks if a monster is holding a certain item that isn't disabled by Klutz.
bool8 ItemIsActive__02347B50(struct entity *entity, enum item_id item_id);
#endif //PMDSKY_OVERLAY_29_02347B50_H

View File

@@ -238,7 +238,7 @@ Overlay OVY_29
Object src/dg_object.o
Object asm/overlay_29_022E1AD4.o
Object src/dg_camera.o
Object asm/overlay_29_022E330C.o
Object asm/overlay_29_022E333C.o
Object src/dg_effect.o
Object asm/overlay_29_022E37DC.o
Object src/dg_uty.o
@@ -261,6 +261,8 @@ Overlay OVY_29
Object asm/overlay_29_022F05B4.o
Object src/overlay_29_022F528C.o
Object asm/overlay_29_022F52B0.o
Object src/overlay_29_022F5994.o
Object asm/overlay_29_022F59C4.o
Object src/overlay_29_022F62A8.o
Object asm/overlay_29_022F62CC.o
Object src/overlay_29_022F7364.o
@@ -275,6 +277,8 @@ Overlay OVY_29
Object asm/overlay_29_022FE4BC.o
Object src/overlay_29_022FED98.o
Object asm/overlay_29_022FEDBC.o
Object src/overlay_29_022FF898.o
Object asm/overlay_29_022FF8C8.o
Object src/overlay_29_023000E4.o
Object asm/overlay_29_02300108.o
Object src/dungeon_capabilities.o
@@ -294,6 +298,8 @@ Overlay OVY_29
Object asm/overlay_29_02301D78.o
Object src/dungeon_pokemon_attributes_1.o
Object asm/overlay_29_02301F50.o
Object src/overlay_29_023026CC.o
Object asm/overlay_29_023026FC.o
Object src/overlay_29_02302A38.o
Object asm/overlay_29_02302A5C.o
Object src/overlay_29_023047B8.o
@@ -303,7 +309,7 @@ Overlay OVY_29
Object src/overlay_29_02305C04.o
Object asm/overlay_29_02305C28.o
Object src/overlay_29_02307EF8.o
Object asm/overlay_29_02307F1C.o
Object asm/overlay_29_02307F4C.o
Object src/overlay_29_0230827C.o
Object asm/overlay_29_023082A0.o
Object src/dungeon_ai.o
@@ -312,19 +318,27 @@ Overlay OVY_29
Object asm/overlay_29_02308FE0.o
Object src/overlay_29_0230A994.o
Object asm/overlay_29_0230A9B8.o
Object src/overlay_29_0230A9DC.o
Object asm/overlay_29_0230AA0C.o
Object src/overlay_29_0230E578.o
Object asm/overlay_29_0230E5A8.o
Object src/dungeon_ai_items.o
Object src/dungeon_ai_items_1.o
Object asm/overlay_29_data_02353700.o
Object asm/overlay_29_bss_0237CA18.o
Object asm/overlay_29_0230F02C.o
Object src/overlay_29_0230F810.o
Object asm/overlay_29_0230F840.o
Object src/overlay_29_0230F980.o
Object asm/overlay_29_0230F9A4.o
Object src/overlay_29_02311010.o
Object asm/overlay_29_02311034.o
Object asm/overlay_29_02311064.o
Object src/overlay_29_023118B4.o
Object asm/overlay_29_023118D8.o
Object src/overlay_29_02311BF8.o
Object asm/overlay_29_02311C28.o
Object src/overlay_29_02315118.o
Object asm/overlay_29_0231513C.o
Object asm/overlay_29_0231516C.o
Object src/dungeon_statuses.o
Object asm/overlay_29_02317844.o
Object src/overlay_29_02318AB0.o
@@ -388,6 +402,8 @@ Overlay OVY_29
Object asm/overlay_29_02344B1C.o
Object src/overlay_29_02345698.o
Object asm/overlay_29_023456BC.o
Object src/overlay_29_02347B50.o
Object asm/overlay_29_02347B80.o
Object src/overlay_29_02347BA4.o
Object asm/overlay_29_02347BC8.o
Object src/overlay_29_0234987C.o

View File

@@ -2,6 +2,9 @@
// file starts at 0x022e26b68
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 EntityIsValid__022E32E8(struct entity *entity)
{
if (entity == NULL)
@@ -10,3 +13,11 @@ bool8 EntityIsValid__022E32E8(struct entity *entity)
}
return entity->type != ENTITY_NOTHING;
}
bool8 ItemIsActive__022E330C(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

View File

@@ -1,7 +1,6 @@
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util_static.h"
extern bool8 ItemIsActive__022FF898(struct entity *entity, enum item_id item_id);
#include "overlay_29_022FF898.h"
bool8 CanSeeInvisibleMonsters(struct entity *entity)
{

View File

@@ -3,8 +3,6 @@
#include "item.h"
#include "overlay_29_02315118.h"
extern bool8 ItemIsActive__0231513C(struct entity *entity, enum item_id item_id);
bool8 IsBlinded(struct entity *entity, bool8 check_held_item)
{
if (EntityIsValid__02315118(entity))

View File

@@ -1,5 +1,16 @@
#include "overlay_29_022EE348.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__022EE318(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}
bool8 EntityIsValid__022EE348(struct entity *entity)
{
if (entity == NULL)

12
src/overlay_29_022F5994.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_022F5994.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__022F5994(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_022FF898.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_022FF898.h"
#include "dungeon_pokemon_attributes.h"
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__022FF898(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActive(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_023026CC.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_023026CC.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__023026CC(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

View File

@@ -1,5 +1,8 @@
#include "overlay_29_02307EF8.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 EntityIsValid__02307EF8(struct entity *entity)
{
if (entity == NULL)
@@ -8,3 +11,11 @@ bool8 EntityIsValid__02307EF8(struct entity *entity)
}
return entity->type != ENTITY_NOTHING;
}
bool8 ItemIsActive__02307F1C(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_0230A9DC.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_0230A9DC.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__0230A9DC(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_0230E578.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_0230E578.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__0230E578(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_0230F810.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_0230F810.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__0230F810(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

View File

@@ -1,5 +1,8 @@
#include "overlay_29_02311010.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 EntityIsValid__02311010(struct entity *entity)
{
if (entity == NULL)
@@ -8,3 +11,11 @@ bool8 EntityIsValid__02311010(struct entity *entity)
}
return entity->type != ENTITY_NOTHING;
}
bool8 ItemIsActive__02311034(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_02311BF8.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_02311BF8.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__02311BF8(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

View File

@@ -1,5 +1,8 @@
#include "overlay_29_02315118.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 EntityIsValid__02315118(struct entity *entity)
{
if (entity == NULL)
@@ -8,3 +11,11 @@ bool8 EntityIsValid__02315118(struct entity *entity)
}
return entity->type != ENTITY_NOTHING;
}
bool8 ItemIsActive__0231513C(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}

12
src/overlay_29_02347B50.c Normal file
View File

@@ -0,0 +1,12 @@
#include "overlay_29_02347B50.h"
extern bool8 AbilityIsActiveVeneer(struct entity *entity, enum ability_id ability_id);
extern bool8 HasHeldItem(struct entity* entity, enum item_id item_id);
bool8 ItemIsActive__02347B50(struct entity *entity, enum item_id item_id)
{
if (AbilityIsActiveVeneer(entity, ABILITY_KLUTZ))
return FALSE;
return HasHeldItem(entity, item_id);
}