diff --git a/asm/include/itcm.inc b/asm/include/itcm.inc index 4ee25ddb..532c9276 100644 --- a/asm/include/itcm.inc +++ b/asm/include/itcm.inc @@ -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 diff --git a/asm/include/main_02014D18.inc b/asm/include/main_02014D18.inc index cf1f7de1..733c2f78 100644 --- a/asm/include/main_02014D18.inc +++ b/asm/include/main_02014D18.inc @@ -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 diff --git a/asm/include/main_0204BD98.inc b/asm/include/main_0204BD98.inc index 1c1794fe..61e538a0 100644 --- a/asm/include/main_0204BD98.inc +++ b/asm/include/main_0204BD98.inc @@ -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 diff --git a/asm/include/main_0204CBE8.inc b/asm/include/main_0204CBE8.inc index 2e019fe4..42ca111e 100644 --- a/asm/include/main_0204CBE8.inc +++ b/asm/include/main_0204CBE8.inc @@ -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 diff --git a/asm/include/main_02051788.inc b/asm/include/main_02051788.inc index 09afbb52..abf11829 100644 --- a/asm/include/main_02051788.inc +++ b/asm/include/main_02051788.inc @@ -1,3 +1,3 @@ #pragma once -.public ARM9_UNKNOWN_TABLE__NA_20A20B0 .public _020A20B1 +.public ARM9_UNKNOWN_TABLE__NA_20A20B0 diff --git a/asm/include/main_020517F4.inc b/asm/include/main_020517F4.inc index c047e09b..c636eeb3 100644 --- a/asm/include/main_020517F4.inc +++ b/asm/include/main_020517F4.inc @@ -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 diff --git a/asm/include/main_02054E4C.inc b/asm/include/main_02054E4C.inc index c0034ef8..24d2bf65 100644 --- a/asm/include/main_02054E4C.inc +++ b/asm/include/main_02054E4C.inc @@ -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 diff --git a/asm/include/main_02058C4C.inc b/asm/include/main_02058C4C.inc index fbb341b7..2cdc8a7e 100644 --- a/asm/include/main_02058C4C.inc +++ b/asm/include/main_02058C4C.inc @@ -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 diff --git a/asm/include/main_rodata_020908D4.inc b/asm/include/main_rodata_020908D4.inc index d60a3b46..a95a16f2 100644 --- a/asm/include/main_rodata_020908D4.inc +++ b/asm/include/main_rodata_020908D4.inc @@ -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 diff --git a/asm/include/main_rodata_020A190C.inc b/asm/include/main_rodata_020A190C.inc index 6f70f09b..3f59c932 100644 --- a/asm/include/main_rodata_020A190C.inc +++ b/asm/include/main_rodata_020A190C.inc @@ -1 +1,2 @@ #pragma once + diff --git a/asm/include/main_rodata_020A1BB0.inc b/asm/include/main_rodata_020A1BB0.inc index 6f70f09b..3f59c932 100644 --- a/asm/include/main_rodata_020A1BB0.inc +++ b/asm/include/main_rodata_020A1BB0.inc @@ -1 +1,2 @@ #pragma once + diff --git a/asm/include/main_rodata_020A2808.inc b/asm/include/main_rodata_020A2808.inc index 7df1c67e..305cef59 100644 --- a/asm/include/main_rodata_020A2808.inc +++ b/asm/include/main_rodata_020A2808.inc @@ -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 diff --git a/asm/include/overlay_10_022C2588.inc b/asm/include/overlay_10_022C2588.inc index 096a7cc4..df759765 100644 --- a/asm/include/overlay_10_022C2588.inc +++ b/asm/include/overlay_10_022C2588.inc @@ -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 diff --git a/asm/include/overlay_29_022E28D4.inc b/asm/include/overlay_29_022E28D4.inc index f4d4270a..47350e70 100644 --- a/asm/include/overlay_29_022E28D4.inc +++ b/asm/include/overlay_29_022E28D4.inc @@ -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 diff --git a/asm/include/overlay_29_022E2978.inc b/asm/include/overlay_29_022E2978.inc new file mode 100644 index 00000000..219fd79a --- /dev/null +++ b/asm/include/overlay_29_022E2978.inc @@ -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 diff --git a/asm/include/overlay_29_022E9488.inc b/asm/include/overlay_29_022E9488.inc index a1b5af35..4a63334c 100644 --- a/asm/include/overlay_29_022E9488.inc +++ b/asm/include/overlay_29_022E9488.inc @@ -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 diff --git a/asm/include/overlay_29_022F7768.inc b/asm/include/overlay_29_022F7768.inc index dfc70a7d..1489234e 100644 --- a/asm/include/overlay_29_022F7768.inc +++ b/asm/include/overlay_29_022F7768.inc @@ -28,8 +28,8 @@ .public GetTileAtEntity .public GetTileSafe .public IQ_SKILLS -.public IsLevelResetDungeon .public IsBehaviorLoneOutlaw +.public IsLevelResetDungeon .public IsMonsterIdInNormalRange .public IsOutlawOrChallengeRequestFloor .public IsRecruitingAllowed diff --git a/asm/include/overlay_29_022F9744.inc b/asm/include/overlay_29_022F9744.inc index 5c1b44f7..27f28c09 100644 --- a/asm/include/overlay_29_022F9744.inc +++ b/asm/include/overlay_29_022F9744.inc @@ -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 diff --git a/asm/include/overlay_29_022FA524.inc b/asm/include/overlay_29_022FA524.inc index f84863dc..0811bd48 100644 --- a/asm/include/overlay_29_022FA524.inc +++ b/asm/include/overlay_29_022FA524.inc @@ -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 diff --git a/asm/include/overlay_29_022FBE04.inc b/asm/include/overlay_29_022FBE58.inc similarity index 95% rename from asm/include/overlay_29_022FBE04.inc rename to asm/include/overlay_29_022FBE58.inc index 9ed084d6..bcdecba4 100644 --- a/asm/include/overlay_29_022FBE04.inc +++ b/asm/include/overlay_29_022FBE58.inc @@ -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 diff --git a/asm/include/overlay_29_022FC9C0.inc b/asm/include/overlay_29_022FC9C0.inc index ad92267e..4515b98a 100644 --- a/asm/include/overlay_29_022FC9C0.inc +++ b/asm/include/overlay_29_022FC9C0.inc @@ -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 diff --git a/asm/include/overlay_29_02302A5C.inc b/asm/include/overlay_29_02302A5C.inc index 31f181de..08723b84 100644 --- a/asm/include/overlay_29_02302A5C.inc +++ b/asm/include/overlay_29_02302A5C.inc @@ -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 diff --git a/asm/include/overlay_29_023055B0.inc b/asm/include/overlay_29_023055B0.inc index 72a7a577..3a910ca4 100644 --- a/asm/include/overlay_29_023055B0.inc +++ b/asm/include/overlay_29_023055B0.inc @@ -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 diff --git a/asm/include/overlay_29_023085DC.inc b/asm/include/overlay_29_023085DC.inc index f4aca94d..eed22562 100644 --- a/asm/include/overlay_29_023085DC.inc +++ b/asm/include/overlay_29_023085DC.inc @@ -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 diff --git a/asm/include/overlay_29_02308FE0.inc b/asm/include/overlay_29_02308FE0.inc index 0ea23a8e..eaebeea7 100644 --- a/asm/include/overlay_29_02308FE0.inc +++ b/asm/include/overlay_29_02308FE0.inc @@ -31,8 +31,8 @@ .public IsBlinded .public IsCurrentMissionType .public IsExperienceLocked -.public IsMonsterLoneOutlaw .public IsMonsterIdInNormalRangeVeneer +.public IsMonsterLoneOutlaw .public IsSecretBazaarNpcBehavior .public IsSpecialStoryAlly .public ItemIsActive__0230A9DC diff --git a/asm/include/overlay_29_0230F02C.inc b/asm/include/overlay_29_0230F02C.inc index a08aa6ec..72c62778 100644 --- a/asm/include/overlay_29_0230F02C.inc +++ b/asm/include/overlay_29_0230F02C.inc @@ -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 diff --git a/asm/include/overlay_29_02311C28.inc b/asm/include/overlay_29_02311C28.inc index 88f577f2..55e1c544 100644 --- a/asm/include/overlay_29_02311C28.inc +++ b/asm/include/overlay_29_02311C28.inc @@ -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 diff --git a/asm/include/overlay_29_02313CE4.inc b/asm/include/overlay_29_02313CE4.inc index 87232ce0..4906391f 100644 --- a/asm/include/overlay_29_02313CE4.inc +++ b/asm/include/overlay_29_02313CE4.inc @@ -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 diff --git a/asm/include/overlay_29_0231516C.inc b/asm/include/overlay_29_0231516C.inc index 1929f37c..04ed0d70 100644 --- a/asm/include/overlay_29_0231516C.inc +++ b/asm/include/overlay_29_0231516C.inc @@ -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 diff --git a/asm/include/overlay_29_02318D58.inc b/asm/include/overlay_29_02318D58.inc index d4c221d1..d6345c2d 100644 --- a/asm/include/overlay_29_02318D58.inc +++ b/asm/include/overlay_29_02318D58.inc @@ -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 diff --git a/asm/include/overlay_29_02318E70.inc b/asm/include/overlay_29_02318E70.inc index c2379108..5098f0d1 100644 --- a/asm/include/overlay_29_02318E70.inc +++ b/asm/include/overlay_29_02318E70.inc @@ -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 diff --git a/asm/include/overlay_29_0231CBEC.inc b/asm/include/overlay_29_0231CBEC.inc index 2dc70204..127830a5 100644 --- a/asm/include/overlay_29_0231CBEC.inc +++ b/asm/include/overlay_29_0231CBEC.inc @@ -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 diff --git a/asm/include/overlay_29_0231EA04.inc b/asm/include/overlay_29_0231EA04.inc index 70aa698f..e5999401 100644 --- a/asm/include/overlay_29_0231EA04.inc +++ b/asm/include/overlay_29_0231EA04.inc @@ -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 diff --git a/asm/include/overlay_29_0231EDFC.inc b/asm/include/overlay_29_0231EDFC.inc index 1fc9794a..7f0f3951 100644 --- a/asm/include/overlay_29_0231EDFC.inc +++ b/asm/include/overlay_29_0231EDFC.inc @@ -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 diff --git a/asm/include/overlay_29_0232C524.inc b/asm/include/overlay_29_0232C524.inc index ff1c196b..f156338a 100644 --- a/asm/include/overlay_29_0232C524.inc +++ b/asm/include/overlay_29_0232C524.inc @@ -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 diff --git a/asm/include/overlay_29_02336224.inc b/asm/include/overlay_29_02336224.inc index 6853c2ff..d4039059 100644 --- a/asm/include/overlay_29_02336224.inc +++ b/asm/include/overlay_29_02336224.inc @@ -1,5 +1,5 @@ #pragma once .public DUNGEON_PTR .public IsGoldenChamber -.public PositionHasItem .public ov29_023369F8 +.public PositionHasItem diff --git a/asm/include/overlay_29_02336450.inc b/asm/include/overlay_29_02336450.inc index bfffe9f2..ad2ee419 100644 --- a/asm/include/overlay_29_02336450.inc +++ b/asm/include/overlay_29_02336450.inc @@ -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 diff --git a/asm/include/overlay_29_0233861C.inc b/asm/include/overlay_29_0233861C.inc index 129c5c79..b5fee41d 100644 --- a/asm/include/overlay_29_0233861C.inc +++ b/asm/include/overlay_29_0233861C.inc @@ -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 diff --git a/asm/include/overlay_29_02346834.inc b/asm/include/overlay_29_02346834.inc index 2d261ac5..e3c07edc 100644 --- a/asm/include/overlay_29_02346834.inc +++ b/asm/include/overlay_29_02346834.inc @@ -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 diff --git a/asm/include/overlay_29_02348020.inc b/asm/include/overlay_29_02348020.inc index 37a69c1c..423cdb58 100644 --- a/asm/include/overlay_29_02348020.inc +++ b/asm/include/overlay_29_02348020.inc @@ -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 diff --git a/asm/include/overlay_29_02348D3C.inc b/asm/include/overlay_29_02348D3C.inc index 4faee65b..740ab1c0 100644 --- a/asm/include/overlay_29_02348D3C.inc +++ b/asm/include/overlay_29_02348D3C.inc @@ -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 diff --git a/asm/include/overlay_29_023498A0.inc b/asm/include/overlay_29_023498A0.inc index d99890df..7f79ff9a 100644 --- a/asm/include/overlay_29_023498A0.inc +++ b/asm/include/overlay_29_023498A0.inc @@ -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 diff --git a/asm/include/overlay_31_023838E4.inc b/asm/include/overlay_31_023838E4.inc index 7b8d9868..f9f9f15f 100644 --- a/asm/include/overlay_31_023838E4.inc +++ b/asm/include/overlay_31_023838E4.inc @@ -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 diff --git a/asm/main_0204BD98.s b/asm/main_0204BD98.s index b9dca47e..a612f28e 100644 --- a/asm/main_0204BD98.s +++ b/asm/main_0204BD98.s @@ -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 diff --git a/asm/main_0204DE7C.s b/asm/main_0204DE7C.s index eec0efe1..fb541958 100644 --- a/asm/main_0204DE7C.s +++ b/asm/main_0204DE7C.s @@ -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 diff --git a/asm/overlay_10_022C2588.s b/asm/overlay_10_022C2588.s index f7585cdf..d345413e 100644 --- a/asm/overlay_10_022C2588.s +++ b/asm/overlay_10_022C2588.s @@ -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] diff --git a/asm/overlay_10_022C4394.s b/asm/overlay_10_022C4394.s index c3766444..3acbefee 100644 --- a/asm/overlay_10_022C4394.s +++ b/asm/overlay_10_022C4394.s @@ -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: diff --git a/asm/overlay_10_rodata_022C464C.s b/asm/overlay_10_rodata_022C464C.s index 212e7436..4ae08bb8 100644 --- a/asm/overlay_10_rodata_022C464C.s +++ b/asm/overlay_10_rodata_022C464C.s @@ -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: diff --git a/asm/overlay_29_022E0378.s b/asm/overlay_29_022E0378.s index 09fe9524..307c29e1 100644 --- a/asm/overlay_29_022E0378.s +++ b/asm/overlay_29_022E0378.s @@ -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 diff --git a/asm/overlay_29_022E08A0.s b/asm/overlay_29_022E08A0.s index d2ac34c0..27687d07 100644 --- a/asm/overlay_29_022E08A0.s +++ b/asm/overlay_29_022E08A0.s @@ -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 diff --git a/asm/overlay_29_022E28D4.s b/asm/overlay_29_022E28D4.s index 6b293059..01c4f9ce 100644 --- a/asm/overlay_29_022E28D4.s +++ b/asm/overlay_29_022E28D4.s @@ -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 diff --git a/asm/overlay_29_022E2978.s b/asm/overlay_29_022E2978.s new file mode 100644 index 00000000..a806b131 --- /dev/null +++ b/asm/overlay_29_022E2978.s @@ -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 diff --git a/asm/overlay_29_022E37DC.s b/asm/overlay_29_022E37DC.s index a98cc774..7dd5af3c 100644 --- a/asm/overlay_29_022E37DC.s +++ b/asm/overlay_29_022E37DC.s @@ -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 diff --git a/asm/overlay_29_022EE36C.s b/asm/overlay_29_022EE36C.s index a058e841..6f22bebc 100644 --- a/asm/overlay_29_022EE36C.s +++ b/asm/overlay_29_022EE36C.s @@ -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 diff --git a/asm/overlay_29_022FA524.s b/asm/overlay_29_022FA524.s index 0d403c56..de0b7751 100644 --- a/asm/overlay_29_022FA524.s +++ b/asm/overlay_29_022FA524.s @@ -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 diff --git a/asm/overlay_29_022FBE04.s b/asm/overlay_29_022FBE58.s similarity index 96% rename from asm/overlay_29_022FBE04.s rename to asm/overlay_29_022FBE58.s index d4b5d012..08407f0b 100644 --- a/asm/overlay_29_022FBE04.s +++ b/asm/overlay_29_022FBE58.s @@ -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} diff --git a/asm/overlay_29_02302A5C.s b/asm/overlay_29_02302A5C.s index 8af0f0ea..34f19702 100644 --- a/asm/overlay_29_02302A5C.s +++ b/asm/overlay_29_02302A5C.s @@ -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 diff --git a/asm/overlay_29_023055B0.s b/asm/overlay_29_023055B0.s index 45a75f75..8750c7a6 100644 --- a/asm/overlay_29_023055B0.s +++ b/asm/overlay_29_023055B0.s @@ -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 diff --git a/asm/overlay_29_023085DC.s b/asm/overlay_29_023085DC.s index 33f5be04..dfe40f88 100644 --- a/asm/overlay_29_023085DC.s +++ b/asm/overlay_29_023085DC.s @@ -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 diff --git a/asm/overlay_29_02311C28.s b/asm/overlay_29_02311C28.s index 61ac48bc..5822e857 100644 --- a/asm/overlay_29_02311C28.s +++ b/asm/overlay_29_02311C28.s @@ -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 diff --git a/asm/overlay_29_0231516C.s b/asm/overlay_29_0231516C.s index cdf4c78f..41fdb4e8 100644 --- a/asm/overlay_29_0231516C.s +++ b/asm/overlay_29_0231516C.s @@ -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 diff --git a/asm/overlay_29_02318D58.s b/asm/overlay_29_02318D58.s index 2f876c0f..cef4a39f 100644 --- a/asm/overlay_29_02318D58.s +++ b/asm/overlay_29_02318D58.s @@ -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 diff --git a/asm/overlay_29_02318E70.s b/asm/overlay_29_02318E70.s index c276f410..e30b3a4a 100644 --- a/asm/overlay_29_02318E70.s +++ b/asm/overlay_29_02318E70.s @@ -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 diff --git a/asm/overlay_29_0231CBEC.s b/asm/overlay_29_0231CBEC.s index 536842f5..e04eecd4 100644 --- a/asm/overlay_29_0231CBEC.s +++ b/asm/overlay_29_0231CBEC.s @@ -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} diff --git a/asm/overlay_29_0231EA04.s b/asm/overlay_29_0231EA04.s index 58f3bf5c..3c24803a 100644 --- a/asm/overlay_29_0231EA04.s +++ b/asm/overlay_29_0231EA04.s @@ -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 diff --git a/asm/overlay_29_0231EDFC.s b/asm/overlay_29_0231EDFC.s index bb669a07..6366bdd9 100644 --- a/asm/overlay_29_0231EDFC.s +++ b/asm/overlay_29_0231EDFC.s @@ -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 diff --git a/asm/overlay_29_0231F594.s b/asm/overlay_29_0231F594.s index 1a49516a..8e411fc0 100644 --- a/asm/overlay_29_0231F594.s +++ b/asm/overlay_29_0231F594.s @@ -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 diff --git a/asm/overlay_29_0232C524.s b/asm/overlay_29_0232C524.s index d8e0bffb..3af4519d 100644 --- a/asm/overlay_29_0232C524.s +++ b/asm/overlay_29_0232C524.s @@ -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 diff --git a/asm/overlay_29_02336450.s b/asm/overlay_29_02336450.s index 6e10896b..eac35a8a 100644 --- a/asm/overlay_29_02336450.s +++ b/asm/overlay_29_02336450.s @@ -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 diff --git a/asm/overlay_29_02346834.s b/asm/overlay_29_02346834.s index 0618168e..a69c3979 100644 --- a/asm/overlay_29_02346834.s +++ b/asm/overlay_29_02346834.s @@ -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} diff --git a/asm/overlay_29_02348020.s b/asm/overlay_29_02348020.s index 7e7e3c86..97f73a96 100644 --- a/asm/overlay_29_02348020.s +++ b/asm/overlay_29_02348020.s @@ -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: diff --git a/asm/overlay_29_023498A0.s b/asm/overlay_29_023498A0.s index cc1a574c..737bd9e6 100644 --- a/asm/overlay_29_023498A0.s +++ b/asm/overlay_29_023498A0.s @@ -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 diff --git a/include/dungeon_logic_7.h b/include/dungeon_logic_7.h index a7415898..eb01cf87 100644 --- a/include/dungeon_logic_7.h +++ b/include/dungeon_logic_7.h @@ -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 diff --git a/include/dungeon_util_2.h b/include/dungeon_util_2.h new file mode 100644 index 00000000..0ae3c635 --- /dev/null +++ b/include/dungeon_util_2.h @@ -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 diff --git a/include/enums.h b/include/enums.h index f0484d7c..8fba2114 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3441,7 +3441,7 @@ enum game_mode // Possibly more? }; -enum FlagCalcOperation { +enum script_calc_operation { CALC_SET = 0, CALC_SUB = 1, CALC_ADD = 2, diff --git a/include/move_orb_effects_1.h b/include/move_orb_effects.h similarity index 95% rename from include/move_orb_effects_1.h rename to include/move_orb_effects.h index ca896187..2554d69c 100644 --- a/include/move_orb_effects_1.h +++ b/include/move_orb_effects.h @@ -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 diff --git a/include/scripting.h b/include/scripting.h index beb326bf..e092edf8 100644 --- a/include/scripting.h +++ b/include/scripting.h @@ -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 diff --git a/main.lsf b/main.lsf index 6e0ea3b9..10fda222 100644 --- a/main.lsf +++ b/main.lsf @@ -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 diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index d5f879e4..9559354e 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -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 diff --git a/src/dungeon_damage.c b/src/dungeon_damage.c index 349e5532..0bbdb705 100644 --- a/src/dungeon_damage.c +++ b/src/dungeon_damage.c @@ -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" diff --git a/src/dungeon_logic_7.c b/src/dungeon_logic_7.c index 67779147..152f7c8a 100644 --- a/src/dungeon_logic_7.c +++ b/src/dungeon_logic_7.c @@ -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; +} diff --git a/src/dungeon_util_2.c b/src/dungeon_util_2.c new file mode 100644 index 00000000..f7926c55 --- /dev/null +++ b/src/dungeon_util_2.c @@ -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)); +} diff --git a/src/move_orb_effects_1.c b/src/move_orb_effects.c similarity index 99% rename from src/move_orb_effects_1.c rename to src/move_orb_effects.c index 4b88254b..d9610217 100644 --- a/src/move_orb_effects_1.c +++ b/src/move_orb_effects.c @@ -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); diff --git a/src/scripting.c b/src/scripting.c index d24fb137..df21bdf2 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -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: