mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-07 06:40:15 +00:00
En_Floormas OK (#97)
* EnFloorMas wip * floormaster formatting * floormaster wip * ovl_En_Floormas OK * pr recommendations * pr updates
This commit is contained in:
parent
5acc4e2f66
commit
0ebe904d0c
67 changed files with 1110 additions and 3575 deletions
File diff suppressed because it is too large
Load diff
|
@ -4,12 +4,22 @@
|
|||
#include <ultra64.h>
|
||||
#include <global.h>
|
||||
|
||||
struct EnFloormas;
|
||||
typedef struct EnFloormas EnFloormas;
|
||||
|
||||
typedef struct EnFloormas {
|
||||
typedef void (*EnFloormasActionFunc)(EnFloormas* this, GlobalContext* globalCtx);
|
||||
|
||||
struct EnFloormas{
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x1C8];
|
||||
} EnFloormas; // size = 0x0314
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ EnFloormasActionFunc actionFunc;
|
||||
/* 0x0194 */ s16 actionTimer;
|
||||
/* 0x0196 */ s16 actionTarget;
|
||||
/* 0x0198 */ s16 zOffset;
|
||||
/* 0x019A */ s16 smActionTimer;
|
||||
/* 0x019C */ Vec3s limbDrawTable[25];
|
||||
/* 0x0232 */ Vec3s transitionDrawTable[25];
|
||||
/* 0x02C8 */ ColliderCylinder collider;
|
||||
}; // size = 0x0314
|
||||
|
||||
extern const ActorInit En_Floormas_InitVars;
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ void EnLightbox_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
} else {
|
||||
if (thisx->speedXZ) {
|
||||
if (thisx->bgCheckFlags & 8) {
|
||||
thisx->posRot.rot.y = (thisx->posRot.rot.y + thisx->unk_7E) - thisx->posRot.rot.y;
|
||||
thisx->posRot.rot.y = (thisx->posRot.rot.y + thisx->wallPolyRot) - thisx->posRot.rot.y;
|
||||
Audio_PlaySoundGeneral(NA_SE_EV_BOMB_BOUND, &thisx->unk_E4, 4, &D_801333E0, &D_801333E0,
|
||||
&D_801333E8);
|
||||
thisx->speedXZ *= 0.7f;
|
||||
|
|
|
@ -1352,7 +1352,7 @@ void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
|
|||
f32* velocityY;
|
||||
f32* speedXZ;
|
||||
f32* gravity;
|
||||
s16 unk_7E;
|
||||
s16 wallPolyRot;
|
||||
s16 rotY;
|
||||
s32 temp_a1_2;
|
||||
s32 temp_a0;
|
||||
|
@ -1411,13 +1411,13 @@ void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
|
|||
speedXZ = &this->actor.speedXZ;
|
||||
if (*speedXZ != 0.0f) {
|
||||
rotY = this->actor.posRot.rot.y;
|
||||
unk_7E = this->actor.unk_7E;
|
||||
temp_a0 = (unk_7E * 2) - rotY;
|
||||
wallPolyRot = this->actor.wallPolyRot;
|
||||
temp_a0 = (wallPolyRot * 2) - rotY;
|
||||
temp_a1_2 = temp_a0 + 0x8000;
|
||||
if ((s16)((temp_a0 - unk_7E) + 0x8000) >= 0) {
|
||||
phi_v1 = (s16)(temp_a1_2 - unk_7E);
|
||||
if ((s16)((temp_a0 - wallPolyRot) + 0x8000) >= 0) {
|
||||
phi_v1 = (s16)(temp_a1_2 - wallPolyRot);
|
||||
} else {
|
||||
phi_v1 = -(s16)(temp_a1_2 - unk_7E);
|
||||
phi_v1 = -(s16)(temp_a1_2 - wallPolyRot);
|
||||
}
|
||||
if (phi_v1 < 0x4001) {
|
||||
if (*speedXZ >= (kREG(27) * 0.01f) + 3.0f) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue