Merge pull request #207 from AnonymousRandomPerson/main
Some checks are pending
build / build (push) Waiting to run

Decomped more AI symbols
This commit is contained in:
AnonymousRandomPerson
2025-11-14 22:03:06 -05:00
committed by GitHub
84 changed files with 1279 additions and 1278 deletions

View File

@@ -1,22 +1,4 @@
#pragma once
.public DTCM_BSS
.public EnableIrqFlag
.public G3_MultMtx43
.public GeomSetTexImageParam
.public GeomSetVertexCoord16
.public GetAllBaseForms
.public GetWindow
.public MONSTER_DATA_TABLE_PTR
.public MemcpyFast
.public MemsetFast
.public OS_IRQTable
.public RENDER_3D
.public RENDER_3D_FUNCTIONS
.public Rgb8ToRgb5
.public SetIrqFlag
.public TRIG_TABLE
.public UpdateWindow
.public WINDOW_LIST
.public _02099724
.public _02099734
.public _02099744
@@ -28,7 +10,22 @@
.public _022A88FC
.public _022B966C
.public _022B99D0
.public DTCM_BSS
.public EnableIrqFlag
.public G3_MultMtx43
.public GeomSetTexImageParam
.public GeomSetVertexCoord16
.public GetAllBaseForms
.public GetWindow
.public MemcpyFast
.public MemsetFast
.public MONSTER_DATA_TABLE_PTR
.public OS_IRQTable
.public ov29_02353530
.public RENDER_3D
.public RENDER_3D_FUNCTIONS
.public Rgb8ToRgb5
.public SetIrqFlag
.public sub_0201BD50
.public sub_0201BD80
.public sub_0202760C
@@ -39,3 +36,6 @@
.public sub_0207A324
.public sub_02080EF0
.public sub_02080F30
.public TRIG_TABLE
.public UpdateWindow
.public WINDOW_LIST

View File

@@ -357,6 +357,7 @@
.public LoadFileFromRom
.public LoadScriptVariableValue
.public LoadScriptVariableValueAtIndex
.public LoadScriptVariableValueString
.public LoadStringFile
.public MemAlloc
.public MemArenaAlloc
@@ -439,7 +440,6 @@
.public sub_0200D310
.public sub_02025480
.public sub_020257FC
.public LoadScriptVariableValueString
.public sub_0204E530
.public sub_0204F6F8
.public sub_0204F77C

View File

@@ -1,22 +1,22 @@
#pragma once
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public _0209CF48
.public _0209CF64
.public _0209CF84
.public _0209DFA0
.public Debug_FatalError
.public Debug_Print
.public Debug_Print0
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public EVENT_FLAG_PROG_POS_INFO
.public CalcScriptVariables
.public GetGameMode
.public LoadScriptVariableRaw
.public LoadScriptVariableValue
.public LoadScriptVariableValueAtIndex
.public MemcpySimple
.public SCRIPT_VARS_VALUES
.public SaveScriptVariableValue
.public SaveScriptVariableValueAtIndex
.public ScenarioFlagBackup
.public ZinitScriptVariable
.public EVENT_FLAG_PROG_POS_INFO
.public _0209CF48
.public _0209CF64
.public _0209CF84
.public _0209DFA0
.public FlagCalc
.public SCRIPT_VARS_VALUES
.public sub_0204CBE8
.public ZinitScriptVariable

View File

@@ -1,4 +1,9 @@
#pragma once
.public _0209DFC8
.public _0209DFE8
.public _0209E008
.public _0209E010
.public _0209E011
.public ARM9_UNKNOWN_TABLE__NA_209E164
.public CopyBitsFrom
.public CopyBitsTo
@@ -11,9 +16,9 @@
.public FileRom_InitDataTransfer
.public FileRom_StopDataTransfer
.public FileRom_Veneer_FileInit
.public GLOBAL_PROGRESS_PTR
.public GetDexNumber
.public GetGameMode
.public GLOBAL_PROGRESS_PTR
.public KAOMADO_FILEPATH
.public KAOMADO_STREAM
.public LoadScriptVariableValue
@@ -24,13 +29,8 @@
.public SaveScriptVariableValue
.public SaveScriptVariableValueAtIndex
.public SetAdventureLogCompleted
.public VERSION_EXCLUSIVE_MONSTERS
.public ZinitScriptVariable
.public _0209DFC8
.public _0209DFE8
.public _0209E008
.public _0209E010
.public _0209E011
.public sub_02050974
.public sub_02050990
.public sub_020509BC
.public VERSION_EXCLUSIVE_MONSTERS
.public ZinitScriptVariable

View File

@@ -1,3 +1,3 @@
#pragma once
.public ARM9_UNKNOWN_TABLE__NA_20A20B0
.public _020A20B1
.public ARM9_UNKNOWN_TABLE__NA_20A20B0

View File

@@ -1,20 +1,4 @@
#pragma once
.public ARM9_UNKNOWN_PTR__NA_20A2C84
.public ArrayCopy32
.public ArrayFill32
.public DecompressAtNormalVeneer
.public GetAtSize
.public GetBaseForm
.public LoadFileFromRom
.public LoadM2nAndN2m
.public MONSTER_DATA_TABLE_PTR
.public MemAlloc
.public MemFree
.public MemZero
.public RANK_UP_TABLE
.public StringFromId
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
.public UnloadFile
.public _020A31B8
.public _020A31D4
.public _020A31E4
@@ -24,6 +8,20 @@
.public _020B09B0
.public _020B09C0
.public _s32_div_f
.public ARM9_UNKNOWN_PTR__NA_20A2C84
.public ArrayCopy32
.public ArrayFill32
.public DecompressAtNormalVeneer
.public GetAtSize
.public GetBaseForm
.public LoadFileFromRom
.public LoadM2nAndN2m
.public MemAlloc
.public MemFree
.public MemZero
.public MONSTER_DATA_TABLE_PTR
.public RANK_UP_TABLE
.public StringFromId
.public strncpy
.public sub_0200302C
.public sub_020030FC
@@ -42,4 +40,6 @@
.public sub_0200B3C0
.public sub_0200B3D4
.public sub_0200B3FC
.public UnloadFile
.public UNOWN_SPECIES_ADDITIONAL_CHAR_PTR_TABLE
.public vsprintf

View File

@@ -1,4 +1,21 @@
#pragma once
.public _020A333C
.public _020A3340
.public _020A3350
.public _020A336C
.public _020A3398
.public _020A33B8
.public _020A33D4
.public _020A340C
.public _020A343C
.public _020A344C
.public _020A3450
.public _020A3468
.public _020AFC28
.public _020AFC4C
.public _020B0A4C
.public _022B5788
.public _022B578C
.public AddMoneyCarried
.public CleanStickyItemsInBag
.public CopyAndInterleaveWrapper
@@ -35,25 +52,6 @@
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPadSafe
.public TEAM_MEMBER_TABLE_PTR
.public UnloadFile
.public _020A333C
.public _020A3340
.public _020A3350
.public _020A336C
.public _020A3398
.public _020A33B8
.public _020A33D4
.public _020A340C
.public _020A343C
.public _020A344C
.public _020A3450
.public _020A3468
.public _020AFC28
.public _020AFC4C
.public _020B0A4C
.public _022B5788
.public _022B578C
.public sub_0200D8AC
.public sub_0200FA0C
.public sub_0201B43C
@@ -68,3 +66,5 @@
.public sub_020534BC
.public sub_02053D1C
.public sub_02053F10
.public TEAM_MEMBER_TABLE_PTR
.public UnloadFile

View File

@@ -2,7 +2,7 @@
.public GetIqGroup
.public GetPerformanceFlagWithChecks
.public IQ_GROUP_SKILLS
.public IQ_SKILLS
.public IQ_SKILL_RESTRICTIONS
.public IQ_SKILLS
.public IqSkillFlagTest
.public TACTICS_UNLOCK_LEVEL_TABLE

View File

@@ -1,25 +1,4 @@
#pragma once
.public ARM9_UNKNOWN_DATA__NA_209EAAC
.public GetCharWidth
.public IsAOrBPressed
.public MISSION_FLOOR_RANKS_AND_ITEM_LISTS_1
.public TryAppendToSlice
.public TryAssignByteWrapper
.public UpdateAdvancedMenu
.public UpdateAdvancedTextBox
.public UpdateAlertBox
.public UpdateAreaNameBox
.public UpdateCollectionMenu
.public UpdateControlsChart
.public UpdateDebugMenu
.public UpdateDialogueBox
.public UpdateOptionsMenu
.public UpdateParentMenu
.public UpdatePortraitBox
.public UpdateScrollBox
.public UpdateSimpleMenu
.public UpdateTeamSelectionMenu
.public UpdateTextBox
.public _020908D4
.public _020908DC
.public _020908E4
@@ -279,7 +258,11 @@
.public _0209F3F8
.public __vsprintf_internal
.public __vsprintf_internal_slice
.public ARM9_UNKNOWN_DATA__NA_209EAAC
.public GetCharWidth
.public IsAOrBPressed
.public memset
.public MISSION_FLOOR_RANKS_AND_ITEM_LISTS_1
.public snprintf
.public sprintf
.public sub_02005D14
@@ -429,5 +412,22 @@
.public sub_0209081C
.public sub_0209086C
.public sub_020908A8
.public TryAppendToSlice
.public TryAssignByteWrapper
.public UpdateAdvancedMenu
.public UpdateAdvancedTextBox
.public UpdateAlertBox
.public UpdateAreaNameBox
.public UpdateCollectionMenu
.public UpdateControlsChart
.public UpdateDebugMenu
.public UpdateDialogueBox
.public UpdateOptionsMenu
.public UpdateParentMenu
.public UpdatePortraitBox
.public UpdateScrollBox
.public UpdateSimpleMenu
.public UpdateTeamSelectionMenu
.public UpdateTextBox
.public vsprintf
.public wcstombs

View File

@@ -1 +1,2 @@
#pragma once

View File

@@ -1 +1,2 @@
#pragma once

View File

@@ -1,110 +1,4 @@
#pragma once
.public ACTOR_LIST
.public BaseFormsEqual
.public DseTrackEvent_Dummy1Byte
.public DseTrackEvent_Dummy2Bytes
.public DseTrackEvent_Dummy2Bytes2
.public DseTrackEvent_EndTrack
.public DseTrackEvent_ForceLfoEnvelopeLevel
.public DseTrackEvent_Invalid
.public DseTrackEvent_MainLoopBegin
.public DseTrackEvent_OctaveDelta
.public DseTrackEvent_PanDelta
.public DseTrackEvent_PanFade
.public DseTrackEvent_RestoreEnvelopeDefaults
.public DseTrackEvent_SetBank
.public DseTrackEvent_SetBankLsb
.public DseTrackEvent_SetBankMsb
.public DseTrackEvent_SetBpm
.public DseTrackEvent_SetBpm2
.public DseTrackEvent_SetEnvelopeAttackBegin
.public DseTrackEvent_SetEnvelopeAttackTime
.public DseTrackEvent_SetEnvelopeDecayTimeAndSustainLevel
.public DseTrackEvent_SetEnvelopeHoldTime
.public DseTrackEvent_SetEnvelopeReleaseTime
.public DseTrackEvent_SetEnvelopeSustainTime
.public DseTrackEvent_SetExpression
.public DseTrackEvent_SetFlagBit1Unknown
.public DseTrackEvent_SetHoldNotes
.public DseTrackEvent_SetInstrument
.public DseTrackEvent_SetKeyBend
.public DseTrackEvent_SetKeyBendRange
.public DseTrackEvent_SetLfoParameter
.public DseTrackEvent_SetNoteDurationMultiplier
.public DseTrackEvent_SetNoteRandomRegion
.public DseTrackEvent_SetOctave
.public DseTrackEvent_SetOptionalVolume
.public DseTrackEvent_SetPan
.public DseTrackEvent_SetTuning
.public DseTrackEvent_SetTuningJitterAmplitude
.public DseTrackEvent_SetUnknown2
.public DseTrackEvent_SetVolume
.public DseTrackEvent_SetupKeyBendLfo
.public DseTrackEvent_SetupKeyBendLfoEnvelope
.public DseTrackEvent_SetupLfo
.public DseTrackEvent_SetupLfoEnvelope
.public DseTrackEvent_SetupPanLfo
.public DseTrackEvent_SetupPanLfoEnvelope
.public DseTrackEvent_SetupVolumeLfo
.public DseTrackEvent_SetupVolumeLfoEnvelope
.public DseTrackEvent_Signal
.public DseTrackEvent_SongVolumeFade
.public DseTrackEvent_SubLoopBegin
.public DseTrackEvent_SubLoopBreakOnLastIteration
.public DseTrackEvent_SubLoopEnd
.public DseTrackEvent_TuningDeltaCoarse
.public DseTrackEvent_TuningDeltaFine
.public DseTrackEvent_TuningDeltaFull
.public DseTrackEvent_TuningFade
.public DseTrackEvent_UseKeyBendLfo
.public DseTrackEvent_UseLfo
.public DseTrackEvent_UsePanLfo
.public DseTrackEvent_UseVolumeLfo
.public DseTrackEvent_VolumeDelta
.public DseTrackEvent_VolumeFade
.public DseTrackEvent_Wait16
.public DseTrackEvent_Wait24
.public DseTrackEvent_Wait8
.public DseTrackEvent_WaitDelta
.public DseTrackEvent_WaitSame
.public DseTrackEvent_WaitUntilFadeout
.public GetKeyM2N
.public GetKeyM2NBaseForm
.public GetKeyN2M
.public GetKeyN2MBaseForm
.public LEVEL_LIST
.public MISSION_FLOOR_RANKS_AND_ITEM_LISTS_2
.public RANK_STRINGS_1
.public RANK_STRINGS_2
.public RANK_STRINGS_3
.public REMOTE_STRINGS
.public Render3d64Nothing
.public Render3d64Quadrilateral
.public Render3d64Rectangle
.public Render3d64RectangleMulticolor
.public Render3d64Texture
.public Render3d64Texture0x7
.public Render3d64Tiling
.public Render3d64WindowFrame
.public STRING_BALANCE_M_LEVEL_BIN
.public STRING_DUNGEON_DUNGEON_BIN
.public STRING_EFFECT_EFFECT_BIN
.public STRING_MONSTER_MONSTER_BIN
.public STRING_MONSTER_M_ATTACK_BIN
.public STRING_MONSTER_M_GROUND_BIN
.public SoundLfoWave_FullNoiseFunc
.public SoundLfoWave_FullSquareFunc
.public SoundLfoWave_FullTriangleFunc
.public SoundLfoWave_HalfNoiseFunc
.public SoundLfoWave_HalfSquareFunc
.public SoundLfoWave_HalfTriangleFunc
.public SoundLfoWave_InvalidFunc
.public SoundLfoWave_ReverseSawFunc
.public SoundLfoWave_SawFunc
.public TryAssignByte
.public UNOWN_SPECIES_ADDITIONAL_CHARS
.public ValidateLegendaryChallengeMission
.public ValidateNormalChallengeMission
.public _02092474
.public _0209247C
.public _02092484
@@ -1693,7 +1587,109 @@
.public _022BC770
.public _022BC870
.public _022BC970
.public ACTOR_LIST
.public BaseFormsEqual
.public DseTrackEvent_Dummy1Byte
.public DseTrackEvent_Dummy2Bytes
.public DseTrackEvent_Dummy2Bytes2
.public DseTrackEvent_EndTrack
.public DseTrackEvent_ForceLfoEnvelopeLevel
.public DseTrackEvent_Invalid
.public DseTrackEvent_MainLoopBegin
.public DseTrackEvent_OctaveDelta
.public DseTrackEvent_PanDelta
.public DseTrackEvent_PanFade
.public DseTrackEvent_RestoreEnvelopeDefaults
.public DseTrackEvent_SetBank
.public DseTrackEvent_SetBankLsb
.public DseTrackEvent_SetBankMsb
.public DseTrackEvent_SetBpm
.public DseTrackEvent_SetBpm2
.public DseTrackEvent_SetEnvelopeAttackBegin
.public DseTrackEvent_SetEnvelopeAttackTime
.public DseTrackEvent_SetEnvelopeDecayTimeAndSustainLevel
.public DseTrackEvent_SetEnvelopeHoldTime
.public DseTrackEvent_SetEnvelopeReleaseTime
.public DseTrackEvent_SetEnvelopeSustainTime
.public DseTrackEvent_SetExpression
.public DseTrackEvent_SetFlagBit1Unknown
.public DseTrackEvent_SetHoldNotes
.public DseTrackEvent_SetInstrument
.public DseTrackEvent_SetKeyBend
.public DseTrackEvent_SetKeyBendRange
.public DseTrackEvent_SetLfoParameter
.public DseTrackEvent_SetNoteDurationMultiplier
.public DseTrackEvent_SetNoteRandomRegion
.public DseTrackEvent_SetOctave
.public DseTrackEvent_SetOptionalVolume
.public DseTrackEvent_SetPan
.public DseTrackEvent_SetTuning
.public DseTrackEvent_SetTuningJitterAmplitude
.public DseTrackEvent_SetUnknown2
.public DseTrackEvent_SetupKeyBendLfo
.public DseTrackEvent_SetupKeyBendLfoEnvelope
.public DseTrackEvent_SetupLfo
.public DseTrackEvent_SetupLfoEnvelope
.public DseTrackEvent_SetupPanLfo
.public DseTrackEvent_SetupPanLfoEnvelope
.public DseTrackEvent_SetupVolumeLfo
.public DseTrackEvent_SetupVolumeLfoEnvelope
.public DseTrackEvent_SetVolume
.public DseTrackEvent_Signal
.public DseTrackEvent_SongVolumeFade
.public DseTrackEvent_SubLoopBegin
.public DseTrackEvent_SubLoopBreakOnLastIteration
.public DseTrackEvent_SubLoopEnd
.public DseTrackEvent_TuningDeltaCoarse
.public DseTrackEvent_TuningDeltaFine
.public DseTrackEvent_TuningDeltaFull
.public DseTrackEvent_TuningFade
.public DseTrackEvent_UseKeyBendLfo
.public DseTrackEvent_UseLfo
.public DseTrackEvent_UsePanLfo
.public DseTrackEvent_UseVolumeLfo
.public DseTrackEvent_VolumeDelta
.public DseTrackEvent_VolumeFade
.public DseTrackEvent_Wait16
.public DseTrackEvent_Wait24
.public DseTrackEvent_Wait8
.public DseTrackEvent_WaitDelta
.public DseTrackEvent_WaitSame
.public DseTrackEvent_WaitUntilFadeout
.public GetKeyM2N
.public GetKeyM2NBaseForm
.public GetKeyN2M
.public GetKeyN2MBaseForm
.public LEVEL_LIST
.public mbtowc
.public MISSION_FLOOR_RANKS_AND_ITEM_LISTS_2
.public RANK_STRINGS_1
.public RANK_STRINGS_2
.public RANK_STRINGS_3
.public REMOTE_STRINGS
.public Render3d64Nothing
.public Render3d64Quadrilateral
.public Render3d64Rectangle
.public Render3d64RectangleMulticolor
.public Render3d64Texture
.public Render3d64Texture0x7
.public Render3d64Tiling
.public Render3d64WindowFrame
.public SoundLfoWave_FullNoiseFunc
.public SoundLfoWave_FullSquareFunc
.public SoundLfoWave_FullTriangleFunc
.public SoundLfoWave_HalfNoiseFunc
.public SoundLfoWave_HalfSquareFunc
.public SoundLfoWave_HalfTriangleFunc
.public SoundLfoWave_InvalidFunc
.public SoundLfoWave_ReverseSawFunc
.public SoundLfoWave_SawFunc
.public STRING_BALANCE_M_LEVEL_BIN
.public STRING_DUNGEON_DUNGEON_BIN
.public STRING_EFFECT_EFFECT_BIN
.public STRING_MONSTER_M_ATTACK_BIN
.public STRING_MONSTER_M_GROUND_BIN
.public STRING_MONSTER_MONSTER_BIN
.public sub_02003620
.public sub_02003780
.public sub_02007EC0
@@ -1766,3 +1762,7 @@
.public sub_0209081C
.public sub_0209086C
.public sub_020908A0
.public TryAssignByte
.public UNOWN_SPECIES_ADDITIONAL_CHARS
.public ValidateLegendaryChallengeMission
.public ValidateNormalChallengeMission

