Commit Graph

292 Commits

Author SHA1 Message Date
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-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
2012-07-26 03:04:05 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-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
2012-07-23 00:48:51 +00:00
petethegoat@gmail.com
7f5de70b91 Reverted r3944, with the exception of stock_parts.dmi
Fixed issue 605.

Committing minor adjustments to watercloset.dm and paperbin.dm too!

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3947 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-29 15:56:51 +00:00
vageyenaman@gmail.com
9a7675ce5a Implemented Tobba's new lighting system. This grants some infrastructure to allow for colored light sources. It should also, theoretically, but more efficient.
Created a quick variable to let projectiles automatically illuminate.

Implemented some of Ausops' sprites.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3944 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-29 03:43:30 +00:00
elly1989@rocketmail.com
48088b79d9 ugh...this was horrible. I'm really sorry if I fucked anything up, I was literally going braindead towards the end.
Replaced every l_hand = and r_hand = and all that if(hand) crap to use standardised procs. This means we can use procs like Dropped() reliably as they will always be called when things are dropped.

Thorough documentation to come. But generally, if you want a mob's icons to update after deleting something in the inventory...use drop_from_inventory(the_thing_you_wanna_drop) just before deleting it. If you wanna put something in a mob's hands use put_in_hands() (or one of the variants). It'll try putting it in active hand first, then inactive, then the floor. They handle layers, overlays, screenlocs calling various procs such as dropped() etc for you. Easy

mob.equipped() is now mob.get_active_hand() because there was another totally unrelated proc named equipped() and stuff was confusing.

Weakening was made instantaneous.

Minor optimisations for human/handle_regular_status_updates(). I'll port these changes over to the other mobs next. Basically it should stop it constantly incrementing every status effect even after death.

umm... bunch of overlays related fixes... I think that's everything. :/

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3900 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-23 21:24:45 +00:00
SkyMarshal
730461840f UltraLight optimizations, and moving of access levels into a defines. (Pre-processor stuff is fun) 2012-06-21 13:35:34 -07:00
SkyMarshal
5ea83f0abe Air alarm fixes, final part. Added in area atmos lockdown, proper overrides from the atmos control computer, cycling airlocks, and minor airflow/ZAS tweaks. 2012-06-21 02:06:05 -07:00
SkyMarshal
61124c86a8 Reduction of number of ul_Illuminate and ul_Extinguish calls. (@Miniature) Also fixed a bug with the SMES room lighting. 2012-06-20 09:34:17 -07:00
SkyMarshal
1775923676 infinite loop (?) fix. 2012-06-20 00:04:17 -07:00
SkyMarshal
ef3e93652c Fixes for Antiqua compilation and runtimes. 2012-06-19 21:37:41 -07:00
SkyMarshal
c07776de73 Ultralight, but Botpathing is still retardedly broke. 2012-06-19 19:36:53 -07:00
SkyMarshal
c3d7371ccf Lots of fixes. 2012-06-19 00:24:10 -07:00
SkyMarshal
57fcff3067 Shitload of bugfixes. 2012-06-18 21:18:26 -07:00
SkyMarshal
b126bb5a1c Glowy space. 2012-06-18 20:50:16 -07:00
SkyMarshal
692fdc724e Second part of UltraLight. Some fixed up fire stuff. 2012-06-18 17:52:40 -07:00
SkyMarshal
aeb850fef0 Working UL 2012-06-18 15:02:34 -07:00
SkyMarshal
5765aac899 Fuck it, good enough for now. 2012-06-13 17:28:03 -07:00
SkyMarshal
d4393c482d Removed a duplicate proc. Pimped out the Blueprints. 2012-06-13 17:05:43 -07:00
SkyMarshal
a1a2302199 ZAS fixes, adds Atmos Lockdown which replaces all door accesses with engineering OR atmos access. (And a shitty temporary icon) 2012-06-07 20:50:42 -07:00
Ren Erthilo
ae12815a63 Proper commenting out of sounds. 2012-04-11 17:55:10 +01:00
Ren Erthilo
8885320528 Merge fixes. 2012-04-11 11:16:42 +01:00
Ren Erthilo
19cf6b3b47 TG: Adds a new special object (stop) that can be used when you need someone to stop
moving right away, even before the next life().  Used in door crushing to
prevent people from inertiaing through.  Checks for /obj/special/stop in loc
every move.  Compared to the number of other checks, I don't expect this to be
an undo burden, but can be commented out in case of OH SHIT LAG under heavy
load.
Moves /area/entered to its own file.
Adds a new area var called has_gravity.  Determines if floor tiles count for
movement control (planning on adding more, currently can only be badmined)
Adds a new mob var called lastarea that is updated with the area you're in every
time /area/entered is called. r2917
Moves /obj/special/stop into /obj/effect/stop.
Thunks people when gravity changes. r2918
2012-04-09 14:35:18 +01:00
elly1989@rocketmail.com
9859a0b52f Committing fixes to code for examining mobs. Burn damage wasn't showing properly on some mobs. Fixed grammar, icons and stuff.
Added some  stylesheet classes. Approved by Urist. If you're adding game text, please use the class that best describes the text. This way all the text formatting can be edited from the stylesheet rather than traipsing through the code like I am.
Cyborg names reflect their module choice.
Cyborgs can no longer drop their module-items on conveyor belts.
Please remember to add the line: gender = PLURAL to any new item defines if the item is plural, ie metal rods and such.
Much more to come. ;-; Just need to check them and merge... why did I start climbing this mountain?

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3232 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-02 16:07:32 +00:00
baloh.matevz
a6389b5930 TG UPDATE: Attention! Space is now (finally) UNPOWERED.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2728 316c924e-a436-60f5-8080-3fe189b3f50e
2012-02-27 00:13:59 +00:00
LastBattaWolf@hotmail.com
4c564ad00e - Added voice clip for malfunctioning AI
- Glass airlocks now sound less like actual airlocks and more like doors, reducing station noise pollution by 39%.
- RUNTIME! SQUEEE
- Fixed toggle-ambiance hopefully for good this time.
- Reorganized the sound folders.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3182 316c924e-a436-60f5-8080-3fe189b3f50e
2012-02-24 10:45:31 +00:00
vageyenaman@gmail.com
c8ae96e1d7 Photocopiers now copy paper names too.
Some ambient code work.

