Commit Graph

100 Commits

Author SHA1 Message Date
phil235
135293bedf Fixes object processing list by replacing "SSobj.processing.Add" by "SSobj.processing |= " to avoid having duplicated objects in the list, meaning the objects would be processed more than once per iteration.
Fixes Alien embryo processing that was processed twice.
2015-02-14 14:18:49 +01:00
AnturK
a8ddd45690 Makes assembly parts work with wires 2015-01-17 18:08:55 +01:00
phil235
884e2a6f73 Fixes some runtimes from audible_message proc. Fixes silent PDAs calling audible message when receiving a message. 2015-01-14 18:00:17 +01:00
carnie
a3f5e7ebfd Merge branch 'master' of https://github.com/tgstation/-tg-station into SubSystems
Conflicts:
	code/game/gamemodes/setupgame.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/reagents/Chemistry-Machinery.dm
2015-01-04 01:52:14 +00:00
carnie
a029a49392 SubSystem rewrite
Misc:

+Fixes unreported issue with initializing lighting on a specific zlevel

+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.

+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)

+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.

+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.

+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.

+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.

-Removed 'quadratic lighting', can add this back at some point. Sorry.

+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.

+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.

-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.

+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)

+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.

-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.

_OK, NOW THE ACTUAL INTERESTING STUFF_

Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker

Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.

Many system-specific global variables have been refactored into

All tickers which previously used world.timeofday now use world.time

some subsystems can iterate before round start. this resolves the issue with votes not working pregame
2014-12-31 13:25:41 +00:00
Razharas
76a21883a8 Merge branch 'master' of https://github.com/tgstation/-tg-station into GenShit
Conflicts:
	code/game/mecha/mecha.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/mob/living/silicon/silicon.dm
	code/modules/projectiles/gun.dm

Fixes dem conflicts
2014-12-28 11:20:15 +03:00
phil235
8ab92e753a Assembly holder is no longer secured or unsecured. Screwdrive now disassemble it and attack_self to interact with its parts.
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.
2014-12-24 01:50:19 +01:00
Razharas
21a2c2d21e Made clumsiness into disability
I really dont want to make clumsy_act()
2014-12-14 08:04:48 +03:00
Razharas
0921aa201f Added datum mutations
Also removed some mob vars like sdisabilities and merged the usability
with disabilities
Removed need for mutations var, they are not handled in dna
Removed blinded var, now its handled by eye_blind being bigger than zero
Ands lots, lots of other shit in files that used mutations
2014-12-12 04:48:11 +03:00
phil235
27302aa6ae Fixes not being able to hear the beeping of infrared beam, timer and proximity sensor in the dark.
All assembly items start secured (ready).
Fixes certain assembly items being usable while unsecured and not getting the unsecured warning message.
2014-11-22 22:56:13 +01:00
Menshin
ec944abfc6 * limit atmos/fire alerts to the current z_level
* atmos/fire alerts are now linked to an object and not its area, as intended
* simplified and full pathed the radio frequency datum
* made radio objects properly clean on del/qdel, instead of letting the radio controller remove nulls at each post_signal()
2014-11-14 10:10:45 +01:00
tkdrg
99133d2020 Fixes #5604 signaler runtime 2014-11-08 10:09:19 -03:00
phil235
128c9222e5 Adding checks for stun, restrained to many object verbs.
Fixing paper and supply manifest description upon examination.
Fixing being able to adjust jumpsuit while restrained.
Fixing one typo.
2014-11-01 19:18:01 +01:00
phil235
e73abf676f Merge branch 'master' of https://github.com/tgstation/-tg-station into AnomalyFix 2014-10-22 20:54:35 +02:00
phil235
2a0eeea1fb Fixes two anomaly bugs. One: bluespace anomaly doing translocation despite being destroyed. Two: anomaly not checking for the signal code. 2014-10-22 17:39:09 +02:00
Cheridan
17c9aaa6dd Merge pull request #5263 from Aranclanos/electropackrevamp
Electropack fixes
2014-10-16 08:08:57 -05:00
Aranclanos
0063e45ec1 Merge pull request #5236 from phil235/SignalerBugFix
Fixes some runtimes linked to signalers.
2014-10-15 10:44:51 -03:00
Aranclanos
a1d49cfeb4 Changes the path of electropacks from objitemdeviceradioelectropack to objitemdeviceelectropack.
Fixes some runtimes related to electropacks.
Securing electropacks will no longer be required to use a helmet on it, same with dissembling the shockkit with a wrench or placing it in a chair.
Removes the atom var 'moved_recently' that was only used by electropacks (really). Now the electropack will have an inner cooldown instead.
The cooldown of the shock will be 10 seconds, giving the shocked person some small time to move in-between shocks (the shock gives you 5 of weakened).
2014-10-14 21:44:56 -03:00
phil235
ee3a17458e Fixes the runtimes when sending signal at default frequency and code. Fixes the runtime from receive_signal() proc of the signaler inside c4 that is exploding via a signal. Fixes the issue of the three beep message when sending signal at default frequency and code. 2014-10-13 15:59:33 +02:00
MrPerson
651c3e6db5 Merge to master - sole conflicting file was ninja.dm FUCK NINJAS 2014-10-04 01:45:39 -07:00
phil235
3248e23887 Merge branch 'master' of https://github.com/tgstation/-tg-station into AudibleMsgFix
Conflicts:
	code/modules/recycling/disposal.dm
