Split overlay 29 ASM for EU

This commit is contained in:
AnonymousRandomPerson 2023-11-10 00:23:34 -05:00
parent 0571851619
commit 25f1e18638
35 changed files with 3951 additions and 860 deletions

View File

@ -31,6 +31,7 @@
.public GetKeyN2M
.public GetKeyN2MBaseForm
.public GetKeyN2MSwitch
.public GetMonsterName
.public GetPressedButtons
.public GetReleasedStylus
.public GetRngSeed
@ -66,6 +67,17 @@
.public ov00_022C2450
.public ov00_022C24DC
.public ov00_022E2A78
.public ov01_02337B3C
.public ov01_02337BA0
.public ov01_02337C54
.public ov01_02337E0C
.public ov03_0233CAA8
.public ov03_0233CAD8
.public ov03_0233CB10
.public ov03_0233CB3C
.public ov03_0233CDC8
.public ov03_0233CDD8
.public ov03_0233CDE4
.public ov10_022BDADC
.public ov10_022C2528
.public ov11_022E6E68
@ -84,17 +96,6 @@
.public ov11_02310C18
.public ov29_022EA62C
.public ov29_023002F0
.public ov29_02337B3C
.public ov29_02337BA0
.public ov29_02337C54
.public ov29_02337E0C
.public ov29_0233CAA8
.public ov29_0233CAD8
.public ov29_0233CB10
.public ov29_0233CB3C
.public ov29_0233CDC8
.public ov29_0233CDD8
.public ov29_0233CDE4
.public ov29_02347100
.public ov29_02353538
.public OverlayIsLoaded

View File

@ -6,6 +6,7 @@
.public DungeonGetSpriteIndex
.public EntityIsValid__022E1A1C
.public EntityIsValid__022E32E8
.public GetForcedLossReason
.public GetMonsterApparentId
.public GetMonsterName
.public GetSleepAnimationId

View File

@ -25,6 +25,7 @@
.public DungeonRandInt
.public DungeonRngSetPrimary
.public DungeonRngSetSecondary
.public EnableAllLearnableIqSkills
.public EnableIqSkill
.public EndBurnClassStatus
.public EndCringeClassStatus
@ -42,6 +43,7 @@
.public GetApparentWeather
.public GetBodySize
.public GetChebyshevDistance
.public GetConversion2ConvertToType
.public GetDefensiveStatAtLevel
.public GetDirectionTowardsPosition
.public GetExp
@ -55,6 +57,7 @@
.public GetMaxHpAtLevel
.public GetMaxPp
.public GetMaxPpWrapper
.public GetMinimapData
.public GetMobilityType
.public GetMonsterEvoStatus
.public GetMonsterGender
@ -77,6 +80,7 @@
.public GetSpriteIndex__020526EC
.public GetStairsRoom
.public GetStairsSpawnPosition
.public GetStatBoostsForMonsterSummary
.public GetTile
.public GetTileAtEntity
.public GetTileSafe
@ -164,6 +168,8 @@
.public ov29_023159D4
.public ov29_02337EC0
.public ov29_02338F24
.public ov29_02339F88
.public ov29_0233AE00_EU
.public ov29_02344B44
.public ov29_02348100
.public ov29_02349688
@ -183,6 +189,7 @@
.public PointCameraToMonster
.public RandInt
.public RemoveEquivItem
.public RemoveHolderForItemInBag
.public ReplaceWanFromBinFile
.public RestoreAllMovePP
.public SECONDARY_TERRAIN_TYPES
@ -197,12 +204,10 @@
.public ShowPpRestoreEffect
.public StoryRestrictionsEnabled
.public sub_0200F9B4
.public RemoveHolderForItemInBag
.public sub_0201405C
.public sub_02017C50
.public sub_0201C0CC
.public sub_0204AEF0
.public GetConversion2ConvertToType
.public sub_02050FF8
.public sub_02052E2C
.public sub_02053250
@ -211,8 +216,6 @@
.public sub_020566C4
.public sub_020585B4
.public sub_02058674
.public EnableAllLearnableIqSkills
.public GetStatBoostsForMonsterSummary
.public SubFixedPoint
.public SubstitutePlaceholderStringTags
.public TEAM_MEMBER_TABLE_PTR
@ -221,6 +224,7 @@
.public TryInflictPausedStatus
.public UnloadCurrentWazaP
.public UpdateCamera
.public UpdateMapSurveyorFlag
.public UpdateMinimap
.public UpdateStatusIconFlags
.public WAN_TABLE

View File

@ -1,22 +1,16 @@
#pragma once
.public AbilityIsActiveVeneer
.public AddHeldItemToBag
.public AdvanceFrame
.public AnimationDelayOrSomething
.public CalcSpeedStageWrapper
.public CASTFORM_WEATHER_ATTRIBUTE_TABLE
.public CalcSpeedStageWrapper
.public CreateEnemyEntity
.public DIRECTIONS_XY
.public DisplayActions
.public DungeonGetSpriteIndex
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public DungeonRngSetPrimary
.public DungeonRngSetSecondary
.public EnemyEvolution
.public EnsureCanStandCurrentTile
.public EnableAllLearnableIqSkills
.public EntityIsValid__022FC99C
.public EntityIsValid__022FED98
.public ExclusiveItemEffectFlagTest
.public FindClosestUnoccupiedTileWithin2
.public FindFarthestUnoccupiedTileWithin2
@ -41,11 +35,9 @@
.public GetMonsterLevelToSpawn
.public GetTile
.public GetType
.public HasHeldItem
.public InflictSleepStatusSingle
.public InitEnemyStatsAndMoves
.public InitStandardItem
.public IqSkillIsEnabled
.public IsBagFull
.public IsCurrentFixedRoomBossFight
.public IsCurrentMissionType
@ -53,23 +45,23 @@
.public IsDestinationFloorWithFleeingOutlaw
.public IsDestinationFloorWithHiddenOutlaw
.public IsDestinationFloorWithMonster
.public IsFloorOver
.public IsInvalidSpawnTile
.public IsOutlawMonsterHouseFloor
.public IsSecretBazaarNpcBehavior
.public ItemZInit
.public LogMessageByIdWithPopupCheckUser
.public MemZero
.public MewSpawnCheck
.public MoveMonsterToPos
.public MultiplyByFixedPoint
.public OUTLAW_LEVEL_TABLE
.public SetTargetMonsterNotFoundFlag
.public ShuffleHiddenPower
.public UpdateEntityPixelPos
.public UpdateStatusIconFlags
.public ov10_022C4520
.public ov10_022C45A4
.public ov10_022C4858
.public ov10_022C489C
.public ov10_022C4F3C
.public ov10_022C4F3D
.public ov29_022DDA54
.public ov29_022DDB68
.public ov29_022DEA10
@ -82,67 +74,20 @@
.public ov29_022E1F34
.public ov29_022E2018
.public ov29_022E2DFC
.public ov29_022E3A58
.public ov29_022E5D68
.public ov29_022E6644
.public ov29_022E81F8
.public ov29_022E9628
.public ov29_022EB944
.public ov29_022EC85C
.public ov29_022EF9BC
.public ov29_022EFAE8
.public ov29_022F3890
.public ov29_022F4350
.public ov29_022F4370
.public ov29_022F44F0
.public ov29_022F45CC
.public ov29_022F48D8
.public ov29_022F49E0
.public ov29_022F4BDC
.public ov29_022F4BF8
.public ov29_022F4DAC
.public ov29_022F505C
.public ov29_022F52B0
.public ov29_022F59C4
.public ov29_022F5F18
.public ov29_022F6058
.public ov29_022F9840
.public ov29_022F996C
.public ov29_022F9EA0
.public ov29_022FA1D8
.public ov29_022FB83C
.public ov29_022FBA70
.public ov29_022FBC4C
.public ov29_022FBD08
.public ov29_022FBF08
.public ov29_022FBF30
.public ov29_022FC468
.public ov29_022FEDBC
.public ov29_022FEFC8
.public ov29_022FFC9C
.public ov29_02300DCC
.public ov29_02300E78
.public ov29_023021F0
.public ov29_02302368
.public ov29_02304A48
.public ov29_02304D20
.public ov29_02307DC0
.public ov29_023085DC
.public ov29_0230F140
.public ov29_0230F14C
.public ov29_0230F158
.public ov29_0230FC24
.public ov29_02318D58
.public ov29_0231A8A0
.public ov29_0231A9F8
.public ov29_0232461C
.public ov29_02337CCC
.public ov29_02338708
.public ov29_02338850
.public ov29_02338898
.public ov29_02346888
.public ov29_0234B024
.public ov29_0234BA54
.public ov29_0235171E
.public ov29_02351E28
.public ov29_0235276C
@ -150,19 +95,6 @@
.public ov29_0235355C
.public ov29_0237C690
.public ov29_0237C9C0
.public ov29_0237CA68
.public ov29_0237CA6C
.public SetTargetMonsterNotFoundFlag
.public ShuffleHiddenPower
.public sub_02050FF8
.public sub_02054FEC
.public sub_02055020
.public EnableAllLearnableIqSkills
.public SubstitutePlaceholderStringTags
.public TryActivateFlashFireOnAllMonsters
.public TrySpawnTrapperTrap
.public TryTriggerTrap
.public UpdateEntityPixelPos
.public UpdateStatusIconFlags
.public UseSingleUseItemWrapper
.public UseThrowableItem

View File

@ -0,0 +1,74 @@
#pragma once
.public AbilityIsActiveVeneer
.public AdvanceFrame
.public AnimationDelayOrSomething
.public DIRECTIONS_XY
.public DisplayActions
.public EnemyEvolution
.public EnsureCanStandCurrentTile
.public EntityIsValid__022FED98
.public HasHeldItem
.public IqSkillIsEnabled
.public IsFloorOver
.public LogMessageByIdWithPopupCheckUser
.public MoveMonsterToPos
.public SubstitutePlaceholderStringTags
.public TryActivateFlashFireOnAllMonsters
.public TrySpawnTrapperTrap
.public TryTriggerTrap
.public UseSingleUseItemWrapper
.public UseThrowableItem
.public ov10_022C4F3C
.public ov10_022C4F3D
.public ov29_022E3A58
.public ov29_022E5D68
.public ov29_022E81F8
.public ov29_022EB944
.public ov29_022EC85C
.public ov29_022EF9BC
.public ov29_022F3890
.public ov29_022F4350
.public ov29_022F4370
.public ov29_022F44F0
.public ov29_022F45CC
.public ov29_022F48D8
.public ov29_022F49E0
.public ov29_022F4BDC
.public ov29_022F4BF8
.public ov29_022F4DAC
.public ov29_022F505C
.public ov29_022F52B0
.public ov29_022F59C4
.public ov29_022F5F18
.public ov29_022F6058
.public ov29_022F9840
.public ov29_022F996C
.public ov29_022FBD08
.public ov29_022FEDBC
.public ov29_022FEFC8
.public ov29_022FFC9C
.public ov29_02300DCC
.public ov29_02300E78
.public ov29_02302368
.public ov29_02304D20
.public ov29_023085DC
.public ov29_0230F140
.public ov29_0230F14C
.public ov29_0230F158
.public ov29_0230FC24
.public ov29_02318D58
.public ov29_0231A8A0
.public ov29_0231A9F8
.public ov29_0232461C
.public ov29_02337CCC
.public ov29_02338708
.public ov29_02338850
.public ov29_02338898
.public ov29_02346888
.public ov29_0234B024
.public ov29_0234BA54
.public ov29_0235171E
.public ov29_02353538
.public ov29_0237C9C0
.public ov29_0237CA68
.public ov29_0237CA6C

