Commit Graph

771 Commits

Author SHA1 Message Date
Alberyk
196019b387 Re-adds the merchant shuttle (#3500)
This pr will re-add the merchant shuttle and fix a minor issue with the raider's location on the console.
2017-09-25 10:57:37 +03:00
TheGreatJorge
0732abb600 New turret icons & turret code tweaks (#3416)
Adds flooring to the turret with "decorative" conduits.

Adds darkening and brightening animation when turret opens/closes to indicate the turret rising up or down.

Made new construction phase depicting nearly all steps visually (Apart from adding the prox sensor.)

Made sure almost every gun that can be turreted has a relevant sprite. These are based on gun sprites. Changing those might cause turrets to not reflect the gun look.

Some guns share sprites, some were made unturretable.

Added new set of vars on the /gun/energy level, since the /gun level had few essential vars missing and I am not really looking for any other code rewrites regarding this right now. Should not be hard to move them step up, if ever needed.

Turrets that have only one shooting mode have now the changing mode option greyed out.

Also removed leftover references to two energy carbine subtypes and removed one global list.
2017-09-22 23:11:41 +03:00
Lohikar
c13c0f84fb Add get_listeners_by_type (#3483) 2017-09-22 12:45:43 +02:00
Lohikar
fe8d586b31 Ambient Occlusion (#3419)
Adds an implementation of Europa's wall ambient occlusion, extended to operate on openturfs as well.
2017-09-15 09:49:53 -05:00
skull132
86220edeb3 Merge branch 'master' into development 2017-09-14 22:59:07 +03:00
Werner
ff853542b1 Cargo Overhaul (#3221)
Changes cargo to be based on credits instead of items

The following is still ToDo:

 Test SQL Loading + Add flyway migration
 Add changelog
 Restore the PDA Application
2017-09-14 21:32:06 +03:00
Lohikar
0aa1e4c6c8 Fix space vine lag (#3452)
Fixes lag from plants processing forever instead of obeying the subsystem's tick interval. Also fixes a glitch where plants didn't continue to grow if not mature.

Fixes #3451.
2017-09-14 21:11:10 +03:00
Lohikar
e28c29a551 Port Integrated Electronics from Polaris (#3371)
Ports Polaris' integrated electronics system, whichallows for Roboticists & Electricians/Engineers to build custom devices and machines for a variety of purposes.
2017-09-12 21:41:39 -05:00
Lohikar
748846821c Fix Stairs (#3403)
changes:

Stairs now actually work.
Stairs now only move your mob up when you exit the last step.
Walking off the side of a staircase will now cause your mob to faceplant on the ground briefly.
Openturf now handles objects that cover more than one turf properly, such as multi-tile doors.
2017-09-10 22:52:50 +03:00
Lohikar
f4be66f342 Fix openturf starlight (#3401)
changes:

Openturf starlight now actually works.
Openturf starlight is now under its own config option, so it can be toggled separately from starlight.
OT starlight no longer re-applies to a turf that already has it set.
Seems to use a fair bit of memory unfortunately, as well as adding a good 25 seconds or so to boot time.
2017-09-10 22:50:14 +03:00
Lohikar
8f4b4effae Kill processing_objects (#3398) 2017-09-09 15:22:58 -05:00
skull132
16d33365c2 Merge branch 'master' into development
# Conflicts:
#	code/modules/client/preference_setup/loadout/loadout_xeno.dm
#	code/modules/customitems/item_defines.dm
2017-09-09 21:38:02 +03:00
Lohikar
ac2ed66cef Fix some issues with SSplants processing (#3417)
Fixes some issues where plants would not get removed from their processing list properly.
2017-09-09 19:00:05 +03:00
Lohikar
f962f3be1b SSoverlays performance tweaks (#3390)
changes:

SSoverlays only creates the our_overlays and priority_overlays lists separately and when they're actually used. This should remove a lot of unused lists as priority_overlays is relatively unused.
SSoverlays is now FIFO.
SSoverlays now uses large Cut() operations instead of continuously truncating its processing list.
SSoverlays is no longer a processing subsystem.
Performance tweaks to add_overlay()
SSoverlays no longer tries to re-process atoms that have already forcibly compiled their overlays (like human-types).
2017-09-08 20:11:53 +03:00
Lohikar
b9a4ecd173 DEvent, Mk II (#3241)
Redesign of PR #2209, now with sane unregistration + a new event.
2017-09-06 18:08:44 +02:00
Lohikar
e1f84a756e experimental caching performance tweaks (#3364)
Changes the asset cache's on-connect cache to use a ticking subsystem instead of sleeps and timers to slowly send assets to clients.
2017-09-02 21:35:03 +03:00
Lohikar
08dcdba926 Performance tweaks (#3359)
Mostly aims to reduce meaningless proc-calls in Move() and forceMove(), also inlines the rest of the power calculations in SSmachinery to remove a lot of proc-calls.
2017-09-02 21:33:03 +03:00
Lohikar
c58fea0cf5 Reduce SSgarbage's tickrate (#3376)
Reduces the garbage collector's tick rate to 2 seconds vs. 0.5 seconds - it doesn't need to tick this fast and this should in theory reduce GC lag.
2017-08-31 22:32:00 +03:00
Lohikar
2f00346cc4 Fix simple statistics (#3381)
Fixes simple statistics not being written to the feedback database.
2017-08-31 11:13:06 -05:00
Lohikar
839ca01947 Global Listeners (#3373)
SSwireless is dead, long live Global Listeners.
2017-08-29 16:09:41 -05:00
Lohikar
f8bcaf4864 Lighting Performance Tweaks & Fixes (#3325)
changes:

SSlighting is now FIFO - lights are processed in the order they are received instead of by whatever one was queued most recently.
Instant lighting updates now check CURRENT_TICKLIMIT instead of ITL. ITL has been removed due to it no longer being used.
SSlighting will no longer double-process lighting datums that have already been processed by instant lighting.
Instant/Intelligent lighting updates can now be disabled via. compile-time define.
Sunlight should no longer shine indoors.
Directional lighting now properly updates on direction changes again.
/datum/light_source/novis has been renamed to /datum/light_source/sunlight.
More lighting microoptimizations.
Converted two storage lists to be lazy.
2017-08-28 01:06:17 +03:00
Ron
ad4fce70c5 Adds a gamemode probability verb (#3320)
Using the show server revision verb will now show the percent chance of each gamemode in the secret and mixed secret rotation. Based off of how TG did it.
2017-08-26 08:05:20 -05:00
Lohikar
f3ad54e8aa Assorted tweaks & fixes (#3305)
changes:

Fixed #3203.
Tajara or Unathi CEs now get gloves that actually fit them.
OOs now respect direction changes from their mimicked object.
Replaced all references to trange() with RANGE_TURFS().
Replaced all references to is_type_in_oview() with locate() in oview().
Fixed a runtime caused by recursive explosions falling off the edges of the map.
Carp despawn now works properly with the new asteroid turfs.
Carp despawn now uses WEAKREF instead of SOFTREF.
Added tick-checks to the carp migration event.
Vaurca now have the IS_VAURCA reagent_tag.
Cleaned up butanol alien handling a bit.
2017-08-20 14:10:15 +03:00
Lohikar
9dd650b7a9 Minor lighting performance tweaks (#3298)
changes:

Sunlight prebake now happens during MC Initialize instead of in the lobby.
Openturf no longer ticks in the lobby.
Openturf has been promoted to a normal SS, from SS_BACKGROUND.
Lighting no longer ticks in the lobby.
Inlined directional lighting's coordinate filter.
Directional lighting wedge caching now properly works with face-direction.
2017-08-20 14:08:25 +03:00
Alberyk
5e3281a7b7 More wizard stuff (#3292)
-removes the jaunt spell from the wizard corrupt form
-increases the price of raise dead to two points
-adds a new wizards spell; flesh to stone, that traps your target in a statue for some time
-added a chance of creating a central command report everytime the lich is send back to his heart, telling the possible location of the heart
2017-08-20 14:03:54 +03:00
Lohikar
4338095bdf Fixes #1491 (#3309) 2017-08-20 14:00:34 +03:00
Lohikar
eace452b30 Human icon key & preferences tweaks (#3274)
changes:

Reworked how human body icon keys are generated; resulting keys should be much shorter now and involve less duplication of the same string.
Players are now shown a message when they try to add markings to a species that has none available.
Admin revive for human-types will now also re-apply their organ and marking prefs.
Admin revive now also resets shock_stage (fixes rejuv'd mobs being slow for a while)
2017-08-14 01:01:40 +03:00
Lohikar
b8bb48ef76 Convert clothing to initialize (#3263)
changes:

Converted all clothing types to Initialize.
Added some missing destroys to some custom items.
Char setup now forcibly initializes the mannequin's contents if SSatoms has not finished yet.
/obj/item/clothing/under no longer does in icon_states() in New().
2017-08-13 23:32:07 +03:00
Alberyk
d1c3a58c87 Adds the merchant station, the shuttle and the station's dock (#3254)
This pr adds the second essential part of the merchant's implementation, mapping the merchant's shuttle, base and the dock. And more merchant related fixes and tweaks.
2017-08-13 23:31:50 +03:00
Lohikar
5b97803904 update icons performance tweaks (#3259)
A collection of misc. micro-optimizations to the various human update-icons procs.

changes to human update icons:

Removed some unused human layers.
Merged the l_ear and r_ear layers into one layer.
Minor optimizations to update_ears (optimized for only one ear in use)
update_collar() no longer creates an icon each time it runs just to check icon_states.
update_collar() now uses a cached assoc list of icon_states for comparison instead of in IconStates().
Human body types are now cached on first access so the proc doesn't need to be called all the time.
Contained icons now involve less temporary strings.
Manual tail swish now uses client-time timers instead of server-time timers.
2017-08-09 20:27:50 +03:00
skull132
81bb348a42 Merge branch 'master' into development 2017-08-06 22:09:41 +03:00
Ron
ad96a34dd8 Removes some in worlds (#3227)
Removes some in worlds and some commented out code that I don't think will ever be used.
2017-08-06 19:50:53 +03:00
Erki
a50820a574 Fixes a bug with default values. (#3237) 2017-08-05 22:36:14 +03:00
skull132
1784bf4669 Merge branch 'master' into development
# Conflicts:
#	maps/aurora/aurora-3_sublevel.dmm
2017-08-04 22:10:58 +03:00
Alberyk
b4fa4a8b3a Baystation12 merchant port (#3155)
Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
2017-08-04 21:36:04 +03:00
Lohikar
880d9cb5b4 Fix MC crash handling (#3222)
Ports a fix from /tg/ upstream - previously failure strikes did not distinguish between subsystems when they should've.
2017-08-04 21:24:41 +03:00
skull132
0f072e15e9 Merge branch 'master' into development 2017-08-02 23:56:29 +03:00
Lohikar
1ee2203b01 clean up some legacy code (#3211)
changes:

/obj/effect/list_container/mobl has been replaced with /datum/mobl.
/obj/effect/stop has been removed as it is unused.
/obj/effect/shut_controller has been removed as it is unused.
Uristrunes now cache in SSicon_cache.
2017-08-02 19:53:23 +03:00
Ron
0a760075ee Adds the gravity generator (#3183)
Works like it did in old code with some minor additions. The sprite is the one TG uses.
2017-08-02 19:48:54 +03:00
Lohikar
2fb9387988 More Openturf fixes (#3198)
Fixes a bug where openturf would unexpectedly delete an overlay if it was updated via. update_above() when it was already queued for update. Also fixes #3191 and includes some minor performance optimizations.
2017-07-31 21:49:51 +03:00
Lohikar
a6a9a6ab7b Fix Autodrobes again (#3190)
changes:

Autodrobes no longer steal your clothes if you had an oversuit on but not a custom jumpsuit.
Late Miscellaneous Init (LMI) no longer uses silent init logging.
equip_to_slot_or_del() will now equip even if the target slot would normally be inaccessible.
May fix #2826.
Fixes #2512.
2017-07-31 21:49:23 +03:00
Lohikar
523b203273 Faster (?) Garbage SS (#3184)
changes:

The GC now truncates its lists using a single Cut() call per run instead of one cut call per item removed.
Nar-sie and Supermatter Cascades now disable the GC to reduce lag during these events - round is ending in 5 minutes anyways, so enforcing deletes is not important.
Garbage's MC status panel now displays how many objects are awaiting queueing.
2017-07-31 20:26:28 +03:00
Lohikar
f8cdcd013c More initialize tweaks (#2971)
changes:

Organs now use Initialize().
The observe message now shows the configured respawn delay instead of always 30 minutes.
Seed datums no longer have a timer in New().
External organs no longer have a timer in New()/Initialize()
Converted some spawns in organs to timers.
Floor init no longer breaks to plating first for mapped in tiles.
Added the INITIALIZE_IMMEDIATE macro to make Initialize() not wait for SSatoms init.
Mannequins now use INITIALIZE_IMMEDIATE instead of a custom-defined New().
Mannequins (from get_mannequin) now delete themselves if unused for 5 minutes or longer.
2017-07-28 12:00:36 +03:00
Lohikar
cfb7357c6f Area cleanup, Minor BST tweaks, Nuke Fixes, Explosion fixes (#3164)
changes:

Ported some timer fixes from /tg/ (timerid overflow fix, invalid deltimer logging)
Removed pointless air alarm elections.
Cleaned up some area code and moved area var definitions into areas.dm.
The nuke now only destroys Zs connected to the Z it detonates on. (Fixes #2552)
The nuke no longer destroys CC.
Nukes now dust mobs.
Cascades now dust all mobs on all non-admin levels.
Fixed a bug where SSexplosives would not honor the is_rec var.
Improved the efficiency of /proc/random_station_area().
Bluespace Bugs can now teleport out again.
Bluespace Technicians can now turn off their x-ray vision without needing to remove their glasses.
Human-types no longer make footstep sounds when lying down, unconscious, or dead.
2017-07-27 18:10:38 +03:00
Lohikar
ff5cd35ef8 More Openturf Tweaks (#3137)
changes:

Openturfs now darken the lower level less (0.4 lighting multiplier vs. 0.25).
You can now examine human-types and other objects with special examine behavior through Z-levels. (OOs proxy examine())
Fixed a bug where shadower updates caused by LO updates caused visual inconsistencies.
2017-07-23 12:40:44 +03:00
Lohikar
64e33fab83 Human icon tweaks (#3131)
Mostly efficiency changes to human icons, little bit of code deduplication in head icons.
The human overlay list has been changed to accept /list so that multiple items can be added to a layer without having to resort to adding overlays to an intermediary object like an /image.

changes:

Human skin color (not tone) is now stored as a hex string instead of a 3-value list.
Human body hair color (resomi only) is now stored as a hex string instead of a 3-value list.
Body markings now play nice with the human icon cache (Fixes #3110)
Hair properly uses its cache now in all cases.
Merged head organs and human icon's implementations of hair icon gen into a proc on human.
Replaced the individual hair and beard caches with a shared composited hair cache used by both head icon and mob icons.
Lists in the human overlay list are now flattened out onto the human, allowing for multiple objects within a single human icon layer without using an intermediary image.
Removed some unused caching lists.
Damage overlays no longer utilize overlays on a blank image for drawing, instead using a list in the human overlay list.
Shoe overlays no longer utilize overlays on the shoe image, instead using a list in the human overlay list.
Surgery overlays no longer utilize overlays on a blank image, instead using a list in the human overlay list.
2017-07-23 01:03:00 +03:00
Lohikar
8fcad605ee More icon caching (#3078)
changes:

Human-type hair (facial & head), eyes, and lips are now cached in SSicon_cache.
Underwear, undershirts, and socks are now cached in SSicon_cache.
Removed forced icon regen for update_body - if this actually did anything, the cache key for these icons needs to be made more detailed.
Organs now fully use SSoverlays to apply overlays (previously they partially used it, which may have caused bugs).
A couple of hair styles (bald, shaved) are pretty common, so this should remove/reduce the overhead of constantly regenerating their icons. Also means that BST's icons only really need to be generated once.
2017-07-18 12:22:01 +03:00
Ron
ef582313d1 Removes some unneeded debug logs (#3070)
Removes some unneeded debug logs.
2017-07-16 21:57:52 +03:00
skull132
0fc67f2cb9 Remove a whole bunch of in world loops and rework machinery global lists (#3053)
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.

I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.

Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.
2017-07-16 20:32:33 +03:00
Lohikar
4e0057daa0 Minor storage & SSair init fixes (#3049)
changes:

Storage objects can now defer shrinkwrapping of contents until the next stackframe if things are being put in them without using fill() (such as autodrobes & BSTs)
SSair init properly yells at the admins when it's done.
2017-07-16 02:06:00 +03:00