Made a distinction between binary translator radios and syndicate/traitor radios. Nuke Ops start with traitor radios, traitor uplinks spawn binary translator radios.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2998 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-28 18:29:59 +00:00
LastBattaWolf@hotmail.com
30021a2718 - Fixed a bug with some ambiance not playing properly, and moved toggle-ambience to special verbs with all the other toggles.
- Ported my changes from Git

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2993 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-27 23:53:25 +00:00
VivianFoxfoot@gmail.com
4ef0251aad Moves the areas procs all into the same file.
Comments out an if statement to supress a warning.
Although not yet located on the map, adds the code for gravity generators.
Actually enables attack logging by default, now.  


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2927 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-08 08:47:54 +00:00
VivianFoxfoot@gmail.com
8730d375cf Adds a new special object (stop) that can be used when you need someone to stop moving right away, even before the next life(). Used in door crushing to prevent people from inertiaing through. Checks for /obj/special/stop in loc every move. Compared to the number of other checks, I don't expect this to be an undo burden, but can be commented out in case of OH SHIT LAG under heavy load.
Moves /area/entered to its own file.  
Adds a new area var called has_gravity.  Determines if floor tiles count for movement control (planning on adding more, currently can only be badmined)
Adds a new mob var called lastarea that is updated with the area you're in every time /area/entered is called. 

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2917 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-06 06:24:55 +00:00
baloh.matevz
e381b3c3fe Attention! Space is now (finally) UNPOWERED.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2728 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-18 03:50:55 +00:00
uhangi@gmail.com
1136054925 Fucked up, NOW space is depowered.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2598 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-04 01:27:44 +00:00
baloh.matevz
bd73bf33d3 - Randomized light brightness for lights at round start is now no longer tied to individual lights, but to the area they start in, meaning some areas might start out darker on some rounds. Most have far too many lights tho, so they don't affect anything.
- 10 percent of lights with tubes will now start out broken and 25 percent of lights with bulbs will now start out broken.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2261 316c924e-a436-60f5-8080-3fe189b3f50e
2011-09-24 14:14:40 +00:00
noisomehollow@lycos.com
3c0a76df30 Reduced deathsquad marauder number to 3 (previously 4). Added some fluff to their launch sequence.
Revisions to CentCom. CentCom now has its own access levels set, and a unique ID changing computer.
Added nasa void suit and captain armor to item steal list.
Fixed some run time errors for hand-tele from my previous commit.
Removed the remove poo and urine button from secrets.
Decoy AIs can now say stuff like regular AIs. This is useful if you need a non-player announcer for something, while taking into account talk_understand and the like. I use it for deathsquad shuttle announcements. I've placed A.L.I.C.E. on CentCom for such reasons.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1704 316c924e-a436-60f5-8080-3fe189b3f50e
2011-06-22 06:28:28 +00:00
rastaf.zero@gmail.com
2530b5b995 Air alarms improved. New functions are:
- mass control all air machines in area (5 modes)
 - adjustable alarm thresholds
 - air alarm in server room now is preset to treat temperature 80 K as okay.
