1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-13 04:39:36 +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:
cadmic 2024-02-13 06:10:28 -08:00 committed by GitHub
parent 1ba2d6d0f9
commit b32d0a91ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 217 additions and 179 deletions

View file

@ -99,7 +99,7 @@ void EnAnubiceTag_Update(Actor* thisx, PlayState* play) {
void EnAnubiceTag_Draw(Actor* thisx, PlayState* play) { void EnAnubiceTag_Draw(Actor* thisx, PlayState* play) {
EnAnubiceTag* this = (EnAnubiceTag*)thisx; 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, 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, 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); 1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);

View file

@ -282,7 +282,7 @@ void EnChanger_Update(Actor* thisx, PlayState* play) {
this->timer--; 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, 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, 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); 1.0f, 255, 0, 255, 255, 4, play->state.gfxCtx);

View file

@ -185,8 +185,8 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
case PLAYER_MASK_ZORA: case PLAYER_MASK_ZORA:
case PLAYER_MASK_GERUDO: case PLAYER_MASK_GERUDO:
rand9 = Rand_ZeroFloat(8.99f); rand9 = Rand_ZeroFloat(8.99f);
maskIdx = Player_GetMask(play); // fake match, possible alternative is `maskIdx = Player_GetMask(play); maskIdx--;` on one line
maskIdx--; maskIdx = (s16)Player_GetMask(play) - 1;
if (rand9 == 8) { if (rand9 == 8) {
ignore = true; ignore = true;
delay = 8; delay = 8;
@ -265,6 +265,9 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
void EnDntDemo_Results(EnDntDemo* this, PlayState* play) { void EnDntDemo_Results(EnDntDemo* this, PlayState* play) {
s32 i; s32 i;
s16 offsetAngle;
Vec3f leaderPos;
f32 offsetDist;
if (this->leaderSignal != DNT_SIGNAL_NONE) { if (this->leaderSignal != DNT_SIGNAL_NONE) {
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
@ -284,9 +287,8 @@ void EnDntDemo_Results(EnDntDemo* this, PlayState* play) {
this->actionFunc = EnDntDemo_Prize; this->actionFunc = EnDntDemo_Prize;
} else if (this->prize == DNT_PRIZE_STICK) { } else if (this->prize == DNT_PRIZE_STICK) {
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
s16 offsetAngle = -this->leader->actor.shape.rot.y; offsetAngle = -this->leader->actor.shape.rot.y;
Vec3f leaderPos = this->leader->actor.world.pos; leaderPos = this->leader->actor.world.pos;
f32 offsetDist;
if (!(i & 1)) { if (!(i & 1)) {
offsetAngle -= 0x59D8; offsetAngle -= 0x59D8;
@ -324,7 +326,8 @@ void EnDntDemo_Update(Actor* thisx, PlayState* play) {
this->unkTimer1--; this->unkTimer1--;
} }
this->actionFunc(this, play); this->actionFunc(this, play);
if (BREG(0)) {
if (OOT_DEBUG && BREG(0) != 0) {
if (this->debugArrowTimer != 0) { if (this->debugArrowTimer != 0) {
if (!(this->debugArrowTimer & 1)) { if (!(this->debugArrowTimer & 1)) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,

View file

@ -51,6 +51,8 @@ void EnEncount1_Init(Actor* thisx, PlayState* play) {
spawnRange = 120.0f + (40.0f * this->actor.world.rot.z); spawnRange = 120.0f + (40.0f * this->actor.world.rot.z);
this->spawnRange = spawnRange; this->spawnRange = spawnRange;
if (1) {}
PRINTF("\n\n"); PRINTF("\n\n");
// "It's an enemy spawner!" // "It's an enemy spawner!"
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 敵発生ゾーンでた! ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); 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); this->updateFunc(this, play);
if (BREG(0) != 0) { if (OOT_DEBUG && BREG(0) != 0) {
if (this->outOfRangeTimer != 0) { if (this->outOfRangeTimer != 0) {
if ((this->outOfRangeTimer & 1) == 0) { if ((this->outOfRangeTimer & 1) == 0) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,

View file

@ -283,7 +283,8 @@ void FireRock_WaitSpawnRocksFromCeiling(EnFireRock* this, PlayState* play) {
} else { } else {
this->playerNearby = 0; 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, 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, 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); 1.0f, 0, 255, 0, 255, 4, play->state.gfxCtx);
@ -309,6 +310,7 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) {
s16 setCollision; s16 setCollision;
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
Actor* playerActor = &GET_PLAYER(play)->actor; Actor* playerActor = &GET_PLAYER(play)->actor;
f32 temp;
if (this->timer2 != 0) { if (this->timer2 != 0) {
this->timer2--; this->timer2--;
@ -319,8 +321,6 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play); this->actionFunc(this, play);
if (this->type != FIRE_ROCK_CEILING_SPOT_SPAWNER) { if (this->type != FIRE_ROCK_CEILING_SPOT_SPAWNER) {
f32 temp;
this->rockRotation.x += this->angularVelocity.x; this->rockRotation.x += this->angularVelocity.x;
this->rockRotation.y += this->angularVelocity.y; this->rockRotation.y += this->angularVelocity.y;
this->rockRotation.z += this->angularVelocity.z; this->rockRotation.z += this->angularVelocity.z;

View file

@ -723,20 +723,17 @@ void EnFr_ListeningToOcarinaNotes(EnFr* this, PlayState* play) {
} }
void EnFr_ChildSong(EnFr* this, PlayState* play) { void EnFr_ChildSong(EnFr* this, PlayState* play) {
EnFr* frog;
u8 songIndex;
if (this->jumpCounter < 48) { if (this->jumpCounter < 48) {
if (this->jumpCounter % 4 == 0) { if (this->jumpCounter % 4 == 0) {
EnFr_SetupJumpingUp(this, sJumpOrder[(this->jumpCounter >> 2) & 7]); EnFr_SetupJumpingUp(this, sJumpOrder[(this->jumpCounter >> 2) & 7]);
} }
} else { } else {
songIndex = this->songIndex; if (this->songIndex == FROG_STORMS) {
if (songIndex == FROG_STORMS) {
this->actor.textId = 0x40AA; this->actor.textId = 0x40AA;
EnFr_SetupReward(this, play, false); EnFr_SetupReward(this, play, false);
} else if (!FROG_HAS_SONG_BEEN_PLAYED(songIndex)) { } else if (!FROG_HAS_SONG_BEEN_PLAYED(this->songIndex)) {
frog = sEnFrPointers.frogs[sSongToFrog[songIndex]]; EnFr* frog = sEnFrPointers.frogs[sSongToFrog[this->songIndex]];
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
if (frog->actionFunc == EnFr_ChooseJumpFromLogSpot) { if (frog->actionFunc == EnFr_ChooseJumpFromLogSpot) {
frog->isJumpingUp = true; frog->isJumpingUp = true;
@ -800,10 +797,10 @@ void EnFr_CheckOcarinaInputFrogSong(u8 ocarinaNote) {
void EnFr_DeactivateButterfly(void) { void EnFr_DeactivateButterfly(void) {
s32 frogIndex; s32 frogIndex;
EnFr* frog;
for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) { for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
frog = sEnFrPointers.frogs[frogIndex]; EnFr* frog = sEnFrPointers.frogs[frogIndex];
frog->isButterflyDrawn = false; frog->isButterflyDrawn = false;
} }
} }
@ -863,21 +860,18 @@ void EnFr_OcarinaMistake(EnFr* this, PlayState* play) {
} }
void EnFr_ContinueFrogSong(EnFr* this, PlayState* play) { void EnFr_ContinueFrogSong(EnFr* this, PlayState* play) {
s32 counter;
EnFr* frog;
s32 i;
if (this->frogSongTimer == 0) { if (this->frogSongTimer == 0) {
EnFr_OcarinaMistake(this, play); EnFr_OcarinaMistake(this, play);
} else { } else {
this->frogSongTimer--; this->frogSongTimer--;
if (play->msgCtx.msgMode == MSGMODE_FROGS_PLAYING) { if (play->msgCtx.msgMode == MSGMODE_FROGS_PLAYING) {
counter = 0; s32 counter = 0;
s32 i;
for (i = 0; i < ARRAY_COUNT(sEnFrPointers.frogs); i++) { for (i = 0; i < ARRAY_COUNT(sEnFrPointers.frogs); i++) {
frog = sEnFrPointers.frogs[i]; EnFr* frog = sEnFrPointers.frogs[i];
if (frog != NULL && frog->actionFunc == EnFr_ChooseJumpFromLogSpot) {
continue; if (frog == NULL || frog->actionFunc != EnFr_ChooseJumpFromLogSpot) {
} else {
counter++; counter++;
} }
} }
@ -971,8 +965,6 @@ void EnFr_SetReward(EnFr* this, PlayState* play) {
} }
void EnFr_Deactivate(EnFr* this, PlayState* play) { void EnFr_Deactivate(EnFr* this, PlayState* play) {
EnFr* frogLoop1;
EnFr* frogLoop2;
s32 frogIndex; s32 frogIndex;
// Originally was going to have separate butterfly actor // 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++) { for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
frogLoop1 = sEnFrPointers.frogs[frogIndex]; EnFr* frog = sEnFrPointers.frogs[frogIndex];
if (frogLoop1 == NULL) {
if (frog == NULL) {
PRINTF(VT_COL(RED, WHITE)); PRINTF(VT_COL(RED, WHITE));
// "There are no frogs!?" // "There are no frogs!?"
PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1604); PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1604);
PRINTF(VT_RST); PRINTF(VT_RST);
return; return;
} else if (frogLoop1->isDeactivating != true) { } else if (frog->isDeactivating != true) {
return; return;
} }
} }
for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) { for (frogIndex = 0; frogIndex < ARRAY_COUNT(sEnFrPointers.frogs); frogIndex++) {
frogLoop2 = sEnFrPointers.frogs[frogIndex]; EnFr* frog = sEnFrPointers.frogs[frogIndex];
if (frogLoop2 == NULL) {
if (frog == NULL) {
PRINTF(VT_COL(RED, WHITE)); PRINTF(VT_COL(RED, WHITE));
// "There are no frogs!?" // "There are no frogs!?"
PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1618); PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1618);
PRINTF(VT_RST); PRINTF(VT_RST);
return; return;
} }
frogLoop2->isDeactivating = false; frog->isDeactivating = false;
} }
play->msgCtx.ocarinaMode = OCARINA_MODE_04; play->msgCtx.ocarinaMode = OCARINA_MODE_04;
@ -1035,11 +1029,12 @@ void EnFr_SetIdle(EnFr* this, PlayState* play) {
void EnFr_UpdateIdle(Actor* thisx, PlayState* play) { void EnFr_UpdateIdle(Actor* thisx, PlayState* play) {
EnFr* this = (EnFr*)thisx; 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, 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, 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); 1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
} }
this->jumpCounter++; this->jumpCounter++;
this->actionFunc(this, play); this->actionFunc(this, play);
} }

View file

@ -80,6 +80,8 @@ void EnGSwitch_Init(Actor* thisx, PlayState* play) {
s32 pad; s32 pad;
EnGSwitch* this = (EnGSwitch*)thisx; EnGSwitch* this = (EnGSwitch*)thisx;
if (play) {}
this->type = (this->actor.params >> 0xC) & 0xF; this->type = (this->actor.params >> 0xC) & 0xF;
this->switchFlag = this->actor.params & 0x3F; this->switchFlag = this->actor.params & 0x3F;
this->numEffects = EN_GSWITCH_EFFECT_COUNT; 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); 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, 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, 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); 1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
@ -456,6 +459,9 @@ void EnGSwitch_DrawPot(Actor* thisx, PlayState* play) {
if (!this->broken) { if (!this->broken) {
OPEN_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 918); OPEN_DISPS(play->state.gfxCtx, "../z_en_g_switch.c", 918);
if (1) {}
Gfx_SetupDL_25Opa(play->state.gfxCtx); Gfx_SetupDL_25Opa(play->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 925), gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_en_g_switch.c", 925),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); 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) { void EnGSwitch_SpawnEffects(EnGSwitch* this, Vec3f* pos, s16 scale, s16 colorIdx) {
EnGSwitchEffect* effect = this->effects; EnGSwitchEffect* effect = this->effects;
s16 i; s16 i;
for (i = 0; i < this->numEffects; i++, effect++) {
if (!effect->flag) {
Vec3f baseVel; Vec3f baseVel;
f32 pitch; f32 pitch;
f32 yaw; f32 yaw;
for (i = 0; i < this->numEffects; i++, effect++) {
if (!effect->flag) {
effect->pos = *pos; effect->pos = *pos;
effect->scale = scale; effect->scale = scale;
effect->colorIdx = colorIdx; effect->colorIdx = colorIdx;

View file

@ -10,7 +10,7 @@
#define FLAGS ACTOR_FLAG_4 #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_Destroy(Actor* thisx, PlayState* play);
void EnHeishi1_Update(Actor* thisx, PlayState* play); void EnHeishi1_Update(Actor* thisx, PlayState* play);
void EnHeishi1_Draw(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 }; static s16 sWaypoints[] = { 0, 4, 1, 5, 2, 6, 3, 7 };
void EnHeishi1_Init(Actor* thisx, PlayState* play) { void EnHeishi1_Init(Actor* thisx, PlayState* play2) {
s32 pad; PlayState* play = play2;
EnHeishi1* this = (EnHeishi1*)thisx; EnHeishi1* this = (EnHeishi1*)thisx;
Vec3f rupeePos; Vec3f rupeePos;
s32 i; s32 i;
@ -182,7 +182,7 @@ void EnHeishi1_Walk(EnHeishi1* this, PlayState* play) {
Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale, this->headTurnSpeedMax); 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->path);
PRINTF(VT_FGCOL(RED) " ぱす %d\n" VT_RST, this->waypoint); PRINTF(VT_FGCOL(RED) " ぱす %d\n" VT_RST, this->waypoint);
PRINTF(VT_FGCOL(RED) " 反転 %d\n" VT_RST, this->bodyTurnSpeed); 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, Math_ApproachF(&this->headAngle, this->headAngleTarget, this->headTurnSpeedScale,
this->headTurnSpeedMax + this->headTurnSpeedMax); 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->path);
PRINTF(VT_FGCOL(GREEN) " ぱす %d\n" VT_RST, this->waypoint); PRINTF(VT_FGCOL(GREEN) " ぱす %d\n" VT_RST, this->waypoint);
PRINTF(VT_FGCOL(GREEN) " 反転 %d\n" VT_RST, this->bodyTurnSpeed); PRINTF(VT_FGCOL(GREEN) " 反転 %d\n" VT_RST, this->bodyTurnSpeed);
@ -490,7 +490,7 @@ void EnHeishi1_Draw(Actor* thisx, PlayState* play) {
this); this);
func_80033C30(&this->actor.world.pos, &matrixScale, 0xFF, play); 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, 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, 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); 255, 4, play->state.gfxCtx);

View file

@ -116,7 +116,7 @@ void func_80A90264(EnKakasi2* this, PlayState* play) {
this->unk_194++; 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)) { (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y)) {
this->actor.draw = func_80A90948; 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_SetAC(play, &play->colChkCtx, &this->collider.base);
CollisionCheck_SetOC(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) { if (BREG(5) != 0) {
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ this->actor.player_distance ☆☆☆☆☆ %f\n" VT_RST, this->actor.xzDistToPlayer); 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); PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ this->hosei.x ☆☆☆☆☆ %f\n" VT_RST, this->maxSpawnDistance.x);

View file

@ -115,7 +115,8 @@ void EnOkarinaEffect_Update(Actor* thisx, PlayState* play) {
EnOkarinaEffect* this = (EnOkarinaEffect*)thisx; EnOkarinaEffect* this = (EnOkarinaEffect*)thisx;
this->actionFunc(this, play); 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, 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, 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); 1.0f, 0xFF, 0, 0xFF, 0xFF, 4, play->state.gfxCtx);

View file

@ -318,7 +318,8 @@ void EnOkarinaTag_Update(Actor* thisx, PlayState* play) {
EnOkarinaTag* this = (EnOkarinaTag*)thisx; EnOkarinaTag* this = (EnOkarinaTag*)thisx;
this->actionFunc(this, play); this->actionFunc(this, play);
if (BREG(0) != 0) {
if (OOT_DEBUG && BREG(0) != 0) {
if (this->unk_15A != 0) { if (this->unk_15A != 0) {
if (!(this->unk_15A & 1)) { if (!(this->unk_15A & 1)) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,

View file

@ -126,9 +126,9 @@ void EnReeba_Init(Actor* thisx, PlayState* play) {
this->scale = 0.04f; this->scale = 0.04f;
if (this->type != LEEVER_TYPE_SMALL) { if (this->type != LEEVER_TYPE_SMALL) {
this->scale *= 1.5f;
this->collider.dim.radius = 35; this->collider.dim.radius = 35;
this->collider.dim.height = 45; this->collider.dim.height = 45;
this->scale *= 1.5f;
// "Reeba Boss Appears %f" // "Reeba Boss Appears %f"
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ リーバぼす登場 ☆☆☆☆☆ %f\n" VT_RST, this->scale); PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ リーバぼす登場 ☆☆☆☆☆ %f\n" VT_RST, this->scale);
this->actor.colChkInfo.health = 20; this->actor.colChkInfo.health = 20;
@ -399,17 +399,18 @@ void EnReeba_SetupStunned(EnReeba* this, PlayState* play) {
} }
void EnReeba_Stunned(EnReeba* this, PlayState* play) { void EnReeba_Stunned(EnReeba* this, PlayState* play) {
Vec3f pos;
f32 scale;
if (this->waitTimer != 0) { if (this->waitTimer != 0) {
if (this->actor.speed < 0.0f) { if (this->actor.speed < 0.0f) {
this->actor.speed += 1.0f; this->actor.speed += 1.0f;
} }
return;
} else { } else {
this->actor.speed = 0.0f; this->actor.speed = 0.0f;
if ((this->stunType == LEEVER_STUN_OTHER) || (this->actor.colChkInfo.health != 0)) { if ((this->stunType == LEEVER_STUN_OTHER) || (this->actor.colChkInfo.health != 0)) {
Vec3f pos;
f32 scale;
if (this->stunType == LEEVER_STUN_ICE) { if (this->stunType == LEEVER_STUN_ICE) {
pos.x = this->actor.world.pos.x + Rand_CenteredFloat(20.0f); pos.x = this->actor.world.pos.x + Rand_CenteredFloat(20.0f);
pos.y = this->actor.world.pos.y + 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->waitTimer = 66;
this->actionfunc = EnReeba_StunRecover; this->actionfunc = EnReeba_StunRecover;
} else { return;
}
this->waitTimer = 30; this->waitTimer = 30;
this->actionfunc = EnReeba_StunDie; this->actionfunc = EnReeba_StunDie;
} }
} }
}
void EnReeba_StunDie(EnReeba* this, PlayState* play) { void EnReeba_StunDie(EnReeba* this, PlayState* play) {
Vec3f pos; Vec3f pos;
@ -693,7 +695,7 @@ void EnReeba_Draw(Actor* thisx, PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx, "../z_en_reeba.c", 1088); CLOSE_DISPS(play->state.gfxCtx, "../z_en_reeba.c", 1088);
if (BREG(0)) { if (OOT_DEBUG && BREG(0) != 0) {
Vec3f debugPos; Vec3f debugPos;
debugPos.x = (Math_SinS(this->actor.world.rot.y) * 30.0f) + this->actor.world.pos.x; debugPos.x = (Math_SinS(this->actor.world.rot.y) * 30.0f) + this->actor.world.pos.x;

View file

@ -364,7 +364,6 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) {
EnSkj* this = (EnSkj*)thisx; EnSkj* this = (EnSkj*)thisx;
PlayState* play = play2; PlayState* play = play2;
s32 pad; s32 pad;
Player* player;
Actor_ProcessInitChain(thisx, sInitChain); Actor_ProcessInitChain(thisx, sInitChain);
switch (type) { switch (type) {
@ -445,13 +444,18 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) {
this->actor.gravity = -1.0f; this->actor.gravity = -1.0f;
EnSkj_CalculateCenter(this); 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_X : %f\n", player->actor.world.pos.x);
PRINTF("Player_Z : %f\n", player->actor.world.pos.z); PRINTF("Player_Z : %f\n", player->actor.world.pos.z);
PRINTF("World_X : %f\n", this->actor.world.pos.x); PRINTF("World_X : %f\n", this->actor.world.pos.x);
PRINTF("World_Z : %f\n", this->actor.world.pos.z); PRINTF("World_Z : %f\n", this->actor.world.pos.z);
PRINTF("Center_X : %f\n", this->center.x); PRINTF("Center_X : %f\n", this->center.x);
PRINTF("Center_Z : %f\n\n", this->center.z); PRINTF("Center_Z : %f\n\n", this->center.z);
}
#endif
break; break;
} }
@ -1345,7 +1349,7 @@ void EnSkj_SariasSongShortStumpUpdate(Actor* thisx, PlayState* play) {
D_80B01EA0 = Actor_TalkOfferAccepted(&this->actor, 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, 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, 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); 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) { void EnSkj_WaitForOfferResponse(EnSkj* this, PlayState* play) {
Player* player;
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(play)) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE && Message_ShouldAdvance(play)) {
switch (play->msgCtx.choiceIndex) { switch (play->msgCtx.choiceIndex) {
case 0: // yes case 0: { // yes
player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
player->stateFlags3 |= PLAYER_STATE3_5; // makes player take ocarina out right away after closing box player->stateFlags3 |= PLAYER_STATE3_5; // makes player take ocarina out right away after closing box
this->actionFunc = EnSkj_SetupWaitForOcarina; this->actionFunc = EnSkj_SetupWaitForOcarina;
break; } break;
case 1: // no case 1: // no
this->actionFunc = EnSkj_CleanupOcarinaGame; this->actionFunc = EnSkj_CleanupOcarinaGame;
break; break;
@ -1587,11 +1590,13 @@ void EnSkj_OcarinaMinigameShortStumpUpdate(Actor* thisx, PlayState* play) {
this->actor.focus.pos.y = -90.0f; this->actor.focus.pos.y = -90.0f;
this->actor.focus.pos.z = 450.0f; this->actor.focus.pos.z = 450.0f;
#if OOT_DEBUG
if (BREG(0) != 0) { if (BREG(0) != 0) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 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, 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); 1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);
} }
#endif
this->actionFunc(this, play); this->actionFunc(this, play);

View file

@ -342,7 +342,8 @@ void EnSyatekiItm_Update(Actor* thisx, PlayState* play) {
if (this->unkTimer != 0) { if (this->unkTimer != 0) {
this->unkTimer--; 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, 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, 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); 1.0f, 255, 0, 0, 255, 4, play->state.gfxCtx);

View file

@ -147,7 +147,7 @@ void EnWallTubo_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, 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, 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, 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); 1.0f, 0, 0, 255, 255, 4, play->state.gfxCtx);

View file

@ -326,7 +326,8 @@ void EnWeatherTag_Update(Actor* thisx, PlayState* play) {
EnWeatherTag* this = (EnWeatherTag*)thisx; EnWeatherTag* this = (EnWeatherTag*)thisx;
this->actionFunc(this, play); 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, 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, 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); 1.0f, 255, 0, 255, 255, 4, play->state.gfxCtx);

View file

@ -206,15 +206,18 @@ void EnWonderItem_Init(Actor* thisx, PlayState* play) {
void EnWonderItem_MultitagFree(EnWonderItem* this, PlayState* play) { void EnWonderItem_MultitagFree(EnWonderItem* this, PlayState* play) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
s32 prevTagFlags = this->tagFlags; s16 prevTagFlags = this->tagFlags;
s32 i; s32 i;
s32 mask; s32 mask;
f32 dx;
f32 dy;
f32 dz;
for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) { for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) {
if (!(prevTagFlags & mask)) { if (!(prevTagFlags & mask)) {
f32 dx = player->actor.world.pos.x - sTagPointsFree[i].x; dx = player->actor.world.pos.x - sTagPointsFree[i].x;
f32 dy = player->actor.world.pos.y - sTagPointsFree[i].y; dy = player->actor.world.pos.y - sTagPointsFree[i].y;
f32 dz = player->actor.world.pos.z - sTagPointsFree[i].z; dz = player->actor.world.pos.z - sTagPointsFree[i].z;
if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) { if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) {
this->tagFlags |= mask; this->tagFlags |= mask;
@ -222,11 +225,14 @@ void EnWonderItem_MultitagFree(EnWonderItem* this, PlayState* play) {
this->timer = this->timerMod + 81; this->timer = this->timerMod + 81;
return; return;
} }
#if OOT_DEBUG
if (BREG(0) != 0) { if (BREG(0) != 0) {
DebugDisplay_AddObject(sTagPointsFree[i].x, sTagPointsFree[i].y, sTagPointsFree[i].z, 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, 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); 1.0f, 1.0f, 0, 255, 0, 255, 4, play->state.gfxCtx);
} }
#endif
} }
} }
if (this->timer == 1) { if (this->timer == 1) {
@ -269,15 +275,18 @@ void EnWonderItem_ProximitySwitch(EnWonderItem* this, PlayState* play) {
void EnWonderItem_MultitagOrdered(EnWonderItem* this, PlayState* play) { void EnWonderItem_MultitagOrdered(EnWonderItem* this, PlayState* play) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
s32 prevTagFlags = this->tagFlags; s16 prevTagFlags = this->tagFlags;
s32 i; s32 i;
s32 mask; s32 mask;
f32 dx;
f32 dy;
f32 dz;
for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) { for (i = 0, mask = 1; i < this->numTagPoints; i++, mask <<= 1) {
if (!(prevTagFlags & mask)) { if (!(prevTagFlags & mask)) {
f32 dx = player->actor.world.pos.x - sTagPointsOrdered[i].x; dx = player->actor.world.pos.x - sTagPointsOrdered[i].x;
f32 dy = player->actor.world.pos.y - sTagPointsOrdered[i].y; dy = player->actor.world.pos.y - sTagPointsOrdered[i].y;
f32 dz = player->actor.world.pos.z - sTagPointsOrdered[i].z; dz = player->actor.world.pos.z - sTagPointsOrdered[i].z;
if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) { if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < 50.0f) {
if (prevTagFlags & mask) { if (prevTagFlags & mask) {
@ -292,11 +301,15 @@ void EnWonderItem_MultitagOrdered(EnWonderItem* this, PlayState* play) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }
} else if (BREG(0) != 0) { }
#if OOT_DEBUG
if (BREG(0) != 0) {
DebugDisplay_AddObject(sTagPointsOrdered[i].x, sTagPointsOrdered[i].y, sTagPointsOrdered[i].z, 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, 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); 1.0f, 1.0f, 0, 0, 255, 255, 4, play->state.gfxCtx);
} }
#endif
} }
} }
if (this->timer == 1) { if (this->timer == 1) {
@ -358,7 +371,8 @@ void EnWonderItem_Update(Actor* thisx, PlayState* play) {
if (this->wonderMode > 12) { if (this->wonderMode > 12) {
colorIndex = 0; 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, 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, 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], 1.0f, debugArrowColors[colorIndex], debugArrowColors[colorIndex + 1],

View file

@ -18,7 +18,7 @@ typedef struct EnWonderItem {
/* 0x015A */ s16 dropCount; /* 0x015A */ s16 dropCount;
/* 0x015C */ s16 timer; /* 0x015C */ s16 timer;
/* 0x015E */ s16 tagFlags; /* 0x015E */ s16 tagFlags;
/* 0x015A */ s16 tagCount; /* 0x0160 */ s16 tagCount;
/* 0x0162 */ s16 switchFlag; /* 0x0162 */ s16 switchFlag;
/* 0x0164 */ char unk_164[4]; /* 0x0164 */ char unk_164[4];
/* 0x0168 */ s16 nextTag; /* 0x0168 */ s16 nextTag;

View file

@ -85,8 +85,8 @@ void func_80B391CC(EnWonderTalk* this, PlayState* play) {
PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 日記帳スタート! ☆☆☆☆☆ \n" VT_RST); PRINTF(VT_FGCOL(GREEN) " ☆☆☆☆☆ 日記帳スタート! ☆☆☆☆☆ \n" VT_RST);
this->actor.textId = 0x5002; this->actor.textId = 0x5002;
this->unk_156 = TEXT_STATE_CHOICE; this->unk_156 = TEXT_STATE_CHOICE;
this->height = 30.0f;
this->unk_15C = 40.0f; this->unk_15C = 40.0f;
this->height = 30.0f;
// "Attention coordinates" // "Attention coordinates"
PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 30.0f); PRINTF(VT_FGCOL(MAGENTA) "☆☆☆☆☆ 注目座標\t \t☆☆☆☆☆ %f\n" VT_RST, 30.0f);
break; break;
@ -239,7 +239,7 @@ void EnWonderTalk_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play); this->actionFunc(this, play);
Actor_SetFocus(&this->actor, this->height); 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 != 0) {
if ((this->unk_15A & 1) == 0) { if ((this->unk_15A & 1) == 0) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,

View file

@ -130,7 +130,8 @@ void func_80B3A15C(EnWonderTalk2* this, PlayState* play) {
if (!((this->actor.xzDistToPlayer > 40.0f + this->triggerRange) || if (!((this->actor.xzDistToPlayer > 40.0f + this->triggerRange) ||
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) > 100.0f) || (yawDiff >= 0x4000))) { (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"); PRINTF("\n\n");
// "Transparent Message Kimi Set" // "Transparent Message Kimi Set"
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 透明メッセージ君せっと %x\n" VT_RST, this->actor.params); 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)) && if (((this->actor.xzDistToPlayer < (40.0f + this->triggerRange)) &&
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 100.0f)) && (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 100.0f)) &&
!Play_InCsMode(play)) { !Play_InCsMode(play)) {
if (this->unk_158 >= 2) {
if (OOT_DEBUG && this->unk_158 >= 2) {
PRINTF("\n\n"); PRINTF("\n\n");
// "Transparent Message Kimi Seto" // "Transparent Message Kimi Seto"
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 透明メッセージ君せっと %x\n" VT_RST, this->actor.params); 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"); PRINTF("\n\n");
} }
this->unk_158 = 0; this->unk_158 = 0;
if (!this->unk_156) { if (!this->unk_156) {
Message_StartTextbox(play, this->actor.textId, NULL); Message_StartTextbox(play, this->actor.textId, NULL);
@ -275,7 +278,7 @@ void EnWonderTalk2_Update(Actor* thisx, PlayState* play) {
Actor_SetFocus(&this->actor, this->height); 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 != 0) {
if ((this->unk_158 & 1) == 0) { if ((this->unk_158 & 1) == 0) {
DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, DebugDisplay_AddObject(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z,

View file

@ -306,18 +306,13 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
PlayState* play = play2; PlayState* play = play2;
EnWood02* this = (EnWood02*)thisx; EnWood02* this = (EnWood02*)thisx;
f32 wobbleAmplitude; 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 // Despawn extra trees in a group if out of range
if ((this->spawnType == WOOD_SPAWN_SPAWNED) && (this->actor.parent != NULL)) { if ((this->spawnType == WOOD_SPAWN_SPAWNED) && (this->actor.parent != NULL)) {
if (!(this->actor.flags & ACTOR_FLAG_6)) { if (!(this->actor.flags & ACTOR_FLAG_6)) {
new_var = this->unk_14E[0]; u8 new_var = this->unk_14E[0];
phi_v0 = 0; u8 phi_v0 = 0;
s32 pad;
if (this->unk_14C < 0) { if (this->unk_14C < 0) {
phi_v0 = 0x80; phi_v0 = 0x80;
@ -338,7 +333,8 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
} }
if (this->actor.home.rot.y != 0) { if (this->actor.home.rot.y != 0) {
dropsSpawnPt = this->actor.world.pos; Vec3f dropsSpawnPt = this->actor.world.pos;
dropsSpawnPt.y += 200.0f; dropsSpawnPt.y += 200.0f;
if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) { if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) {
@ -355,7 +351,8 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) {
// Spawn falling leaves // Spawn falling leaves
if (this->unk_14C >= -1) { 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) || if ((this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNER) ||
(this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNED)) { (this->actor.params == WOOD_TREE_OVAL_YELLOW_SPAWNED)) {

View file

@ -194,6 +194,8 @@ void EnYabusameMark_Update(Actor* thisx, PlayState* play) {
arrayIndex = this->typeIndex * 4; arrayIndex = this->typeIndex * 4;
vertexArray = &sCollisionVertices[arrayIndex]; vertexArray = &sCollisionVertices[arrayIndex];
if (1) {}
this->vertexA.x = vertexArray[0].x + this->actor.world.pos.x; this->vertexA.x = vertexArray[0].x + this->actor.world.pos.x;
this->vertexA.y = vertexArray[0].y + this->actor.world.pos.y; this->vertexA.y = vertexArray[0].y + this->actor.world.pos.y;
this->vertexA.z = vertexArray[0].z + this->actor.world.pos.z; 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); Collider_SetQuadVertices(&this->collider, &this->vertexA, &this->vertexB, &this->vertexC, &this->vertexD);
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); 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, 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, 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); 1.0f, 0, 0xFF, 0, 0xFF, 4, play->state.gfxCtx);

View file

@ -32,7 +32,7 @@ typedef enum {
} EnfHGIntroState; } EnfHGIntroState;
void EnfHG_Init(Actor* thisx, PlayState* play2); 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_Update(Actor* thisx, PlayState* play);
void EnfHG_Draw(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) { void EnfHG_Destroy(Actor* thisx, PlayState* play2) {
s32 pad; PlayState* play = (PlayState*)play2;
EnfHG* this = (EnfHG*)thisx; EnfHG* this = (EnfHG*)thisx;
PRINTF("F DT1\n"); PRINTF("F DT1\n");
@ -651,6 +651,7 @@ void EnfHG_Retreat(EnfHG* this, PlayState* play) {
BossGanondrof* bossGnd = (BossGanondrof*)this->actor.parent; BossGanondrof* bossGnd = (BossGanondrof*)this->actor.parent;
s16 paintingIdxReal; s16 paintingIdxReal;
s16 paintingIdxFake; s16 paintingIdxFake;
Actor* child;
if (this->actor.params != GND_REAL_BOSS) { if (this->actor.params != GND_REAL_BOSS) {
this->killActor = true; this->killActor = true;
@ -664,10 +665,11 @@ void EnfHG_Retreat(EnfHG* this, PlayState* play) {
do { do {
paintingIdxFake = Rand_ZeroOne() * 5.99f; paintingIdxFake = Rand_ZeroOne() * 5.99f;
} while (paintingIdxFake == paintingIdxReal); } 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, 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);
} }
} }
} }

View file

@ -31,9 +31,7 @@ ActorInit End_Title_InitVars = {
void EndTitle_Init(Actor* thisx, PlayState* play) { void EndTitle_Init(Actor* thisx, PlayState* play) {
EndTitle* this = (EndTitle*)thisx; EndTitle* this = (EndTitle*)thisx;
this->endAlpha = 0; this->endAlpha = this->tlozAlpha = this->ootAlpha = 0;
this->tlozAlpha = 0;
this->ootAlpha = 0;
if (this->actor.params == 1) { if (this->actor.params == 1) {
this->actor.draw = EndTitle_DrawNintendoLogo; this->actor.draw = EndTitle_DrawNintendoLogo;
} }

View file

@ -76,8 +76,6 @@ void MagicDark_DiamondUpdate(Actor* thisx, PlayState* play) {
s16 nayrusLoveTimer = gSaveContext.nayrusLoveTimer; s16 nayrusLoveTimer = gSaveContext.nayrusLoveTimer;
s32 msgMode = play->msgCtx.msgMode; s32 msgMode = play->msgCtx.msgMode;
if (1) {}
// See `ACTOROVL_ALLOC_ABSOLUTE` // 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 //! @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. //! 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 (nayrusLoveTimer >= 1200) {
if (1) {}
player->invincibilityTimer = 0; player->invincibilityTimer = 0;
gSaveContext.nayrusLoveTimer = 0; gSaveContext.nayrusLoveTimer = 0;
Actor_Kill(thisx); Actor_Kill(thisx);

View file

@ -373,8 +373,6 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
f32 spE8[3]; f32 spE8[3];
f32 polyNormal[3]; f32 polyNormal[3];
MtxF* shieldMtx; MtxF* shieldMtx;
Vec3f vecA;
Vec3f vecC;
shieldMtx = &player->shieldMf; shieldMtx = &player->shieldMf;
@ -390,6 +388,10 @@ void MirRay_ReflectedBeam(MirRay* this, PlayState* play, MirRayShieldReflection*
vecD.y = spE8[1] + vecB.y; vecD.y = spE8[1] + vecB.y;
vecD.z = spE8[2] + vecB.z; vecD.z = spE8[2] + vecB.z;
{
Vec3f vecA;
Vec3f vecC;
vecA.x = vecB.x + (shieldMtx->xx * 300.0f); vecA.x = vecB.x + (shieldMtx->xx * 300.0f);
vecA.y = vecB.y + (shieldMtx->yx * 300.0f); vecA.y = vecB.y + (shieldMtx->yx * 300.0f);
vecA.z = vecB.z + (shieldMtx->zx * 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[1] = COLPOLY_GET_NORMAL(reflection[i].reflectionPoly->normal.y);
polyNormal[2] = COLPOLY_GET_NORMAL(reflection[i].reflectionPoly->normal.z); polyNormal[2] = COLPOLY_GET_NORMAL(reflection[i].reflectionPoly->normal.z);
if (Math3D_LineSegVsPlane(polyNormal[0], polyNormal[1], polyNormal[2], reflection[i].reflectionPoly->dist, if (Math3D_LineSegVsPlane(polyNormal[0], polyNormal[1], polyNormal[2],
&vecB, &vecD, &sp118, 1)) { reflection[i].reflectionPoly->dist, &vecB, &vecD, &sp118, 1)) {
reflection[i].pos.x = sp118.x; reflection[i].pos.x = sp118.x;
reflection[i].pos.y = sp118.y; 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) { void MirRay_Draw(Actor* thisx, PlayState* play) {
MirRay* this = (MirRay*)thisx; MirRay* this = (MirRay*)thisx;