Decomped GetBaseFormCastformDeoxysCherrim

Decomped by @Zur3l
This commit is contained in:
AnonymousRandomPerson
2026-06-12 16:54:12 -04:00
parent 0300faecc1
commit 0fbeb64fcd
5 changed files with 36 additions and 53 deletions

View File

@@ -1,6 +1,6 @@
#pragma once
.public FemaleToMaleForm
.public GetBaseFormBurmyWormadamShellosGastrodonCherrim
.public GetBaseFormCastformDeoxysCherrim
.public GetDexNumber
.public IsDeoxys
.public IsUnown

View File

@@ -1,58 +1,8 @@
.include "asm/macros.inc"
.include "main_02054C24.inc"
.include "main_02054CD8.inc"
.text
arm_func_start GetBaseFormCastformDeoxysCherrim
GetBaseFormCastformDeoxysCherrim: ; 0x02054C24
stmdb sp!, {r4, lr}
mov r4, r0
bl IsDeoxys
cmp r0, #0
ldrne r0, _02054CCC ; =0x000001A2
ldmneia sp!, {r4, pc}
ldr r1, _02054CD0 ; =0xFFFFFE85
add r0, r4, r1
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #3
rsbls r0, r1, #0
ldmlsia sp!, {r4, pc}
sub r0, r1, #0x258
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #3
rsbls r0, r1, #0x258
ldmlsia sp!, {r4, pc}
sub r0, r4, #0x1cc
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
movls r0, #0x1cc
ldmlsia sp!, {r4, pc}
ldr r0, _02054CD4 ; =0xFFFFFBDC
add r1, r4, r0
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
cmp r1, #1
rsbls r4, r0, #0
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_02054CCC: .word 0x000001A2
_02054CD0: .word 0xFFFFFE85
_02054CD4: .word 0xFFFFFBDC
arm_func_end GetBaseFormCastformDeoxysCherrim
arm_func_start BaseFormsEqual
BaseFormsEqual: ; 0x02054CD8
stmdb sp!, {r4, r5, r6, lr}

9
include/main_02054C24.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef PMDSKY_MAIN_02054C24_H
#define PMDSKY_MAIN_02054C24_H
#include "enums.h"
#include "util.h"
enum monster_id GetBaseFormCastformDeoxysCherrim(enum monster_id monster_id);
#endif //PMDSKY_MAIN_02054C24_H

View File

@@ -139,7 +139,8 @@ Static main
Object src/main_02054AA4.o
Object asm/main_02054AD4.o
Object src/main_02054BE0.o
Object asm/main_02054C24.o
Object src/main_02054C24.o
Object asm/main_02054CD8.o
Object src/main_02054DC4.o
Object asm/main_02054E4C.o
Object src/main_02058C3C.o

23
src/main_02054C24.c Normal file
View File

@@ -0,0 +1,23 @@
#include "main_02054C24.h"
extern bool8 IsDeoxys(enum monster_id monster_id);
enum monster_id GetBaseFormCastformDeoxysCherrim(enum monster_id monster_id)
{
if (IsDeoxys(monster_id)) {
return MONSTER_DEOXYS_NORMAL;
}
if ((u32) (u16) (s16) (monster_id + 0xFFFFFE85) <= 3U) {
return MONSTER_CASTFORM_NORMAL;
}
if ((u32) (u16) (s16) (monster_id - MONSTER_CASTFORM_NORMAL_SECONDARY) <= 3U) {
return MONSTER_CASTFORM_NORMAL_SECONDARY;
}
if ((u32) (u16) (s16) (monster_id - MONSTER_CHERRIM_OVERCAST) <= 1U) {
return MONSTER_CHERRIM_OVERCAST;
}
if ((u32) (u16) (s16) (monster_id + 0xFFFFFBDC) <= 1U) {
return MONSTER_CHERRIM_OVERCAST_SECONDARY;
}
return monster_id;
}