View File

@@ -74,7 +74,6 @@
.public sub_0204F1B4
.public sub_0204F1F0
.public sub_0204F244
.public sub_0204F55C
.public sub_02057CE8
.public sub_020582E0
.public sub_020587C8
@@ -85,6 +84,7 @@
.public sub_0205BC94
.public sub_0205F504
.public TEAM_MEMBER_TABLE_PTR
.public TilesetSecondaryTerrainIsChasm
.public UnloadFile
.public UnloadOverlay
.public UnloadWte

View File

@@ -1,34 +1,4 @@
#pragma once
.public CanSeeInvisibleMonsters
.public DUNGEON_PTR
.public DrawMinimapTile
.public EntityIsValid__022E1A1C
.public EntityIsValid__022E32E8
.public GetForcedLossReason
.public GetMessageLogPreprocessorArgs
.public GetMonsterName
.public HasDropeyeStatus
.public IsBlinded
.public IsPositionActuallyInSight
.public IsPositionInSight
.public ItemIsActive__022E330C
.public PrepareItemForPrinting2
.public SetPreprocessorArgsStringToName
.public StringFromId
.public SubstitutePlaceholderTrapTags
.public TeamMemberHasEnabledIqSkill
.public UpdateMinimap
.public UpdateTrapsVisibility
.public abs
.public ov29_022E34C8
.public ov29_022E3534
.public ov29_022E3A58
.public ov29_022ED82C
.public ov29_023047DC
.public ov29_02304954
.public ov29_0233711C
.public ov29_023372A4
.public ov29_0237C84C
.public strcpy
.public sub_02009194
.public sub_020091B0

View File

@@ -0,0 +1,33 @@
#pragma once
.public abs
.public CanSeeInvisibleMonsters
.public DrawMinimapTile
.public DUNGEON_PTR
.public EntityIsValid__022E1A1C
.public EntityIsValid__022E32E8
.public GetForcedLossReason
.public GetMessageLogPreprocessorArgs
.public GetMonsterName
.public HasDropeyeStatus
.public IsBlinded
.public IsPositionActuallyInSight
.public ItemIsActive__022E330C
.public ov29_022E34C8
.public ov29_022E3534
.public ov29_022E3A58
.public ov29_022ED82C
.public ov29_023047DC
.public ov29_02304954
.public ov29_0233711C
.public ov29_023372A4
.public ov29_0237C84C
.public PrepareItemForPrinting2
.public SetPreprocessorArgsStringToName
.public strcpy
.public StringFromId
.public sub_02009194
.public sub_020091B0
.public SubstitutePlaceholderTrapTags
.public TeamMemberHasEnabledIqSkill
.public UpdateMinimap
.public UpdateTrapsVisibility

View File

@@ -1,8 +1,8 @@
#pragma once
.public _020AFC4C
.public DUNGEON_PTR
.public EntityIsValid__022E95F4
.public LEADER_PTR
.public _020AFC4C
.public ov29_0237C888
.public ov29_0237C88A
.public ov29_0237C88E

View File

@@ -28,8 +28,8 @@
.public GetTileAtEntity
.public GetTileSafe
.public IQ_SKILLS
.public IsLevelResetDungeon
.public IsBehaviorLoneOutlaw
.public IsLevelResetDungeon
.public IsMonsterIdInNormalRange
.public IsOutlawOrChallengeRequestFloor
.public IsRecruitingAllowed

View File

@@ -11,8 +11,8 @@
.public CheckVariousStatuses__023016DC
.public Conversion2IsActive
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DiscoverMinimap
.public DUNGEON_PTR
.public DungeonRandInt
.public EnableIqSkill
.public EndBurnClassStatus
@@ -36,19 +36,6 @@
.public LogMessageByIdWithPopup
.public LogMessageByIdWithPopupCheckUser
.public LogMessageByIdWithPopupCheckUserTarget
.public PointCameraToMonster
.public SECONDARY_TERRAIN_TYPES
.public SetActionPassTurnOrWalk
.public SetPreprocessorArgsIdVal
.public SetPreprocessorArgsStringToName
.public ShouldDisplayEntityWrapper
.public SubFixedPoint
.public SubstitutePlaceholderStringTags
.public TryInflictBurnStatus
.public TryInflictPausedStatus
.public UpdateCamera
.public UpdateMinimap
.public UpdateStatusIconFlags
.public ov29_022E4160
.public ov29_022E81F8
.public ov29_022EA370
@@ -58,8 +45,21 @@
.public ov29_02304A48
.public ov29_02307CE0
.public ov29_02307DD0
.public PointCameraToMonster
.public SECONDARY_TERRAIN_TYPES
.public SetActionPassTurnOrWalk
.public SetPreprocessorArgsIdVal
.public SetPreprocessorArgsStringToName
.public ShouldDisplayEntityWrapper
.public sub_02017C50
.public sub_0204AEF0
.public sub_02050FF8
.public sub_02052E2C
.public sub_02056228
.public SubFixedPoint
.public SubstitutePlaceholderStringTags
.public TryInflictBurnStatus
.public TryInflictPausedStatus
.public UpdateCamera
.public UpdateMinimap
.public UpdateStatusIconFlags

View File

@@ -2,8 +2,8 @@
.public AbilityIsActiveVeneer
.public CanMonsterSpawn
.public CheckTeamMemberIdx
.public DUNGEON_PTR
.public DefenderAbilityIsActive__022F96CC
.public DUNGEON_PTR
.public DungeonRandInt
.public EndBurnClassStatus
.public EndCringeClassStatus
@@ -16,20 +16,20 @@
.public GetExclusiveItemWithEffectFromBag
.public GetMaxPp
.public GetMaxPpWrapper
.public GetSuccessfulExitTracker
.public IqSkillIsEnabled
.public IsMonsterIdInNormalRange
.public IsMonsterSleeping
.public LogMessageByIdWithPopupCheckUser
.public PrepareItemForPrinting__02345728
.public RestoreAllMovePP
.public SetPreprocessorArgsIdVal
.public ShowPpRestoreEffect
.public SubstitutePlaceholderStringTags
.public ov29_022E0A04
.public ov29_022E68BC
.public ov29_022E68D8
.public ov29_022E8104
.public ov29_022E81F8
.public ov29_022EA370
.public ov29_02304A48
.public PrepareItemForPrinting__02345728
.public RestoreAllMovePP
.public SetPreprocessorArgsIdVal
.public ShowPpRestoreEffect
.public sub_0201405C
.public SubstitutePlaceholderStringTags

View File

@@ -1,5 +1,4 @@
#pragma once
.public _s32_div_f
.public CopySpawnEntriesMaster
.public DUNGEON_PTR
.public DungeonRngSetPrimary
@@ -18,22 +17,21 @@
.public GetOffensiveStatAtLevel
.public GetOutlawSpawnData
.public GetTile
.public GetTurnLimit
.public GroundToDungeonMoveset
.public IQ_SKILLS
.public InitMoveCheckId
.public InitTeamMember
.public IQ_SKILLS
.public IsCurrentMissionType
.public IsDestinationFloorWithFixedRoom
.public IsDestinationFloorWithMonster
.public IsFullFloorFixedRoom
.public IsInvalidSpawnTile
.public JoinedAtRangeCheck2Veneer
.public LoadWazaP2
.public SetMonsterLevelAndId
.public UnloadCurrentWazaP
.public _s32_div_f
.public ov29_022FB83C
.public ov29_022FCD04
.public ov29_023021F0
.public ov29_02351E28
.public SetMonsterLevelAndId
.public sub_0200F9B4
.public UnloadCurrentWazaP

View File

@@ -41,6 +41,7 @@
.public InitEnemyStatsAndMoves
.public InitStandardItem
.public IsBagFull
.public IsBehaviorLoneOutlaw
.public IsCurrentFixedRoomBossFight
.public IsCurrentMissionType
.public IsDestinationFloorWithFixedRoom
@@ -48,7 +49,6 @@
.public IsDestinationFloorWithHiddenOutlaw
.public IsDestinationFloorWithMonster
.public IsInvalidSpawnTile
.public IsBehaviorLoneOutlaw
.public IsOutlawMonsterHouseFloor
.public IsSecretBazaarNpcBehavior
.public IsSpecialStoryAllyOrClient

View File

@@ -24,6 +24,7 @@
.public GetTalkLine
.public GetTile
.public GetUnlockedTacticFlags
.public InitMoveWrapper
.public InitPortraitDungeon
.public IsExperienceLocked
.public IsHero
@@ -50,7 +51,6 @@
.public ov29_023021F0
.public ov29_02304830
.public ov29_02318D58
.public ov29_0231EA04
.public ov29_02338988
.public ov29_0234B4E0
.public ov29_0234CFA0

View File

@@ -41,7 +41,7 @@
.public ov29_022E3A58
.public ov29_022E543C
.public ov29_022EA370
.public ov29_022FBE04
.public IsTeamMemberOnFirstTurnInFixedRoom
.public ov29_02337D68
.public ov29_02353318
.public SubstitutePlaceholderStringTags

View File

@@ -40,9 +40,9 @@
.public ov29_02300D50
.public ov29_0230D654
.public ov29_0230F728
.public ov29_0231EDFC
.public ov29_023380FC
.public ov29_023535DC
.public RAPID_SPIN_BINDING_REMOVAL
.public ResetDamageData
.public TryHurl
.public UpdateAiTargetPos

View File

@@ -31,8 +31,8 @@
.public IsBlinded
.public IsCurrentMissionType
.public IsExperienceLocked
.public IsMonsterLoneOutlaw
.public IsMonsterIdInNormalRangeVeneer
.public IsMonsterLoneOutlaw
.public IsSecretBazaarNpcBehavior
.public IsSpecialStoryAlly
.public ItemIsActive__0230A9DC

View File

@@ -20,13 +20,13 @@
.public IsAuraBow
.public IsExperienceLocked
.public IsFloorOver
.public IsItemUnkMissionItem2
.public ItemIsActive__0230F810
.public LogMessageByIdWithPopup
.public ov29_022F52BC
.public ov29_022F9EA0
.public ov29_02345004
.public ov29_02347040
.public IsItemUnkMissionItem2
.public ov29_02348D3C
.public ov29_02348DD8
.public ov29_02348ECC

View File

