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:
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user