View File

@ -80,6 +80,7 @@
.public ov29_022F04F0
.public ov29_022F0518
.public ov29_022F9EA0
.public ov29_022FB920
.public ov29_022FB9BC
.public ov29_02300B40
.public ov29_02304830

View File

@ -65,6 +65,7 @@
.public ov29_022E1AD4
.public ov29_022E1EF8
.public ov29_022E3430
.public ov29_022E34A8_EU
.public ov29_022E6770
.public ov29_022E6784
.public ov29_022E8104
@ -90,7 +91,6 @@
.public ov29_0231F6E4
.public ov29_02332F18
.public ov29_02336694
.public TryActivateGravity
.public ov29_0234B084
.public ov29_0234B0B4
.public ov29_0234BA54
@ -113,6 +113,7 @@
.public THUNDER_FANG_CRINGE_CHANCE
.public THUNDER_FANG_PARALYZE_CHANCE
.public TransferNegativeStatusCondition
.public TryActivateGravity
.public TryActivateIdentifyCondition
.public TryActivateWeather
.public TryDecreaseBelly

View File

@ -9,6 +9,7 @@
.public Conversion2IsActive
.public DebugPrint0
.public DIRECTIONS_XY
.public DisplayCharTextureUi
.public DrawMinimapTile
.public DungeonGetSpriteIndex
.public DungeonGoesUp

View File

