absolute minimum compile flag (#93255)

loads a smaller centcomm and map, this reduces init time to like 10
seconds.
## Why It's Good For The Game
for when you want to test something real quick and you don't need a full
environment
This commit is contained in:
die
2025-10-04 15:13:50 +03:00
committed by GitHub
parent a378b2eb53
commit 680f02c45b
8 changed files with 1862 additions and 0 deletions

7
.vscode/launch.json vendored
View File

@@ -15,6 +15,13 @@
"preLaunchTask": "Build All (low memory mode)",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
},
{
"type": "byond",
"request": "launch",
"name": "Launch DreamSeeker (absolute minimum)",
"preLaunchTask": "Build All (absolute minimum)",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
},
{
"type": "byond",
"request": "launch",

20
.vscode/tasks.json vendored
View File

@@ -40,6 +40,26 @@
"dependsOn": "dm: reparse",
"label": "Build All (low memory mode)"
},
{
"type": "process",
"command": "tools/build/build.sh",
"args": ["-DLOWMEMORYMODE", "-DABSOLUTE_MINIMUM"],
"windows": {
"command": ".\\tools\\build\\build.bat",
"args": ["-DLOWMEMORYMODE", "-DABSOLUTE_MINIMUM"]
},
"options": {
"env": {
"DM_EXE": "${config:dreammaker.byondPath}"
}
},
"problemMatcher": ["$dreammaker", "$tsc", "$eslint-stylish"],
"group": {
"kind": "build"
},
"dependsOn": "dm: reparse",
"label": "Build All (absolute minimum)"
},
{
"type": "process",
"command": "tools/build/build.sh",

View File

@@ -1,6 +1,15 @@
//#define LOWMEMORYMODE //uncomment this to load centcom and runtime station and thats it.
//#define ABSOLUTE_MINIMUM //uncomment this to load a smaller centcomm and smaller runtime station, only works together with LOWMEMORYMODE
#ifdef ABSOLUTE_MINIMUM
#define LOWMEMORYMODE
#endif
#ifndef ABSOLUTE_MINIMUM
#include "map_files\generic\CentCom.dmm"
#else
#include "map_files\generic\CentCom_minimal.dmm"
#endif
#ifndef LOWMEMORYMODE
#ifdef ALL_MAPS

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,570 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/open/floor/iron,
/area/centcom/central_command_areas/control)
"g" = (
/obj/machinery/light/floor,
/turf/open/floor/iron,
/area/centcom/central_command_areas/control)
"h" = (
/turf/closed/indestructible/riveted,
/area/centcom/central_command_areas/control)
"x" = (
/obj/effect/landmark/error,
/turf/open/floor/iron,
/area/centcom/central_command_areas/control)
"A" = (
/turf/cordon,
/area/space)
"G" = (
/turf/closed/indestructible/splashscreen,
/area/space)
"W" = (
/obj/effect/landmark/start/new_player,
/turf/cordon,
/area/space)
(1,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
G
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
"}
(2,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(3,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(4,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(5,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
g
a
a
a
a
a
a
h
"}
(6,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(7,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(8,1,1) = {"
A
A
A
A
A
A
A
W
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(9,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
g
a
a
a
g
x
a
a
g
a
a
h
"}
(10,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(11,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(12,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(13,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
g
a
a
a
a
a
a
h
"}
(14,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(15,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(16,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
a
a
a
a
a
a
a
a
a
a
a
a
a
h
"}
(17,1,1) = {"
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
"}

View File

@@ -0,0 +1,19 @@
{
"version": 1,
"map_name": "Minimal Runtime Station",
"map_path": "map_files/debug",
"map_file": "runtimestation_minimal.dmm",
"space_ruin_levels": 1,
"ignored_unit_tests": [
"/datum/unit_test/cargo_dep_order_locations",
"/datum/unit_test/job_roundstart_spawnpoints",
"/datum/unit_test/required_map_items",
"/datum/unit_test/spy_bounty",
"/datum/unit_test/space_dragon_expiration",
"/datum/unit_test/nuke_cinematic",
"/datum/unit_test/atmospherics_sanity",
"/datum/unit_test/mapload_space_verification",
"/datum/unit_test/modify_fantasy_variable",
"/datum/unit_test/create_and_destroy"
]
}

View File

@@ -141,7 +141,11 @@
// 2 for preloading absolutely everything;
#ifdef LOWMEMORYMODE
#ifndef ABSOLUTE_MINIMUM
#define FORCE_MAP "runtimestation"
#else
#define FORCE_MAP "runtimestation_minimal"
#endif
#define FORCE_MAP_DIRECTORY "_maps"
#endif

View File

@@ -14,7 +14,11 @@ SUBSYSTEM_DEF(ticker)
/// or a "round-ending" event, like summoning Nar'Sie, a blob victory, the nuke going off, etc. ([FORCE_END_ROUND])
var/force_ending = END_ROUND_AS_NORMAL
/// If TRUE, there is no lobby phase, the game starts immediately.
#ifdef ABSOLUTE_MINIMUM
var/start_immediately = TRUE
#else
var/start_immediately = FALSE
#endif
/// Boolean to track and check if our subsystem setup is done.
var/setup_done = FALSE