Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
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.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
Changes the Death Alarms from announcing to general comms, to just
Security and Medical. Because sometimes hearing your best friend has
died over Common channel is not the best scenario to hear that someone's
died.
Used the captain's headset to keep things slightly cleaner, and it gets
deleted after as far as I can tell.
Created a proc for being implanted with loyalty implant which
checks for the configuration for whether or not it will work. If it is
enabled, it continues on-- if it is disabled, it returns from the proc.
Also made secure closets not automatically spawn them unless the config
is set to allow it.
Admin 'loyalty implanting' via the panel is now compliant to the
configuration file. If preferred, I am willing to make an override variable
to the proc that will allow admins to do it anyway.
Supply pack for it commented out due to inability to make it conform.
Easy enough to re-add back for anyone downstream if they wish it. Same
applies to the design.
Signed-off-by: Decius <deciusreln97@gmail.com>
Derp fix on objects, we check mob contents instead of src.contents for any objects that can hear and pass hear_talk on to it.
Tape recorder will record the verb sent instead of doing it's own thing with verbs.