summaryrefslogtreecommitdiffhomepage
path: root/Stars45/GameWinDX9.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Stars45/GameWinDX9.cpp')
-rw-r--r--Stars45/GameWinDX9.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/Stars45/GameWinDX9.cpp b/Stars45/GameWinDX9.cpp
index 19fe60d..2cd4fbe 100644
--- a/Stars45/GameWinDX9.cpp
+++ b/Stars45/GameWinDX9.cpp
@@ -7,6 +7,9 @@
#include "GameWinDX9.h"
#include "Game.h"
+#include "MachineInfo.h"
+#include "Panic.h"
+#include "Types.h"
GameWinDX9::GameWinDX9()
@@ -17,3 +20,55 @@ GameWinDX9::GameWinDX9()
GameWinDX9::~GameWinDX9()
{
}
+
+
+bool
+GameWinDX9::Init(HINSTANCE hi, HINSTANCE hpi, LPSTR cmdline, int nCmdShow)
+{
+ status = OK;
+ hInst = hi;
+
+ Print(" Initializing Game\n");
+
+ stats.Clear();
+
+ if (!InitApplication(hInst)) { // Initialize shared things
+ Panic::Panic("Could not initialize the application.");
+ status = INIT_FAILED;
+ }
+
+ if (status == OK && !video_settings) {
+ Panic::Panic("No video settings specified");
+ status = INIT_FAILED;
+ }
+
+ if (status == OK) {
+ static int os_version = MachineInfo::GetPlatform();
+
+ if (os_version == MachineInfo::OS_WIN95 || os_version == MachineInfo::OS_WIN98) {
+ Panic::Panic(" Windows 95 and 98 are no longer supported. Please update to Windows XP or higher.");
+ status = INIT_FAILED;
+ } else if (os_version == MachineInfo::OS_WINNT) {
+ Panic::Panic(" D3D not available under WinNT 4");
+ status = INIT_FAILED;
+ } else if (MachineInfo::GetDirectXVersion() < MachineInfo::DX_9) {
+ Panic::Panic(" Insufficient DirectX detected (Dx9 IS REQUIRED)");
+ status = INIT_FAILED;
+ }
+
+ Print(" Gamma Level = %d\n", gamma);
+ }
+
+ if (status == OK) {
+ Print("\n Initializing instance...\n");
+ // Perform initializations that apply to a specific instance
+ if (!InitInstance(hInst, nCmdShow)) {
+ Panic::Panic("Could not initialize the instance.");
+ status = INIT_FAILED;
+ }
+ }
+
+ if (status != OK)
+ return false;
+ return Game::Init(hi, hpi, cmdline, nCmdShow);
+}