Fixed the failsafe misreporting how long the MC has been dead.
Lighting initialization no longer 'interrupts' the master_controller setup().
Added updated powernet debugging tools. They're in my WIP folder. They are sexy c: It draws the powernet onto the map so you can see what's going on during debugging.
Added tachyon-doppler arrays. They're gonna be something for scientists to measure their bombs with rather than praying for the figures. Nothing spectacular.
Commented out switches, they aren't used and I've been fixing/testing powernets all day. Sorry. If you need them back just PM me and I'll fix them.
Known issues: the merging procs behave silly at intersections. I really tried to fix it but I think I'll make more progress just working on some powernet improvements.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4623 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed a problem where TG was using this sequential master_controller but I had removed a spawn where master_controller.process() was called because I was working with the default master_controller. This problem was causing the master_controller to prevent the lighting_controller.process() ever running properly because it was hogging the current thread (thread isn't the right word there, not sure what you call it....stack?)
Added debugging to both the lighting_controller and master_controller. http://filesmelt.com/dl/debugging.png
Both lighting_controller and master_controller may be deleted to terminate their processes (this is done via the restart controller verb. This allows for clean restarts without 'doubling up' (where, for instance, the master_controller would be running more than one instance).
lighting_controller has a prototype recovery proc which is called by the "restart controller - lighting" verb. It's basically an overly paranoid version of process() which will only transfer light_sources to the replacement controller if they don't runtime. It's not needed at the moment as the process() has yet to runtime.
master_controller has the beginnings of self pruning lists. This method using list.Cut(index,index+1) is faster than doing list.Remove(thing) all over the place (the latter iterates through the list to find the thing).
Added more detailed time-measurements for the master_controller. It now displays the processing costs (in real-world seconds) of each part of the master_controller's cycle.
The stat panel only updates for mobs actually -looking- at the stat panel.
Explosion debugging is now hidden behind a if(Debug2). To have it print that data to world.log just click the DebugGame verb
debug controller and restart controller verbs are now both GameAdmin rank. Not sure how they got split up.
Fixed another cause of dark splotchy space turfs. (turf/wall/ex_act was replacing the turf with space and then deleting that new space turf)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4593 316c924e-a436-60f5-8080-3fe189b3f50e
Reduced the Login delay for new_players. It stays because it protects against rapid connect/disconnects sending resources repeatedly, it's just a lot less annoying now.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4554 316c924e-a436-60f5-8080-3fe189b3f50e
Comments for lighting:
Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
by using the var/tag variable and moving turfs into the contents list of the correct sub-area.
Unlike sd_DAL however it uses a queueing system. Everytime we call a change to opacity or luminosity
(through SetOpacity() or SetLuminosity()) we are simply updating variables and scheduling certain lights/turfs for an
update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
turning it back on with lighting_controller.processing = 1.
Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
at runtime)
Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
costs.
Known Issues/TODO:
admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
No directional lighting support. Fairly easy to add this and the code is ready.
When opening airlocks etc, lighting does not always update to account for the change in opacity.
Explosions now cause lighting to cease processing temporarily.
Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.
To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"
If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
As a result, cyborg death squads were also removed.
This also fixes meteors and space dust so that they properly take into account the borders of the map. Please do not hardcode numbers when we have defines in place.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4374 316c924e-a436-60f5-8080-3fe189b3f50e
Changed RoundExplosions to a temporary define named USE_CIRCULAR_EXPLOSIONS which is a lot more intuitive and less confusing. Removing this define will compile square explosions code instead of circular ones. (So the cost of having a choice between circular/square is seen at compile-time not at run-time)
Fixed aliums being able to pick up storage objects such as bags/boxes/pillboxes and such.
Fixed unbuckling yourself from beds (via clicking the bed). You can also unbuckle yourself via resisting because beds are hard to click on when you're lying on them and they're covered in a sheet.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3854 316c924e-a436-60f5-8080-3fe189b3f50e
Readded the fake solars to the DJ station, the place is still simulated but it had a magical SMES anyways and did not need real solars, also removed its atmos pipes as the place does not need an atmos for how much it gets used.
Several carp that spawn on Z2 have been removed, no need to have them eating up processing power over there.
Yet again removed the random zvent sitting on the centcom zlevel, I swear I have removed that thing at least five times now.
The Tcom sat solars are now fake, turns out half of them didn’t actually work as is and were there to look good. Also cut a shit ton of wiring out of the sat, removed most of the turrets, and merged most of the areas.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3853 316c924e-a436-60f5-8080-3fe189b3f50e
Moved an unchecked file into unused, please put any unchecked files out of WIP or FEA into unused that way if you see an unchecked file you know it should be checked. DM loves to uncheck files when you are messing around with folders in the editor.
Moved the old TEG defines into the proper files.
Commented out some old nonfunctioning FEA debug code.
Removed some commented out codechunks from FEA and attempted to clean up a few of the files a bit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3852 316c924e-a436-60f5-8080-3fe189b3f50e
- This is more of a fix for the current method of explosions, not a fix to make explosions more efficient as a whole.
- Explosions used circlerange() which had improperly named vars. At a glance, it looked like it was just returning turfs in range, but in reality it was returning all atoms in range.
- Explosions now use circlerangeturfs() which only returns turfs
circlerange()
- Changed the variable names to reflect what they actually use to prevent this kind of confusion again.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3832 316c924e-a436-60f5-8080-3fe189b3f50e
Adding a reporting function, available in the debug menu, which tracks some crude statistics for the current round and attempts to estimate the round's current level of stuff happening (or lack thereof) for more consistent and focused badminnery.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2329 316c924e-a436-60f5-8080-3fe189b3f50e
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work.
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more. More random name monkeys will help with changeling and clean up the observe/mob menus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed up a few more firedoors on the map
Optables will respect air groups now
The Singularity:
Might produce less lag when eating things now.
80% down from 100% chance for a beacon to force movement.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2126 316c924e-a436-60f5-8080-3fe189b3f50e
Explosions will delay a bit longer before allowing powernet rebuilds.
Removed the Ionstorm Command reports at Urist's request, he said he would add something later.
Added dust storms to meteor mode.
Fixed most of the runtimes in the latest log.
Wizards mind_transfer now needs his robes, this prevents the constant body swap mess.
Z 1 lost all of its areas sometime in the last two revs. I think I got everything back in place but would not mind if a mapper took a look.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2037 316c924e-a436-60f5-8080-3fe189b3f50e
Old style bombs and suicide vests temporarily removed.
Players can now be job banned from being a pAI.
Added null checks to explosion() due to runtime errors.
Changelog updated
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1980 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed a boatload of runtime errors. There's so many I just completely forgot what they all were!
Explosions / Singularities now do not gib people "one-by-one" as some people may have noticed. This looked absolutely weird.
Sounds:
I was planning on making sounds become all distorted and whatnot if you were "high", but there were some problems. I've instead just settled with making deaf people not being able to hear non-ambient sounds at all.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1941 316c924e-a436-60f5-8080-3fe189b3f50e
The del() proc for cables already handles what makepowernets() was trying to do here. Looking around for a bit I've concluded that this proc is not needed here at all and is only causing lag. Everything that it would of done is already handles in the ex_act().
-removed makepowernets() call from explosion.dm
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1732 316c924e-a436-60f5-8080-3fe189b3f50e
Added a "lights out" event.
Flashlights
Red toolboxes now have only a 50% chance to spawn a flashlight (to add diversity and make the lights out event less easy to circumvent).
Explosions
Explosions are now round. This is quite a big balance change, so it's subject to change in the future.
Hydroponics
Hopefully fixed the bug with invading weeds etc being unharvestable.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1516 316c924e-a436-60f5-8080-3fe189b3f50e
- Players can modify operation permissions of newly constructed civilian mechs. Click on mech with ID card or PDA with ID inside.
- Added robotics access to default mecha maintenance permissions (all mechs) and operation permissions (civilian models only).
- Fixed double adminlog message of explosion proc.
- Fixed accidental mecha wreckage deletion.
- Tweaked mecha internal fire processing.
- Added some mecha-related sounds.
- Moved GaussRand to helpers.dm and added GaussRandRound helper proc.
- Other small changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1023 316c924e-a436-60f5-8080-3fe189b3f50e
Monkeys no longer deathemote when gibbed.
Added a Coder/Host level debug verb that forces the master_controller to run its process() proc. Pressing the button while the master_controller is already process()ing is not advised.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@978 316c924e-a436-60f5-8080-3fe189b3f50e