2014-09-25 18:45:53 +02:00
Aranclanos
5ddaf77774 Fixes some runtimes from the infrared sensors, removed a lot of useless spawn() 2014-09-15 09:45:56 -03:00
phil235
87d7c9e91e Create the audible_message() proc to replace most instance of " for(var/mob/M in hearers(...) show_message(..., 2)"
fixing typos and missing emotes in emote lists.
2014-09-14 01:15:15 +02:00
Miauw
cfe2f63b19 Prevents voice analyzers using their own speech as input. Fixed #4670 2014-09-07 13:45:04 +02:00
Miauw
78a9b0be69 Merge branch 'master' of https://github.com/tgstation/-tg-station into say()
Conflicts:
	code/__HELPERS/game.dm
	code/game/gamemodes/cult/runes.dm
	code/game/machinery/requests_console.dm
	code/game/machinery/telecomms/logbrowser.dm
	code/game/objects/items/devices/PDA/radio.dm
	code/game/objects/items/devices/aicard.dm
	code/modules/admin/admin_verbs.dm
	code/modules/assembly/holder.dm
	code/modules/assembly/voice.dm
	code/modules/mob/living/carbon/brain/brain.dm
	code/modules/mob/living/carbon/human/whisper.dm
	code/modules/mob/living/carbon/slime/slime.dm
	code/modules/mob/living/say.dm
2014-08-31 13:40:16 +02:00
MrPerson
a23dbe2357 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/game/objects/items/devices/radio/radio.dm
	code/game/objects/items/toys.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/modules/events/ninja.dm
	code/modules/power/cell.dm
	code/modules/power/port_gen.dm
	code/modules/reagents/reagent_dispenser.dm
2014-08-29 04:21:15 -07:00
Firecage
dac8669166 Span classes for files in the following module folders: assembly, client, detectivework, events, hydroponics, mining, paperwork 2014-08-23 10:13:21 +02:00
MrPerson
13b03a6d43 Hopefully final pass of object -> mob examine switch 2014-08-20 07:07:30 -07:00
MrPerson
d0c97aae72 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/ATMOSPHERICS/components/unary/vent_pump.dm
	code/game/gamemodes/cult/ritual.dm
	code/game/gamemodes/nuclear/pinpointer.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/status_display.dm
	code/game/objects/effects/decals/crayon.dm
	code/game/objects/items/stacks/stack.dm
	code/game/objects/items/weapons/airlock_painter.dm
	code/game/objects/items/weapons/cigs_lighters.dm
	code/game/objects/items/weapons/storage/secure.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/modules/assembly/assembly.dm
	code/modules/assembly/holder.dm
	code/modules/assembly/mousetrap.dm
	code/modules/mob/living/carbon/alien/special/facehugger.dm
	code/modules/mob/living/carbon/slime/examine.dm
	code/modules/power/cable.dm
	code/modules/reagents/grenade_launcher.dm
	code/modules/reagents/reagent_containers/food/drinks.dm
	code/modules/reagents/reagent_containers/food/snacks.dm
	code/modules/reagents/reagent_containers/glass.dm
	code/modules/recycling/sortingmachinery.dm