EMP now affects bots internal cameras.
Fixed problem with AI clicking on mulebot.
Some fixes for welding with unlit welder, mostly cosmetic.
Airlock controller (as in EVA) now react to commands faster.
Access controller (was in engineering and virology in past) was speeded up too. One is installed into Incinerator to demonstrate that now it isn't fucking slow.
Airlock in toxin mixing room now have pump, so airlock can work properly.
Added some intercoms to medbay lobby.
Doors now won't lag due do mapmakers mistakes.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1187 316c924e-a436-60f5-8080-3fe189b3f50e
2011-03-14 19:21:02 +00:00
rastaf.zero@gmail.com
2b96770d61 Atmos now starts with nitrous oxide in storage tank.
Radio was optimized even more. Still have some reserves.
Restored admin verb "Radio Report". It shows some signs of errors on the map, but I am too tired to fix it now.
Optimized player login (that "400000 calls of new_player/Move" bug).
Various optimizations and fixes in radio code.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1046 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-15 00:28:00 +00:00
mport2004@gmail.com
cd79ae951d Updated:
Singularity Engine
-Recoded some parts, still works mostly the same
Welders
-Recoded, it works mostly the same but is easier to use in code
-Cyborgs have a larger fuel tank
-Brought most if not all of the areas that use welders upto spec
Moved the changeling chem recharge code into the human life proc
New players who log out before spawning in are now deleted
New minor Common event
Machines around the station use more power, system might need some changes later
Likely few other minor changes that I just cant think of atm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@945 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-03 08:15:17 +00:00
rastaf.zero@gmail.com
6b7801c4af Singularity now wont leave floor under eaten walls.
Cryo wont spit out beaker.
Fixed message "You don't have the dexterity to do this" for machinery.
PIPES:
- Heat exchange pipes are constructable now.
- Insulated pipes also were added to pipe dispenser;
- And meters too;
- Easy pipe rotating in hands;
- bent pipes actually looks bent under construction (may be glitches, please report);
- pipes now wont cover wires;
- pipes unwrenching now possible;
- large vent pumps now uses power as equipment, not environment
- pumps now uses power;
Air alarm improvements:
- all alarms in area controls all environment machines in area;
- machines initializes itself automatically and without interloping with existing ones;
- air alarms wont duplicates it air monitoring and can clear itself;
Some other typos and small issues were fixed.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@816 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-08 22:16:27 +00:00
hunterluthi
2e2959d4b4 Right. This includes both some updates from myself, as well as some updates to mining from errorage.
My updates: 
-Alert Computer ( as seen in CE's office and bridge) renamed to Station Alert Computer. Object path altered to reflect this change (formerly computer/atmospherics/alerts, now computer/station_alert)
-Circuit board changed to reflect above alteration. Renamed as well (also easier to figure out what it goes to with the new name)
-Alert Computer added to atmospherics. 
-Alert computer will now report on power failures on the station.
-Alert computer will now flash red (similar to atmos alert computer) when an alert is present.
-General Alert computer renamed to Atmospheric Alert Computer. Same as changes to alert computer, however there was no circuit board to fix.
-Fixed bug in which APCs were not properly clearing power alerts for the AI and alert computers.
-Fixed a bug in which atmos alert computers were not properly updating icon_state-wise on a power change (they would just vanish). This bug also affected the updated station alert computer, but as I said this has been resolved. 

I think that's it on my updates. 

Errorage's updates are to the mining station and construction area. He vanished on IRC so I can't get him to cough up more details and I need sleep, so he can comment on this if he wants.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@772 316c924e-a436-60f5-8080-3fe189b3f50e
2011-01-04 10:48:45 +00:00
rastaf.zero@gmail.com
f2c2a3b8c1 APC building and disassembling (/obj/item/weapon/module/power_control needs to be placed on map or spawned by admin or removed from existing APC, other components are easily accessible)
APC emagged/broken and wires_exposed icons was swapped, fixed.
APC hacking now can properly shock you
Added station blueprints!
* now possible to rename areas
* now possible to create new bays
* space now haven't free power supply
Blueprints aren't placed on map yet.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@670 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-19 12:09:37 +00:00
hunterluthi
088f8c2202 Eliminated atmos alert lights. Everything else regarding it remains the same. May automate the process to clear alerts with the AI or otherwise alter that later on.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@668 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-19 04:59:06 +00:00
hunterluthi
050cbfdd55 Improvements to air alarms and atmospheric alerts. Minor bug fixes with fire alarms.
Air alarms will now display atmospheric information to anyone. 
Air alarms will not automatically trigger atmos alarms similar to that of a fire alarm. Can also be manually activated by silicon mobs and those with atmos tech access. 
Atmos alert must be deactivated manually by silicon mobs or those with atmos tech access. 
Improved effects for the atmos alert and when an atmos and fire alert occur simultaneously. 
Silicon mobs should now receive an alert when an atmos alarm is triggered. 

Two bug fixes with fire alarms: One was preventing borgs from using them at a distance, the other was giving borgs a starred alarm interface, which was silly.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@655 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-18 07:28:19 +00:00
only.lurking
662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00