@@ -2,9 +2,10 @@
.public AbilityIsActiveVeneer
.public CalcStatusDuration
.public ChangeShayminForme
.public CopyStringFromId
.public DefenderAbilityIsActive__02311B94
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public DefenderAbilityIsActive__02311B94
.public EntityIsValid__023118B4
.public ExclusiveItemEffectIsActiveWithLogging
.public GetMessageLogPreprocessorArgs
@@ -16,14 +17,6 @@
.public ItemIsActive__02311BF8
.public LogMessageByIdWithPopupCheckUserTarget
.public MonsterIsType
.public SECONDARY_TERRAIN_TYPES
.public SafeguardIsActive
.public SetPreprocessorArgsIdVal
.public SetPreprocessorArgsStringToName
.public SubstitutePlaceholderStringTags
.public TryActivateQuickFeet
.public UpdateStatusIconFlags
.public ov10_022C4728
.public ov10_022C479C
.public ov10_022C47A0
.public ov10_022C4804
@@ -52,3 +45,12 @@
.public ov29_022E53EC
.public ov29_02304A48
.public ov29_02304A84
.public SafeguardIsActive
.public SECONDARY_TERRAIN_TYPES
.public SetMessageLogPreprocessorArgsString
.public SetPreprocessorArgsIdVal
.public SetPreprocessorArgsStringToName
.public SLEEPLESSNESS_TURN_RANGE
.public SubstitutePlaceholderStringTags
.public TryActivateQuickFeet
.public UpdateStatusIconFlags

View File

@@ -11,6 +11,7 @@
.public GetExclusiveItemWithEffectFromBag
.public GetMessageLogPreprocessorArgs
.public GetTile
.public GetTreatmentBetweenMonstersIgnoreStatus
.public IsProtectedFromNegativeStatus
.public IsProtectedFromStatDrops
.public ItemIsActive__02311BF8
@@ -26,8 +27,7 @@
.public PlayDefensiveStatMultiplierDownEffect
.public PlayHitChanceUpEffect
.public PlayHitChanceDownEffect
.public GetTreatmentBetweenMonstersIgnoreStatus
.public PlayCringeExclamationPointEffect
.public PlayExclamationPointEffect__022E5D4C
.public PrepareItemForPrinting__02345728
.public SafeguardIsActive
.public SetMessageLogPreprocessorArgsString

View File

@@ -9,6 +9,7 @@
.public BoostOffensiveStat
.public CalcStatusDuration
.public CeilFixedPoint
.public DECOY_TURN_RANGE
.public DetermineMonsterShadow
.public DisplayAnimatedNumbers
.public DUNGEON_PTR
@@ -42,7 +43,6 @@
.public ov10_022C47A4
.public ov10_022C47AC
.public ov10_022C47B0
.public ov10_022C47B4
.public ov10_022C47BC
.public ov10_022C47C8
.public ov10_022C47D4

View File

@@ -3,7 +3,7 @@
.public EntityIsValid__02318D34
.public EntityIsValid__02318E4C
.public LogMessageByIdWithPopupCheckUserTarget
.public ov10_022C4750
.public ov29_022E3F20
.public SET_REFLECT_STATUS_TURN_RANGE
.public SubstitutePlaceholderStringTags
.public UpdateStatusIconFlags

View File

@@ -2,16 +2,15 @@
.public AbilityIsActiveVeneer
.public CalcStatusDuration
.public EntityIsValid__02318E4C
.public LIGHT_SCREEN_TURN_RANGE
.public LogMessageByIdWithPopupCheckUserTarget
.public ov10_022C4730
.public ov10_022C4734
.public ov10_022C4738
.public ov10_022C4740
.public MAGIC_COAT_TURN_RANGE
.public MIRROR_MOVE_TURN_RANGE
.public MIST_TURN_RANGE
.public ov10_022C4794
.public ov10_022C47B8
.public ov10_022C47CC
.public ov10_022C47F4
.public ov10_022C4840
.public ov10_022C4854
.public ov10_022C485C
.public ov29_022E3F74
@@ -28,5 +27,6 @@
.public ov29_022E41AC
.public ov29_022E543C
.public REFLECT_LIGHT_SCREEN_TURN_RANGE
.public SAFEGUARD_TURN_RANGE
.public SubstitutePlaceholderStringTags
.public UpdateStatusIconFlags

View File

@@ -16,6 +16,7 @@
.public DUNGEON_PTR
.public DungeonRandInt
.public DungeonRandOutcome__022EAB20
.public DungeonTmLearnMove
.public EndBurnClassStatus
.public EndFrozenClassStatus
.public EntityIsValid__0231CBC8
@@ -79,7 +80,6 @@
.public ov29_022FBA54
.public ov29_023009A0
.public ov29_023021F0
.public ov29_023038D4
.public ov29_02339FF4
.public ov29_0234BA54
.public ov29_023529AC

View File

@@ -4,13 +4,13 @@
.public DUNGEON_PTR
.public EnsureCanStandCurrentTile
.public EntityIsValid__0231EDD8
.public FloorSecondaryTerrainIsChasm
.public GetMoveCategory
.public GetTile
.public GetTileSafe
.public InitMove
.public IsFullFloorFixedRoom
.public LogMessageByIdWithPopupCheckUser
.public ov29_022E0378
.public ov29_022EA370
.public ov29_022F9C74
.public ov29_02305814

View File

@@ -14,10 +14,10 @@
.public GetTile
.public GetTreatmentBetweenMonsters
.public HasDropeyeStatus
.public HURL_DAMAGE
.public InitMove
.public LogMessageByIdWithPopupCheckUserTarget
.public MoveMonsterToPos
.public ov10_022C4458
.public ov29_022E9298
.public ov29_022EA370
.public ov29_022FF764

View File

@@ -68,7 +68,6 @@
.public MistIsActive
.public ov10_022C456C
.public ov10_022C45BC
.public ov29_022E09E8
.public ov29_022E1AAC
.public ov29_022E1AD4
.public ov29_022E1EF8
@@ -86,8 +85,6 @@
.public ov29_0230DAB8
.public ov29_02318BBC
.public ov29_02318D58
.public ov29_0231EDFC
.public ov29_0231F6E4
.public ov29_02332F18
.public ov29_02336694
.public ov29_0234BA54
@@ -99,6 +96,7 @@
.public RevealStairs
.public RevealWholeFloor
.public ROOST_HP_RESTORATION_TABLE
.public SetDungeonEscapeFields
.public SetMessageLogPreprocessorArgsString
.public SetPreprocessorArgsIdVal
.public SetReflectStatus
@@ -117,6 +115,7 @@
.public TryDecreaseBelly
.public TryDrought
.public TryEatItem
.public TryHurl
.public TryIncreaseHp
.public TryInflictAquaRingStatus
.public TryInflictBurnStatus
@@ -141,6 +140,7 @@
.public TryRemoveTrap
.public TrySpawnTrap
.public TrySwitchPlace
.public TryTrawl
.public TryWarp
.public UpdateMinimap
.public UpdateTrapsVisibility

View File

@@ -1,5 +1,5 @@
#pragma once
.public DUNGEON_PTR
.public IsGoldenChamber
.public PositionHasItem
.public ov29_023369F8
.public PositionHasItem

View File

@@ -1,11 +1,12 @@
#pragma once
.public DEFAULT_TILE
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public Debug_Print0
.public DEFAULT_TILE
.public DetermineMonsterShadow
.public DIRECTIONS_XY
.public DrawMinimapTile
.public DUNGEON_PTR
.public EntityIsValid__02337CA8
.public FloorSecondaryTerrainIsChasm
.public GetBgRegionArea
.public GetLeader
.public GetTile
@@ -15,8 +16,6 @@
.public IsCurrentFixedRoomBossFight
.public IsSecretBazaar
.public MOBILITY_TYPE_TO_DUNGEON_MOBILITY_TYPE
.public RandIntSafe
.public SECONDARY_TERRAIN_TYPES
.public ov10_022C2588
.public ov10_022C25EC
.public ov10_022C2638
@@ -24,7 +23,6 @@
.public ov10_022C26A0
.public ov10_022C2720
.public ov29_022DE0EC
.public ov29_022E0378
.public ov29_022E2930
.public ov29_022E66C4
.public ov29_022E9F80
@@ -37,6 +35,8 @@
.public ov29_02352F14
.public ov29_0237CAA0
.public ov29_0237CAAC
.public RandIntSafe
.public SECONDARY_TERRAIN_TYPES
.public sub_0204AED0
.public sub_02051D8C
.public sub_02051E60

View File

@@ -25,6 +25,7 @@
.public HandleSir0Translation
.public HIDDEN_STAIRS_SPAWN_BLOCKED
.public InitRender3dElement64
.public IsBehaviorLoneOutlaw
.public IsCurrentMissionType
.public IsCurrentMissionTypeExact
.public IsCurrentTilesetBackground
@@ -32,7 +33,6 @@
.public IsExperienceLocked
.public IsGoldenChamber
.public IsHiddenStairsFloor
.public IsBehaviorLoneOutlaw
.public IsOutlawMonsterHouseFloor
.public IsSecretBazaar
.public LoadFixedRoomData

View File

@@ -43,7 +43,6 @@
.public MONEY_QUANTITY_TABLE
.public MonsterHasEmbargoStatus
.public ov10_022C4CD8
.public ov29_022E09E8
.public ov29_022E9488
.public ov29_022EBB8C
.public ov29_022EBB98
@@ -58,6 +57,7 @@
.public PrepareItemForPrinting__02345728
.public PrepareItemForPrinting__02345754
.public RemoveEmptyItemsInBag
.public SetDungeonEscapeFields
.public SetEntityPixelPosXY
.public SetItemAcquired
.public SinAbs4096

View File

@@ -1,9 +1,10 @@
#pragma once
.public _020A1878
.public AdvanceFrame
.public CanSeeTarget
.public DUNGEON_PTR
.public DisplayMessage
.public DisplayMessage2
.public DUNGEON_PTR
.public DungeonRandInt
.public ExclusiveItemEffectFlagTest
.public ExclusiveItemEffectIsActive__02347B80
@@ -26,17 +27,7 @@
.public MemAlloc
.public MemFree
.public MemZero
.public PrepareItemForPrinting__02345728
.public SetMessageLogPreprocessorArgsFlagVal
.public SetMessageLogPreprocessorArgsString
.public StartFadeDungeonWrapper
.public SubstitutePlaceholderStringTags
.public THROWN_ITEM_HIT_CHANCE
.public TrySpawnGoldenChamber
.public YesNoMenu
.public _020A1878
.public ov10_022C48E4
.public ov29_022E09E8
.public ov29_022E0DD8
.public ov29_022E0DE4
.public ov29_022E0DFC
@@ -52,6 +43,11 @@
.public ov29_0234C738
.public ov29_023537C4
.public ov29_0237C694
.public PrepareItemForPrinting__02345728
.public SetDungeonEscapeFields
.public SetMessageLogPreprocessorArgsFlagVal
.public SetMessageLogPreprocessorArgsString
.public StartFadeDungeonWrapper
.public strcpy
.public sub_02011220
.public sub_02015328
@@ -62,3 +58,7 @@
.public sub_02017A20
.public sub_02051DFC
.public sub_02051EB8
.public SubstitutePlaceholderStringTags
.public THROWN_ITEM_HIT_CHANCE
.public TrySpawnGoldenChamber
.public YesNoMenu

View File

@@ -8,8 +8,6 @@
.public IsItemWithFlagsInBag
.public LoadMonsterSprite
.public LogMessageByIdWithPopupCheckUser
.public PrepareItemForPrinting__02345728
.public SubstitutePlaceholderStringTags
.public ov29_02348ABC
.public ov29_02348B28
.public ov29_02348BA0
@@ -21,3 +19,5 @@
.public ov29_0234AA98
.public ov29_0234ABB0
.public ov29_0234AC8C
.public PrepareItemForPrinting__02345728
.public SubstitutePlaceholderStringTags

View File

@@ -51,7 +51,6 @@
.public MESSAGE_LOG_INFO
.public MusicTableIdxToMusicId
.public ov10_022BFD20
.public ov29_022E09E8
.public ov29_022E0B60
.public ov29_022E2CA0
.public ov29_022E550C
@@ -88,6 +87,7 @@
.public PreprocessString
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public SetDungeonEscapeFields
.public SetPortraitLayout
.public ShouldDisplayEntityWrapper
.public ShouldMonsterHeadToStairs

View File

@@ -112,6 +112,7 @@
.public IsExperienceLocked
.public IsHeldItemInBag
.public IsInventoryMenuActive
.public IsItemUnkMissionItem2
.public IsItemUsableNow
.public IsMonsterOnTeam
.public IsNot2TurnsMoveOrSketch
@@ -168,7 +169,6 @@
.public ov29_023468FC
.public ov29_02346E5C
.public ov29_02347100
.public IsItemUnkMissionItem2
.public ov29_0234E988
.public ov29_0234EA18
.public ov29_0234EBCC

View File

@@ -101,10 +101,10 @@ _0204BEC8: .word _0209CF48
arm_func_start sub_0204BECC
sub_0204BECC: ; 0x0204BECC
ldr ip, _0204BED4 ; =FlagCalc
ldr ip, _0204BED4 ; =CalcScriptVariables
bx ip
.align 2, 0
_0204BED4: .word FlagCalc
_0204BED4: .word CalcScriptVariables
arm_func_end sub_0204BECC
arm_func_start sub_0204BED8
@@ -117,7 +117,7 @@ sub_0204BED8: ; 0x0204BED8
bl LoadScriptVariableValue
mov r1, r5
mov r2, r4
bl FlagCalc
bl CalcScriptVariables
mov r2, r0
mov r0, r7
mov r1, r6
@@ -140,7 +140,7 @@ sub_0204BF10: ; 0x0204BF10
mov r1, r0
mov r0, r4
mov r2, r5
bl FlagCalc
bl CalcScriptVariables
mov r2, r0
mov r0, r8
mov r1, r7

View File

@@ -1807,8 +1807,8 @@ _0204F4EC:
_0204F558: .word 0x00004001
arm_func_end sub_0204F488
arm_func_start sub_0204F55C
sub_0204F55C: ; 0x0204F55C
arm_func_start TilesetSecondaryTerrainIsChasm
TilesetSecondaryTerrainIsChasm: ; 0x0204F55C
ldr r1, _0204F578 ; =SECONDARY_TERRAIN_TYPES
ldrb r0, [r1, r0]
cmp r0, #2
@@ -1818,7 +1818,7 @@ sub_0204F55C: ; 0x0204F55C
bx lr
.align 2, 0
_0204F578: .word SECONDARY_TERRAIN_TYPES
arm_func_end sub_0204F55C
arm_func_end TilesetSecondaryTerrainIsChasm
arm_func_start GetNbFloors
GetNbFloors: ; 0x0204F57C

View File

