-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
Added Ausops gateway sprite.
Added placeholder structures so the people working on the map have something to mark where the recieving gate will be.
And unfinished Behemoth code because the dme needed to be updated to include Ausops stuff.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3572 316c924e-a436-60f5-8080-3fe189b3f50e
Added Khodoque's new shotgun sprites.
Added my new gasmask sprites. Removed emergency gasmasks, as the distinction is non-existent.
Very slightly reshuffled some mask stuff around, but it's still godawful.
Medical masks are now /obj/item/clothing/mask/breath/medical
Removed the define for HALFMASK, as it was completely unused.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3493 316c924e-a436-60f5-8080-3fe189b3f50e
Removed the wizard's Nar-Sie grav pull entirely to reduce lag/it is strong enough as is.
Fixed the gyrojet projectile name
Removed the ion rifle from the armoury
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3272 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed the Veil Render sprite, I'd left part of the outline from cutting it out of the grid Ausops sent me.
Moved my stuff to a more recent part of the changelog because my ego needs feeding (no seriously because I think things like the chaplain being cult immune or nuke ops getting a teleporter needs to be well known)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3089 316c924e-a436-60f5-8080-3fe189b3f50e
When used, it will arm every human mob that is not already a special role (and with a client assigned) with a random gun from the following list:
-Taser
-Egun
-Laser
-Revolver
-C20r
-Decloner
-Desert Eagle
-Gyrojet Pistol
-Pulse Rifle
-Silenced Pistol
-Laser Cannon
-Combat Shotgun
-Mini-Uzi
-Mini-Ebow
It will then inform the player that
"You are the survivor! Your own safety matters above all else, trust no one and kill anyone who gets in your way. However, armed as you are, now would be the perfect time to settle that score or grab that pair of yellow gloves you've been eyeing..."
And make them a traitor/give them the objective to survive till the round ends.
After use, rightandwrong will remove itself from the users list of verbs.
rightandwrong addeded to the Spellbook under "Summon Guns"
The verb will appear in the spell tab.
Updated changelog
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3071 316c924e-a436-60f5-8080-3fe189b3f50e