Decompile code_0x800CAE10.c

This commit is contained in:
rozlette 2020-03-01 16:49:45 -06:00
parent 759fef3928
commit 74c1dc2145
7 changed files with 113 additions and 9 deletions

View File

@ -28,7 +28,7 @@ build/src/boot_O2_g3_trapuv/%: OPTIMIZATION := -O2 -g3
build/src/code/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul build/src/code/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul
build/src/actors/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul build/src/actors/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul
build/src/boot_O2_g3_trapuv/%: CFLAGS := $(CFLAGS) -trapuv build/src/boot_O2_g3_trapuv/%: CFLAGS := $(CFLAGS) -trapuv
test.txt: OPTIMIZATION := -O2 test.txt: OPTIMIZATION := -O2 -g3
test.txt: CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc test.txt: CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc
test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul

View File

@ -1113,9 +1113,9 @@ void BgCheck3_LoadMesh(GlobalContext* ctxt, BgActor* actor, BgMeshHeader* meshHe
void BgCheck3_ResetFlags(BgActor* actor); // func_800CAE7C void BgCheck3_ResetFlags(BgActor* actor); // func_800CAE7C
void func_800CAE88(BgActor* actor); // func_800CAE88 void func_800CAE88(BgActor* actor); // func_800CAE88
void func_800CAE9C(BgActor* actor); // func_800CAE9C void func_800CAE9C(BgActor* actor); // func_800CAE9C
void func_800CAEB0(void); // func_800CAEB0 void func_800CAEB0(BgCheckContext* bgCtxt, s32 index); // func_800CAEB0
void func_800CAEE0(BgActor* actor); // func_800CAEE0 void func_800CAEE0(BgActor* actor); // func_800CAEE0
void func_800CAEF4(void); // func_800CAEF4 void func_800CAEF4(BgCheckContext* bgCtxt, s32 index); // func_800CAEF4
void func_800CAF24(BgActor* actor); // func_800CAF24 void func_800CAF24(BgActor* actor); // func_800CAF24
void func_800CAF38(BgActor* actor); // func_800CAF38 void func_800CAF38(BgActor* actor); // func_800CAF38
s32 func_800CAF4C(BgActor* actor); // func_800CAF4C s32 func_800CAF4C(BgActor* actor); // func_800CAF4C

View File

@ -2428,7 +2428,9 @@ struct ActorPlayer {
struct BgActor { struct BgActor {
/* 0x000 */ Actor base; /* 0x000 */ Actor base;
/* 0x144 */ s32 bgActorId; /* 0x144 */ s32 bgActorId;
/* 0x148 */ UNK_TYPE1 pad148[0xC]; /* 0x148 */ f32 unk148;
/* 0x14C */ f32 unk14C;
/* 0x150 */ UNK_TYPE4 unk150;
/* 0x154 */ u32 unk154; /* 0x154 */ u32 unk154;
/* 0x158 */ u8 bgFlags; /* 0x158 */ u8 bgFlags;
/* 0x159 */ UNK_TYPE1 pad159[0x3]; /* 0x159 */ UNK_TYPE1 pad159[0x3];

View File

@ -322,7 +322,8 @@ SECTIONS
build/asm/code_0x800BF9A0.o(.text) build/asm/code_0x800BF9A0.o(.text)
build/asm/z_bgcheck.o(.text) build/asm/z_bgcheck.o(.text)
build/src/code/code_0x800CAAD0.o(.text) build/src/code/code_0x800CAAD0.o(.text)
build/asm/code_0x800CAE10.o(.text) build/src/code/code_0x800CAE10.o(.text)
build/asm/code_0x800CB000.o(.text)
build/asm/z_camera.o(.text) build/asm/z_camera.o(.text)
build/src/code/code_0x800E03A0.o(.text) build/src/code/code_0x800E03A0.o(.text)
. += 0x10; /* XXX pad with NOPs*/ . += 0x10; /* XXX pad with NOPs*/
@ -459,7 +460,7 @@ SECTIONS
build/asm/code_rodata_z_actor.o(.text) build/asm/code_rodata_z_actor.o(.text)
build/asm/code_rodata_0x800BF9A0.o(.text) build/asm/code_rodata_0x800BF9A0.o(.text)
build/asm/code_rodata_z_bgcheck.o(.text) build/asm/code_rodata_z_bgcheck.o(.text)
build/asm/code_rodata_0x800CAE10.o(.text) build/asm/code_rodata_0x800CB000.o(.text)
build/asm/code_rodata_z_camera.o(.text) build/asm/code_rodata_z_camera.o(.text)
build/asm/code_rodata_z_collision_check.o(.text) build/asm/code_rodata_z_collision_check.o(.text)
build/asm/code_rodata_0x800E8EA0.o(.text) build/asm/code_rodata_0x800E8EA0.o(.text)

100
src/code/code_0x800CAE10.c Normal file
View File

@ -0,0 +1,100 @@
#include <ultra64.h>
#include <global.h>
void BcCheck3_BgActorInit(BgActor* actor, UNK_TYPE4 param_2) {
actor->bgActorId = -1;
actor->unk148 = 0;
actor->unk14C = 0;
actor->unk154 = param_2;
actor->bgFlags = 0;
}
void BgCheck3_LoadMesh(GlobalContext* ctxt, BgActor* actor, BgMeshHeader* meshHeader) {
BgMeshHeader* header;
header = NULL;
BgCheck_RelocateMeshHeader(meshHeader, &header);
actor->bgActorId = BgCheck_AddActorMesh(ctxt, &ctxt->bgCheckContext.dyna, actor, header);
}
void BgCheck3_ResetFlags(BgActor* actor) {
actor->bgFlags = 0;
}
void func_800CAE88(BgActor* actor) {
actor->bgFlags |= 1;
}
void func_800CAE9C(BgActor* actor) {
actor->bgFlags |= 2;
}
void func_800CAEB0(BgCheckContext* bgCtxt, s32 index) {
BgActor* actor;
actor = BgCheck_GetActorOfMesh(bgCtxt, index);
if (actor != (BgActor *)0x0) {
func_800CAE9C(actor);
}
}
void func_800CAEE0(BgActor* actor) {
actor->bgFlags |= 4;
}
void func_800CAEF4(BgCheckContext* bgCtxt, s32 index) {
BgActor* actor;
actor = BgCheck_GetActorOfMesh(bgCtxt, index);
if (actor != (BgActor *)0x0) {
func_800CAEE0(actor);
}
}
void func_800CAF24(BgActor* actor) {
actor->bgFlags |= 8;
}
void func_800CAF38(BgActor* actor) {
actor->bgFlags |= 0x10;
}
s32 func_800CAF4C(BgActor* actor) {
if (actor->bgFlags & 1) {
return 1;
} else {
return 0;
}
}
s32 func_800CAF70(BgActor* actor) {
if (actor->bgFlags & 2) {
return 1;
} else {
return 0;
}
}
s32 func_800CAF94(BgActor* actor) {
if (actor->bgFlags & 4) {
return 1;
} else {
return 0;
}
}
s32 func_800CAFB8(BgActor* actor) {
if (actor->bgFlags & 8) {
return 1;
} else {
return 0;
}
}
s32 func_800CAFDC(BgActor* actor) {
if (actor->bgFlags & 0x10) {
return 1;
} else {
return 0;
}
}

View File

@ -1110,9 +1110,9 @@
0x800CAE7C:("BgCheck3_ResetFlags","void","BgActor* actor"), 0x800CAE7C:("BgCheck3_ResetFlags","void","BgActor* actor"),
0x800CAE88:("func_800CAE88","void","BgActor* actor"), 0x800CAE88:("func_800CAE88","void","BgActor* actor"),
0x800CAE9C:("func_800CAE9C","void","BgActor* actor"), 0x800CAE9C:("func_800CAE9C","void","BgActor* actor"),
0x800CAEB0:("func_800CAEB0","void","void"), 0x800CAEB0:("func_800CAEB0","void","BgCheckContext* bgCtxt, s32 index"),
0x800CAEE0:("func_800CAEE0","void","BgActor* actor"), 0x800CAEE0:("func_800CAEE0","void","BgActor* actor"),
0x800CAEF4:("func_800CAEF4","void","void"), 0x800CAEF4:("func_800CAEF4","void","BgCheckContext* bgCtxt, s32 index"),
0x800CAF24:("func_800CAF24","void","BgActor* actor"), 0x800CAF24:("func_800CAF24","void","BgActor* actor"),
0x800CAF38:("func_800CAF38","void","BgActor* actor"), 0x800CAF38:("func_800CAF38","void","BgActor* actor"),
0x800CAF4C:("func_800CAF4C","s32","BgActor* actor"), 0x800CAF4C:("func_800CAF4C","s32","BgActor* actor"),

View File

@ -272,6 +272,7 @@
0x800BFB80:"z_bgcheck", 0x800BFB80:"z_bgcheck",
0x800CAAD0:"", 0x800CAAD0:"",
0x800CAE10:"", 0x800CAE10:"",
0x800CB000:"",
0x800CB210:"z_camera", 0x800CB210:"z_camera",
0x800E03A0:"", 0x800E03A0:"",
0x800E0410:"z_collision_check", 0x800E0410:"z_collision_check",
@ -401,7 +402,7 @@
0x801DC9D0:"code_rodata_z_actor", 0x801DC9D0:"code_rodata_z_actor",
0x801DCBB0:"code_rodata_0x800BF9A0", 0x801DCBB0:"code_rodata_0x800BF9A0",
0x801DCC00:"code_rodata_z_bgcheck", 0x801DCC00:"code_rodata_z_bgcheck",
0x801DCDB0:"code_rodata_0x800CAE10", 0x801DCDB0:"code_rodata_0x800CB000",
0x801DCDC0:"code_rodata_z_camera", 0x801DCDC0:"code_rodata_z_camera",
0x801DD5C0:"code_rodata_z_collision_check", 0x801DD5C0:"code_rodata_z_collision_check",
0x801DD600:"code_rodata_0x800E8EA0", 0x801DD600:"code_rodata_0x800E8EA0",