1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-21 06:21:16 +00:00

Environment documentation pass (#1115)

* some docs, start introducing time macro

* most usages of CLOCK_TIME

* finish up clock time defines, format

* saving incase i need to revert

* more docs

* more docs progress

* some more docs

* format with 11

* change sos to storm

* update functions.h

* some depth stuff

* review 1 and 2

* whoops

* update zbuf stuff

* most of review 3

* enum name

* storm state enum

* review 4

* fix enum

* add comment to skyboxischanging

* review

* things dont match, committing so i can change branches

* revert struct changes

* define for override_full_control

* new clock_time macro

* fill alpha -> glare strength

* update comment

* remove indoor/outdoor, new name for underwater light variable

* remove copy pasted comment

* fix comments

* remove whitespave

* review
This commit is contained in:
fig02 2022-05-20 14:40:13 -04:00 committed by GitHub
parent d7bbe43ba7
commit 4f0018bf36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 1339 additions and 1087 deletions

View file

@ -491,10 +491,10 @@ void BossTw_Init(Actor* thisx, GlobalContext* globalCtx2) {
if (!sTwInitalized) {
sTwInitalized = true;
globalCtx->envCtx.unk_BF = 1;
globalCtx->envCtx.unk_BE = 1;
globalCtx->envCtx.unk_BD = 1;
globalCtx->envCtx.unk_D8 = 0.0f;
globalCtx->envCtx.lightSettingOverride = 1;
globalCtx->envCtx.prevLightSetting = 1;
globalCtx->envCtx.lightSetting = 1;
globalCtx->envCtx.lightBlend = 0.0f;
D_8094C874 = D_8094C876 = D_8094C878 = D_8094C87A = D_8094C87C = D_8094C87E = D_8094C870 = D_8094C86F =
D_8094C872 = sBeamDivertTimer = sEnvType = sGroundBlastType = sFreezeState = sTwinrovaBlastType =
@ -880,7 +880,7 @@ s32 BossTw_CheckBeamReflection(BossTw* this, GlobalContext* globalCtx) {
// beam hit the shield, normal shield equipped,
// divert the beam backwards from link's Y rotation
BossTw_AddShieldDeflectEffect(globalCtx, 10.0f, this->actor.params);
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
this->timers[0] = 10;
func_80078884(NA_SE_IT_SHIELD_REFLECT_MG2);
}
@ -1001,8 +1001,8 @@ void BossTw_ShootBeam(BossTw* this, GlobalContext* globalCtx) {
if (this->timers[1] < 50) {
if (this->timers[1] < 10) {
if (this->timers[1] == 9) {
globalCtx->envCtx.unk_D8 = 0.5f;
globalCtx->envCtx.unk_BD = 3 - this->actor.params;
globalCtx->envCtx.lightBlend = 0.5f;
globalCtx->envCtx.lightSetting = 3 - this->actor.params;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_MASIC_SET);
}
@ -1118,7 +1118,7 @@ void BossTw_ShootBeam(BossTw* this, GlobalContext* globalCtx) {
this->groundBlastPos.x = 0.0f;
this->groundBlastPos.y = 0.0f;
this->groundBlastPos.z = 0.0f;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
func_800AA000(0.0f, 0x64, 5, 4);
} else if (beamReflection == 0) {
BossTw_BeamHitPlayerCheck(this, globalCtx);
@ -1278,7 +1278,7 @@ void BossTw_ShootBeam(BossTw* this, GlobalContext* globalCtx) {
}
this->beamReflectionDist = sp130.z;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 0.8f, 1.0f, 0.2f);
Math_ApproachF(&globalCtx->envCtx.lightBlend, 0.8f, 1.0f, 0.2f);
}
break;
}
@ -1320,7 +1320,7 @@ void BossTw_ShootBeam(BossTw* this, GlobalContext* globalCtx) {
BossTw_SetupHitByBeam(otherTw, globalCtx);
Audio_PlayActorSound2(&otherTw->actor, NA_SE_EN_TWINROBA_DAMAGE_VOICE);
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
otherTw->actor.colChkInfo.health++;
}
}
@ -1664,8 +1664,8 @@ void BossTw_TwinrovaMergeCS(BossTw* this, GlobalContext* globalCtx) {
}
sEnvType = -1;
globalCtx->envCtx.unk_BD = 4;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1, 1, 0.1f);
globalCtx->envCtx.lightSetting = 4;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1, 1, 0.1f);
// fallthrough
case 2:
SkelAnime_Update(&this->skelAnime);
@ -1711,7 +1711,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, GlobalContext* globalCtx) {
}
if (this->timers[2] == 4) {
sEnvType = 0;
globalCtx->envCtx.unk_BE = 5;
globalCtx->envCtx.prevLightSetting = 5;
}
if (this->timers[2] == 1) {
@ -1846,8 +1846,8 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
Math_ApproachF(&this->subCamUpdateRate, 0.01f, 1.0f, 0.0001f);
if (this->work[CS_TIMER_1] > 100) {
globalCtx->envCtx.unk_BD = 0;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 0.03f);
globalCtx->envCtx.lightSetting = 0;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1.0f, 1.0f, 0.03f);
}
if (this->work[CS_TIMER_1] == 180) {
@ -1957,11 +1957,11 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
if (this->work[CS_TIMER_1] >= 30) {
if (this->work[CS_TIMER_1] < 45) {
globalCtx->envCtx.unk_BE = 0;
globalCtx->envCtx.unk_BD = 2;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.prevLightSetting = 0;
globalCtx->envCtx.lightSetting = 2;
globalCtx->envCtx.lightBlend = 1.0f;
} else {
Math_ApproachZeroF(&globalCtx->envCtx.unk_D8, 1.0f, 0.1f);
Math_ApproachZeroF(&globalCtx->envCtx.lightBlend, 1.0f, 0.1f);
}
if (this->work[CS_TIMER_1] == 30) {
@ -1980,7 +1980,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
}
Audio_PlayActorSound2(&sKoumePtr->actor, NA_SE_EN_TWINROBA_TRANSFORM);
globalCtx->envCtx.unk_D8 = 0;
globalCtx->envCtx.lightBlend = 0;
}
if (this->work[CS_TIMER_1] >= 35) {
@ -2121,10 +2121,10 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
if (this->work[CS_TIMER_1] >= 30) {
if (this->work[CS_TIMER_1] < 45) {
globalCtx->envCtx.unk_BD = 3;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightSetting = 3;
globalCtx->envCtx.lightBlend = 1.0f;
} else {
Math_ApproachZeroF(&globalCtx->envCtx.unk_D8, 1.0f, 0.1f);
Math_ApproachZeroF(&globalCtx->envCtx.lightBlend, 1.0f, 0.1f);
}
if (this->work[CS_TIMER_1] == 30) {
@ -2142,7 +2142,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
}
Audio_PlayActorSound2(&sKotakePtr->actor, NA_SE_EN_TWINROBA_TRANSFORM);
globalCtx->envCtx.unk_D8 = 0.0f;
globalCtx->envCtx.lightBlend = 0.0f;
}
if (this->work[CS_TIMER_1] >= 35) {
@ -2212,8 +2212,8 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
case 20:
if (this->work[CS_TIMER_1] > 20 && this->work[CS_TIMER_1] < 120) {
globalCtx->envCtx.unk_BD = 1;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 0.015f);
globalCtx->envCtx.lightSetting = 1;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1.0f, 1.0f, 0.015f);
}
if (this->work[CS_TIMER_1] == 90) {
@ -2222,9 +2222,9 @@ void BossTw_TwinrovaIntroCS(BossTw* this, GlobalContext* globalCtx) {
if (this->work[CS_TIMER_1] == 120) {
sEnvType = 0;
globalCtx->envCtx.unk_BE = 1;
globalCtx->envCtx.unk_BD = 1;
globalCtx->envCtx.unk_D8 = 0.0f;
globalCtx->envCtx.prevLightSetting = 1;
globalCtx->envCtx.lightSetting = 1;
globalCtx->envCtx.lightBlend = 0.0f;
TitleCard_InitBossName(globalCtx, &globalCtx->actorCtx.titleCtx,
SEGMENTED_TO_VIRTUAL(object_tw_Blob_02E170), 0xA0, 0xB4, 0x80, 0x28);
SET_EVENTCHKINF(EVENTCHKINF_75);
@ -2642,13 +2642,13 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) {
if (this->work[CS_TIMER_1] >= 55) {
if (this->work[CS_TIMER_1] == 55) {
globalCtx->envCtx.unk_D8 = 0;
globalCtx->envCtx.lightBlend = 0;
}
sEnvType = -1;
globalCtx->envCtx.unk_BE = 5;
globalCtx->envCtx.unk_BD = 0;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 0.015f);
globalCtx->envCtx.prevLightSetting = 5;
globalCtx->envCtx.lightSetting = 0;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1.0f, 1.0f, 0.015f);
Math_ApproachF(&this->actor.scale.x, 0.00024999998f, 0.1f, 0.00005f);
this->actor.shape.rot.y += (s16)this->actor.speedXZ;
this->workf[UNK_F13] += this->actor.speedXZ;
@ -2785,13 +2785,13 @@ void BossTw_TwinrovaDeathCS(BossTw* this, GlobalContext* globalCtx) {
case 3:
BossTw_DeathCSMsgSfx(this, globalCtx);
if (this->work[CS_TIMER_2] < 150) {
globalCtx->envCtx.unk_BE = 1;
globalCtx->envCtx.unk_BD = 0;
Math_ApproachZeroF(&globalCtx->envCtx.unk_D8, 1.0f, 0.1f);
globalCtx->envCtx.prevLightSetting = 1;
globalCtx->envCtx.lightSetting = 0;
Math_ApproachZeroF(&globalCtx->envCtx.lightBlend, 1.0f, 0.1f);
} else {
globalCtx->envCtx.unk_BE = 1;
globalCtx->envCtx.unk_BD = 6;
Math_ApproachF(&globalCtx->envCtx.unk_D8, (Math_SinS(this->work[CS_TIMER_2] * 4096) / 4.0f) + 0.75f,
globalCtx->envCtx.prevLightSetting = 1;
globalCtx->envCtx.lightSetting = 6;
Math_ApproachF(&globalCtx->envCtx.lightBlend, (Math_SinS(this->work[CS_TIMER_2] * 4096) / 4.0f) + 0.75f,
1.0f, 0.1f);
}
@ -3138,33 +3138,33 @@ void BossTw_TwinrovaUpdate(Actor* thisx, GlobalContext* globalCtx2) {
osSyncPrintf("OooooooooooooooooooooooooooooooooCC\n");
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
globalCtx->envCtx.unk_DC = 2;
globalCtx->envCtx.lightBlendOverride = LIGHT_BLEND_OVERRIDE_FULL_CONTROL;
switch (sEnvType) {
case 0:
Math_ApproachZeroF(&globalCtx->envCtx.unk_D8, 1.0f, 0.02f);
Math_ApproachZeroF(&globalCtx->envCtx.lightBlend, 1.0f, 0.02f);
break;
case 1:
globalCtx->envCtx.unk_BD = 3;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 0.5f, 1.0f, 0.05f);
globalCtx->envCtx.lightSetting = 3;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 0.5f, 1.0f, 0.05f);
break;
case 2:
globalCtx->envCtx.unk_BD = 2;
Math_ApproachF(&globalCtx->envCtx.unk_D8, (Math_SinS(this->work[CS_TIMER_1] * 0x3000) * 0.03f) + 0.5f, 1.0f,
0.05f);
globalCtx->envCtx.lightSetting = 2;
Math_ApproachF(&globalCtx->envCtx.lightBlend, (Math_SinS(this->work[CS_TIMER_1] * 0x3000) * 0.03f) + 0.5f,
1.0f, 0.05f);
break;
case 3:
globalCtx->envCtx.unk_BD = 3;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 0.1f);
globalCtx->envCtx.lightSetting = 3;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1.0f, 1.0f, 0.1f);
break;
case 4:
globalCtx->envCtx.unk_BD = 2;
Math_ApproachF(&globalCtx->envCtx.unk_D8, (Math_SinS(this->work[CS_TIMER_1] * 0x3E00) * 0.05f) + 0.95f,
globalCtx->envCtx.lightSetting = 2;
Math_ApproachF(&globalCtx->envCtx.lightBlend, (Math_SinS(this->work[CS_TIMER_1] * 0x3E00) * 0.05f) + 0.95f,
1.0f, 0.1f);
break;
case 5:
globalCtx->envCtx.unk_BD = 0;
Math_ApproachF(&globalCtx->envCtx.unk_D8, 1.0f, 1.0f, 0.05f);
globalCtx->envCtx.lightSetting = 0;
Math_ApproachF(&globalCtx->envCtx.lightBlend, 1.0f, 1.0f, 0.05f);
break;
case -1:
break;
@ -3969,7 +3969,7 @@ void BossTw_BlastFire(BossTw* this, GlobalContext* globalCtx) {
if (this->timers[0] == 50) {
D_8094C86F = 10;
D_8094C872 = 7;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
}
if (this->timers[0] <= 50) {
@ -4019,7 +4019,7 @@ void BossTw_BlastFire(BossTw* this, GlobalContext* globalCtx) {
Rand_ZeroFloat(10.0f) + 25.0f, this->blastType);
}
globalCtx->envCtx.unk_D8 = 0.5f;
globalCtx->envCtx.lightBlend = 0.5f;
}
this->csState1 = 2;
@ -4159,7 +4159,7 @@ void BossTw_BlastIce(BossTw* this, GlobalContext* globalCtx) {
if (this->timers[0] == 50) {
D_8094C86F = 10;
D_8094C872 = 7;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
}
if (this->timers[0] <= 50) {
@ -4209,7 +4209,7 @@ void BossTw_BlastIce(BossTw* this, GlobalContext* globalCtx) {
Rand_ZeroFloat(10.0f) + 25.0f, this->blastType);
}
globalCtx->envCtx.unk_D8 = 0.5f;
globalCtx->envCtx.lightBlend = 0.5f;
}
this->csState1 = 2;
@ -4345,7 +4345,7 @@ s32 BossTw_BlastShieldCheck(BossTw* this, GlobalContext* globalCtx) {
if (info->toucher.dmgFlags & DMG_SHIELD) {
this->work[INVINC_TIMER] = 7;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
func_800AA000(0.0f, 100, 5, 4);
if (Player_HasMirrorShieldEquipped(globalCtx)) {
@ -4683,7 +4683,7 @@ void BossTw_UpdateEffects(GlobalContext* globalCtx) {
}
sTwinrovaPtr->twinrovaStun = 1;
globalCtx->envCtx.unk_D8 = 1.0f;
globalCtx->envCtx.lightBlend = 1.0f;
eff->type = TWEFF_NONE;
}
}