diff --git a/asm/include/main_02054AD4.inc b/asm/include/main_02054AD4.inc deleted file mode 100644 index 3f59c932..00000000 --- a/asm/include/main_02054AD4.inc +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once - diff --git a/asm/main_02054AD4.s b/asm/main_02054AD4.s deleted file mode 100644 index 2139c3b7..00000000 --- a/asm/main_02054AD4.s +++ /dev/null @@ -1,59 +0,0 @@ - .include "asm/macros.inc" - .include "main_02054AD4.inc" - - .text - - arm_func_start IsCastform -IsCastform: ; 0x02054AD4 - ldr r2, _02054B24 ; =0x0000017B - cmp r0, r2 - cmpne r0, #0x17c - addne r1, r2, #2 - cmpne r0, r1 - addne r1, r2, #3 - cmpne r0, r1 - beq _02054B14 - ldr r1, _02054B28 ; =0xFFFFFC2D - add r0, r0, r1 - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #3 - bhi _02054B1C -_02054B14: - mov r0, #1 - bx lr -_02054B1C: - mov r0, #0 - bx lr - .align 2, 0 -_02054B24: .word 0x0000017B -_02054B28: .word 0xFFFFFC2D - arm_func_end IsCastform - - arm_func_start IsCherrim -IsCherrim: ; 0x02054B2C - cmp r0, #0x1cc - ldrne r1, _02054B6C ; =0x000001CD - cmpne r0, r1 - beq _02054B5C - ldr r1, _02054B70 ; =0xFFFFFBDC - add r0, r0, r1 - mov r0, r0, lsl #0x10 - mov r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, #1 - bhi _02054B64 -_02054B5C: - mov r0, #1 - bx lr -_02054B64: - mov r0, #0 - bx lr - .align 2, 0 -_02054B6C: .word 0x000001CD -_02054B70: .word 0xFFFFFBDC - arm_func_end IsCherrim - diff --git a/include/main_02054AA4.h b/include/main_02054AA4.h index 53404f8a..0a28576b 100644 --- a/include/main_02054AA4.h +++ b/include/main_02054AA4.h @@ -1,9 +1,12 @@ #ifndef PMDSKY_MAIN_02054AA4_H #define PMDSKY_MAIN_02054AA4_H +#include "enums.h" #include "util.h" bool8 IsUnown(s16 monster_id); bool8 IsShaymin(s16 monster_id); +bool8 IsCastform(enum monster_id monster_id); +bool8 IsCherrim(enum monster_id monster_id); #endif //PMDSKY_MAIN_02054AA4_H diff --git a/main.lsf b/main.lsf index 036ca900..371ee3df 100644 --- a/main.lsf +++ b/main.lsf @@ -149,7 +149,6 @@ Static main Object src/main_02052B28.o Object asm/main_02052B44.o Object src/main_02054AA4.o - Object asm/main_02054AD4.o Object src/main_02054BE0.o Object src/main_02054C24.o Object src/main_02054DC4.o diff --git a/src/main_02054AA4.c b/src/main_02054AA4.c index 7120ff07..4282b208 100644 --- a/src/main_02054AA4.c +++ b/src/main_02054AA4.c @@ -10,3 +10,28 @@ bool8 IsUnown(s16 monster_id) { bool8 IsShaymin(s16 monster_id) { return (u16)(s16)(monster_id - MONSTER_SHAYMIN_LAND) <= 1; } + +bool8 IsCastform(enum monster_id monster_id) +{ + if(monster_id == MONSTER_CASTFORM_NORMAL || + monster_id == MONSTER_CASTFORM_SNOWY || + monster_id == MONSTER_CASTFORM_SUNNY || + monster_id == MONSTER_CASTFORM_RAINY || + ((u16)(s16)(monster_id - MONSTER_CASTFORM_NORMAL_SECONDARY) <= 3) + ) { + return TRUE; + } + + return FALSE; +} + +bool8 IsCherrim(enum monster_id monster_id) +{ + if (monster_id == MONSTER_CHERRIM_OVERCAST || + monster_id == MONSTER_CHERRIM_SUNSHINE || + ((u16)(s16)(monster_id - MONSTER_CHERRIM_OVERCAST_SECONDARY) <= 1)) { + return TRUE; + } + + return FALSE; +}