@@ -1542,7 +1542,7 @@ _022C3A64:
b _022C3E54
_022C3AD4:
mov r0, r5
bl sub_0204F55C
bl TilesetSecondaryTerrainIsChasm
cmp r0, #0
sub r0, r6, #1
str r0, [sp, #0x20]

View File

@@ -95,8 +95,8 @@ CRUNCH_LOWER_DEFENSE_CHANCE:
.global ov10_022C4454
ov10_022C4454:
.byte 0x02, 0x00, 0x00, 0x00
.global ov10_022C4458
ov10_022C4458:
.global HURL_DAMAGE
HURL_DAMAGE:
.byte 0x0A, 0x00, 0x00, 0x00
.global TRAP_BUSTER_ACTIVATION_CHANCE
TRAP_BUSTER_ACTIVATION_CHANCE:

View File

@@ -167,26 +167,26 @@ SLEEP_TURN_RANGE:
.global NIGHTMARE_TURN_RANGE
NIGHTMARE_TURN_RANGE:
.byte 0x04, 0x00, 0x08, 0x00
.global ov10_022C4728
ov10_022C4728:
.global SLEEPLESSNESS_TURN_RANGE
SLEEPLESSNESS_TURN_RANGE:
.byte 0x7F, 0x00, 0x7F, 0x00
.global REFLECT_LIGHT_SCREEN_TURN_RANGE
REFLECT_LIGHT_SCREEN_TURN_RANGE:
.byte 0x0A, 0x00, 0x0C, 0x00
.global ov10_022C4730
ov10_022C4730:
.global LIGHT_SCREEN_TURN_RANGE
LIGHT_SCREEN_TURN_RANGE:
.byte 0x0A, 0x00, 0x0C, 0x00
.global ov10_022C4734
ov10_022C4734:
.global SAFEGUARD_TURN_RANGE
SAFEGUARD_TURN_RANGE:
.byte 0x0F, 0x00, 0x14, 0x00
.global ov10_022C4738
ov10_022C4738:
.global MIST_TURN_RANGE
MIST_TURN_RANGE:
.byte 0x0A, 0x00, 0x0E, 0x00
.global ov10_022C473C
ov10_022C473C:
.byte 0x50, 0x00, 0x00, 0x00
.global ov10_022C4740
ov10_022C4740:
.global MAGIC_COAT_TURN_RANGE
MAGIC_COAT_TURN_RANGE:
.byte 0x0A, 0x00, 0x0C, 0x00
.global BURN_DAMAGE_MULTIPLIER
BURN_DAMAGE_MULTIPLIER:
@@ -197,8 +197,8 @@ REST_TURN_RANGE:
.global MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER
MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER:
.byte 0xB3, 0x01, 0x00, 0x00
.global ov10_022C4750
ov10_022C4750:
.global SET_REFLECT_STATUS_TURN_RANGE
SET_REFLECT_STATUS_TURN_RANGE:
.byte 0x06, 0x00, 0x0C, 0x00
.global ov10_022C4754
ov10_022C4754:
@@ -272,8 +272,8 @@ ov10_022C47AC:
.global ov10_022C47B0
ov10_022C47B0:
.byte 0x0A, 0x00, 0x0C, 0x00
.global ov10_022C47B4
ov10_022C47B4:
.global DECOY_TURN_RANGE
DECOY_TURN_RANGE:
.byte 0x14, 0x00, 0x32, 0x00
.global ov10_022C47B8
ov10_022C47B8:
@@ -377,8 +377,8 @@ ov10_022C4838:
.global ov10_022C483C
ov10_022C483C:
.byte 0x3C, 0x00, 0x00, 0x00
.global ov10_022C4840
ov10_022C4840:
.global MIRROR_MOVE_TURN_RANGE
MIRROR_MOVE_TURN_RANGE:
.byte 0x01, 0x00, 0x03, 0x00
.global AIR_BLADE_DAMAGE_MULTIPLIER
AIR_BLADE_DAMAGE_MULTIPLIER:

View File

@@ -4,8 +4,8 @@
.text
; https://decomp.me/scratch/Cgi9a
arm_func_start ov29_022E0378
ov29_022E0378: ; 0x022E0378
arm_func_start FloorSecondaryTerrainIsChasm
FloorSecondaryTerrainIsChasm: ; 0x022E0378
ldr r1, _022E03A8 ; =ov29_0237CFC0
ldrb r1, [r1]
cmp r1, #0
@@ -21,7 +21,7 @@ ov29_022E0378: ; 0x022E0378
.align 2, 0
_022E03A8: .word ov29_0237CFC0
_022E03AC: .word SECONDARY_TERRAIN_TYPES
arm_func_end ov29_022E0378
arm_func_end FloorSecondaryTerrainIsChasm
arm_func_start GetFloorType
GetFloorType: ; 0x022E03B0

View File

@@ -126,8 +126,8 @@ FadeToBlack: ; 0x022E0968
_022E09E4: .word DUNGEON_PTR
arm_func_end FadeToBlack
arm_func_start ov29_022E09E8
ov29_022E09E8: ; 0x022E09E8
arm_func_start SetDungeonEscapeFields
SetDungeonEscapeFields: ; 0x022E09E8
ldr r2, _022E0A00 ; =DUNGEON_PTR
ldr r3, [r2]
str r0, [r3, #0x18]
@@ -136,17 +136,17 @@ ov29_022E09E8: ; 0x022E09E8
bx lr
.align 2, 0
_022E0A00: .word DUNGEON_PTR
arm_func_end ov29_022E09E8
arm_func_end SetDungeonEscapeFields
arm_func_start ov29_022E0A04
ov29_022E0A04: ; 0x022E0A04
arm_func_start GetSuccessfulExitTracker
GetSuccessfulExitTracker: ; 0x022E0A04
ldr r0, _022E0A14 ; =DUNGEON_PTR
ldr r0, [r0]
ldr r0, [r0, #0x18]
bx lr
.align 2, 0
_022E0A14: .word DUNGEON_PTR
arm_func_end ov29_022E0A04
arm_func_end GetSuccessfulExitTracker
arm_func_start ov29_022E0A18
ov29_022E0A18: ; 0x022E0A18

View File

@@ -42,822 +42,3 @@ ov29_022E2930: ; 0x022E2930
bl IsPositionActuallyInSight
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_022E2930
arm_func_start CanTargetPosition
CanTargetPosition: ; 0x022E2954
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl HasDropeyeStatus
mov r2, r0
mov r1, r4
add r0, r5, #4
bl IsPositionInSight
ldmia sp!, {r3, r4, r5, pc}
arm_func_end CanTargetPosition
arm_func_start PopulateActiveMonsterPtrs
PopulateActiveMonsterPtrs: ; 0x022E2978
#ifdef JAPAN
#define OV29_022E2978_OFFSET -0xA4
#else
#define OV29_022E2978_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, #0
ldr r6, _022E2A34 ; =DUNGEON_PTR
mov r4, r5
_022E2988:
ldr r0, [r6]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb28 + OV29_022E2978_OFFSET]
mov r0, r7
bl EntityIsValid__022E1A1C
cmp r0, #0
ldrne r0, [r6]
add r4, r4, #1
addne r0, r0, r5, lsl #2
addne r0, r0, #0x12000
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
addne r5, r5, #1
cmp r4, #4
blt _022E2988
ldr r6, _022E2A34 ; =DUNGEON_PTR
mov r4, #0
_022E29CC:
ldr r0, [r6]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb38 + OV29_022E2978_OFFSET]
mov r0, r7
bl EntityIsValid__022E1A1C
cmp r0, #0
ldrne r0, [r6]
add r4, r4, #1
addne r0, r0, r5, lsl #2
addne r0, r0, #0x12000
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
addne r5, r5, #1
cmp r4, #0x10
blt _022E29CC
mov r2, #0
ldr r1, _022E2A34 ; =DUNGEON_PTR
b _022E2A28
_022E2A14:
ldr r0, [r1]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
str r2, [r0, #0xb78 + OV29_022E2978_OFFSET]
add r5, r5, #1
_022E2A28:
cmp r5, #0x14
blt _022E2A14
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022E2A34: .word DUNGEON_PTR
arm_func_end PopulateActiveMonsterPtrs
arm_func_start GetTeamMemberIndex
GetTeamMemberIndex: ; 0x022E2A38
ldr r1, _022E2A74 ; =DUNGEON_PTR
mov r2, #0
ldr r3, [r1]
b _022E2A64
_022E2A48:
add r1, r3, r2, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
cmp r0, r1
moveq r0, r2
bxeq lr
add r2, r2, #1
_022E2A64:
cmp r2, #4
blt _022E2A48
mvn r0, #0
bx lr
.align 2, 0
_022E2A74: .word DUNGEON_PTR
arm_func_end GetTeamMemberIndex
arm_func_start ov29_022E2A78
ov29_022E2A78: ; 0x022E2A78
stmdb sp!, {r4, lr}
ldr r2, [r1]
mov r4, r0
cmp r2, #1
beq _022E2AA0
cmp r2, #2
beq _022E2AAC
cmp r2, #3
ldmeqia sp!, {r4, pc}
b _022E2ABC
_022E2AA0:
ldr r1, [r1, #0xb4]
bl GetMonsterName
ldmia sp!, {r4, pc}
_022E2AAC:
ldr r1, [r1, #0xb4]
ldrb r1, [r1]
bl ov29_022ED82C
ldmia sp!, {r4, pc}
_022E2ABC:
ldr r0, _022E2AD4 ; =0x00000A42
bl StringFromId
mov r1, r0
mov r0, r4
bl strcpy
ldmia sp!, {r4, pc}
.align 2, 0
#ifdef JAPAN
_022E2AD4: .word 0x00000B42
#else
_022E2AD4: .word 0x00000A42
#endif
arm_func_end ov29_022E2A78
arm_func_start SubstitutePlaceholderStringTags
SubstitutePlaceholderStringTags: ; 0x022E2AD8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r7, r0
mov r5, r2
bl GetMessageLogPreprocessorArgs
ldr r1, [r6]
mov r4, r0
cmp r1, #1
beq _022E2B10
cmp r1, #2
beq _022E2B3C
cmp r1, #3
beq _022E2B2C
b _022E2B50
_022E2B10:
mov r1, #0
str r1, [sp]
ldr r2, [r6, #0xb4]
mov r1, r7
mov r3, r5
bl SetPreprocessorArgsStringToName
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B2C:
ldr r2, [r6, #0xb4]
mov r1, r7
bl PrepareItemForPrinting2
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B3C:
ldr r2, [r6, #0xb4]
mov r1, r7
ldrb r2, [r2]
bl SubstitutePlaceholderTrapTags
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B50:
ldr r0, _022E2B64 ; =0x00000A42
bl StringFromId
add r1, r4, r7, lsl #2
str r0, [r1, #0x38]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
#ifdef JAPAN
_022E2B64: .word 0x00000B42
#else
_022E2B64: .word 0x00000A42
#endif
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
#ifdef JAPAN
#define OV29_022E2B68_OFFSET -0xA4
#else
#define OV29_022E2B68_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _022E2C5C ; =DUNGEON_PTR
movs r5, r0
ldr r2, [r1]
mov r1, #0
add r0, r2, #0x21c + OV29_022E2B68_OFFSET
add r4, r0, #0x1a000
strh r1, [r4, #8]
ldr r0, _022E2C60 ; =0x0001A21C
strh r1, [r4, #0xa]
strh r1, [r2, r0]
strh r1, [r4, #2]
strh r1, [r4, #0xc]
strh r1, [r4, #0xe]
strh r1, [r4, #4]
strh r1, [r4, #6]
str r1, [r4, #0x14]
strb r1, [r4, #0x2f]
mov r0, #1
strb r0, [r4, #0x30]
strb r0, [r4, #0x31]
str r1, [r4, #0x18]
str r1, [r4, #0x1c]
bne _022E2BF4
strb r1, [r4, #0x22]
strb r1, [r4, #0x29]
strb r1, [r4, #0x28]
strb r1, [r4, #0x26]
strb r1, [r4, #0x2a]
strb r1, [r4, #0x27]
strb r1, [r4, #0x23]
strb r1, [r4, #0x24]
strb r1, [r4, #0x32]
strb r1, [r4, #0x33]
strb r1, [r4, #0x34]
_022E2BF4:
mov r1, #0
str r1, [r4, #0x10]
mov r0, #3
strb r0, [r4, #0x20]
strb r1, [r4, #0x35]
strb r1, [r4, #0x2b]
strb r1, [r4, #0x36]
strb r1, [r4, #0x37]
strb r1, [r4, #0x2d]
mov r0, #1
strb r0, [r4, #0x2e]
bl ov29_022E2C6C
ldr r1, _022E2C64 ; =0x0000FFFF
ldr r0, _022E2C68 ; =ov29_0237C84C
cmp r5, #0
str r1, [r0]
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, _022E2C5C ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x28000
ldrb r0, [r0, #0x6c8 + OV29_022E2B68_OFFSET]
ands r0, r0, #3
strb r0, [r4, #0x21]
moveq r0, #1
streqb r0, [r4, #0x24]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_022E2C5C: .word DUNGEON_PTR
_022E2C60: .word 0x0001A21C + OV29_022E2B68_OFFSET
_022E2C64: .word 0x0000FFFF
_022E2C68: .word ov29_0237C84C
arm_func_end ov29_022E2B68
arm_func_start ov29_022E2C6C
ov29_022E2C6C: ; 0x022E2C6C
ldr r0, _022E2C9C ; =DUNGEON_PTR
mvn r1, #0
ldr r0, [r0]
#ifdef JAPAN
add r0, r0, #0x178
#else
add r0, r0, #0x21c
#endif
add r0, r0, #0x1a000
strh r1, [r0, #0x3c]
strh r1, [r0, #0x3e]
strh r1, [r0, #0x40]
strh r1, [r0, #0x42]
strh r1, [r0, #0x38]
strh r1, [r0, #0x3a]
bx lr
.align 2, 0
_022E2C9C: .word DUNGEON_PTR
arm_func_end ov29_022E2C6C
arm_func_start ov29_022E2CA0
ov29_022E2CA0: ; 0x022E2CA0
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _022E2D34 ; =DUNGEON_PTR
mov r4, r0
ldr r3, [r1]
ldr r0, _022E2D38 ; =0x0001A21C
ldrsh r1, [r4]
ldrsh r2, [r3, r0]
#ifdef JAPAN
add r0, r3, #0x178
#else
add r0, r3, #0x21c
#endif
add r5, r0, #0x1a000
sub r0, r2, r1
ldr r6, [r5, #0x10]
bl abs
cmp r0, #6
bgt _022E2D2C
ldrsh r1, [r5, #2]
ldrsh r0, [r4, #2]
sub r0, r1, r0
bl abs
cmp r0, #5
bgt _022E2D2C
mov r0, r5
bl ov29_022E3534
cmp r0, #0
movne r0, #1
ldmneia sp!, {r4, r5, r6, pc}
cmp r6, #0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
bl HasDropeyeStatus
mov r2, r0
mov r0, r5
mov r1, r4
bl IsPositionActuallyInSight
ldmia sp!, {r4, r5, r6, pc}
_022E2D2C:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022E2D34: .word DUNGEON_PTR
#ifdef JAPAN
_022E2D38: .word 0x0001A178
#else
_022E2D38: .word 0x0001A21C
#endif
arm_func_end ov29_022E2CA0
arm_func_start ov29_022E2D3C
ov29_022E2D3C: ; 0x022E2D3C
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _022E2DD0 ; =DUNGEON_PTR
mov r4, r0
ldr r3, [r1]
ldr r0, _022E2DD4 ; =0x0001A21C
ldrsh r1, [r4]
ldrsh r2, [r3, r0]
#ifdef JAPAN
add r0, r3, #0x178
#else
add r0, r3, #0x21c
#endif
add r5, r0, #0x1a000
sub r0, r2, r1
ldr r6, [r5, #0x10]
bl abs
cmp r0, #6
bgt _022E2DC8
ldrsh r1, [r5, #2]
ldrsh r0, [r4, #2]
sub r0, r1, r0
bl abs
cmp r0, #6
bgt _022E2DC8
mov r0, r5
bl ov29_022E3534
cmp r0, #0
movne r0, #1
ldmneia sp!, {r4, r5, r6, pc}
cmp r6, #0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
bl HasDropeyeStatus
mov r2, r0
mov r0, r5
mov r1, r4
bl IsPositionActuallyInSight
ldmia sp!, {r4, r5, r6, pc}
_022E2DC8:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022E2DD0: .word DUNGEON_PTR
#ifdef JAPAN
_022E2DD4: .word 0x0001A178
#else
_022E2DD4: .word 0x0001A21C
#endif
arm_func_end ov29_022E2D3C
#ifndef JAPAN
arm_func_start UpdateMapSurveyorFlag
UpdateMapSurveyorFlag: ; 0x022E2DD8
#ifdef EUROPE
stmdb sp!, {r4, lr}
ldr r1, _022E2DF8 ; =DUNGEON_PTR
mov r0, #0x41
ldr r1, [r1]
add r1, r1, #0x1a000
ldrb r4, [r1, #0x241]
bl TeamMemberHasEnabledIqSkill
ldr r2, _022E2DF8 ; =DUNGEON_PTR
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
ldr r1, _022E2DF8 ; =DUNGEON_PTR
ldr r1, [r1]
add r1, r1, #0x1a000
strb r0, [r1, #0x241]
ldmia sp!, {r3, pc}
#endif
.align 2, 0
_022E2DF8: .word DUNGEON_PTR
arm_func_end UpdateMapSurveyorFlag
#endif
arm_func_start ov29_022E2DFC
ov29_022E2DFC: ; 0x022E2DFC
stmdb sp!, {r3, lr}
ldr r1, _022E2E50 ; =DUNGEON_PTR
cmp r0, #0
ldr r1, [r1]
#ifdef JAPAN
add r1, r1, #0x178
#else
add r1, r1, #0x21c
#endif
add r1, r1, #0x1a000
str r0, [r1, #0x10]
moveq r0, #0
streqb r0, [r1, #0x2f]
beq _022E2E40
ldr r0, [r0, #0xb4]
ldrb r0, [r0, #7]
cmp r0, #0
moveq r0, #0
streqb r0, [r1, #0x2f]
movne r0, #1
strneb r0, [r1, #0x2f]
_022E2E40:
mov r0, #0
bl UpdateCamera
bl ov29_022E2C6C
ldmia sp!, {r3, pc}
.align 2, 0
_022E2E50: .word DUNGEON_PTR
arm_func_end ov29_022E2DFC
arm_func_start PointCameraToMonster
PointCameraToMonster: ; 0x022E2E54
stmdb sp!, {r4, lr}
ldr r2, _022E2EC0 ; =DUNGEON_PTR
mov r4, r1
ldr r1, [r2]
cmp r0, #0
#ifdef JAPAN
add r1, r1, #0x178
#else
add r1, r1, #0x21c
#endif
add r2, r1, #0x1a000
moveq r1, #0
streqb r1, [r2, #0x2f]
beq _022E2E98
ldr r1, [r0, #0xb4]
ldrb r1, [r1, #7]
cmp r1, #0
moveq r1, #0
streqb r1, [r2, #0x2f]
movne r1, #1
strneb r1, [r2, #0x2f]
_022E2E98:
str r0, [r2, #0x10]
mov r0, #0
bl UpdateCamera
bl ov29_022E2C6C
bl ov29_02304954
cmp r4, #0
ldmeqia sp!, {r4, pc}
bl UpdateTrapsVisibility
bl UpdateMinimap
ldmia sp!, {r4, pc}
.align 2, 0
_022E2EC0: .word DUNGEON_PTR
arm_func_end PointCameraToMonster
arm_func_start UpdateCamera
UpdateCamera: ; 0x022E2EC4
#ifdef JAPAN
#define UPDATE_CAMERA_OFFSET -0xA4
#else
#define UPDATE_CAMERA_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
ldr r1, _022E32DC ; =DUNGEON_PTR
str r0, [sp]
ldr r0, [r1]
cmp r0, #0
beq _022E32D4
add r0, r0, #0x21c + UPDATE_CAMERA_OFFSET
add r4, r0, #0x1a000
ldr r5, [r4, #0x10]
cmp r5, #0
beq _022E32D0
mov r0, r5
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E32D0
ldrb r8, [r4, #0x32]
ldrb sb, [r4, #0x33]
ldrh r0, [r4, #8]
ldr sl, [r5, #0xb4]
mov r6, #0
strh r0, [r4, #0xc]
ldrh r2, [r4, #0xa]
mov r0, r5
mov r1, #0x18
strh r2, [r4, #0xe]
ldrh r2, [r4]
mov fp, r6
mov r7, r6
strh r2, [r4, #4]
ldrh r2, [r4, #2]
str r6, [sp, #4]
strh r2, [r4, #6]
ldrsh r2, [r5, #4]
strh r2, [r4]
ldrsh r2, [r5, #6]
strh r2, [r4, #2]
ldr r2, [r5, #0xc]
mov r2, r2, asr #8
sub r2, r2, #0x80
strh r2, [r4, #8]
ldr r2, [r5, #0x10]
mov r2, r2, asr #8
sub r2, r2, #0x6c
strh r2, [r4, #0xa]
ldrb r2, [r4, #0x27]
str r2, [sp, #0xc]
ldrb r2, [r4, #0x26]
str r2, [sp, #8]
bl ItemIsActive__022E330C
cmp r0, #0
ldrneb r0, [sl, #7]
mov r1, #0
cmpne r0, #0
movne r0, #1
strneb r0, [r4, #0x26]
strneb r0, [r4, #0x27]
ldreqb r0, [sl, #0xf9]
streqb r0, [r4, #0x26]
ldreqb r0, [sl, #0xfa]
streqb r0, [r4, #0x27]
strb r1, [r4, #0x32]
strb r1, [r4, #0x33]
mov r0, r5
mov r1, #0xe
bl ItemIsActive__022E330C
cmp r0, #0
ldrneb r0, [sl, #7]
cmpne r0, #0
movne r0, #1
strneb r0, [r4, #0x32]
strneb r0, [r4, #0x33]
ldrb r1, [r4, #0x27]
ldr r0, [sp, #0xc]
cmp r0, r1
ldreqb r0, [r4, #0x32]
ldrb r1, [r4, #0x26]
cmpeq r8, r0
ldr r0, [sp, #8]
movne r6, #1
cmp r0, r1
ldreqb r0, [r4, #0x33]
cmpeq sb, r0
ldrb r0, [sl, #0xfb]
movne fp, #1
strb r0, [r4, #0x2a]
ldrb r0, [r4, #0x2d]
ldrb r8, [r4, #0x22]
cmp r0, #0
bne _022E309C
mov r0, r5
mov r1, #1
bl IsBlinded
cmp r0, #0
movne r0, #1
movne r2, #0xe
strneb r0, [r4, #0x22]
moveq r2, #0
ldr r0, _022E32E0 ; =ov29_0237C84C
streqb r2, [r4, #0x22]
ldr r1, [r0]
cmp r1, r2
beq _022E30A8
str r2, [r0]
cmp r2, #0xe
mov r0, #2
mov r1, #0
bne _022E3088
bl sub_02009194
mov r0, #3
mov r1, #0
bl sub_02009194
b _022E30A8
_022E3088:
bl sub_020091B0
mov r0, #3
mov r1, #0
bl sub_020091B0
b _022E30A8
_022E309C:
ldr r1, _022E32E4 ; =0x0000FFFF
ldr r0, _022E32E0 ; =ov29_0237C84C
str r1, [r0]
_022E30A8:
ldrb r0, [r4, #0x22]
ldrb r1, [r4, #0x29]
cmp r8, r0
ldrb r0, [sl, #0xf1]
movne r7, #1
cmp r0, #2
moveq r0, #1
movne r0, #0
strb r0, [r4, #0x29]
ldrb r0, [r4, #0x29]
cmp r1, r0
ldreq r0, _022E32DC ; =DUNGEON_PTR
ldreq r0, [r0]
addeq r0, r0, #0x2c000
ldreqb r0, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
cmpeq r0, #0
beq _022E3108
bl ov29_023047DC
ldr r0, _022E32DC ; =DUNGEON_PTR
mov r1, #0
ldr r0, [r0]
mov r7, #1
add r0, r0, #0x2c000
strb r1, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
_022E3108:
mov r0, r5
ldrb r8, [r4, #0x28]
bl CanSeeInvisibleMonsters
cmp r0, #0
movne r0, #1
moveq r0, #0
strb r0, [r4, #0x28]
ldrb r0, [r4, #0x28]
cmp r8, r0
movne r7, #1
strne r7, [sp, #4]
ldrb r8, [r4, #0x34]
mov r0, r5
bl HasDropeyeStatus
and r1, r0, #0xff
cmp r8, r1
strb r0, [r4, #0x34]
movne r7, #1
strne r7, [sp, #4]
ldr r0, [sp, #4]
cmp r0, #0
beq _022E3168
bl UpdateTrapsVisibility
bl UpdateMinimap
_022E3168:
cmp r7, #0
beq _022E3178
mov r0, #0
bl ov29_022E3A58
_022E3178:
ldr r0, [sp]
cmp r0, #0
beq _022E3228
ldrb r0, [r4, #0x2c]
cmp r0, #0
bne _022E3228
ldrsh r5, [r4, #8]
ldrsh r7, [r4, #0xc]
sub r0, r7, r5
bl abs
cmp r0, #8
bge _022E31C0
ldrsh r1, [r4, #0xe]
ldrsh r0, [r4, #0xa]
sub r0, r1, r0
bl abs
cmp r0, #8
blt _022E31D0
_022E31C0:
bl UpdateTrapsVisibility
mov r0, #1
strb r0, [r4, #0x2c]
b _022E3228
_022E31D0:
cmp r7, r5
bge _022E31E8
mov r0, #0xff
mov r1, #0
bl ov29_0233711C
b _022E31F8
_022E31E8:
ble _022E31F8
mov r0, #0
mov r1, r0
bl ov29_0233711C
_022E31F8:
ldrsh r1, [r4, #0xa]
ldrsh r0, [r4, #0xe]
cmp r0, r1
bge _022E3218
mov r0, #0
mov r1, #0xc0
bl ov29_023372A4
b _022E3228
_022E3218:
ble _022E3228
mov r0, #0
mov r1, r0
bl ov29_023372A4
_022E3228:
cmp fp, #0
ldreqsh r1, [r4]
ldreqsh r0, [r4, #4]
cmpeq r1, r0
ldreqsh r1, [r4, #2]
ldreqsh r0, [r4, #6]
cmpeq r1, r0
beq _022E3288
ldr r4, _022E32DC ; =DUNGEON_PTR
mov r5, #0
_022E3250:
ldr r0, [r4]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb78 + UPDATE_CAMERA_OFFSET]
mov r0, r7
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E327C
ldrsh r0, [r7, #4]
ldrsh r1, [r7, #6]
bl DrawMinimapTile
_022E327C:
add r5, r5, #1
cmp r5, #0x14
blt _022E3250
_022E3288:
cmp r6, #0
beq _022E32D0
ldr r4, _022E32DC ; =DUNGEON_PTR
mov r5, #0
_022E3298:
ldr r0, [r4]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
ldr r6, [r0, #0xbc8 + UPDATE_CAMERA_OFFSET]
mov r0, r6
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E32C4
ldrsh r0, [r6, #4]
ldrsh r1, [r6, #6]
bl DrawMinimapTile
_022E32C4:
add r5, r5, #1
cmp r5, #0x40
blt _022E3298
_022E32D0:
bl ov29_022E34C8
_022E32D4:
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_022E32DC: .word DUNGEON_PTR
_022E32E0: .word ov29_0237C84C
_022E32E4: .word 0x0000FFFF
arm_func_end UpdateCamera

810
asm/overlay_29_022E2978.s Normal file
View File

@@ -0,0 +1,810 @@
.include "asm/macros.inc"
.include "overlay_29_022E2978.inc"
.text
arm_func_start PopulateActiveMonsterPtrs
PopulateActiveMonsterPtrs: ; 0x022E2978
#ifdef JAPAN
#define OV29_022E2978_OFFSET -0xA4
#else
#define OV29_022E2978_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, #0
ldr r6, _022E2A34 ; =DUNGEON_PTR
mov r4, r5
_022E2988:
ldr r0, [r6]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb28 + OV29_022E2978_OFFSET]
mov r0, r7
bl EntityIsValid__022E1A1C
cmp r0, #0
ldrne r0, [r6]
add r4, r4, #1
addne r0, r0, r5, lsl #2
addne r0, r0, #0x12000
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
addne r5, r5, #1
cmp r4, #4
blt _022E2988
ldr r6, _022E2A34 ; =DUNGEON_PTR
mov r4, #0
_022E29CC:
ldr r0, [r6]
add r0, r0, r4, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb38 + OV29_022E2978_OFFSET]
mov r0, r7
bl EntityIsValid__022E1A1C
cmp r0, #0
ldrne r0, [r6]
add r4, r4, #1
addne r0, r0, r5, lsl #2
addne r0, r0, #0x12000
strne r7, [r0, #0xb78 + OV29_022E2978_OFFSET]
addne r5, r5, #1
cmp r4, #0x10
blt _022E29CC
mov r2, #0
ldr r1, _022E2A34 ; =DUNGEON_PTR
b _022E2A28
_022E2A14:
ldr r0, [r1]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
str r2, [r0, #0xb78 + OV29_022E2978_OFFSET]
add r5, r5, #1
_022E2A28:
cmp r5, #0x14
blt _022E2A14
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022E2A34: .word DUNGEON_PTR
arm_func_end PopulateActiveMonsterPtrs
arm_func_start GetTeamMemberIndex
GetTeamMemberIndex: ; 0x022E2A38
ldr r1, _022E2A74 ; =DUNGEON_PTR
mov r2, #0
ldr r3, [r1]
b _022E2A64
_022E2A48:
add r1, r3, r2, lsl #2
add r1, r1, #0x12000
#ifdef JAPAN
ldr r1, [r1, #0xa84]
#else
ldr r1, [r1, #0xb28]
#endif
cmp r0, r1
moveq r0, r2
bxeq lr
add r2, r2, #1
_022E2A64:
cmp r2, #4
blt _022E2A48
mvn r0, #0
bx lr
.align 2, 0
_022E2A74: .word DUNGEON_PTR
arm_func_end GetTeamMemberIndex
arm_func_start ov29_022E2A78
ov29_022E2A78: ; 0x022E2A78
stmdb sp!, {r4, lr}
ldr r2, [r1]
mov r4, r0
cmp r2, #1
beq _022E2AA0
cmp r2, #2
beq _022E2AAC
cmp r2, #3
ldmeqia sp!, {r4, pc}
b _022E2ABC
_022E2AA0:
ldr r1, [r1, #0xb4]
bl GetMonsterName
ldmia sp!, {r4, pc}
_022E2AAC:
ldr r1, [r1, #0xb4]
ldrb r1, [r1]
bl ov29_022ED82C
ldmia sp!, {r4, pc}
_022E2ABC:
ldr r0, _022E2AD4 ; =0x00000A42
bl StringFromId
mov r1, r0
mov r0, r4
bl strcpy
ldmia sp!, {r4, pc}
.align 2, 0
#ifdef JAPAN
_022E2AD4: .word 0x00000B42
#else
_022E2AD4: .word 0x00000A42
#endif
arm_func_end ov29_022E2A78
arm_func_start SubstitutePlaceholderStringTags
SubstitutePlaceholderStringTags: ; 0x022E2AD8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r7, r0
mov r5, r2
bl GetMessageLogPreprocessorArgs
ldr r1, [r6]
mov r4, r0
cmp r1, #1
beq _022E2B10
cmp r1, #2
beq _022E2B3C
cmp r1, #3
beq _022E2B2C
b _022E2B50
_022E2B10:
mov r1, #0
str r1, [sp]
ldr r2, [r6, #0xb4]
mov r1, r7
mov r3, r5
bl SetPreprocessorArgsStringToName
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B2C:
ldr r2, [r6, #0xb4]
mov r1, r7
bl PrepareItemForPrinting2
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B3C:
ldr r2, [r6, #0xb4]
mov r1, r7
ldrb r2, [r2]
bl SubstitutePlaceholderTrapTags
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_022E2B50:
ldr r0, _022E2B64 ; =0x00000A42
bl StringFromId
add r1, r4, r7, lsl #2
str r0, [r1, #0x38]
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
#ifdef JAPAN
_022E2B64: .word 0x00000B42
#else
_022E2B64: .word 0x00000A42
#endif
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
#ifdef JAPAN
#define OV29_022E2B68_OFFSET -0xA4
#else
#define OV29_022E2B68_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _022E2C5C ; =DUNGEON_PTR
movs r5, r0
ldr r2, [r1]
mov r1, #0
add r0, r2, #0x21c + OV29_022E2B68_OFFSET
add r4, r0, #0x1a000
strh r1, [r4, #8]
ldr r0, _022E2C60 ; =0x0001A21C
strh r1, [r4, #0xa]
strh r1, [r2, r0]
strh r1, [r4, #2]
strh r1, [r4, #0xc]
strh r1, [r4, #0xe]
strh r1, [r4, #4]
strh r1, [r4, #6]
str r1, [r4, #0x14]
strb r1, [r4, #0x2f]
mov r0, #1
strb r0, [r4, #0x30]
strb r0, [r4, #0x31]
str r1, [r4, #0x18]
str r1, [r4, #0x1c]
bne _022E2BF4
strb r1, [r4, #0x22]
strb r1, [r4, #0x29]
strb r1, [r4, #0x28]
strb r1, [r4, #0x26]
strb r1, [r4, #0x2a]
strb r1, [r4, #0x27]
strb r1, [r4, #0x23]
strb r1, [r4, #0x24]
strb r1, [r4, #0x32]
strb r1, [r4, #0x33]
strb r1, [r4, #0x34]
_022E2BF4:
mov r1, #0
str r1, [r4, #0x10]
mov r0, #3
strb r0, [r4, #0x20]
strb r1, [r4, #0x35]
strb r1, [r4, #0x2b]
strb r1, [r4, #0x36]
strb r1, [r4, #0x37]
strb r1, [r4, #0x2d]
mov r0, #1
strb r0, [r4, #0x2e]
bl ov29_022E2C6C
ldr r1, _022E2C64 ; =0x0000FFFF
ldr r0, _022E2C68 ; =ov29_0237C84C
cmp r5, #0
str r1, [r0]
ldmneia sp!, {r3, r4, r5, pc}
ldr r0, _022E2C5C ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x28000
ldrb r0, [r0, #0x6c8 + OV29_022E2B68_OFFSET]
ands r0, r0, #3
strb r0, [r4, #0x21]
moveq r0, #1
streqb r0, [r4, #0x24]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_022E2C5C: .word DUNGEON_PTR
_022E2C60: .word 0x0001A21C + OV29_022E2B68_OFFSET
_022E2C64: .word 0x0000FFFF
_022E2C68: .word ov29_0237C84C
arm_func_end ov29_022E2B68
arm_func_start ov29_022E2C6C
ov29_022E2C6C: ; 0x022E2C6C
ldr r0, _022E2C9C ; =DUNGEON_PTR
mvn r1, #0
ldr r0, [r0]
#ifdef JAPAN
add r0, r0, #0x178
#else
add r0, r0, #0x21c
#endif
add r0, r0, #0x1a000
strh r1, [r0, #0x3c]
strh r1, [r0, #0x3e]
strh r1, [r0, #0x40]
strh r1, [r0, #0x42]
strh r1, [r0, #0x38]
strh r1, [r0, #0x3a]
bx lr
.align 2, 0
_022E2C9C: .word DUNGEON_PTR
arm_func_end ov29_022E2C6C
arm_func_start ov29_022E2CA0
ov29_022E2CA0: ; 0x022E2CA0
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _022E2D34 ; =DUNGEON_PTR
mov r4, r0
ldr r3, [r1]
ldr r0, _022E2D38 ; =0x0001A21C
ldrsh r1, [r4]
ldrsh r2, [r3, r0]
#ifdef JAPAN
add r0, r3, #0x178
#else
add r0, r3, #0x21c
#endif
add r5, r0, #0x1a000
sub r0, r2, r1
ldr r6, [r5, #0x10]
bl abs
cmp r0, #6
bgt _022E2D2C
ldrsh r1, [r5, #2]
ldrsh r0, [r4, #2]
sub r0, r1, r0
bl abs
cmp r0, #5
bgt _022E2D2C
mov r0, r5
bl ov29_022E3534
cmp r0, #0
movne r0, #1
ldmneia sp!, {r4, r5, r6, pc}
cmp r6, #0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
bl HasDropeyeStatus
mov r2, r0
mov r0, r5
mov r1, r4
bl IsPositionActuallyInSight
ldmia sp!, {r4, r5, r6, pc}
_022E2D2C:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022E2D34: .word DUNGEON_PTR
#ifdef JAPAN
_022E2D38: .word 0x0001A178
#else
_022E2D38: .word 0x0001A21C
#endif
arm_func_end ov29_022E2CA0
arm_func_start ov29_022E2D3C
ov29_022E2D3C: ; 0x022E2D3C
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _022E2DD0 ; =DUNGEON_PTR
mov r4, r0
ldr r3, [r1]
ldr r0, _022E2DD4 ; =0x0001A21C
ldrsh r1, [r4]
ldrsh r2, [r3, r0]
#ifdef JAPAN
add r0, r3, #0x178
#else
add r0, r3, #0x21c
#endif
add r5, r0, #0x1a000
sub r0, r2, r1
ldr r6, [r5, #0x10]
bl abs
cmp r0, #6
bgt _022E2DC8
ldrsh r1, [r5, #2]
ldrsh r0, [r4, #2]
sub r0, r1, r0
bl abs
cmp r0, #6
bgt _022E2DC8
mov r0, r5
bl ov29_022E3534
cmp r0, #0
movne r0, #1
ldmneia sp!, {r4, r5, r6, pc}
cmp r6, #0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
bl HasDropeyeStatus
mov r2, r0
mov r0, r5
mov r1, r4
bl IsPositionActuallyInSight
ldmia sp!, {r4, r5, r6, pc}
_022E2DC8:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022E2DD0: .word DUNGEON_PTR
#ifdef JAPAN
_022E2DD4: .word 0x0001A178
#else
_022E2DD4: .word 0x0001A21C
#endif
arm_func_end ov29_022E2D3C
#ifndef JAPAN
arm_func_start UpdateMapSurveyorFlag
UpdateMapSurveyorFlag: ; 0x022E2DD8
#ifdef EUROPE
stmdb sp!, {r4, lr}
ldr r1, _022E2DF8 ; =DUNGEON_PTR
mov r0, #0x41
ldr r1, [r1]
add r1, r1, #0x1a000
ldrb r4, [r1, #0x241]
bl TeamMemberHasEnabledIqSkill
ldr r2, _022E2DF8 ; =DUNGEON_PTR
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
ldr r1, _022E2DF8 ; =DUNGEON_PTR
ldr r1, [r1]
add r1, r1, #0x1a000
strb r0, [r1, #0x241]
ldmia sp!, {r3, pc}
#endif
.align 2, 0
_022E2DF8: .word DUNGEON_PTR
arm_func_end UpdateMapSurveyorFlag
#endif
arm_func_start ov29_022E2DFC
ov29_022E2DFC: ; 0x022E2DFC
stmdb sp!, {r3, lr}
ldr r1, _022E2E50 ; =DUNGEON_PTR
cmp r0, #0
ldr r1, [r1]
#ifdef JAPAN
add r1, r1, #0x178
#else
add r1, r1, #0x21c
#endif
add r1, r1, #0x1a000
str r0, [r1, #0x10]
moveq r0, #0
streqb r0, [r1, #0x2f]
beq _022E2E40
ldr r0, [r0, #0xb4]
ldrb r0, [r0, #7]
cmp r0, #0
moveq r0, #0
streqb r0, [r1, #0x2f]
movne r0, #1
strneb r0, [r1, #0x2f]
_022E2E40:
mov r0, #0
bl UpdateCamera
bl ov29_022E2C6C
ldmia sp!, {r3, pc}
.align 2, 0
_022E2E50: .word DUNGEON_PTR
arm_func_end ov29_022E2DFC
arm_func_start PointCameraToMonster
PointCameraToMonster: ; 0x022E2E54
stmdb sp!, {r4, lr}
ldr r2, _022E2EC0 ; =DUNGEON_PTR
mov r4, r1
ldr r1, [r2]
cmp r0, #0
#ifdef JAPAN
add r1, r1, #0x178
#else
add r1, r1, #0x21c
#endif
add r2, r1, #0x1a000
moveq r1, #0
streqb r1, [r2, #0x2f]
beq _022E2E98
ldr r1, [r0, #0xb4]
ldrb r1, [r1, #7]
cmp r1, #0
moveq r1, #0
streqb r1, [r2, #0x2f]
movne r1, #1
strneb r1, [r2, #0x2f]
_022E2E98:
str r0, [r2, #0x10]
mov r0, #0
bl UpdateCamera
bl ov29_022E2C6C
bl ov29_02304954
cmp r4, #0
ldmeqia sp!, {r4, pc}
bl UpdateTrapsVisibility
bl UpdateMinimap
ldmia sp!, {r4, pc}
.align 2, 0
_022E2EC0: .word DUNGEON_PTR
arm_func_end PointCameraToMonster
arm_func_start UpdateCamera
UpdateCamera: ; 0x022E2EC4
#ifdef JAPAN
#define UPDATE_CAMERA_OFFSET -0xA4
#else
#define UPDATE_CAMERA_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
ldr r1, _022E32DC ; =DUNGEON_PTR
str r0, [sp]
ldr r0, [r1]
cmp r0, #0
beq _022E32D4
add r0, r0, #0x21c + UPDATE_CAMERA_OFFSET
add r4, r0, #0x1a000
ldr r5, [r4, #0x10]
cmp r5, #0
beq _022E32D0
mov r0, r5
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E32D0
ldrb r8, [r4, #0x32]
ldrb sb, [r4, #0x33]
ldrh r0, [r4, #8]
ldr sl, [r5, #0xb4]
mov r6, #0
strh r0, [r4, #0xc]
ldrh r2, [r4, #0xa]
mov r0, r5
mov r1, #0x18
strh r2, [r4, #0xe]
ldrh r2, [r4]
mov fp, r6
mov r7, r6
strh r2, [r4, #4]
ldrh r2, [r4, #2]
str r6, [sp, #4]
strh r2, [r4, #6]
ldrsh r2, [r5, #4]
strh r2, [r4]
ldrsh r2, [r5, #6]
strh r2, [r4, #2]
ldr r2, [r5, #0xc]
mov r2, r2, asr #8
sub r2, r2, #0x80
strh r2, [r4, #8]
ldr r2, [r5, #0x10]
mov r2, r2, asr #8
sub r2, r2, #0x6c
strh r2, [r4, #0xa]
ldrb r2, [r4, #0x27]
str r2, [sp, #0xc]
ldrb r2, [r4, #0x26]
str r2, [sp, #8]
bl ItemIsActive__022E330C
cmp r0, #0
ldrneb r0, [sl, #7]
mov r1, #0
cmpne r0, #0
movne r0, #1
strneb r0, [r4, #0x26]
strneb r0, [r4, #0x27]
ldreqb r0, [sl, #0xf9]
streqb r0, [r4, #0x26]
ldreqb r0, [sl, #0xfa]
streqb r0, [r4, #0x27]
strb r1, [r4, #0x32]
strb r1, [r4, #0x33]
mov r0, r5
mov r1, #0xe
bl ItemIsActive__022E330C
cmp r0, #0
ldrneb r0, [sl, #7]
cmpne r0, #0
movne r0, #1
strneb r0, [r4, #0x32]
strneb r0, [r4, #0x33]
ldrb r1, [r4, #0x27]
ldr r0, [sp, #0xc]
cmp r0, r1
ldreqb r0, [r4, #0x32]
ldrb r1, [r4, #0x26]
cmpeq r8, r0
ldr r0, [sp, #8]
movne r6, #1
cmp r0, r1
ldreqb r0, [r4, #0x33]
cmpeq sb, r0
ldrb r0, [sl, #0xfb]
movne fp, #1
strb r0, [r4, #0x2a]
ldrb r0, [r4, #0x2d]
ldrb r8, [r4, #0x22]
cmp r0, #0
bne _022E309C
mov r0, r5
mov r1, #1
bl IsBlinded
cmp r0, #0
movne r0, #1
movne r2, #0xe
strneb r0, [r4, #0x22]
moveq r2, #0
ldr r0, _022E32E0 ; =ov29_0237C84C
streqb r2, [r4, #0x22]
ldr r1, [r0]
cmp r1, r2
beq _022E30A8
str r2, [r0]
cmp r2, #0xe
mov r0, #2
mov r1, #0
bne _022E3088
bl sub_02009194
mov r0, #3
mov r1, #0
bl sub_02009194
b _022E30A8
_022E3088:
bl sub_020091B0
mov r0, #3
mov r1, #0
bl sub_020091B0
b _022E30A8
_022E309C:
ldr r1, _022E32E4 ; =0x0000FFFF
ldr r0, _022E32E0 ; =ov29_0237C84C
str r1, [r0]
_022E30A8:
ldrb r0, [r4, #0x22]
ldrb r1, [r4, #0x29]
cmp r8, r0
ldrb r0, [sl, #0xf1]
movne r7, #1
cmp r0, #2
moveq r0, #1
movne r0, #0
strb r0, [r4, #0x29]
ldrb r0, [r4, #0x29]
cmp r1, r0
ldreq r0, _022E32DC ; =DUNGEON_PTR
ldreq r0, [r0]
addeq r0, r0, #0x2c000
ldreqb r0, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
cmpeq r0, #0
beq _022E3108
bl ov29_023047DC
ldr r0, _022E32DC ; =DUNGEON_PTR
mov r1, #0
ldr r0, [r0]
mov r7, #1
add r0, r0, #0x2c000
strb r1, [r0, #0xb10 + UPDATE_CAMERA_OFFSET]
_022E3108:
mov r0, r5
ldrb r8, [r4, #0x28]
bl CanSeeInvisibleMonsters
cmp r0, #0
movne r0, #1
moveq r0, #0
strb r0, [r4, #0x28]
ldrb r0, [r4, #0x28]
cmp r8, r0
movne r7, #1
strne r7, [sp, #4]
ldrb r8, [r4, #0x34]
mov r0, r5
bl HasDropeyeStatus
and r1, r0, #0xff
cmp r8, r1
strb r0, [r4, #0x34]
movne r7, #1
strne r7, [sp, #4]
ldr r0, [sp, #4]
cmp r0, #0
beq _022E3168
bl UpdateTrapsVisibility
bl UpdateMinimap
_022E3168:
cmp r7, #0
beq _022E3178
mov r0, #0
bl ov29_022E3A58
_022E3178:
ldr r0, [sp]
cmp r0, #0
beq _022E3228
ldrb r0, [r4, #0x2c]
cmp r0, #0
bne _022E3228
ldrsh r5, [r4, #8]
ldrsh r7, [r4, #0xc]
sub r0, r7, r5
bl abs
cmp r0, #8
bge _022E31C0
ldrsh r1, [r4, #0xe]
ldrsh r0, [r4, #0xa]
sub r0, r1, r0
bl abs
cmp r0, #8
blt _022E31D0
_022E31C0:
bl UpdateTrapsVisibility
mov r0, #1
strb r0, [r4, #0x2c]
b _022E3228
_022E31D0:
cmp r7, r5
bge _022E31E8
mov r0, #0xff
mov r1, #0
bl ov29_0233711C
b _022E31F8
_022E31E8:
ble _022E31F8
mov r0, #0
mov r1, r0
bl ov29_0233711C
_022E31F8:
ldrsh r1, [r4, #0xa]
ldrsh r0, [r4, #0xe]
cmp r0, r1
bge _022E3218
mov r0, #0
mov r1, #0xc0
bl ov29_023372A4
b _022E3228
_022E3218:
ble _022E3228
mov r0, #0
mov r1, r0
bl ov29_023372A4
_022E3228:
cmp fp, #0
ldreqsh r1, [r4]
ldreqsh r0, [r4, #4]
cmpeq r1, r0
ldreqsh r1, [r4, #2]
ldreqsh r0, [r4, #6]
cmpeq r1, r0
beq _022E3288
ldr r4, _022E32DC ; =DUNGEON_PTR
mov r5, #0
_022E3250:
ldr r0, [r4]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
ldr r7, [r0, #0xb78 + UPDATE_CAMERA_OFFSET]
mov r0, r7
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E327C
ldrsh r0, [r7, #4]
ldrsh r1, [r7, #6]
bl DrawMinimapTile
_022E327C:
add r5, r5, #1
cmp r5, #0x14
blt _022E3250
_022E3288:
cmp r6, #0
beq _022E32D0
ldr r4, _022E32DC ; =DUNGEON_PTR
mov r5, #0
_022E3298:
ldr r0, [r4]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
ldr r6, [r0, #0xbc8 + UPDATE_CAMERA_OFFSET]
mov r0, r6
bl EntityIsValid__022E32E8
cmp r0, #0
beq _022E32C4
ldrsh r0, [r6, #4]
ldrsh r1, [r6, #6]
bl DrawMinimapTile
_022E32C4:
add r5, r5, #1
cmp r5, #0x40
blt _022E3298
_022E32D0:
bl ov29_022E34C8
_022E32D4:
add sp, sp, #0x10
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_022E32DC: .word DUNGEON_PTR
_022E32E0: .word ov29_0237C84C
_022E32E4: .word 0x0000FFFF
arm_func_end UpdateCamera

View File

@@ -2307,8 +2307,8 @@ _022E5388:
_022E5398: .word 0x0000018D
arm_func_end PlayHitChanceDownEffect
arm_func_start PlayCringeExclamationPointEffect
PlayCringeExclamationPointEffect: ; 0x022E539C
arm_func_start PlayExclamationPointEffect__022E5D4C
PlayExclamationPointEffect__022E5D4C: ; 0x022E539C
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r0
@@ -2330,7 +2330,7 @@ PlayCringeExclamationPointEffect: ; 0x022E539C
ldmia sp!, {r4, pc}
.align 2, 0
_022E53E8: .word 0x00000143
arm_func_end PlayCringeExclamationPointEffect
arm_func_end PlayExclamationPointEffect__022E5D4C
arm_func_start ov29_022E53EC
ov29_022E53EC: ; 0x022E53EC

View File

@@ -600,7 +600,7 @@ _022EE9D8:
mov r0, r6
mov r1, r5
add r2, r4, #2
bl ov29_022EF4B4
bl SpawnMonstersAroundPos
mov r4, r0
ldr r1, _022EEA28 ; =0x0000030F
mov r0, r5
@@ -1179,7 +1179,7 @@ ApplyGrudgeTrapEffect: ; 0x022EF074
#endif
mov r1, r4
add r2, r2, #2
bl ov29_022EF4B4
bl SpawnMonstersAroundPos
cmp r0, #0
ble _022EF0B0
ldr r1, _022EF148 ; =0x0000030F
@@ -1546,8 +1546,8 @@ _022EF4AC:
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_022EF478
arm_func_start ov29_022EF4B4
ov29_022EF4B4: ; 0x022EF4B4
arm_func_start SpawnMonstersAroundPos
SpawnMonstersAroundPos: ; 0x022EF4B4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10
mov r0, #8
@@ -1629,7 +1629,7 @@ _022EF5BC:
.align 2, 0
_022EF5D0: .word 0x0000017B
_022EF5D4: .word DIRECTIONS_XY
arm_func_end ov29_022EF4B4
arm_func_end SpawnMonstersAroundPos
arm_func_start RevealTrapsNearby
RevealTrapsNearby: ; 0x022EF5D8

View File

@@ -147,7 +147,7 @@ _022FA65C:
#endif
bl ov29_022E8104
bl ov29_022E81F8
bl ov29_022E0A04
bl GetSuccessfulExitTracker
cmp r0, #1
mov r0, r8
bne _022FA6B8
@@ -164,7 +164,7 @@ _022FA6C4:
mov sb, #0
bl GetActiveTeamMember
mov r4, r0
bl ov29_022E0A04
bl GetSuccessfulExitTracker
cmp r0, #0
movne sb, #1
bne _022FA70C

View File

@@ -1,35 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_022FBE04.inc"
.include "overlay_29_022FBE58.inc"
.text
arm_func_start ov29_022FBE04
ov29_022FBE04: ; 0x022FBE04
stmdb sp!, {r3, lr}
ldrb r0, [r0, #6]
cmp r0, #0
bne _022FBE4C
ldr r0, _022FBE54 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl GetTurnLimit
ldr r1, _022FBE54 ; =DUNGEON_PTR
ldr r1, [r1]
add r1, r1, #0x700
ldrsh r1, [r1, #0x84]
cmp r1, r0
bne _022FBE4C
bl IsFullFloorFixedRoom
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, pc}
_022FBE4C:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_022FBE54: .word DUNGEON_PTR
arm_func_end ov29_022FBE04
arm_func_start InitOtherMonsterData
InitOtherMonsterData: ; 0x022FBE58
stmdb sp!, {r3, r4, r5, r6, r7, lr}

View File

@@ -900,7 +900,7 @@ _02303618:
add r3, sp, #0x18
mov r0, sb
add r1, r3, sl, lsl #3
bl ov29_0231EA04
bl InitMoveWrapper
add r2, sp, #0x1a
mov r1, sl, lsl #3
ldrh r0, [r2, r1]
@@ -1093,8 +1093,8 @@ _023038D0: .word 0x00000F25
#endif
arm_func_end ov29_023034E0
arm_func_start ov29_023038D4
ov29_023038D4: ; 0x023038D4
arm_func_start DungeonTmLearnMove
DungeonTmLearnMove: ; 0x023038D4
#ifdef JAPAN
#define OV29_023038D4_OFFSET -4
#else
@@ -1126,7 +1126,7 @@ _02303910:
mov r0, sl
mov r2, r6
add r1, r1, r4, lsl #3
bl ov29_0231EA04
bl InitMoveWrapper
add r2, sp, #2
mov r1, r4, lsl #3
ldrh r0, [r2, r1]
@@ -1270,7 +1270,7 @@ _02303B0C: .word 0x00000F23
_02303B10: .word 0x00000F28
_02303B14: .word 0x00000F24
#endif
arm_func_end ov29_023038D4
arm_func_end DungeonTmLearnMove
arm_func_start GetMonsterMoves
GetMonsterMoves: ; 0x02303B18

View File

@@ -33,7 +33,7 @@ _023055C4:
cmp r0, #0
bne _02305680
mov r0, r8
bl ov29_022FBE04
bl IsTeamMemberOnFirstTurnInFixedRoom
cmp r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
add r0, r8, #0x100

View File

@@ -133,7 +133,7 @@ _02308780:
bl ov29_022E5E84
mov r0, sb
mov r1, sl
bl ov29_0231EDFC
bl TryHurl
_023087A8:
mov r0, sl
mov r1, sb

View File

@@ -303,7 +303,7 @@ TryInflictSleeplessStatus: ; 0x02311F80
ldrb r0, [r5, #0xbd]
cmp r0, #2
beq _02312040
ldr r1, _0231205C ; =ov10_022C4728
ldr r1, _0231205C ; =SLEEPLESSNESS_TURN_RANGE
mov r3, #2
mov r0, r6
mov r2, #0
@@ -347,7 +347,7 @@ _02312050:
bl UpdateStatusIconFlags
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0231205C: .word ov10_022C4728
_0231205C: .word SLEEPLESSNESS_TURN_RANGE
#ifdef JAPAN
_02312060: .word 0x00000A53
_02312064: .word 0x00000A55

View File

@@ -1105,7 +1105,7 @@ _02315F78:
mov r0, #2
strb r0, [r6, #0xd8]
ldr r0, [sl, #0xb4]
ldr r1, _023160D4 ; =ov10_022C47B4
ldr r1, _023160D4 ; =DECOY_TURN_RANGE
ldrb r3, [r0, #6]
mov r0, sb
mov r2, #1
@@ -1198,7 +1198,7 @@ _023160CC: .word 0x00000A86
_023160CC: .word 0x00000D46
#endif
_023160D0: .word DUNGEON_PTR
_023160D4: .word ov10_022C47B4
_023160D4: .word DECOY_TURN_RANGE
#ifdef JAPAN
_023160D8: .word 0x00000A85
#else

View File

@@ -59,7 +59,7 @@ _02318DEC:
cmpne r0, #0xa
cmpne r0, #0xf
beq _02318E20
ldr r1, _02318E44 ; =ov10_022C4750
ldr r1, _02318E44 ; =SET_REFLECT_STATUS_TURN_RANGE
mov r0, r6
mov r2, #0
bl CalcStatusDuration
@@ -77,11 +77,11 @@ _02318E20:
.align 2, 0
#ifdef JAPAN
_02318E40: .word 0x00000A33
_02318E44: .word ov10_022C4750
_02318E44: .word SET_REFLECT_STATUS_TURN_RANGE
_02318E48: .word 0x00000A32
#else
_02318E40: .word 0x00000CF3
_02318E44: .word ov10_022C4750
_02318E44: .word SET_REFLECT_STATUS_TURN_RANGE
_02318E48: .word 0x00000CF2
#endif
arm_func_end SetReflectStatus

View File

@@ -20,7 +20,7 @@ TryInflictSafeguardStatus: ; 0x02318E70
ldrb r0, [r4, #0xd5]
cmp r0, #2
beq _02318EE8
ldr r1, _02318F04 ; =ov10_022C4734
ldr r1, _02318F04 ; =SAFEGUARD_TURN_RANGE
mov r3, #2
mov r0, r5
mov r2, #0
@@ -45,7 +45,7 @@ _02318EF8:
bl UpdateStatusIconFlags
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02318F04: .word ov10_022C4734
_02318F04: .word SAFEGUARD_TURN_RANGE
#ifdef JAPAN
_02318F08: .word 0x00000A2E
_02318F0C: .word 0x00000A2F
@@ -72,7 +72,7 @@ TryInflictMistStatus: ; 0x02318F10
ldrb r0, [r4, #0xd5]
cmp r0, #0xe
beq _02318F88
ldr r1, _02318FA4 ; =ov10_022C4738
ldr r1, _02318FA4 ; =MIST_TURN_RANGE
mov r3, #0xe
mov r0, r5
mov r2, #0
@@ -101,7 +101,7 @@ _02318F98:
bl UpdateStatusIconFlags
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02318FA4: .word ov10_022C4738
_02318FA4: .word MIST_TURN_RANGE
#ifdef JAPAN
_02318FA8: .word 0x00000A31
#else
@@ -178,7 +178,7 @@ TryInflictMagicCoatStatus: ; 0x0231904C
ldrb r0, [r4, #0xd5]
cmp r0, #5
beq _023190C4
ldr r1, _023190E0 ; =ov10_022C4740
ldr r1, _023190E0 ; =MAGIC_COAT_TURN_RANGE
mov r3, #5
mov r0, r5
mov r2, #0
@@ -203,7 +203,7 @@ _023190D4:
bl UpdateStatusIconFlags
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_023190E0: .word ov10_022C4740
_023190E0: .word MAGIC_COAT_TURN_RANGE
#ifdef JAPAN
_023190E4: .word 0x00000A27
_023190E8: .word 0x00000A28
@@ -230,7 +230,7 @@ TryInflictLightScreenStatus: ; 0x023190EC
ldrb r0, [r4, #0xd5]
cmp r0, #3
beq _02319164
ldr r1, _02319180 ; =ov10_022C4730
ldr r1, _02319180 ; =LIGHT_SCREEN_TURN_RANGE
mov r3, #3
mov r0, r5
mov r2, #0
@@ -255,7 +255,7 @@ _02319174:
bl UpdateStatusIconFlags
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02319180: .word ov10_022C4730
_02319180: .word LIGHT_SCREEN_TURN_RANGE
#ifdef JAPAN
_02319184: .word 0x00000A34
_02319188: .word 0x00000A35
@@ -496,7 +496,7 @@ TryInflictMirrorMoveStatus: ; 0x02319418
ldrb r0, [r4, #0xd5]
cmp r0, #0xb
beq _02319490
ldr r1, _023194AC ; =ov10_022C4840
ldr r1, _023194AC ; =MIRROR_MOVE_TURN_RANGE
mov r3, #0xb
mov r0, r5
mov r2, #0
@@ -521,7 +521,7 @@ _023194A0:
bl UpdateStatusIconFlags
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_023194AC: .word ov10_022C4840
_023194AC: .word MIRROR_MOVE_TURN_RANGE
#ifdef JAPAN
_023194B0: .word 0x00000A9A
_023194B4: .word 0x00000A9B

View File

@@ -1275,7 +1275,7 @@ _0231DB70:
bl ov29_022E5AE4
mov r0, r4
mov r1, r5
bl ov29_023038D4
bl DungeonTmLearnMove
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}

View File

@@ -3,15 +3,15 @@
.text
arm_func_start ov29_0231EA04
ov29_0231EA04: ; 0x0231EA04
arm_func_start InitMoveWrapper
InitMoveWrapper: ; 0x0231EA04
ldr ip, _0231EA14 ; =InitMove
mov r0, r1
mov r1, r2
bx ip
.align 2, 0
_0231EA14: .word InitMove
arm_func_end ov29_0231EA04
arm_func_end InitMoveWrapper
arm_func_start MoveIsNotPhysical
MoveIsNotPhysical: ; 0x0231EA18
@@ -80,7 +80,7 @@ _0231EAAC:
bl LogMessageByIdWithPopupCheckUser
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0231EAC8:
bl ov29_022E0378
bl FloorSecondaryTerrainIsChasm
cmp r0, #0
movne r7, #3
moveq r7, #2

View File

@@ -3,8 +3,8 @@
.text
arm_func_start ov29_0231EDFC
ov29_0231EDFC: ; 0x0231EDFC
arm_func_start TryHurl
TryHurl: ; 0x0231EDFC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xf4
mov r5, r0
@@ -463,7 +463,7 @@ _0231F454:
bne _0231F4B4
mov r3, #0
str r3, [sp]
ldr r0, _0231F568 ; =ov10_022C4458
ldr r0, _0231F568 ; =HURL_DAMAGE
ldr r1, _0231F56C ; =0x00000259
str r3, [sp, #4]
str r1, [sp, #8]
@@ -486,7 +486,7 @@ _0231F4B4:
_0231F4D4:
mov r3, #0
str r3, [sp]
ldr r0, _0231F568 ; =ov10_022C4458
ldr r0, _0231F568 ; =HURL_DAMAGE
str r3, [sp, #4]
mov r1, #0x258
str r1, [sp, #8]
@@ -529,6 +529,6 @@ _0231F558: .word 0x00000E47 + OV29_0231EDFC_OFFSET
_0231F55C: .word 0x00000212
_0231F560: .word DIRECTIONS_XY + 2
_0231F564: .word 0x00000163
_0231F568: .word ov10_022C4458
_0231F568: .word HURL_DAMAGE
_0231F56C: .word 0x00000259
arm_func_end ov29_0231EDFC
arm_func_end TryHurl

View File

@@ -111,8 +111,8 @@ _0231F6E0: .word 0x00000C07
#endif
arm_func_end TryDrought
arm_func_start ov29_0231F6E4
ov29_0231F6E4: ; 0x0231F6E4
arm_func_start TryTrawl
TryTrawl: ; 0x0231F6E4
#ifdef JAPAN
#define OV29_0231F6E4_OFFSET -0xA4
#else
@@ -503,4 +503,4 @@ _0231FBF4: .word 0x00000222
#ifndef JAPAN
_0231FBF8: .word 0x00000BD1
#endif
arm_func_end ov29_0231F6E4
arm_func_end TryTrawl

View File

@@ -446,7 +446,7 @@ DoMovePounce: ; 0x0232CA4C
arm_func_start DoMoveTrawl
DoMoveTrawl: ; 0x0232CA60
stmdb sp!, {r3, lr}
bl ov29_0231F6E4
bl TryTrawl
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end DoMoveTrawl
@@ -487,7 +487,7 @@ _0232CAB4:
_0232CAE8:
mov r0, #1
mov r1, r0
bl ov29_022E09E8
bl SetDungeonEscapeFields
_0232CAF4:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
@@ -1081,7 +1081,7 @@ _0232D1D8: .word 0x00000257
arm_func_start DoMoveHurl
DoMoveHurl: ; 0x0232D1DC
stmdb sp!, {r3, lr}
bl ov29_0231EDFC
bl TryHurl
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end DoMoveHurl

View File

@@ -157,7 +157,7 @@ ov29_023365E8: ; 0x023365E8
ldrls r0, _02336650 ; =DEFAULT_TILE
strls r1, [r0]
ldmlsia sp!, {r3, pc}
bl ov29_022E0378
bl FloorSecondaryTerrainIsChasm
cmp r0, #0
ldrne r1, _02336654 ; =ov29_02352B88
ldrne r0, _02336650 ; =DEFAULT_TILE

View File

@@ -64,7 +64,7 @@ ov29_02346888: ; 0x02346888
bne _023468F0
mov r0, #2
mov r1, #1
bl ov29_022E09E8
bl SetDungeonEscapeFields
_023468F0:
add sp, sp, #4
ldmia sp!, {r3, r4, pc}

View File

@@ -817,7 +817,7 @@ _02348A3C:
bne _02348A3C
mov r0, #2
mov r1, #1
bl ov29_022E09E8
bl SetDungeonEscapeFields
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
_02348A90:

View File

@@ -1549,7 +1549,7 @@ _0234AC40:
beq _0234AC68
mov r0, #2
mov r1, #1
bl ov29_022E09E8
bl SetDungeonEscapeFields
b _0234AC70
_0234AC68:
ldr r0, _0234AC88 ; =0x00000E43

View File

@@ -6,5 +6,6 @@
bool8 IsMonsterLoneOutlaw(struct monster* monster_info);
bool8 IsSecretBazaarNpc(struct entity *entity);
bool8 IsTeamMemberOnFirstTurnInFixedRoom(struct monster *monster);
#endif //PMDSKY_DUNGEON_LOGIC_7_H

9
include/dungeon_util_2.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_DUNGEON_UTIL_2_H
#define PMDSKY_DUNGEON_UTIL_2_H
#include "dungeon_mode.h"
// Checks if a monster can target a position. This function just calls IsPositionInSight using the position of the user as the origin.
bool8 CanTargetPosition(struct entity *monster, struct position *position);
#endif //PMDSKY_DUNGEON_UTIL_2_H

View File

@@ -3441,7 +3441,7 @@ enum game_mode
// Possibly more?
};
enum FlagCalcOperation {
enum script_calc_operation {
CALC_SET = 0,
CALC_SUB = 1,
CALC_ADD = 2,

View File

@@ -1,5 +1,5 @@
#ifndef PMDSKY_MOVE_ORB_EFFECTS_1_H
#define PMDSKY_MOVE_ORB_EFFECTS_1_H
#ifndef PMDSKY_MOVE_ORB_EFFECTS_H
#define PMDSKY_MOVE_ORB_EFFECTS_H
#include "util.h"
#include "dungeon_mode.h"
@@ -40,4 +40,4 @@ void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 tur
void BoostSpeedOneStage(struct entity *user, struct entity *target, s32 turns, bool8 displayMessage);
void LowerSpeed(struct entity *user, struct entity *target, s32 nStages, bool8 displayMessage);
#endif //PMDSKY_MOVE_ORB_EFFECTS_1_H
#endif //PMDSKY_MOVE_ORB_EFFECTS_H

View File

@@ -41,6 +41,6 @@ void LoadScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s3
void LoadScriptVariableValueString(const enum script_var_id sv_id, u8* result, u8 num_bytes);
void SaveScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s32 num_bytes);
s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2);
s32 FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation);
s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation);
#endif //PMDSKY_SCRIPTING_H

View File

@@ -380,6 +380,8 @@ Overlay OVY_29
Object asm/overlay_29_022E1AD4.o
Object src/dungeon_visibility.o
Object asm/overlay_29_022E28D4.o
Object src/dungeon_util_2.o
Object asm/overlay_29_022E2978.o
Object src/dg_camera.o
Object asm/overlay_29_022E335C.o
Object src/dg_effect.o
@@ -447,7 +449,7 @@ Overlay OVY_29
Object src/joined_at_checks.o
Object asm/overlay_29_022FBB1C.o
Object src/dungeon_logic_7.o
Object asm/overlay_29_022FBE04.o
Object asm/overlay_29_022FBE58.o
Object src/overlay_29_022FC99C.o
Object asm/overlay_29_022FC9C0.o
Object src/overlay_29_022FEEB8_eu.o
@@ -541,7 +543,7 @@ Overlay OVY_29
Object asm/overlay_29_023118D8.o
Object src/overlay_29_02311BF8.o
Object asm/overlay_29_02311C28.o
Object src/move_orb_effects_1.o
Object src/move_orb_effects.o
Object asm/overlay_29_02314810.o
Object src/overlay_29_02315118.o
Object asm/overlay_29_0231516C.o

View File

@@ -14,6 +14,7 @@
#include "dungeon_range_2.h"
#include "dungeon_util.h"
#include "dungeon_util_1.h"
#include "dungeon_util_2.h"
#include "dungeon_util_static.h"
#include "dungeon_visibility.h"
#include "main_0200EDC0.h"
@@ -48,8 +49,6 @@ struct can_move_in_direction_info
const s32 FACING_DIRECTION_INCREMENTS[] = {0, 1, -1, 2, -2, 3, -3, 4};
extern bool8 CanTargetPosition(struct entity *monster, struct position *position);
extern s32 ov29_022FBE04(struct monster*);
extern bool8 ShouldAvoidFirstHit(struct entity *monster, bool8 force_avoid);
extern bool8 CanSeeTeammate(struct entity *monster);
extern struct entity* GetLeaderIfVisible(struct entity *monster);
@@ -525,7 +524,7 @@ void AiMovement(struct entity *monster, bool8 show_run_away_effect)
return;
}
if (ov29_022FBE04(pokemon_info))
if (IsTeamMemberOnFirstTurnInFixedRoom(pokemon_info))
return;
s32 direction = GetDirectionTowardsPosition(&monster->pos, &pokemon_info_2->ai_target.ai_target_pos);
@@ -1478,7 +1477,7 @@ _01FFAF28:
b _01FFB2A4
_01FFAF7C:
mov r0, r9
bl ov29_022FBE04
bl IsTeamMemberOnFirstTurnInFixedRoom
cmp r0, #0
bne _01FFB2A4
add r0, r4, #4

View File

@@ -2,7 +2,7 @@
#include "dungeon_logic_3.h"
#include "dungeon_pokemon_attributes.h"
#include "dungeon_util_static.h"
#include "move_orb_effects_1.h"
#include "move_orb_effects.h"
#include "overlay_29_02308FBC.h"
#include "overlay_29_0230A994.h"
#include "overlay_29_0230AB58.h"

View File

@@ -2,8 +2,11 @@
#include "dungeon_logic_6.h"
#include "dungeon_mode.h"
#include "dungeon_util_static.h"
#include "fixed_room_data_1.h"
#include "util.h"
extern s32 GetTurnLimit(enum dungeon_id dungeon_id);
bool8 IsMonsterLoneOutlaw(struct monster* monster_info)
{
return IsBehaviorLoneOutlaw(monster_info->monster_behavior);
@@ -13,3 +16,13 @@ bool8 IsSecretBazaarNpc(struct entity *entity)
{
return IsSecretBazaarNpcBehavior(GetEntInfo(entity)->monster_behavior);
}
bool8 IsTeamMemberOnFirstTurnInFixedRoom(struct monster *monster)
{
if (!monster->is_not_team_member &&
DUNGEON_PTR[0]->wind_turns == GetTurnLimit(DUNGEON_PTR[0]->id) &&
IsFullFloorFixedRoom())
return TRUE;
return FALSE;
}

8
src/dungeon_util_2.c Normal file
View File

@@ -0,0 +1,8 @@
#include "dungeon_util_2.h"
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_range.h"
bool8 CanTargetPosition(struct entity *monster, struct position *position)
{
return IsPositionInSight(&monster->pos, position, HasDropeyeStatus(monster));
}

View File

@@ -1,7 +1,7 @@
#include "dungeon_pokemon_attributes.h"
#include "dungeon_util_static.h"
#include "overlay_29_023118B4.h"
#include "move_orb_effects_1.h"
#include "move_orb_effects.h"
#include "overlay_29_02311BF8.h"
#include "overlay_29_023018AC.h"
#include "math.h"
@@ -26,7 +26,7 @@ extern void PlayHitChanceDownEffect(struct entity *user, struct StatIndex);
extern void LogMessageByIdWithPopupCheckUserTarget(struct entity *user, struct entity *target, u32 message_id);
extern void UpdateStatusIconFlags(struct entity *);
extern void ov29_022E4338(struct entity *);
extern void PlayCringeExclamationPointEffect(struct entity *);
extern void PlayExclamationPointEffect__022E5D4C(struct entity *);
extern void PlayParalysisEffect(struct entity *);
extern void PlaySpeedUpEffect(struct entity *);
extern void PlaySpeedDownEffect(struct entity *);
@@ -592,7 +592,7 @@ bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 d
if (entityInfo->cringe_class_status.cringe != STATUS_CRINGE_CRINGE) {
entityInfo->cringe_class_status.cringe = STATUS_CRINGE_CRINGE;
entityInfo->cringe_class_status.cringe_turns = CalcStatusDuration(target, CRINGE_TURN_RANGE, TRUE) + 1;
PlayCringeExclamationPointEffect(target);
PlayExclamationPointEffect__022E5D4C(target);
LogMessageByIdWithPopupCheckUserTarget(user,target,0xd02 + JPN_MSG_OFFSET);
TryActivateSteadfast(user, target);
TryActivateQuickFeet(user, target);

View File

@@ -162,7 +162,7 @@ void SaveScriptVariableValue(union script_var_value sv_locals[], const enum scri
{
struct script_var_raw script_var_raw;
LoadScriptVariableRaw(&script_var_raw, sv_locals, script_var_id);
switch ((s16)script_var_raw.def->type) {
case VARTYPE_BIT:
u32 bitmask = 1 << script_var_raw.def->bitshift;
@@ -221,7 +221,7 @@ void SaveScriptVariableValue(union script_var_value sv_locals[], const enum scri
break;
}
break;
default:
return;
}
@@ -233,7 +233,7 @@ void SaveScriptVariableValueAtIndex(union script_var_value sv_locals[], const en
{
struct script_var_raw script_var_raw;
LoadScriptVariableRaw(&script_var_raw, sv_locals, script_var_id);
switch ((s16)script_var_raw.def->type) {
case VARTYPE_BIT:
// For VARTYPE_BIT, idx specifies a number of bits
@@ -285,7 +285,7 @@ void SaveScriptVariableValueAtIndex(union script_var_value sv_locals[], const en
break;
}
break;
default:
return;
}
@@ -297,13 +297,13 @@ s32 LoadScriptVariableValueSum(union script_var_value sv_local[], const enum scr
{
struct script_var_raw script_var_raw;
s32 total = 0;
LoadScriptVariableRaw(&script_var_raw, 0, sv_id);
for(s32 idx = 0; idx < (s16) script_var_raw.def->n_values; idx++) {
total += LoadScriptVariableValueAtIndex(sv_local, sv_id, (u16) idx);
}
return total;
}
@@ -314,7 +314,7 @@ void LoadScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s3
s32 i = 0;
u8* val_ptr = (u8*) sv_raw.value;
for(i = 0; i < num_bytes; i++) {
u8 val = *val_ptr;
*result = val;
@@ -351,11 +351,11 @@ s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_
LoadScriptVariableRaw(&script_var_raw_1, sv_val_ptr_local, sv_id_1);
LoadScriptVariableRaw(&script_var_raw_2, sv_val_ptr_local, sv_id_2);
s32 n_values = script_var_raw_1.def->n_values;
for(int idx = 0; idx < n_values; idx++) {
if (LoadScriptVariableValueAtIndex(sv_val_ptr_local, sv_id_1, idx) !=
if (LoadScriptVariableValueAtIndex(sv_val_ptr_local, sv_id_1, idx) !=
LoadScriptVariableValueAtIndex(sv_val_ptr_local, sv_id_2, idx)) {
return 0;
}
@@ -364,7 +364,7 @@ s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_
return 1;
}
s32 FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation)
s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation)
{
switch (operation) {
case CALC_SET: