This commit overhauls the underwear/undershirt system to -tg-'s text-based
version. No more magic numbers, just text states.
Note, this modifies the SQL Schema, and existing databases must be
modified by the following SQL:
ALTER TABLE server_db.characters
CHANGE underwear underwear MEDIUMTEXT NOT NULL,
CHANGE undershirt undershirt MEDIUMTEXT NOT NULL;
- Integrates Volundr's btime library and associated process scheduler
changes.
- btime is implemented separately from the process scheduler, as precise
time measurement is also useful elsewhere.
- `TimeOfHour` is no longer internally throttled; throttling is instead
done by `SCHECK`.
- If btime's `gettime` cannot be called at world startup, an error will
be output and the world will stop.
- Retains the change to schedule processes according to game time,
rather than real time.
- Removes the (now unused) update queue files.
- Removes the process scheduler testing files.
- These are standalone tests for the process scheduler, completely
unrelated to its use in the full codebase. We never used them.
- Moves the process scheduler defines into __DEFINES.
- Makes the lighting process run once before the round starts.
- Renames `scheck` to `sleepCheck`, to ensure any code that tries to use
`scheck` will fail to compile.
- Adds `SCHECK` and `SCHECK_EVERY` macros that skip calling `sleepCheck`
entirely until a specified number of `SCHECK`s (50 by default) have been
called.
- Makes most processes iterate using their `last_object` variable,
allowing hang recovery to show the type that caused the hang.
- Makes processes output an error when they filter out a type they
refuse to process.
- Rolls the recently-added alarm subsystem into the alarm process.
- Removes the now unused subsystems code.
Refactors the code for Microwaves, Ovens, Grills, and Candy Makers to
utilize a shared parent which holds the common procs.
- This means any new additions or fixes will only need to be implemented
in one place, rather than 4, to affect them all.
- Also reduces file sizes on the individual machines' files by removing
a lot of the duplicate code
Updated the code for the kitchen machines to be more modular and fixed
some issues.
- Replaced color macros with span classes
- Replaced hardcoded names with src references
- Each machine has a cook_verbs list which is used to create the in use
message (Microwaving in progress)
- Each machine has variables to define the icon states for the different
states of the machine (on, off, broken, dirty, open).
- Changed a few formerly global variables to not be global, as this
would cause issues with the shared code (microwave with candy maker
recipes for example)
Fixed a bug where the microwave would be considered "full" before having
all of the ingredients for a recipe
- Created a new proc to count the number of items and fruits in a recipe
to determine the max_n_items value
Map Edits to Cyberiad and associated Z-levels for pathing changes
(map-merged)
- MetaStation will need to be updated as well, I'll do this in another
PR unless someone else beats me to it.
Load order changes mean globals used in the initialization of intercoms
aren't created before the global_announcer intercom is created, which
causes its creation to runtime.
I have picked an effective but probably incredibly sloppy way to fix
this runtime, because I'm not actually sure where this initialization
code belongs
This commit overhauls the global.dm file, global_lists.dm file, and
defines.dm file into a tree system based on -tg-.
All defines have been split and distributed in code/__DEFINES/
Everything from global.dm and global_lists.dm has been split and
distributed in code/_globalvars
The _compile_options.dm file contains anything that absolutely, 100%, must
be initialized before world.dm.
Name definitions have been moved to code/_globalvars/lists/names.dm.
Other things to note
- All instances of something.z == 2/1/3/5 have been replaced with easily
configurable defines, labeled ZLEVEL_. The map include file can
override these by defining custom ones in it's file, as it is at the
top of the tree.
This commit adds the spacecube system from -tg-. The spacecube system
allows for predicatably random space layouts- it is randomized every
round, but the transitions stay consistant for that round, therefore
making it possible to 'map' space, or explore in teams.
This commit updates the map system to -tg- standards. All stations are
defined under _maps/, and all .dmm files go under _maps/map_files/.
Currently, only the NCS Cyberiad is setup under the system.
Misc changes:
- World Status contains the map name
- dm.sh script will allow automatic map changing between restarts.
- _globalvars folder starting to take shape, not everything is migrated
there yet.