mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-30 22:27:51 -05:00
Decomp ten more move-effect wrappers in overlay_29
DoMoveLowerSpeed1, DoMoveParalyze__02328230, DoMoveParalyze__0232B434, DoMoveConfuse, DoMovePoison, DoMoveToxic, DoMoveCurse, DoMoveWarp, DoMoveLightScreen and DoMovePerishSong -- the same shape as the previous two batches. Three forward to helpers already declared in move_orb_effects.h (LowerSpeed and TryInflictParalysisStatus), which fixes their argument meanings. The rest take provisional externs written from the call site; TryWarp's third and fourth parameters are left unnamed because nothing establishes what they are. DoMoveParalyze__02328230 and DoMoveParalyze__0232B434 join DoMoveParalyze__02326E80 from an earlier batch: three separate wrappers around TryInflictParalysisStatus with identical arguments. Authored by Claude (Opus 5) under human direction. All ten matched on the first candidate. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. None carries a region conditional, so US alone is sufficient. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
.public DungeonRandRange
|
||||
.public LowerDefensiveStat
|
||||
.public LowerOffensiveStat
|
||||
.public LowerSpeed
|
||||
.public PSYBEAM_CONFUSE_CHANCE
|
||||
.public SPATK_STAT_IDX
|
||||
.public TryInflictConfusedStatus
|
||||
@@ -1,6 +1,4 @@
|
||||
#pragma once
|
||||
.public BeginChargedMove
|
||||
.public BoostDefensiveStat
|
||||
.public DUNGEON_PTR
|
||||
.public DealDamage
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
@@ -8,12 +6,7 @@
|
||||
.public GetMoveType
|
||||
.public InitMove
|
||||
.public LICK_PARALYZE_CHANCE
|
||||
.public LowerDefensiveStat
|
||||
.public NATURE_POWER_TABLE
|
||||
.public SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
.public SPATK_STAT_IDX
|
||||
.public StringFromId
|
||||
.public THUNDERBOLT_PARALYZE_CHANCE
|
||||
.public TryExplosion
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictParalysisStatus
|
||||
|
||||
11
asm/include/overlay_29_02328248.inc
Normal file
11
asm/include/overlay_29_02328248.inc
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
.public BeginChargedMove
|
||||
.public BoostDefensiveStat
|
||||
.public DealDamage
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public LowerDefensiveStat
|
||||
.public SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
.public SPATK_STAT_IDX
|
||||
.public StringFromId
|
||||
.public THUNDERBOLT_PARALYZE_CHANCE
|
||||
.public TryInflictParalysisStatus
|
||||
@@ -52,7 +52,6 @@
|
||||
.public TryExplosion
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictBurnStatus
|
||||
.public TryInflictConfusedStatus
|
||||
.public TryInflictCringeStatus
|
||||
.public TryInflictPoisonedStatus
|
||||
.public TryInflictStockpileStatus
|
||||
|
||||
@@ -1,15 +1,6 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public ActivateMotorDrive
|
||||
.public BoostDefensiveStat
|
||||
.public BoostOffensiveStat
|
||||
.public DealDamage
|
||||
.public DefenderAbilityIsActiveMoveEffects__02328634
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public GetMoveType
|
||||
.public GetMoveTypeForMonster
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public SPATK_STAT_IDX
|
||||
.public THUNDERSHOCK_PARALYZE_CHANCE
|
||||
.public TryInflictParalysisStatus
|
||||
.public TryWarp
|
||||
|
||||
9
asm/include/overlay_29_02329710.inc
Normal file
9
asm/include/overlay_29_02329710.inc
Normal file
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
.public ActivateMotorDrive
|
||||
.public DealDamage
|
||||
.public DefenderAbilityIsActiveMoveEffects__02328634
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public GetMoveType
|
||||
.public GetMoveTypeForMonster
|
||||
.public THUNDERSHOCK_PARALYZE_CHANCE
|
||||
.public TryInflictParalysisStatus
|
||||
@@ -1,40 +1,4 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public AbilityIsActiveVeneer
|
||||
.public AdvanceFrame
|
||||
.public BoostDefensiveStat
|
||||
.public CalcDamageFixedWrapper
|
||||
.public ChangeMonsterAnimation
|
||||
.public DIRECTIONS_XY
|
||||
.public DealDamage
|
||||
.public DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
.public DungeonRandInt
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public EntityIsValidMoveEffects__0232A3D8
|
||||
.public GetDamageSourceWrapper
|
||||
.public GetTileSafe
|
||||
.public IncrementEntityPixelPosXY
|
||||
.public InitMove
|
||||
.public IsFloorOver
|
||||
.public ItemZInit
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public LowerDefensiveStat
|
||||
.public LowerOffensiveStat
|
||||
.public MoveMonsterToPos
|
||||
.public RemoveEquivItem
|
||||
.public STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
.public SetEntityPixelPosXY
|
||||
.public SpawnDroppedItem
|
||||
.public SubstitutePlaceholderStringTags
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictConfusedStatus
|
||||
.public TryInflictCurseStatus
|
||||
.public TwoTurnMoveForcedMiss
|
||||
.public UpdateEntityPixelPos
|
||||
.public _s32_div_f
|
||||
.public ov10_022C44B4
|
||||
.public ov10_022C49D4
|
||||
.public ov29_022E2CA0
|
||||
.public ov29_022FFB90
|
||||
.public ov29_02321164
|
||||
.public ov29_02321260
|
||||
|
||||
37
asm/include/overlay_29_0232A500.inc
Normal file
37
asm/include/overlay_29_0232A500.inc
Normal file
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public AbilityIsActiveVeneer
|
||||
.public AdvanceFrame
|
||||
.public BoostDefensiveStat
|
||||
.public CalcDamageFixedWrapper
|
||||
.public ChangeMonsterAnimation
|
||||
.public DIRECTIONS_XY
|
||||
.public DealDamage
|
||||
.public DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
.public DungeonRandInt
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public EntityIsValidMoveEffects__0232A3D8
|
||||
.public GetDamageSourceWrapper
|
||||
.public GetTileSafe
|
||||
.public IncrementEntityPixelPosXY
|
||||
.public InitMove
|
||||
.public IsFloorOver
|
||||
.public ItemZInit
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public LowerDefensiveStat
|
||||
.public LowerOffensiveStat
|
||||
.public MoveMonsterToPos
|
||||
.public RemoveEquivItem
|
||||
.public STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
.public SetEntityPixelPosXY
|
||||
.public SpawnDroppedItem
|
||||
.public SubstitutePlaceholderStringTags
|
||||
.public TryInflictConfusedStatus
|
||||
.public TwoTurnMoveForcedMiss
|
||||
.public UpdateEntityPixelPos
|
||||
.public _s32_div_f
|
||||
.public ov10_022C44B4
|
||||
.public ov29_022E2CA0
|
||||
.public ov29_022FFB90
|
||||
.public ov29_02321164
|
||||
.public ov29_02321260
|
||||
@@ -1,106 +1,7 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public AbilityIsActiveVeneer
|
||||
.public AddHeldItemToBag
|
||||
.public AllocateTemp1024ByteBufferFromPool
|
||||
.public AnimationDelayOrSomething
|
||||
.public ApplyDamageAndEffectsWrapper
|
||||
.public AreLateGameTrapsEnabledWrapper
|
||||
.public BAG_ITEMS_PTR_MIRROR
|
||||
.public BLAZE_KICK_BURN_CHANCE
|
||||
.public BeginChargedMove
|
||||
.public BoostDefensiveStat
|
||||
.public BoostOffensiveStat
|
||||
.public BoostSpeedOneStage
|
||||
.public CRUSH_CLAW_LOWER_DEFENSE_CHANCE
|
||||
.public CalcDamageFixedWrapper
|
||||
.public CalcStatusDuration
|
||||
.public CeilFixedPoint
|
||||
.public DIZZY_PUNCH_CONFUSE_CHANCE
|
||||
.public DRAGON_RAGE_FIXED_DAMAGE
|
||||
.public DUNGEON_PTR
|
||||
.public DealDamage
|
||||
.public DungeonRandInt
|
||||
.public DungeonRandOutcomeUserAction
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public ERUPTION_DAMAGE_MULT_TABLE
|
||||
.public EndFrozenStatus
|
||||
.public EndTwoTurnMove
|
||||
.public EntityIsValidMoveEffects__0232A3D8
|
||||
.public EntityIsValidMoveEffects__0232C500
|
||||
.public GendersNotEqualNotGenderless
|
||||
.public GetDamageSourceWrapper
|
||||
.public GetMoveCategory
|
||||
.public GetMoveType
|
||||
.public GetTreatmentBetweenMonsters
|
||||
.public IMPRISON_TURN_RANGE
|
||||
.public InitMove
|
||||
.public InitStandardItem
|
||||
.public IsBagFull
|
||||
.public IsChargingTwoTurnMove
|
||||
.public IsExperienceLocked
|
||||
.public IsFullFloorFixedRoom
|
||||
.public IsMonsterSleeping
|
||||
.public ItemZInit
|
||||
.public LUSTER_PURGE_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public LowerDefensiveStat
|
||||
.public LowerHitChanceStat
|
||||
.public LowerOffensiveStat
|
||||
.public LowerSpeed
|
||||
.public METAL_CLAW_BOOST_ATTACK_CHANCE
|
||||
.public METRONOME_NEXT_INDEX
|
||||
.public METRONOME_TABLE
|
||||
.public MIST_BALL_LOWER_SPECIAL_ATTACK_CHANCE
|
||||
.public POISON_TAIL_POISON_CHANCE
|
||||
.public RemoveEquivItem
|
||||
.public RevealTrapsNearby
|
||||
.public SECRET_POWER_EFFECT_CHANCE
|
||||
.public SKULL_BASH_DAMAGE_MULTIPLIER
|
||||
.public SLEEP_TURN_RANGE
|
||||
.public SPATK_STAT_IDX
|
||||
.public SetPreprocessorArgsIdVal
|
||||
.public StringFromId
|
||||
.public SubstitutePlaceholderStringTags
|
||||
.public TryBlowAway
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictBurnStatus
|
||||
.public TryInflictConfusedStatus
|
||||
.public TryInflictConstrictionStatus
|
||||
.public TryInflictCringeStatus
|
||||
.public TryInflictDecoyStatus
|
||||
.public TryInflictDestinyBondStatus
|
||||
.public TryInflictFrozenStatus
|
||||
.public TryInflictInfatuatedStatus
|
||||
.public TryInflictLeechSeedStatus
|
||||
.public TryInflictLightScreenStatus
|
||||
.public TryInflictMagicCoatStatus
|
||||
.public TryInflictMirrorCoatStatus
|
||||
.public TryInflictParalysisStatus
|
||||
.public TryInflictPausedStatus
|
||||
.public TryInflictPerishSongStatus
|
||||
.public TryInflictPoisonedStatus
|
||||
.public TryInflictProtectStatus
|
||||
.public TryInflictReflectStatus
|
||||
.public TryInflictSleepStatus
|
||||
.public TryInflictSnatchStatus
|
||||
.public TryInflictWrappedStatus
|
||||
.public TrySmashWall
|
||||
.public TrySpawnTrap
|
||||
.public TryTransform
|
||||
.public TryWarp
|
||||
.public UpdateTrapsVisibility
|
||||
.public WHIRLPOOL_CONSTRICTION_CHANCE
|
||||
.public ov10_022C4924
|
||||
.public ov10_022C4C3C
|
||||
.public ov10_022C4C3E
|
||||
.public ov10_022C5DE0
|
||||
.public ov10_022C6321
|
||||
.public ov10_022C6322
|
||||
.public ov29_022F8FF8
|
||||
.public ov29_022F9EA0
|
||||
.public ov29_02324D60
|
||||
.public ov29_02332F18
|
||||
.public ov29_02352B1C
|
||||
.public ov29_0237CA84
|
||||
.public sub_02050FF8
|
||||
|
||||
37
asm/include/overlay_29_0232AD18.inc
Normal file
37
asm/include/overlay_29_0232AD18.inc
Normal file
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public BLAZE_KICK_BURN_CHANCE
|
||||
.public BoostDefensiveStat
|
||||
.public BoostOffensiveStat
|
||||
.public CRUSH_CLAW_LOWER_DEFENSE_CHANCE
|
||||
.public CalcStatusDuration
|
||||
.public DIZZY_PUNCH_CONFUSE_CHANCE
|
||||
.public DUNGEON_PTR
|
||||
.public DealDamage
|
||||
.public DungeonRandInt
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public ERUPTION_DAMAGE_MULT_TABLE
|
||||
.public EndFrozenStatus
|
||||
.public EntityIsValidMoveEffects__0232A3D8
|
||||
.public GetTreatmentBetweenMonsters
|
||||
.public IMPRISON_TURN_RANGE
|
||||
.public IsExperienceLocked
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public LowerDefensiveStat
|
||||
.public LowerHitChanceStat
|
||||
.public LowerOffensiveStat
|
||||
.public LowerSpeed
|
||||
.public SECRET_POWER_EFFECT_CHANCE
|
||||
.public SLEEP_TURN_RANGE
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictBurnStatus
|
||||
.public TryInflictConfusedStatus
|
||||
.public TryInflictCringeStatus
|
||||
.public TryInflictFrozenStatus
|
||||
.public TryInflictParalysisStatus
|
||||
.public TryInflictPausedStatus
|
||||
.public TryInflictPoisonedStatus
|
||||
.public TryInflictSleepStatus
|
||||
.public TryWarp
|
||||
.public ov10_022C6321
|
||||
.public ov29_02332F18
|
||||
20
asm/include/overlay_29_0232B44C.inc
Normal file
20
asm/include/overlay_29_0232B44C.inc
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
.public AbilityIsActiveVeneer
|
||||
.public AllocateTemp1024ByteBufferFromPool
|
||||
.public BoostOffensiveStat
|
||||
.public DUNGEON_PTR
|
||||
.public DealDamage
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public EndFrozenStatus
|
||||
.public IsFullFloorFixedRoom
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public POISON_TAIL_POISON_CHANCE
|
||||
.public SPATK_STAT_IDX
|
||||
.public SetPreprocessorArgsIdVal
|
||||
.public SubstitutePlaceholderStringTags
|
||||
.public TryBlowAway
|
||||
.public TryInflictConstrictionStatus
|
||||
.public TryInflictPoisonedStatus
|
||||
.public TryTransform
|
||||
.public WHIRLPOOL_CONSTRICTION_CHANCE
|
||||
.public ov10_022C6322
|
||||
68
asm/include/overlay_29_0232B6B8.inc
Normal file
68
asm/include/overlay_29_0232B6B8.inc
Normal file
@@ -0,0 +1,68 @@
|
||||
#pragma once
|
||||
.public ATK_STAT_IDX
|
||||
.public AbilityIsActiveVeneer
|
||||
.public AddHeldItemToBag
|
||||
.public AnimationDelayOrSomething
|
||||
.public ApplyDamageAndEffectsWrapper
|
||||
.public AreLateGameTrapsEnabledWrapper
|
||||
.public BAG_ITEMS_PTR_MIRROR
|
||||
.public BeginChargedMove
|
||||
.public BoostDefensiveStat
|
||||
.public BoostOffensiveStat
|
||||
.public BoostSpeedOneStage
|
||||
.public CalcDamageFixedWrapper
|
||||
.public DRAGON_RAGE_FIXED_DAMAGE
|
||||
.public DUNGEON_PTR
|
||||
.public DealDamage
|
||||
.public DungeonRandOutcomeUserAction
|
||||
.public DungeonRandOutcomeUserTargetInteraction
|
||||
.public EndTwoTurnMove
|
||||
.public EntityIsValidMoveEffects__0232C500
|
||||
.public GendersNotEqualNotGenderless
|
||||
.public GetDamageSourceWrapper
|
||||
.public GetMoveCategory
|
||||
.public GetMoveType
|
||||
.public InitMove
|
||||
.public InitStandardItem
|
||||
.public IsBagFull
|
||||
.public IsChargingTwoTurnMove
|
||||
.public IsMonsterSleeping
|
||||
.public ItemZInit
|
||||
.public LUSTER_PURGE_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
.public LogMessageByIdWithPopupCheckUserTarget
|
||||
.public LowerDefensiveStat
|
||||
.public LowerOffensiveStat
|
||||
.public METAL_CLAW_BOOST_ATTACK_CHANCE
|
||||
.public METRONOME_NEXT_INDEX
|
||||
.public METRONOME_TABLE
|
||||
.public MIST_BALL_LOWER_SPECIAL_ATTACK_CHANCE
|
||||
.public RemoveEquivItem
|
||||
.public RevealTrapsNearby
|
||||
.public SKULL_BASH_DAMAGE_MULTIPLIER
|
||||
.public SPATK_STAT_IDX
|
||||
.public StringFromId
|
||||
.public SubstitutePlaceholderStringTags
|
||||
.public TryIncreaseHp
|
||||
.public TryInflictDecoyStatus
|
||||
.public TryInflictDestinyBondStatus
|
||||
.public TryInflictInfatuatedStatus
|
||||
.public TryInflictLeechSeedStatus
|
||||
.public TryInflictMagicCoatStatus
|
||||
.public TryInflictMirrorCoatStatus
|
||||
.public TryInflictProtectStatus
|
||||
.public TryInflictReflectStatus
|
||||
.public TryInflictSnatchStatus
|
||||
.public TryInflictWrappedStatus
|
||||
.public TrySmashWall
|
||||
.public TrySpawnTrap
|
||||
.public UpdateTrapsVisibility
|
||||
.public ov10_022C4924
|
||||
.public ov10_022C4C3C
|
||||
.public ov10_022C4C3E
|
||||
.public ov10_022C5DE0
|
||||
.public ov29_022F8FF8
|
||||
.public ov29_022F9EA0
|
||||
.public ov29_02324D60
|
||||
.public ov29_02332F18
|
||||
.public ov29_02352B1C
|
||||
.public ov29_0237CA84
|
||||
@@ -1,18 +1,8 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_02327BF0.inc"
|
||||
.include "overlay_29_02327C08.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveLowerSpeed1
|
||||
DoMoveLowerSpeed1: ; 0x02327BF0
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, r2
|
||||
bl LowerSpeed
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveLowerSpeed1
|
||||
|
||||
arm_func_start DoMoveDamageConfuse10
|
||||
DoMoveDamageConfuse10: ; 0x02327C08
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
@@ -172,117 +172,3 @@ DoMoveSelfdestruct: ; 0x023281D8
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
arm_func_end DoMoveSelfdestruct
|
||||
|
||||
arm_func_start DoMoveParalyze__02328230
|
||||
DoMoveParalyze__02328230: ; 0x02328230
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictParalysisStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveParalyze__02328230
|
||||
|
||||
arm_func_start DoMoveShadowBall
|
||||
DoMoveShadowBall: ; 0x02328248
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #8
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _023282B4
|
||||
ldr r1, _023282C0 ; =SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _023282B4
|
||||
ldr r0, _023282C4 ; =SPATK_STAT_IDX
|
||||
mov r3, r4
|
||||
ldr r2, [r0]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
str r3, [sp]
|
||||
mov ip, #0
|
||||
str ip, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
_023282B4:
|
||||
mov r0, r4
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_023282C0: .word SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
_023282C4: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveShadowBall
|
||||
|
||||
arm_func_start DoMoveCharge
|
||||
DoMoveCharge: ; 0x023282C8
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
mov r6, r0
|
||||
ldr r0, _02328320 ; =0x00000CD9
|
||||
mov r5, r1
|
||||
mov r4, r2
|
||||
bl StringFromId
|
||||
str r0, [sp]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r4
|
||||
mov r2, #0xb
|
||||
bl BeginChargedMove
|
||||
ldr r2, _02328324 ; =SPATK_STAT_IDX
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
ldr r2, [r2]
|
||||
mov r3, #1
|
||||
bl BoostDefensiveStat
|
||||
mov r0, #1
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02328320: .word 0x00000A19
|
||||
#else
|
||||
_02328320: .word 0x00000CD9
|
||||
#endif
|
||||
_02328324: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveCharge
|
||||
|
||||
arm_func_start DoMoveThunderbolt
|
||||
DoMoveThunderbolt: ; 0x02328328
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _02328384
|
||||
ldr r1, _02328390 ; =THUNDERBOLT_PARALYZE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _02328384
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_02328384:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02328390: .word THUNDERBOLT_PARALYZE_CHANCE
|
||||
arm_func_end DoMoveThunderbolt
|
||||
|
||||
108
asm/overlay_29_02328248.s
Normal file
108
asm/overlay_29_02328248.s
Normal file
@@ -0,0 +1,108 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_02328248.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveShadowBall
|
||||
DoMoveShadowBall: ; 0x02328248
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #8
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _023282B4
|
||||
ldr r1, _023282C0 ; =SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _023282B4
|
||||
ldr r0, _023282C4 ; =SPATK_STAT_IDX
|
||||
mov r3, r4
|
||||
ldr r2, [r0]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
str r3, [sp]
|
||||
mov ip, #0
|
||||
str ip, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
_023282B4:
|
||||
mov r0, r4
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_023282C0: .word SHADOW_BALL_LOWER_SPECIAL_DEFENSE_CHANCE
|
||||
_023282C4: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveShadowBall
|
||||
|
||||
arm_func_start DoMoveCharge
|
||||
DoMoveCharge: ; 0x023282C8
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
mov r6, r0
|
||||
ldr r0, _02328320 ; =0x00000CD9
|
||||
mov r5, r1
|
||||
mov r4, r2
|
||||
bl StringFromId
|
||||
str r0, [sp]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r4
|
||||
mov r2, #0xb
|
||||
bl BeginChargedMove
|
||||
ldr r2, _02328324 ; =SPATK_STAT_IDX
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
ldr r2, [r2]
|
||||
mov r3, #1
|
||||
bl BoostDefensiveStat
|
||||
mov r0, #1
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_02328320: .word 0x00000A19
|
||||
#else
|
||||
_02328320: .word 0x00000CD9
|
||||
#endif
|
||||
_02328324: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveCharge
|
||||
|
||||
arm_func_start DoMoveThunderbolt
|
||||
DoMoveThunderbolt: ; 0x02328328
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _02328384
|
||||
ldr r1, _02328390 ; =THUNDERBOLT_PARALYZE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _02328384
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_02328384:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02328390: .word THUNDERBOLT_PARALYZE_CHANCE
|
||||
arm_func_end DoMoveThunderbolt
|
||||
@@ -1173,13 +1173,3 @@ _02329350:
|
||||
.align 2, 0
|
||||
_023293C8: .word 0x00000221
|
||||
arm_func_end DoMoveSeismicToss
|
||||
|
||||
arm_func_start DoMoveConfuse
|
||||
DoMoveConfuse: ; 0x023293CC
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictConfusedStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveConfuse
|
||||
|
||||
@@ -51,112 +51,3 @@ DoMoveBoostDefense2: ; 0x023296D8
|
||||
.align 2, 0
|
||||
_023296F4: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveBoostDefense2
|
||||
|
||||
arm_func_start DoMoveWarp
|
||||
DoMoveWarp: ; 0x023296F8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #0
|
||||
mov r3, r2
|
||||
bl TryWarp
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveWarp
|
||||
|
||||
arm_func_start DoMoveThundershock
|
||||
DoMoveThundershock: ; 0x02329710
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232976C
|
||||
ldr r1, _02329778 ; =THUNDERSHOCK_PARALYZE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232976C
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_0232976C:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02329778: .word THUNDERSHOCK_PARALYZE_CHANCE
|
||||
arm_func_end DoMoveThundershock
|
||||
|
||||
arm_func_start DoMoveThunderWave
|
||||
DoMoveThunderWave: ; 0x0232977C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, r2
|
||||
mov r6, r1
|
||||
mov r1, r5
|
||||
mov r7, r0
|
||||
bl GetMoveTypeForMonster
|
||||
mov r4, r0
|
||||
mov r0, r5
|
||||
bl GetMoveType
|
||||
cmp r4, r0
|
||||
bne _023297D4
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x66
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02328634
|
||||
cmp r0, #0
|
||||
beq _023297D4
|
||||
mov r0, r6
|
||||
bl ActivateMotorDrive
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_023297D4:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictParalysisStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end DoMoveThunderWave
|
||||
|
||||
arm_func_start DoMoveZapCannon
|
||||
DoMoveZapCannon: ; 0x023297F0
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _02329848
|
||||
mov r2, r4
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _02329848
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_02329848:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
arm_func_end DoMoveZapCannon
|
||||
|
||||
103
asm/overlay_29_02329710.s
Normal file
103
asm/overlay_29_02329710.s
Normal file
@@ -0,0 +1,103 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_02329710.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveThundershock
|
||||
DoMoveThundershock: ; 0x02329710
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232976C
|
||||
ldr r1, _02329778 ; =THUNDERSHOCK_PARALYZE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232976C
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_0232976C:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02329778: .word THUNDERSHOCK_PARALYZE_CHANCE
|
||||
arm_func_end DoMoveThundershock
|
||||
|
||||
arm_func_start DoMoveThunderWave
|
||||
DoMoveThunderWave: ; 0x0232977C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, r2
|
||||
mov r6, r1
|
||||
mov r1, r5
|
||||
mov r7, r0
|
||||
bl GetMoveTypeForMonster
|
||||
mov r4, r0
|
||||
mov r0, r5
|
||||
bl GetMoveType
|
||||
cmp r4, r0
|
||||
bne _023297D4
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x66
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02328634
|
||||
cmp r0, #0
|
||||
beq _023297D4
|
||||
mov r0, r6
|
||||
bl ActivateMotorDrive
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_023297D4:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictParalysisStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end DoMoveThunderWave
|
||||
|
||||
arm_func_start DoMoveZapCannon
|
||||
DoMoveZapCannon: ; 0x023297F0
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _02329848
|
||||
mov r2, r4
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _02329848
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_02329848:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
arm_func_end DoMoveZapCannon
|
||||
@@ -1,28 +1,8 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_02329868.inc"
|
||||
.include "overlay_29_02329898.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMovePoison
|
||||
DoMovePoison: ; 0x02329868
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictPoisonedStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMovePoison
|
||||
|
||||
arm_func_start DoMoveToxic
|
||||
DoMoveToxic: ; 0x02329880
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictBadlyPoisonedStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveToxic
|
||||
|
||||
arm_func_start DoMovePoisonFang
|
||||
DoMovePoisonFang: ; 0x02329898
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
@@ -43,580 +43,3 @@ _0232A4E4: .word 0x00000C26
|
||||
_0232A4E4: .word 0x00000EE4
|
||||
#endif
|
||||
arm_func_end DoMoveSwallow
|
||||
|
||||
arm_func_start DoMoveCurse
|
||||
DoMoveCurse: ; 0x0232A4E8
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r2, #1
|
||||
mov r3, #0
|
||||
bl TryInflictCurseStatus
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveCurse
|
||||
|
||||
arm_func_start DoMoveDamage__0232A500
|
||||
DoMoveDamage__0232A500: ; 0x0232A500
|
||||
stmdb sp!, {r3, lr}
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveDamage__0232A500
|
||||
|
||||
arm_func_start DoMoveSuperpower
|
||||
DoMoveSuperpower: ; 0x0232A524
|
||||
stmdb sp!, {r4, r5, lr}
|
||||
sub sp, sp, #0xc
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r4, #0
|
||||
mov r5, r0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r4, #1
|
||||
cmp r4, #0
|
||||
beq _0232A59C
|
||||
ldr r0, _0232A5A8 ; =ATK_STAT_IDX
|
||||
mov ip, #0
|
||||
ldr r2, [r0]
|
||||
str ip, [sp]
|
||||
mov r0, r5
|
||||
mov r1, r5
|
||||
mov r3, #1
|
||||
str r2, [sp, #8]
|
||||
str ip, [sp, #4]
|
||||
bl LowerOffensiveStat
|
||||
add r0, sp, #8
|
||||
mov ip, #0
|
||||
ldr r2, [r0]
|
||||
str ip, [sp]
|
||||
mov r0, r5
|
||||
mov r1, r5
|
||||
mov r3, #1
|
||||
str ip, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
_0232A59C:
|
||||
mov r0, r4
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232A5A8: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveSuperpower
|
||||
|
||||
arm_func_start DoMoveSteelWing
|
||||
DoMoveSteelWing: ; 0x0232A5AC
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
ldr ip, [sp, #0x28]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
#ifndef JAPAN
|
||||
mov r5, r1
|
||||
#endif
|
||||
str ip, [sp]
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232A628
|
||||
ldr r1, _0232A63C ; =STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
#ifdef JAPAN
|
||||
mov r1, r6
|
||||
#else
|
||||
mov r1, r5
|
||||
#endif
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232A628
|
||||
add r0, sp, #0x24
|
||||
ldr r2, [r0]
|
||||
ldr r5, [r6, #0xb4]
|
||||
mov r0, r6
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostDefensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_0232A628:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0232A63C: .word STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
arm_func_end DoMoveSteelWing
|
||||
|
||||
arm_func_start DoMoveSpitUp
|
||||
DoMoveSpitUp: ; 0x0232A640
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r4, [r0, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb ip, [r4, #0x11a]
|
||||
#else
|
||||
ldrb ip, [r4, #0x11e]
|
||||
#endif
|
||||
cmp ip, #0
|
||||
beq _0232A670
|
||||
str r3, [sp]
|
||||
mov r3, ip, lsl #8
|
||||
bl DealDamage
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r4, #0x11a]
|
||||
#else
|
||||
strb r0, [r4, #0x11e]
|
||||
#endif
|
||||
b _0232A678
|
||||
_0232A670:
|
||||
ldr r2, _0232A684 ; =0x00000EE5
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232A678:
|
||||
mov r0, #1
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A684: .word 0x00000C27
|
||||
#else
|
||||
_0232A684: .word 0x00000EE5
|
||||
#endif
|
||||
arm_func_end DoMoveSpitUp
|
||||
|
||||
arm_func_start DoMoveDynamicPunch
|
||||
DoMoveDynamicPunch: ; 0x0232A688
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232A6E0
|
||||
mov r2, r4
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232A6E0
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictConfusedStatus
|
||||
_0232A6E0:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
arm_func_end DoMoveDynamicPunch
|
||||
|
||||
arm_func_start DoMoveKnockOff
|
||||
DoMoveKnockOff: ; 0x0232A6EC
|
||||
stmdb sp!, {r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0xc
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r0, #0
|
||||
mov r1, r7
|
||||
mov r2, r0
|
||||
ldr r4, [r7, #0xb4]
|
||||
ldr r5, [r6, #0xb4]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, r6
|
||||
mov r0, #1
|
||||
mov r2, #0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x2c
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
cmp r0, #0
|
||||
beq _0232A758
|
||||
ldr r2, _0232A820 ; =0x00000EE6
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232A818
|
||||
_0232A758:
|
||||
ldrh r0, [r5, #0x62]
|
||||
strh r0, [sp, #4]
|
||||
ldrh r1, [r5, #0x64]
|
||||
ldrb r0, [sp, #4]
|
||||
strh r1, [sp, #6]
|
||||
ldrh r1, [r5, #0x66]
|
||||
tst r0, #1
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
strh r1, [sp, #8]
|
||||
tst r0, #0xff
|
||||
bne _0232A7A0
|
||||
ldr r2, _0232A824 ; =0x00000EE8
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232A818
|
||||
_0232A7A0:
|
||||
ldrb r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
bne _0232A7B4
|
||||
add r0, r5, #0x62
|
||||
bl RemoveEquivItem
|
||||
_0232A7B4:
|
||||
add r0, r5, #0x62
|
||||
bl ItemZInit
|
||||
ldr r2, _0232A828 ; =0x00000EE7
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldrb r1, [r4, #0x4c]
|
||||
ldr r0, _0232A82C ; =DIRECTIONS_XY
|
||||
ldr r5, _0232A830 ; =DIRECTIONS_XY + 2
|
||||
mov r1, r1, lsl #2
|
||||
ldrsh r1, [r0, r1]
|
||||
add r2, sp, #4
|
||||
mov r0, r7
|
||||
strh r1, [sp]
|
||||
ldrb r4, [r4, #0x4c]
|
||||
mov r1, r6
|
||||
add r3, sp, #0
|
||||
mov r4, r4, lsl #2
|
||||
ldrsh r4, [r5, r4]
|
||||
strh r4, [sp, #2]
|
||||
bl ov29_0232A834
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl ov29_02321164
|
||||
mov r0, #1
|
||||
_0232A818:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A820: .word 0x00000C28
|
||||
_0232A824: .word 0x00000C2A
|
||||
_0232A828: .word 0x00000C29
|
||||
#else
|
||||
_0232A820: .word 0x00000EE6
|
||||
_0232A824: .word 0x00000EE8
|
||||
_0232A828: .word 0x00000EE7
|
||||
#endif
|
||||
_0232A82C: .word DIRECTIONS_XY
|
||||
_0232A830: .word DIRECTIONS_XY + 2
|
||||
arm_func_end DoMoveKnockOff
|
||||
|
||||
arm_func_start ov29_0232A834
|
||||
ov29_0232A834: ; 0x0232A834
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #0xc0
|
||||
mov r5, #0
|
||||
mov r4, r2
|
||||
mov ip, #3
|
||||
mov r2, #1
|
||||
strb r2, [sp, #0x28]
|
||||
str ip, [sp, #8]
|
||||
strb r5, [sp, #0x2c]
|
||||
strb r5, [sp, #0x2a]
|
||||
str r4, [sp, #0xbc]
|
||||
ldrsh lr, [r1, #4]
|
||||
ldrsh ip, [r3]
|
||||
mov r5, r0
|
||||
mov r2, #0x18
|
||||
add r0, lr, ip
|
||||
strh r0, [sp, #0xc]
|
||||
ldrsh ip, [r1, #6]
|
||||
ldrsh r3, [r3, #2]
|
||||
add r0, sp, #8
|
||||
add r3, ip, r3
|
||||
strh r3, [sp, #0xe]
|
||||
ldrsh r3, [r1, #4]
|
||||
ldrsh r1, [r1, #6]
|
||||
smulbb r3, r3, r2
|
||||
smulbb r1, r1, r2
|
||||
add r2, r1, #4
|
||||
add r3, r3, #4
|
||||
mov r1, r3, lsl #8
|
||||
mov r2, r2, lsl #8
|
||||
bl SetEntityPixelPosXY
|
||||
mov r0, #0
|
||||
add r1, sp, #8
|
||||
mov r2, r0
|
||||
strh r0, [sp, #0x2e]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, #0
|
||||
str r1, [sp]
|
||||
str r1, [sp, #4]
|
||||
mov r0, r5
|
||||
mov r2, r4
|
||||
add r1, sp, #8
|
||||
mov r3, #1
|
||||
bl SpawnDroppedItem
|
||||
add sp, sp, #0xc0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end ov29_0232A834
|
||||
|
||||
arm_func_start DoMoveSplash
|
||||
DoMoveSplash: ; 0x0232A8EC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x28
|
||||
mov sb, r1
|
||||
ldrh r1, [sb, #4]
|
||||
mov sl, r0
|
||||
mov r8, r2
|
||||
strh r1, [sp, #0x24]
|
||||
ldrh r4, [sb, #6]
|
||||
mov r0, sb
|
||||
mov r1, #0xa
|
||||
mov r2, #8
|
||||
mov r7, r3
|
||||
strh r4, [sp, #0x26]
|
||||
bl ChangeMonsterAnimation
|
||||
mov r4, #3
|
||||
mov r5, #0
|
||||
mov fp, r4
|
||||
b _0232A990
|
||||
_0232A934:
|
||||
mov r0, r4
|
||||
bl DungeonRandInt
|
||||
mov r6, r0
|
||||
mov r0, fp
|
||||
bl DungeonRandInt
|
||||
subs r1, r6, #1
|
||||
bne _0232A958
|
||||
subs r1, r0, #1
|
||||
beq _0232A98C
|
||||
_0232A958:
|
||||
ldrsh r3, [sb, #4]
|
||||
sub r1, r6, #1
|
||||
sub r2, r0, #1
|
||||
add r0, r3, r1
|
||||
strh r0, [sp, #0x24]
|
||||
ldrsh r3, [sb, #6]
|
||||
mov r0, sb
|
||||
add r1, sp, #0x24
|
||||
add r2, r3, r2
|
||||
strh r2, [sp, #0x26]
|
||||
bl ov29_022FFB90
|
||||
cmp r0, #0
|
||||
beq _0232A998
|
||||
_0232A98C:
|
||||
add r5, r5, #1
|
||||
_0232A990:
|
||||
cmp r5, #0x28
|
||||
blt _0232A934
|
||||
_0232A998:
|
||||
cmp r5, #0x28
|
||||
bne _0232A9B8
|
||||
ldr r2, _0232AC38 ; =0x00000EEA
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232AC30
|
||||
_0232A9B8:
|
||||
ldrsh r2, [sp, #0x24]
|
||||
mov r0, #0x18
|
||||
ldr r1, [sb, #0xc]
|
||||
smulbb r0, r2, r0
|
||||
add r0, r0, #0xc
|
||||
rsb r0, r1, r0, lsl #8
|
||||
mov r1, #0xc
|
||||
bl _s32_div_f
|
||||
ldrsh r3, [sp, #0x26]
|
||||
mov r1, #0x18
|
||||
ldr r2, [sb, #0x10]
|
||||
smulbb r1, r3, r1
|
||||
add r1, r1, #0x10
|
||||
mov r5, r0
|
||||
rsb r0, r2, r1, lsl #8
|
||||
mov r1, #0xc
|
||||
bl _s32_div_f
|
||||
mov r4, r0
|
||||
add r0, sb, #4
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
bne _0232AA20
|
||||
add r0, sp, #0x24
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
beq _0232AA4C
|
||||
_0232AA20:
|
||||
mov r6, #0
|
||||
mov fp, #0x2c
|
||||
_0232AA28:
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
mov r2, r4
|
||||
bl IncrementEntityPixelPosXY
|
||||
mov r0, fp
|
||||
bl AdvanceFrame
|
||||
add r6, r6, #1
|
||||
cmp r6, #0xc
|
||||
blt _0232AA28
|
||||
_0232AA4C:
|
||||
ldrsh r0, [sp, #0x24]
|
||||
ldrsh r1, [sp, #0x26]
|
||||
bl GetTileSafe
|
||||
ldr r6, [r0, #0xc]
|
||||
cmp r6, #0
|
||||
beq _0232ABC8
|
||||
ldr r0, [r6]
|
||||
cmp r0, #1
|
||||
bne _0232AB5C
|
||||
ldr r1, _0232AC3C ; =0x00000163
|
||||
add r0, sp, #0x1c
|
||||
bl InitMove
|
||||
add r1, sp, #0x1c
|
||||
mov r0, r6
|
||||
bl TwoTurnMoveForcedMiss
|
||||
cmp r0, #0
|
||||
bne _0232AAD8
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
bl GetDamageSourceWrapper
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
ldr r1, _0232AC40 ; =ov10_022C44B4
|
||||
str r3, [sp, #4]
|
||||
mov r2, #3
|
||||
str r2, [sp, #8]
|
||||
str r0, [sp, #0xc]
|
||||
ldrsh r2, [r1]
|
||||
str r3, [sp, #0x10]
|
||||
mov r0, #1
|
||||
str r0, [sp, #0x14]
|
||||
mov r0, sl
|
||||
mov r1, r6
|
||||
str r3, [sp, #0x18]
|
||||
bl CalcDamageFixedWrapper
|
||||
_0232AAD8:
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
bne _0232AC30
|
||||
mov r0, sl
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
ldr r0, _0232AC40 ; =ov10_022C44B4
|
||||
mov r1, #3
|
||||
str r3, [sp, #4]
|
||||
str r1, [sp, #8]
|
||||
rsb r1, r1, #0x240
|
||||
str r1, [sp, #0xc]
|
||||
ldrsh r2, [r0]
|
||||
str r3, [sp, #0x10]
|
||||
str r3, [sp, #0x14]
|
||||
mov r0, sl
|
||||
mov r1, sl
|
||||
str r3, [sp, #0x18]
|
||||
bl CalcDamageFixedWrapper
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
bne _0232AC30
|
||||
mov r0, sl
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
_0232AB5C:
|
||||
mov r0, sb
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
add r0, sb, #4
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
bne _0232AB90
|
||||
add r0, sp, #0x24
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
beq _0232ABDC
|
||||
_0232AB90:
|
||||
rsb r6, r4, #0
|
||||
rsb r5, r5, #0
|
||||
mov r7, #0
|
||||
mov r4, #0x2c
|
||||
_0232ABA0:
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
mov r2, r6
|
||||
bl IncrementEntityPixelPosXY
|
||||
mov r0, r4
|
||||
bl AdvanceFrame
|
||||
add r7, r7, #1
|
||||
cmp r7, #0xc
|
||||
blt _0232ABA0
|
||||
b _0232ABDC
|
||||
_0232ABC8:
|
||||
ldrsh r1, [sp, #0x24]
|
||||
ldrsh r2, [sp, #0x26]
|
||||
mov r0, sb
|
||||
mov r3, #0
|
||||
bl MoveMonsterToPos
|
||||
_0232ABDC:
|
||||
mov r0, sb
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
mov r0, sb
|
||||
mov r1, #0
|
||||
bl UpdateEntityPixelPos
|
||||
mov r0, sb
|
||||
mov r1, #0xe
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
bne _0232AC24
|
||||
#ifndef JAPAN
|
||||
mov r0, sb
|
||||
bl ov29_02321260
|
||||
#endif
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
bl ov29_02321164
|
||||
_0232AC24:
|
||||
mov r0, sb
|
||||
bl ov29_02321260
|
||||
mov r0, #1
|
||||
_0232AC30:
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232AC38: .word 0x00000C2C
|
||||
#else
|
||||
_0232AC38: .word 0x00000EEA
|
||||
#endif
|
||||
_0232AC3C: .word 0x00000163
|
||||
_0232AC40: .word ov10_022C44B4
|
||||
arm_func_end DoMoveSplash
|
||||
|
||||
571
asm/overlay_29_0232A500.s
Normal file
571
asm/overlay_29_0232A500.s
Normal file
@@ -0,0 +1,571 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_0232A500.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveDamage__0232A500
|
||||
DoMoveDamage__0232A500: ; 0x0232A500
|
||||
stmdb sp!, {r3, lr}
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveDamage__0232A500
|
||||
|
||||
arm_func_start DoMoveSuperpower
|
||||
DoMoveSuperpower: ; 0x0232A524
|
||||
stmdb sp!, {r4, r5, lr}
|
||||
sub sp, sp, #0xc
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r4, #0
|
||||
mov r5, r0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r4, #1
|
||||
cmp r4, #0
|
||||
beq _0232A59C
|
||||
ldr r0, _0232A5A8 ; =ATK_STAT_IDX
|
||||
mov ip, #0
|
||||
ldr r2, [r0]
|
||||
str ip, [sp]
|
||||
mov r0, r5
|
||||
mov r1, r5
|
||||
mov r3, #1
|
||||
str r2, [sp, #8]
|
||||
str ip, [sp, #4]
|
||||
bl LowerOffensiveStat
|
||||
add r0, sp, #8
|
||||
mov ip, #0
|
||||
ldr r2, [r0]
|
||||
str ip, [sp]
|
||||
mov r0, r5
|
||||
mov r1, r5
|
||||
mov r3, #1
|
||||
str ip, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
_0232A59C:
|
||||
mov r0, r4
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232A5A8: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveSuperpower
|
||||
|
||||
arm_func_start DoMoveSteelWing
|
||||
DoMoveSteelWing: ; 0x0232A5AC
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
ldr ip, [sp, #0x28]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
#ifndef JAPAN
|
||||
mov r5, r1
|
||||
#endif
|
||||
str ip, [sp]
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232A628
|
||||
ldr r1, _0232A63C ; =STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
#ifdef JAPAN
|
||||
mov r1, r6
|
||||
#else
|
||||
mov r1, r5
|
||||
#endif
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232A628
|
||||
add r0, sp, #0x24
|
||||
ldr r2, [r0]
|
||||
ldr r5, [r6, #0xb4]
|
||||
mov r0, r6
|
||||
mov r1, r6
|
||||
mov r3, r4
|
||||
bl BoostDefensiveStat
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r5, #0x107]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x107]
|
||||
#else
|
||||
ldrb r0, [r5, #0x108]
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
strlob r0, [r5, #0x108]
|
||||
#endif
|
||||
_0232A628:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0232A63C: .word STEEL_WING_BOOST_DEFENSE_CHANCE
|
||||
arm_func_end DoMoveSteelWing
|
||||
|
||||
arm_func_start DoMoveSpitUp
|
||||
DoMoveSpitUp: ; 0x0232A640
|
||||
stmdb sp!, {r3, r4, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r4, [r0, #0xb4]
|
||||
#ifdef JAPAN
|
||||
ldrb ip, [r4, #0x11a]
|
||||
#else
|
||||
ldrb ip, [r4, #0x11e]
|
||||
#endif
|
||||
cmp ip, #0
|
||||
beq _0232A670
|
||||
str r3, [sp]
|
||||
mov r3, ip, lsl #8
|
||||
bl DealDamage
|
||||
mov r0, #0
|
||||
#ifdef JAPAN
|
||||
strb r0, [r4, #0x11a]
|
||||
#else
|
||||
strb r0, [r4, #0x11e]
|
||||
#endif
|
||||
b _0232A678
|
||||
_0232A670:
|
||||
ldr r2, _0232A684 ; =0x00000EE5
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232A678:
|
||||
mov r0, #1
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A684: .word 0x00000C27
|
||||
#else
|
||||
_0232A684: .word 0x00000EE5
|
||||
#endif
|
||||
arm_func_end DoMoveSpitUp
|
||||
|
||||
arm_func_start DoMoveDynamicPunch
|
||||
DoMoveDynamicPunch: ; 0x0232A688
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232A6E0
|
||||
mov r2, r4
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232A6E0
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictConfusedStatus
|
||||
_0232A6E0:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
arm_func_end DoMoveDynamicPunch
|
||||
|
||||
arm_func_start DoMoveKnockOff
|
||||
DoMoveKnockOff: ; 0x0232A6EC
|
||||
stmdb sp!, {r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0xc
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r0, #0
|
||||
mov r1, r7
|
||||
mov r2, r0
|
||||
ldr r4, [r7, #0xb4]
|
||||
ldr r5, [r6, #0xb4]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, r6
|
||||
mov r0, #1
|
||||
mov r2, #0
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, #0x2c
|
||||
#ifndef JAPAN
|
||||
mov r3, #1
|
||||
#endif
|
||||
bl DefenderAbilityIsActiveMoveEffects__02329F14
|
||||
cmp r0, #0
|
||||
beq _0232A758
|
||||
ldr r2, _0232A820 ; =0x00000EE6
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232A818
|
||||
_0232A758:
|
||||
ldrh r0, [r5, #0x62]
|
||||
strh r0, [sp, #4]
|
||||
ldrh r1, [r5, #0x64]
|
||||
ldrb r0, [sp, #4]
|
||||
strh r1, [sp, #6]
|
||||
ldrh r1, [r5, #0x66]
|
||||
tst r0, #1
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
strh r1, [sp, #8]
|
||||
tst r0, #0xff
|
||||
bne _0232A7A0
|
||||
ldr r2, _0232A824 ; =0x00000EE8
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232A818
|
||||
_0232A7A0:
|
||||
ldrb r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
bne _0232A7B4
|
||||
add r0, r5, #0x62
|
||||
bl RemoveEquivItem
|
||||
_0232A7B4:
|
||||
add r0, r5, #0x62
|
||||
bl ItemZInit
|
||||
ldr r2, _0232A828 ; =0x00000EE7
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
ldrb r1, [r4, #0x4c]
|
||||
ldr r0, _0232A82C ; =DIRECTIONS_XY
|
||||
ldr r5, _0232A830 ; =DIRECTIONS_XY + 2
|
||||
mov r1, r1, lsl #2
|
||||
ldrsh r1, [r0, r1]
|
||||
add r2, sp, #4
|
||||
mov r0, r7
|
||||
strh r1, [sp]
|
||||
ldrb r4, [r4, #0x4c]
|
||||
mov r1, r6
|
||||
add r3, sp, #0
|
||||
mov r4, r4, lsl #2
|
||||
ldrsh r4, [r5, r4]
|
||||
strh r4, [sp, #2]
|
||||
bl ov29_0232A834
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl ov29_02321164
|
||||
mov r0, #1
|
||||
_0232A818:
|
||||
add sp, sp, #0xc
|
||||
ldmia sp!, {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232A820: .word 0x00000C28
|
||||
_0232A824: .word 0x00000C2A
|
||||
_0232A828: .word 0x00000C29
|
||||
#else
|
||||
_0232A820: .word 0x00000EE6
|
||||
_0232A824: .word 0x00000EE8
|
||||
_0232A828: .word 0x00000EE7
|
||||
#endif
|
||||
_0232A82C: .word DIRECTIONS_XY
|
||||
_0232A830: .word DIRECTIONS_XY + 2
|
||||
arm_func_end DoMoveKnockOff
|
||||
|
||||
arm_func_start ov29_0232A834
|
||||
ov29_0232A834: ; 0x0232A834
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #0xc0
|
||||
mov r5, #0
|
||||
mov r4, r2
|
||||
mov ip, #3
|
||||
mov r2, #1
|
||||
strb r2, [sp, #0x28]
|
||||
str ip, [sp, #8]
|
||||
strb r5, [sp, #0x2c]
|
||||
strb r5, [sp, #0x2a]
|
||||
str r4, [sp, #0xbc]
|
||||
ldrsh lr, [r1, #4]
|
||||
ldrsh ip, [r3]
|
||||
mov r5, r0
|
||||
mov r2, #0x18
|
||||
add r0, lr, ip
|
||||
strh r0, [sp, #0xc]
|
||||
ldrsh ip, [r1, #6]
|
||||
ldrsh r3, [r3, #2]
|
||||
add r0, sp, #8
|
||||
add r3, ip, r3
|
||||
strh r3, [sp, #0xe]
|
||||
ldrsh r3, [r1, #4]
|
||||
ldrsh r1, [r1, #6]
|
||||
smulbb r3, r3, r2
|
||||
smulbb r1, r1, r2
|
||||
add r2, r1, #4
|
||||
add r3, r3, #4
|
||||
mov r1, r3, lsl #8
|
||||
mov r2, r2, lsl #8
|
||||
bl SetEntityPixelPosXY
|
||||
mov r0, #0
|
||||
add r1, sp, #8
|
||||
mov r2, r0
|
||||
strh r0, [sp, #0x2e]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, #0
|
||||
str r1, [sp]
|
||||
str r1, [sp, #4]
|
||||
mov r0, r5
|
||||
mov r2, r4
|
||||
add r1, sp, #8
|
||||
mov r3, #1
|
||||
bl SpawnDroppedItem
|
||||
add sp, sp, #0xc0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end ov29_0232A834
|
||||
|
||||
arm_func_start DoMoveSplash
|
||||
DoMoveSplash: ; 0x0232A8EC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x28
|
||||
mov sb, r1
|
||||
ldrh r1, [sb, #4]
|
||||
mov sl, r0
|
||||
mov r8, r2
|
||||
strh r1, [sp, #0x24]
|
||||
ldrh r4, [sb, #6]
|
||||
mov r0, sb
|
||||
mov r1, #0xa
|
||||
mov r2, #8
|
||||
mov r7, r3
|
||||
strh r4, [sp, #0x26]
|
||||
bl ChangeMonsterAnimation
|
||||
mov r4, #3
|
||||
mov r5, #0
|
||||
mov fp, r4
|
||||
b _0232A990
|
||||
_0232A934:
|
||||
mov r0, r4
|
||||
bl DungeonRandInt
|
||||
mov r6, r0
|
||||
mov r0, fp
|
||||
bl DungeonRandInt
|
||||
subs r1, r6, #1
|
||||
bne _0232A958
|
||||
subs r1, r0, #1
|
||||
beq _0232A98C
|
||||
_0232A958:
|
||||
ldrsh r3, [sb, #4]
|
||||
sub r1, r6, #1
|
||||
sub r2, r0, #1
|
||||
add r0, r3, r1
|
||||
strh r0, [sp, #0x24]
|
||||
ldrsh r3, [sb, #6]
|
||||
mov r0, sb
|
||||
add r1, sp, #0x24
|
||||
add r2, r3, r2
|
||||
strh r2, [sp, #0x26]
|
||||
bl ov29_022FFB90
|
||||
cmp r0, #0
|
||||
beq _0232A998
|
||||
_0232A98C:
|
||||
add r5, r5, #1
|
||||
_0232A990:
|
||||
cmp r5, #0x28
|
||||
blt _0232A934
|
||||
_0232A998:
|
||||
cmp r5, #0x28
|
||||
bne _0232A9B8
|
||||
ldr r2, _0232AC38 ; =0x00000EEA
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
b _0232AC30
|
||||
_0232A9B8:
|
||||
ldrsh r2, [sp, #0x24]
|
||||
mov r0, #0x18
|
||||
ldr r1, [sb, #0xc]
|
||||
smulbb r0, r2, r0
|
||||
add r0, r0, #0xc
|
||||
rsb r0, r1, r0, lsl #8
|
||||
mov r1, #0xc
|
||||
bl _s32_div_f
|
||||
ldrsh r3, [sp, #0x26]
|
||||
mov r1, #0x18
|
||||
ldr r2, [sb, #0x10]
|
||||
smulbb r1, r3, r1
|
||||
add r1, r1, #0x10
|
||||
mov r5, r0
|
||||
rsb r0, r2, r1, lsl #8
|
||||
mov r1, #0xc
|
||||
bl _s32_div_f
|
||||
mov r4, r0
|
||||
add r0, sb, #4
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
bne _0232AA20
|
||||
add r0, sp, #0x24
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
beq _0232AA4C
|
||||
_0232AA20:
|
||||
mov r6, #0
|
||||
mov fp, #0x2c
|
||||
_0232AA28:
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
mov r2, r4
|
||||
bl IncrementEntityPixelPosXY
|
||||
mov r0, fp
|
||||
bl AdvanceFrame
|
||||
add r6, r6, #1
|
||||
cmp r6, #0xc
|
||||
blt _0232AA28
|
||||
_0232AA4C:
|
||||
ldrsh r0, [sp, #0x24]
|
||||
ldrsh r1, [sp, #0x26]
|
||||
bl GetTileSafe
|
||||
ldr r6, [r0, #0xc]
|
||||
cmp r6, #0
|
||||
beq _0232ABC8
|
||||
ldr r0, [r6]
|
||||
cmp r0, #1
|
||||
bne _0232AB5C
|
||||
ldr r1, _0232AC3C ; =0x00000163
|
||||
add r0, sp, #0x1c
|
||||
bl InitMove
|
||||
add r1, sp, #0x1c
|
||||
mov r0, r6
|
||||
bl TwoTurnMoveForcedMiss
|
||||
cmp r0, #0
|
||||
bne _0232AAD8
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
bl GetDamageSourceWrapper
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
ldr r1, _0232AC40 ; =ov10_022C44B4
|
||||
str r3, [sp, #4]
|
||||
mov r2, #3
|
||||
str r2, [sp, #8]
|
||||
str r0, [sp, #0xc]
|
||||
ldrsh r2, [r1]
|
||||
str r3, [sp, #0x10]
|
||||
mov r0, #1
|
||||
str r0, [sp, #0x14]
|
||||
mov r0, sl
|
||||
mov r1, r6
|
||||
str r3, [sp, #0x18]
|
||||
bl CalcDamageFixedWrapper
|
||||
_0232AAD8:
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
bne _0232AC30
|
||||
mov r0, sl
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
ldr r0, _0232AC40 ; =ov10_022C44B4
|
||||
mov r1, #3
|
||||
str r3, [sp, #4]
|
||||
str r1, [sp, #8]
|
||||
rsb r1, r1, #0x240
|
||||
str r1, [sp, #0xc]
|
||||
ldrsh r2, [r0]
|
||||
str r3, [sp, #0x10]
|
||||
str r3, [sp, #0x14]
|
||||
mov r0, sl
|
||||
mov r1, sl
|
||||
str r3, [sp, #0x18]
|
||||
bl CalcDamageFixedWrapper
|
||||
bl IsFloorOver
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
bne _0232AC30
|
||||
mov r0, sl
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
_0232AB5C:
|
||||
mov r0, sb
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
add r0, sb, #4
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
bne _0232AB90
|
||||
add r0, sp, #0x24
|
||||
bl ov29_022E2CA0
|
||||
cmp r0, #0
|
||||
beq _0232ABDC
|
||||
_0232AB90:
|
||||
rsb r6, r4, #0
|
||||
rsb r5, r5, #0
|
||||
mov r7, #0
|
||||
mov r4, #0x2c
|
||||
_0232ABA0:
|
||||
mov r0, sb
|
||||
mov r1, r5
|
||||
mov r2, r6
|
||||
bl IncrementEntityPixelPosXY
|
||||
mov r0, r4
|
||||
bl AdvanceFrame
|
||||
add r7, r7, #1
|
||||
cmp r7, #0xc
|
||||
blt _0232ABA0
|
||||
b _0232ABDC
|
||||
_0232ABC8:
|
||||
ldrsh r1, [sp, #0x24]
|
||||
ldrsh r2, [sp, #0x26]
|
||||
mov r0, sb
|
||||
mov r3, #0
|
||||
bl MoveMonsterToPos
|
||||
_0232ABDC:
|
||||
mov r0, sb
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
moveq r0, #1
|
||||
beq _0232AC30
|
||||
mov r0, sb
|
||||
mov r1, #0
|
||||
bl UpdateEntityPixelPos
|
||||
mov r0, sb
|
||||
mov r1, #0xe
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
bne _0232AC24
|
||||
#ifndef JAPAN
|
||||
mov r0, sb
|
||||
bl ov29_02321260
|
||||
#endif
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
bl ov29_02321164
|
||||
_0232AC24:
|
||||
mov r0, sb
|
||||
bl ov29_02321260
|
||||
mov r0, #1
|
||||
_0232AC30:
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232AC38: .word 0x00000C2C
|
||||
#else
|
||||
_0232AC38: .word 0x00000EEA
|
||||
#endif
|
||||
_0232AC3C: .word 0x00000163
|
||||
_0232AC40: .word ov10_022C44B4
|
||||
arm_func_end DoMoveSplash
|
||||
File diff suppressed because it is too large
Load Diff
559
asm/overlay_29_0232AD18.s
Normal file
559
asm/overlay_29_0232AD18.s
Normal file
@@ -0,0 +1,559 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_0232AD18.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveSecretPower
|
||||
DoMoveSecretPower: ; 0x0232AD18
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #8
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232AED0
|
||||
ldr r1, _0232AEDC ; =SECRET_POWER_EFFECT_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232AED0
|
||||
ldr r0, _0232AEE0 ; =DUNGEON_PTR
|
||||
mov r1, #0xc
|
||||
ldr r0, [r0]
|
||||
ldr r2, _0232AEE4 ; =ov10_022C6321
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh r0, [r0, #0x30]
|
||||
#else
|
||||
ldrsh r0, [r0, #0xd4]
|
||||
#endif
|
||||
smulbb r0, r0, r1
|
||||
ldrb r0, [r2, r0]
|
||||
cmp r0, #9
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0232AEBC
|
||||
_0232AD8C: ; jump table
|
||||
b _0232ADB4 ; case 0
|
||||
b _0232ADCC ; case 1
|
||||
b _0232ADF4 ; case 2
|
||||
b _0232AE0C ; case 3
|
||||
b _0232AE34 ; case 4
|
||||
b _0232AE5C ; case 5
|
||||
b _0232AE78 ; case 6
|
||||
b _0232AE90 ; case 7
|
||||
b _0232AEA8 ; case 8
|
||||
b _0232AEBC ; case 9
|
||||
_0232ADB4:
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictPoisonedStatus
|
||||
b _0232AED0
|
||||
_0232ADCC:
|
||||
ldr r1, _0232AEE8 ; =SLEEP_TURN_RANGE
|
||||
mov r0, r5
|
||||
mov r2, r4
|
||||
bl CalcStatusDuration
|
||||
mov r2, r0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, #0
|
||||
bl TryInflictSleepStatus
|
||||
b _0232AED0
|
||||
_0232ADF4:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, r4
|
||||
mov r3, #0
|
||||
bl LowerSpeed
|
||||
b _0232AED0
|
||||
_0232AE0C:
|
||||
ldr r0, _0232AEEC ; =ATK_STAT_IDX
|
||||
mov r3, r4
|
||||
ldr r2, [r0]
|
||||
mov r1, r5
|
||||
mov r0, r6
|
||||
str r3, [sp]
|
||||
mov r5, #0
|
||||
str r5, [sp, #4]
|
||||
bl LowerOffensiveStat
|
||||
b _0232AED0
|
||||
_0232AE34:
|
||||
ldr r0, _0232AEEC ; =ATK_STAT_IDX
|
||||
mov r3, r4
|
||||
ldr r2, [r0]
|
||||
mov r1, r5
|
||||
mov r0, r6
|
||||
str r3, [sp]
|
||||
mov r5, #0
|
||||
str r5, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
b _0232AED0
|
||||
_0232AE5C:
|
||||
ldr r1, _0232AEEC ; =ATK_STAT_IDX
|
||||
mov r0, r6
|
||||
ldr r2, [r1]
|
||||
mov r1, r5
|
||||
mov r3, #0
|
||||
bl LowerHitChanceStat
|
||||
b _0232AED0
|
||||
_0232AE78:
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictConfusedStatus
|
||||
b _0232AED0
|
||||
_0232AE90:
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictCringeStatus
|
||||
b _0232AED0
|
||||
_0232AEA8:
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r2, #0
|
||||
bl TryInflictFrozenStatus
|
||||
b _0232AED0
|
||||
_0232AEBC:
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictParalysisStatus
|
||||
_0232AED0:
|
||||
mov r0, r4
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232AEDC: .word SECRET_POWER_EFFECT_CHANCE
|
||||
_0232AEE0: .word DUNGEON_PTR
|
||||
_0232AEE4: .word ov10_022C6321
|
||||
_0232AEE8: .word SLEEP_TURN_RANGE
|
||||
_0232AEEC: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveSecretPower
|
||||
|
||||
arm_func_start DoMoveDamageConfuse30
|
||||
DoMoveDamageConfuse30: ; 0x0232AEF0
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232AF4C
|
||||
ldr r1, _0232AF58 ; =DIZZY_PUNCH_CONFUSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232AF4C
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictConfusedStatus
|
||||
_0232AF4C:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232AF58: .word DIZZY_PUNCH_CONFUSE_CHANCE
|
||||
arm_func_end DoMoveDamageConfuse30
|
||||
|
||||
arm_func_start DoMoveBulkUp
|
||||
DoMoveBulkUp: ; 0x0232AF5C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r2, _0232AF9C ; =ATK_STAT_IDX
|
||||
mov r3, #1
|
||||
ldr r2, [r2]
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
str r2, [sp]
|
||||
bl BoostOffensiveStat
|
||||
add r1, sp, #0
|
||||
ldr r2, [r1]
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r3, #1
|
||||
bl BoostDefensiveStat
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232AF9C: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveBulkUp
|
||||
|
||||
arm_func_start DoMovePause
|
||||
DoMovePause: ; 0x0232AFA0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
sub sp, sp, #8
|
||||
mov r4, r1
|
||||
mov r5, r0
|
||||
ldr r1, _0232AFEC ; =IMPRISON_TURN_RANGE
|
||||
mov r0, r4
|
||||
mov r2, #1
|
||||
bl CalcStatusDuration
|
||||
mov r2, #1
|
||||
mov r3, r0
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
str r2, [sp]
|
||||
mov ip, #0
|
||||
str ip, [sp, #4]
|
||||
bl TryInflictPausedStatus
|
||||
mov r0, #1
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0232AFEC: .word IMPRISON_TURN_RANGE
|
||||
arm_func_end DoMovePause
|
||||
|
||||
arm_func_start DoMoveFeatherDance
|
||||
DoMoveFeatherDance: ; 0x0232AFF0
|
||||
stmdb sp!, {r3, lr}
|
||||
sub sp, sp, #8
|
||||
ldr r2, _0232B020 ; =ATK_STAT_IDX
|
||||
mov ip, #1
|
||||
ldr r2, [r2]
|
||||
str ip, [sp]
|
||||
mov r3, #2
|
||||
str ip, [sp, #4]
|
||||
bl LowerOffensiveStat
|
||||
mov r0, #1
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_0232B020: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveFeatherDance
|
||||
|
||||
arm_func_start DoMoveBeatUp
|
||||
DoMoveBeatUp: ; 0x0232B024
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, r0
|
||||
ldr r8, [sl, #0xb4]
|
||||
mov fp, r1
|
||||
ldrb r0, [r8, #6]
|
||||
mov r4, #0
|
||||
mov r5, #0
|
||||
cmp r0, #0
|
||||
ldrne r0, _0232B110 ; =DUNGEON_PTR
|
||||
movne r6, #0x10
|
||||
ldrne r0, [r0]
|
||||
moveq r6, #4
|
||||
#ifdef JAPAN
|
||||
addne r0, r0, #0x294
|
||||
ldreq r0, _0232B110 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x284
|
||||
#else
|
||||
addne r0, r0, #0x338
|
||||
ldreq r0, _0232B110 ; =DUNGEON_PTR
|
||||
ldreq r0, [r0]
|
||||
addeq r0, r0, #0x328
|
||||
#endif
|
||||
add r7, r0, #0x12800
|
||||
b _0232B0E8
|
||||
_0232B06C:
|
||||
ldr sb, [r7, r5, lsl #2]
|
||||
mov r0, sb
|
||||
bl EntityIsValidMoveEffects__0232A3D8
|
||||
cmp r0, #0
|
||||
cmpne sl, sb
|
||||
beq _0232B0E4
|
||||
mov r2, #0
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r3, r2
|
||||
bl GetTreatmentBetweenMonsters
|
||||
cmp r0, #0
|
||||
bne _0232B0E4
|
||||
ldr r0, [sb, #0xb4]
|
||||
ldrb r1, [r0, #0xbc]
|
||||
cmp r1, #7
|
||||
beq _0232B0E4
|
||||
bl IsExperienceLocked
|
||||
cmp r0, #0
|
||||
bne _0232B0E4
|
||||
mov r0, sl
|
||||
mov r1, sb
|
||||
mov r2, #2
|
||||
add r3, fp, #4
|
||||
bl TryWarp
|
||||
#ifdef JAPAN
|
||||
ldrb r0, [r8, #0x107]
|
||||
#else
|
||||
ldrb r0, [r8, #0x108]
|
||||
#endif
|
||||
mov r4, #1
|
||||
cmp r0, #1
|
||||
movlo r0, r4
|
||||
#ifdef JAPAN
|
||||
strlob r0, [r8, #0x107]
|
||||
#else
|
||||
strlob r0, [r8, #0x108]
|
||||
#endif
|
||||
_0232B0E4:
|
||||
add r5, r5, #1
|
||||
_0232B0E8:
|
||||
cmp r5, r6
|
||||
blt _0232B06C
|
||||
cmp r4, #0
|
||||
bne _0232B108
|
||||
ldr r2, _0232B114 ; =0x00000EEC
|
||||
mov r0, sl
|
||||
mov r1, fp
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
_0232B108:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0232B110: .word DUNGEON_PTR
|
||||
#ifdef JAPAN
|
||||
_0232B114: .word 0x00000C2E
|
||||
#else
|
||||
_0232B114: .word 0x00000EEC
|
||||
#endif
|
||||
arm_func_end DoMoveBeatUp
|
||||
|
||||
arm_func_start DoMoveBlastBurn
|
||||
DoMoveBlastBurn: ; 0x0232B118
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #4
|
||||
mov r8, r0
|
||||
mov r7, r1
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
mov r4, #0
|
||||
bl EndFrozenStatus
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r2, r6
|
||||
mov r3, #0x200
|
||||
str r5, [sp]
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r4, #1
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
arm_func_end DoMoveBlastBurn
|
||||
|
||||
arm_func_start DoMoveCrushClaw
|
||||
DoMoveCrushClaw: ; 0x0232B164
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
sub sp, sp, #8
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232B1D0
|
||||
ldr r1, _0232B1DC ; =CRUSH_CLAW_LOWER_DEFENSE_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232B1D0
|
||||
ldr r0, _0232B1E0 ; =ATK_STAT_IDX
|
||||
mov r3, r4
|
||||
ldr r2, [r0]
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
str r3, [sp]
|
||||
mov ip, #0
|
||||
str ip, [sp, #4]
|
||||
bl LowerDefensiveStat
|
||||
_0232B1D0:
|
||||
mov r0, r4
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232B1DC: .word CRUSH_CLAW_LOWER_DEFENSE_CHANCE
|
||||
_0232B1E0: .word ATK_STAT_IDX
|
||||
arm_func_end DoMoveCrushClaw
|
||||
|
||||
arm_func_start DoMoveBlazeKick
|
||||
DoMoveBlazeKick: ; 0x0232B1E4
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #4
|
||||
mov r8, r0
|
||||
mov r7, r1
|
||||
mov r6, r2
|
||||
mov r5, r3
|
||||
mov r4, #0
|
||||
bl EndFrozenStatus
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r2, r6
|
||||
mov r3, #0x100
|
||||
str r5, [sp]
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232B25C
|
||||
ldr r1, _0232B268 ; =BLAZE_KICK_BURN_CHANCE
|
||||
mov r0, r8
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r7
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232B25C
|
||||
mov r2, #0
|
||||
mov r0, r8
|
||||
mov r1, r7
|
||||
mov r3, r2
|
||||
str r2, [sp]
|
||||
bl TryInflictBurnStatus
|
||||
_0232B25C:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0232B268: .word BLAZE_KICK_BURN_CHANCE
|
||||
arm_func_end DoMoveBlazeKick
|
||||
|
||||
arm_func_start DoMovePresent
|
||||
DoMovePresent: ; 0x0232B26C
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, r0
|
||||
mov r0, #0x64
|
||||
mov r4, r1
|
||||
mov r7, r2
|
||||
mov r6, r3
|
||||
bl DungeonRandInt
|
||||
cmp r0, #0xa
|
||||
bge _0232B2BC
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, r7
|
||||
mov r3, #0x4b
|
||||
str r6, [sp]
|
||||
bl ov29_02332F18
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0232B2BC:
|
||||
cmp r0, #0x1e
|
||||
bge _0232B30C
|
||||
ldr r1, [r4, #0xb4]
|
||||
ldr r0, _0232B364 ; =0x000003E7
|
||||
ldrsh r2, [r1, #0x12]
|
||||
ldrsh r1, [r1, #0x16]
|
||||
mov ip, #1
|
||||
mov r3, #0
|
||||
add r1, r2, r1
|
||||
cmp r1, r0
|
||||
movgt r1, r0
|
||||
mov r0, r1, asr #1
|
||||
add r2, r1, r0, lsr #30
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, r2, asr #2
|
||||
str ip, [sp]
|
||||
bl TryIncreaseHp
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0232B30C:
|
||||
cmp r0, #0x3c
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bge _0232B340
|
||||
mov r2, r7
|
||||
mov r3, #0x32
|
||||
str r6, [sp]
|
||||
bl ov29_02332F18
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0232B340:
|
||||
mov r2, r7
|
||||
mov r3, #0x19
|
||||
str r6, [sp]
|
||||
bl ov29_02332F18
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232B364: .word 0x000003E7
|
||||
arm_func_end DoMovePresent
|
||||
|
||||
arm_func_start DoMoveEruption
|
||||
DoMoveEruption: ; 0x0232B368
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r5, r2
|
||||
mov r4, r3
|
||||
bl EndFrozenStatus
|
||||
ldr r2, [r7, #0xb4]
|
||||
ldr r3, _0232B42C ; =0x000003E7
|
||||
ldrsh r1, [r2, #0x12]
|
||||
ldrsh r0, [r2, #0x16]
|
||||
add r1, r1, r0
|
||||
cmp r1, r3
|
||||
movle r3, r1
|
||||
ldrsh r0, [r2, #0x10]
|
||||
mov r2, r3, asr #1
|
||||
add r2, r3, r2, lsr #30
|
||||
cmp r0, r2, asr #2
|
||||
movle r2, #0
|
||||
ble _0232B3FC
|
||||
ldr r2, _0232B42C ; =0x000003E7
|
||||
cmp r1, r2
|
||||
movle r2, r1
|
||||
mov r3, r2, lsl #1
|
||||
mov r2, r3, asr #1
|
||||
add r2, r3, r2, lsr #30
|
||||
cmp r0, r2, asr #2
|
||||
movle r2, #1
|
||||
ble _0232B3FC
|
||||
ldr r2, _0232B42C ; =0x000003E7
|
||||
cmp r1, r2
|
||||
movgt r1, r2
|
||||
add r2, r1, r1, lsl #1
|
||||
mov r1, r2, asr #1
|
||||
add r1, r2, r1, lsr #30
|
||||
cmp r0, r1, asr #2
|
||||
movle r2, #2
|
||||
movgt r2, #3
|
||||
_0232B3FC:
|
||||
ldr r1, _0232B430 ; =ERUPTION_DAMAGE_MULT_TABLE
|
||||
mov r0, r7
|
||||
ldr r3, [r1, r2, lsl #2]
|
||||
mov r1, r6
|
||||
mov r2, r5
|
||||
str r4, [sp]
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
movne r0, #1
|
||||
moveq r0, #0
|
||||
and r0, r0, #0xff
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232B42C: .word 0x000003E7
|
||||
_0232B430: .word ERUPTION_DAMAGE_MULT_TABLE
|
||||
arm_func_end DoMoveEruption
|
||||
207
asm/overlay_29_0232B44C.s
Normal file
207
asm/overlay_29_0232B44C.s
Normal file
@@ -0,0 +1,207 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "overlay_29_0232B44C.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start DoMoveTransform
|
||||
DoMoveTransform: ; 0x0232B44C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
bl IsFullFloorFixedRoom
|
||||
cmp r0, #0
|
||||
beq _0232B47C
|
||||
ldr r2, _0232B490 ; =0x00000EED
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_0232B47C:
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl TryTransform
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
#ifdef JAPAN
|
||||
_0232B490: .word 0x00000C2F
|
||||
#else
|
||||
_0232B490: .word 0x00000EED
|
||||
#endif
|
||||
arm_func_end DoMoveTransform
|
||||
|
||||
arm_func_start DoMovePoisonTail
|
||||
DoMovePoisonTail: ; 0x0232B494
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
str r3, [sp]
|
||||
mov r3, #0x100
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232B4F0
|
||||
ldr r1, _0232B4FC ; =POISON_TAIL_POISON_CHANCE
|
||||
mov r0, r6
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r5
|
||||
mov r4, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232B4F0
|
||||
mov r2, #0
|
||||
mov r0, r6
|
||||
mov r1, r5
|
||||
mov r3, r2
|
||||
bl TryInflictPoisonedStatus
|
||||
_0232B4F0:
|
||||
mov r0, r4
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0232B4FC: .word POISON_TAIL_POISON_CHANCE
|
||||
arm_func_end DoMovePoisonTail
|
||||
|
||||
arm_func_start DoMoveBlowback
|
||||
DoMoveBlowback: ; 0x0232B500
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r2, [r0, #0xb4]
|
||||
ldrb r2, [r2, #0x4c]
|
||||
bl TryBlowAway
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end DoMoveBlowback
|
||||
|
||||
arm_func_start DoMoveCamouflage
|
||||
DoMoveCamouflage: ; 0x0232B518
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
bl AllocateTemp1024ByteBufferFromPool
|
||||
ldr r0, _0232B5B8 ; =DUNGEON_PTR
|
||||
mov r2, #0xc
|
||||
ldr r0, [r0]
|
||||
ldr r3, _0232B5BC ; =ov10_022C6322
|
||||
add r0, r0, #0x4000
|
||||
#ifdef JAPAN
|
||||
ldrsh ip, [r0, #0x30]
|
||||
#else
|
||||
ldrsh ip, [r0, #0xd4]
|
||||
#endif
|
||||
mov r0, r4
|
||||
mov r1, #0x25
|
||||
smulbb r2, ip, r2
|
||||
ldr r7, [r4, #0xb4]
|
||||
ldrb r6, [r3, r2]
|
||||
bl AbilityIsActiveVeneer
|
||||
cmp r0, #0
|
||||
beq _0232B578
|
||||
ldr r2, _0232B5C0 ; =0x00000DC3
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0232B578:
|
||||
strb r6, [r7, #0x5e]
|
||||
mov r2, #0
|
||||
mov r1, r4
|
||||
strb r2, [r7, #0x5f]
|
||||
mov r0, #1
|
||||
strb r0, [r7, #0xff]
|
||||
bl SubstitutePlaceholderStringTags
|
||||
mov r1, r6
|
||||
mov r0, #0
|
||||
bl SetPreprocessorArgsIdVal
|
||||
#ifdef JAPAN
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #0xc30
|
||||
#else
|
||||
ldr r2, _0232B5C4 ; =0x00000EEE
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
#endif
|
||||
bl LogMessageByIdWithPopupCheckUserTarget
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0232B5B8: .word DUNGEON_PTR
|
||||
_0232B5BC: .word ov10_022C6322
|
||||
#ifdef JAPAN
|
||||
_0232B5C0: .word 0x00000B03
|
||||
#else
|
||||
_0232B5C0: .word 0x00000DC3
|
||||
_0232B5C4: .word 0x00000EEE
|
||||
#endif
|
||||
arm_func_end DoMoveCamouflage
|
||||
|
||||
arm_func_start DoMoveTailGlow
|
||||
DoMoveTailGlow: ; 0x0232B5C8
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r2, _0232B5E4 ; =SPATK_STAT_IDX
|
||||
mov r3, #2
|
||||
ldr r2, [r2]
|
||||
bl BoostOffensiveStat
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_0232B5E4: .word SPATK_STAT_IDX
|
||||
arm_func_end DoMoveTailGlow
|
||||
|
||||
arm_func_start DoMoveDamageConstrict10
|
||||
DoMoveDamageConstrict10: ; 0x0232B5E8
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
mov r5, r2
|
||||
ldrh ip, [r5, #4]
|
||||
ldr r2, _0232B69C ; =0x00000123
|
||||
mov r7, r0
|
||||
cmp ip, r2
|
||||
mov r6, r1
|
||||
mov r4, r3
|
||||
mov r8, #0
|
||||
cmpne ip, #0x20c
|
||||
bne _0232B628
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
bl EndFrozenStatus
|
||||
mov sb, #0x13c
|
||||
b _0232B640
|
||||
_0232B628:
|
||||
cmp ip, #0x45
|
||||
moveq sb, #0x75
|
||||
beq _0232B640
|
||||
cmp ip, #0x7d
|
||||
moveq sb, #0x7e
|
||||
movne sb, #0xf1
|
||||
_0232B640:
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, r5
|
||||
mov r3, #0x100
|
||||
str r4, [sp]
|
||||
bl DealDamage
|
||||
cmp r0, #0
|
||||
beq _0232B694
|
||||
ldr r1, _0232B6A0 ; =WHIRLPOOL_CONSTRICTION_CHANCE
|
||||
mov r0, r7
|
||||
ldrsh r2, [r1]
|
||||
mov r1, r6
|
||||
mov r8, #1
|
||||
bl DungeonRandOutcomeUserTargetInteraction
|
||||
cmp r0, #0
|
||||
beq _0232B694
|
||||
mov r0, r7
|
||||
mov r1, r6
|
||||
mov r2, sb
|
||||
mov r3, #0
|
||||
bl TryInflictConstrictionStatus
|
||||
_0232B694:
|
||||
mov r0, r8
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_0232B69C: .word 0x00000123
|
||||
_0232B6A0: .word WHIRLPOOL_CONSTRICTION_CHANCE
|
||||
arm_func_end DoMoveDamageConstrict10
|
||||
1267
asm/overlay_29_0232B6B8.s
Normal file
1267
asm/overlay_29_0232B6B8.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -6,5 +6,6 @@
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveEndure(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
bool8 DoMoveLowerSpeed1(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
|
||||
10
include/overlay_29_02328230.h
Normal file
10
include/overlay_29_02328230.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_02328230_H
|
||||
#define PMDSKY_OVERLAY_29_02328230_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveParalyze__02328230(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveConfuse(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
bool8 DoMoveTaunt(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
|
||||
10
include/overlay_29_023296F8.h
Normal file
10
include/overlay_29_023296F8.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_023296F8_H
|
||||
#define PMDSKY_OVERLAY_29_023296F8_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveWarp(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
@@ -6,5 +6,7 @@
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveBlock(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
bool8 DoMovePoison(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
bool8 DoMoveToxic(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
|
||||
10
include/overlay_29_0232A4E8.h
Normal file
10
include/overlay_29_0232A4E8.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_0232A4E8_H
|
||||
#define PMDSKY_OVERLAY_29_0232A4E8_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveCurse(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
10
include/overlay_29_0232AD08.h
Normal file
10
include/overlay_29_0232AD08.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_0232AD08_H
|
||||
#define PMDSKY_OVERLAY_29_0232AD08_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveLightScreen(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
10
include/overlay_29_0232B434.h
Normal file
10
include/overlay_29_0232B434.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_0232B434_H
|
||||
#define PMDSKY_OVERLAY_29_0232B434_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMoveParalyze__0232B434(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
10
include/overlay_29_0232B6A4.h
Normal file
10
include/overlay_29_0232B6A4.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef PMDSKY_OVERLAY_29_0232B6A4_H
|
||||
#define PMDSKY_OVERLAY_29_0232B6A4_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
#include "item.h"
|
||||
#include "move.h"
|
||||
|
||||
bool8 DoMovePerishSong(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id);
|
||||
|
||||
#endif
|
||||
16
main.lsf
16
main.lsf
@@ -1016,11 +1016,13 @@ Overlay OVY_29
|
||||
Object src/overlay_29_02327928.o
|
||||
Object asm/overlay_29_02327940.o
|
||||
Object src/overlay_29_02327BE0.o
|
||||
Object asm/overlay_29_02327BF0.o
|
||||
Object asm/overlay_29_02327C08.o
|
||||
Object src/overlay_29_02327DD0.o
|
||||
Object asm/overlay_29_02327DE0.o
|
||||
Object src/overlay_29_0232800C.o
|
||||
Object asm/overlay_29_02328030.o
|
||||
Object src/overlay_29_02328230.o
|
||||
Object asm/overlay_29_02328248.o
|
||||
Object src/overlay_29_02328394.o
|
||||
Object asm/overlay_29_023283A4.o
|
||||
Object src/overlay_29_02328528.o
|
||||
@@ -1029,16 +1031,26 @@ Overlay OVY_29
|
||||
Object asm/overlay_29_023293F8.o
|
||||
Object src/overlay_29_02329664.o
|
||||
Object asm/overlay_29_02329674.o
|
||||
Object src/overlay_29_023296F8.o
|
||||
Object asm/overlay_29_02329710.o
|
||||
Object src/overlay_29_02329854.o
|
||||
Object asm/overlay_29_02329868.o
|
||||
Object asm/overlay_29_02329898.o
|
||||
Object src/overlay_29_0232A2AC.o
|
||||
Object asm/overlay_29_0232A2BC.o
|
||||
Object src/overlay_29_0232A3D8.o
|
||||
Object asm/overlay_29_0232A3FC.o
|
||||
Object src/overlay_29_0232A480.o
|
||||
Object asm/overlay_29_0232A490.o
|
||||
Object src/overlay_29_0232A4E8.o
|
||||
Object asm/overlay_29_0232A500.o
|
||||
Object src/overlay_29_0232AC44.o
|
||||
Object asm/overlay_29_0232AC54.o
|
||||
Object src/overlay_29_0232AD08.o
|
||||
Object asm/overlay_29_0232AD18.o
|
||||
Object src/overlay_29_0232B434.o
|
||||
Object asm/overlay_29_0232B44C.o
|
||||
Object src/overlay_29_0232B6A4.o
|
||||
Object asm/overlay_29_0232B6B8.o
|
||||
Object src/overlay_29_0232C500.o
|
||||
Object asm/overlay_29_0232C524.o
|
||||
Object src/overlay_29_0232E250.o
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "overlay_29_02327BE0.h"
|
||||
#include "move_orb_effects.h"
|
||||
|
||||
extern void TryInflictEndureStatus(struct entity *user, struct entity *target);
|
||||
|
||||
@@ -8,3 +9,10 @@ bool8 DoMoveEndure(struct entity* attacker, struct entity* defender, struct move
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DoMoveLowerSpeed1(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
LowerSpeed(attacker, defender, 1, TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
9
src/overlay_29_02328230.c
Normal file
9
src/overlay_29_02328230.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include "overlay_29_02328230.h"
|
||||
#include "move_orb_effects.h"
|
||||
|
||||
bool8 DoMoveParalyze__02328230(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictParalysisStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1,5 +1,14 @@
|
||||
#include "overlay_29_023293E4.h"
|
||||
|
||||
extern void TryInflictConfusedStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck);
|
||||
|
||||
bool8 DoMoveConfuse(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictConfusedStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
extern void TryInflictTauntStatus(struct entity *user, struct entity *target, bool8 onlyCheck);
|
||||
|
||||
bool8 DoMoveTaunt(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
|
||||
10
src/overlay_29_023296F8.c
Normal file
10
src/overlay_29_023296F8.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "overlay_29_023296F8.h"
|
||||
|
||||
extern void TryWarp(struct entity *user, struct entity *target, s32, s32);
|
||||
|
||||
bool8 DoMoveWarp(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryWarp(attacker, defender, 0, 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "overlay_29_02329854.h"
|
||||
|
||||
extern void TryInflictShadowHoldStatus(struct entity *user, struct entity *target, bool8 onlyCheck);
|
||||
extern void TryInflictPoisonedStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck);
|
||||
extern void TryInflictBadlyPoisonedStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck);
|
||||
|
||||
bool8 DoMoveBlock(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
@@ -8,3 +10,17 @@ bool8 DoMoveBlock(struct entity* attacker, struct entity* defender, struct move*
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DoMovePoison(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictPoisonedStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DoMoveToxic(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictBadlyPoisonedStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
10
src/overlay_29_0232A4E8.c
Normal file
10
src/overlay_29_0232A4E8.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "overlay_29_0232A4E8.h"
|
||||
|
||||
extern void TryInflictCurseStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck);
|
||||
|
||||
bool8 DoMoveCurse(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictCurseStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
10
src/overlay_29_0232AD08.c
Normal file
10
src/overlay_29_0232AD08.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "overlay_29_0232AD08.h"
|
||||
|
||||
extern void TryInflictLightScreenStatus(struct entity *user, struct entity *target);
|
||||
|
||||
bool8 DoMoveLightScreen(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictLightScreenStatus(attacker, defender);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
9
src/overlay_29_0232B434.c
Normal file
9
src/overlay_29_0232B434.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include "overlay_29_0232B434.h"
|
||||
#include "move_orb_effects.h"
|
||||
|
||||
bool8 DoMoveParalyze__0232B434(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictParalysisStatus(attacker, defender, TRUE, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
10
src/overlay_29_0232B6A4.c
Normal file
10
src/overlay_29_0232B6A4.c
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "overlay_29_0232B6A4.h"
|
||||
|
||||
extern void TryInflictPerishSongStatus(struct entity *user, struct entity *target, bool8 onlyCheck);
|
||||
|
||||
bool8 DoMovePerishSong(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)
|
||||
{
|
||||
TryInflictPerishSongStatus(attacker, defender, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
Reference in New Issue
Block a user