* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there.
* Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.
Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.
Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).
With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?
Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
* Adds a verb for debugging any of the running process controllers. Unlike the old debug controller verb, this one is not hard coded, so any present and future processes will be included. Requires R_DEBUG (and R_ADMIN if in paranoid mode)
* Adds a verb for debugging the process scheduler itself. This is hidden by default until debug verbs are shown. Requires R_DEBUG (and R_ADMIN if in paranoid mode)
* Adds system for turfs to have "footstep sounds" that play when someone walks over them.
* Adds system for floor types (the kind of turfs where you can put tiles on them) to support the footstep sounds.
* Adds sounds to plating, tiles, wood, and carpet floor types.
* Footstep sound system is configurable in game_options.txt, it can be turned off completely or the volume adjusted.
* If the "scheduler" controller is restarted by the process scheduler for
any reason, it will start throwing runtimes every status panel update
because the new replacement instance doesn't initialize its list of
schedule tasks.
* Fix that by copying over the unfinished list from the old instance, but
doing some safety checks to make sure it doesn't copy over bad stuff.
* Any nulls present in the mob_list would cause a runtime when checked if they are gcDestroyed. Add a null check.
* Noticed that the object controller has the same bug, might as well fix now too.
* Any nulls present in the mob_list would cause a runtime when checked if they are gcDestroyed. Add a null check.
* Noticed that the object controller has the same bug, might as well fix now too.
* Adds a global hook for when the supply shuttle reaches centcom. The existing sell_crate hook is too limited, as it only detects what is in crates, and is fired many times, making it hard to produce a summary for events that might want stuff shipped on the shuttle.
Adds random space traffic control chatter during the game. It's rare, not spammy. Like every 35 minutes it has one short conversation.
It adds a bunch of lore datums about different parties in space and ship names and stuff. That can be used for other stuff later.
If you find it annoying, you can disable it at the comms consoles (don't need to log in, anyone can do it).
***Normal traffic***
[Common] SCV Falken states, "Virgo TraCon, this is Federation SCV Falken on a military route to the Gateway 98-C at Arest, requesting refueling information."
[Common] Virgo Air/Space Control states, "Federation SCV Falken, this is Virgo TraCon, sending refueling information now."
[Common] SCV Falken states, "Virgo TraCon, thank you, good day."
***5% chance of wrong frequency***
[Common] SDV Lucina states, "Sol Command, this is Federation SDV Lucina on a diplomatic flight to NSB Checkmate, requesting remote telemetry data."
[Common] Virgo Air/Space Control states, "Federation SDV Lucina, this is Virgo TraCon, wrong frequency. Switch to 855.2."
[Common] SDV Lucina states, "Virgo TraCon, understood, apologies."
***2% chance of emergency traffic***
[Common] UNSC Colorado states, "This is Navy UNSC Colorado declaring an emergency! We have unknown life forms on board!"
[Common] Virgo Air/Space Control states, "Navy UNSC Colorado, this is Virgo TraCon, copy. Switch to emergency responder channel 639.2."
[Common] UNSC Colorado states, "Virgo TraCon, okay, switching now."
Links many map-specific details such as the station name, z-level information, and allowed jobs from global vars to map datum vars, which should help us maintain multiple maps at once in the future, which will be needed for the future Southern Cross.
Note that a config change will be needed to change GENERATE_ASTEROID to GENERATE_MAP, otherwise no changes should be required to continue normal map usage.
To change to a different map, it's suggested to tick the file that ticks all the other needed files, which for the Northern Star is called northern_star.dm.
Okay, the administration shuttle isn't new, I just made it more comprehensive.
-Made it easier to create multi-destination shuttles for player-use when not antags. The existing ones were pretty geared towards the Mercenary game mode. Now it's pretty easy to make a shuttle that goes a bunch of places.
-Redesigned admin shuttle (pac-man shaped one at CC) to be multi-destination shuttle more capable of supporting RP. Can be used on 'hard' away missions by putting in the appropriate area in the away mission (`/area/shuttle/administration/away_mission`). Or, hell, include it on every new away mission and say that it's the E-Z mode version of that mission.
-Added new AwayMission shuttle to Dock 1. By default it can only go between the station and the old abandoned construction site, but if it detects that there's a map loaded with the appropriate area (`/area/shuttle/awaymission/away`), then it will be available for travel to that destination as well, listed as "Unknown Location". The shape of the area should be 13 wide x 5 tall. The shuttle opens to the right, in the center of the 5.
-Redid several parts of Centcom. Nothing too huge. Mostly made some hallways less barren, allowed access to the trams area on the right by default for shift-end people to use the trams, tweaked a couple of hallways to make sense (going through the bridge to get to a security checkpoint?) and added a couple more potted plants for good measure. Mostly added windows because several hallways were just... like... I feel like I'm underground.
-Changes on z1: Added away shuttle to dock.
-Changes on z2: Lots, see above.
-Changes on z4: Add area for Away Mission shuttle.
* Transmit a message to a webhook that sends a message to discord when an admin fax is sent.
* Its not feasible to send the text of the fax (considering it might be just a picture!) to discord, so instead we export it to a file, and discord links back to it.
* Obviously to fully work this also requires a webhook script and webhosting of the faxes folder.