mirror of https://github.com/zeldaret/tmc.git
extract manager table
This commit is contained in:
parent
f97a229352
commit
f53140b2e9
|
@ -65,3 +65,4 @@ _Deparsed_XSubs.pm
|
||||||
*.py
|
*.py
|
||||||
*.sna
|
*.sna
|
||||||
__pycache__
|
__pycache__
|
||||||
|
.vscode/settings.json
|
||||||
|
|
|
@ -920,7 +920,7 @@ sub_08017508: @ 0x08017508
|
||||||
bl sub_0805E3B0
|
bl sub_0805E3B0
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _08017524
|
bne _08017524
|
||||||
ldr r0, _0801752C @ =gUnk_080B3054
|
ldr r0, _0801752C @ =gManagerFunctions
|
||||||
ldrb r1, [r4, #9]
|
ldrb r1, [r4, #9]
|
||||||
lsls r1, r1, #2
|
lsls r1, r1, #2
|
||||||
adds r1, r1, r0
|
adds r1, r1, r0
|
||||||
|
@ -932,7 +932,7 @@ _08017524:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0801752C: .4byte gUnk_080B3054
|
_0801752C: .4byte gManagerFunctions
|
||||||
|
|
||||||
thumb_func_start sub_08017530
|
thumb_func_start sub_08017530
|
||||||
sub_08017530: @ 0x08017530
|
sub_08017530: @ 0x08017530
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
.align 2
|
|
||||||
|
|
||||||
gUnk_080B3054:: @ 080B3054
|
|
||||||
.incbin "baserom.gba", 0x0B3054, 0x00000E8
|
|
|
@ -133,4 +133,62 @@ typedef struct {
|
||||||
u16 unk_06;
|
u16 unk_06;
|
||||||
} UnkManager26HelperStruct;
|
} UnkManager26HelperStruct;
|
||||||
|
|
||||||
|
extern void Manager1();
|
||||||
|
extern void Manager2();
|
||||||
|
extern void sub_080576C0();
|
||||||
|
extern void sub_08057854();
|
||||||
|
extern void sub_08057AD0();
|
||||||
|
extern void sub_08057CB4();
|
||||||
|
extern void Manager7_Main();
|
||||||
|
extern void sub_08057ED0();
|
||||||
|
extern void sub_080581D8();
|
||||||
|
extern void sub_08058380();
|
||||||
|
extern void sub_080585F0();
|
||||||
|
extern void sub_0805884C();
|
||||||
|
extern void sub_08058DD0(Entity*);
|
||||||
|
extern void sub_08058E60();
|
||||||
|
extern void sub_08058ECC(Entity*);
|
||||||
|
extern void sub_08059570(Entity*);
|
||||||
|
extern void sub_080599B8(Entity*);
|
||||||
|
extern void sub_080599EC(Entity*);
|
||||||
|
extern void sub_08059DAC(Entity*);
|
||||||
|
extern void sub_08059E58(Entity*);
|
||||||
|
extern void sub_0805A280();
|
||||||
|
extern void sub_0805AB4C(Entity*);
|
||||||
|
extern void sub_0805AD48(Entity*);
|
||||||
|
extern void sub_0805ADD8();
|
||||||
|
extern void sub_0805AF60(Entity*);
|
||||||
|
extern void sub_0805B030();
|
||||||
|
extern void sub_0805B3B4(Entity*);
|
||||||
|
extern void sub_0805B53C(Entity*);
|
||||||
|
extern void sub_0805B5C8(Entity*);
|
||||||
|
extern void Manager1E_Handler();
|
||||||
|
extern void sub_0805B6F4(Entity*);
|
||||||
|
extern void sub_0805B7A0();
|
||||||
|
extern void sub_0805B820(Entity*);
|
||||||
|
extern void sub_0805B8EC(Entity*);
|
||||||
|
extern void sub_0805BC74(Entity*);
|
||||||
|
extern void sub_0805BF18(Entity*);
|
||||||
|
extern void sub_0805C61C(Entity*);
|
||||||
|
extern void sub_0805C6B8();
|
||||||
|
extern void Manager27();
|
||||||
|
extern void Manager28_Entry();
|
||||||
|
extern void sub_0805CB90(Entity*);
|
||||||
|
extern void sub_0805CFC0(Entity*);
|
||||||
|
extern void sub_0805D014(Entity*);
|
||||||
|
extern void sub_0805D174(Entity*);
|
||||||
|
extern void sub_0805D1FC(Entity*);
|
||||||
|
extern void sub_0805D250();
|
||||||
|
extern void sub_0805D3C8();
|
||||||
|
extern void Manager30_Main();
|
||||||
|
extern void sub_0805D630(Entity*);
|
||||||
|
extern void sub_0805D7A4(Entity*);
|
||||||
|
extern void sub_0805DAE8(Entity*);
|
||||||
|
extern void sub_0805DB94(Entity*);
|
||||||
|
extern void sub_0805DC84(Entity*);
|
||||||
|
extern void sub_0805DDB4(Entity*);
|
||||||
|
extern void sub_0805DE38(Entity*);
|
||||||
|
extern void sub_0805E0A8(Entity*);
|
||||||
|
extern void sub_0805E0FC();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -908,7 +908,7 @@ SECTIONS {
|
||||||
data/data_080B2A70.o(.rodata);
|
data/data_080B2A70.o(.rodata);
|
||||||
data/playerItemFunctions.o(.rodata);
|
data/playerItemFunctions.o(.rodata);
|
||||||
src/object.o(.rodata);
|
src/object.o(.rodata);
|
||||||
data/data_080B3054.o(.rodata);
|
src/manager.o(.rodata);
|
||||||
src/npc.o(.rodata);
|
src/npc.o(.rodata);
|
||||||
data/data_080B3740.o(.rodata);
|
data/data_080B3740.o(.rodata);
|
||||||
src/trig.o(.rodata);
|
src/trig.o(.rodata);
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
#include "manager.h"
|
||||||
|
|
||||||
|
// TODO: change all manager arguments to be Entity* and cast to specific type later.
|
||||||
|
void (*const gManagerFunctions[])() = {
|
||||||
|
NULL,
|
||||||
|
Manager1,
|
||||||
|
Manager2,
|
||||||
|
sub_080576C0,
|
||||||
|
sub_08057854,
|
||||||
|
sub_08057AD0,
|
||||||
|
sub_08057CB4,
|
||||||
|
Manager7_Main,
|
||||||
|
sub_08057ED0,
|
||||||
|
sub_080581D8,
|
||||||
|
sub_08058380,
|
||||||
|
sub_080585F0,
|
||||||
|
sub_0805884C,
|
||||||
|
sub_08058DD0,
|
||||||
|
sub_08058E60,
|
||||||
|
sub_08058ECC,
|
||||||
|
sub_08059570,
|
||||||
|
sub_080599B8,
|
||||||
|
sub_080599EC,
|
||||||
|
sub_08059DAC,
|
||||||
|
sub_08059E58,
|
||||||
|
sub_0805A280,
|
||||||
|
sub_0805AB4C,
|
||||||
|
sub_0805AD48,
|
||||||
|
sub_0805ADD8,
|
||||||
|
sub_0805AF60,
|
||||||
|
sub_0805B030,
|
||||||
|
sub_0805B3B4,
|
||||||
|
sub_0805B53C,
|
||||||
|
sub_0805B5C8,
|
||||||
|
Manager1E_Handler,
|
||||||
|
sub_0805B6F4,
|
||||||
|
sub_0805B7A0,
|
||||||
|
sub_0805B820,
|
||||||
|
sub_0805B8EC,
|
||||||
|
sub_0805BC74,
|
||||||
|
sub_0805BF18,
|
||||||
|
sub_0805C61C,
|
||||||
|
sub_0805C6B8,
|
||||||
|
Manager27,
|
||||||
|
Manager28_Entry,
|
||||||
|
sub_0805CB90,
|
||||||
|
sub_0805CFC0,
|
||||||
|
sub_0805D014,
|
||||||
|
sub_0805D174,
|
||||||
|
sub_0805D1FC,
|
||||||
|
sub_0805D250,
|
||||||
|
sub_0805D3C8,
|
||||||
|
Manager30_Main,
|
||||||
|
sub_0805D630,
|
||||||
|
sub_0805D7A4,
|
||||||
|
sub_0805DAE8,
|
||||||
|
sub_0805DB94,
|
||||||
|
sub_0805DC84,
|
||||||
|
sub_0805DDB4,
|
||||||
|
sub_0805DE38,
|
||||||
|
sub_0805E0A8,
|
||||||
|
sub_0805E0FC
|
||||||
|
};
|
|
@ -1,7 +1,6 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "object.h"
|
#include "object.h"
|
||||||
//clang-format off
|
|
||||||
|
|
||||||
void (*const gObjectFunctions[])(Entity*) = {
|
void (*const gObjectFunctions[])(Entity*) = {
|
||||||
/*0x00*/ ItemOnGround,
|
/*0x00*/ ItemOnGround,
|
||||||
|
@ -197,6 +196,5 @@ void (*const gObjectFunctions[])(Entity*) = {
|
||||||
/*0xbe*/ Pinwheel,
|
/*0xbe*/ Pinwheel,
|
||||||
/*0xbf*/ ObjectBF,
|
/*0xbf*/ ObjectBF,
|
||||||
/*0xc0*/ EnemyItem,
|
/*0xc0*/ EnemyItem,
|
||||||
/*0xc1*/ ObjectC1,
|
/*0xc1*/ ObjectC1
|
||||||
};
|
};
|
||||||
//clang-format on
|
|
||||||
|
|
Loading…
Reference in New Issue