1
0
forked from mirrors/0ad

Global variables are nasty. Hacked g_Terrain into a pointer so that it doesn't crash when automatically destructing, although it ought to be handled in a nicer way.

This was SVN commit r839.
This commit is contained in:
Ykkrosh
2004-07-28 19:27:35 +00:00
parent ec506d0099
commit d2070837d2
4 changed files with 12 additions and 3 deletions
+4 -1
View File
@@ -77,6 +77,9 @@ private:
u16* m_Heightmap;
};
extern CTerrain g_Terrain;
extern CTerrain* g_Terrain_ptr;
#ifndef g_Terrain
#define g_Terrain (*g_Terrain_ptr)
#endif
#endif
+5
View File
@@ -662,6 +662,8 @@ static void Shutdown()
{
psShutdown(); // Must delete g_GUI before g_ScriptingHost
delete g_Game;
delete &g_Scheduler;
delete &g_Mouseover;
@@ -679,6 +681,7 @@ static void Shutdown()
// destroy terrain related stuff
delete &g_TexMan;
delete &g_Terrain;
// destroy renderer
delete &g_Renderer;
@@ -827,6 +830,8 @@ PREVTSC=CURTSC;
MICROLOG(L"init renderer");
g_Renderer.Open(g_xres,g_yres,g_bpp);
g_Terrain_ptr = new CTerrain;
// terr_init loads a bunch of resources as well as setting up the terrain
terr_init();
+1 -1
View File
@@ -9,7 +9,7 @@
#include "Game.h"
#include "Terrain.h"
CTerrain g_Terrain;
CTerrain* g_Terrain_ptr = NULL;
void CWorld::Initialize(CGameAttributes *pAttribs)
{
+2 -1
View File
@@ -5,7 +5,8 @@ class CGame;
class CGameAttributes;
class CTerrain;
extern CTerrain g_Terrain;
extern CTerrain* g_Terrain_ptr;
#define g_Terrain (*g_Terrain_ptr)
#include "UnitManager.h"