1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-06-08 17:41:56 +00:00
This commit is contained in:
blackgamma7 2025-06-08 00:28:26 +09:00 committed by GitHub
commit 81d8403a9a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 471 additions and 415 deletions

View file

@ -1085,7 +1085,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act
D_801211D4[0].atTargetInit.x = actor->focus.pos.x;
D_801211D4[0].atTargetInit.y = actor->focus.pos.y - 5.0f;
D_801211D4[0].atTargetInit.z = actor->focus.pos.z;
spC0 = ((EnSw*)actor)->unk_364;
spC0 = ((EnSw*)actor)->surfaceNormal;
PRINTF("%s(%d): xyz_t: %s (%f %f %f)\n", "../z_onepointdemo.c", 1671, "&cp", spC0.x, spC0.y, spC0.z);
D_801211D4[0].eyeTargetInit.x = (actor->focus.pos.x + (120.0f * spC0.x)) - (Rand_ZeroOne() * 20.0f);
D_801211D4[0].eyeTargetInit.y = actor->focus.pos.y + (120.0f * spC0.y) + 20.0f;

File diff suppressed because it is too large Load diff

View file

@ -14,39 +14,51 @@ typedef struct EnSw {
/* 0x0190 */ EnSwActionFunc actionFunc;
/* 0x0194 */ ColliderJntSph collider;
/* 0x01B4 */ ColliderJntSphElement colliderElements[1];
/* 0x01F4 */ Color_RGBA8 unk_1F4;
/* 0x01F4 */ Color_RGBA8 limb4Color; // never set past black.
/* 0x01F8 */ Vec3s jointTable[30];
/* 0x02AC */ Vec3s morphTable[30];
/* 0x0360 */ u8 unk_360;
/* 0x0364 */ Vec3f unk_364;
/* 0x0370 */ Vec3f unk_370;
/* 0x037C */ Vec3f unk_37C;
/* 0x0388 */ s16 unk_388;
/* 0x038A */ s16 unk_38A;
/* 0x038C */ s16 unk_38C;
/* 0x038E */ s16 unk_38E;
/* 0x0390 */ s16 unk_390;
/* 0x0392 */ s16 unk_392;
/* 0x0394 */ s16 unk_394;
/* 0x0396 */ char unk_396[0x42];
/* 0x03D8 */ MtxF unk_3D8;
/* 0x0360 */ u8 goldInAir; // set when revealed, unset when landing.
/* 0x0364 */ Vec3f surfaceNormal; // normal of wall/floor/ceiling it's on.
/* 0x0370 */ Vec3f unk_370; // used for rotate calculation
/* 0x037C */ Vec3f unk_37C; // used for rotate calculation
/* 0x0388 */ s16 animTimer;
/* 0x038A */ s16 animVar; // used to determine crawl and "death bounce" animations.
/* 0x038C */ s16 waitTimer;
/* 0x038E */ s16 crawlTimer;
/* 0x0390 */ s16 attackTimer;
/* 0x0392 */ s16 painTimer;
/* 0x0394 */ s16 deathFlames;
/* 0x0396 */ char unk_396[0x42]; //another Mtx(F)?
/* 0x03D8 */ MtxF rotMtxF;
/* 0x0418 */ char unk_418[8];
/* 0x0420 */ f32 unk_420;
/* 0x0420 */ f32 rotateMag;
/* 0x0424 */ char unk_424[0x8];
/* 0x042C */ u8 unk_42C;
/* 0x0430 */ struct CollisionPoly* unk_430;
/* 0x0434 */ Vec3f unk_434;
/* 0x0440 */ s16 unk_440;
/* 0x0442 */ s16 unk_442;
/* 0x0444 */ s16 unk_444;
/* 0x0446 */ s16 unk_446;
/* 0x0448 */ Vec3f unk_448;
/* 0x0454 */ Vec3f unk_454;
/* 0x0460 */ Vec3f unk_460;
/* 0x046C */ Vec3f unk_46C;
/* 0x0478 */ Vec3f unk_478;
/* 0x0484 */ Vec3f unk_484;
/* 0x042C */ u8 moveGoldBool; // set during EnSw_MoveGold, rever read.
/* 0x0430 */ struct CollisionPoly* wallPoly;
/* 0x0434 */ Vec3f unk_434; // set during EnSW_LineTestWall, never read. another target pos?
/* 0x0440 */ s16 sfxTimer;
/* 0x0442 */ s16 dashTimer;
/* 0x0444 */ s16 rotZTarget;
/* 0x0448 */ Vec3f targetPos;
/* 0x0454 */ Vec3f eyeLine0; // used for line tests of walls/player
/* 0x0460 */ Vec3f eyeLine1;
/* 0x046C */ Vec3f eyeLine2;
/* 0x0478 */ Vec3f eyeLine3;
/* 0x0484 */ Vec3f wallCast;
/* 0x0490 */ char unk_490[0x48];
} EnSw; // size = 0x04D8
// Skullwalltula type stored in last 3 bits of params.
#define ENSW_GET_TYPE(thisx) PARAMS_GET_S(thisx->params,13,3)
// version of the macro used for the whole entity struct.
#define ENSW_GET_TYPE_EN(this) PARAMS_GET_S(this->actor.params,13,3)
typedef enum {
SW_TYPE_NORMAL, // normal Skull(wall)tula
SW_TYPE_GOLD_DEFAULT, // normal Gold Skultula, found in dungeons
SW_TYPE_GOLD_NIGHT, // nocturnal Gold Skultula, found outside
SW_TYPE_GOLD_HIDDEN_SOIL, // found by using bugs on soil patches
SW_TYPE_GOLD_HIDDEN_TREE, // found by hitting trees.
} EnSwType;
#endif