Decompile heal location functions
This commit is contained in:
parent
6fcde15bb6
commit
00f4bba6d8
6 changed files with 49 additions and 94 deletions
|
@ -1,83 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_8122C5C
|
|
||||||
sub_8122C5C: @ 8122C5C
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
movs r3, 0
|
|
||||||
ldr r2, =gUnknown_0859F53C
|
|
||||||
_08122C6A:
|
|
||||||
movs r0, 0
|
|
||||||
ldrsb r0, [r2, r0]
|
|
||||||
cmp r0, r4
|
|
||||||
bne _08122C84
|
|
||||||
movs r0, 0x1
|
|
||||||
ldrsb r0, [r2, r0]
|
|
||||||
cmp r0, r1
|
|
||||||
bne _08122C84
|
|
||||||
adds r0, r3, 0x1
|
|
||||||
b _08122C8E
|
|
||||||
.pool
|
|
||||||
_08122C84:
|
|
||||||
adds r2, 0x8
|
|
||||||
adds r3, 0x1
|
|
||||||
cmp r3, 0x15
|
|
||||||
bls _08122C6A
|
|
||||||
movs r0, 0
|
|
||||||
_08122C8E:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8122C5C
|
|
||||||
|
|
||||||
thumb_func_start sub_8122C94
|
|
||||||
sub_8122C94: @ 8122C94
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
bl sub_8122C5C
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08122CB4
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, =gUnknown_0859F534
|
|
||||||
adds r0, r1
|
|
||||||
b _08122CB6
|
|
||||||
.pool
|
|
||||||
_08122CB4:
|
|
||||||
movs r0, 0
|
|
||||||
_08122CB6:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8122C94
|
|
||||||
|
|
||||||
thumb_func_start sub_8122CBC
|
|
||||||
@ warpdata *sub_8122CBC(int a1)
|
|
||||||
sub_8122CBC: @ 8122CBC
|
|
||||||
push {lr}
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08122CD4
|
|
||||||
cmp r0, 0x16
|
|
||||||
bhi _08122CD4
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, =gUnknown_0859F534
|
|
||||||
adds r0, r1
|
|
||||||
b _08122CD6
|
|
||||||
.pool
|
|
||||||
_08122CD4:
|
|
||||||
movs r0, 0
|
|
||||||
_08122CD6:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8122CBC
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
|
@ -11,4 +11,4 @@ gUnknown_0859F51C:: @ 859F51C
|
||||||
.incbin "baserom.gba", 0x59f51c, 0x8
|
.incbin "baserom.gba", 0x59f51c, 0x8
|
||||||
|
|
||||||
gUnknown_0859F524:: @ 859F524
|
gUnknown_0859F524:: @ 859F524
|
||||||
.incbin "baserom.gba", 0x59f524, 0x10
|
.incbin "baserom.gba", 0x59f524, 0x18
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
.section .rodata
|
.section .rodata
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
|
gUnknown_0859F5EC:: @ 859F5EC
|
||||||
|
.incbin "graphics/unknown/unk_859f5ec.gbapal"
|
||||||
|
|
||||||
gUnknown_0859F60C:: @ 859F60C
|
gUnknown_0859F60C:: @ 859F60C
|
||||||
.incbin "baserom.gba", 0x59f60c, 0x44
|
.incbin "baserom.gba", 0x59f60c, 0x44
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,11 @@
|
||||||
|
|
||||||
// Exported type declarations
|
// Exported type declarations
|
||||||
|
|
||||||
|
struct UnkStruct_0859F534 {
|
||||||
|
const union AffineAnimCmd *const *const affineAnims;
|
||||||
|
void (* callback)(struct Sprite *sprite);
|
||||||
|
};
|
||||||
|
|
||||||
struct HealLocation
|
struct HealLocation
|
||||||
{
|
{
|
||||||
s8 group;
|
s8 group;
|
||||||
|
|
|
@ -168,7 +168,6 @@ SECTIONS {
|
||||||
asm/menu_helpers.o(.text);
|
asm/menu_helpers.o(.text);
|
||||||
asm/dewford_trend.o(.text);
|
asm/dewford_trend.o(.text);
|
||||||
src/heal_location.o(.text);
|
src/heal_location.o(.text);
|
||||||
asm/heal_location.o(.text);
|
|
||||||
asm/region_map.o(.text);
|
asm/region_map.o(.text);
|
||||||
asm/cute_sketch.o(.text);
|
asm/cute_sketch.o(.text);
|
||||||
src/decoration.o(.text);
|
src/decoration.o(.text);
|
||||||
|
|
|
@ -15,14 +15,6 @@
|
||||||
|
|
||||||
// .rodata
|
// .rodata
|
||||||
|
|
||||||
const struct {
|
|
||||||
const union AffineAnimCmd *const *const affineAnims;
|
|
||||||
void (* callback)(struct Sprite *sprite);
|
|
||||||
} gUnknown_0859F534 = {
|
|
||||||
gDummySpriteAffineAnimTable,
|
|
||||||
SpriteCallbackDummy
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct HealLocation gUnknown_0859F53C[] = {
|
const struct HealLocation gUnknown_0859F53C[] = {
|
||||||
HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2),
|
HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2),
|
||||||
HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2),
|
HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2),
|
||||||
|
@ -48,6 +40,45 @@ const struct HealLocation gUnknown_0859F53C[] = {
|
||||||
HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52)
|
HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52)
|
||||||
};
|
};
|
||||||
|
|
||||||
const u16 gUnknown_0859F5EC[] = INCBIN_U16("graphics/unknown/unk_859f5ec.gbapal");
|
#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(gUnknown_0859F53C))
|
||||||
|
|
||||||
// .text
|
// .text
|
||||||
|
|
||||||
|
u32 sub_8122C5C(u16 mapGroup, u16 mapNum)
|
||||||
|
{
|
||||||
|
u32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < NUM_HEAL_LOCATIONS; i ++)
|
||||||
|
{
|
||||||
|
if (gUnknown_0859F53C[i].group == mapGroup && gUnknown_0859F53C[i].map == mapNum)
|
||||||
|
{
|
||||||
|
return i + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct HealLocation *sub_8122C94(u16 mapGroup, u16 mapNum)
|
||||||
|
{
|
||||||
|
u32 loc;
|
||||||
|
|
||||||
|
loc = sub_8122C5C(mapGroup, mapNum);
|
||||||
|
if (loc == 0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return &gUnknown_0859F53C[loc - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct HealLocation *sub_8122CBC(u32 loc)
|
||||||
|
{
|
||||||
|
if (loc == 0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (loc > NUM_HEAL_LOCATIONS)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return &gUnknown_0859F53C[loc - 1];
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue