Commit Graph

148 Commits

Author SHA1 Message Date
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
tkdrg 2607a456c0 Merge pull request #6634 from paprka/chefuniform
Makes the second cook spawn in short order cook clothes, fixes chef uniform
2014-12-30 03:45:13 -03:00
paprka e8738e8dd5 Changes some clothing and chef gear 2014-12-28 02:13:28 -08:00
phil235 b6e35278e3 Fixes cutting black gloves to make fingerless gloves not changing the icon to fingerless.
Fixes the washing machine being able to change boxing gloves, ninja gloves and botany gloves to look like simple colored gloves. Creating a /gloves/color category for all gloves whose color can be changed.
Fixing some absolute pathing.
2014-12-26 17:04:09 +01:00
Razharas 0b26a71a71 Merge pull request #6333 from tkdrg/singulobj
The singularity/narsie are no longer machines
2014-12-14 10:02:39 +03:00
paprka 40943d5684 reverts some sechailer and other feature things 2014-12-13 00:09:58 -08:00
tkdrg 79e8ad4142 The singularity/narsie are no longer machines 2014-12-12 19:42:37 -03:00
paprka 3240cbea99 Tactical armor, etc 2014-12-12 00:23:16 -08:00
paprka e9477cfe9d initial commit for better security clothing 2014-12-11 11:50:52 -08:00
paprka 9e9b8b440d adds winter coats and changes labcoat toggling 2014-12-04 21:29:21 -08:00
Jordie0608 ce6a1d0d89 Fixes select job equipment cancel 2014-11-18 22:50:33 +11:00
paprka ec6b2424d2 purge the unused 2014-11-13 21:10:53 -08:00
paprka 40cdf3ffec swat mask overhauls and such 2014-11-13 18:36:30 -08:00
Jordie0608 9ea09e78e5 Removes comment 2014-10-15 00:40:22 +11:00
Jordie0608 bb7cf63f88 Remove del-alls list of safes 2014-10-15 00:14:26 +11:00
Cheridan f96b017149 Merge pull request #5097 from phil235/Msg1Fix
Fixing a lot of messages
2014-10-07 12:09:01 -05:00
Cheridan 66304667cf Merge branch 'dualswordstake3' of https://github.com/Aranclanos/-tg-station into Aranclanos-dualswordstake3
Conflicts:
	_maps/map_files/tgstation.2.1.3.dmm
	code/datums/uplink_item.dm
2014-10-06 19:27:14 -05:00
phil235 537280b4b9 Removing many instances of the no longer used second argument of message_admins() proc.
Replacing "for(var/mob/M in viewers()) M.show_message()" by "visible_message()" or audible_message()" in many places.
Changing a few span classes.
2014-10-05 01:29:30 +02:00
Cheridan ff5ec967eb Merge pull request #4917 from Jordie0608/plastiqueisoldfrechforplasticexplosives
Standardizes name and path of plastique/plastic explosive/c4 to C4
2014-09-23 09:02:43 -05:00
Jordie0608 facb2744cb Standardizes name and path of plastique/plastic explosive/c4 to C4 2014-09-21 17:34:26 +10:00
Miauw e66f74439a Fixes radio MMIs turning exofabs into radios.
Also removed the obsolete GLOBAL_RADIO_TYPE variable.
2014-09-20 15:19:29 +02:00
Aranclanos 042615709d New path for energy swords, /obj/item/weapon/melee/energy/sword/saber and the different type of colours (purple, red, green, blue) are childrens of it.
You can only use sabers to create a dualsword and to archieve the funky colours with the multitool.
Dualswords now will be eqipped on hand once created instead of staying on the floor.
Fixes issue #4050
2014-09-12 20:25:40 -03:00
Firecage 6d259e10ec Spanclass fixes 2014-09-03 20:00:35 +02:00
Firecage 6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
ikarrus 0891744c8e Resolved Conflicts:
_maps/map_files/tgstation.2.1.3.dmm
2014-08-21 19:47:30 -06:00
ikarrus d56274a4ab Adds Deathsquad to Quick-Create Antagonist Menu
-Pressing this button will spawn up to 5 death commandos on centcom with a customizable objective
-Added a shuttle console to the ferry that, rather than moving the shuttle, will send a request to admins instead
-Deathsquaddies get an energy shield
-Deathsquad beret will no longer hide head, face, and hair
2014-08-16 00:40:37 -06:00
ikarrus 51251a2449 Fixes #4220 (Select-Equipment > As Job... doesn't assign jobs to their ID and PDA)
Fixes #4220
2014-08-14 22:43:58 -06:00
paprka d41a469ff4 Merge branch 'master' of https://github.com/tgstation/-tg-station into goodbyedeadspace
Conflicts:
	code/game/mecha/mecha.dm
