Commit Graph

72 Commits

Author SHA1 Message Date
KiwiFarms 9afe050025 Replaced last occurences of gc_destroyed by qdeleted(). 2016-03-05 01:58:56 +01:00
MrStonedOne 60d068e6fa Merge remote-tracking branch 'upstream/master' into patch-130
Conflicts:
	code/__HELPERS/unsorted.dm
	code/game/objects/objs.dm
	code/modules/reagents/reagent_dispenser.dm
2016-02-07 17:41:42 -08:00
phil235 8b11d87b1d Merge branch 'master' of https://github.com/tgstation/-tg-station into VisionUpdateRefactor
Conflicts:
	code/ATMOSPHERICS/components/unary_devices/cryo.dm
	code/_onclick/hud/alert.dm
	code/_onclick/hud/hud.dm
	code/datums/mutations.dm
	code/datums/wires/robot.dm
	code/game/atoms.dm
	code/game/gamemodes/blob/overmind.dm
	code/game/machinery/alarm.dm
	code/game/machinery/machinery.dm
	code/game/machinery/suit_storage_unit.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/game/objects/items/weapons/tools.dm
	code/game/objects/structures/morgue.dm
	code/modules/admin/verbs/adminjump.dm
	code/modules/atmospherics/machinery/atmosmachinery.dm
	code/modules/mob/inventory.dm
	code/modules/mob/living/carbon/alien/humanoid/death.dm
	code/modules/mob/living/carbon/alien/larva/death.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/human/human_damage.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/species.dm
	code/modules/mob/living/carbon/human/species_types.dm
	code/modules/mob/living/carbon/life.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/life.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/ai/ai.dm
	code/modules/mob/living/silicon/ai/death.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/pai/death.dm
	code/modules/mob/living/silicon/pai/pai.dm
	code/modules/mob/living/silicon/robot/death.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/silicon/silicon.dm
	code/modules/mob/living/simple_animal/guardian/guardian.dm
	code/modules/mob/login.dm
	code/modules/mob/mob.dm
	code/modules/projectiles/gun.dm
	code/modules/reagents/chemistry/reagents/blob_reagents.dm
	tgstation.dme
