diff options
Diffstat (limited to 'Starshatter')
-rw-r--r-- | Starshatter/CMakeLists.txt | 23 | ||||
-rw-r--r-- | Starshatter/Main.cpp | 150 | ||||
-rw-r--r-- | Starshatter/Stars.ico | bin | 0 -> 2998 bytes | |||
-rw-r--r-- | Starshatter/Starshatter.rc.conf | 39 | ||||
-rw-r--r-- | Starshatter/resource.h | 6 |
5 files changed, 218 insertions, 0 deletions
diff --git a/Starshatter/CMakeLists.txt b/Starshatter/CMakeLists.txt new file mode 100644 index 0000000..9623f9a --- /dev/null +++ b/Starshatter/CMakeLists.txt @@ -0,0 +1,23 @@ +project(Starshatter) +include(GitDescribe) +include(GitToResource) +add_executable( + Starshatter WIN32 + Main.cpp + ) +target_include_directories( + Starshatter + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ) +target_link_libraries( + Starshatter + PRIVATE StarsEx + ) +git_describe(VERSION) +git_to_resource(RC_VERSION ${VERSION}) +configure_file(Starshatter.rc.conf ${CMAKE_CURRENT_BINARY_DIR}/Starshatter.rc @ONLY) +target_sources( + Starshatter + PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/Starshatter.rc + ) +install(TARGETS Starshatter RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) diff --git a/Starshatter/Main.cpp b/Starshatter/Main.cpp new file mode 100644 index 0000000..a71476d --- /dev/null +++ b/Starshatter/Main.cpp @@ -0,0 +1,150 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo +*/ + + +#include "Starshatter.h" +#include "StarServer.h" +#include "HUDView.h" +#include "Utils.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 "Panic.h" +#include "ParseUtil.h" +#include "Random.h" +#include "VersionInfo.h" + +// +--------------------------------------------------------------------+ +// WinMain +// +--------------------------------------------------------------------+ + +extern int VD3D_describe_things; +int dump_missions = 0; + +static void PrintLogHeader() +{ + Text sTime = FormatTimeString(); + + Print("+====================================================================+\n"); + Print("| STARSHATTER %-25s%29s |\n", versionInfo, sTime.data()); + + 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")) + AssignErrLog(fopen("serverlog.txt", "wb")); + else + AssignErrLog(fopen("errlog.txt", "wb")); + + 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; + } + + try { + NetLayer net; + + if (do_server) { + StarServer* server = new 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 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 (Panic::Panicked()) + MessageBox(0, Panic::Message(), "Starshatter - Error", MB_OK); + } + + catch (const char* msg) { + Print(" FATAL EXCEPTION: '%s'\n", msg); + } + /* } */ + + Print("+====================================================================+\n"); + Print(" END OF LINE.\n"); + + CloseErrLog(); + + return result; +} + + diff --git a/Starshatter/Stars.ico b/Starshatter/Stars.ico Binary files differnew file mode 100644 index 0000000..69980ca --- /dev/null +++ b/Starshatter/Stars.ico diff --git a/Starshatter/Starshatter.rc.conf b/Starshatter/Starshatter.rc.conf new file mode 100644 index 0000000..45479d3 --- /dev/null +++ b/Starshatter/Starshatter.rc.conf @@ -0,0 +1,39 @@ +#include <winres.h> + +#include "resource.h" + +Stars ICON DISCARDABLE "Stars.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @RC_VERSION@ + PRODUCTVERSION @RC_VERSION@ + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "A military space combat simulator\0" + VALUE "CompanyName", "Starshatter: The Open Source Project Contributors\0" + VALUE "FileDescription", "Stars\0" + VALUE "FileVersion", "@VERSION@\0" + VALUE "InternalName", "Stars45\0" + VALUE "LegalCopyright", "Copyright (c) 2022, Starshatter: The Open Source Project Contributors\0" + VALUE "OriginalFilename", "Stars45.exe\0" + VALUE "ProductName", "Starshatter: The Open Source Project\0" + VALUE "ProductVersion", "@VERSION@\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/Starshatter/resource.h b/Starshatter/resource.h new file mode 100644 index 0000000..4dd9864 --- /dev/null +++ b/Starshatter/resource.h @@ -0,0 +1,6 @@ +#ifndef resource_h +#define resource_h + +#define Stars 100 + +#endif // resource_h |