mirror of https://github.com/PrimeDecomp/prime.git
parent
bacc5daa55
commit
5d42957243
|
@ -504,28 +504,35 @@ void CScriptSpecialFunction::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScriptSpecialFunction::PreRender(CStateManager&, const CFrustumPlanes& frustum) {
|
void CScriptSpecialFunction::PreRender(CStateManager&, const CFrustumPlanes& frustum) {
|
||||||
if (xe8_function != kSF_FogVolume && xe8_function != kSF_ViewFrustumTester) {
|
switch (xe8_function) {
|
||||||
return;
|
case kSF_FogVolume:
|
||||||
}
|
case kSF_ViewFrustumTester: {
|
||||||
if (!GetActive()) {
|
if (!GetActive()) {
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool val;
|
bool val;
|
||||||
if (xe8_function == kSF_FogVolume) {
|
if (xe8_function == kSF_FogVolume) {
|
||||||
val = frustum.BoxInFrustumPlanes(
|
CVector3f pos = GetTranslation();
|
||||||
CAABox(GetTranslation() - x10c_vector3f, GetTranslation() + x10c_vector3f));
|
CVector3f max = pos + x10c_vector3f;
|
||||||
} else {
|
max[kDZ] += xfc_float1;
|
||||||
val = frustum.PointInFrustumPlanes(GetTranslation());
|
CAABox aabb(pos - x10c_vector3f, max);
|
||||||
}
|
val = frustum.BoxInFrustumPlanes(aabb);
|
||||||
|
} else {
|
||||||
|
val = frustum.PointInFrustumPlanes(GetTranslation());
|
||||||
|
}
|
||||||
|
|
||||||
if (x1e4_30_ == val) {
|
if (x1e4_30_ == val) {
|
||||||
return;
|
break;
|
||||||
|
}
|
||||||
|
if (val) {
|
||||||
|
x1e4_28_frustumEntered = true;
|
||||||
|
} else {
|
||||||
|
x1e4_29_frustumExited = true;
|
||||||
|
}
|
||||||
|
x1e4_30_ = val;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (!val) {
|
|
||||||
x1e4_29_frustumExited = true;
|
|
||||||
} else {
|
|
||||||
x1e4_28_frustumEntered = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue