Commit Graph

658 Commits

Author SHA1 Message Date
Lohikar
58b953a3fc Cross-Z Lighting (#2281)
This PR edits the lighting engine's turf selection algorithm to also include turfs below openturf tiles, allowing for cross-Z lighting.

changes:

Lights now will now shine down Z-levels when they light up an open turf.
Commented-out openturf starlight pending making it not pummel SSlighting.
Openspace overlays are now only queued if they are not already in the queue.
Lighting overlays will now also update their associated openturf overlay on update if they have one.
Removed an old unused message from the asteroid generation subsystem.
2017-05-20 14:24:04 +03:00
skull132
3dc10cdf2f Configable anti-macro protection (#2293)
Apparently some people spam type faster than the hardcoded variable. Fuck it, to the config it is.
2017-05-17 21:59:02 +03:00
Lohikar
c08922a181 MC subsystem tick overrun compensation (#2270)
Port of tgstation/tgstation#27196.

This PR makes the MC track how much a subsystem goes over its allotted tick limit and reduce how much of a tick it is allocated in later fires, as well as delaying later fires if the overrun is high enough.

Subsystems with SS_KEEP_TIMING will not be delayed due to overruns, but they will still get a reduced tick allocation.

Should lead to less tick-drift due to SSgarbage hard-deletions.
2017-05-17 13:51:46 +03:00
Lohikar
fac6d7916c Lighting performance tweaks (#2200)
Port of tgstation/tgstation#26975.

Changes the lighting engine to apply lighting changes in one step using stored lum value differences instead of two steps (remove_lum, add_lum).

Seems to show a speedup in lighting updates as well as a reduction in server memory usage due to aggressive freeing of unneeded lists.

Lighting overlays also default to fullbright instead of fulldark so movable area transitions look less strange.
2017-05-15 22:25:13 +03:00
Lohikar
aa83743543 Queued table icon updates (#2206)
changes:

Tables now use queue_icon_update() to trigger icon updates.
SSicon_update has been promoted to SS_TICKER to reduce delay in icon updates.
SSicon_update now only has one queue.
This should prevent excessive table icon updates & mitigate table-lag from nar'sie.
2017-05-13 12:52:13 +03:00
Lohikar
6cf332bfa7 Merge voting controller into SSvote (#2183)
changes:

Merged the voting controller into the voting subsystem.
Changed the voting UI to use /datum/browser.
Converted /datum/browser to use HTML5 & attempt to use edge if available. All users of the browser datum have been confirmed functional with Edge.
Changed the ChemMaster to use SSassets for resource download.
2017-05-13 12:37:43 +03:00
Lohikar
6ef9191275 Kill airlocks' process(), SSpower, and misc. performance tweaks (#2175)
changes:

Airlocks no longer tick (exceptions: firedoors, uranium airlocks)
Airlock commands run before round-start are queued to run at round-start.
Airlock commands that failed to run are scheduled to try again in 2 seconds with timers.
Callbacks can now be registered with SSticker to run at round-start in a non-blocking way.
Added a new subsystem (SSpower) for handling power-related functions. Currently doesn't do a whole lot, but this will likely eventually change.
RCON functionality has been moved from SSmachinery to SSpower.
The global cable list has been moved into SSpower.
Powernet sensors no longer process purely to keep themselves in the global machines list, instead they are added to a list in SSpower.
Power terminals no longer pointlessly tick.
Removed some variables from SSticker that weren't used by anything.
Holographic overlays such as those used by consoles are now cached.
Xenoarcheology setup is now tick-checked.
ZAS now uses post-fire timing.
The req_access and req_one_access lists are no longer initialized by default on all /obj types.
Openturfs will only emit starlight if they are bordering a non-openturf dynamically lit turf.
Powernets are now stored in SSpower instead of being a global.
The global mouse list is now stored in SSmob instead of being a global.
Fixed some weirdness in APCs' Destroy() caused by a merge.
SSwireless now pre-bakes to reduce round-start processing.
SSwireless no longer uses processing queues.
2017-05-11 22:19:51 +03:00
Lohikar
36a07fa7b2 Cameranet sorting fixes (#2188)
changes:

The cameranet is now actually sorted like it's supposed to be. Whoops.
The obfuscations list on turfs is now only created when it is actually needed, instead of every turf in the game having the list created from the start.
Visualnet update buffers now use timers instead of spawn.
Fixes #2186.
2017-05-07 14:46:40 +03:00
Lohikar
92c3eee90a Fix priorities (#2178)
changes:

Fixed subsystems priorities file that somehow got fucked up by git merge.
Tweaked some subsystem priorities so ZAS doesn't starve other subsystems of CPU time.
Promoted SSeffects to a non-background subsystem to reduce effect lag during explosions.
Removed double-processing of cascade rift caused by it adding itself to processing_objects in addition to already being processed in SScalamity.
2017-05-07 14:45:44 +03:00
Lohikar
52a4f3a4e3 Shuttle refactor (#2171)
Rewrites the area movement code used by shuttles & elevators in an effort to make it faster, more extensible, and generally easier to read. Also fixes some bugs relating to lighting & moving areas, such as lighting overlays suddenly being teleported into space for absolutely no reason.

Fixes #2161.
Fixes #2166.
2017-05-05 10:16:53 +03:00
Lohikar
f7d150d7a6 Minor startup performance improvements (#2177)
changes:

Reduced Asteroid setup time by ~4 seconds on average.
Fixed a bug where jump-to-turf may have not worked on mine turfs.
Possible minor startup time improvements for SSair and Xenoarch.
2017-05-05 00:51:47 +03:00
Lohikar
2e0ad2eba5 Gun cabinet icon fix & Lobby vote fix (#2165)
changes:

Fixed gun cabinet's icon.
Fixed #2164.
2017-05-03 22:09:04 +03:00
Lohikar
149aee4afe Smoothing fixes (#2163)
* Fix some bad smoothing

* Fix unsimulated objects being vaporized by bluespace

* Fix admin turf-delete

* Minor lighting responsiveness tweak
2017-05-02 20:59:22 -04:00
Lohikar
f6dc33a465 Newmap - SMC, Openturf, Arrivals Controller, and Mine Turf Improvements (#1958)
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.

* this is probably important

* Remove cascade disabling SSgarbage

* Fixed a bug where dust() did not qdel the target mob

* Misc fixes

* Fix decals surviving break-to-plating

* Subsystem flag tweaks

* Apparently subsystems are new'd before config is.

* Fix paper icons

* Speculative fix for insane lag

* Better machinery stat

* Make organs not use SSoverlay

* Misc bugfixes & tweaks

* Nightmode fixes

* Changelog for SMC

* Port /tg/'s improved MC crash handling

* Add some more SS Recover() procs

* supply_controller -> SScargo

* More New() -> Initialize()

* pAI and robot construction overlays

* Fix cargo unit tests

* Merge the DMM Suite's atom/New() into atoms_init

* Lighting pre-baking

* Lighting initialization logging

* Fix some bad SS init orders

* Fix SSlighting logging; rename Processes to MC

* Speculative fix for insane GC lag

* Prebaked openturf/icon_smooth & fix lighting prebake

* SS init status; SSatoms LATEQDEL

* Fix bug with MC init stat panel

* Fix parallax

* Misc

* Ignore SS_NO_DISPLAY during init

* apparently this is important

* REEEEEE

* Image GC fixes; broadcaster radio-new sanity

* RCON Cleanup

* Move pAI recruiter into subsystem

* Move global solars list into sun subsystem

* Make chickens not use a global

* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup

* Speed up space init a little

* Fix bad timer flags on floor drying

* Subsystem panic-restart verb for mins

* Explosion speedup

* Minor subsystem & MC logging tweaks

* SSopenturf improvements

* Make pipenet actually initialize (whoops)

* Minor tweaks

* Implement lighting rounding

* comments are hard okay

* Minor lattice tweaks

* Fix some timer issues & better closet init

* Timer sanity

* Request console tweaks + Storage init sanity

* Minor SSmachiner RCON improvements

* Further reduce world-start timer count

* Standardize subsystem logging

* Garbage hard delete profiling from /tg/

* Timer hang detection & recovery

* Log machines that sleep in process() and fuck up SSmachinery

* Fix an issue with external airlocks sleeping in process()

* Failsafe logging

* Minor tweaks

* Revert "Request console tweaks + Storage init sanity"

This reverts commit 98d3579e35.

* Re-implement RC changes

* Fix SQL FT saving

* Fix SSmachinery sleep in disposals

* Minor SS tweaks

* Paper fixes

* Blood drying fixes

* Merge gameticker and SSticker

* Minor global list init cleanup

* Lagcheck biogenerator & bags

* Tweak SScargo init order; RIG Initialize()

* Caching tweaks

* Remove rogue comma

* Initialize fixes

* Lighting destroy cleanup

* Fix emagging airlocks

* Initial SSicon implementation

* Tweaks & Fixes

* Fire + Air alarm queued icon updates

* Overlays + Queued icon cleanup

* Runtime & background fixes

* Kill some meaningless set statements

* Kill some image qdels

* Bump up lighting rounding val

* Fix adv. scanner destroy runtimes

* Remove unneeded icon update limiting

* Move icon smoothing into helpers

* Show a warning if DM 510 compiles without memory leak hack enabled

* Re-organize subsystems & MC defines a little

* Airlock SFX

* Log of Changes

* Make SSicon_update disable itself when not doing anything

* Fix respawn verb runtime when used early in server-init

* Add more information to MC's stat_entry()

* Replace direct refernces to gcDestroyed with QDEL* macros

* plant_controller -> SSplants

* More plant tweaks

* Add more humor to changelog

* Move parallax globals into SSparallax

* Lighting responsiveness tweaks

* Fix parallax init order & better MC init panel stat

* Make mobs GC

* More overlays + Remove intercom spawn()

* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.

* Update changelog

* Mob GC tweaks

* Del() cleanup

* Fix insomniac ZAS connection edges

* Minor pAI cleanup

* Convert more things to SSoverlay; fix duplicated overlay in field gens

* SM Bluespace turf tweaks

* Update SSgarbage debug globals list

* Human-type qdel tweaks

* Subsystem suspension; stat_entry improvements

* SQL Statistics cleanup

* Fix runtimes with ambrosia

* More disable() -> suspend(); fix nightmode again

* Human qdel fix; minor tweaks

* Update turbolift to work with StonedMC

* Make lifts use timers instead of a subsystem

* Make SSassets start earlier

* Convert the radio controller into a subsystem

* Fix some missing CHECK_TICKs in asteroid generation

* MC stat tweaks; make shouldnt_see a typecache

* Kill some redundant debug-controller entries

* radio_controller -> SSradio

* Better SSgarbage hard-del logging from /tg/ upstream

* Logging tweaks + GELF

* Misc client caching improvements

* Slime SSoverlay

* Oven icon fixes

* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.

* Holder tweaks + Welding tool Initialize()

* Fix some bad subsystem logging

* Fix suit cooling units spawning without cells

* Starlight tweaks

* Gibber infinite gib fix

* More SSoverlay stuff

* Make crates use CUT_OVERLAY_IN

* Make SSarrivals suspend instead of disable

* Make openturf use split/phased tick checks

* Speculative fix for unwet timer runtimes

* Blood overlay tweaks/fixes

* Update crusher to play nice with SMC + SSoverlay

* Openturf improvements and fixes

* Minor turbolift tweaks

* Lighting performance improvements + ChangeTurf tweaks

* this is probably important

* Fix wall weld noises on changeturf

* More ChangeTurf tweaks

* Explosion tweaks

* Pre-game lobby tweaks

* Openturf tweaks

* Prevent admins from starting the game before init finishes

* Fix Travis

* Kill an unused var

* Fix ChangeTurf runtimes on openturfs

* Fixes

* Browser datum fixes, asset caching

* Update changelog

* Changelog

* Lobby tweaks

* Ticker tweaks; kill ticker var

* Further lobby tweaks

* Cascade tweaks

* air_master -> SSair

* Reduce overhead from radio autosay

* alarm_manager -> SSalarm

* bomb_processor -> SSexplosives

* corp_regs -> SSlaw

* ZAS overlay fixes

* Small wall icon optimization

* Fix effects master

* Assembly tweaks

* Megavend fixes

* Shuttle fixes

* Camera alert performance improvements

* Fix some world.log spam from lighting overlays

* Fix some Initialize() procs

* Openspace responsiveness tweaks

* Make HE pipes animate through openturfs

* Kill a spawn
2017-05-02 14:40:40 -04:00
skull132
a5848c2802 Merge branch 'development' into map-development
# Conflicts:
#	baystation12.dme
#	code/game/objects/random/random.dm
#	code/game/turfs/turf_changing.dm
#	code/modules/mining/ore.dm
#	code/modules/mob/living/silicon/robot/robot_modules.dm
2017-05-01 01:07:56 +03:00
Lohikar
c625bbe8e4 Nightmode Tweaks 2: The Fixening (#2065)
I actually fixed it this time I swear

changes:

Nightmode now follows the station's time instead of some random time schedule that made no sense.
Red alert will properly disable night mode now.
Dropping from red alert will reset nightmode to the state it was in before red alert was triggered.
2017-04-10 11:54:09 +03:00
Werner
59e7377798 UDP Logging (#1997)
This implements UDP Logging with GELF.
It will allow full text search over all the logs and attributes sent over GELF to the log server.
2017-04-01 23:47:00 +03:00
Alberyk
8231dc0fb4 Adds antag shuttle parking locations (#1983)
* Update Space Station 13 areas.dm

* Update shuttle_controller.dm

* Add files via upload

* Update cavern.dm
2017-03-24 22:07:37 -04:00
Lohikar
dcf1b7d3ea Fix merge conflicts with mining changes 2017-03-22 17:54:52 -05:00
LordFowl
3c64b62c27 New Map Mining (#1935)
* Alpha Commit

* Alpha Commit

* Seconds

* Some Commit

* Final Commit

* Fixing minedrone synth ID

* Dance Fever

* Fixing Travis part 1

* Satisfying the demands

* Stuff

* Sub-final commit

* Sculpting update

* more sculpting. pr is 99% sculpting, in fact

* kkk

* brightness_off

* swjaugyuwvhuw
2017-03-22 18:14:37 -04:00
Lohikar
a13f3d9f7d Merge master into map-development 2017-03-21 18:28:39 -05:00
skull132
05d70fceb9 Fix voting
I uh. Forgot a simple check!

Also fixes multiple voting sounds playing at once.
2017-03-19 22:36:34 +02:00
skull132
9c78f5b4c6 Swap memos to be Discord pins instead (#1382)
Intent:
If using a Discord bot, make it so that the game is able to pull and process pinned messages in specific discord channels as memos.
2017-03-19 21:07:29 +02:00
skull132
905a338a98 Implement new voting restrictions into config (#1919)
As per the discussion. If NO_DEAD_VOTE is enabled, only new_player mobs and observers who went from the lobby to observing are barred from voting.

Ref this discussion: https://forums.aurorastation.org/viewtopic.php?f=18&t=7866&start=10#p75880
2017-03-18 21:01:27 +02:00
Lohikar
161457b079 Fix nightmode (#1891)
changes:

Fixes nightmode.
2017-03-18 20:02:58 +02:00
Lohikar
7cc68feeb4 Remove holder access (#1906)
changes:

Mob holders no longer grant that mob's access.
Fix bug where wrong task was killed on invalid head in scheduler.
Fixes #1785
2017-03-12 12:18:09 +02:00
Lohikar
73c29bd5a7 Miscellaneous Fixes (#1868)
changes:

Engineering now actually gets engineering-type alert consoles instead of the non-functional base type.
Lighting is no longer broken by shuttles.
The ERT shuttle autoannouncer should no longer cause lighting runtimes.
Fixed some bad newlines in some character setup help texts.
Custom loadout tweaks now properly write to SQL.
Custom loadout is now saved as JSON.
Players are now shown a notice when the server was unable to load their custom loadout.
Drowsyness is now clamped to zero.
Added some new tips to the example.
Tweaked some tips' grammar.
Removed some tips that do not apply to our code base.
Probably fixes embraced vampire thralls not getting vampire verbs.
Fixes #1844.
Fixes #1835.
Probably fixes #1687.
Probably fixes #1824.
Fixes #1839
2017-03-05 15:14:28 +02:00
Lohikar
97856e8735 Improved scheduler (#1864)
changes:

Rewrote scheduler to use a sorted linked-list to store scheduled tasks so that only one element needs to be checked if none of the tasks are ready to fire.
Scheduler now checks tasks every 2 ds.
Adding tasks to an empty scheduler or tasks that are triggered after any existing tasks is fast, but adding tasks that trigger between two existing tasks requires iterating through some of the task list.

It's no addtimer(), but it's something.
2017-03-05 02:01:06 +02:00
Lohikar
2080e40183 Merge with development 2017-03-04 15:58:56 -06:00
Lohikar
4aeab0d6ce Improve asteroid generation performance 2017-03-04 15:45:01 -06:00
Lohikar
65e0f3de97 Simpler lighting process, bug fixes, & modular computer tweaks (#1809)
Fixes #1806
Fixes #1730
Fixes #1747
Partially addresses #1763
Addresses #1283
Fixes #1799
Fixes #1816
Fixes #1813
2017-02-24 20:24:31 +02:00
LordFowl
76a891930e Bugfix Bonanza + Z-code and stuff. (#1819)
* Bugfix Bonfire #1

* Bugfix Bonanza #2

* BigBomba

* Banner.dmi

* Fixing Cyborg spawn

* Re-enabling asteroid gen
2017-02-22 14:42:49 -05:00
LordFowl
4b7270230c Asteroid generates (#1803) 2017-02-18 16:34:58 -05:00
Lohikar
a50d0a8390 Machinery performance tweaks (#1744)
changes:

Machines' process() has been separated from auto_use_power().
Lights no longer process() and instead use auto_use_power() for power calculations.
Computers that didn't really need to process() no longer process().
Airlocks now use the scheduler to auto-close instead of process()ing.
Fixed a bug where clicking on an AI Status display to set its status did not work.
2017-02-15 22:07:47 +02:00
Lohikar
2b9aa21421 Spark Fixes (#1764)
changes:

Removed shim for old spark system.
Converted all calls to old spark system with calls to new one.
Processor-based effects are no longer pooled, as it had minimal performance impact and was breaking things.
Tweaked some visible_messages for rogue drones.
PB effects' handling of location is now done at the /datum/effect_system level.
2017-02-14 14:37:16 +02:00
LordFowl
3e59e4c055 Spawning at the Odin (#1762)
Latejoiners will spawn at the Odin, in an elevator shaft in a segregated section of the station away from round-end.
Latejoiners will spawn in civilian clothes equated to their paygrade. (List currently is extremely rudimentary.)
Latejoiners will get their implants activated, their departmental memories inserted, and their equipment delivered by the auto-locker machines. It is at this point that they will be announced to the crew.
Latejoiners will then proceed to the arrivals shuttle. As soon as any living being steps on the shuttle, it will begin counting down to launch in 30 seconds. If there is no living being on it when it is about to launch, it will cancel.
The shuttle will be in transit for one minute. When it arrives it will wait a minute, and then attempt to launch back to the Odin. If there are any living beings on it, it will cancel, announce this to the crew, and then try again in another minute.
Anyone who remains in the spawn area for longer than 15 minutes will be despawned if they're SSD. If they are not SSD they will be teleported to Aurora's cryo. If Aurora's cryo is somehow destroyed they'll be despawned.
Spawning area itself also has its own cryo, if for whatever reason that is needed.
2017-02-14 11:52:48 +02:00
skull132
b8ea5fd539 Merge branch 'master' into development
# Conflicts:
#	code/modules/admin/admin_verbs.dm
2017-02-07 21:00:23 +02:00
skull132
5b8e92fbff In which Skull forgets to pay attention 2017-02-04 17:46:50 +02:00
skull132
1f0ef3497e Implement ban pass phrase (#1714) 2017-02-04 17:43:55 +02:00
Lohikar
f544fe43b1 Processor-driven effects system & Minor Lighting Performance Tweaks (#1697)
Adds a new process-based effects system with the goal of reducing insane lag from sparks.
Currently only supports sparks, but should be easily extendable to other types of effects.
Also fixes a bug with airlocks where the light from bolts wasn't updating.

Refactors bears slightly to reduce duplicated code & pointless spark object creation and destruction.
Lighting profiler will now log /turf locations & names correctly.
Doors will no longer trigger way more visibility checks than they need to.
2017-02-04 03:34:13 +02:00
Lohikar
6a1fecbd2a Shredder Movement & Law Controller (#1700)
Paper shredders can now be detached from the floor with a wrench and moved about.
Refactored the law process to not be a process - it didn't tick anyways.
2017-02-04 00:15:49 +02:00
Lohikar
2165054918 Minor Lighting Process Improvements (#1682)
This PR reduces the tick rate of the lighting process from 1 ds interval to 10 ds interval, and removes some pointless updates from Destroy().

Also removes some left over defines from update_type and darkness overlays that I forgot to remove earlier.

Fixes #1683.
2017-02-01 19:48:28 +02:00
Lohikar
1d5287dad0 Adaptive lighting updates (#1679)
This PR simplifies the lighting update system (removes update_type) and instead makes the lighting system decide which update method to use based on server load.

Instant updates are used during low-load, scheduled during high.

Also removes: update_lights_now() (redundant), diff_light() (unused).
2017-01-31 00:37:56 +02:00
LordFowl
865ae1ebd9 Merge branch 'Aurorastation/development' into Map-Development 2017-01-29 15:38:37 -05:00
skull132
5909bf65ba Nuke 17 useless files (#1653)
All files deleted and disabled were either:

Not touched for 2+ years
Replaced with native DM functions (JSON specifically)
Generally replaced with newer iterations
2017-01-29 21:45:11 +02:00
Lohikar
0cba68911d Lighting Overhaul & General process improvements (#1612)
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.

changes:

New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.
2017-01-29 01:13:54 +02:00
LordFowl
471ef657d5 Merge branch 'Aurorastation/development' into Map-Development
# Conflicts:
#	code/TriDimension/controller_presets.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/crates_lockers/closets/wardrobe.dm
#	code/game/objects/structures/signs.dm
#	code/game/turfs/simulated/floor_types.dm
#	code/modules/random_map/mining_distribution.dm
#	code/modules/random_map/random_map.dm
#	code/world.dm
#	icons/obj/barsigns.dmi
#	icons/obj/decals.dmi
#	icons/obj/plants.dmi
#	icons/obj/structures.dmi
#	icons/turf/floors.dmi
#	icons/turf/wall_masks.dmi
#	maps/exodus-2.dmm
2017-01-27 01:57:29 -05:00
SoundScopes
a6569f1180 Adding the lifts 2017-01-25 17:17:05 +00:00
skull132
ffdc7e8db2 Pre-update tweaks (#1409)
Remove backup files
Reduce Travis' macro count
2017-01-07 14:21:10 +02:00
skull132
44f22c2128 Improve Object Initialization (#1368)
Okay. You can read the entire theory over in this issue: #1365

But basically. All objects to be initialized are now added to a list in their New() proc on world/New(). This is substantially smaller than the entire world. This allows game_controller/setup_objects() to crawl a much larger list, and speeds it up by 6 seconds (from 9.5 to 3.5 seconds). The impact on world/New() is, on average, under 1 second.

Also fixes #1365 and #1363 as a result of reworking the initialization call logic in atoms_movable.dm. initialize() is now more secure, and can handle recursive calls at any point in time.
2017-01-02 00:45:36 +02:00