Decompiling KURI (#141)

* feat: begin curry decompiling

* fix: create a cpp type for VecFx32

* fix: build issue

* fix: jp as well

* feat: improve ctor & dtor

* feat: improve matching

* fix: wrong value in animation tag

* feat: add matching bytes

* fix: change signature of Mityno's inline ctor

* fix: change signature of ANOTHER Mityno's inline ctor

* fix: match back function in CANS

* feat: more matching

* fix: build

* feat: increase overall matching

* feat: increase overall matching

* fix: commit to stop infinite task

* fix: better matching

* feat: chagne jp symbols

* feat: delink data and bss of KURI

* fix: use VecFx32 constructor

* fix: build issues
This commit is contained in:
Alessevan
2026-08-24 11:42:52 -04:00
committed by GitHub
parent 473e1e102b
commit f595c06b8d
32 changed files with 1317 additions and 336 deletions
+27 -6
View File
@@ -97,9 +97,7 @@ public:
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ ActorRef mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 10 */ VecFx32 mUnk_10;
/* 1C */ u16 mUnk_1C;
/* 1E */ u16 mUnk_1E;
/* 20 */
@@ -228,7 +226,7 @@ public:
u32 func_ov000_02098800(bool param1);
bool func_ov000_02098838();
unk32 func_ov000_02098910(UnkStruct_ov031_Items_00 *param1, unk32 param2);
void func_ov000_02098b8c(unk32 param1, void *param2);
void func_ov000_02098b8c(unk32 param1, UnkStruct_ov031_Items_00 *param2);
s32 func_ov000_02098518(unk32 *param1);
VecFx32 *func_ov000_0209853c(unk32 param1);
s32 func_ov000_02098554();
@@ -237,6 +235,7 @@ public:
s32 func_ov000_02098584();
s32 func_ov000_020985f0(void *param1);
void func_ov000_0209862c(unk32 param1);
bool func_ov000_020986fc(unk32 param1);
void func_ov000_020989e0();
bool func_ov000_02098a60(unk32 param1);
void func_ov000_02098a88(unk32 param1, unk32 param2);
@@ -248,6 +247,7 @@ public:
// overlay 17
bool func_ov017_020beeec(unk32 param1);
void func_ov017_020bef88(Actor_vfunc_30 *param1, void *param2, unk32 param3);
void func_ov017_020bf3e0(unk32 param1, fx32 param2);
void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov017_020bf9c8(Actor *param1);
void func_ov017_020bfa50(VecFx32 *param1, unk32 param2);
@@ -296,13 +296,23 @@ public:
Actor_C4_Base(&param1->mRef, param2) {}
};
class Actor_Derived2_A8_PTR {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */
};
class UnkStruct_ActorUnkCANS_224;
class Actor_Derived2 : public Actor {
public:
/* 00 (base) */
/* 94 */ unk32 mUnk_94;
/* 98 */ VecFx32 mUnk_98;
/* A4 */ unk32 mUnk_A4;
/* A8 */ void *mUnk_A8;
/* A4 */ VecFx32 const *mUnk_A4;
/* A8 */ Actor_Derived2_A8_PTR *mUnk_A8;
/* AC */ unk8 mUnk_AC;
/* AD */ unk8 mUnk_AD;
/* AE */
@@ -312,6 +322,17 @@ public:
/* 30 */ virtual void vfunc_30(Actor_vfunc_30 *param1);
/* 4C */ WEAK virtual ~Actor_Derived2() {}
/* 54 */ virtual void vfunc_54(unk32 param1);
void func_ov000_020990c0(Actor_9C *param2, unk32 param3, unk32 param4);
void func_ov000_020992dc();
unk32 func_ov000_02099450(void *param2, VecFx32 *param3, unk32 param4, u16 param5);
void func_ov000_020994a0();
void func_ov000_020997c4(unk32 param1);
void func_ov000_02098f34(VecFx32 *);
unk32 func_ov017_020bef4c(unk32 param1);
void func_ov017_020bf178(Actor_9C *param2, unk32 param3);
void func_ov017_020bf894(UnkStruct_ActorUnkCANS_224 *param1);
};
extern UnkStruct_ov000_020b539c data_ov000_020b539c_eur;
+1
View File
@@ -39,6 +39,7 @@ public:
~ActorManager();
// itcm
void func_01fff2fc(void (*callback)(Actor *, u16), unk32 param2);
Actor **func_01fff350(void *param1, Actor **ppActorTable);
Actor *func_01fff3b4(ActorRef ref);
+6 -6
View File
@@ -36,7 +36,7 @@ public:
~ActorProfile();
/* 00 */ virtual Actor *Create() = 0;
/* 04 */ virtual unk32 vfunc_04();
/* 04 */ virtual UnkActorFileSystem2 *vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
@@ -59,7 +59,7 @@ public:
ActorProfile_Derived1(ActorId actorId1, ActorId actorId2);
~ActorProfile_Derived1();
/* 04 */ virtual unk32 vfunc_04() override;
/* 04 */ virtual UnkActorFileSystem2 *vfunc_04() override;
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
@@ -73,10 +73,10 @@ public:
ActorProfile_Derived2(ActorId actorId1, ActorId actorId2) :
ActorProfile_Derived1(actorId1, actorId2) {}
/* 04 */ virtual unk32 vfunc_04() override; // func_ov000_02097944
/* 10 */ virtual void vfunc_10() override; // func_ov000_0209794c
/* 14 */ virtual void vfunc_14() override; // func_ov000_0209796c
/* 18 */ virtual void vfunc_18() override; // func_ov000_02097998
/* 04 */ virtual UnkActorFileSystem2 *vfunc_04() override; // func_ov000_02097944
/* 10 */ virtual void vfunc_10() override; // func_ov000_0209794c
/* 14 */ virtual void vfunc_14() override; // func_ov000_0209796c
/* 18 */ virtual void vfunc_18() override; // func_ov000_02097998
};
// typedef ActorProfile *(*GetActorProfile)();
+2 -2
View File
@@ -48,7 +48,7 @@ public:
/* 00 (base) */
/* 1C */
ActorTearLight_104_Base(UnkSystem5 *param1, ModelRender *param2, unk32 param3) :
ActorTearLight_104_Base(UnkSystem5 *param1, ModelRender *param2, UnkActorFileSystem2 *param3) :
UnkStruct_ov000_020b31a8(param1, param2, param3) {}
// data_ov071_021641e0
@@ -63,7 +63,7 @@ public:
/* 00 (base) */
/* 1C */
ActorTearLight_104(UnkSystem5 *param1, ModelRender *param2, unk32 param3) :
ActorTearLight_104(UnkSystem5 *param1, ModelRender *param2, UnkActorFileSystem2 *param3) :
ActorTearLight_104_Base(param1, param2, param3) {}
// data_ov071_02164c3c
+17 -8
View File
@@ -66,11 +66,11 @@ public:
/* 7C */ UnkSystem5 mUnk_7C;
/* 9C */ unk32 mUnk_9C;
UnkStruct_ov063_02162f14(void *param3, unk32 param4) :
UnkStruct_ov063_02162f14(ModelRender *param3, UnkActorFileSystem2 *param4) :
UnkStruct_ov000_020b31f0(&mUnk_2C, &mUnk_7C, param3, param4),
mUnk_2C(&mUnk_4C, NULL),
mUnk_7C(&mUnk_9C, NULL) {
if (param4 != 0) {
if (param4 != NULL) {
mUnk_7C.mpModel = mUnk_10;
mUnk_2C.mpModel = mUnk_10;
}
@@ -92,10 +92,23 @@ public:
class UnkStruct_ActorUnkCANS_224 {
public:
/* 00 (base) */
/* 04 */
/* 00 (base) */ UnkStruct_PlayerGet_ec mUnk_00[0x2];
/* 08 */ u16 mUnk_08;
/* 0A */ u16 mUnk_0A;
/* 0C */ STRUCT_PAD(0x0C, 0x10);
/* 10 */
UnkStruct_ActorUnkCANS_224(); // func_ov000_02099820
~UnkStruct_ActorUnkCANS_224() {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_00; ptr != this->mUnk_00 + ARRAY_LEN(this->mUnk_00); ++ptr) {
ptr->func_ov000_020a0334();
}
this->mUnk_0A = 0x0;
this->mUnk_08 = 0x0;
}
void func_ov000_02099a0c();
};
class ActorUnkCANS : public Actor_Derived2 {
@@ -108,10 +121,6 @@ public:
/* 1F4 */ Actor_Derived1_94 mUnk_1F4;
/* 200 */ UnkStruct_ov063_02162e88 mUnk_200;
/* 224 */ UnkStruct_ActorUnkCANS_224 mUnk_224;
/* 226 */ STRUCT_PAD(0x226, 0x22C);
/* 22C */ unk16 mUnk_22C;
/* 22E */ unk16 mUnk_22E;
/* 230 */ STRUCT_PAD(0x230, 0x234);
/* 234 */ volatile u16 mUnk_234;
/* 236 */ u16 mUnk_236;
/* 238 */ volatile u16 mUnk_238;
+159 -70
View File
@@ -1,84 +1,174 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "ActorUnkCANS.hpp"
#include "ActorUnkZLSL_ZSRS.hpp"
#include "global.h"
#include "types.h"
class ActorUnkKURI_C4 : public Actor_C4 {
public:
ActorUnkKURI_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkKURI : public Actor {
class ModelRender_ov000_020b1a1c : public ModelRender {
public:
/* 00 (base) */
/* 94 */
ModelRender_ov000_020b1a1c(G3d_Model *pModel);
// data_ov000_020b1a1c
/* 0C */ virtual void vfunc_0C() override;
};
enum ActorUnkKURIState_ {
ActorUnkKURIState_0 = 0,
ActorUnkKURIState_1 = 1,
ActorUnkKURIState_2 = 2,
ActorUnkKURIState_3 = 3,
ActorUnkKURIState_4 = 4,
ActorUnkKURIState_5 = 5,
ActorUnkKURIState_6 = 6,
ActorUnkKURIState_7 = 7,
ActorUnkKURIState_8 = 8,
ActorUnkKURIState_9 = 9,
ActorUnkKURIState_10 = 10,
ActorUnkKURIState_11 = 11,
ActorUnkKURIState_Max
};
class ActorUnkKURI_268 : public UnkStruct_ov031_Items_00 {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x08);
/* 08 */ VecFx32 mUnk_08;
/* 14 */
ActorUnkKURI_268();
// data_ov032_021221bc
/* 00 */ virtual ~ActorUnkKURI_268();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
};
class ActorUnkKURI_110 : public UnkStruct_ov000_020b31f0 {
public:
/* 00 (base) */
/* 2C */ UnkSystem5 mUnk_2C;
/* 4C */ unk32 mUnk_4C;
/* 50 */ STRUCT_PAD(0x50, 0x6C);
/* 6C */ UnkSystem5 mUnk_6C;
/* 8C */ unk32 mUnk_8C;
/* 90 */
ActorUnkKURI_110(ModelRender *param3, UnkActorFileSystem2 *param4) :
UnkStruct_ov000_020b31f0(&this->mUnk_2C, &this->mUnk_6C, param3, param4),
mUnk_2C(&this->mUnk_4C, NULL),
mUnk_6C(&this->mUnk_8C, NULL) {
if (param4 != NULL) {
this->mUnk_6C.mpModel = this->mUnk_10;
this->mUnk_2C.mpModel = this->mUnk_10;
}
}
// data_ov032_02122244
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override;
/* 3C */ virtual void vfunc_3C() override;
};
class ActorUnkKURI_1BC : public UnkStruct_ov000_020b31a8 {
public:
/* 00 (base) */
/* 1C */ UnkSystem5 mUnk_1C;
/* 3C */ unk32 mUnk_3C;
/* 40 */
ActorUnkKURI_1BC(ModelRender *param2, UnkActorFileSystem2 *param3) :
UnkStruct_ov000_020b31a8(&this->mUnk_1C, param2, param3),
mUnk_1C(&this->mUnk_3C, NULL) {
if (param3 != NULL) {
this->mUnk_1C.mpModel = this->mUnk_10;
}
}
// data data_ov032_021221fc
/* 30 */ virtual s8 vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2) override;
/* 3C */ virtual void vfunc_3C() override;
};
class ActorUnkKURI : public Actor_Derived2 {
public:
/* 000 (base) */
/* 0AE */ STRUCT_PAD(0x0AE, 0x0B0);
/* 0B0 */ ModelRender_ov000_020b1a1c mUnk_0B0;
/* 110 */ ActorUnkKURI_110 mUnk_110;
/* 1A0 */ STRUCT_PAD(0x1A0, 0x1BC);
/* 1BC */ ActorUnkKURI_1BC mUnk_1BC;
/* 1FC */ STRUCT_PAD(0x1FC, 0x218);
/* 218 */ unk16 mUnk_218;
/* 21C */ unk32 mUnk_21C;
/* 220 */ unk32 mUnk_220;
/* 224 */ unk16 mUnk_224;
/* 228 */ Actor_9C mUnk_228;
/* 248 */ UnkStruct_ActorUnkCANS_224 mUnk_248;
/* 258 */ Actor_Derived1_94 mUnk_258;
/* 264 */ unk32 mUnk_264;
/* 268 */ ActorUnkKURI_268 mUnk_268;
/* 27C */ VecFx32 mUnk_27C;
/* 288 */ VecFx32 mUnk_288;
/* 294 */ bool mUnk_294;
/* 296 */ volatile u16 mUnk_296;
/* 298 */ u16 mUnk_298;
/* 29A */
ActorUnkKURI();
/* 4C */ virtual ~ActorUnkKURI() override;
bool IsInternalTimerOut() {
if (this->mUnk_296 < this->mUnk_298) {
this->mUnk_296++;
return false;
}
void func_ov032_02119248(void);
void func_ov032_0211925c(void);
void func_ov032_02119270(void);
void func_ov032_02119390(void);
void func_ov032_02119458(void);
void func_ov032_021194dc(void);
void func_ov032_0211953c(void);
void func_ov032_02119584(void);
void func_ov032_021198dc(void);
void func_ov032_02119990(void);
void func_ov032_02119a0c(void);
void func_ov032_02119be8(void);
void func_ov032_02119c80(void);
void func_ov032_02119d7c(void);
void func_ov032_02119df4(void);
void func_ov032_02119e90(void);
void func_ov032_02119f40(void);
void func_ov032_0211a140(void);
void func_ov032_0211a20c(void);
void func_ov032_0211a484(void);
void func_ov032_0211a52c(void);
void func_ov032_0211a7b8(void);
void func_ov032_0211a86c(void);
void func_ov032_0211a950(void);
void func_ov032_0211a9c8(void);
void func_ov032_0211aa40(void);
void func_ov032_0211aac8(void);
void func_ov032_0211ab20(void);
void func_ov032_0211abc0(void);
void func_ov032_0211ac20(void);
void func_ov032_0211ac94(void);
void func_ov032_0211ad40(void);
void func_ov032_0211adf4(void);
void func_ov032_0211b024(void);
void func_ov032_0211b064(void);
void func_ov032_0211b114(void);
void func_ov032_0211b17c(void);
void func_ov032_0211b190(void);
void func_ov032_0211b1e0(void);
void func_ov032_0211b298(void);
void func_ov032_0211b37c(void);
void func_ov032_0211b3b0(void);
void func_ov032_0211b408(void);
void func_ov032_0211b570(void);
void func_ov032_0211b5b4(void);
void func_ov032_0211b5d0(void);
void func_ov032_0211b5f4(void);
void func_ov032_0211b618(void);
void func_ov032_0211b628(void);
void func_ov032_0211b630(void);
void func_ov032_0211b654(void);
void func_ov032_0211b680(void);
void func_ov032_0211b69c(void);
return true;
}
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkKURI() override;
/* 54 */ virtual void vfunc_54(unk32 param1) override;
void func_ov032_021194dc(ActorState state);
void SetState(ActorState state);
void func_ov032_02119990();
void func_ov032_02119a0c();
void func_ov032_02119be8();
void func_ov032_02119c80();
void func_ov032_02119d7c();
void func_ov032_02119df4();
void func_ov032_02119e90();
void func_ov032_02119f40();
void func_ov032_0211a140();
void func_ov032_0211a20c();
void func_ov032_0211a484();
void func_ov032_0211a52c();
void func_ov032_0211a7b8();
void func_ov032_0211a86c();
void func_ov032_0211a950();
void func_ov032_0211a9c8();
void func_ov032_0211aa40();
void func_ov032_0211aac8();
void func_ov032_0211ab20();
void func_ov032_0211abc0();
void func_ov032_0211ac20();
void func_ov032_0211ac94();
void func_ov032_0211ad40();
void func_ov032_0211adf4();
void func_ov032_0211b024();
bool func_ov032_0211b064(unk32 param1);
bool func_ov032_0211b114();
bool func_ov032_0211b17c();
void func_ov032_0211b190(s32 param1, s32 param2);
void func_ov032_0211b1e0();
void func_ov032_0211b298();
static void func_ov032_0211b37c(ActorUnkKURI *, u16 param1);
void func_ov032_0211b3b0();
};
class ActorProfileUnkKURI : public ActorProfile_Derived1 {
@@ -86,7 +176,6 @@ public:
/* 00 (base) */
ActorProfileUnkKURI();
~ActorProfileUnkKURI();
/* 0C */ virtual Actor *Create();
+1 -1
View File
@@ -12,7 +12,7 @@ public:
/* 00 (base) */
/* 40 */
UnkStruct_ov063_02163784(ModelRender *param1, unk32 param2) :
UnkStruct_ov063_02163784(ModelRender *param1, UnkActorFileSystem2 *param2) :
UnkStruct_ov063_021632e4(param1, param2) {};
};
+1 -1
View File
@@ -16,7 +16,7 @@ public:
/* 3C */ void *mUnk_3C;
/* 40 */
UnkStruct_ov063_021632e4(ModelRender *param1, unk32 param2) :
UnkStruct_ov063_021632e4(ModelRender *param1, UnkActorFileSystem2 *param2) :
UnkStruct_ov000_020b31a8(&mUnk_1C, param1, param2),
mUnk_1C(&mUnk_3C, NULL) {
if (param2 != 0) {
+8 -7
View File
@@ -54,7 +54,7 @@ public:
/* 19 */ STRUCT_PAD(0x19, 0x1C);
/* 1C */
UnkStruct_ov000_020b31a8(UnkSystem5 *param1, ModelRender *param2, unk32 param3);
UnkStruct_ov000_020b31a8(UnkSystem5 *param1, ModelRender *param2, UnkActorFileSystem2 *param3);
// data_ov000_020b31a8
/* 00 */ virtual ~UnkStruct_ov000_020b31a8();
@@ -73,6 +73,7 @@ public:
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2);
/* 3C */ virtual void vfunc_3C();
void func_ov000_02099ddc(ActorUnkZLSL_AnimationTag param1, unk32 param2, unk32 param3);
void func_ov000_02099ff8(ActorUnkZLSL_AnimationTag param1, unk32 param2);
};
@@ -84,10 +85,10 @@ public:
/* 60 */ STRUCT_PAD(0x60, 0x7C);
/* 7C */
ActorUnkZLSL_27CC(UnkSystem5 *param1, ModelRender *param2, unk32 param3) :
ActorUnkZLSL_27CC(UnkSystem5 *param1, ModelRender *param2, UnkActorFileSystem2 *param3) :
UnkStruct_ov000_020b31a8(param1, param2, param3),
mUnk_1C(&mUnk_5C, NULL) {
if (param3 != 0x0) {
if (param3 != NULL) {
this->mUnk_1C.mpModel = this->mUnk_10;
}
}
@@ -104,7 +105,7 @@ public:
/* 00 (base) */
/* 04 */
ActorUnkZLSL_2700(UnkSystem5 *param1, ModelRender *param2, unk32 param3) :
ActorUnkZLSL_2700(UnkSystem5 *param1, ModelRender *param2, UnkActorFileSystem2 *param3) :
ActorUnkZLSL_27CC(param1, param2, param3) {}
// data_ov031_021136e4
@@ -122,10 +123,10 @@ public:
/* 2A */ unk16 mUnk_2A;
/* 2C */
UnkStruct_ov000_020b31f0(void *param1, void *param2, void *param3, unk32 param4);
UnkStruct_ov000_020b31f0(UnkSystem5 *param1, UnkSystem5 *param2, ModelRender *param3, UnkActorFileSystem2 *param4);
// data_ov000_020b31f0
/* 00 */ virtual ~UnkStruct_ov000_020b31f0() override;
/* 00 */ virtual ~UnkStruct_ov000_020b31f0() override; // In thumb
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual UnkSystem5 *vfunc_10() override;
@@ -150,7 +151,7 @@ public:
/* 1C */ UnkSystem5 *mUnk_1C;
/* 20 */
UnkStruct_ov031_0211372c(void *param1, void *param2, void *param3, unk32 param4);
UnkStruct_ov031_0211372c(UnkSystem5 *param1, UnkSystem5 *param2, ModelRender *param3, UnkActorFileSystem2 *param4);
// data_ov031_0211372c
/* 18 */ virtual void vfunc_18() override;
-6
View File
@@ -116,12 +116,6 @@ public:
}
};
class UnkStruct_PlayerGet_50 {
public:
unk32 func_01ff8fa8();
unk32 func_02015080(unk32 param1);
};
class UnkStruct_PlayerGet_fc {
public:
/* 00 */ UnkStruct_PlayerGet_ec *mUnk_00;
+17 -6
View File
@@ -9,6 +9,7 @@
#include <nns/g3d/g3d.h>
class UnkSystem5;
class UnkStruct_PlayerGet_50;
extern "C" void *func_ov000_02057750(size_t allocSize);
struct ActorUnkZLSL_AnimationTag {
@@ -144,16 +145,26 @@ public:
unk32 func_ov000_02057ef4();
};
class UnkSystem5 {
class UnkStruct_PlayerGet_50 {
public:
/* 00 */ G3d_Model *mpModel;
/* 04 */ unk16 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 00 (base) */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ fx32 mUnk_04;
/* 08 */ fx32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 18 */
unk32 func_01ff8fa8();
unk32 func_02015080(unk32 param1);
};
class UnkSystem5 {
public:
/* 00 */ G3d_Model *mpModel;
/* 04 */ UnkStruct_PlayerGet_50 mUnk_04;
/* 1C */ void *mUnk_1C; // this is param1
/* 20 */
UnkSystem5(void *param1, G3d_Model *pModel);
+4 -3
View File
@@ -10,9 +10,10 @@
class UnkStruct_027e0cd8_0C_Base;
struct UnkStruct_ov000_0207de98 {
VecFx32 vec;
unk32 param1;
unk32 param2;
/* 00 */ VecFx32 vec;
/* 0C */ unk32 param1;
/* 10 */ unk32 param2;
/* 14 */
};
class UnkStruct_027e09c0_60 {