mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-10 05:57:48 +00:00
Added Game Mode in the World Editor
This commit is contained in:
@@ -219,7 +219,7 @@ void CSceneManager::AddSceneToRenderer(CRenderer *pRenderer, const SViewInfo& Vi
|
||||
{
|
||||
ERenderOptions Options = pRenderer->RenderOptions();
|
||||
|
||||
if (Options & eDrawWorld)
|
||||
if (Options & eDrawWorld || ViewInfo.GameMode)
|
||||
{
|
||||
for (u32 n = 0; n < mModelNodes.size(); n++)
|
||||
if (mModelNodes[n]->IsVisible())
|
||||
@@ -230,21 +230,21 @@ void CSceneManager::AddSceneToRenderer(CRenderer *pRenderer, const SViewInfo& Vi
|
||||
mStaticNodes[n]->AddToRenderer(pRenderer, ViewInfo);
|
||||
}
|
||||
|
||||
if (Options & eDrawWorldCollision)
|
||||
if (Options & eDrawWorldCollision && !ViewInfo.GameMode)
|
||||
{
|
||||
for (u32 n = 0; n < mCollisionNodes.size(); n++)
|
||||
if (mCollisionNodes[n]->IsVisible())
|
||||
mCollisionNodes[n]->AddToRenderer(pRenderer, ViewInfo);
|
||||
}
|
||||
|
||||
if (Options & eDrawLights)
|
||||
if (Options & eDrawLights && !ViewInfo.GameMode)
|
||||
{
|
||||
for (u32 n = 0; n < mLightNodes.size(); n++)
|
||||
if (mLightNodes[n]->IsVisible())
|
||||
mLightNodes[n]->AddToRenderer(pRenderer, ViewInfo);
|
||||
}
|
||||
|
||||
if ((Options & eDrawObjects) || (Options & eDrawObjectCollision))
|
||||
if ((Options & eDrawObjects) || (Options & eDrawObjectCollision) || ViewInfo.GameMode)
|
||||
{
|
||||
for (u32 n = 0; n < mScriptNodes.size(); n++)
|
||||
if (mScriptNodes[n]->IsVisible())
|
||||
@@ -271,6 +271,16 @@ SRayIntersection CSceneManager::SceneRayCast(const CRay& Ray, const SViewInfo& V
|
||||
((renderOptions & ((ERenderOptions) (eDrawObjects | eDrawObjectCollision))) != 0), ((renderOptions & eDrawLights) != 0)
|
||||
};
|
||||
|
||||
// Override visibility for game mode
|
||||
if (ViewInfo.GameMode)
|
||||
{
|
||||
NodesVisible[0] = false;
|
||||
NodesVisible[1] = true;
|
||||
NodesVisible[2] = false;
|
||||
NodesVisible[3] = true;
|
||||
NodesVisible[4] = false;
|
||||
}
|
||||
|
||||
// Less hacky stuff
|
||||
CRayCollisionTester Tester(Ray);
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ struct SViewInfo
|
||||
class CRenderer *pRenderer;
|
||||
|
||||
class CCamera *pCamera;
|
||||
bool GameMode;
|
||||
CFrustumPlanes ViewFrustum;
|
||||
CMatrix4f RotationOnlyViewMatrix;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user