2016-02-04 14:34:45 +01:00
phil235 81ce777ec2 - you now only see turfs when inside gas pipes.
- I renamed some vars of datum/hud to be more selfexplanatory
- Moved all datum/hud mob code into the hud folder.
- fixed alien's zone selection button not using the correct sprites.
- I removed the update_hud() proc (that needed to be removed).
- Fixed a typo in /mob/living/carbon/ContractDisease , using "internals" instead of "internal" (very different things)
- Fixed doTeleport() calling Entered() twice on the destination area.
- To reference a mob's selected zone, you now use a direct mob var ("H.zone_selected" instead of "H.zone_sel.selecting")
- mobs lose certain screen objects var ("healths", "zone_sel", "internals", etc) which are now vars of the mob's datum/hud instead.
- the Blind spell is now done via the blind mutation instead of the blind disabilities.
- Give to mobs a version of forceMove(), so the mob is always properly unbuckled, his pull stopped, his vision updated, etc.
- The "user" var of mob/camera/aiEye/remote is renamed to "eye_user" to avoid confusion.
- reset_view() is replaced by reset_perspective(). Now all changes to client.eye and client.perspective are done with this proc.
- I reworked /obj/machinery/computer/security code, changing camera is instantaneous now, as well as cancelling.
- I reworked /obj/machinery/computer/camera_advanced code as well.
- I changed /obj/item/mecha_parts/mecha_equipment/mining_scanner's meson view to be constant instead of by intermittent.
- Fixes not being able to use /obj/item/device/camera_bug while buckled.
- removed admin_forcemove() proc, admin force moving now uses forceMove() simply.
- Removed the client var "adminobs"
- Added var/vision_correction to glasses.
- Added a thermal_overload() proc for glasses, to remove copypasta in emp_act code.
- Remove the hal_crit mob var
- We no longer delete the mob's hud everytime he logs in.
- Added a stat == dead check in mob's metabolize() so we immediately stop metabolizing if one of the chem kills the mob.
- Being inside disposal bin lowers your vision, like wearing a welding helmet.
- removed the remote_view mob var.
- I changed advanced camera EYE, some fixes, removed unnecessary code when the eye moves, now the mob client eye properly follows the camera mob.
- fixes mob var "machine" not being nullified on logout.
- larva/death() was calling two "living_mob_list -= src"
- I made the Blind screen objects into a global_hud instead of giving one to each mob (like damage overlay).
- I untied tint and eye_blind, TINT_BLIND doesn't give you eye_blind=1.
- gave a visual overlay when inside locker (vimpaired)
- when inside disposal/gas pipes you get sight |= (BLIND|SEE_TURFS)
- glasses toggling updates (atmos meson toggle): DONE
- The new adjust procs serve to properly change eye_blind etc and call vision update procs when needed.
- I added an on_unset_machine() proc to handle perspective reset for camera consoles.
- I moved consequences of eye_check fail inside eye_check() procs themselves.
- I fixed vision updates being fucked by forceMove, especially pipe vision.
- I decided that damage overlay not appearing when dead.
- mob's hud_used is no longer deleted on each login()
- I refactored mob huds a bit, creating subtypes for each mob (/datum/hud/human)
- f12's hud toggling is now available to all mobs
- gave borgs a low_power_mode var so unpowered borg do not use stat= UNCONSCIOUS (which made things weird since you were unconscious but not blind)
- Fixed double Area entering when forced teleporting.
- I fixed larva pulling not being broken when cuffing them, and larva not seeing handcuff alert (and they can resist by clicking it)
- I removed pull updates from life() since it onyl checked for puller's incapacitation.
- I renamed camera/deactivate() to toggle_cam() to be more accurate.
- I fixed mmi brain being immortal (by removing the brain and putting it back)
- I simplified mmi brain emp damage.
2016-02-04 00:33:16 +01:00
AnturK 1cbb8137d9 Moves initialize from /atom/movable to /atom
Bit cleaner powernet/pipes initialization in templates
2016-01-30 14:34:34 +01:00
Kyle Spier-Swenson 7cda37e5b6 speeds up tesla_act and thus, tesla_zap 2016-01-25 20:02:23 -08:00
Bjorn Neergaard 0a7236d955 Allow relabeling any canister; port MULEbot to tgui 2016-01-18 14:21:56 -06:00
Menshin 828c1ddf2c * Generalized AStar check for objects preventing passability
* Fixed AStar not detecting plastic flaps as impassable for mobs that can't pass them (fixes #14616)
2016-01-16 15:27:31 +01:00
Cheridan 1e516a68c7 Merge pull request #14347 from Iamgoofball/patch-143
Tesla Nerf (shh dont tell aran)
2016-01-06 12:22:05 -06:00
Bjorn Neergaard dc69cbaefb Allow UIs to be attached to datums; various fixes 2016-01-04 10:46:31 -06:00
Iamgoofball e1828f363e nerfs machine bounce range 2016-01-03 10:25:10 -08:00
AndrewJacksonThe2nd f0f18ec6ef TESLA 4.0: less laggy hopefully 2015-12-24 00:25:00 -08:00
AndrewJacksonThe2nd 56be042744 fixes 2015-12-19 17:35:30 -08:00
AndrewJacksonThe2nd 1ab5e80458 Tesla map removal to fix merge 2015-12-19 12:32:50 -08:00
KorPhaeron d8a37204e7 Makes burn_state use defines 2015-12-13 05:36:55 -06:00
KorPhaeron 50e4e77250 Fixes UI stuff 2015-12-09 21:37:18 -06:00
Shadowlight213 3c35ac809e Hopefully finally fixes the nanoui issue. 2015-12-06 23:24:01 -08:00
Shadowlight213 74c27189b9 Renames IsAGhost to IsAdminGhost.
Reworks checks to not need stat to be 0
Fixes the majority of the Nanoui bugs.
2015-12-06 20:21:43 -08:00
Nerd Lord 3a96d9bd8c No delay on examining objects with a nanoui interface as a ghost 2015-12-02 22:53:33 -05:00
Bjorn Neergaard 6ec257c360 Hotfix for SStimer lag
SStimer can now check dupes
Also fix ghosts not being inquisitive with objects...
2015-12-02 21:23:45 -05:00
Bjorn Neergaard 6f098e8298 Allow ghosts to use any NanoUI interface. 2015-11-30 23:34:59 -05:00
bear1ake f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
Swag McYolosteinen 2bb4f63023 Merge pull request #11087 from phil235/GirderSinguloPull
Girder deconstruction bugfix
2015-08-13 16:33:28 +02:00
Aranclanos 3eb09817e4 Removes the burning object out of the burning list before qdel()ing, fixing some runtimes 2015-08-10 19:06:45 -03:00
phil235 866cdbcd34 Fixes plasma cutter firing sound, as well as lack of sound when slicing girder/statues.
Rearrange girders.dm
Singularity_pull() no longer unanchors anchored objects (because it breaks the deconstruction of table/girder/states/etc, and make mech pullable by mobs), but it still pulls them.
2015-08-07 23:14:45 +02:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Ikarrus c832f5dafd Items have a variable burn time
- Object burn times vary between 1x-2x the value set for var/burntime
  - This way they don't all burn up at the same time. For muh immersions.
