mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 06:57:18 -05:00
split out some more stuff and decomp
This commit is contained in:
parent
9cae659e18
commit
baf04031e4
5427
asm/code_8098BDC.s
5427
asm/code_8098BDC.s
File diff suppressed because it is too large
Load Diff
5089
asm/code_809A560.s
Normal file
5089
asm/code_809A560.s
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -329,6 +329,8 @@ SECTIONS {
|
|||
asm/code_8098468.o(.text);
|
||||
src/ground_main.o(.text);
|
||||
asm/code_8098BDC.o(.text);
|
||||
src/code_809A560.o(.text);
|
||||
asm/code_809A560.o(.text);
|
||||
src/code_809D148.o(.text);
|
||||
asm/code_809D148.o(.text);
|
||||
src/ground_script.o(.text);
|
||||
|
|
|
|||
189
src/code_809A560.c
Normal file
189
src/code_809A560.c
Normal file
|
|
@ -0,0 +1,189 @@
|
|||
#include "global.h"
|
||||
#include "text1.h"
|
||||
#include "memory.h"
|
||||
|
||||
struct unkStruct_3001B64
|
||||
{
|
||||
// size: 0x5A8
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u8 fill10[0x414 - 0x10];
|
||||
u32 unk414;
|
||||
u32 unk418;
|
||||
u32 unk41C;
|
||||
u32 unk420;
|
||||
u32 unk424;
|
||||
u32 unk428;
|
||||
u32 unk42C;
|
||||
u32 unk430;
|
||||
u32 unk434;
|
||||
u8 fill438[0x5A4 - 0x438];
|
||||
u16 unk5A4;
|
||||
};
|
||||
|
||||
extern struct unkStruct_3001B64 *gUnknown_3001B64;
|
||||
|
||||
extern u16 gUnknown_20399DC;
|
||||
extern u16 gUnknown_20399DE;
|
||||
|
||||
extern u8 sub_809B2B8(u32 *, u32, u32, u32);
|
||||
extern u32 sub_809B40C(u32 *);
|
||||
extern void sub_801416C(s32, s32);
|
||||
extern void sub_809A83C(s16);
|
||||
extern u32 sub_809A680(u32, u32);
|
||||
extern void sub_809A62C(void);
|
||||
extern void sub_80095CC(u32, u32);
|
||||
extern void sub_8009408(u32, u32);
|
||||
extern void sub_809B294(void);
|
||||
extern void sub_8014144(void);
|
||||
extern void sub_809A7EC(void);
|
||||
|
||||
void sub_809A560(void)
|
||||
{
|
||||
sub_8014144();
|
||||
gUnknown_3001B64 = MemoryAlloc(0x5a8,6);
|
||||
gUnknown_3001B64->unk0 = 0;
|
||||
gUnknown_3001B64->unk4 = -1;
|
||||
gUnknown_3001B64->unk8 = -1;
|
||||
gUnknown_20399DC = 0;
|
||||
gUnknown_20399DE = 0;
|
||||
sub_80095CC(0,0x14);
|
||||
sub_800641C(0,1,1);
|
||||
sub_8009408(0,0x14);
|
||||
sub_809B294();
|
||||
gUnknown_3001B64->unk414 = 0;
|
||||
gUnknown_3001B64->unk418 = 0;
|
||||
gUnknown_3001B64->unk41C = 0;
|
||||
gUnknown_3001B64->unk420 = 0;
|
||||
gUnknown_3001B64->unk424 = 0;
|
||||
gUnknown_3001B64->unk428 = 0;
|
||||
gUnknown_3001B64->unk42C = 0;
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
gUnknown_3001B64->unk434 = -1;
|
||||
sub_809A7EC();
|
||||
gUnknown_3001B64->unk5A4 = -1;
|
||||
}
|
||||
|
||||
void sub_809A610(void)
|
||||
{
|
||||
sub_809A62C();
|
||||
MemoryFree(gUnknown_3001B64);
|
||||
gUnknown_3001B64 = NULL;
|
||||
}
|
||||
|
||||
void sub_809A62C(void)
|
||||
{
|
||||
s32 iVar2;
|
||||
|
||||
gUnknown_3001B64->unk0 = 0;
|
||||
gUnknown_3001B64->unk4 = -1;
|
||||
gUnknown_3001B64->unk8 = -1;
|
||||
gUnknown_20399DC = 0;
|
||||
gUnknown_20399DE = 0;
|
||||
for(iVar2 = 0; iVar2 < 10; iVar2++)
|
||||
{
|
||||
sub_809A83C(iVar2);
|
||||
}
|
||||
gUnknown_3001B64->unk414 = 0;
|
||||
sub_809A680(0, 1);
|
||||
}
|
||||
|
||||
u32 sub_809A680(u32 param_1, u32 param_2)
|
||||
{
|
||||
switch(param_1) {
|
||||
case 0:
|
||||
sub_809B294();
|
||||
sub_800641C(0,1,1);
|
||||
break;
|
||||
case 1:
|
||||
sub_809B294();
|
||||
break;
|
||||
case 2:
|
||||
sub_809B294();
|
||||
break;
|
||||
case 3:
|
||||
sub_809B294();
|
||||
break;
|
||||
case 4:
|
||||
sub_809B294();
|
||||
break;
|
||||
default:
|
||||
sub_809B294();
|
||||
sub_800641C(0,1,1);
|
||||
}
|
||||
gUnknown_3001B64->unk0 = param_1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void sub_809A6E4(u16 r0)
|
||||
{
|
||||
gUnknown_20399DC |= r0;
|
||||
}
|
||||
|
||||
void sub_809A6F8(u16 r0)
|
||||
{
|
||||
gUnknown_20399DC &= ~r0;
|
||||
}
|
||||
|
||||
u16 sub_809A70C(u16 r0)
|
||||
{
|
||||
return gUnknown_20399DC;
|
||||
}
|
||||
|
||||
void nullsub_209(void) {}
|
||||
|
||||
void sub_809A71C(s32 param_1)
|
||||
{
|
||||
gUnknown_3001B64->unk4 = param_1;
|
||||
gUnknown_3001B64->unk8 = param_1;
|
||||
sub_801416C(param_1, param_1);
|
||||
}
|
||||
|
||||
void sub_809A738(s32 param_1, s32 param_2)
|
||||
{
|
||||
gUnknown_3001B64->unk4 = param_1;
|
||||
gUnknown_3001B64->unk8 = param_2;
|
||||
sub_801416C(param_1, param_2);
|
||||
}
|
||||
|
||||
u8 sub_809A750(void)
|
||||
{
|
||||
return sub_809B40C(&gUnknown_3001B64->unkC);
|
||||
}
|
||||
|
||||
u32 sub_809A768(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 sub_809A76C(void)
|
||||
{
|
||||
switch(gUnknown_3001B64->unk0)
|
||||
{
|
||||
case 3:
|
||||
return sub_809B2B8(&gUnknown_3001B64->unkC,4,-1,0);
|
||||
case 1:
|
||||
case 2:
|
||||
return sub_809B2B8(&gUnknown_3001B64->unkC,0x84,-1,0);
|
||||
default:
|
||||
sub_809A680(0, 1);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_809A7B4(void)
|
||||
{
|
||||
switch(gUnknown_3001B64->unk0)
|
||||
{
|
||||
case 3:
|
||||
case 1:
|
||||
case 2:
|
||||
return sub_809B2B8(&gUnknown_3001B64->unkC,4,-1,0);
|
||||
default:
|
||||
sub_809A680(0, 1);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user