diff --git a/asm/include/main_02014D18.inc b/asm/include/main_02014D58.inc similarity index 99% rename from asm/include/main_02014D18.inc rename to asm/include/main_02014D58.inc index aed21692..65f4629c 100644 --- a/asm/include/main_02014D18.inc +++ b/asm/include/main_02014D58.inc @@ -1,4 +1,144 @@ #pragma once +.public AUDIO_COMMANDS_BUFFER +.public AddObjToUngroupedOamObjs +.public BagHasExclusiveItemTypeForMonster +.public ClearGroupedOamObjsAndGroups +.public CopyAndInterleave +.public CopyAndInterleave0 +.public CopyAttributesToOam +.public CopyColorToPaletteDataRgba +.public CopyStringFromId +.public DC_FlushRange +.public DUNGEON_MOVE_TABLES +.public Debug_FatalError +.public Debug_GetDebugFlag +.public Debug_Print +.public Debug_Print0 +.public DirectoryFileMngr_GetDirectoryFileSize +.public DirectoryFileMngr_LoadDirectoryFile +.public DirectoryFileMngr_OpenDirectoryFile +.public DseBgm_IsPlaying +.public DseBgm_Load +.public DseBgm_SetFades +.public DseBgm_SetSignalCallback +.public DseBgm_Stop +.public DseBgm_Unload +.public DseDriver_ConfigureHeap +.public DseDriver_Init +.public DseDriver_LoadDefaultSettings +.public DseSe_GetUsedBankIDs +.public DseSe_HasPlayingInstances +.public DseSe_Load +.public DseSe_Play +.public DseSe_Stop +.public DseSe_StopAll +.public DseSe_Unload +.public DseSequence_GetParameter +.public DseSwd_IsBankLoading +.public DseSwd_LoadBank +.public DseSwd_LoadMainBank +.public DseSwd_LoadWaves +.public DseSwd_Unload +.public DungeonGoesUp +.public DungeonSwapIdxToId +.public ENTITIES +.public EnqueueRender3dTexture +.public FileClose +.public FileGetSize +.public FileRom_HandleOpen +.public FileRom_HandleRead +.public FileRom_InitDataTransfer +.public FileRom_StopDataTransfer +.public FileRom_Veneer_FileInit +.public FillPaletteDataRgba +.public G3i_LookAt_ +.public G3i_OrthoW_ +.public GXS_BeginLoadBGExtPltt +.public GXS_BeginLoadOBJExtPltt +.public GXS_EndLoadBGExtPltt +.public GXS_EndLoadOBJExtPltt +.public GX_BeginLoadBGExtPltt +.public GX_BeginLoadOBJExtPltt +.public GX_BeginLoadTex +.public GX_BeginLoadTexPltt +.public GX_EndLoadBGExtPltt +.public GX_EndLoadOBJExtPltt +.public GX_EndLoadTex +.public GX_EndLoadTexPltt +.public GX_LoadTex +.public GX_LoadTexPltt +.public GetAbility +.public GetAbilityString +.public GetActiveRosterIndex +.public GetActiveTeamMember +.public GetActorMatchingStorageId +.public GetCurrentBagCapacity +.public GetDsFirmwareUserSettingsVeneer +.public GetExecuteSpecialEpisodeType +.public GetGameMode +.public GetIqSkillStringId +.public GetItemMoveId16 +.public GetItemNameFormatted +.public GetMainTeamName +.public GetMonsterGender +.public GetMonsterGenderVeneer +.public GetMoveActualAccuracy +.public GetMoveBasePowerFromId +.public GetMoveName +.public GetNameString +.public GetNbFloors +.public GetNbFloorsPlusOne +.public GetResolvedPerformanceProgressFlag +.public GetStringFromFileVeneer +.public GetTeamMember +.public GetTypeStringId +.public GroupOamObjs +.public InitOamInfo +.public IqSkillFlagTest +.public Is2TurnsMove +.public LANGUAGE_INFO_DATA +.public LoadFileFromRom +.public LoadScriptVariableValue +.public LoadScriptVariableValueAtIndex +.public LoadScriptVariableValueString +.public LoadStringFile +.public MOVE_ACCURACY_STARS_TABLE +.public MOVE_POWER_STARS_TABLE +.public MTi_CpuClear32 +.public MTi_CpuCopy32 +.public MarkPaletteDataAsNeedingUpdate +.public MaybeGetFormattedItemName +.public MemAlloc +.public MemArenaAlloc +.public MemFree +.public MemLocateSet +.public MemLocateUnset +.public MemZero +.public MemZero32 +.public Memcpy32 +.public MultiplyByFixedPoint +.public NewRender3dQuadrilateral +.public NewRender3dRectangle +.public NewRender3dTexture +.public NewRender3dTiling +.public OBJ_GRAPHICS_CONTROLS_PTR +.public PointsToZero +.public RENDER_3D +.public RENDER_3D_FUNCTIONS_64 +.public Rand16Bit +.public Render3dProcessQueue +.public ResumeBgm +.public Rgb8ToRgb5 +.public SND_Init +.public SetShouldCopyToOam +.public Snd_LockChannel +.public Snd_UnlockChannel +.public StringFromId +.public StrncpySimpleNoPadSafe +.public TEAM_MEMBER_TABLE_PTR +.public UnloadFile +.public WAN_TABLE +.public ZInit8 .public _02098EA8 .public _02098EE0 .public _02098F60 @@ -261,151 +401,14 @@ .public _022A5970 .public _s32_div_f .public _u32_div_f -.public AddObjToUngroupedOamObjs -.public AUDIO_COMMANDS_BUFFER -.public BagHasExclusiveItemTypeForMonster -.public ClearGroupedOamObjsAndGroups -.public CopyAndInterleave -.public CopyAndInterleave0 -.public CopyAttributesToOam -.public CopyColorToPaletteDataRgba -.public CopyStringFromId -.public DC_FlushRange -.public Debug_FatalError -.public Debug_GetDebugFlag -.public Debug_Print -.public Debug_Print0 -.public DirectoryFileMngr_GetDirectoryFileSize -.public DirectoryFileMngr_LoadDirectoryFile -.public DirectoryFileMngr_OpenDirectoryFile -.public DseBgm_IsPlaying -.public DseBgm_Load -.public DseBgm_SetFades -.public DseBgm_SetSignalCallback -.public DseBgm_Stop -.public DseBgm_Unload -.public DseDriver_ConfigureHeap -.public DseDriver_Init -.public DseDriver_LoadDefaultSettings -.public DseSe_GetUsedBankIDs -.public DseSe_HasPlayingInstances -.public DseSe_Load -.public DseSe_Play -.public DseSe_Stop -.public DseSe_StopAll -.public DseSe_Unload -.public DseSequence_GetParameter -.public DseSwd_IsBankLoading -.public DseSwd_LoadBank -.public DseSwd_LoadMainBank -.public DseSwd_LoadWaves -.public DseSwd_Unload -.public DUNGEON_MOVE_TABLES -.public DungeonGoesUp -.public DungeonSwapIdxToId -.public EnqueueRender3dTexture -.public ENTITIES -.public FileClose -.public FileGetSize -.public FileRom_HandleOpen -.public FileRom_HandleRead -.public FileRom_InitDataTransfer -.public FileRom_StopDataTransfer -.public FileRom_Veneer_FileInit -.public FillPaletteDataRgba -.public G3i_LookAt_ -.public G3i_OrthoW_ -.public GetAbility -.public GetAbilityString -.public GetActiveRosterIndex -.public GetActiveTeamMember -.public GetActorMatchingStorageId -.public GetCurrentBagCapacity -.public GetDsFirmwareUserSettingsVeneer -.public GetExecuteSpecialEpisodeType -.public GetGameMode -.public GetIqSkillStringId -.public GetItemMoveId16 -.public GetItemNameFormatted -.public GetMainTeamName -.public GetMonsterGender -.public GetMonsterGenderVeneer -.public GetMoveActualAccuracy -.public GetMoveBasePowerFromId -.public GetMoveName -.public GetNameString -.public GetNbFloors -.public GetNbFloorsPlusOne -.public GetResolvedPerformanceProgressFlag -.public GetStringFromFileVeneer -.public GetTeamMember -.public GetTypeStringId -.public GroupOamObjs -.public GX_BeginLoadBGExtPltt -.public GX_BeginLoadOBJExtPltt -.public GX_BeginLoadTex -.public GX_BeginLoadTexPltt -.public GX_EndLoadBGExtPltt -.public GX_EndLoadOBJExtPltt -.public GX_EndLoadTex -.public GX_EndLoadTexPltt -.public GX_LoadTex -.public GX_LoadTexPltt -.public GXS_BeginLoadBGExtPltt -.public GXS_BeginLoadOBJExtPltt -.public GXS_EndLoadBGExtPltt -.public GXS_EndLoadOBJExtPltt -.public InitOamInfo -.public IqSkillFlagTest -.public Is2TurnsMove -.public LANGUAGE_INFO_DATA -.public LoadFileFromRom -.public LoadScriptVariableValue -.public LoadScriptVariableValueAtIndex -.public LoadScriptVariableValueString -.public LoadStringFile -.public MarkPaletteDataAsNeedingUpdate -.public MaybeGetFormattedItemName -.public MemAlloc -.public MemArenaAlloc -.public Memcpy32 -.public MemFree -.public MemLocateSet -.public MemLocateUnset -.public MemZero -.public MemZero32 -.public MOVE_ACCURACY_STARS_TABLE -.public MOVE_POWER_STARS_TABLE -.public MTi_CpuClear32 -.public MTi_CpuCopy32 -.public MultiplyByFixedPoint -.public NewRender3dQuadrilateral -.public NewRender3dRectangle -.public NewRender3dTexture -.public NewRender3dTiling -.public OBJ_GRAPHICS_CONTROLS_PTR .public ov10_022BDADC .public ov10_022C2528 -.public PointsToZero -.public PUNCH_MOVE_LIST -.public Rand16Bit -.public Render3dProcessQueue -.public RENDER_3D -.public RENDER_3D_FUNCTIONS_64 -.public ResumeBgm -.public Rgb8ToRgb5 -.public SetShouldCopyToOam -.public SND_Init -.public Snd_LockChannel -.public Snd_UnlockChannel .public sprintf .public strcat .public strcmp .public strcpy -.public StringFromId .public strlen .public strncmp -.public StrncpySimpleNoPadSafe .public strstr .public sub_01FF8F04 .public sub_02002778 @@ -468,8 +471,4 @@ .public sub_0206C6BC .public sub_0206C754 .public sub_0206F5C8 -.public TEAM_MEMBER_TABLE_PTR -.public UnloadFile .public vsprintf -.public WAN_TABLE -.public ZInit8 diff --git a/asm/main_02014D18.s b/asm/main_02014D58.s similarity index 99% rename from asm/main_02014D18.s rename to asm/main_02014D58.s index e80456a7..a69cea3a 100644 --- a/asm/main_02014D18.s +++ b/asm/main_02014D58.s @@ -1,31 +1,8 @@ .include "asm/macros.inc" - .include "main_02014D18.inc" + .include "main_02014D58.inc" .text - arm_func_start IsPunchMove -IsPunchMove: ; 0x02014D18 - mov r3, #0 - ldr r2, _02014D54 ; =PUNCH_MOVE_LIST - b _02014D3C -_02014D24: - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r3, #1 - mov r1, r1, lsl #0x10 - mov r3, r1, asr #0x10 -_02014D3C: - mov r1, r3, lsl #1 - ldrh r1, [r2, r1] - cmp r1, #0 - bne _02014D24 - mov r0, #0 - bx lr - .align 2, 0 -_02014D54: .word PUNCH_MOVE_LIST - arm_func_end IsPunchMove - arm_func_start IsHealingWishOrLunarDance IsHealingWishOrLunarDance: ; 0x02014D58 ldr r1, _02014D80 ; =0x000001B7 diff --git a/include/main_02014CEC.h b/include/main_02014CEC.h index cc7bd24a..2c6ee95e 100644 --- a/include/main_02014CEC.h +++ b/include/main_02014CEC.h @@ -10,4 +10,7 @@ bool8 IsRegularAttackOrProjectile(enum move_id move_id); // Checks if the move is a two turn move bool8 Is2TurnsMove(enum move_id move_id); +// Checks if the move is a punch move +bool8 IsPunchMove(enum move_id move_id); + #endif //PMDSKY_MAIN_02014CEC_H diff --git a/main.lsf b/main.lsf index 771cc889..8946485c 100644 --- a/main.lsf +++ b/main.lsf @@ -79,7 +79,7 @@ Static main Object src/main_02014A4C.o Object asm/main_02014B1C.o Object src/main_02014CEC.o - Object asm/main_02014D18.o + Object asm/main_02014D58.o Object src/main_020251AC.o Object asm/main_020251F0.o Object src/main_02025788.o diff --git a/src/main_02014CEC.c b/src/main_02014CEC.c index ed026659..35a5e181 100644 --- a/src/main_02014CEC.c +++ b/src/main_02014CEC.c @@ -1,6 +1,8 @@ #include "main_02014CEC.h" #include "enums.h" +extern u16 PUNCH_MOVE_LIST[]; + bool8 Is2TurnsMove(enum move_id move_id) { if (move_id == MOVE_SOLARBEAM) return TRUE; @@ -23,3 +25,13 @@ bool8 IsRegularAttackOrProjectile(enum move_id move_id) return move_id == MOVE_PROJECTILE; } + +bool8 IsPunchMove(enum move_id move_id) +{ + for (s16 i = 0; PUNCH_MOVE_LIST[i] != 0; i++) { + if (PUNCH_MOVE_LIST[i] == move_id) { + return TRUE; + } + } + return FALSE; +}