Added priority overlays to atoms, which will not be removed when overlays are cut and will always remain on top when new overlays are added. This requires everyone to use add_overlay() and cut_overlays() instead of overlays += and overlays.Cut(). These procs are found in __HELPERS/icons.dm, and the priority overlay list is found in game/atoms.dm. Everything else is replacing deprecated overlay manipulation.
Adding feedback message when trying to attach two assemblies that aren't both in attach mode.
Fix hacky code to prime grenade by pulsing its assembly.
Removing some commented code and some duplicated proc instances.
Fixing a typo.
Just in time for the feature freeze, a big change that will introduce bugs! Yay!
Mob verb is called verb/examinate(target), which just calls target.examine(user) and face_atom(target)
For explanation why, see http://www.byond.com/forum/?post=1326139&page=2#comment8198716
Long story short, mob verbs are much faster than object verbs. The goal is to make right-click menus populate faster.
Also changes a bunch of examine() procs to always, ALWAYS call the parent. Except mobs, but you have 1 guess why I'm not touching them. Mostly this affects obj/item/examine().
And also remove a whole shitload of pointless set src in view(2) kind of crap. Also span classes.
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.
New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.
ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
*TABLEPASS was already totally obsolete.
FPRINT was used, but it was on virtually everything anyway.
Removes those flags from every instance where they were used. Also assigned and removed other flags where it made sense.
If it is desired, I can revive the flag as NOFPRINT, which would retain the original functionality, though inverted. That way it would be be used only where it was intentional (holodeck items could use this for example).
Crossed() is a byond builtin which is called automatically when two movable atoms overlap (as a side effect of Move(), but not when loc or x/y/z is changed). Previously, turf/Entered() iterated through all objects in the turf in order to tell them an object had entered; with this change, HasEntered() becomes redundant and can be eliminated.
This may reduce lag when a large number of objects are moving in a small space (singularity, mining conveyors, etc) but should cause no changes to functionality at all.
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()
*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
The path has changed from /obj/item/weapon/mousetrap to /obj/item/device/assembly/mousetrap
Deleted mousetraps.dm, and removed the original define from weapon.dm
Added a new /obj/item proc, on_found(). It's called when pockets are emptied, and whenever someone looks in a storage item. Currently used only by mousetraps and facehuggers~
Updated the map with path changes.
Updated the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4969 316c924e-a436-60f5-8080-3fe189b3f50e
There's a couple of known issues, and they've not been tested, so they're unticked for now.
This includes some adjustments and fixes for other assembly stuff, and it also renames most tanks.
Shout at me if this breaks anything.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4644 316c924e-a436-60f5-8080-3fe189b3f50e
Removed the infra sensor, as it was buggy, and, to be perfectly honest, utterly pointless.
Slightly improved and moved dice code.
Fixes issue 366.
Fixes issue 317.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4555 316c924e-a436-60f5-8080-3fe189b3f50e
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.
r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds
[VGTG]
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
Moved into their own folder and got split into three files.
Damage zones have been regrouped slightly to make it easier to deal with them. Currently the organ groups are head, l/r leg, l/r arm, and head.
Attacking:
Armor is properly checked.
Currently aiming for the chest gives a higher chance to stun whereas the head will stun for longer.
Stungloves/Disarm now show up in the attack log.
Stungloves ignore intent.
Silicon:
AI units can now move between cams that are not on the ss13 network.
Cyborg's alert screen should not longer pop up every time they get an alert if they have opened it once during the round.
Robot vision now uses the standard amount of energy.
Gamemodes:
Added Deuryn's unrev message.
Runes can only be examined if you are close to them.
Moved the Loyalty implants to the HoS' locker at the request of HerpA.
Nuke agents now come with explosive implants that will activate upon death.
Projectiles:
Once again went though the gun code and cleaned things up, it is much better now.
Bullet_act fixed up and most mobs now use the one in living, just overload it if they need to do something diff.
Freeze /caplaser/xbow no longer have an infinite loop.
Shotguns have to be pumped manually.
Went though the latest runtime log.
Power cells now use return on their give/use procs
Assemblies have been reworked and are nearly finished, just need to finish up the special assembly code, redo the signalers, and add one or two new assembly items.
Laying down will now only take 3 ticks to get up, from 5.
You can no longer punch people on the spawn screen.
This is a big one and was cleared by two heads, TK will only allow you to pick up items. If you have an item in your hand it will act normal.
This revision got much larger than originally intended my tests show everything is working fine, but you never know. Ill likely do more mob teaks in the next few days.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2333 316c924e-a436-60f5-8080-3fe189b3f50e
The rev icons bug might be fixed now.
Removed the old logged say file as it is no longer used and contained questionable material.
People should no longer spawn on the wizard station for a second at round start.
Removed the old intercept vars as they have not been used in a good while.
Blob is more or less back to its old state but still has the lava sprite, can we please get some new sprites for it.
Fixed the door on the prison station, it can now actually be used again.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2163 316c924e-a436-60f5-8080-3fe189b3f50e
Flamethrower construction code cleaned up.
Signalers on doors should work fine now.
Changelog Updated.
Weapons:
Xbow radiation has been lowered from 100 to 20 and it has a 5% chance to do no rad damage
Admin:
Attempted to clean up the code a bit
Commands Removed/CommentedOut:
air_status, radio_report, toggletintedweldhelmets, modifytemperature, givetestverbs, restartcontroller, fix_next_move, Cell
Renamed:
edit_memory - show_traitor_panel
un\stealthadmin - show/hide_verbs
Cargo:
Engineering crates cost 10 and contain: 1 mechanical toolbox, 1 electrical toolbox, 1 glove, 1 toolbelt, 1 vest, and 1 hard hat.
PowerCell crates cost 10 and contain: 1 electrical toolbox, 2 wire coils, 2 power cells, and 1 high power cell.
Water/Fuel tank crates cost 15 and contain: 1 water tank and 1 fuel tank.
Cyborg:
Fixed the open cover icons
To override a cyborg's laws you must emag it when the cover is open
Emags can now unlock the cover
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1995 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