@ -63879,7 +63879,7 @@ sub_0203F9CC: ; 0x0203F9CC
ldr r4, [r5, #0xb4]
ldr r0, _0203FA54 ; =_022AAE00
mov r1, r4
bl ov11_023001F4
bl GetMonsterName
ldr r0, _0203FA58 ; =_022AAE2A
add r1, r4, #0x124
mov r2, #0x22
@ -116218,7 +116218,7 @@ _02069E78:
_02069E84:
add r4, r5, #0x58
add r5, r5, #0x90
bl ov29_0233CAA8
bl ov03_0233CAA8
cmp r0, #1
bne _02069F90
ldr r0, _0206A5E0 ; =_020B0B48
@ -116277,7 +116277,7 @@ _02069E84:
_02069F6C:
add r0, r5, #4
mov r1, #0x14
bl ov29_02337B3C
bl ov01_02337B3C
ldr r1, _0206A5E0 ; =_020B0B48
strb r0, [r5, #3]
ldr r0, [r1]
@ -116285,7 +116285,7 @@ _02069F6C:
str r1, [r0]
b _0206A5D4
_02069F90:
bl ov29_0233CAA8
bl ov03_0233CAA8
cmp r0, #0
bne _0206A5D4
ldr r0, _0206A5E0 ; =_020B0B48
@ -116349,7 +116349,7 @@ _02069F90:
bl GetMainTeamNameWithCheck
add r0, r4, #4
mov r1, #0x34
bl ov29_02337B3C
bl ov01_02337B3C
strb r0, [r4, #3]
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0x1000
@ -116373,17 +116373,17 @@ _0206A0AC:
strh r2, [sp, #0xc4]
strb r1, [sp, #0xc6]
str r4, [sp, #0xc8]
bl ov29_02337BA0
bl ov01_02337BA0
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A5E4 ; =0x00001001
ldr r0, [r0]
str r1, [r0]
b _0206A5D4
_0206A104:
bl ov29_02337E0C
bl ov01_02337E0C
movs r4, r0
beq _0206A5D4
bl ov29_02337C54
bl ov01_02337C54
cmp r4, #0xe
addls pc, pc, r4, lsl #2
b _0206A5D4
@ -116404,7 +116404,7 @@ _0206A120: ; jump table
b _0206A380 ; case 13
b _0206A380 ; case 14
_0206A15C:
bl ov29_0233CAA8
bl ov03_0233CAA8
cmp r0, #1
bne _0206A300
ldr r0, _0206A5E0 ; =_020B0B48
@ -116419,7 +116419,7 @@ _0206A15C:
beq _0206A1B0
ldr r1, _0206A5F8 ; =0x000037A8
mov r0, #0x1c
bl ov29_0233CDC8
bl ov03_0233CDC8
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A5FC ; =0x00002001
ldr r0, [r0]
@ -116454,7 +116454,7 @@ _0206A204:
add r2, sp, #0x1bc
mov r0, #0x1c
str r3, [sp, #0x1f4]
bl ov29_0233CDD8
bl ov03_0233CDD8
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0
ldr r0, [r0]
@ -116499,7 +116499,7 @@ _0206A2AC:
add r2, sp, #0x16c
mov r0, #0x1c
str r3, [sp, #0x1a4]
bl ov29_0233CDD8
bl ov03_0233CDD8
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0
ldr r0, [r0]
@ -116517,7 +116517,7 @@ _0206A2EC:
str r1, [r0]
b _0206A5D4
_0206A300:
bl ov29_0233CAA8
bl ov03_0233CAA8
cmp r0, #0
bne _0206A5D4
add r0, sp, #0x11c
@ -116545,7 +116545,7 @@ _0206A354:
add r2, sp, #0x11c
mov r0, #0x1c
str r3, [sp, #0x154]
bl ov29_0233CDD8
bl ov03_0233CDD8
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0x8000
ldr r0, [r0]
@ -116555,17 +116555,17 @@ _0206A380:
mov r0, #1
b _0206A5D8
_0206A388:
bl ov29_0233CAD8
bl ov03_0233CAD8
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A5E8 ; =0x00003001
ldr r0, [r0]
str r1, [r0]
b _0206A5D4
_0206A3A0:
bl ov29_0233CB3C
bl ov03_0233CB3C
cmp r0, #2
bne _0206A450
bl ov29_0233CB10
bl ov03_0233CB10
add r0, sp, #0xcc
bl InitPreprocessorArgs
ldr r0, _0206A5E0 ; =_020B0B48
@ -116597,7 +116597,7 @@ _0206A410:
add r2, sp, #0xcc
mov r0, #0x1c
str r3, [sp, #0x104]
bl ov29_0233CDD8
bl ov03_0233CDD8
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0
ldr r0, [r0]
@ -116611,11 +116611,11 @@ _0206A410:
_0206A450:
cmp r0, #1
bne _0206A5D4
bl ov29_0233CB10
bl ov03_0233CB10
mov r0, #1
b _0206A5D8
_0206A464:
bl ov29_0233CDE4
bl ov03_0233CDE4
mov r4, r0
bl sub_020698B8
cmp r4, #0x12
@ -116627,7 +116627,7 @@ _0206A464:
str r1, [r0]
b _0206A5D4
_0206A490:
bl ov29_0233CDE4
bl ov03_0233CDE4
cmp r0, #0x12
bne _0206A5D4
mov r0, #1
@ -116635,14 +116635,14 @@ _0206A490:
_0206A4A4:
ldr r1, _0206A60C ; =0x0000023B
mov r0, #0
bl ov29_0233CDC8
bl ov03_0233CDC8
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A610 ; =0x00004002
ldr r0, [r0]
str r1, [r0]
b _0206A5D4
_0206A4C4:
bl ov29_0233CDE4
bl ov03_0233CDE4
cmp r0, #0x12
bne _0206A5D4
mov r0, #0xe0
@ -116671,11 +116671,11 @@ _0206A4F8:
mov r0, #0x1c
beq _0206A53C
ldr r1, _0206A618 ; =0x0000379E
bl ov29_0233CDC8
bl ov03_0233CDC8
b _0206A544
_0206A53C:
mov r1, #0x23c
bl ov29_0233CDC8
bl ov03_0233CDC8
_0206A544:
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A61C ; =0x00004003
@ -116688,32 +116688,32 @@ _0206A558:
beq _0206A5D8
ldr r1, _0206A620 ; =0x00000239
mov r0, #0x1c
bl ov29_0233CDC8
bl ov03_0233CDC8
ldr r0, _0206A5E0 ; =_020B0B48
ldr r1, _0206A5EC ; =0x00004004
ldr r0, [r0]
str r1, [r0]
b _0206A5D4
_0206A584:
bl ov29_0233CDE4
bl ov03_0233CDE4
cmp r0, #0x12
bne _0206A5D4
ldr r1, _0206A624 ; =0x000037A0
mov r0, #0x1c
bl ov29_0233CDC8
bl ov03_0233CDC8
ldr r0, _0206A5E0 ; =_020B0B48
mov r1, #0x8000
ldr r0, [r0]
str r1, [r0]
b _0206A5D4
_0206A5B0:
bl ov29_0233CDE4
bl ov03_0233CDE4
cmp r0, #0x12
bne _0206A5D4
mov r0, #1
b _0206A5D8
_0206A5C4:
bl ov29_0233CDE4
bl ov03_0233CDE4
cmp r0, #0x12
moveq r0, #2
beq _0206A5D8
@ -116747,12 +116747,12 @@ _0206A624: .word 0x000037A0
sub_0206A628: ; 0x0206A628
stmdb sp!, {r4, lr}
mov r4, r0
bl ov29_0233CAA8
bl ov03_0233CAA8
cmp r0, #1
bne _0206A70C
add r0, r4, #4
mov r1, #0x34
bl ov29_02337B3C
bl ov01_02337B3C
ldrb r1, [r4, #3]
cmp r0, r1
movne r0, #3

View File

@ -1329,6 +1329,32 @@ _022E2B50:
_022E2B64: .word 0x00000A42
arm_func_end SubstitutePlaceholderStringTags
#ifdef EUROPE
arm_func_start ov29_022E34A8_EU
ov29_022E34A8_EU: ; 0x022E34A8
stmdb sp!, {r3, lr}
bl EntityIsValid__022E1A1C
cmp r0, #0
beq _022E34DC
ldr r0, _022E34E8 ; =0x02354138
ldr r0, [r0]
ldrb r0, [r0, #8]
cmp r0, #0
bne _022E34DC
bl GetForcedLossReason
cmp r0, #1
movne r0, #1
bne _022E34E0
_022E34DC:
mov r0, #0
_022E34E0:
and r0, r0, #0xff
ldmia sp!, {r3, pc}
.align 2, 0
_022E34E8: .word 0x02354138
arm_func_end ov29_022E34A8_EU
#endif
arm_func_start ov29_022E2B68
ov29_022E2B68: ; 0x022E2B68
stmdb sp!, {r3, r4, r5, lr}
@ -1510,6 +1536,27 @@ _022E2DD4: .word 0x0001A21C
arm_func_start UpdateMapSurveyorFlag
UpdateMapSurveyorFlag: ; 0x022E2DD8
#ifdef EUROPE
stmdb sp!, {r4, lr}
ldr r1, _022E2DF8 ; =ov29_02353538
mov r0, #0x41
ldr r1, [r1]
add r1, r1, #0x1a000
ldrb r4, [r1, #0x241]
bl TeamMemberHasEnabledIqSkill
ldr r2, _022E2DF8 ; =ov29_02353538
ldr r1, [r2]
add r1, r1, #0x1a000
strb r0, [r1, #0x241]
ldr r0, [r2]
add r0, r0, #0x1a000
ldrb r0, [r0, #0x241]
cmp r4, r0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r4, pc}
#else
stmdb sp!, {r3, lr}
mov r0, #0x41
bl TeamMemberHasEnabledIqSkill
@ -1518,6 +1565,7 @@ UpdateMapSurveyorFlag: ; 0x022E2DD8
add r1, r1, #0x1a000
strb r0, [r1, #0x241]
ldmia sp!, {r3, pc}
#endif
.align 2, 0
_022E2DF8: .word ov29_02353538
arm_func_end UpdateMapSurveyorFlag

View File

@ -4388,10 +4388,6 @@ _022E6E50:
str r3, [r0, ip, lsl #4]
add r0, r0, ip, lsl #4
str r2, [r0, #4]
arm_func_end ov29_022E6E40
arm_func_start ov29_022E6E68
ov29_022E6E68: ; 0x022E6E68
add ip, ip, #1
str r2, [r0, #0xc]
cmp ip, #3
@ -4399,7 +4395,7 @@ ov29_022E6E68: ; 0x022E6E68
bx lr
.align 2, 0
_022E6E7C: .word ov29_02353538
arm_func_end ov29_022E6E68
arm_func_end ov29_022E6E40
arm_func_start ov29_022E6E80
ov29_022E6E80: ; 0x022E6E80
@ -5933,10 +5929,6 @@ ov29_022E8270: ; 0x022E8270
mov r7, r5
str r0, [sp, #0x18]
moveq r0, r5
arm_func_end ov29_022E8270
arm_func_start ov29_022E82CC
ov29_022E82CC: ; 0x022E82CC
ldrneb r0, [r1, #0x245]
cmp r0, #0
bne _022E82E4
@ -6026,7 +6018,7 @@ _022E83FC: .word ov29_02353554
_022E8400: .word ov29_02353538
_022E8404: .word 0x00000229
_022E8408: .word ov29_0237C850
arm_func_end ov29_022E82CC
arm_func_end ov29_022E8270
arm_func_start ov29_022E840C
ov29_022E840C: ; 0x022E840C

View File

@ -63,10 +63,6 @@ _022E96B4:
beq _022E96E8
ldrh r1, [r0]
tst r1, #0x800
arm_func_end ov29_022E9628
arm_func_start ov29_022E96E4
ov29_022E96E4: ; 0x022E96E4
bne _022E97D8
_022E96E8:
cmp r8, #0
@ -169,7 +165,7 @@ _022E9830:
_022E983C:
add sp, sp, #0xe20
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end ov29_022E96E4
arm_func_end ov29_022E9628
arm_func_start FindNearbyUnoccupiedTile
FindNearbyUnoccupiedTile: ; 0x022E9844

View File

@ -751,7 +751,11 @@ ov29_022ED800: ; 0x022ED800
arm_func_start ov29_022ED82C
ov29_022ED82C: ; 0x022ED82C
stmdb sp!, {r4, lr}
#ifdef EUROPE
add r1, r1, #0xc3
#else
add r1, r1, #0xc1
#endif
add r1, r1, #0x3400
mov r1, r1, lsl #0x10
mov r4, r0

View File

@ -181,6 +181,9 @@ _022EE5C4:
orr r0, r0, #8
strb r0, [r2, r1, lsl #6]
_022EE5E8:
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
ldr r1, _022EE624 ; =0x00000309
mov r0, sb

View File

@ -2624,6 +2624,9 @@ _022F2A70:
bl sub_02006B70
_022F2A9C:
bl ov29_022E0B44
#ifdef EUROPE
bl ov29_022F2FE4
#endif
ldr r0, _022F1DE4 ; =ov29_0237C9A4
mov r1, #0
strb r1, [r0, #2]
@ -3519,6 +3522,9 @@ _022F3778:
add r0, r4, #4
mov r1, #1
bl TryLeaderItemPickUp
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_022F37A0:

View File

@ -893,7 +893,9 @@ _022F5E84:
mov r1, #0x25c
mov r2, #0
bl HandleFaint
#ifndef EUROPE
bl UpdateMapSurveyorFlag
#endif
bl ov29_022E8104
bl ov29_022E81F8
mov r0, #0

View File

@ -866,17 +866,54 @@ _022F7F28:
ldmia sp!, {r3, pc}
arm_func_end ov29_022F7F08
#ifdef EUROPE
arm_func_start ov29_022F88E8_EU
ov29_022F88E8_EU: ; 0x022F88E8
stmdb sp!, {r4, lr}
mov r4, r0
cmp r1, #0
beq _022F8900
mov r0, #1
bl ov29_0234B010
_022F8900:
cmp r4, #0
bne _022F892C
bl UpdateMapSurveyorFlag
cmp r0, #0
beq _022F892C
bl ov29_0233AE00_EU
cmp r0, #0
beq _022F892C
mov r0, #1
bl ov29_02339F88
bl GetMinimapData
_022F892C:
bl ov29_022E8104
bl ov29_022E81F8
ldmia sp!, {r4, pc}
arm_func_end ov29_022F88E8_EU
#endif
arm_func_start HandleFaint
HandleFaint: ; 0x022F7F30
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xbc
mov sl, r0
#ifdef EUROPE
ldr r7, [sl, #0xb4]
mov r8, r2
mov sb, r1
#else
mov r8, r2
mov sb, r1
ldr r7, [sl, #0xb4]
#endif
bl GetTileAtEntity
mov r4, r0
cmp r8, #0
#ifdef EUROPE
ldrb r5, [r7, #6]
#endif
bne _022F7F64
add r0, sp, #4
bl ov29_022E2470
@ -890,11 +927,19 @@ _022F7F64:
ldrsh r1, [sl, #6]
bl DrawMinimapTile
mov r5, #0
#ifdef EUROPE
mov r4, #0
mov fp, r4
_022F7F8C:
ldr r0, _022F85D0 ; =ov29_02353538
ldr r0, [r0]
#else
ldr fp, _022F85D0 ; =ov29_02353538
mov r4, r5
_022F7F8C:
ldr r0, [fp]
add r0, r0, r5, lsl #2
#endif
add r0, r0, #0x12000
ldr r6, [r0, #0xb78]
cmp r6, #0
@ -906,10 +951,17 @@ _022F7F8C:
ldr r1, [r6, #0xb4]
ldr r0, [r1, #0x84]
cmp r0, sl
#ifdef EUROPE
streq fp, [r1, #0x84]
_022F7FC4:
add r4, r4, #1
cmp r4, #0x14
#else
streq r4, [r1, #0x84]
_022F7FC4:
add r5, r5, #1
cmp r5, #0x14
#endif
blt _022F7F8C
ldrb r0, [r7, #0xd8]
cmp r0, #2
@ -954,13 +1006,21 @@ _022F8008:
add r0, r0, #0x400
bl ov29_022E2A78
ldr r0, _022F85D0 ; =ov29_02353538
#ifdef EUROPE
mov r1, #0
#endif
ldr r0, [r0]
ldrb r0, [r0, #0x75f]
cmp r0, #0
moveq r0, #1
streqb r0, [r7, #0x165]
#ifdef EUROPE
mov r0, r5
bl ov29_022F88E8_EU
#else
bl ov29_022E8104
bl ov29_022E81F8
#endif
b _022F85C8
_022F8098:
ldrb r0, [r7, #7]
@ -987,9 +1047,15 @@ _022F8098:
mov r1, r0
bl OpenMessageLog
_022F80F4:
#ifdef EUROPE
ldr r2, _022F85D0 ; =ov29_0235353
ldr r3, [r2]
ldrb r0, [r3, #0xa]
#else
ldr r1, _022F85D0 ; =ov29_02353538
ldr r2, [r1]
ldrb r0, [r2, #0xa]
#endif
cmp r0, #0
bne _022F825C
mov r4, #0
@ -1000,6 +1066,28 @@ _022F80F4:
cmp r0, #4
beq _022F8234
ldr r0, _022F85D0 ; =ov29_02353538
#ifdef EUROPE
ldr r0, [r0]
ldrb r1, [r0, #0x790]
cmp r1, #0
bne _022F8234
ldr r2, _022F85D8 ; =0x0000025B
cmp sb, r2
addne r1, r2, #6
cmpne sb, r1
addne r1, r2, #0xb
cmpne sb, r1
addne r1, r2, #2
cmpne sb, r1
beq _022F8234
add r1, r0, #0x4000
ldrb r1, [r1, #0xca]
cmp r1, #0
bne _022F8234
add r0, r0, #0x700
ldrsb r1, [r0, #0x9b]
cmp r1, #0
#else
ldr r2, [r0]
ldrb r0, [r2, #0x790]
cmp r0, #0
@ -1020,12 +1108,17 @@ _022F80F4:
add r0, r2, #0x700
ldrsb r2, [r0, #0x9b]
cmp r2, #0
#endif
blt _022F8234
ldrsb r0, [r0, #0x98]
cmp r0, #3
cmpne r0, #2
beq _022F8234
#ifdef EUROPE
cmp r1, #0
#else
cmp r2, #0
#endif
ble _022F8220
mov r0, r4
mov r3, #1
@ -1039,6 +1132,23 @@ _022F80F4:
mov r0, r4
mov r2, #1
bl DisplayMessage
#ifdef EUROPE
ldr r2, _022F85D0 ; =ov29_02353538
mov r1, #1
ldr r3, [r2]
mov r0, r5
strb r1, [r3, #8]
ldr r3, [r2]
strb r1, [r3, #0xa]
ldr r3, [r2]
strb r1, [r3, #0x758]
ldr r3, [r2]
add r2, r3, #0x700
ldrsb r2, [r2, #0x9b]
sub r2, r2, #1
strb r2, [r3, #0x79b]
bl ov29_022F88E8_EU
#else
ldr r1, _022F85D0 ; =ov29_02353538
mov r0, #1
ldr r2, [r1]
@ -1055,6 +1165,7 @@ _022F80F4:
bl ov29_0234B010
bl ov29_022E8104
bl ov29_022E81F8
#endif
b _022F85C8
_022F8208:
cmp r0, #2
@ -1064,7 +1175,11 @@ _022F8208:
mov r4, r0
b _022F8240
_022F8220:
#ifdef EUROPE
rsb r1, r2, #0xe70
#else
rsb r1, r1, #0xe70
#endif
mov r0, r4
mov r2, #1
bl DisplayMessage2
@ -1082,6 +1197,16 @@ _022F8240:
bl ov29_022E68BC
b _022F8284
_022F825C:
#ifdef EUROPE
mov r1, #1
strb r1, [r3, #8]
ldr r3, [r2]
mov r0, r5
strb r1, [r3, #0xa]
ldr r2, [r2]
strb r1, [r2, #0x758]
bl ov29_022F88E8_EU
#else
mov r0, #1
strb r0, [r2, #8]
ldr r2, [r1]
@ -1091,6 +1216,7 @@ _022F825C:
bl ov29_0234B010
bl ov29_022E8104
bl ov29_022E81F8
#endif
b _022F85C8
_022F8284:
ldr r0, _022F85E4 ; =0x00000266
@ -1115,12 +1241,21 @@ _022F82C8:
ldr r0, _022F85E8 ; =0x0000025E
cmp sb, r0
bne _022F83B4
#ifdef EUROPE
mov r6, #0
mov r4, r6
ldr fp, _022F85D0 ; =ov29_02353538
b _022F8328
_022F82E4:
ldr r0, [fp]
#else
mov r5, #0
mov r4, r5
ldr r6, _022F85D0 ; =ov29_02353538
b _022F8328
_022F82E4:
ldr r0, [r6]
#endif
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
ldr r8, [r0, #0xb28]
@ -1128,11 +1263,19 @@ _022F82E4:
bl EntityIsValid__022F7364
cmp r0, #0
beq _022F8324
#ifdef EUROPE
ldr r6, [r8, #0xb4]
ldrsh r0, [r6, #0x10]
cmp r0, #0
bne _022F8324
ldrb r0, [r6, #0x48]
#else
ldr r5, [r8, #0xb4]
ldrsh r0, [r5, #0x10]
cmp r0, #0
bne _022F8324
ldrb r0, [r5, #0x48]
#endif
bl JoinedAtRangeCheck2
cmp r0, #0
bne _022F8330
@ -1142,6 +1285,15 @@ _022F8328:
cmp r4, #4
blt _022F82E4
_022F8330:
#ifdef EUROPE
cmp r6, #0
beq _022F83B4
ldrsh r0, [r6, #0xc]
bl GetActiveTeamMember
mov r4, r0
ldrsh r0, [r6, #0xc]
mov r1, r6
#else
cmp r5, #0
beq _022F83B4
ldrsh r0, [r5, #0xc]
@ -1149,6 +1301,7 @@ _022F8330:
mov r4, r0
ldrsh r0, [r5, #0xc]
mov r1, r5
#endif
bl ov29_022FE048
ldrsh r0, [r4, #8]
bl IsMonsterIdInNormalRange
@ -1166,7 +1319,11 @@ _022F8330:
ldrsb r0, [r0, #0x98]
cmp r0, #3
beq _022F83A8
#ifdef EUROPE
ldrsh r0, [r6, #0xc]
#else
ldrsh r0, [r5, #0xc]
#endif
mvn r1, #0
bl sub_02058674
ldrsh r0, [r4, #8]
@ -1276,10 +1433,17 @@ _022F84AC:
bl sub_0205349C
_022F8528:
ldrb r0, [r7, #7]
#ifdef EUROPE
mov r6, #0
cmp r0, #0
ldr r0, _022F85D0 ; =ov29_02353538
movne r6, #1
#else
mov r5, #0
cmp r0, #0
ldr r0, _022F85D0 ; =ov29_02353538
movne r5, #1
#endif
ldr r0, [r0]
ldrb r0, [r0, #0x75c]
cmp r0, #0
@ -1287,9 +1451,15 @@ _022F8528:
ldrb r0, [r7, #0x48]
bl JoinedAtRangeCheck2
cmp r0, #0
#ifdef EUROPE
movne r6, #1
_022F855C:
cmp r6, #0
#else
movne r5, #1
_022F855C:
cmp r5, #0
#endif
bne _022F856C
ldrsh r0, [r4, #8]
bl sub_020566C4
@ -1316,8 +1486,14 @@ _022F8594:
strb r1, [r0, #0xe]
str r2, [sl]
bl ov29_022E2978
#ifdef EUROPE
mov r0, r5
mov r1, #0
bl ov29_022F88E8_EU
#else
bl ov29_022E8104
bl ov29_022E81F8
#endif
_022F85C8:
add sp, sp, #0xbc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@ -5137,6 +5313,29 @@ _022FB91C: .word 0x000003E7
arm_func_start ov29_022FB920
ov29_022FB920: ; 0x022FB920
#ifdef EUROPE
stmdb sp!, {r4, r5, r6, lr}
ldr r5, _022FB980 ; =ov29_02353538
mov r4, r0
mov r6, #0
_022FC33C_EU:
ldr r0, [r5]
add r0, r0, r6, lsl #2
add r0, r0, #0x12000
ldr r0, [r0, #0xb28]
bl ov29_022FB718
add r0, r6, #1
mov r0, r0, lsl #0x10
mov r6, r0, asr #0x10
cmp r6, #4
blt _022FC33C_EU
bl TeamMemberHasEnabledIqSkill
cmp r0, #0
cmpne r4, #0
ldmeqia sp!, {r4, r5, r6, pc}
bl GetMinimapData
ldmia sp!, {r4, r5, r6, pc}
#else
stmdb sp!, {r3, r4, r5, lr}
ldr r4, _022FB980 ; =ov29_02353538
mov r5, #0
@ -5162,6 +5361,7 @@ _022FB92C:
add r0, r0, #0x1a000
strb r1, [r0, #0x241]
ldmia sp!, {r3, r4, r5, pc}
#endif
.align 2, 0
_022FB980: .word ov29_02353538
arm_func_end ov29_022FB920

View File

@ -1906,635 +1906,3 @@ ov29_022FE4A8: ; 0x022FE4A8
.align 2, 0
_022FE4B8: .word ov29_0237C9C0
arm_func_end ov29_022FE4A8
arm_func_start ExecuteMonsterAction
ExecuteMonsterAction: ; 0x022FE4BC
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
mov sb, r0
mov r0, #1
bl AnimationDelayOrSomething
bl ov29_022FBD08
mov r0, #1
bl ov29_0234B024
ldr r6, [sb, #0xb4]
mov r1, #0
strb r1, [r6, #0x109]
ldr r0, _022FED70 ; =ov29_02353538
strb r1, [r6, #0xfc]
ldr r1, [r0]
ldr r0, _022FED74 ; =ov10_022C4F3C
str sb, [r1, #0xc4]
ldrh r2, [r6, #0x4a]
ldrb r0, [r0, r2, lsl #1]
cmp r0, #0
beq _022FE538
ldrb r0, [r6, #7]
cmp r0, #0
beq _022FE528
ldr r1, _022FED78 ; =ov10_022C4F3D
mov r0, sb
ldrb r1, [r1, r2, lsl #1]
bl ov29_022F3890
b _022FE538
_022FE528:
ldr r1, _022FED78 ; =ov10_022C4F3D
mov r0, sb
ldrb r1, [r1, r2, lsl #1]
bl ov29_023085DC
_022FE538:
mov r0, sb
mov r1, #0
bl ov29_02300DCC
cmp r0, #0
beq _022FE568
mov r0, sb
mov r1, #1
bl ov29_0232461C
cmp r0, #0
beq _022FE568
mov r0, sb
bl ov29_02318D58
_022FE568:
mov r4, #0
add r3, r6, #0x124
mov r1, r4
mov r2, #1
_022FE578:
ldrb r0, [r3, r4, lsl #3]
add r5, r3, r4, lsl #3
add r4, r4, #1
tst r0, #1
movne r0, r2
moveq r0, r1
tst r0, #0xff
ldrneh r0, [r5, #2]
bicne r0, r0, #4
strneh r0, [r5, #2]
cmp r4, #4
blt _022FE578
bl ov29_022E81F8
mov r0, sb
mov r1, #0
bl ov29_022EB944
cmp r0, #0
bne _022FE638
mov r0, sb
bl DisplayActions
cmp r0, #0
beq _022FE608
bl IsFloorOver
cmp r0, #0
movne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r0, _022FED7C ; =ov29_0237C9C0
ldrb r0, [r0, #1]
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_022FE608:
ldrb r0, [r6, #7]
cmp r0, #0
bne _022FE61C
mov r0, #0xa
bl ov29_0234BA54
_022FE61C:
ldrb r0, [r6, #0x23c]
cmp r0, #0
bne _022FE630
mov r0, sb
bl ov29_022F9840
_022FE630:
mov r0, #0xa
bl AdvanceFrame
_022FE638:
mov r0, #0
strb r0, [r6, #0x23c]
ldrh r0, [r6, #0x4a]
mov r4, #0
ldr r1, _022FED80 ; =ov29_0237CA6C
cmp r0, #1
cmpne r0, #0
cmpne r0, #4
cmpne r0, #2
movne r0, #1
strneb r0, [r6, #0x152]
strb r4, [r6, #0x154]
ldr r0, _022FED84 ; =ov29_0237CA68
strb r4, [r1]
strb r4, [r0]
mov r1, #1
strb r1, [r6, #0x103]
ldrh r0, [r6, #0x4a]
cmp r0, #0x42
addls pc, pc, r0, lsl #2
b _022FEBAC
_022FE68C: ; jump table
b _022FEBAC ; case 0
b _022FEBAC ; case 1
b _022FE798 ; case 2
b _022FEBAC ; case 3
b _022FEBAC ; case 4
b _022FEBAC ; case 5
b _022FEBAC ; case 6
b _022FEBAC ; case 7
b _022FEAA4 ; case 8
b _022FEA30 ; case 9
b _022FEAB0 ; case 10
b _022FEAC8 ; case 11
b _022FEBAC ; case 12
b _022FEA08 ; case 13
b _022FEA08 ; case 14
b _022FEBAC ; case 15
b _022FEA20 ; case 16
b _022FEBAC ; case 17
b _022FEA08 ; case 18
b _022FEB0C ; case 19
b _022FEB18 ; case 20
b _022FE99C ; case 21
b _022FEBAC ; case 22
b _022FEB24 ; case 23
b _022FEBAC ; case 24
b _022FEBAC ; case 25
b _022FEBAC ; case 26
b _022FEBAC ; case 27
b _022FEBAC ; case 28
b _022FEBAC ; case 29
b _022FEBAC ; case 30
b _022FEBAC ; case 31
b _022FEBAC ; case 32
b _022FEBAC ; case 33
b _022FEBAC ; case 34
b _022FEB68 ; case 35
b _022FEB74 ; case 36
b _022FEB44 ; case 37
b _022FE9A8 ; case 38
b _022FEAC8 ; case 39
b _022FEBAC ; case 40
b _022FEBAC ; case 41
b _022FEBAC ; case 42
b _022FEBAC ; case 43
b _022FEA28 ; case 44
b _022FEBAC ; case 45
b _022FEBAC ; case 46
b _022FEBAC ; case 47
b _022FEBAC ; case 48
b _022FEA14 ; case 49
b _022FEB34 ; case 50
b _022FEBAC ; case 51
b _022FEBAC ; case 52
b _022FEBAC ; case 53
b _022FEA3C ; case 54
b _022FEA48 ; case 55
b _022FEA60 ; case 56
b _022FEB80 ; case 57
b _022FEABC ; case 58
b _022FEA84 ; case 59
b _022FEA6C ; case 60
b _022FEA78 ; case 61
b _022FEA54 ; case 62
b _022FEB5C ; case 63
b _022FEBAC ; case 64
b _022FEAC8 ; case 65
b _022FEBA0 ; case 66
_022FE798:
ldrb r0, [r6, #0xc4]
cmp r0, #2
cmpne r0, #7
beq _022FE7B8
add r0, r0, #0xfd
and r0, r0, #0xff
cmp r0, #2
bhi _022FE818
_022FE7B8:
mov r0, #0
strh r0, [r6, #0x4a]
mov r0, #1
strb r0, [r6, #0x151]
ldrb r0, [r6, #7]
cmp r0, #0
beq _022FEBB4
ldr r0, _022FED70 ; =ov29_02353538
ldr r0, [r0]
add r0, r0, #0x100
ldrsh r0, [r0, #0xd8]
cmp r0, #0
blt _022FE7F4
mov r0, #0x56
bl AdvanceFrame
_022FE7F4:
ldr r1, _022FED70 ; =ov29_02353538
mvn r2, #0
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xd8]
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xda]
b _022FEBB4
_022FE818:
ldrb r1, [r6, #0x4c]
ldrh r3, [r6]
ldr r2, _022FED88 ; =DIRECTIONS_XY
mov r8, r1, lsl #2
ldr r0, _022FED8C ; =ov29_0235171E
ldrsh ip, [sb, #4]
ldrsh r7, [r2, r8]
ldrsh r5, [sb, #6]
ldrsh r2, [r0, r8]
add r0, ip, r7
mov r0, r0, lsl #0x10
add r2, r5, r2
mov r2, r2, lsl #0x10
mov r5, r4
tst r3, #0x8000
mov r7, r0, asr #0x10
mov r8, r2, asr #0x10
bne _022FE870
mov r0, sb
bl ov29_02300E78
cmp r0, #0
moveq r5, #1
_022FE870:
cmp r5, #0
beq _022FE8D8
mov r0, #0
strh r0, [r6, #0x4a]
mov r0, #1
strb r0, [r6, #0x151]
ldrb r0, [r6, #7]
cmp r0, #0
beq _022FEBB4
ldr r0, _022FED70 ; =ov29_02353538
ldr r0, [r0]
add r0, r0, #0x100
ldrsh r0, [r0, #0xd8]
cmp r0, #0
blt _022FE8B4
mov r0, #0x56
bl AdvanceFrame
_022FE8B4:
ldr r1, _022FED70 ; =ov29_02353538
mvn r2, #0
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xd8]
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xda]
b _022FEBB4
_022FE8D8:
ldrsh r2, [sb, #4]
mov r0, sb
mov r1, r7
strh r2, [sp]
ldrsh r4, [sb, #6]
mov r2, r8
mov r3, #0
strh r4, [sp, #2]
bl MoveMonsterToPos
ldrb r1, [r6, #0x4c]
add r2, sp, #0
mov r0, sb
bl ov29_02304D20
mov r0, sb
mov r1, #0xd
bl IqSkillIsEnabled
cmp r0, #0
ldrneb r0, [r6, #0xef]
cmpne r0, #3
beq _022FE95C
mov r0, sb
mov r1, #0x6f
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
bne _022FE94C
mov r0, sb
mov r1, #0x10
bl HasHeldItem
_022FE94C:
cmp r0, #0
bne _022FE95C
add r0, sb, #4
bl ov29_02337CCC
_022FE95C:
ldrb r0, [r6, #7]
mov r4, #1
cmp r0, #0
beq _022FEBB4
ldrb r0, [r6, #0xd0]
cmp r0, #2
bne _022FEBB4
ldr r1, _022FED70 ; =ov29_02353538
sub r2, r4, #2
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xd8]
ldr r0, [r1]
add r0, r0, #0x100
strh r2, [r0, #0xda]
b _022FEBB4
_022FE99C:
mov r0, sb
bl ov29_0231A8A0
b _022FEBB4
_022FE9A8:
bl ov29_022E5D68
ldr r0, _022FED70 ; =ov29_02353538
mov r2, #1
ldr r0, [r0]
ldr r1, _022FED7C ; =ov29_0237C9C0
strb r2, [r0, #6]
ldrb r2, [r6, #0x4c]
add r0, sb, #4
strb r2, [r1]
bl ov29_02338708
cmp r0, #0
beq _022FEBB4
bl ov29_02338850
cmp r0, #1
bne _022FE9F0
mov r0, #1
bl ov29_02338898
b _022FEBB4
_022FE9F0:
bl ov29_02338850
cmp r0, #2
bne _022FEBB4
mov r0, #2
bl ov29_02338898
b _022FEBB4
_022FEA08:
mov r0, sb
bl UseSingleUseItemWrapper
b _022FEBB4
_022FEA14:
mov r0, sb
bl ov29_0231A9F8
b _022FEBB4
_022FEA20:
strh r1, [r6, #0x4a]
b _022FEBB4
_022FEA28:
strh r1, [r6, #0x4a]
b _022FEBB4
_022FEA30:
mov r0, sb
bl ov29_022F4350
b _022FEBB4
_022FEA3C:
mov r0, sb
bl ov29_022F45CC
b _022FEBB4
_022FEA48:
mov r0, sb
bl ov29_022F48D8
b _022FEBB4
_022FEA54:
mov r0, sb
bl ov29_022F49E0
b _022FEBB4
_022FEA60:
mov r0, sb
bl ov29_022F4BDC
b _022FEBB4
_022FEA6C:
mov r0, sb
bl ov29_022F4370
b _022FEBB4
_022FEA78:
mov r0, sb
bl ov29_022F44F0
b _022FEBB4
_022FEA84:
ldr r0, _022FED70 ; =ov29_02353538
ldrb r1, [r6, #0x4e]
ldr r2, [r0]
add r0, r2, r1, lsl #2
add r0, r0, #0x12000
ldr r0, [r0, #0xb28]
str r0, [r2, #0xc8]
b _022FEBB4
_022FEAA4:
mov r0, sb
bl ov29_022F4BF8
b _022FEBB4
_022FEAB0:
mov r0, sb
bl ov29_022F4DAC
b _022FEBB4
_022FEABC:
mov r0, sb
bl ov29_022F505C
b _022FEBB4
_022FEAC8:
mov r0, r6
bl ov29_02302368
cmp r0, #0
beq _022FEAEC
mov r0, sb
bl ov29_022F996C
mov r0, sb
bl UseThrowableItem
b _022FEBB4
_022FEAEC:
mov r0, r4
mov r1, sb
mov r2, r0
bl SubstitutePlaceholderStringTags
mov r0, sb
mov r1, #0xdf0
bl LogMessageByIdWithPopupCheckUser
b _022FEBB4
_022FEB0C:
mov r0, sb
bl ov29_022F59C4
b _022FEBB4
_022FEB18:
mov r0, sb
bl ov29_022F5F18
b _022FEBB4
_022FEB24:
mov r0, sb
mov r1, #0x160
bl ov29_022F6058
b _022FEBB4
_022FEB34:
mov r0, sb
rsb r1, r1, #0x164
bl ov29_022F6058
b _022FEBB4
_022FEB44:
mov r0, sb
mov r2, r4
mov r3, r4
add r1, sb, #4
bl TryTriggerTrap
b _022FEBB4
_022FEB5C:
mov r0, sb
bl ov29_0230F158
b _022FEBB4
_022FEB68:
mov r0, sb
bl ov29_0230F140
b _022FEBB4
_022FEB74:
mov r0, sb
bl ov29_0230F14C
b _022FEBB4
_022FEB80:
mov r0, r4
mov r1, sb
mov r2, r4
bl SubstitutePlaceholderStringTags
ldr r1, _022FED90 ; =0x00000DF1
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
b _022FEBB4
_022FEBA0:
mov r0, sb
bl ov29_022F52B0
b _022FEBB4
_022FEBAC:
mov r0, #1
strh r0, [r6, #0x4a]
_022FEBB4:
mov r0, sb
bl TrySpawnTrapperTrap
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r2, [sb, #0xb4]
ldrb r0, [r2, #0x154]
cmp r0, #0
bne _022FEBF0
mov r1, #0
mov r0, sb
strb r1, [r2, #0x154]
bl ov29_02318D58
_022FEBF0:
mov r0, #0
bl ov29_022E3A58
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
bl ov29_022EF9BC
ldrb r0, [r6, #0x155]
cmp r0, #0
beq _022FEC88
mov ip, #0
mov r5, #1
mov r8, ip
strb ip, [r6, #0x155]
add r7, r6, #0x124
mov r3, ip
mov r1, ip
mov r0, r5
_022FEC3C:
ldrb r2, [r7, r8, lsl #3]
add lr, r7, r8, lsl #3
tst r2, #1
movne r2, r5
moveq r2, r3
tst r2, #0xff
beq _022FEC68
ldrb r2, [lr]
tst r2, #0x10
movne ip, r0
strneb r1, [lr, #6]
_022FEC68:
add r8, r8, #1
cmp r8, #4
blt _022FEC3C
cmp ip, #0
beq _022FEC88
ldr r1, _022FED94 ; =0x00000DF2
mov r0, sb
bl LogMessageByIdWithPopupCheckUser
_022FEC88:
bl TryActivateFlashFireOnAllMonsters
bl ov29_022EC85C
cmp r0, #0
bne _022FECB4
bl ov29_022FEFC8
bl ov29_022FEDBC
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_022FECB4:
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
bl ov29_022EC85C
cmp r0, #0
bne _022FECD8
bl ov29_02346888
_022FECD8:
mov r0, #0
bl ov29_022E3A58
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldrb r0, [r6, #0x14e]
cmp r0, #0
cmpeq r4, #0
bne _022FED68
mov r0, sb
add r1, sb, #4
bl ov29_022FFC9C
cmp r0, #0
beq _022FED58
ldr r0, [r6, #0x110]
cmp r0, #1
ble _022FED50
mov r0, #0
bl DisplayActions
mov r0, sb
bl EntityIsValid__022FED98
cmp r0, #0
beq _022FED48
bl IsFloorOver
cmp r0, #0
beq _022FED50
_022FED48:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
_022FED50:
mov r0, sb
bl EnsureCanStandCurrentTile
_022FED58:
mov r0, sb
bl ov29_0230FC24
mov r0, sb
bl EnemyEvolution
_022FED68:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_022FED70: .word ov29_02353538
_022FED74: .word ov10_022C4F3C
_022FED78: .word ov10_022C4F3D
_022FED7C: .word ov29_0237C9C0
_022FED80: .word ov29_0237CA6C
_022FED84: .word ov29_0237CA68
_022FED88: .word DIRECTIONS_XY
_022FED8C: .word ov29_0235171E
_022FED90: .word 0x00000DF1
_022FED94: .word 0x00000DF2
arm_func_end ExecuteMonsterAction

1270
asm/overlay_29_022FE4BC.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -409,10 +409,6 @@ EndBurnClassStatus: ; 0x023061A8
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, #0
ldr r4, [r5, #0xb4]
arm_func_end EndBurnClassStatus
arm_func_start ov29_023061CC
ov29_023061CC: ; 0x023061CC
mov r1, r5
mov r2, r0
bl SubstitutePlaceholderStringTags
@ -454,7 +450,7 @@ _02306238:
_0230624C: .word 0x00000C9E
_02306250: .word 0x00000C9C
_02306254: .word 0x00000C9D
arm_func_end ov29_023061CC
arm_func_end EndBurnClassStatus
arm_func_start EndFrozenClassStatus
EndFrozenClassStatus: ; 0x02306258
@ -1240,10 +1236,6 @@ EndMiracleEyeStatus: ; 0x02306C64
ldrb r0, [r4, #0xf5]
cmp r0, #0
beq _02306CB8
arm_func_end EndMiracleEyeStatus
arm_func_start ov29_02306C9C
ov29_02306C9C: ; 0x02306C9C
cmp r0, #1
beq _02306CAC
cmp r0, #2
@ -1260,7 +1252,7 @@ _02306CB8:
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_02306CCC: .word 0x00000CC4
arm_func_end ov29_02306C9C
arm_func_end EndMiracleEyeStatus
arm_func_start EndMagnetRiseStatus
EndMagnetRiseStatus: ; 0x02306CD0

File diff suppressed because it is too large Load Diff

View File

@ -1222,11 +1222,13 @@ _023100E8:
beq _0231013C
cmp r7, #0
beq _02310124
#ifndef EUROPE
ldr r0, _02310A84 ; =ov29_02353538
ldr r0, [r0]
ldrb r0, [r0, #8]
cmp r0, #0
bne _02310124
#endif
mov r0, r5
bl EntityIsValid__02311010
cmp r0, #0
@ -1952,10 +1954,6 @@ _02310B6C:
mov r0, r5
bl EntityIsValid__02311010
cmp r0, #0
arm_func_end ov29_0230FC24
arm_func_start ov29_02310BDC
ov29_02310BDC: ; 0x02310BDC
beq _02310FF4
bl IsFloorOver
cmp r0, #0
@ -1972,10 +1970,6 @@ _02310C0C:
mov r0, r5
bl EntityIsValid__02311010
cmp r0, #0
arm_func_end ov29_02310BDC
arm_func_start ov29_02310C18
ov29_02310C18: ; 0x02310C18
beq _02310FF4
bl IsFloorOver
cmp r0, #0
@ -2244,4 +2238,4 @@ _02311000: .word 0x00000DEC
_02311004: .word 0x0000270F
_02311008: .word 0x00000165
_0231100C: .word 0x00000CBA
arm_func_end ov29_02310C18
arm_func_end ov29_0230FC24

View File

@ -1861,6 +1861,10 @@ _0231CB90:
cmp r1, #0
bne _0231CB58
_0231CB9C:
#ifdef EUROPE
mov r0, #1
bl ov29_022FB920
#endif
mov r0, r8
bl EnemyEvolution
_0231CBA4:

View File

@ -2893,6 +2893,9 @@ DoMoveMeteorMash: ; 0x02327B5C
str r3, [sp]
mov r3, #0x100
mov r6, r0
#ifdef EUROPE
mov r5, r1
#endif
mov r4, #0
bl DealDamage
cmp r0, #0
@ -2900,7 +2903,11 @@ DoMoveMeteorMash: ; 0x02327B5C
ldr r1, _02327BD8 ; =METEOR_MASH_BOOST_ATTACK_CHANCE
mov r0, r6
ldrsh r2, [r1]
#ifdef EUROPE
mov r1, r5
#else
mov r1, r6
#endif
mov r4, #1
bl DungeonRandOutcomeUserTargetInteraction
cmp r0, #0

View File

@ -1657,6 +1657,9 @@ DoMoveMetalClaw: ; 0x0232B940
ldr ip, [sp, #0x28]
mov r3, #0x100
mov r6, r0
#ifdef EUROPE
mov r5, r1
#endif
str ip, [sp]
mov r4, #0
bl DealDamage
@ -1665,7 +1668,11 @@ DoMoveMetalClaw: ; 0x0232B940
ldr r1, _0232B9CC ; =METAL_CLAW_BOOST_ATTACK_CHANCE
mov r0, r6
ldrsh r2, [r1]
#ifdef EUROPE
mov r1, r5
#else
mov r1, r6
#endif
mov r4, #1
bl DungeonRandOutcomeUserTargetInteraction
cmp r0, #0

View File

@ -1671,6 +1671,10 @@ DoMoveDamageEatItem: ; 0x0232D9E4
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
#ifdef EUROPE
mov r0, r5
bl ov29_022E34A8_EU
#else
ldr r0, _0232DACC ; =ov29_02353538
ldr r0, [r0]
ldrb r0, [r0, #8]
@ -1685,6 +1689,7 @@ DoMoveDamageEatItem: ; 0x0232D9E4
moveq r0, #0
and r0, r0, #0xff
_0232DA3C:
#endif
cmp r0, #0
beq _0232DAC4
cmp r5, r4
@ -1726,7 +1731,9 @@ _0232DAC4:
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
#ifndef EUROPE
_0232DACC: .word ov29_02353538
#endif
arm_func_end DoMoveDamageEatItem
arm_func_start DoMoveAcupressure

View File

@ -427,8 +427,13 @@ LoadTextureUi: ; 0x023356C0
stmdb sp!, {r3, lr}
sub sp, sp, #8
ldr r0, _02335750 ; =ov29_02352B4C
#ifdef EUROPE
ldr r1, [r0, #0xc]
ldr r0, [r0, #8]
#else
ldr r1, [r0, #4]
ldr r0, [r0]
#endif
str r1, [sp, #4]
str r0, [sp]
bl GetLanguage
@ -481,15 +486,29 @@ _02335770: .word ov29_0237CA90
ov29_02335774: ; 0x02335774
stmdb sp!, {r3, lr}
sub sp, sp, #8
#ifdef EUROPE
ldr r0, _023357F4 ; =ov29_02352B4C
ldr r1, [r0, #4]
ldr r0, [r0]
str r1, [sp, #4]
str r0, [sp]
bl GetLanguage
ldr r1, _02336244 ; =0x0235431C
mov r0, r0, lsl #1
ldrh r2, [r1, r0]
#else
ldr r1, _023357F4 ; =ov29_02352B4C
ldr r2, _023357F8 ; =0x000003EF
ldr r3, [r1, #0xc]
ldr ip, [r1, #8]
str r3, [sp, #4]
#endif
add r0, sp, #0
mov r1, #4
mov r3, #0x300
#ifndef EUROPE
str ip, [sp]
#endif
bl LoadWteFromFileDirectory
mov r1, #0
ldr r0, [sp, #4]
@ -514,7 +533,11 @@ _023357C8:
ldmia sp!, {r3, pc}
.align 2, 0
_023357F4: .word ov29_02352B4C
#ifdef EUROPE
_02336244: .word 0x0235431C
#else
_023357F8: .word 0x000003EF
#endif
_023357FC: .word ov29_0237CA96
_02335800: .word ov29_0237CA8C
arm_func_end ov29_02335774
@ -688,6 +711,443 @@ DisplayUi: ; 0x02335A10
ldr r0, _02335F2C ; =ov29_02353538
ldr r0, [r0]
add r0, r0, #0x21c
#ifdef EUROPE
add r4, r0, #0x1a000
ldr r0, [r4, #0x10]
cmp r0, #0
moveq r1, #0
beq _02336498
ldr r1, [r0]
cmp r1, #0
movne r1, #1
moveq r1, #0
and r1, r1, #0xff
_02336498:
cmp r1, #0
beq _02335F24
ldr r1, _02335F30 ; =ov29_0237CA8C
ldrb r1, [r1, #0x12]
cmp r1, #0
bne _02335F24
ldr r8, [r0, #0xb4]
mov r7, #0
ldrsh r3, [r8, #0x12]
ldrsh r2, [r8, #0x16]
ldr r1, _02335F34 ; =0x000003E7
mov sb, r7
add sl, r3, r2
cmp sl, r1
movgt sl, r1
ldr r1, _02335F2C ; =ov29_02353538
ldrsh r6, [r8, #0x10]
ldr r1, [r1]
ldrb fp, [r8, #0xa]
ldrb r2, [r1, #0x749]
ldrsh r1, [r1, #0x1e]
add r5, r2, r1
bl HasLowHealth
cmp r0, #0
add r0, r8, #0x100
ldrh r1, [r0, #0x46]
sub r2, sp, #4
movne r7, #1
strh r1, [r2]
ldrh r0, [r0, #0x48]
strh r0, [r2, #2]
ldr r0, [r2]
bl CeilFixedPoint
cmp r0, #0
moveq sb, #1
cmp r7, #0
beq _02336564
ldr r0, _02335F38 ; =ov29_0237C850
ldr r0, [r0]
tst r0, #0x10
beq _02336550
mov r0, #0
mov r1, r0
mov r8, #0x20
bl SetScreenWindowsColor
b _0233656C
_02336550:
mov r0, #1
mov r1, #0
mov r8, #0x10
bl SetScreenWindowsColor
b _0233656C
_02336564:
mov r8, #0x10
bl SetBothScreensWindowColorToDefault
_0233656C:
cmp sb, #0
beq _023365A8_EU
ldr r0, _02335F38 ; =ov29_0237C850
ldr r0, [r0]
ands r0, r0, #0x10
movne r8, #0x30
cmp r7, #0
bne _023365A8_EU
cmp r0, #0
beq _023365A4_EU
mov r0, #3
mov r1, #0
bl SetScreenWindowsColor
b _023365A8_EU
_023365A4_EU:
bl SetBothScreensWindowColorToDefault
_023365A8_EU:
add r0, sp, #4
mov r1, #2
bl ov29_02335808
bl GetLanguage
cmp fp, #0x64
bne _023365D4
cmp r0, #0
cmpne r0, #2
cmpne r0, #4
moveq r7, #0
beq _023365D8
_023365D4:
mov r7, #8
_023365D8:
bl IsCurrentFixedRoomBossFight
cmp r0, #0
addne r0, r7, #0x18
movne r0, r0, lsl #0x10
movne r7, r0, asr #0x10
bne _02336818
bl GetLanguage
sub r1, r0, #1
mov r1, r1, lsl #0x18
mov r1, r1, asr #0x18
and r1, r1, #0xff
cmp r1, #3
bhi _02336754
cmp r0, #2
mov sb, #0
bne _02336678
ldr r0, _02335F2C ; =ov29_02353538
mov sb, #1
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl DungeonGoesUp
cmp r0, #0
add r0, sp, #4
mov r2, #0
mov r1, r7
bne _0233665C
mov r3, #0x18
str r8, [sp]
bl DisplayCharTextureUi
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
b _023366DC
_0233665C:
mov r3, #0x14
str r8, [sp]
bl DisplayCharTextureUi
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
b _023366DC
_02336678:
add r0, sp, #4
mov r1, r7
mov r2, sb
mov r3, #0x14
str r8, [sp]
bl DisplayCharTextureUi
ldr r1, _02335F2C ; =ov29_02353538
add r2, r7, r0
ldr r0, [r1]
mov r1, r2, lsl #0x10
ldrb r0, [r0, #0x748]
mov r7, r1, asr #0x10
bl DungeonGoesUp
cmp r0, #0
movne sb, #1
bne _023366DC
add r0, sp, #4
mov r1, r7
mov r2, sb
mov r3, #0x18
str r8, [sp]
bl DisplayCharTextureUi
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
_023366DC:
cmp r5, #0xa
ldrb r0, [r4, #0x2f]
bge _02336710
cmp r0, #0
moveq r3, #1
movne r3, #0
mov r1, r5, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r7
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
b _02336734
_02336710:
cmp r0, #0
moveq r3, #1
movne r3, #0
mov r1, r5, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r7
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
_02336734:
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
cmp sb, #0
addne r0, r7, #8
movne r0, r0, lsl #0x10
movne r7, r0, asr #0x10
b _02336818
_02336754:
ldr r0, _02335F2C ; =ov29_02353538
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl DungeonGoesUp
cmp r0, #0
bne _02336790
add r0, sp, #4
mov r1, r7
mov r2, #0
mov r3, #0x18
str r8, [sp]
bl DisplayCharTextureUi
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
_02336790:
cmp r5, #0xa
ldrb r0, [r4, #0x2f]
bge _023367C4
cmp r0, #0
moveq r3, #1
movne r3, #0
mov r1, r5, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r7
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
b _023367E8
_023367C4:
cmp r0, #0
moveq r3, #1
movne r3, #0
mov r1, r5, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r7
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
_023367E8:
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
add r0, sp, #4
mov r1, r7
mov r2, #0
mov r3, #0x14
str r8, [sp]
bl DisplayCharTextureUi
add r0, r7, r0
mov r0, r0, lsl #0x10
mov r7, r0, asr #0x10
_02336818:
add r0, sp, #4
mov r1, r7
str r8, [sp]
mov r2, #0
mov r3, #0x15
bl DisplayCharTextureUi
ldrb r1, [r4, #0x2f]
add r0, r7, r0
mov r0, r0, lsl #0x10
cmp r1, #0
moveq r3, #1
mov r7, r0, asr #0x10
movne r3, #0
mov r1, fp, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r7
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
mov r5, #0x48
add r0, sp, #4
mov r1, r5
str r8, [sp]
mov r2, #0
mov r3, #0x16
bl DisplayCharTextureUi
ldrb r1, [r4, #0x2f]
add r0, r0, #0x48
mov r0, r0, lsl #0x10
cmp r1, #0
moveq r3, #1
mov r5, r0, asr #0x10
movne r3, #0
mov r1, r6, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r5
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
add r0, r5, r0
mov r7, r0, lsl #0x10
mov r5, r7, asr #0x10
add r0, sp, #4
mov r1, r5
str r8, [sp]
mov r2, #0
mov r3, #0x17
bl DisplayCharTextureUi
ldrb r1, [r4, #0x2f]
add r0, r0, r7, asr #16
mov r0, r0, lsl #0x10
cmp r1, #0
moveq r3, #1
mov r5, r0, asr #0x10
movne r3, #0
mov r1, sl, lsl #0x10
mov r2, r1, asr #0x10
mov r0, r5
and r3, r3, #0xff
mov r1, #0
bl DisplayNumberTextureUi
ldr r0, _02335F30 ; =ov29_0237CA8C
cmp sl, #0
ldr r0, [r0, #4]
mov r4, #0x90
ldr r8, [r0, #4]
mov r5, #0x10
blt _02335F24
add r0, sp, #4
bl InitRender3dElement64
ldr r0, _02335F30 ; =ov29_0237CA8C
mov fp, #5
ldrh r3, [r0]
mov r0, r6, lsl #0x10
mov sb, #0x28
mov r2, #0x1000
mov r7, r0, asr #0x10
ldr r1, _02335F3C ; =_020AFC70
str r2, [sp, #0x24]
ldr r0, [r1]
cmp r7, #0x70
strb fp, [sp, #0x40]
strb sb, [sp, #0x42]
strh r3, [sp, #0x18]
ldr r0, [r0, #0xe0]
mov r1, #0
mov r2, #0x90
add r0, r0, #0x400
str r0, [sp, #0x28]
mov r0, sl, lsl #0x10
mov sb, r0, asr #0x10
movgt r7, #0x70
cmp sb, #0x70
movgt sb, #0x70
add r0, sb, #0x90
mov r0, r0, lsl #0x10
mov r3, r0, asr #0x10
strh r1, [sp, #6]
strh r3, [sp, #8]
strh r1, [sp, #0xa]
add r0, r5, #1
mov r1, r0, lsl #0x10
strh r2, [sp, #4]
strh r2, [sp, #0xc]
ldrsh r2, [r8, #0xce]
mov r5, r1, asr #0x10
add r0, sp, #4
strh r2, [sp, #0xe]
strh r3, [sp, #0x10]
ldrsh r3, [r8, #0xce]
mov r2, #0x10
strh r3, [sp, #0x12]
ldrsh r3, [r8, #0xc8]
strh r3, [sp, #0x1a]
ldrsh r1, [r8, #0xca]
strh r1, [sp, #0x1c]
ldrsh r1, [r8, #0xcc]
strh r1, [sp, #0x1e]
ldrsh r1, [r8, #0xce]
strh r1, [sp, #0x20]
strh r2, [sp, #0x2e]
bl sub_0201F2A0
cmp r6, #0
ble _02336A70
add r0, r7, #0x90
mov r0, r0, lsl #0x10
mov r3, #0x90
mov r2, r0, asr #0x10
mov r1, #0
strh r3, [sp, #4]
strh r2, [sp, #8]
strh r3, [sp, #0xc]
strh r1, [sp, #6]
strh r1, [sp, #0xa]
ldrsh r1, [r8, #0xe6]
add r0, sp, #4
strh r2, [sp, #0x10]
strh r1, [sp, #0xe]
ldrsh r1, [r8, #0xe6]
strh r1, [sp, #0x12]
ldrsh r1, [r8, #0xe0]
strh r1, [sp, #0x1a]
ldrsh r1, [r8, #0xe2]
strh r1, [sp, #0x1c]
ldrsh r1, [r8, #0xe4]
strh r1, [sp, #0x1e]
ldrsh r1, [r8, #0xe6]
strh r1, [sp, #0x20]
strh r5, [sp, #0x2e]
bl sub_0201F2A0
_02336A70:
sub r0, sb, r7
mov r0, r0, lsl #0x10
mov r1, r0, asr #0x10
cmp r1, #0
ble _02335F24
add r0, r4, r7
mov r0, r0, lsl #0x10
add r1, r1, r0, asr #16
mov r1, r1, lsl #0x10
mov r3, r0, asr #0x10
mov r0, #0
mov r2, r1, asr #0x10
strh r3, [sp, #4]
strh r0, [sp, #6]
strh r0, [sp, #0xa]
strh r2, [sp, #8]
strh r3, [sp, #0xc]
ldrsh r1, [r8, #0xde]
add r0, sp, #4
strh r2, [sp, #0x10]
strh r1, [sp, #0xe]
ldrsh r1, [r8, #0xde]
strh r1, [sp, #0x12]
ldrsh r1, [r8, #0xd8]
strh r1, [sp, #0x1a]
ldrsh r1, [r8, #0xda]
strh r1, [sp, #0x1c]
ldrsh r1, [r8, #0xdc]
strh r1, [sp, #0x1e]
ldrsh r1, [r8, #0xde]
strh r1, [sp, #0x20]
strh r5, [sp, #0x2e]
#else
add r5, r0, #0x1a000
ldr r0, [r5, #0x10]
cmp r0, #0
@ -1018,6 +1478,7 @@ _02335EA0:
ldrsh r1, [sb, #0xde]
strh r1, [sp, #0x20]
strh r6, [sp, #0x2e]
#endif
bl sub_0201F2A0
_02335F24:
add sp, sp, #0x44
@ -3044,10 +3505,6 @@ PositionHasItem: ; 0x02337B2C
mov r1, r0
ldrsh r0, [r1]
ldrsh r1, [r1, #2]
arm_func_end PositionHasItem
arm_func_start ov29_02337B3C
ov29_02337B3C: ; 0x02337B3C
bl GetTile
ldr r0, [r0, #0x10]
cmp r0, #0
@ -3059,7 +3516,7 @@ ov29_02337B3C: ; 0x02337B3C
movne r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end ov29_02337B3C
arm_func_end PositionHasItem
arm_func_start PositionHasMonster
PositionHasMonster: ; 0x02337B68
@ -3082,10 +3539,6 @@ _02337B94:
arm_func_start TrySmashWall
TrySmashWall: ; 0x02337B9C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
arm_func_end TrySmashWall
arm_func_start ov29_02337BA0
ov29_02337BA0: ; 0x02337BA0
mov r8, r0
ldrsh r0, [r8]
ldrsh r1, [r8, #2]
@ -3134,10 +3587,6 @@ _02337BF8:
_02337C4C:
cmp r5, #0
beq _02337C9C
arm_func_end ov29_02337BA0
arm_func_start ov29_02337C54
ov29_02337C54: ; 0x02337C54
ldr r4, _02337CA4 ; =ov29_02353538
mov r6, #0
_02337C5C:
@ -3163,4 +3612,4 @@ _02337C9C:
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02337CA4: .word ov29_02353538
arm_func_end ov29_02337C54
arm_func_end TrySmashWall

View File

@ -92,13 +92,10 @@ _02337DE4:
mov r0, r6
bl EntityIsValid__02337CA8
cmp r0, #0
beq ov29_02337E0C
beq _02337E0C
mov r0, r6
bl ov29_02304BAC
arm_func_end ov29_02337D68
arm_func_start ov29_02337E0C
ov29_02337E0C: ; 0x02337E0C
_02337E0C:
add r5, r5, #1
cmp r5, #0x14
blt _02337DE4
@ -108,7 +105,7 @@ ov29_02337E0C: ; 0x02337E0C
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02337E28: .word ov29_02353538
arm_func_end ov29_02337E0C
arm_func_end ov29_02337D68
arm_func_start ov29_02337E2C
ov29_02337E2C: ; 0x02337E2C
@ -2929,6 +2926,17 @@ SetMinimapDataE447: ; 0x0233A218
ldmia sp!, {r4, pc}
arm_func_end SetMinimapDataE447
#ifdef EUROPE
arm_func_start ov29_0233AE00_EU
ov29_0233AE00_EU: ; 0x0233AE00
stmdb sp!, {r3, lr}
bl GetMinimapData
add r0, r0, #0xe000
ldrb r0, [r0, #0x447]
ldmia sp!, {r3, pc}
arm_func_end ov29_0233AE00_EU
#endif
arm_func_start SetMinimapDataE448
SetMinimapDataE448: ; 0x0233A230
stmdb sp!, {r4, lr}
@ -5795,10 +5803,6 @@ _0233CA0C:
mov r3, #2
sub r2, r0, #1
mov r1, #4
arm_func_end GenerateExtraHallways
arm_func_start ov29_0233CAA8
ov29_0233CAA8: ; 0x0233CAA8
mov r0, #6
mov lr, ip
_0233CAB0:
@ -5814,10 +5818,6 @@ _0233CAC0:
_0233CAD0:
cmp r6, #4
bne _0233CAE0
arm_func_end ov29_0233CAA8
arm_func_start ov29_0233CAD8
ov29_0233CAD8: ; 0x0233CAD8
cmp sb, #0
movle r6, r0
_0233CAE0:
@ -5834,10 +5834,6 @@ _0233CAF0:
bl GetTile
ldrb sb, [r0, #7]
ldr r0, _0233CF7C ; =DIRECTIONS_XY
arm_func_end ov29_0233CAD8
arm_func_start ov29_0233CB10
ov29_0233CB10: ; 0x0233CB10
mov r4, r6, lsl #2
add fp, r0, r6, lsl #2
_0233CB18:
@ -5850,10 +5846,6 @@ _0233CB18:
ldreqsh r1, [r0, r4]
ldreqsh r0, [fp, #2]
addeq r8, r8, r1
arm_func_end ov29_0233CB10
arm_func_start ov29_0233CB3C
ov29_0233CB3C: ; 0x0233CB3C
addeq r7, r7, r0
beq _0233CB18
ldr fp, _0233CF7C ; =DIRECTIONS_XY
@ -6029,25 +6021,13 @@ _0233CD94:
bl GetTile
ldrh r0, [r0]
and r0, r0, #3
arm_func_end ov29_0233CB3C
arm_func_start ov29_0233CDC8
ov29_0233CDC8: ; 0x0233CDC8
cmp r0, #1
bne _0233CDF0
mov r0, r8
add r1, r7, #1
arm_func_end ov29_0233CDC8
arm_func_start ov29_0233CDD8
ov29_0233CDD8: ; 0x0233CDD8
bl GetTile
ldrh r0, [r0]
and r0, r0, #3
arm_func_end ov29_0233CDD8
arm_func_start ov29_0233CDE4
ov29_0233CDE4: ; 0x0233CDE4
cmp r0, #1
moveq r0, #0
streq r0, [sp, #0xc]
@ -6161,7 +6141,7 @@ _0233CF70:
_0233CF78: .word 0x000001C2
_0233CF7C: .word DIRECTIONS_XY
_0233CF80: .word ov29_0237CFBC
arm_func_end ov29_0233CDE4
arm_func_end GenerateExtraHallways
arm_func_start GetGridPositions
GetGridPositions: ; 0x0233CF84

View File

@ -405,6 +405,9 @@ ov29_02345004: ; 0x02345004
ldrneb r0, [r5]
orrne r0, r0, #0x80
strneb r0, [r5]
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
@ -839,6 +842,9 @@ _02345648:
add r0, r0, #0x3f00
strh r4, [r0, #0xc0]
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}

View File

@ -1396,6 +1396,9 @@ _02346A48:
cmp r8, #0x32
blt _02346A00
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@ -1499,6 +1502,9 @@ _02346BB8:
cmp r4, #0x32
blt _02346B7C
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@ -1536,6 +1542,9 @@ _02346C30:
cmp r7, #0x32
blt _02346BFC
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
mov r4, #0
mov r7, r4
@ -1646,6 +1655,9 @@ ov29_02346DA4: ; 0x02346DA4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
bl ov29_02346CBC
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
mov r8, #0
mov r7, #1
@ -1856,6 +1868,9 @@ _0234702C: .word ov10_022C4CD8
RemoveEmptyItemsInBagWrapper: ; 0x02347030
stmdb sp!, {r3, lr}
bl RemoveEmptyItemsInBag
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
ldmia sp!, {r3, pc}
arm_func_end RemoveEmptyItemsInBagWrapper

View File

@ -2159,8 +2159,13 @@ _0234B504: .word ov29_023537CC
arm_func_start LogMessage
LogMessage: ; 0x0234B508
#ifdef EUROPE
#define LOG_MESSAGE_STACK_OFFSET 0x60
#else
#define LOG_MESSAGE_STACK_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x284
sub sp, sp, #0x284 + LOG_MESSAGE_STACK_OFFSET
ldr r4, _0234B708 ; =ov29_023537CC
mov fp, r2
ldr r3, [r4, #4]
@ -2223,7 +2228,7 @@ _0234B5D8:
add r1, r1, #0x9c
add r1, r1, #0xc00
str r1, [sp]
mov r1, #0x140
mov r1, #0x140 + LOG_MESSAGE_STACK_OFFSET
add r2, r5, r8
mov r3, #0x440
bl PreprocessString
@ -2291,7 +2296,7 @@ _0234B6D4:
streq r0, [r1, #0xc98]
bl ov29_022F2FE4
_0234B700:
add sp, sp, #0x284
add sp, sp, #0x284 + LOG_MESSAGE_STACK_OFFSET
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0234B708: .word ov29_023537CC

View File

@ -38,6 +38,9 @@ OpenMenu: ; 0x0234DDF4
mov r1, #0x1d
bl ov29_022EA370
_0234DE74:
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
_0234DE78:
mvn r0, #0
@ -645,6 +648,9 @@ _0234E6CC:
cmp r0, #0
beq _0234DE78
_0234E720:
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
bl ov29_022F0B9C
cmp r0, #0
@ -760,6 +766,9 @@ _0234E8B0:
mov r1, r0
bl ov29_022EA428
_0234E8C0:
#ifdef EUROPE
mov r0, #0
#endif
bl ov29_022FB920
bl ov29_022E0B44
mov r0, #0x22

View File

@ -205,8 +205,10 @@ Overlay OVY_29
Object asm/overlay_29_022F7388.o
Object src/overlay_29_022FC99C.o
Object asm/overlay_29_022FC9C0.o
Object asm/overlay_29_022FE4BC.o
Object src/overlay_29_022FED98.o
Object asm/overlay_29_022FEDBC.o
Object src/overlay_29_022FEEB8_eu.o
Object src/overlay_29_023000E4.o
Object asm/overlay_29_02300108.o
Object src/overlay_29_02302A38.o

View File

@ -1,5 +1,6 @@
#include "overlay_29_022FED98.h"
#ifndef EUROPE
u8 EntityIsValid__022FED98(struct entity *entity)
{
if (entity == NULL)
@ -8,3 +9,4 @@ u8 EntityIsValid__022FED98(struct entity *entity)
}
return entity->type != ENTITY_NOTHING;
}
#endif

View File

@ -0,0 +1,12 @@
#include "overlay_29_022FED98.h"
#ifdef EUROPE
u8 EntityIsValid__022FED98(struct entity *entity)
{
if (entity == NULL)
{
return FALSE;
}
return entity->type != ENTITY_NOTHING;
}
#endif