Fixes Modular Map Loading Runtimes (#64212)

## About The Pull Request

Moves the modmap root object's load_map() call to New(). This changes something about where it falls in init order that stops it from causing a flood of lighting runtimes. Don't ask my why, it just does.

## Why It's Good For The Game

Fixes #64192
This commit is contained in:
Thunder12345
2022-01-19 20:38:17 +00:00
committed by GitHub
parent b85c96a8b9
commit 60db0b4d3a
2 changed files with 4 additions and 0 deletions

View File

@@ -14,6 +14,8 @@ This root object handled picking and loading in map modules. It has two variable
* `var/key` - A string, used to pull a list of `.dmm` files from the configuration file. * `var/key` - A string, used to pull a list of `.dmm` files from the configuration file.
* `load_map()` - Called asynchronously in the root's `Initialize()`. This proc creates a new instance of `/datum/map_template/map_module`, ingests the configuration file `config_file` points to, and picks a `.dmm` file path which maps to the root's `key`, by picking a random filename from among those which `key` maps to, and appending it to a folder path. This file path is passed into the map templace instance's `load()`, and the template takes over. * `load_map()` - Called asynchronously in the root's `Initialize()`. This proc creates a new instance of `/datum/map_template/map_module`, ingests the configuration file `config_file` points to, and picks a `.dmm` file path which maps to the root's `key`, by picking a random filename from among those which `key` maps to, and appending it to a folder path. This file path is passed into the map templace instance's `load()`, and the template takes over.
INITIALIZE_IMMEDIATE is used to ensure the ruins are loaded at the right time to avoid runtime errors related to lighting.
### /datum/map_template/map_module ### /datum/map_template/map_module
This map templace subtype is responsible for loading in the module, it has two variables and two relevant procs. This map templace subtype is responsible for loading in the module, it has two variables and two relevant procs.

View File

@@ -11,6 +11,8 @@
/// Key used to look up the appropriate map paths in the associated .toml file /// Key used to look up the appropriate map paths in the associated .toml file
var/key = null var/key = null
INITIALIZE_IMMEDIATE(/obj/modular_map_root)
/obj/modular_map_root/Initialize(mapload) /obj/modular_map_root/Initialize(mapload)
. = ..() . = ..()
INVOKE_ASYNC(src, .proc/load_map) INVOKE_ASYNC(src, .proc/load_map)