1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-23 15:55:47 +00:00

Document EnGo2 known data

This commit is contained in:
feacur 2024-11-11 19:37:50 +01:00
parent 9be708d6b9
commit fc1009a0a6
2 changed files with 23 additions and 23 deletions

View file

@ -98,13 +98,13 @@ ActorProfile En_Go2_Profile = {
/**/ EnGo2_Draw,
};
static EnGo2DataStruct1 D_80A4816C[14] = {
static EnGo2ColliderData sColliderData[14] = {
{ 0, 0, 0, 68, 148 }, { 0, 0, 0, 24, 52 }, { 0, 320, 380, 400, 120 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 46, 90 },
{ 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 },
{ 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 }, { 0, 0, 0, 30, 68 },
};
static EnGo2DataStruct2 D_80A481F8[14] = {
static EnGo2ShapeData sShapeData[14] = {
{ 30.0f, 0.026f, 6, 60.0f }, { 24.0f, 0.008f, 6, 30.0f }, { 28.0f, 0.16f, 5, 380.0f }, { 28.0f, 0.01f, 7, 40.0f },
{ 30.0f, 0.015f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f },
{ 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f }, { 28.0f, 0.01f, 6, 30.0f },
@ -862,17 +862,17 @@ s32 func_80A44790(EnGo2* this, PlayState* play) {
void EnGo2_SetColliderDim(EnGo2* this) {
u8 index = ENGO2_GET_TYPE(this);
this->collider.dim.radius = D_80A4816C[index].radius;
this->collider.dim.height = D_80A4816C[index].height;
this->collider.dim.radius = sColliderData[index].radius;
this->collider.dim.height = sColliderData[index].height;
}
void EnGo2_SetShape(EnGo2* this) {
u8 index = ENGO2_GET_TYPE(this);
this->actor.shape.shadowScale = D_80A481F8[index].shape_unk_10;
Actor_SetScale(&this->actor, D_80A481F8[index].scale);
this->actor.attentionRangeType = D_80A481F8[index].actor_unk_1F;
this->interactRange = D_80A481F8[index].interactRange;
this->actor.shape.shadowScale = sShapeData[index].shadowScale;
Actor_SetScale(&this->actor, sShapeData[index].scale);
this->actor.attentionRangeType = sShapeData[index].attentionRangeType;
this->interactRange = sShapeData[index].interactRange;
this->interactRange += this->collider.dim.radius;
}
@ -883,10 +883,10 @@ void EnGo2_CheckCollision(EnGo2* this, PlayState* play) {
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y;
pos.z = this->actor.world.pos.z;
xzDist = D_80A4816C[ENGO2_GET_TYPE(this)].xzDist;
xzDist = sColliderData[ENGO2_GET_TYPE(this)].xzDist;
pos.x += (s16)(xzDist * Math_SinS(this->actor.shape.rot.y));
pos.z += (s16)(xzDist * Math_CosS(this->actor.shape.rot.y));
pos.y += D_80A4816C[ENGO2_GET_TYPE(this)].yDist;
pos.y += sColliderData[ENGO2_GET_TYPE(this)].yDist;
this->collider.dim.pos = pos;
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
@ -1609,14 +1609,14 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
#if OOT_VERSION >= PAL_1_1
CLEAR_INFTABLE(INFTABLE_10C);
#endif
this->collider.dim.height = (D_80A4816C[ENGO2_GET_TYPE(this)].height * 0.6f);
this->collider.dim.height = (sColliderData[ENGO2_GET_TYPE(this)].height * 0.6f);
EnGo2_SetupRolling(this, play);
this->isAwake = true;
}
break;
case GORON_CITY_ROLLING_BIG:
case GORON_DMT_ROLLING_SMALL:
this->collider.dim.height = (D_80A4816C[ENGO2_GET_TYPE(this)].height * 0.6f);
this->collider.dim.height = (sColliderData[ENGO2_GET_TYPE(this)].height * 0.6f);
EnGo2_SetupRolling(this, play);
break;
case GORON_FIRE_GENERIC:
@ -1673,11 +1673,11 @@ void EnGo2_ActionCurledUp(EnGo2* this, PlayState* play) {
}
if ((s32)this->skelAnime.curFrame == 0) {
this->collider.dim.height = (D_80A4816C[index].height * 0.6f);
this->collider.dim.height = (sColliderData[index].height * 0.6f);
} else {
height = D_80A4816C[index].height;
height = sColliderData[index].height;
this->collider.dim.height =
((D_80A4816C[index].height * 0.4f * (this->skelAnime.curFrame / this->skelAnime.startFrame)) +
((sColliderData[index].height * 0.4f * (this->skelAnime.curFrame / this->skelAnime.startFrame)) +
(height * 0.6f));
}
if (EnGo2_IsFreeingGoronInFire(this, play)) {
@ -1712,9 +1712,9 @@ void func_80A46B40(EnGo2* this, PlayState* play) {
}
func_80A454CC(this);
this->isUncurled = true;
this->collider.dim.height = D_80A4816C[index].height;
this->collider.dim.height = sColliderData[index].height;
} else {
height = D_80A4816C[index].height;
height = sColliderData[index].height;
this->collider.dim.height =
(s16)((height * 0.4f * (this->skelAnime.curFrame / this->skelAnime.endFrame)) + (height * 0.6f));
}

View file

@ -23,20 +23,20 @@ typedef void (*EnGo2ActionFunc)(struct EnGo2*, PlayState*);
// /* 0x0A */ GORON_FIRE_MAZE_UPPER,
// /* 0x0B */ GORON_FIRE_HIGHEST
typedef struct EnGo2DataStruct1 {
typedef struct EnGo2ColliderData {
s16 unused;
s16 yDist;
s16 xzDist;
s16 radius;
s16 height;
} EnGo2DataStruct1; // size = 0xA
} EnGo2ColliderData; // size = 0xA
typedef struct EnGo2DataStruct2 {
f32 shape_unk_10;
typedef struct EnGo2ShapeData {
f32 shadowScale;
f32 scale;
s8 actor_unk_1F;
s8 attentionRangeType;
f32 interactRange;
} EnGo2DataStruct2; // size = 0x10
} EnGo2ShapeData; // size = 0x10
typedef struct EnGo2DustEffectData {
u8 initialTimer;