summaryrefslogtreecommitdiff
path: root/src/core/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/main.cpp')
-rw-r--r--src/core/main.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/core/main.cpp b/src/core/main.cpp
index 8458a248..99868dbd 100644
--- a/src/core/main.cpp
+++ b/src/core/main.cpp
@@ -63,6 +63,7 @@
#include "SceneEdit.h"
#include "debugmenu.h"
#include "Clock.h"
+#include "custompipes.h"
GlobalScene Scene;
@@ -387,6 +388,9 @@ PluginAttach(void)
return FALSE;
}
+#ifdef EXTENDED_PIPELINES
+ CustomPipes::CustomPipeRegister();
+#endif
return TRUE;
}
@@ -400,7 +404,11 @@ Initialise3D(void *param)
DebugMenuInit();
DebugMenuPopulate();
#endif // !DEBUGMENU
- return CGame::InitialiseRenderWare();
+ bool ret = CGame::InitialiseRenderWare();
+#ifdef EXTENDED_PIPELINES
+ CustomPipes::CustomPipeInit(); // need Scene.world for this
+#endif
+ return ret;
}
return (FALSE);
@@ -409,6 +417,9 @@ Initialise3D(void *param)
static void
Terminate3D(void)
{
+#ifdef EXTENDED_PIPELINES
+ CustomPipes::CustomPipeShutdown();
+#endif
CGame::ShutdownRenderWare();
#ifdef DEBUGMENU
DebugMenuShutdown();
@@ -1099,6 +1110,12 @@ Idle(void *arg)
tbEndTimer("PreRender");
#endif
+#ifdef FIX_BUGS
+ // This has to be done BEFORE RwCameraBeginUpdate
+ RwCameraSetFarClipPlane(Scene.camera, CTimeCycle::GetFarClip());
+ RwCameraSetFogDistance(Scene.camera, CTimeCycle::GetFogStart());
+#endif
+
if(CWeather::LightningFlash && !CCullZones::CamNoRain()){
if(!DoRWStuffStartOfFrame_Horizon(255, 255, 255, 255, 255, 255, 255))
return;
@@ -1111,9 +1128,10 @@ Idle(void *arg)
DefinedState();
- // BUG. This has to be done BEFORE RwCameraBeginUpdate
+#ifndef FIX_BUGS
RwCameraSetFarClipPlane(Scene.camera, CTimeCycle::GetFarClip());
RwCameraSetFogDistance(Scene.camera, CTimeCycle::GetFogStart());
+#endif
#ifdef TIMEBARS
tbStartTimer(0, "RenderScene");
@@ -1122,6 +1140,11 @@ Idle(void *arg)
#ifdef TIMEBARS
tbEndTimer("RenderScene");
#endif
+
+#ifdef EXTENDED_PIPELINES
+ CustomPipes::EnvMapRender();
+#endif
+
RenderDebugShit();
RenderEffects();