mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-10 19:20:13 +00:00
Match even more retail actors (#1720)
* Match even more actors
* Add macro for DebugDisplay_AddObject
* Prefer OOT_DEBUG &&
* Better EnReeba_Stunned match
* Revert "Add macro for DebugDisplay_AddObject"
This reverts commit 8197823abb
.
* Prefer OOT_DEBUG && some more
* Reformatting
* Add fake match comment
This commit is contained in:
parent
1ba2d6d0f9
commit
b32d0a91ed
26 changed files with 217 additions and 179 deletions
|
@ -99,7 +99,7 @@ void EnAnubiceTag_Update(Actor* thisx, PlayState* play) {
|
|||
void EnAnubiceTag_Draw(Actor* thisx, PlayState* play) {
|
||||
EnAnubiceTag* this = (EnAnubiceTag*)thisx;
|
||||
|
||||
if (BREG(0) != 0) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -282,7 +282,7 @@ void EnChanger_Update(Actor* thisx, PlayState* play) {
|
|||
this->timer--;
|
||||
}
|
||||
|
||||
if (BREG(0)) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 255, 255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -185,8 +185,8 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
|
|||
case PLAYER_MASK_ZORA:
|
||||
case PLAYER_MASK_GERUDO:
|
||||
rand9 = Rand_ZeroFloat(8.99f);
|
||||
maskIdx = Player_GetMask(play);
|
||||
maskIdx--;
|
||||
// fake match, possible alternative is `maskIdx = Player_GetMask(play); maskIdx--;` on one line
|
||||
maskIdx = (s16)Player_GetMask(play) - 1;
|
||||
if (rand9 == 8) {
|
||||
ignore = true;
|
||||
delay = 8;
|
||||
|
@ -265,6 +265,9 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
|
|||
|
||||
void EnDntDemo_Results(EnDntDemo* this, PlayState* play) {
|
||||
s32 i;
|
||||
s16 offsetAngle;
|
||||
Vec3f leaderPos;
|
||||
f32 offsetDist;
|
||||
|
||||
if (this->leaderSignal != DNT_SIGNAL_NONE) {
|
||||
for (i = 0; i < 9; i++) {
|
||||
|
@ -284,9 +287,8 @@ void EnDntDemo_Results(EnDntDemo* this, PlayState* play) {
|
|||
this->actionFunc = EnDntDemo_Prize;
|
||||
} else if (this->prize == DNT_PRIZE_STICK) {
|
||||
for (i = 0; i < 9; i++) {
|
||||
s16 offsetAngle = -this->leader->actor.shape.rot.y;
|
||||
Vec3f leaderPos = this->leader->actor.world.pos;
|
||||
f32 offsetDist;
|
||||
offsetAngle = -this->leader->actor.shape.rot.y;
|
||||
leaderPos = this->leader->actor.world.pos;
|
||||
|
||||
if (!(i & 1)) {
|
||||
offsetAngle -= 0x59D8;
|
||||
|
@ -324,7 +326,8 @@ void EnDntDemo_Update(Actor* thisx, PlayState* play) {
|
|||
this->unkTimer1--;
|
||||
}
|
||||
this->actionFunc(this, play);
|
||||
if (BREG(0)) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (this->debugArrowTimer != 0) {
|
||||
if (!(this->debugArrowTimer & 1)) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
|
|
|
@ -51,6 +51,8 @@ void EnEncount1_Init(Actor* thisx, PlayState* play) {
|
|||
spawnRange = 120.0f + (40.0f * this->actor.world.rot.z);
|
||||
this->spawnRange = spawnRange;
|
||||
|
||||
if (1) {}
|
||||
|
||||
PRINTF("\n\n");
|
||||
// "It's an enemy spawner!"
|
||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 敵発生ゾーンでた! ☆☆☆☆☆ %x\n" VT_RST, this->actor.params);
|
||||
|
@ -322,7 +324,7 @@ void EnEncount1_Update(Actor* thisx, PlayState* play) {
|
|||
|
||||
this->updateFunc(this, play);
|
||||
|
||||
if (BREG(0) != 0) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (this->outOfRangeTimer != 0) {
|
||||
if ((this->outOfRangeTimer & 1) == 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
|
|
|
@ -283,7 +283,8 @@ void FireRock_WaitSpawnRocksFromCeiling(EnFireRock* this, PlayState* play) {
|
|||
} else {
|
||||
this->playerNearby = 0;
|
||||
}
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 0, 255, 0, 255, 4, play->state.gfxCtx);
|
||||
|
@ -309,6 +310,7 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) {
|
|||
s16 setCollision;
|
||||
Player* player = GET_PLAYER(play);
|
||||
Actor* playerActor = &GET_PLAYER(play)->actor;
|
||||
f32 temp;
|
||||
|
||||
if (this->timer2 != 0) {
|
||||
this->timer2--;
|
||||
|
@ -319,8 +321,6 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc(this, play);
|
||||
|
||||
if (this->type != FIRE_ROCK_CEILING_SPOT_SPAWNER) {
|
||||
f32 temp;
|
||||
|
||||
this->rockRotation.x += this->angularVelocity.x;
|
||||
this->rockRotation.y += this->angularVelocity.y;
|
||||
this->rockRotation.z += this->angularVelocity.z;
|
||||
|
|
|
@ -723,20 +723,17 @@ void EnFr_ListeningToOcarinaNotes(EnFr* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnFr_ChildSong(EnFr* this, PlayState* play) {
|
||||
EnFr* frog;
|
||||
u8 songIndex;
|
||||
|
||||
if (this->jumpCounter < 48) {
|
||||
if (this->jumpCounter % 4 == 0) {
|
||||
EnFr_SetupJumpingUp(this, sJumpOrder[(this->jumpCounter >> 2) & 7]);
|
||||
}
|
||||
} else {
|
||||
songIndex = this->songIndex;
|
||||
if (songIndex == FROG_STORMS) {
|
||||
if (this->songIndex == FROG_STORMS) {
|
||||
this->actor.textId = 0x40AA;
|
||||
EnFr_SetupReward(this, play, false);
|
||||
} else if (!FROG_HAS_SONG_BEEN_PLAYED(songIndex)) {
|
||||
frog = sEnFrPointers.frogs[sSongToFrog[songIndex]];
|
||||
} else if (!FROG_HAS_SONG_BEEN_PLAYED(this->songIndex)) {
|
||||
EnFr* frog = sEnFrPointers.frogs[sSongToFrog[this->songIndex]];
|
||||
|
||||
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
||||
if (frog->actionFunc == EnFr_ChooseJumpFromLogSpot) {
|
||||
frog->isJumpingUp = true;
|
||||
|
@ -800,10 +797,10 @@ void EnFr_CheckOcarinaInputFrogSong(u8 ocarinaNote) {
|
|||
|
||||
void EnFr_DeactivateButterfly(void) {
|
||||
s32 frogIndex;
|
||||
EnFr* frog;
|
||||
|
||||
for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
|
||||
frog = sEnFrPointers.frogs[frogIndex];
|
||||
EnFr* frog = sEnFrPointers.frogs[frogIndex];
|
||||
|
||||
frog->isButterflyDrawn = false;
|
||||
}
|
||||
}
|
||||
|
@ -863,21 +860,18 @@ void EnFr_OcarinaMistake(EnFr* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnFr_ContinueFrogSong(EnFr* this, PlayState* play) {
|
||||
s32 counter;
|
||||
EnFr* frog;
|
||||
s32 i;
|
||||
|
||||
if (this->frogSongTimer == 0) {
|
||||
EnFr_OcarinaMistake(this, play);
|
||||
} else {
|
||||
this->frogSongTimer--;
|
||||
if (play->msgCtx.msgMode == MSGMODE_FROGS_PLAYING) {
|
||||
counter = 0;
|
||||
s32 counter = 0;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sEnFrPointers.frogs); i++) {
|
||||
frog = sEnFrPointers.frogs[i];
|
||||
if (frog != NULL && frog->actionFunc == EnFr_ChooseJumpFromLogSpot) {
|
||||
continue;
|
||||
} else {
|
||||
EnFr* frog = sEnFrPointers.frogs[i];
|
||||
|
||||
if (frog == NULL || frog->actionFunc != EnFr_ChooseJumpFromLogSpot) {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
|
@ -971,8 +965,6 @@ void EnFr_SetReward(EnFr* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnFr_Deactivate(EnFr* this, PlayState* play) {
|
||||
EnFr* frogLoop1;
|
||||
EnFr* frogLoop2;
|
||||
s32 frogIndex;
|
||||
|
||||
// Originally was going to have separate butterfly actor
|
||||
|
@ -983,28 +975,30 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) {
|
|||
}
|
||||
|
||||
for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
|
||||
frogLoop1 = sEnFrPointers.frogs[frogIndex];
|
||||
if (frogLoop1 == NULL) {
|
||||
EnFr* frog = sEnFrPointers.frogs[frogIndex];
|
||||
|
||||
if (frog == NULL) {
|
||||
PRINTF(VT_COL(RED, WHITE));
|
||||
// "There are no frogs!?"
|
||||
PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1604);
|
||||
PRINTF(VT_RST);
|
||||
return;
|
||||
} else if (frogLoop1->isDeactivating != true) {
|
||||
} else if (frog->isDeactivating != true) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
|
||||
frogLoop2 = sEnFrPointers.frogs[frogIndex];
|
||||
if (frogLoop2 == NULL) {
|
||||
EnFr* frog = sEnFrPointers.frogs[frogIndex];
|
||||
|
||||
if (frog == NULL) {
|
||||
PRINTF(VT_COL(RED, WHITE));
|
||||
// "There are no frogs!?"
|
||||
PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1618);
|
||||
PRINTF(VT_RST);
|
||||
return;
|
||||
}
|
||||
frogLoop2->isDeactivating = false;
|
||||
frog->isDeactivating = false;
|
||||
}
|
||||
|
||||
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
||||
|
@ -1035,11 +1029,12 @@ void EnFr_SetIdle(EnFr* this, PlayState* play) {
|
|||
void EnFr_UpdateIdle(Actor* thisx, PlayState* play) {
|
||||
EnFr* this = (EnFr*)thisx;
|
||||
|
||||
if (BREG(0)) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
}
|
||||
|
||||
this->jumpCounter++;
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,8 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) {
|
|||
s32 pad;
|
||||
EnGSwitch* this = (EnGSwitch*)thisx;
|
||||
|
||||
if (play) {}
|
||||
|
||||
this->type = (this->actor.params >> 0xC) & 0xF;
|
||||
this->switchFlag = this->actor.params & 0x3F;
|
||||
this->numEffects = EN_GSWITCH_EFFECT_COUNT;
|
||||
|
@ -443,7 +445,8 @@ void EnGSwitch_Update(Actor* thisx, PlayState* play) {
|
|||
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
if (BREG(0) && (this->type == ENGSWITCH_SILVER_TRACKER)) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0 && (this->type == ENGSWITCH_SILVER_TRACKER)) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
|
@ -456,6 +459,9 @@ void EnGSwitch_DrawPot(Actor* thisx, PlayState* play) {
|
|||
|
||||
if (!this->broken) {
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 918);
|
||||
|
||||
if (1) {}
|
||||
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 925),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
@ -491,13 +497,13 @@ void EnGSwitch_DrawRupee(Actor* thisx, PlayState* play) {
|
|||
void EnGSwitch_SpawnEffects(EnGSwitch* this, Vec3f* pos, s16 scale, s16 colorIdx) {
|
||||
EnGSwitchEffect* effect = this->effects;
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < this->numEffects; i++, effect++) {
|
||||
if (!effect->flag) {
|
||||
Vec3f baseVel;
|
||||
f32 pitch;
|
||||
f32 yaw;
|
||||
|
||||
for (i = 0; i < this->numEffects; i++, effect++) {
|
||||
if (!effect->flag) {
|
||||
|
||||
effect->pos = *pos;
|
||||
effect->scale = scale;
|
||||
effect->colorIdx = colorIdx;
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
#define FLAGS ACTOR_FLAG_4
|
||||
|
||||
void EnHeishi1_Init(Actor* thisx, PlayState* play);
|
||||
void EnHeishi1_Init(Actor* thisx, PlayState* play2);
|
||||
void EnHeishi1_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnHeishi1_Update(Actor* thisx, PlayState* play);
|
||||
void EnHeishi1_Draw(Actor* thisx, PlayState* play);
|
||||
|
@ -63,8 +63,8 @@ static s32 sBgCamIndices[] = {
|
|||
|
||||
static s16 sWaypoints[] = { 0, 4, 1, 5, 2, 6, 3, 7 };
|
||||
|
||||
void EnHeishi1_Init(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
void EnHeishi1_Init(Actor* thisx, PlayState* play2) {
|
||||
PlayState* play = play2;
|
||||
EnHeishi1* this = (EnHeishi1*)thisx;
|
||||
Vec3f rupeePos;
|
||||
s32 i;
|
||||
|
@ -182,7 +182,7 @@ void EnHeishi1_Walk(EnHeishi1* this, PlayState* play) {
|
|||
|
||||
Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale, this->headTurnSpeedMax);
|
||||
|
||||
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
if (OOT_DEBUG && (this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
PRINTF(VT_FGCOL(RED) " 種類 %d\n" VT_RST, this->path);
|
||||
PRINTF(VT_FGCOL(RED) " ぱす %d\n" VT_RST, this->waypoint);
|
||||
PRINTF(VT_FGCOL(RED) " 反転 %d\n" VT_RST, this->bodyTurnSpeed);
|
||||
|
@ -300,7 +300,7 @@ void EnHeishi1_Wait(EnHeishi1* this, PlayState* play) {
|
|||
Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale,
|
||||
this->headTurnSpeedMax + this->headTurnSpeedMax);
|
||||
|
||||
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
if (OOT_DEBUG && (this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
PRINTF(VT_FGCOL(GREEN) " 種類 %d\n" VT_RST, this->path);
|
||||
PRINTF(VT_FGCOL(GREEN) " ぱす %d\n" VT_RST, this->waypoint);
|
||||
PRINTF(VT_FGCOL(GREEN) " 反転 %d\n" VT_RST, this->bodyTurnSpeed);
|
||||
|
@ -490,7 +490,7 @@ void EnHeishi1_Draw(Actor* thisx, PlayState* play) {
|
|||
this);
|
||||
func_80033C30(&this->actor.world.pos, &matrixScale, 0xFF, play);
|
||||
|
||||
if ((this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
if (OOT_DEBUG && (this->path == BREG(1)) && (BREG(0) != 0)) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y + 100.0f, this->actor.world.pos.z,
|
||||
17000, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f, 1.0f, 255, 0, 0,
|
||||
255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -116,7 +116,7 @@ void func_80A90264(EnKakasi2* this, PlayState* play) {
|
|||
|
||||
this->unk_194++;
|
||||
|
||||
if ((BREG(1) != 0) && (this->actor.xzDistToPlayer < this->maxSpawnDistance.x) &&
|
||||
if (OOT_DEBUG && (BREG(1) != 0) && (this->actor.xzDistToPlayer < this->maxSpawnDistance.x) &&
|
||||
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y)) {
|
||||
|
||||
this->actor.draw = func_80A90948;
|
||||
|
@ -213,7 +213,8 @@ void EnKakasi2_Update(Actor* thisx, PlayState* play2) {
|
|||
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
|
||||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
||||
}
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (BREG(5) != 0) {
|
||||
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ this->actor.player_distance ☆☆☆☆☆ %f\n" VT_RST, this->actor.xzDistToPlayer);
|
||||
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ this->hosei.x ☆☆☆☆☆ %f\n" VT_RST, this->maxSpawnDistance.x);
|
||||
|
|
|
@ -115,7 +115,8 @@ void EnOkarinaEffect_Update(Actor* thisx, PlayState* play) {
|
|||
EnOkarinaEffect* this = (EnOkarinaEffect*)thisx;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 0xFF, 0, 0xFF, 0xFF, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -318,7 +318,8 @@ void EnOkarinaTag_Update(Actor* thisx, PlayState* play) {
|
|||
EnOkarinaTag* this = (EnOkarinaTag*)thisx;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (this->unk_15A != 0) {
|
||||
if (!(this->unk_15A & 1)) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
|
|
|
@ -126,9 +126,9 @@ void EnReeba_Init(Actor* thisx, PlayState* play) {
|
|||
this->scale = 0.04f;
|
||||
|
||||
if (this->type != LEEVER_TYPE_SMALL) {
|
||||
this->scale *= 1.5f;
|
||||
this->collider.dim.radius = 35;
|
||||
this->collider.dim.height = 45;
|
||||
this->scale *= 1.5f;
|
||||
// "Reeba Boss Appears %f"
|
||||
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ リーバぼす登場 ☆☆☆☆☆ %f\n" VT_RST, this->scale);
|
||||
this->actor.colChkInfo.health = 20;
|
||||
|
@ -399,17 +399,18 @@ void EnReeba_SetupStunned(EnReeba* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnReeba_Stunned(EnReeba* this, PlayState* play) {
|
||||
Vec3f pos;
|
||||
f32 scale;
|
||||
|
||||
if (this->waitTimer != 0) {
|
||||
if (this->actor.speed < 0.0f) {
|
||||
this->actor.speed += 1.0f;
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
this->actor.speed = 0.0f;
|
||||
|
||||
if ((this->stunType == LEEVER_STUN_OTHER) || (this->actor.colChkInfo.health != 0)) {
|
||||
Vec3f pos;
|
||||
f32 scale;
|
||||
|
||||
if (this->stunType == LEEVER_STUN_ICE) {
|
||||
pos.x = this->actor.world.pos.x + Rand_CenteredFloat(20.0f);
|
||||
pos.y = this->actor.world.pos.y + Rand_CenteredFloat(20.0f);
|
||||
|
@ -425,12 +426,13 @@ void EnReeba_Stunned(EnReeba* this, PlayState* play) {
|
|||
|
||||
this->waitTimer = 66;
|
||||
this->actionfunc = EnReeba_StunRecover;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
this->waitTimer = 30;
|
||||
this->actionfunc = EnReeba_StunDie;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnReeba_StunDie(EnReeba* this, PlayState* play) {
|
||||
Vec3f pos;
|
||||
|
@ -693,7 +695,7 @@ void EnReeba_Draw(Actor* thisx, PlayState* play) {
|
|||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_en_reeba.c", 1088);
|
||||
|
||||
if (BREG(0)) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
Vec3f debugPos;
|
||||
|
||||
debugPos.x = (Math_SinS(this->actor.world.rot.y) * 30.0f) + this->actor.world.pos.x;
|
||||
|
|
|
@ -364,7 +364,6 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) {
|
|||
EnSkj* this = (EnSkj*)thisx;
|
||||
PlayState* play = play2;
|
||||
s32 pad;
|
||||
Player* player;
|
||||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
switch (type) {
|
||||
|
@ -445,13 +444,18 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) {
|
|||
this->actor.gravity = -1.0f;
|
||||
EnSkj_CalculateCenter(this);
|
||||
|
||||
player = GET_PLAYER(play);
|
||||
#if OOT_DEBUG
|
||||
{
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
PRINTF("Player_X : %f\n", player->actor.world.pos.x);
|
||||
PRINTF("Player_Z : %f\n", player->actor.world.pos.z);
|
||||
PRINTF("World_X : %f\n", this->actor.world.pos.x);
|
||||
PRINTF("World_Z : %f\n", this->actor.world.pos.z);
|
||||
PRINTF("Center_X : %f\n", this->center.x);
|
||||
PRINTF("Center_Z : %f\n\n", this->center.z);
|
||||
}
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -1345,7 +1349,7 @@ void EnSkj_SariasSongShortStumpUpdate(Actor* thisx, PlayState* play) {
|
|||
|
||||
D_80B01EA0 = Actor_TalkOfferAccepted(&this->actor, play);
|
||||
|
||||
if (BREG(0) != 0) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
|
@ -1502,15 +1506,14 @@ void EnSkj_OfferNextRound(EnSkj* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void EnSkj_WaitForOfferResponse(EnSkj* this, PlayState* play) {
|
||||
Player* player;
|
||||
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(play)) {
|
||||
switch (play->msgCtx.choiceIndex) {
|
||||
case 0: // yes
|
||||
player = GET_PLAYER(play);
|
||||
case 0: { // yes
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
player->stateFlags3 |= PLAYER_STATE3_5; // makes player take ocarina out right away after closing box
|
||||
this->actionFunc = EnSkj_SetupWaitForOcarina;
|
||||
break;
|
||||
} break;
|
||||
case 1: // no
|
||||
this->actionFunc = EnSkj_CleanupOcarinaGame;
|
||||
break;
|
||||
|
@ -1587,11 +1590,13 @@ void EnSkj_OcarinaMinigameShortStumpUpdate(Actor* thisx, PlayState* play) {
|
|||
this->actor.focus.pos.y = -90.0f;
|
||||
this->actor.focus.pos.z = 450.0f;
|
||||
|
||||
#if OOT_DEBUG
|
||||
if (BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
}
|
||||
#endif
|
||||
|
||||
this->actionFunc(this, play);
|
||||
|
||||
|
|
|
@ -342,7 +342,8 @@ void EnSyatekiItm_Update(Actor* thisx, PlayState* play) {
|
|||
if (this->unkTimer != 0) {
|
||||
this->unkTimer--;
|
||||
}
|
||||
if (BREG(0)) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -147,7 +147,7 @@ void EnWallTubo_Update(Actor* thisx, PlayState* play) {
|
|||
|
||||
this->actionFunc(this, play);
|
||||
|
||||
if (BREG(0)) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 0, 0, 255, 255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -326,7 +326,8 @@ void EnWeatherTag_Update(Actor* thisx, PlayState* play) {
|
|||
EnWeatherTag* this = (EnWeatherTag*)thisx;
|
||||
|
||||
this->actionFunc(this, play);
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 255, 0, 255, 255, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -206,15 +206,18 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
void EnWonderItem_MultitagFree(EnWonderItem* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
s32 prevTagFlags = this->tagFlags;
|
||||
s16 prevTagFlags = this->tagFlags;
|
||||
s32 i;
|
||||
s32 mask;
|
||||
f32 dx;
|
||||
f32 dy;
|
||||
f32 dz;
|
||||
|
||||
for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) {
|
||||
if (!(prevTagFlags & mask)) {
|
||||
f32 dx = player->actor.world.pos.x - sTagPointsFree[i].x;
|
||||
f32 dy = player->actor.world.pos.y - sTagPointsFree[i].y;
|
||||
f32 dz = player->actor.world.pos.z - sTagPointsFree[i].z;
|
||||
dx = player->actor.world.pos.x - sTagPointsFree[i].x;
|
||||
dy = player->actor.world.pos.y - sTagPointsFree[i].y;
|
||||
dz = player->actor.world.pos.z - sTagPointsFree[i].z;
|
||||
|
||||
if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) {
|
||||
this->tagFlags |= mask;
|
||||
|
@ -222,11 +225,14 @@ void EnWonderItem_MultitagFree(EnWonderItem* this, PlayState* play) {
|
|||
this->timer = this->timerMod + 81;
|
||||
return;
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
if (BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(sTagPointsFree[i].x, sTagPointsFree[i].y, sTagPointsFree[i].z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f,
|
||||
1.0f, 1.0f, 0, 255, 0, 255, 4, play->state.gfxCtx);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (this->timer == 1) {
|
||||
|
@ -269,15 +275,18 @@ void EnWonderItem_ProximitySwitch(EnWonderItem* this, PlayState* play) {
|
|||
|
||||
void EnWonderItem_MultitagOrdered(EnWonderItem* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
s32 prevTagFlags = this->tagFlags;
|
||||
s16 prevTagFlags = this->tagFlags;
|
||||
s32 i;
|
||||
s32 mask;
|
||||
f32 dx;
|
||||
f32 dy;
|
||||
f32 dz;
|
||||
|
||||
for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) {
|
||||
if (!(prevTagFlags & mask)) {
|
||||
f32 dx = player->actor.world.pos.x - sTagPointsOrdered[i].x;
|
||||
f32 dy = player->actor.world.pos.y - sTagPointsOrdered[i].y;
|
||||
f32 dz = player->actor.world.pos.z - sTagPointsOrdered[i].z;
|
||||
dx = player->actor.world.pos.x - sTagPointsOrdered[i].x;
|
||||
dy = player->actor.world.pos.y - sTagPointsOrdered[i].y;
|
||||
dz = player->actor.world.pos.z - sTagPointsOrdered[i].z;
|
||||
|
||||
if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) {
|
||||
if (prevTagFlags & mask) {
|
||||
|
@ -292,11 +301,15 @@ void EnWonderItem_MultitagOrdered(EnWonderItem* this, PlayState* play) {
|
|||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
} else if (BREG(0) != 0) {
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
if (BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(sTagPointsOrdered[i].x, sTagPointsOrdered[i].y, sTagPointsOrdered[i].z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f,
|
||||
1.0f, 1.0f, 0, 0, 255, 255, 4, play->state.gfxCtx);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (this->timer == 1) {
|
||||
|
@ -358,7 +371,8 @@ void EnWonderItem_Update(Actor* thisx, PlayState* play) {
|
|||
if (this->wonderMode > 12) {
|
||||
colorIndex = 0;
|
||||
}
|
||||
if (BREG(0) != 0) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, debugArrowColors[colorIndex], debugArrowColors[colorIndex + 1],
|
||||
|
|
|
@ -18,7 +18,7 @@ typedef struct EnWonderItem {
|
|||
/* 0x015A */ s16 dropCount;
|
||||
/* 0x015C */ s16 timer;
|
||||
/* 0x015E */ s16 tagFlags;
|
||||
/* 0x015A */ s16 tagCount;
|
||||
/* 0x0160 */ s16 tagCount;
|
||||
/* 0x0162 */ s16 switchFlag;
|
||||
/* 0x0164 */ char unk_164[4];
|
||||
/* 0x0168 */ s16 nextTag;
|
||||
|
|
|
@ -85,8 +85,8 @@ void func_80B391CC(EnWonderTalk* this, PlayState* play) {
|
|||
PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 日記帳スタート! ☆☆☆☆☆ \n" VT_RST);
|
||||
this->actor.textId = 0x5002;
|
||||
this->unk_156 = TEXT_STATE_CHOICE;
|
||||
this->height = 30.0f;
|
||||
this->unk_15C = 40.0f;
|
||||
this->height = 30.0f;
|
||||
// "Attention coordinates"
|
||||
PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 30.0f);
|
||||
break;
|
||||
|
@ -239,7 +239,7 @@ void EnWonderTalk_Update(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc(this, play);
|
||||
Actor_SetFocus(&this->actor, this->height);
|
||||
|
||||
if (BREG(0) != 0) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (this->unk_15A != 0) {
|
||||
if ((this->unk_15A & 1) == 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
|
|
|
@ -130,7 +130,8 @@ void func_80B3A15C(EnWonderTalk2* this, PlayState* play) {
|
|||
|
||||
if (!((this->actor.xzDistToPlayer > 40.0f + this->triggerRange) ||
|
||||
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) > 100.0f) || (yawDiff >= 0x4000))) {
|
||||
if (this->unk_158 >= 2) {
|
||||
|
||||
if (OOT_DEBUG && this->unk_158 >= 2) {
|
||||
PRINTF("\n\n");
|
||||
// "Transparent Message Kimi Set"
|
||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 透明メッセージ君せっと %x\n" VT_RST, this->actor.params);
|
||||
|
@ -218,7 +219,8 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) {
|
|||
if (((this->actor.xzDistToPlayer < (40.0f + this->triggerRange)) &&
|
||||
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 100.0f)) &&
|
||||
!Play_InCsMode(play)) {
|
||||
if (this->unk_158 >= 2) {
|
||||
|
||||
if (OOT_DEBUG && this->unk_158 >= 2) {
|
||||
PRINTF("\n\n");
|
||||
// "Transparent Message Kimi Seto"
|
||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 透明メッセージ君せっと %x\n" VT_RST, this->actor.params);
|
||||
|
@ -249,6 +251,7 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) {
|
|||
|
||||
PRINTF("\n\n");
|
||||
}
|
||||
|
||||
this->unk_158 = 0;
|
||||
if (!this->unk_156) {
|
||||
Message_StartTextbox(play, this->actor.textId, NULL);
|
||||
|
@ -275,7 +278,7 @@ void EnWonderTalk2_Update(Actor* thisx, PlayState* play) {
|
|||
|
||||
Actor_SetFocus(&this->actor, this->height);
|
||||
|
||||
if (BREG(0) != 0) {
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
if (this->unk_158 != 0) {
|
||||
if ((this->unk_158 & 1) == 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
|
|
|
@ -306,18 +306,13 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
|
|||
PlayState* play = play2;
|
||||
EnWood02* this = (EnWood02*)thisx;
|
||||
f32 wobbleAmplitude;
|
||||
u8 new_var;
|
||||
u8 phi_v0;
|
||||
s32 pad;
|
||||
Vec3f dropsSpawnPt;
|
||||
s32 i;
|
||||
s32 leavesParams;
|
||||
|
||||
// Despawn extra trees in a group if out of range
|
||||
if ((this->spawnType == WOOD_SPAWN_SPAWNED) && (this->actor.parent != NULL)) {
|
||||
if (!(this->actor.flags & ACTOR_FLAG_6)) {
|
||||
new_var = this->unk_14E[0];
|
||||
phi_v0 = 0;
|
||||
u8 new_var = this->unk_14E[0];
|
||||
u8 phi_v0 = 0;
|
||||
s32 pad;
|
||||
|
||||
if (this->unk_14C < 0) {
|
||||
phi_v0 = 0x80;
|
||||
|
@ -338,7 +333,8 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
|
|||
}
|
||||
|
||||
if (this->actor.home.rot.y != 0) {
|
||||
dropsSpawnPt = this->actor.world.pos;
|
||||
Vec3f dropsSpawnPt = this->actor.world.pos;
|
||||
|
||||
dropsSpawnPt.y += 200.0f;
|
||||
|
||||
if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) {
|
||||
|
@ -355,7 +351,8 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
|
|||
|
||||
// Spawn falling leaves
|
||||
if (this->unk_14C >= -1) {
|
||||
leavesParams = WOOD_LEAF_GREEN;
|
||||
s32 i;
|
||||
s32 leavesParams = WOOD_LEAF_GREEN;
|
||||
|
||||
if ((this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNER) ||
|
||||
(this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNED)) {
|
||||
|
|
|
@ -194,6 +194,8 @@ void EnYabusameMark_Update(Actor* thisx, PlayState* play) {
|
|||
arrayIndex = this->typeIndex * 4;
|
||||
vertexArray = &sCollisionVertices[arrayIndex];
|
||||
|
||||
if (1) {}
|
||||
|
||||
this->vertexA.x = vertexArray[0].x + this->actor.world.pos.x;
|
||||
this->vertexA.y = vertexArray[0].y + this->actor.world.pos.y;
|
||||
this->vertexA.z = vertexArray[0].z + this->actor.world.pos.z;
|
||||
|
@ -212,7 +214,8 @@ void EnYabusameMark_Update(Actor* thisx, PlayState* play) {
|
|||
|
||||
Collider_SetQuadVertices(&this->collider, &this->vertexA, &this->vertexB, &this->vertexC, &this->vertexD);
|
||||
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
|
||||
if (BREG(0)) {
|
||||
|
||||
if (OOT_DEBUG && BREG(0) != 0) {
|
||||
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,
|
||||
this->actor.world.rot.x, this->actor.world.rot.y, this->actor.world.rot.z, 1.0f, 1.0f,
|
||||
1.0f, 0, 0xFF, 0, 0xFF, 4, play->state.gfxCtx);
|
||||
|
|
|
@ -32,7 +32,7 @@ typedef enum {
|
|||
} EnfHGIntroState;
|
||||
|
||||
void EnfHG_Init(Actor* thisx, PlayState* play2);
|
||||
void EnfHG_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnfHG_Destroy(Actor* thisx, PlayState* play2);
|
||||
void EnfHG_Update(Actor* thisx, PlayState* play);
|
||||
void EnfHG_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
|
@ -89,8 +89,8 @@ void EnfHG_Init(Actor* thisx, PlayState* play2) {
|
|||
}
|
||||
}
|
||||
|
||||
void EnfHG_Destroy(Actor* thisx, PlayState* play) {
|
||||
s32 pad;
|
||||
void EnfHG_Destroy(Actor* thisx, PlayState* play2) {
|
||||
PlayState* play = (PlayState*)play2;
|
||||
EnfHG* this = (EnfHG*)thisx;
|
||||
|
||||
PRINTF("F DT1\n");
|
||||
|
@ -651,6 +651,7 @@ void EnfHG_Retreat(EnfHG* this, PlayState* play) {
|
|||
BossGanondrof* bossGnd = (BossGanondrof*)this->actor.parent;
|
||||
s16 paintingIdxReal;
|
||||
s16 paintingIdxFake;
|
||||
Actor* child;
|
||||
|
||||
if (this->actor.params != GND_REAL_BOSS) {
|
||||
this->killActor = true;
|
||||
|
@ -664,10 +665,11 @@ void EnfHG_Retreat(EnfHG* this, PlayState* play) {
|
|||
do {
|
||||
paintingIdxFake = Rand_ZeroOne() * 5.99f;
|
||||
} while (paintingIdxFake == paintingIdxReal);
|
||||
PRINTF("ac1 = %x `````````````````````````````````````````````````\n",
|
||||
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_BOSS_GANONDROF,
|
||||
|
||||
child = Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_BOSS_GANONDROF,
|
||||
this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0,
|
||||
0, paintingIdxFake + GND_FAKE_BOSS));
|
||||
0, paintingIdxFake + GND_FAKE_BOSS);
|
||||
PRINTF("ac1 = %x `````````````````````````````````````````````````\n", child);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,9 +31,7 @@ ActorInit End_Title_InitVars = {
|
|||
void EndTitle_Init(Actor* thisx, PlayState* play) {
|
||||
EndTitle* this = (EndTitle*)thisx;
|
||||
|
||||
this->endAlpha = 0;
|
||||
this->tlozAlpha = 0;
|
||||
this->ootAlpha = 0;
|
||||
this->endAlpha = this->tlozAlpha = this->ootAlpha = 0;
|
||||
if (this->actor.params == 1) {
|
||||
this->actor.draw = EndTitle_DrawNintendoLogo;
|
||||
}
|
||||
|
|
|
@ -76,8 +76,6 @@ void MagicDark_DiamondUpdate(Actor* thisx, PlayState* play) {
|
|||
s16 nayrusLoveTimer = gSaveContext.nayrusLoveTimer;
|
||||
s32 msgMode = play->msgCtx.msgMode;
|
||||
|
||||
if (1) {}
|
||||
|
||||
// See `ACTOROVL_ALLOC_ABSOLUTE`
|
||||
//! @bug This condition is too broad, the actor will also be killed by warp songs. But warp songs do not use an
|
||||
//! actor which uses `ACTOROVL_ALLOC_ABSOLUTE`. There is no reason to kill the actor in this case.
|
||||
|
@ -90,6 +88,8 @@ void MagicDark_DiamondUpdate(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
if (nayrusLoveTimer >= 1200) {
|
||||
if (1) {}
|
||||
|
||||
player->invincibilityTimer = 0;
|
||||
gSaveContext.nayrusLoveTimer = 0;
|
||||
Actor_Kill(thisx);
|
||||
|
|
|
@ -373,8 +373,6 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
|
|||
f32 spE8[3];
|
||||
f32 polyNormal[3];
|
||||
MtxF* shieldMtx;
|
||||
Vec3f vecA;
|
||||
Vec3f vecC;
|
||||
|
||||
shieldMtx = &player->shieldMf;
|
||||
|
||||
|
@ -390,6 +388,10 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
|
|||
vecD.y = spE8[1] + vecB.y;
|
||||
vecD.z = spE8[2] + vecB.z;
|
||||
|
||||
{
|
||||
Vec3f vecA;
|
||||
Vec3f vecC;
|
||||
|
||||
vecA.x = vecB.x + (shieldMtx->xx * 300.0f);
|
||||
vecA.y = vecB.y + (shieldMtx->yx * 300.0f);
|
||||
vecA.z = vecB.z + (shieldMtx->zx * 300.0f);
|
||||
|
@ -406,8 +408,8 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
|
|||
polyNormal[1] = COLPOLY_GET_NORMAL(reflection[i].reflectionPoly->normal.y);
|
||||
polyNormal[2] = COLPOLY_GET_NORMAL(reflection[i].reflectionPoly->normal.z);
|
||||
|
||||
if (Math3D_LineSegVsPlane(polyNormal[0], polyNormal[1], polyNormal[2], reflection[i].reflectionPoly->dist,
|
||||
&vecB, &vecD, &sp118, 1)) {
|
||||
if (Math3D_LineSegVsPlane(polyNormal[0], polyNormal[1], polyNormal[2],
|
||||
reflection[i].reflectionPoly->dist, &vecB, &vecD, &sp118, 1)) {
|
||||
|
||||
reflection[i].pos.x = sp118.x;
|
||||
reflection[i].pos.y = sp118.y;
|
||||
|
@ -463,6 +465,7 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MirRay_Draw(Actor* thisx, PlayState* play) {
|
||||
MirRay* this = (MirRay*)thisx;
|
||||
|
|
Loading…
Reference in a new issue