summaryrefslogtreecommitdiffhomepage
path: root/Starshatter
diff options
context:
space:
mode:
Diffstat (limited to 'Starshatter')
-rw-r--r--Starshatter/CMakeLists.txt23
-rw-r--r--Starshatter/Main.cpp150
-rw-r--r--Starshatter/Stars.icobin0 -> 2998 bytes
-rw-r--r--Starshatter/Starshatter.rc.conf39
-rw-r--r--Starshatter/resource.h6
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
new file mode 100644
index 0000000..69980ca
--- /dev/null
+++ b/Starshatter/Stars.ico
Binary files differ
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