Decomp IsPunchMove

Decomped by @SethBarberee and @taxicat1, thanks
This commit is contained in:
Zur3l
2026-07-11 16:00:16 -04:00
parent 8ad94ec216
commit 7bd5b913cd
5 changed files with 157 additions and 166 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}