From e33e19d0587146859d48a134ec9fd94e7b7ba5cd Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Thu, 8 Dec 2011 14:53:40 +0000 Subject: Initial upload --- Stars45/Main.cpp | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 Stars45/Main.cpp (limited to 'Stars45/Main.cpp') diff --git a/Stars45/Main.cpp b/Stars45/Main.cpp new file mode 100644 index 0000000..c71bd4d --- /dev/null +++ b/Stars45/Main.cpp @@ -0,0 +1,186 @@ +/* Project Starshatter 4.5 + Destroyer Studios LLC + Copyright © 1997-2004. All Rights Reserved. + + SUBSYSTEM: Stars.exe + FILE: main.cpp + AUTHOR: John DiCamillo +*/ + + +#include "MemDebug.h" +#include "Starshatter.h" +#include "StarServer.h" +#include "Authorization.h" +#include "HUDView.h" + +#include "NetHost.h" +#include "NetAddr.h" +#include "NetLayer.h" +#include "NetBrokerClient.h" +#include "NetClient.h" +#include "HttpClient.h" + +#include "Color.h" +#include "DataLoader.h" +#include "Pcx.h" +#include "MachineInfo.h" +#include "Encrypt.h" +#include "FormatUtil.h" +#include "ParseUtil.h" +#include "Random.h" + +// +--------------------------------------------------------------------+ +// WinMain +// +--------------------------------------------------------------------+ + +extern FILE* ErrLog; +extern int VD3D_describe_things; +int dump_missions = 0; + +#ifdef STARSHATTER_DEMO_RELEASE +const char* versionInfo = "5.0 DEMO"; +#else +const char* versionInfo = "5.0.4"; +#endif + +static void PrintLogHeader() +{ + Text sTime = FormatTimeString(); + + Print("+====================================================================+\n"); + Print("| STARSHATTER %-25s%29s |\n", versionInfo, sTime.data()); + + Memory::SetLevel(Memory::MAXIMAL); + Memory::OpenLog(); + MachineInfo::DescribeMachine(); +} + +int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nCmdShow) +{ + int result = 0; + int test_mode = 0; + int do_server = 0; + + if (strstr(lpCmdLine, "-server")) + ErrLog = fopen("serverlog.txt", "w"); + else + ErrLog = fopen("errlog.txt", "w"); + + PrintLogHeader(); + + if (strstr(lpCmdLine, "-test")) { + Print(" Request TEST mode\n"); + test_mode = 1; + } + + if (strstr(lpCmdLine, "-fps")) { + HUDView::ShowFPS(true); + } + + if (strstr(lpCmdLine, "-dump")) { + Print(" Request dump dynamic missions\n"); + dump_missions = 1; + } + + if (strstr(lpCmdLine, "-lan")) { + Print(" Request LAN ONLY mode\n"); + NetBrokerClient::Disable(); + } + + if (strstr(lpCmdLine, "-server")) { + do_server = 1; + Print(" Request Standalone Server Mode\n"); + } + + char* d3dinfo = strstr(lpCmdLine, "-d3d"); + if (d3dinfo) { + int n = d3dinfo[4] - '0'; + + if (n >= 0 && n <= 5) + VD3D_describe_things = n; + + Print(" D3D Info Level: %d\n", VD3D_describe_things); + } + else { + VD3D_describe_things = 0; + } + + + // FREE VERSION - AUTHORIZATION DISABLED + /* + ::Print(" Checking authorization codes...\n"); + if (!Authorization::IsUserAuthorized()) { + if (!DataLoader::GetLoader()) { + DataLoader::Initialize(); + DataLoader::GetLoader()->EnableDatafile("content.dat"); + } + + Game* game = new Game(); + game->InitContent(); + + MessageBox(0, FormatTextEscape(Game::GetText("main.auth-invalid")).data(), + Game::GetText("main.title.error").data(), MB_OK); + ::Print(" Not authorized.\n"); + + delete game; + DataLoader::Close(); + } + else { + ::Print(" Authorized\n"); + */ + try { + NetLayer net; + + if (do_server) { + StarServer* server = new(__FILE__,__LINE__) StarServer(); + + if (server->Init(hInstance, hPrevInstance, lpCmdLine, nCmdShow)) + result = server->Run(); + + Print("\n+====================================================================+\n"); + Print(" Begin Shutdown...\n"); + + delete server; + } + + else { + Starshatter* stars = 0; + + stars = new(__FILE__,__LINE__) Starshatter; + stars->SetTestMode(test_mode); + + if (stars->Init(hInstance, hPrevInstance, lpCmdLine, nCmdShow)) + result = stars->Run(); + + Print("\n+====================================================================+\n"); + Print(" Begin Shutdown...\n"); + + delete stars; + } + + Token::close(); + + if (*Game::GetPanicMessage()) + MessageBox(0, Game::GetPanicMessage(), "Starshatter - Error", MB_OK); + } + + catch (const char* msg) { + Print(" FATAL EXCEPTION: '%s'\n", msg); + } + /* } */ + + Memory::Stats(); + Memory::DumpLeaks(); + Memory::CloseLog(); + + Print("+====================================================================+\n"); + Print(" END OF LINE.\n"); + + fclose(ErrLog); + + return result; +} + + -- cgit v1.1