0ad/source/sced/EditorData.h
2004-05-30 00:46:58 +00:00

83 lines
1.7 KiB
C++
Executable File

#ifndef _EDITORDATA_H
#define _EDITORDATA_H
#include "MiniMap.h"
#include "InfoBox.h"
#include "PaintTextureTool.h"
#include "NaviCam.h"
#include "CStr.h"
#include "Terrain.h"
#include "Renderer.h"
#include "Camera.h"
#include "LightEnv.h"
class CEditorData
{
public:
enum EditMode { SCENARIO_EDIT, UNIT_EDIT, BRUSH_EDIT, TEST_MODE };
public:
CEditorData();
void SetMode(EditMode mode);
EditMode GetMode() const { return m_Mode; }
// initialise editor at given width, height and bpp
bool Init();
void Terminate();
void OnCameraChanged();
void OnDraw();
void OnScreenShot(const char* filename);
CInfoBox& GetInfoBox() { return m_InfoBox; }
// terrain plane
CPlane m_TerrainPlane;
// set the scenario name
void SetScenarioName(const char* name) { m_ScenarioName=name; }
// get the scenario name
const char* GetScenarioName() const { return (const char*) m_ScenarioName; }
bool LoadTerrain(const char* filename);
// update time dependent data in the world to account for changes over
// the given time (in ms)
void UpdateWorld(float time);
void RenderNoCull();
private:
bool InitScene();
void LoadAlphaMaps();
void InitResources();
void InitCamera();
void RenderTerrain();
void RenderModels();
void RenderWorld();
void RenderObEdGrid();
void InitSingletons();
void StartTestMode();
void StopTestMode();
// current editing mode
EditMode m_Mode;
// camera to use in object viewing mode
CCamera m_ObjectCamera;
// transform of model in object viewing mode
CMatrix3D m_ModelMatrix;
// information panel
CInfoBox m_InfoBox;
// the (short) name of this scenario used in title bar and as default save name
CStr m_ScenarioName;
};
extern CEditorData g_EditorData;
extern CTerrain g_Terrain;
extern CLightEnv g_LightEnv;
#endif