* Part1
* IT COMPILES!!!!
* Fuck wait this was missing from that last
* Update handlabeler.dm
* Update handlabeler.dm
* Fixes n shit
* Fix this
* Fixes#23310
* Fucking @RemieRichards was right
* Fixes devil unEquip
* WTF ARE BITFLAGS?
* THERES THE FUCKING PROBLEM
* Fixes
* Multiverse Revival
* Slightly less awful code
* Makes code cleaner, fixes stun issue on spawn
* Replaces usr with user in the multiverse sword +
allows it to dismember
* Prevents gang related messages displaying for multiverse clones
* When any object is hit by an explosion, we no longer always call ex_act() on all its contents indiscriminately.
The default contents_explosion() does nothing and it's overriden for certain objects only like storage items, machines with occupants, mechs.
I've also overriden handle_atom_del() for many objects so that any sudden deletion of an object referenced in an object var of its container properly nullifies such references, avoiding potential runtime and updating the container's icon_state (e.g. admin-delete a mixer's beaker and the mixer's sprite updates immediately).
I've tweaked bomb effect on worn clothes, having some armor but not 100% now still protects your clothes somewhat.
Fixes some arguments of ex_act in living/ex_act() and other mobs.
* derp and map fixes.
* dem map fixes, man.
* More work on code that use implants, simplified now that we can use the "implants" carbon var.
* some fixes
* more typos and fixes.
* Highlander changes
* Prevents losing your claymore F O R E V E R
* Adds partial bloodthirst sating from attacking
* Reworks bloodthirst
* Forgot to push this
* Adds a disk-capture mechanic
* Changes based on feedback
* Bugfixes
* Makes the pinpointer functional
- Fixes odd behavior with emagging airlock and windoor animation.
- Fixes being able to bloodcrawl in oil decal.
- Fixes being deaf after bloodcrawling.
- Fixes wintercoat hood appearing below the mask.
- Fixes being able to attack another mob before the game has started (and other things which used a gamestart check that no longer works).
- Ghosts can no longer become drones before the game has started.
- Removed "bhunger" and "ajourn" mob vars, they are unused.
- Fixes admin-revived morph being invisible.
- Fixes heart attack stacking losebreath very high. Also now losebreath is reset to 0 when the mob dies.
- All mobs no longer have a default strip menu showing two hands.
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.
-As requested by errorage, you can now place air/oxygen tanks and fire extinguishers on Ian's back. Additionally, you can also place cardborg suit/helmets on him.
-Cleans up some shoe code and unused sprites from feet/suit .dmis.
Removed the last of the old promotion/demotion code.
Permissions panel accessible via player panel.
Uncommented the attack log verb. I mistakenly thought it wasn't used.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5102 316c924e-a436-60f5-8080-3fe189b3f50e
Code-wide changes: /mob -level procs:
equip_if_possible() is now known as equip_to_slot_or_del() to prevent confusion with equip_to_slot_if_possible() and to better describe what it does.
equip_to_slot_if_possible(item, slot, del_on_fail, disable_warning, redraw_mob)
equip_to_appropriate_slot() is now a /mob - level proc.
equip_to_slot() is an unsafe proc, which just handles the final step of actually getting an item onto the mob. It has no checks of whether it can or can't do that. Use equip_to_slot_if_possible() for that purpose.
New /obj/item -level proc:
/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = 0)
This proc can be used to determine whehter a mob can pick up an item from the item's side.
Carn, I'll need you to review code/modules/mob/living/carbon/human/inventory.dm to ensure that I'm not redrawing the mob too many times.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4423 316c924e-a436-60f5-8080-3fe189b3f50e
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...
Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)
These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.
Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.
If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.
Mob related in worlds before this commit: 1262
After: 4
I'm helping
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
Adds greater changeling code, but doesn't change the genome count yet on it.
Renames registered to registered_name on IDs because bs12 had it and it seemed like a good idea to do last night. For some reason.
Adds an afterattack to mobs that can be used. (In fairness, lots of shit in attack_hand should be in there instead, like stungloves and stuff, to minimize duplicated code)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3537 316c924e-a436-60f5-8080-3fe189b3f50e
- added feedback logging for newscasters
- added feedback logging for admin verbs
- added shuttle timers to escape pods
- added feedback logging to chemical reactions
- clipboard can now fit on your belt
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3465 316c924e-a436-60f5-8080-3fe189b3f50e
Changelings can now regen from death
Loyalty implants are now orderable from QM
Repair bot is now adminspawn only
Added the mech ion cannon, which is adminspawn for now
Tweaked highlander a bit
Updated the changelog
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2499 316c924e-a436-60f5-8080-3fe189b3f50e
Re-did the Highlander button.
In place of a traitor PDA, it now strips the player, gives them a kilt/boots/beret/claymore and full access.
Objectives remain as nuke codes+escape alone.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2461 316c924e-a436-60f5-8080-3fe189b3f50e
-Right click commands "Make robot/alien/ai/monkey" moved to "edit player" screen.
-Right click commands "Make traitor/cultist/changeling/etc" moved to "edit mind" screen.
-- note: currently the only way to humanize monkey is to use "edit mind" screen.
-Added right click commands showing "edit player" and "edit memory" screens.
In light of an incoming tournament on ss13.ru I have added "Select equipment" right click command. It allows to instantly dress mob as you wish. Coders, feel free to add more dress packs, like "centcom inspector", "space pirate" and so on.
A strange command "list_occ" now called "List free slots" and shows unoccupied jobs.
Added golden cup, sprite belongs to Farart.
You can now take a power cell from charger even if there is no power.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1724 316c924e-a436-60f5-8080-3fe189b3f50e
More tweaks to death commandos.
More work on CentCom.
Fixed turret control issue for AI.
Station blueprints now spawn in CE's locker.
Power control modules placed on the map.
More shield generator stuff by Barhandar: shield walls and shield wall generators now respect bullets and they (bullets) have chance to get past the shield. This also means you can power shield generators through emitters but it takes two to make a generator stable.
Misc map changes.
Re-check gimmick closets so they no longer spawn empty.
Added a new admin button under Special Verbs. Allows to easily respawn a player (as an assistant) if their original body was gibbed. Currently doesn't set player preferences. WIP.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@675 316c924e-a436-60f5-8080-3fe189b3f50e