diff --git a/include/functions.h b/include/functions.h index 87c84dd307..57b1e08c1e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -7,7 +7,6 @@ #include #include #include -#include #include #include @@ -1836,18 +1835,18 @@ UNK_RET Lib_PushAwayXZVec3f(z_Vector3f* a0, z_Vector3f* a1, f32 a2); // func_800 f32 Lib_DistanceYVec3f(z_Vector3f* a0, z_Vector3f* a1); // func_800FFA4C UNK_TYPE Lib_YawVec3f(z_Vector3f* a0, z_Vector3f* a1); // func_800FFA60 UNK_TYPE Lib_PitchVec3f(z_Vector3f* a0, z_Vector3f* a1); // func_800FFA94 -void Lib_ApplyActorInitVars(z_Actor*, z_ActorCompInitEntry*); // func_800FFADC -UNK_RET Lib_ApplyActorInitVarByte1(u8* a0, z_ActorCompInitEntry* a1); // func_800FFB54 -UNK_RET Lib_ApplyActorInitVarByte2(u8* a0, z_ActorCompInitEntry* a1); // func_800FFB70 -UNK_RET Lib_ApplyActorInitVarShort1(u8* a0, z_ActorCompInitEntry* a1); // func_800FFB8C -UNK_RET Lib_ApplyActorInitVarShort2(u8* a0, z_ActorCompInitEntry* a1); // func_800FFBA8 -UNK_RET Lib_ApplyActorInitVarWord1(u8* a0, z_ActorCompInitEntry* a1); // func_800FFBC4 -UNK_RET Lib_ApplyActorInitVarWord2(u8* a0, z_ActorCompInitEntry* a1); // func_800FFBE0 -UNK_RET Lib_ApplyActorInitVarFloat(u8* a0, z_ActorCompInitEntry* a1); // func_800FFBFC -UNK_RET Lib_ApplyActorInitVarFloat1000th(u8* a0, z_ActorCompInitEntry* a1); // func_800FFC20 -UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorCompInitEntry* a1); // func_800FFC50 -UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorCompInitEntry* a1); // func_800FFC7C -UNK_RET Lib_ApplyActorInitVarVector3s(u8* a0, z_ActorCompInitEntry* a1); // func_800FFCB4 +void Lib_ApplyActorInitVars(z_Actor*, z_ActorInitVar*); // func_800FFADC +UNK_RET Lib_ApplyActorInitVarByte1(u8* a0, z_ActorInitVar* a1); // func_800FFB54 +UNK_RET Lib_ApplyActorInitVarByte2(u8* a0, z_ActorInitVar* a1); // func_800FFB70 +UNK_RET Lib_ApplyActorInitVarShort1(u8* a0, z_ActorInitVar* a1); // func_800FFB8C +UNK_RET Lib_ApplyActorInitVarShort2(u8* a0, z_ActorInitVar* a1); // func_800FFBA8 +UNK_RET Lib_ApplyActorInitVarWord1(u8* a0, z_ActorInitVar* a1); // func_800FFBC4 +UNK_RET Lib_ApplyActorInitVarWord2(u8* a0, z_ActorInitVar* a1); // func_800FFBE0 +UNK_RET Lib_ApplyActorInitVarFloat(u8* a0, z_ActorInitVar* a1); // func_800FFBFC +UNK_RET Lib_ApplyActorInitVarFloat1000th(u8* a0, z_ActorInitVar* a1); // func_800FFC20 +UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorInitVar* a1); // func_800FFC50 +UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorInitVar* a1); // func_800FFC7C +UNK_RET Lib_ApplyActorInitVarVector3s(u8* a0, z_ActorInitVar* a1); // func_800FFCB4 f32 func_800FFCD8(f32*, f32, f32, f32, f32); // func_800FFCD8 UNK_RET Lib_ScaleMax_f(f32* a0, f32 a1, f32 a2, f32 a3); // func_800FFDF8 UNK_RET Lib_Scale_f(f32* a0, f32 a1, f32 a2); // func_800FFE68 diff --git a/include/structs.h b/include/structs.h index b348d8914e..9fcc6a1ff0 100644 --- a/include/structs.h +++ b/include/structs.h @@ -178,8 +178,10 @@ typedef struct { } z_ActorEnTest20C; typedef struct { -/* 0x0 */ u16 info; // bitfield: 0-10: offset, 11-14: type, 15: more -/* 0x2 */ s16 value; +/* 0x0 */ u32 cont : 1; +/* 0x0 */ u32 type : 4; +/* 0x0 */ u32 offset : 11; +/* 0x2 */ s32 value : 16; } z_ActorInitVar; typedef struct { diff --git a/include/structs_bitfields.h b/include/structs_bitfields.h deleted file mode 100644 index 8b7be701d8..0000000000 --- a/include/structs_bitfields.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _STRUCTS_BITFIELDS_H_ -#define _STRUCTS_BITFIELDS_H_ - -#include - -typedef struct { - u32 cont : 1; - u32 type : 4; - u32 offset : 11; - s32 value : 16; -} z_ActorCompInitEntry; - -#endif diff --git a/include/variables.h b/include/variables.h index 84f8cae83d..eeb6199d63 100644 --- a/include/variables.h +++ b/include/variables.h @@ -7,7 +7,6 @@ #include #include #include -#include #include #include @@ -16027,7 +16026,7 @@ extern f32 D_80ACB650; // D_80ACB650 //extern UNK_TYPE D_80BD52FC; extern z_ActorInitData bgIkanaRayInitVar; // D_80BD55D0 extern UNK_TYPE D_80BD55F0; // D_80BD55F0 -extern z_ActorCompInitEntry bgIkanaRayCompInit[]; // D_80BD561C +extern z_ActorInitVar bgIkanaRayCompInit[]; // D_80BD561C extern UNK_TYPE D_80BD562C; // D_80BD562C //extern UNK_TYPE D_80BD5CF0; //extern UNK_TYPE D_80BD5D10; @@ -16839,6 +16838,6 @@ extern UNK_PTR D_800980D0_; extern UNK_TYPE D_80099AD0_; extern UNK_TYPE D_8009A670_; extern UNK_TYPE D_8009B140_; -extern (*D_801BE960[12])(u8*, z_ActorCompInitEntry*); +extern (*D_801BE960[12])(u8*, z_ActorInitVar*); #endif diff --git a/src/actors/ovl_Bg_Ikana_Ray_0x80BD53C0/ovl_Bg_Ikana_Ray_0x80BD53C0.c b/src/actors/ovl_Bg_Ikana_Ray_0x80BD53C0/ovl_Bg_Ikana_Ray_0x80BD53C0.c index ee9b30a082..67cd7f0226 100644 --- a/src/actors/ovl_Bg_Ikana_Ray_0x80BD53C0/ovl_Bg_Ikana_Ray_0x80BD53C0.c +++ b/src/actors/ovl_Bg_Ikana_Ray_0x80BD53C0/ovl_Bg_Ikana_Ray_0x80BD53C0.c @@ -48,7 +48,7 @@ glabel D_80BD55F0 ) // TODO macro -z_ActorCompInitEntry bgIkanaRayCompInit[] = { +z_ActorInitVar bgIkanaRayCompInit[] = { {1, 6, 0x0FC, 4000}, {1, 6, 0x100, 1000}, {1, 6, 0x104, 1000}, diff --git a/src/code/code_0x800A5AC0.c b/src/code/code_0x800A5AC0.c index dfbe0f8d9f..534bec030f 100644 --- a/src/code/code_0x800A5AC0.c +++ b/src/code/code_0x800A5AC0.c @@ -9,7 +9,7 @@ UNK_RET EnAObj_Init(void* a0, UNK_TYPE a1) { z_ActorEnAObj* s0 = (z_ActorEnAObj*)a0; s0->base.textId = ((s0->base.variable >> 8) & 0xFF) | 0x300; s0->base.variable = (s0->base.variable & 0xFF) - 9; - Lib_ApplyActorInitVars((z_Actor*)s0, (z_ActorCompInitEntry*)&D_801ADEAC); + Lib_ApplyActorInitVars((z_Actor*)s0, (z_ActorInitVar*)&D_801ADEAC); func_800B3BA4(&s0->base.unkBC, 0, (UNK_PTR)&func_800B3FC0, 12); Collision_InitCylinder(a1, &s0->collision, (z_Actor*)s0, &D_801ADE80); Collision_CylinderMoveToActor((z_Actor*)s0, &s0->collision); diff --git a/src/code/z_lib.c b/src/code/z_lib.c index 23ba6a0cf4..2648097ad9 100644 --- a/src/code/z_lib.c +++ b/src/code/z_lib.c @@ -419,45 +419,45 @@ UNK_TYPE Lib_PitchVec3f(z_Vector3f* a0, z_Vector3f* a1) { return atans_flip(Lib_DistanceXZVec3f(a0, a1), a0->y - a1->y); } -void Lib_ApplyActorInitVars(z_Actor* a0, z_ActorCompInitEntry* a1) { +void Lib_ApplyActorInitVars(z_Actor* a0, z_ActorInitVar* a1) { do { D_801BE960[a1->type]((u8*)a0, a1); } while ((a1++)->cont); } -UNK_RET Lib_ApplyActorInitVarByte1(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarByte1(u8* a0, z_ActorInitVar* a1) { *(u8*)(a0 + a1->offset) = (u8)(a1->value); } -UNK_RET Lib_ApplyActorInitVarByte2(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarByte2(u8* a0, z_ActorInitVar* a1) { *(u8*)(a0 + a1->offset) = (u8)(a1->value); } -UNK_RET Lib_ApplyActorInitVarShort1(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarShort1(u8* a0, z_ActorInitVar* a1) { *(u16*)(a0 + a1->offset) = (u16)(a1->value); } -UNK_RET Lib_ApplyActorInitVarShort2(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarShort2(u8* a0, z_ActorInitVar* a1) { *(u16*)(a0 + a1->offset) = (u16)(a1->value); } -UNK_RET Lib_ApplyActorInitVarWord1(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarWord1(u8* a0, z_ActorInitVar* a1) { *(u32*)(a0 + a1->offset) = (u32)(a1->value); } -UNK_RET Lib_ApplyActorInitVarWord2(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarWord2(u8* a0, z_ActorInitVar* a1) { *(u32*)(a0 + a1->offset) = (u32)(a1->value); } -UNK_RET Lib_ApplyActorInitVarFloat(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarFloat(u8* a0, z_ActorInitVar* a1) { *(f32*)(a0 + a1->offset) = (f32)(a1->value); } -UNK_RET Lib_ApplyActorInitVarFloat1000th(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarFloat1000th(u8* a0, z_ActorInitVar* a1) { *(f32*)(a0 + a1->offset) = (f32)(a1->value) / 1000; } -UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorInitVar* a1) { z_Vector3f* v0 = (z_Vector3f*)(a0 + a1->offset); f32 f0 = (f32)(a1->value); @@ -466,7 +466,7 @@ UNK_RET Lib_ApplyActorInitVarVector3f(u8* a0, z_ActorCompInitEntry* a1) { v0->x = f0; } -UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorInitVar* a1) { z_Vector3f* v0 = (z_Vector3f*)(a0 + a1->offset); f32 f0 = (f32)(a1->value) / 1000; @@ -475,7 +475,7 @@ UNK_RET Lib_ApplyActorInitVarVector3f1000th(u8* a0, z_ActorCompInitEntry* a1) { v0->x = f0; } -UNK_RET Lib_ApplyActorInitVarVector3s(u8* a0, z_ActorCompInitEntry* a1) { +UNK_RET Lib_ApplyActorInitVarVector3s(u8* a0, z_ActorInitVar* a1) { z_Vector3s* v0 = (z_Vector3s*)(a0 + a1->offset); s16 v1 = (s16)(a1->value); diff --git a/tables/functions.py b/tables/functions.py index 2f8282e706..4f372e3f18 100644 --- a/tables/functions.py +++ b/tables/functions.py @@ -1825,18 +1825,18 @@ 0x800FFA4C:("Lib_DistanceYVec3f","f32","z_Vector3f* a0, z_Vector3f* a1"), 0x800FFA60:("Lib_YawVec3f","UNK_TYPE","z_Vector3f* a0, z_Vector3f* a1"), 0x800FFA94:("Lib_PitchVec3f","UNK_TYPE","z_Vector3f* a0, z_Vector3f* a1"), - 0x800FFADC:("Lib_ApplyActorInitVars","void","z_Actor*, z_ActorCompInitEntry*"), - 0x800FFB54:("Lib_ApplyActorInitVarByte1","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFB70:("Lib_ApplyActorInitVarByte2","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFB8C:("Lib_ApplyActorInitVarShort1","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFBA8:("Lib_ApplyActorInitVarShort2","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFBC4:("Lib_ApplyActorInitVarWord1","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFBE0:("Lib_ApplyActorInitVarWord2","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFBFC:("Lib_ApplyActorInitVarFloat","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFC20:("Lib_ApplyActorInitVarFloat1000th","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFC50:("Lib_ApplyActorInitVarVector3f","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFC7C:("Lib_ApplyActorInitVarVector3f1000th","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), - 0x800FFCB4:("Lib_ApplyActorInitVarVector3s","UNK_RET","u8* a0, z_ActorCompInitEntry* a1"), + 0x800FFADC:("Lib_ApplyActorInitVars","void","z_Actor*, z_ActorInitVar*"), + 0x800FFB54:("Lib_ApplyActorInitVarByte1","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFB70:("Lib_ApplyActorInitVarByte2","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFB8C:("Lib_ApplyActorInitVarShort1","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFBA8:("Lib_ApplyActorInitVarShort2","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFBC4:("Lib_ApplyActorInitVarWord1","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFBE0:("Lib_ApplyActorInitVarWord2","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFBFC:("Lib_ApplyActorInitVarFloat","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFC20:("Lib_ApplyActorInitVarFloat1000th","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFC50:("Lib_ApplyActorInitVarVector3f","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFC7C:("Lib_ApplyActorInitVarVector3f1000th","UNK_RET","u8* a0, z_ActorInitVar* a1"), + 0x800FFCB4:("Lib_ApplyActorInitVarVector3s","UNK_RET","u8* a0, z_ActorInitVar* a1"), 0x800FFCD8:("func_800FFCD8","f32","f32*, f32, f32, f32, f32"), 0x800FFDF8:("Lib_ScaleMax_f","UNK_RET","f32* a0, f32 a1, f32 a2, f32 a3"), 0x800FFE68:("Lib_Scale_f","UNK_RET","f32* a0, f32 a1, f32 a2"), diff --git a/tables/variables.py b/tables/variables.py index ecb0467600..be68f7fa82 100644 --- a/tables/variables.py +++ b/tables/variables.py @@ -213,6 +213,6 @@ 0x80ACB650:("","f32",False), 0x80BD55D0:("bgIkanaRayInitVar","z_ActorInitData",False), 0x80BD55F0:("","UNK_TYPE",False), - 0x80BD561C:("bgIkanaRayCompInit","z_ActorCompInitEntry",True), + 0x80BD561C:("bgIkanaRayCompInit","z_ActorInitVar",True), 0x80BD562C:("","UNK_TYPE",False) } diff --git a/tools/disasm.py b/tools/disasm.py index d2274a556b..b6f349fd43 100644 --- a/tools/disasm.py +++ b/tools/disasm.py @@ -642,7 +642,7 @@ class Disassembler: with open(path + "/functions.h", 'w', newline='\n') as f: f.write("#ifndef _FUNCTIONS_H_\n#define _FUNCTIONS_H_\n\n"); - f.write('#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n'); + f.write('#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n'); for addr in sorted(self.functions): if addr in known_funcs: @@ -655,7 +655,7 @@ class Disassembler: with open(path + "/variables.h", 'w', newline='\n') as f: f.write("#ifndef _VARIABLES_H_\n#define _VARIABLES_H_\n\n"); - f.write('#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n'); + f.write('#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n'); for addr in sorted(self.vars): if addr in known_vars: