ovl_En_Ma_Yts OK and partially documented (#164)

* destroy

* moar

* limbdraw

* some setups identified

* func_80B8D6F8

* func_80B8E0BC

* fix unmatching

* func_80B8D12C

* func_80B8D1E8

* func_80B8DBB8

* some renaiming

* some renaimings

* symbols

* small renaming and a few functions

* Almost every function done

* lots of renames

* Fix merge conflicts

* misc notes

* struct_800BD888_arg1

* some renamings and enum

* func_80B8D2D8

* func_80B8DA28

* import data and cleanup

* format

* minor changes

* Documentation pass

* update enum name

* Remove object XML

* run format

* Move EN_MA_YTS_PARSE_TYPE to header

* fix conflicts

* Update src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.h

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* Update src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* move struct to z64animation

* Change PARSE_TYPE macro to accept actor param

* format

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
This commit is contained in:
Anghelo Carvajal
2021-06-09 18:38:35 -04:00
committed by GitHub
co-authored by engineer124 Kenix3
parent b6904aa2cc
commit 83e263ab12
18 changed files with 705 additions and 68 deletions
+4 -4
View File
@@ -794,7 +794,7 @@ f32* func_800B8248(PosRot* param_1, ActorPlayer* param_2);
// void func_800B82EC(void);
// void func_800B83BC(void);
// void func_800B83F8(void);
s32 func_800B84D0(Actor* actor, GlobalContext* globalCtx);
s32 func_800B84D0(Actor* actor, GlobalContext* globalCtx); // Actor_IsTalking
s32 func_800B8500(Actor* actor, GlobalContext* globalCtx, f32 fParm3, f32 fParm4, s32 param_5);
void func_800B85E0(Actor* actor, GlobalContext* globalCtx, f32 uParm3, s32 uParm4);
void func_800B8614(Actor* actor, GlobalContext* globalCtx, f32 uParm3);
@@ -892,7 +892,7 @@ void func_800BCC68(Vec3f* param_1, GlobalContext* globalCtx);
// void func_800BD2B4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_800BD384(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7, UNK_TYPE2 param_8, UNK_TYPE1 param_9);
// void func_800BD6E4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
// void func_800BD888(void);
void func_800BD888(Actor*, struct_800BD888_arg1*, s16, s16); // This function is very similar to OoT's func_80034A14
// void func_800BD9A0(void);
// void func_800BD9E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6);
// void func_800BDAA0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6);
@@ -2233,7 +2233,7 @@ void func_80123DA4(ActorPlayer* player);
// void func_80123F2C(void);
// void func_80123F48(void);
// void func_80124020(void);
u32 func_8012403C(GlobalContext* globalCtx);
u32 func_8012403C(GlobalContext* globalCtx); // Player_IsWearingAMask
void func_8012404C(GlobalContext* globalCtx);
// void func_8012405C(void);
// void func_80124088(void);
@@ -2877,7 +2877,7 @@ void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
// void func_80151DA4(void);
void func_80152434(GlobalContext* globalCtx, u16 arg2);
// void func_80152464(void);
UNK_TYPE4 func_80152498(MessageContext* msgCtx);
s32 func_80152498(MessageContext* msgCtx);
// void func_8015268C(void);
// void func_80152C64(void);
// void func_80152CAC(void);
+13
View File
@@ -1580,6 +1580,19 @@ typedef struct {
/* 0x10 */ s32 unk10;
} struct_801C5F44; // size = 0x14
// From OoT's struct_80034A14_arg1
typedef struct {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ Vec3s unk_08;
/* 0x0E */ Vec3s unk_0E;
/* 0x14 */ f32 unk_14;
/* 0x18 */ Vec3f unk_18; // Usually setted to Player's position or Player's focus
/* 0x24 */ s16 unk_24;
} struct_800BD888_arg1; // size = 0x28
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ ColliderQuad unk144;
+2 -2
View File
@@ -223,7 +223,7 @@ typedef struct {
/* 0x14C */ UNK_TYPE1 pad14C[0x5];
/* 0x151 */ u8 unk151;
/* 0x152 */ UNK_TYPE1 unk152;
/* 0x153 */ u8 unk153;
/* 0x153 */ u8 unk153; // isWearingAMask
/* 0x154 */ UNK_TYPE1 pad154[0x1F8];
/* 0x34C */ Actor* heldActor;
/* 0x350 */ UNK_TYPE1 pad350[0x18];
@@ -356,7 +356,7 @@ typedef struct {
/* 0x0C */ f32 frameCount;
/* 0x10 */ u8 mode;
/* 0x14 */ f32 morphFrames;
} ActorAnimationEntry;
} ActorAnimationEntry; // size = 0x18
typedef enum {
/* 0x000 */ ACTOR_PLAYER,
+7
View File
@@ -249,4 +249,11 @@ typedef s32 (*OverrideCurveLimbDraw)(struct GlobalContext* globalCtx, SkelAnimeC
typedef void (*PostCurveLimbDraw)(struct GlobalContext* globalCtx, SkelAnimeCurve* skelCuve, s32 limbIndex,
struct Actor* actor);
typedef struct struct_80B8E1A8 {
/* 0x00 */ AnimationHeader* animationSeg;
/* 0x04 */ f32 playbackSpeed;
/* 0x08 */ u8 mode;
/* 0x0C */ f32 transitionRate;
} struct_80B8E1A8; // size = 0x10
#endif
+1 -1
View File
@@ -5,7 +5,7 @@
#include <unk.h>
typedef struct {
/* 0x00 */ u16 unk0;
/* 0x00 */ u16 unk0; // action; // "dousa"
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ UNK_TYPE1 pad6[0x2A];
+2 -2
View File
@@ -7339,9 +7339,9 @@ SECTIONS
ovl_En_Ma_Yts : AT(RomLocation)
{
build/src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.o(.text)
build/asm/overlays/ovl_En_Ma_Yts_data.o(.data)
build/src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.o(.data)
build/src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts.o(.rodata)
build/asm/overlays/ovl_En_Ma_Yts_rodata.o(.rodata)
build/src/overlays/actors/ovl_En_Ma_Yts/z_en_ma_yts_overlay.o(.ovl)
}
SegmentEnd = .;
SegmentSize = SegmentEnd - SegmentStart;
+38
View File
@@ -274,6 +274,44 @@ D_06017650 = 0x06017650;
/* z_en_warp_uzu */
D_06000EC0 = 0x06000EC0;
/* z_en_ma_yts */
D_06009E58 = 0x06009E58;
D_06007D98 = 0x06007D98;
D_060003B0 = 0x060003B0;
D_060043A0 = 0x060043A0;
D_06013928 = 0x06013928;
D_06009E58 = 0x06009E58;
D_06009E58 = 0x06009E58;
D_06018948 = 0x06018948;
D_06018948 = 0x06018948;
D_0601B76C = 0x0601B76C;
D_0601B76C = 0x0601B76C;
D_06007328 = 0x06007328;
D_06007328 = 0x06007328;
D_06014088 = 0x06014088;
D_06014088 = 0x06014088;
D_06002A8C = 0x06002A8C;
D_06002A8C = 0x06002A8C;
D_06015B7C = 0x06015B7C;
D_06015B7C = 0x06015B7C;
D_06007D98 = 0x06007D98;
D_06007D98 = 0x06007D98;
D_0600852C = 0x0600852C;
D_0600852C = 0x0600852C;
D_06008F6C = 0x06008F6C;
D_06008F6C = 0x06008F6C;
D_060180DC = 0x060180DC;
D_060180DC = 0x060180DC;
D_060127C8 = 0x060127C8;
D_06012BC8 = 0x06012BC8;
D_06012FC8 = 0x06012FC8;
D_060133C8 = 0x060133C8;
D_0600FFC8 = 0x0600FFC8;
D_060107C8 = 0x060107C8;
D_06010FC8 = 0x06010FC8;
D_060117C8 = 0x060117C8;
D_06011FC8 = 0x06011FC8;
/* en_cha */
D_06000710 = 0x06000710;
D_06000958 = 0x06000958;
+1
View File
@@ -825,6 +825,7 @@ void Actor_FreeOverlay(ActorOverlay* entry) {
#pragma GLOBAL_ASM("./asm/non_matchings/code/z_actor//func_800BD6E4.asm")
// This function is very similar to OoT's func_80034A14
#pragma GLOBAL_ASM("./asm/non_matchings/code/z_actor//func_800BD888.asm")
#pragma GLOBAL_ASM("./asm/non_matchings/code/z_actor//func_800BD9A0.asm")
+1 -2
View File
@@ -1121,8 +1121,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
params = 0xD0;
dropId = ITEM00_MAGIC_LARGE;
dropQuantity = 1;
} else if ((gSaveContext.magicLevel != 0) &&
((gSaveContext.magicLevel >> 1) >= gSaveContext.magic)) {
} else if ((gSaveContext.magicLevel != 0) && ((gSaveContext.magicLevel >> 1) >= gSaveContext.magic)) {
params = 0xD0;
dropId = ITEM00_MAGIC_LARGE;
dropQuantity = 1;
+1 -1
View File
@@ -95,7 +95,7 @@ void func_8013A46C(s32 flag) {
u32 func_8013A4C4(s32 flag) {
SaveContext* saveCtx = &gSaveContext;
if (flag < 0x20) {
return saveCtx->roomInf[123][3] & (1 << flag);
} else {
-1
View File
@@ -15,7 +15,6 @@ void DmNb_Destroy(Actor* thisx, GlobalContext* globalCtx);
void DmNb_Update(Actor* thisx, GlobalContext* globalCtx);
void DmNb_Draw(Actor* thisx, GlobalContext* globalCtx);
const ActorInit Dm_Nb_InitVars = {
ACTOR_DM_NB,
ACTORCAT_NPC,
+9 -7
View File
@@ -98,8 +98,8 @@ s32 EnFg_UpdateAnimation(SkelAnime* skelAnime, s16 animIndex) {
frameCount = SkelAnime_GetFrameCount(&sAnimations[animIndex].animationSeg->common);
}
SkelAnime_ChangeAnim(skelAnime, sAnimations[animIndex].animationSeg, sAnimations[animIndex].playbackSpeed,
sAnimations[animIndex].frame, frameCount, sAnimations[animIndex].mode,
sAnimations[animIndex].transitionRate);
sAnimations[animIndex].frame, frameCount, sAnimations[animIndex].mode,
sAnimations[animIndex].transitionRate);
}
return ret;
}
@@ -189,7 +189,7 @@ void EnFg_Idle(EnFg* this, GlobalContext* globalCtx) {
case FG_DMGEFFECT_EXPLOSION:
this->actor.flags &= ~1;
Audio_PlayActorSound2(this, 0x28E3);
if(1) {}
if (1) {}
this->actor.params = FG_BLACK;
this->skelAnime.animPlaybackSpeed = 0.0f;
ac = this->collider.base.ac;
@@ -388,10 +388,11 @@ void EnFg_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx);
func_8012C28C(globalCtx->state.gfxCtx);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, envColor[this->actor.params].r, envColor[this->actor.params].g, envColor[this->actor.params].b, envColor[this->actor.params].a);
gDPSetEnvColor(POLY_OPA_DISP++, envColor[this->actor.params].r, envColor[this->actor.params].g,
envColor[this->actor.params].b, envColor[this->actor.params].a);
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(&D_060059A0));
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(&D_060059A0));
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
EnFg_OverrideLimbDraw, EnFg_PostLimbDraw, &this->actor);
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
@@ -450,13 +451,14 @@ void EnFg_DrawDust(GlobalContext* globalCtx, EnFgEffectDust* dustEffect) {
}
if (1) {}
alpha = (255.0f / 16.0f) * dustEffect->timer;
alpha = (255.0f / 16.0f) * dustEffect->timer;
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, alpha);
gDPPipeSync(POLY_XLU_DISP++);
SysMatrix_InsertTranslation(dustEffect->pos.x, dustEffect->pos.y, dustEffect->pos.z, MTXMODE_NEW);
SysMatrix_NormalizeXYZ(&globalCtx->unk187FC);
Matrix_Scale(dustEffect->xyScale, dustEffect->xyScale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
index = 0.5f * dustEffect->timer;
gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(sDustTex[index]));
gSPDisplayList(POLY_XLU_DISP++, D_0600B338);
File diff suppressed because it is too large Load Diff
@@ -5,11 +5,75 @@
struct EnMaYts;
typedef void (*EnMaYtsActionFunc)(struct EnMaYts*, GlobalContext*);
// Limbs of OBJECT_MA1
#define OBJECT_MA1_LIMB_TABLE_COUNT 23
typedef enum {
/* 00 */ OBJECT_MA1_LIMB_00,
/* 01 */ OBJECT_MA1_LIMB_PELVIS,
/* 02 */ OBJECT_MA1_LIMB_TIGHT_LEFT,
/* 03 */ OBJECT_MA1_LIMB_LEG_LEFT,
/* 04 */ OBJECT_MA1_LIMB_FOOT_LEFT,
/* 05 */ OBJECT_MA1_LIMB_TIGHT_RIGHT,
/* 06 */ OBJECT_MA1_LIMB_LEG_RIGHT,
/* 07 */ OBJECT_MA1_LIMB_FOOT_RIGHT,
/* 08 */ OBJECT_MA1_LIMB_DRESS_0,
/* 09 */ OBJECT_MA1_LIMB_DRESS_1,
/* 10 */ OBJECT_MA1_LIMB_DRESS_2,
/* 11 */ OBJECT_MA1_LIMB_DRESS_3,
/* 12 */ OBJECT_MA1_LIMB_TORSO,
/* 13 */ OBJECT_MA1_LIMB_HEAD,
/* 14 */ OBJECT_MA1_LIMB_HAIR_TOP,
/* 15 */ OBJECT_MA1_LIMB_HAIR_BOTTOM,
/* 16 */ OBJECT_MA1_LIMB_ARM_LEFT,
/* 17 */ OBJECT_MA1_LIMB_FOREARM_LEFT,
/* 18 */ OBJECT_MA1_LIMB_HAND_LEFT,
/* 19 */ OBJECT_MA1_LIMB_ARM_RIGHT,
/* 20 */ OBJECT_MA1_LIMB_FOREARM_RIGHT,
/* 21 */ OBJECT_MA1_LIMB_HAND_RIGHT
} ObjectMa1Limbs;
typedef struct EnMaYts {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x1F8];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnMaYtsActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ struct_800BD888_arg1 unk_1D8;
/* 0x200 */ s32 unk_200; // Set, but not used
/* 0x204 */ Vec3s limbDrawTbl[OBJECT_MA1_LIMB_TABLE_COUNT];
/* 0x28E */ char unk_28E[0x6];
/* 0x294 */ Vec3s transitionDrawTbl[OBJECT_MA1_LIMB_TABLE_COUNT];
/* 0x31E */ char unk_31E[0x8];
/* 0x326 */ s16 blinkTimer;
/* 0x328 */ s16 overrideEyeTexIndex; // If non-zero, then this index will be used instead of eyeTexIndex
/* 0x32A */ s16 eyeTexIndex;
/* 0x32C */ s16 unk_32C; // flag?
/* 0x32E */ s16 mouthTexIndex;
/* 0x330 */ s16 type;
/* 0x332 */ char unk_332[0x2];
/* 0x334 */ s16 endCreditsFlag;
/* 0x336 */ s16 hasBow;
/* 0x338 */ u16 textId;
} EnMaYts; // size = 0x33C
extern const ActorInit En_Ma_Yts_InitVars;
typedef enum {
/* 0 */ EN_NA_YTS_TYPE_BARN,
/* 1 */ EN_NA_YTS_TYPE_SITTING,
/* 2 */ EN_NA_YTS_TYPE_SLEEPING,
/* 3 */ EN_NA_YTS_TYPE_ENDCREDITS
} EnMaYtsType;
#define EN_MA_YTS_PARSE_TYPE(actor) (((actor->params)&0xF000) >> 12)
#define EN_MA_YTS_PARAM(enMaYtsType) ((enMaYtsType) << 12)
/**
* EN_NA_YTS_TYPE_BARN: In the barn, accompanying Cremia. Cremia's actor will handle her dialogue if spoken to.
* EN_NA_YTS_TYPE_SITTING: Having dinner or looking after the ranch.
* EN_NA_YTS_TYPE_SLEEPING: Sleeping. Can be seen in the second night in her house if the player failed the alien invasion.
* EN_NA_YTS_TYPE_ENDCREDITS: Used in the end credits sequence.
*/
#endif // Z_EN_MA_YTS_H
+2 -2
View File
@@ -77,9 +77,9 @@ extern AnimationHeader D_06002F20;
extern AnimationHeader D_06003AA8;
extern UNK_TYPE D_06008AE8;
extern UNK_TYPE D_06008AE8;
extern UNK_TYPE D_0600A068;
extern UNK_TYPE D_0600A068;
extern UNK_TYPE D_0600A468;
@@ -34,7 +34,7 @@ static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 180, ICHAIN_STOP),
};
Vec3f iceSmokeAccel = {0.0f, 0.0f, 0.0f}; // Readd as static when possible
Vec3f iceSmokeAccel = { 0.0f, 0.0f, 0.0f }; // Readd as static when possible
void ObjHsStump_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjHsStump* this = THIS;
+17 -17
View File
@@ -14745,28 +14745,28 @@
0x80B8CCB4:("func_80B8CCB4",),
0x80B8CCFC:("func_80B8CCFC",),
0x80B8CD3C:("EnGe2_Draw",),
0x80B8D030:("func_80B8D030",),
0x80B8D0BC:("func_80B8D0BC",),
0x80B8D030:("EnMaYts_UpdateEyes",),
0x80B8D0BC:("EnMaYts_ChangeAnim",),
0x80B8D12C:("func_80B8D12C",),
0x80B8D1E8:("func_80B8D1E8",),
0x80B8D2D8:("func_80B8D2D8",),
0x80B8D1E8:("EnMaYts_InitAnimation",),
0x80B8D2D8:("EnMaYts_CheckValidSpawn",),
0x80B8D3F8:("EnMaYts_Init",),
0x80B8D66C:("EnMaYts_Destroy",),
0x80B8D698:("func_80B8D698",),
0x80B8D6AC:("func_80B8D6AC",),
0x80B8D6BC:("func_80B8D6BC",),
0x80B8D6F8:("func_80B8D6F8",),
0x80B8D95C:("func_80B8D95C",),
0x80B8D970:("func_80B8D970",),
0x80B8D9E4:("func_80B8D9E4",),
0x80B8DA28:("func_80B8DA28",),
0x80B8DBB8:("func_80B8DBB8",),
0x80B8DD88:("func_80B8DD88",),
0x80B8D698:("EnMaYts_SetupDoNothing",),
0x80B8D6AC:("EnMaYts_DoNothing",),
0x80B8D6BC:("EnMaYts_SetupStartDialogue",),
0x80B8D6F8:("EnMaYts_StartDialogue",),
0x80B8D95C:("EnMaYts_SetupDialogueHandler",),
0x80B8D970:("EnMaYts_DialogueHandler",),
0x80B8D9E4:("EnMaYts_SetupEndCreditsHandler",),
0x80B8DA28:("EnMaYts_EndCreditsHandler",),
0x80B8DBB8:("EnMaYts_ChooseNextDialogue",),
0x80B8DD88:("EnMaYts_SetFaceExpression",),
0x80B8DDC0:("EnMaYts_Update",),
0x80B8DE44:("func_80B8DE44",),
0x80B8DF18:("func_80B8DF18",),
0x80B8DE44:("EnMaYts_OverrideLimbDraw",),
0x80B8DF18:("EnMaYts_PostLimbDraw",),
0x80B8DF9C:("EnMaYts_Draw",),
0x80B8E0BC:("func_80B8E0BC",),
0x80B8E0BC:("EnMaYts_DrawSleeping",),
0x80B8E520:("EnMaYto_Init",),
0x80B8E6E0:("func_80B8E6E0",),
0x80B8E84C:("func_80B8E84C",),
+3 -3
View File
@@ -16957,10 +16957,10 @@
0x80B8CEE4:("enGe2OverlayRelocations","u32","[82]",0x148),
0x80B8D02C:("enGe2OverlayInfoOffset","u32","",0x4),
0x80B8E150:("En_Ma_Yts_InitVars","UNK_TYPE1","",0x1),
0x80B8E170:("D_80B8E170","UNK_TYPE1","",0x1),
0x80B8E19C:("D_80B8E19C","UNK_TYPE1","",0x1),
0x80B8E170:("D_80B8E170","ColliderCylinderInit","",0x2C),
0x80B8E19C:("D_80B8E19C","CollisionCheckInfoInit2","",0xC),
0x80B8E1A8:("D_80B8E1A8","UNK_TYPE1","",0x1),
0x80B8E308:("D_80B8E308","UNK_TYPE1","",0x1),
0x80B8E308:("D_80B8E308","void*","",0x4),
0x80B8E318:("D_80B8E318","UNK_TYPE1","",0x1),
0x80B8E32C:("D_80B8E32C","UNK_TYPE2","",0x2),
0x80B8E330:("jtbl_D_80B8E330","UNK_PTR","",0x4),