2014-08-06 15:22:56 -07:00
paprka d992c907c6 goodbye rigsuits my old friends 2014-07-29 11:43:34 -07:00
KyrahAbattoir fcb2fb9de3 Another lowercasing pass on a bunch of items and furnitures.
Synthflesh should be a plural.
Leg cuffs is better than legcuffs.
LaserTag -> laser tag is not a brand name.
centcom -> Centcom is always capitalised.
2014-07-27 19:14:40 +02:00
ikarrus d3ec4dbf72 Resolving Conflicts:
_maps/map_files/tgstation.2.1.3.dmm
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/bots/secbot.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/monkey/monkey.dm
2014-06-27 09:30:43 -06:00
Cheridan 02603f89e4 Merge pull request #3934 from Ikarrus/jobequip
The Select-Equipment admin verb now includes all jobs
2014-06-21 00:47:30 -05:00
ikarrus 7f1bea18e5 Securitron Update
-Added a new access type that will act as a weapon permit that the HoS/HoP can manage. Centcom, Security, Captain, HoP, and the Barman start with it.
-Securitrons will now have the option to declare arrests they make to anyone who is wearing a security HUD. This can be turned off per-securitron
-Securitrons now have the option to arrest humans without any IDs. Defaults to off.
-Changed how securitron threat assessment is calculated
-Removed detective access from securitrons
-Stunning and cuffing now properly bolds their text for the perp
-Pingsky has its own type now

I realise there is a lot of existing duplicate code between the EDs and the securitrons, but I don't think I'd have the capability to tackle that any time soon.
2014-06-15 16:19:32 -06:00
ikarrus 726b1dc28f The Select-Equipment admin verb now includes all jobs
Useful for admins and coders alike.
2014-06-14 22:05:15 -06:00
MrPerson 44638fd05c Add logging to failed GC's that result in a del() call
You can view these logs in-game using a debug verb. You have to use the debug-verbs command to see it.

Removed the dellogging compile option. If this is a problem, speak up, but for most users, this new functionality is more useful.
2014-06-13 11:46:17 -07:00
phil235 23746fc228 under/det into under/rank/det 2014-05-31 00:36:26 +02:00
Rolan7 ab1dd6fc0d Medal of Captaincy is no longer twice as large.
Fixes issue #2883 and a minor bug where set-equipment wasn't properly equipping "assassins" with waistcoats.  Both cases now use the existing attachTie method, which exists for this reason.
2014-05-14 02:14:28 -04:00
Aranclanos b544a945a9 Fixes issue #2489
Fixes issue #119

Transferred all the different colours of under clothes and shoes to obj/item/clothing/under/colour/XXX and obj/item/clothing/shoes/sneakers/XXX
Added two extra options to the spawn menu of the game panel, clothing and food.
2014-05-01 06:01:14 -03:00
Daniel 30bb6c8814 Generalised ID naming 2014-04-09 18:49:59 +02:00
Daniel 6c668c7c7b Generalised PDA naming 2014-04-09 18:43:29 +02:00
Niknakflak 6a6b968fbd Adds Red Laser Tag equipment set and Blue laser tag equipment set to the "Select Equipment" Admin verb 2014-03-27 17:35:55 -07:00
MrPerson 6930283efc Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/gamemodes/changeling/changeling_mutations.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/malfunction/Malf_Modules.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/research/server.dm
2014-03-21 03:05:39 -07:00
Rockdtben a034e41f25 Removing TLE comment stamps and useless comments 2014-03-13 08:25:28 -05:00
MrPerson 6b29fecda1 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/turrets.dm
	code/game/objects/structures/crates_lockers/closets.dm
	code/modules/research/circuitprinter.dm
2014-03-08 22:03:03 -08:00
drynwyn abefc24a87 Switch gangster ammo to match weapon
Fixes #2988
2014-03-07 09:54:59 -05:00
MrPerson 917a2dd2a4 Rename equip_to_slot_or_qdel() -> del()
Still qdel()'s them, just naming the proc back.
Should hopefully reduce the number of lines different in the pr.
2014-03-02 21:08:25 -08:00
MrPerson 48923f9ce5 Redo of jitteriness and dizziness.
Fixes #2923
2014-02-27 23:19:44 -08:00
MrPerson f0fd0c9949 Fixed the nuke disk qdel() fucking up
Made the singulo spawn correctly
Really minor fix for things that are qdel()'d at 0 time, which should be nothing if everything is going right.
2014-02-25 02:29:49 -08: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
MrPerson c8144bc5c6 Nano UI for SMES
Screenshot:
http://imgur.com/63D3f8b
Buttons are greyed because there's no input available.
2014-02-05 16:32:07 -08:00