-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
-Shuttle doors now automatically open when it docks at centcom
-Screen shaking now works properly on shuttle/pods
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4176 316c924e-a436-60f5-8080-3fe189b3f50e
"The Emergency Shuttle has left the station. Estimate 2.98662 minutes until the shuttle docks at Central Command." should no longer happen.
Removed some while(1) loops from object process()s.
Removed some unused object process()s.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4116 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
Shuttle call/recall announcements are now more noticeable. Removed a few ways they could be spammed.
Cats and Dogs can see in the dark.
Recommitted some of the poop stuff by Doohl because, hell it's only one day and I don't hate fun.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3382 316c924e-a436-60f5-8080-3fe189b3f50e
Inspecting yourself for organ damage now randomly shows damaged organs if you have halloss
Mining shuttle now shunts people where it wants to be
Shuttles now crush people if they fail to move out of where they want to be with the initial shunt.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3337 316c924e-a436-60f5-8080-3fe189b3f50e
Before you read on this revision is more of a thing being tested than a feature that is guaranteed to stay.
4 escape pods have been added to the station, 2 at arrivals, 1 in engineering and one in security. Each pod is 4x3 tiles in size with a window tile, 2 chairs and a door. So it has 3 floor tiles to stand on.
Pods don't have any sort of emagging capabilities, hijacking a pod does not count as completing the escape alone objective, surviving in a pod however counts towards the escape alive objective. Cult members in pods do not count towards the acolyte victory.
Changelog updated with listed changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2663 316c924e-a436-60f5-8080-3fe189b3f50e
* Carp are delicious! Slice them open with a kitchen knife, and you get carp fillets.
* Carp gib when hit by meteors. WHen gibbed or exploded, they leave behind meat as well. Pulse rifles can also gib them.
* Fixed lizardman emotes.
* New cake sprites by matty406 (carrot cake my edit of his cheese and regular cake).
* Shuttle can be called in Malf and Revolution modes. HOwever, it'll automatically return after a random duration. The message when the shuttle is recalled due to this is identical to when it's recalled by a player.
* Shuttle cannot be called while it is returning to CentCom.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@672 316c924e-a436-60f5-8080-3fe189b3f50e
Mime access added because clown access felt lonely. Both have no current use other than for door construction.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@619 316c924e-a436-60f5-8080-3fe189b3f50e
Added new AI/announcer sound files for when events happen, when game starts or ends, when shuttle is called/recalled/docks and when a new AI is chosen.
Removed traitor.ogg and main.ogg because they weren't being used and were quite large files.
Fixed flash effect and crit-state effect. But now shroom effect is a bit broken. (to-do)
Added a sound effect when a robot comes to life.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@87 316c924e-a436-60f5-8080-3fe189b3f50e