summaryrefslogtreecommitdiffhomepage
path: root/nGenEx/Game.h
diff options
context:
space:
mode:
Diffstat (limited to 'nGenEx/Game.h')
-rw-r--r--nGenEx/Game.h336
1 files changed, 168 insertions, 168 deletions
diff --git a/nGenEx/Game.h b/nGenEx/Game.h
index ceec324..82864da 100644
--- a/nGenEx/Game.h
+++ b/nGenEx/Game.h
@@ -1,10 +1,10 @@
/* Project nGenEx
- Destroyer Studios LLC
- Copyright © 1997-2004. All Rights Reserved.
+ Destroyer Studios LLC
+ Copyright © 1997-2004. All Rights Reserved.
- SUBSYSTEM: nGenEx.lib
- FILE: Game.h
- AUTHOR: John DiCamillo
+ SUBSYSTEM: nGenEx.lib
+ FILE: Game.h
+ AUTHOR: John DiCamillo
*/
@@ -46,171 +46,171 @@ class Text;
class Game
{
public:
- static const char* TYPENAME() { return "Game"; }
- enum STATUS { OK, RUN, EXIT, PANIC, INIT_FAILED, TOO_MANY };
-
- Game();
- virtual ~Game();
-
- //
- // MAIN GAME FUNCTIONALITY:
- //
-
- virtual bool Init(HINSTANCE hi, HINSTANCE hpi, LPSTR cmdline, int nCmdShow);
- virtual int Run();
- virtual void Exit();
- virtual bool OnPaint() { return false; }
- virtual bool OnHelp() { return false; }
-
- virtual void Activate(bool f);
- virtual void Pause(bool f);
- int Status() const { return status; }
-
- virtual void ScreenCapture(const char* name = 0);
- virtual void AVICapture(const char* fname = 0);
-
- const RenderStats& GetPolyStats() { return stats; }
-
- //
- // GENERAL GAME CLASS UTILITY METHODS:
- //
-
- static void Panic(const char* msg=0);
- static bool DisplayModeSupported(int w, int h, int bpp);
- static int MaxTexSize();
- static int MaxTexAspect();
- static int GammaLevel();
- static void SetGammaLevel(int g);
- static void SetMaxTexSize(int n);
-
- static DWORD RealTime();
- static DWORD GameTime();
- static DWORD TimeCompression();
- static void SetTimeCompression(DWORD comp);
- static DWORD Frame();
- static void ResetGameTime();
- static void SkipGameTime(double seconds);
-
- static double FrameRate();
- static double FrameTime();
- static double GUITime();
- static void SetMaxFrameLength(double seconds) { max_frame_length = seconds; }
- static void SetMinFrameLength(double seconds) { min_frame_length = seconds; }
- static double GetMaxFrameLength() { return max_frame_length; }
- static double GetMinFrameLength() { return min_frame_length; }
-
- static Game* GetInstance();
- static Video* GetVideo();
- static Color GetScreenColor();
- static void SetScreenColor(Color c);
- static int GetScreenWidth();
- static int GetScreenHeight();
-
- static bool Active() { return active; }
- static bool Paused() { return paused; }
- static bool Server() { return server; }
- static bool ShowMouse() { return show_mouse; }
- static bool IsWindowed();
-
- static HINSTANCE GetHINST();
- static HWND GetHWND();
-
- static void UseLocale(Locale* locale);
- static Text GetText(const char* key);
-
- static const char* GetPanicMessage() { return panicbuf; }
-
- virtual bool GameLoop();
- virtual void UpdateWorld();
- virtual void GameState();
- virtual void UpdateScreen();
- virtual void CollectStats();
-
- virtual bool InitApplication(HINSTANCE);
- virtual bool InitInstance(HINSTANCE, int);
- virtual bool InitContent();
- virtual bool InitGame();
- virtual bool InitVideo();
- virtual bool ResizeVideo();
- virtual bool ResetVideo();
- virtual bool ToggleFullscreen();
- virtual bool AdjustWindowForChange();
-
- virtual bool SetupPalette();
- virtual bool LoadPalette(PALETTEENTRY* pal, BYTE* inv);
- virtual void ShowStats();
+ static const char* TYPENAME() { return "Game"; }
+ enum STATUS { OK, RUN, EXIT, PANIC, INIT_FAILED, TOO_MANY };
+
+ Game();
+ virtual ~Game();
+
+ //
+ // MAIN GAME FUNCTIONALITY:
+ //
+
+ virtual bool Init(HINSTANCE hi, HINSTANCE hpi, LPSTR cmdline, int nCmdShow);
+ virtual int Run();
+ virtual void Exit();
+ virtual bool OnPaint() { return false; }
+ virtual bool OnHelp() { return false; }
+
+ virtual void Activate(bool f);
+ virtual void Pause(bool f);
+ int Status() const { return status; }
+
+ virtual void ScreenCapture(const char* name = 0);
+ virtual void AVICapture(const char* fname = 0);
+
+ const RenderStats& GetPolyStats() { return stats; }
+
+ //
+ // GENERAL GAME CLASS UTILITY METHODS:
+ //
+
+ static void Panic(const char* msg=0);
+ static bool DisplayModeSupported(int w, int h, int bpp);
+ static int MaxTexSize();
+ static int MaxTexAspect();
+ static int GammaLevel();
+ static void SetGammaLevel(int g);
+ static void SetMaxTexSize(int n);
+
+ static DWORD RealTime();
+ static DWORD GameTime();
+ static DWORD TimeCompression();
+ static void SetTimeCompression(DWORD comp);
+ static DWORD Frame();
+ static void ResetGameTime();
+ static void SkipGameTime(double seconds);
+
+ static double FrameRate();
+ static double FrameTime();
+ static double GUITime();
+ static void SetMaxFrameLength(double seconds) { max_frame_length = seconds; }
+ static void SetMinFrameLength(double seconds) { min_frame_length = seconds; }
+ static double GetMaxFrameLength() { return max_frame_length; }
+ static double GetMinFrameLength() { return min_frame_length; }
+
+ static Game* GetInstance();
+ static Video* GetVideo();
+ static Color GetScreenColor();
+ static void SetScreenColor(Color c);
+ static int GetScreenWidth();
+ static int GetScreenHeight();
+
+ static bool Active() { return active; }
+ static bool Paused() { return paused; }
+ static bool Server() { return server; }
+ static bool ShowMouse() { return show_mouse; }
+ static bool IsWindowed();
+
+ static HINSTANCE GetHINST();
+ static HWND GetHWND();
+
+ static void UseLocale(Locale* locale);
+ static Text GetText(const char* key);
+
+ static const char* GetPanicMessage() { return panicbuf; }
+
+ virtual bool GameLoop();
+ virtual void UpdateWorld();
+ virtual void GameState();
+ virtual void UpdateScreen();
+ virtual void CollectStats();
+
+ virtual bool InitApplication(HINSTANCE);
+ virtual bool InitInstance(HINSTANCE, int);
+ virtual bool InitContent();
+ virtual bool InitGame();
+ virtual bool InitVideo();
+ virtual bool ResizeVideo();
+ virtual bool ResetVideo();
+ virtual bool ToggleFullscreen();
+ virtual bool AdjustWindowForChange();
+
+ virtual bool SetupPalette();
+ virtual bool LoadPalette(PALETTEENTRY* pal, BYTE* inv);
+ virtual void ShowStats();
protected:
- friend bool ProfileGameLoop(void);
- friend LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM uParam, LPARAM lParam);
-
- ContentBundle* content;
- Universe* world;
- VideoFactory* video_factory;
- Video* video;
- VideoSettings* video_settings;
- SoundCard* soundcard;
- Screen* screen;
- int gamma;
- int max_tex_size;
-
- RenderStats stats;
- DWORD totaltime;
-
- PALETTEENTRY standard_palette[256];
- BYTE inverse_palette[32768];
-
- HINSTANCE hInst;
- HWND hwnd;
- HMENU hmenu;
- DWORD winstyle;
-
- char* app_name;
- char* title_text;
- char* palette_name;
-
- // Internal variables for the state of the app
- bool is_windowed;
- bool is_active;
- bool is_device_lost;
- bool is_minimized;
- bool is_maximized;
- bool ignore_size_change;
- bool is_device_initialized;
- bool is_device_restored;
- DWORD window_style; // Saved window style for mode switches
- RECT bounds_rect; // Saved window bounds for mode switches
- RECT client_rect; // Saved client area size for mode switches
-
-
- double gui_seconds;
- double seconds;
- double frame_rate;
- int frame_count;
- int frame_count0;
- int frame_time;
- int frame_time0;
-
- int status;
- int exit_code;
- Color screen_color;
-
- AviFile* avi_file;
-
- static bool active;
- static bool paused;
- static bool server;
- static bool show_mouse;
- static DWORD base_game_time;
- static DWORD real_time;
- static DWORD game_time;
- static DWORD time_comp;
- static DWORD frame_number;
-
- static double max_frame_length;
- static double min_frame_length;
-
- static char panicbuf[256];
+ friend bool ProfileGameLoop(void);
+ friend LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM uParam, LPARAM lParam);
+
+ ContentBundle* content;
+ Universe* world;
+ VideoFactory* video_factory;
+ Video* video;
+ VideoSettings* video_settings;
+ SoundCard* soundcard;
+ Screen* screen;
+ int gamma;
+ int max_tex_size;
+
+ RenderStats stats;
+ DWORD totaltime;
+
+ PALETTEENTRY standard_palette[256];
+ BYTE inverse_palette[32768];
+
+ HINSTANCE hInst;
+ HWND hwnd;
+ HMENU hmenu;
+ DWORD winstyle;
+
+ char* app_name;
+ char* title_text;
+ char* palette_name;
+
+ // Internal variables for the state of the app
+ bool is_windowed;
+ bool is_active;
+ bool is_device_lost;
+ bool is_minimized;
+ bool is_maximized;
+ bool ignore_size_change;
+ bool is_device_initialized;
+ bool is_device_restored;
+ DWORD window_style; // Saved window style for mode switches
+ RECT bounds_rect; // Saved window bounds for mode switches
+ RECT client_rect; // Saved client area size for mode switches
+
+
+ double gui_seconds;
+ double seconds;
+ double frame_rate;
+ int frame_count;
+ int frame_count0;
+ int frame_time;
+ int frame_time0;
+
+ int status;
+ int exit_code;
+ Color screen_color;
+
+ AviFile* avi_file;
+
+ static bool active;
+ static bool paused;
+ static bool server;
+ static bool show_mouse;
+ static DWORD base_game_time;
+ static DWORD real_time;
+ static DWORD game_time;
+ static DWORD time_comp;
+ static DWORD frame_number;
+
+ static double max_frame_length;
+ static double min_frame_length;
+
+ static char panicbuf[256];
};
// +--------------------------------------------------------------------+