- Examined ashes from burned objects will reveal what they used to be
2015-06-30 22:44:29 -06:00
Ikarrus 59ca40f03d Burning objects are processed every tick now instead of using a spawn() check 2015-06-27 09:22:14 -06:00
Ikarrus 8759f56f6f Squashed Commits 2015-06-27 00:09:16 -06:00
LaharlMontogmmery 373c918a4a Going through some hOOPs - bit of a overhaul. 2015-06-18 17:40:35 +02:00
Miauw 3f71ac48f1 Nerfs the AI in several ways:
* Adds a "Camera Failure" event that disables a few cameras.
* Makes tracking take time, increasing with distance from the core.
* Makes camera alerts only happen when a camera is reactivated.
* Makes it possible to bludgeon cameras.
2015-06-05 18:59:37 +02:00
Miauw f630cce730 Makes all machines use the robot font. Fixes #8575 2015-05-23 18:15:26 +02:00
Iamgoofball c06ad7e6b8 moved process() to datum. made /datum/reagents/ process instead of the containers. 2015-04-07 17:13:59 -07: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 208b59c30e Fixed stuff tkdrg pointed out
Added comment to dualsaber and hulk checks to explain whats going on
Added defines that converts to mutation names
Fixed grammer again
2014-12-28 10:49:04 +03:00
Razharas 8d110ee496 Tiny clean up, still lots of work to do
Only compiletested, these changes were never tested in the game yet
2014-12-12 23:57:11 +03:00
Razharas 7758a0afed Ok now explosions shall work properly
Changed severity to target, make items not destroy themselves on
severity lower than 1, all that stuff
2014-12-05 23:21:48 +03:00
Razharas ff456ebaf4 Unwinded most of shit
Meh
2014-11-19 21:36:45 +03:00
Aranclanos f7ad6d9ab0 Fixes issue #1442
canUseTopic() will now check for telekinesis on humans, using the be_close flag.
The pop-up window will update if TK users are using the machine.
2014-11-05 13:55:31 -03:00
Cheridan df13b0d840 Merge pull request #5591 from hornygranny/OOPgularity3
improved deconstruction, singularity stuff
2014-11-03 20:20:55 -06:00
tkdrg a97c4de972 Moves m_amt, g_amt, reliability and origin_tech to /obj/item (previously in /obj)
Removes force from pipes
Removes unused turf var icon_old
Moves pass_flags to /atom/movable
2014-11-02 14:10:03 -03:00
Hornygranny 955847de74 defines 2014-10-31 19:00:50 -07:00
Hornygranny 5815d7e011 grilles are now damaged by thrown items
disposalpipes deconstruction
atmos pipes deconstruction
2014-10-31 18:26:42 -07:00
Hornygranny 264c25b892 makes the singularity's pulling OOP with the magic of atom proc 2014-10-27 16:43:35 -07:00
Hornygranny e5e6ded884 singularity is now OOP 2014-10-20 16:36:00 -07:00
Miauw 6176d845f0 fixes some stuff gia told me to fix 2014-08-31 14:27:40 +02:00
Miauw 6b42d39228 does more shit 2014-08-05 19:17:21 +02: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