Thanks Firecage, this is all your fault
2014-08-20 05:54:20 -07:00
Miauw
8602795aec FUCKING RADIO CODE 2014-08-07 18:11:53 +02:00
Firecage
24972ccc5c ABSOLUTELY ABSOLUTE 2014-08-06 16:21:24 +02:00
Miauw
6b42d39228 does more shit 2014-08-05 19:17:21 +02:00
MrPerson
c43518351f Some fixes and minor improvements to examining. 2014-06-13 09:01:52 -07:00
Alex
2cb371c4df Merge pull request #3906 from Malkevin/sparklesparkle
Igniter sparks
2014-06-13 09:16:30 +01:00
Malkevin
e2b6d49961 Igniter sparks
Added the spark effect to the assembly igniter for pretty shiney sparkies.
Makes the igniter more visible thats its been used instead of the current 'fire spawns at dudes feet if in plasma', also makes them useful for creating signaler alarms - albeit massive fire hazards.
2014-06-11 22:52:53 +01:00
ikarrus
e1998e621b Improved bomb logging
-Logging added for activating timers attached to transfer valves
-A quick link to the Signallers list has been added to bomb logs involving signallers
2014-05-19 22:25:10 -06:00
MrPerson
9d9a657acf Change examine() from an atom verb to a mob verb
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.
2014-05-01 09:56:39 -07:00
Ergovisavi
d55d72f049 Merge branch 'master' of https://github.com/tgstation/-tg-station into mineral_economy 2014-03-26 18:14:48 -07:00
Mloc-Hibernia
8af8a43d6f Initial pass to convert LF to CRLF
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
2014-03-24 08:53:40 +00:00
Ergovisavi
57fe8ea3f4 Various mineral/material standardizations, minor mob changes 2014-03-19 18:28:56 -07:00
MrPerson
9eee3e5067 First pass at a qdel() garbage collection system for tgstation
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.
2014-02-23 14:55:12 -08:00
Hornygranny
2134add41b Items with throw_range over 7 reduced to throw_range 7. This does not affect players as there's no way to extend your vision range. 2014-02-17 15:44:07 -08:00
Hornygranny
9d3f8f6a2d second pass 2014-02-15 20:11:12 -08:00
Hornygranny
9e14c22747 Reduces throwspeeds on all items to realistic levels. 2014-02-15 19:58:03 -08:00
Cheridan
bb9c09df46 Obsoletes flags = FPRINT | TABLEPASS*
*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).
2013-12-30 15:03:17 -06:00
Aranclanos
213f3fff31 Some fixes for Linda, now the Move() proc of objects that block air is different. Example below.
object/Move()
   var/turf/T = loc
   ..()
   move_update_air(T)
2013-12-19 22:13:21 -03:00
AndroidSFV
3144b54e92 Fixes #633. Problem was a null.loc runtime from the chair being disassembled. 2013-10-27 19:37:38 -05:00
supersayu
799c7ad2ce Replaces atom/HasEntered() with the builtin atom/movable/Crossed()
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.
2013-10-23 16:20:20 -04:00
Robson Richards
1c70008d0c Changes Limbs into Obj's
Reworked all the paths for it
Reworked all the procs for it
2013-10-11 19:11:55 +01:00
Cheridan
115faf4954 Anomaly Neutralization
Anomalies can now be scanned to determine their frequency, and neutralized by sending a signal on that frequency.
2013-09-19 03:20:44 -05:00