Decomp IsRealMove

This commit is contained in:
Zur3l 2026-07-11 16:00:25 -04:00
parent 5d30f28cd6
commit fcca1fecac
5 changed files with 120 additions and 47 deletions

View File

@ -95,6 +95,7 @@
.public GroupOamObjs
.public InitOamInfo
.public IqSkillFlagTest
.public IsRealMove
.public LANGUAGE_INFO_DATA
.public LoadFileFromRom
.public LoadScriptVariableValue

View File

@ -1,53 +1,8 @@
.include "asm/macros.inc"
.include "main_02014E64.inc"
.include "main_02014EF8.inc"
.text
arm_func_start IsRealMove
IsRealMove: ; 0x02014E64
cmp r0, #0
moveq r0, #0
bxeq lr
ldr r1, _02014EEC ; =0x000001D3
cmp r0, r1
moveq r0, #0
bxeq lr
cmp r0, #0x160
moveq r0, #0
bxeq lr
sub r1, r1, #0x70
cmp r0, r1
blo _02014EA4
cmp r0, #0x168
movlo r0, #0
bxlo lr
_02014EA4:
cmp r0, #0x168
bls _02014EBC
ldr r1, _02014EF0 ; =0x0000018A
cmp r0, r1
movlo r0, #0
bxlo lr
_02014EBC:
ldr r1, _02014EF0 ; =0x0000018A
cmp r0, r1
bls _02014ED8
add r1, r1, #0x23
cmp r0, r1
movls r0, #0
bxls lr
_02014ED8:
ldr r1, _02014EF4 ; =0x0000021F
cmp r0, r1
movhs r0, #0
movlo r0, #1
bx lr
.align 2, 0
_02014EEC: .word 0x000001D3
_02014EF0: .word 0x0000018A
_02014EF4: .word 0x0000021F
arm_func_end IsRealMove
arm_func_start IsMovesetValid
IsMovesetValid: ; 0x02014EF8
stmdb sp!, {r4, r5, r6, r7, r8, lr}

View File

@ -28,4 +28,6 @@ bool8 IsOneHitKoMove(enum move_id move_id);
// Checks if the move is not a two turn move or sketch
bool8 IsNot2TurnsMoveOrSketch(enum move_id move_id);
bool8 IsRealMove(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_02014E64.o
Object asm/main_02014EF8.o
Object src/main_020251AC.o
Object asm/main_020251F0.o
Object src/main_02025788.o

View File

@ -80,3 +80,118 @@ bool8 IsNot2TurnsMoveOrSketch(enum move_id move_id)
return TRUE;
}
bool8 IsRealMove(enum move_id move_id)
{
if (move_id == MOVE_NOTHING) return FALSE;
if (move_id == MOVE_JUDGMENT) return FALSE;
if (move_id == MOVE_STRUGGLE) return FALSE;
// MOVE_REGULAR_ATTACK
// MOVE_IS_WATCHING
// MOVE_BIDE_UNLEASH
// MOVE_REVENGE_UNLEASH
// MOVE_AVALANCHE_UNLEASH
if ((move_id >= MOVE_REGULAR_ATTACK) && (move_id < MOVE_WIDE_SLASH)) {
return FALSE;
}
// MOVE_UNNAMED_0x169
// MOVE_UNNAMED_0x16A
// MOVE_SEE_TRAP
// MOVE_TAKEAWAY
// MOVE_REBOUND
// MOVE_BLOOP_SLASH
// MOVE_SWITCHER
// MOVE_BLOWBACK
// MOVE_WARP
// MOVE_TRANSFER
// MOVE_SLOW_DOWN
// MOVE_SPEED_BOOST
// MOVE_SEARCHLIGHT
// MOVE_PETRIFY
// MOVE_STAY_AWAY
// MOVE_POUNCE
// MOVE_TRAWL
// MOVE_CLEANSE
// MOVE_OBSERVER
// MOVE_DECOY_MAKER
// MOVE_SIESTA
// MOVE_TOTTER
// MOVE_TWO_EDGE
// MOVE_NO_MOVE
// MOVE_ESCAPE
// MOVE_SCAN
// MOVE_POWER_EARS
// MOVE_DROUGHT
// MOVE_TRAP_BUSTER
// MOVE_WILD_CALL
// MOVE_INVISIFY
// MOVE_ONE_SHOT
// MOVE_HP_GAUGE
if ((move_id > MOVE_WIDE_SLASH) && (move_id < MOVE_VACUUM_CUT)) {
return FALSE;
}
// MOVE_REVIVER
// MOVE_SHOCKER
// MOVE_ECHO
// MOVE_FAMISH
// MOVE_ONE_ROOM
// MOVE_FILL_IN
// MOVE_TRAPPER
// MOVE_POSSESS
// MOVE_ITEMIZE
// MOVE_TAG_0x194
// MOVE_PROJECTILE
// MOVE_HURL
// MOVE_MOBILE
// MOVE_ITEM_TOSS
// MOVE_SEE_STAIRS
// MOVE_LONG_TOSS
// MOVE_TAG_0x19B
// MOVE_PIERCE
// MOVE_TAG_0x19D
// MOVE_TAG_0x19E
// MOVE_TAG_0x19F
// MOVE_TAG_0x1A0
// MOVE_TAG_0x1A1
// MOVE_TAG_0x1A2
// MOVE_TAG_0x1A3
// MOVE_TAG_0x1A4
// MOVE_TAG_0x1A5
// MOVE_TAG_0x1A6
// MOVE_TAG_0x1A7
// MOVE_TAG_0x1A8
// MOVE_TAG_0x1A9
// MOVE_TAG_0x1AA
// MOVE_TAG_0x1AB
// MOVE_TAG_0x1AC
// MOVE_TAG_0x1AD
if ((move_id > MOVE_VACUUM_CUT) && (move_id <= MOVE_TAG_0x1AD)) {
return FALSE;
}
// MOVE_TAG_0x21F
// MOVE_TAG_0x220
// MOVE_TAG_0x221
// MOVE_TAG_0x222
// MOVE_TAG_0x223
// MOVE_TAG_0x224
// MOVE_TAG_0x225
// MOVE_TAG_0x226
// MOVE_TAG_0x227
// MOVE_TAG_0x228
// MOVE_TAG_0x229
// MOVE_TAG_0x22A
// MOVE_TAG_0x22B
// MOVE_TAG_0x22C
// MOVE_TAG_0x22D
// MOVE_TAG_0x22E
// ...
if (move_id >= MOVE_TAG_0x21F) {
return FALSE;
}
return TRUE;
}