mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-22 02:24:45 -05:00
Decomped ItemIsActive
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
69
asm/include/overlay_29_022F59C4.inc
Normal file
69
asm/include/overlay_29_022F59C4.inc
Normal 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
|
||||
@@ -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
|
||||
|
||||
21
asm/include/overlay_29_022FF8C8.inc
Normal file
21
asm/include/overlay_29_022FF8C8.inc
Normal 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
|
||||
@@ -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
|
||||
|
||||
21
asm/include/overlay_29_023026FC.inc
Normal file
21
asm/include/overlay_29_023026FC.inc
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
188
asm/include/overlay_29_0230AA0C.inc
Normal file
188
asm/include/overlay_29_0230AA0C.inc
Normal 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
|
||||
31
asm/include/overlay_29_0230E5A8.inc
Normal file
31
asm/include/overlay_29_0230E5A8.inc
Normal 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
|
||||
@@ -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
|
||||
|
||||
8
asm/include/overlay_29_0230F840.inc
Normal file
8
asm/include/overlay_29_0230F840.inc
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
92
asm/include/overlay_29_02311C28.inc
Normal file
92
asm/include/overlay_29_02311C28.inc
Normal 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
2
asm/include/overlay_29_02347B80.inc
Normal file
2
asm/include/overlay_29_02347B80.inc
Normal file
@@ -0,0 +1,2 @@
|
||||
#pragma once
|
||||
.public ExclusiveItemEffectFlagTest
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
767
asm/overlay_29_022F59C4.s
Normal 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
|
||||
@@ -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
714
asm/overlay_29_022FF8C8.s
Normal 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
|
||||
@@ -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
243
asm/overlay_29_023026FC.s
Normal 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
|
||||
@@ -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
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
253
asm/overlay_29_0230E5A8.s
Normal 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
|
||||
@@ -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
112
asm/overlay_29_0230F840.s
Normal 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
|
||||
@@ -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
4092
asm/overlay_29_02311C28.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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}
|
||||
@@ -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
21
asm/overlay_29_02347B80.s
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
9
include/overlay_29_022F5994.h
Normal file
9
include/overlay_29_022F5994.h
Normal 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
|
||||
9
include/overlay_29_022FF898.h
Normal file
9
include/overlay_29_022FF898.h
Normal 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
|
||||
9
include/overlay_29_023026CC.h
Normal file
9
include/overlay_29_023026CC.h
Normal 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
|
||||
@@ -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
|
||||
|
||||
9
include/overlay_29_0230A9DC.h
Normal file
9
include/overlay_29_0230A9DC.h
Normal 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
|
||||
9
include/overlay_29_0230E578.h
Normal file
9
include/overlay_29_0230E578.h
Normal 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
|
||||
9
include/overlay_29_0230F810.h
Normal file
9
include/overlay_29_0230F810.h
Normal 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
|
||||
@@ -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
|
||||
|
||||
9
include/overlay_29_02311BF8.h
Normal file
9
include/overlay_29_02311BF8.h
Normal 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
|
||||
@@ -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
|
||||
|
||||
9
include/overlay_29_02347B50.h
Normal file
9
include/overlay_29_02347B50.h
Normal 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
|
||||
24
main.lsf
24
main.lsf
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
12
src/overlay_29_022F5994.c
Normal 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
12
src/overlay_29_022FF898.c
Normal 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
12
src/overlay_29_023026CC.c
Normal 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);
|
||||
}
|
||||
@@ -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
12
src/overlay_29_0230A9DC.c
Normal 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
12
src/overlay_29_0230E578.c
Normal 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
12
src/overlay_29_0230F810.c
Normal 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);
|
||||
}
|
||||
@@ -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
12
src/overlay_29_02311BF8.c
Normal 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);
|
||||
}
|
||||
@@ -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
12
src/overlay_29_02347B50.c
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user