mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-25 20:04:34 -05:00
Decomp IsCastform and IsCherrim
Both decomped by @Chesyon and @taxicat1, thanks
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
1
main.lsf
1
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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user