Commit Graph
7018 Commits
Author SHA1 Message Date
skull132andGitHub a3ec0cf45d Better SQL prepared statements (#2474)
The system used to be of complexity O(n^2). Essentially two for loops running per every argument. Which ended up being surprisingly slow (there were instances where I saw the argument parser as using quite a lot of CPU time).

This replaces it with a more linear algorithm. It's somewhere near O(n) where n is the length of the unparsed query. Which is more stable and faaaster. This comes with two changes, however:

Parameters inside the query now have to be delimited from both sides with : (colons). The alternative to this would be to use something like $n or just assume that space marks the end of a marker. Only the former is workable, the latter would break a few queries already.
Arguments in the argument array no longer have to be prefixed by : (colons). So, while in the query you would write :thing:, you'd initialize the array of args as: list("thing" = somevar). It could be made to work without it, but eh, I think this is fine.
Argument validation is slightly weaker. What I mean by this is that with the old system, unused keys would result in an error. This is no longer a thing. Missing keys will still result in an error, however.
One more improvement: double delimiting removes an edge case where if key A partially covers key B, depending on the order, key A would mangle key B.
Updated and tested all queries that I could find. So this should be good.
2017-05-29 21:17:41 +03:00
Lohikarandskull132 15c1b4969b Convert some overlays (#2525)
changes:

Converted some overlays to SSoverlay.
2017-05-29 13:04:57 +03:00
Alberykandskull132 aad350be12 Makes carp, drones and flying/floating mobs immune to fall (#2527)
Carps, combat drones, faithless, bats, caverns dwellers, parrots, viscerators and the like won't fall anywhere when they walk into an open turf, they can also travel across z levels in case a player is controlling them.

Also, makes cats immune to fall damage.
2017-05-29 13:04:34 +03:00
skull132andGitHub 36dfee27eb Leg actuators for RIGs (#2421)
Preview: https://kama.skullnet.me/index.php/s/GsEdb7q733nO1LK

Okay. These modules allow you to fall from any height without taking damage. As long as your suit is powered and they're enabled, anyways. Secondly, they allow you to leap! Civilian grade allow you to leap 4 tiles, military grade ones (syndicate + ERT commander) allow you to leap 7 tiles and to also grapple people (Vox leap feature).

On top of that, if you middle click on the tile you're on with them selected, you will try to leap upwards. If the tile you're facing above you is a solid (non-open turf, but not dense either), then you will start to climb onto that tile. Civilian grade model isn't powerful enough to jump you there fully, so you gotta spend 4 seconds grappling for your life. Get interrupted in that time, you fall. Military grade models hop you instantly.
2017-05-29 01:29:35 +03:00
LordFowlandskull132 a5d7d50a69 Mining Fixes II (#2517)
Seismic Charges are now much cheaper.
KA can now fit into suit storage and the explorer's belt.
Several more items can now fit into the explorer's belt.
KA's with multiple installed modkits can now properly be turned into a RIG module, which keeps said modkits.
RIG thermal drills now work properly.
Mining drones should now spawn with a jetpack.
Mining drone ore bags are now much larger, as they cannot drag crates.
2017-05-28 23:53:27 +03:00
skull132andGitHub 11edd7e548 Loads-a-fixes for dev (#2515)
Fixes #2488 .
Fixes #2489 .
Fixes the bug of dying upon spawn.
Fixes new player recognition.
2017-05-28 21:23:05 +03:00
LordFowlandskull132 77521d0c7f Promotes Sergeant Columbo to Lieutenant Columbo (#2507)
Never code at 3am.
2017-05-28 19:28:59 +03:00
LordFowlandskull132 cae2fa1fdd New Map Pets and Z collateral (#2503)
Fixes #2499
Fixes #2495
Fixes #2493
Fixes #2480
Fixes #2487
Fixes #2491
Fixes #2492

Gives the head of security Lieutenant Columbo, an attack dog with a special sprite that deals slightly less damage compared to other attack dogs.
Replaces Poly with floor B.O.B.
Gives Lamarr's cage a little more breathing room.
2017-05-28 14:15:22 +03:00
skull132andGitHub c9e5c8b5c4 Support/efixes (#2481)
Fixes for testing:

No more runtimes from greeting
Blue ahelps return, electric boogaloo
Maybe fix spawning errors
2017-05-28 02:44:20 +03:00
skull132 22c7748336 Merge branch 'master' into development
# Conflicts:
#	code/game/machinery/computer/shuttle.dm
#	code/game/machinery/doors/firedoor.dm
#	code/game/objects/items/weapons/weaponry.dm
#	code/modules/admin/admin_attack_log.dm
#	code/modules/admin/admin_verbs.dm
2017-05-27 20:11:54 +03:00
skull132andGitHub fd6a8305a5 Letting skull touch logging is now strictly haram (#2476)
Turns out. I did a bad.
2017-05-27 18:56:22 +03:00
skull132 9b80bce9ab Merge branch 'master' into development 2017-05-27 12:43:53 +03:00
Ronandskull132 1804e18655 Fixes hear_say (#2465)
Prevents hear_say from runtiming if speaker is null.
2017-05-27 12:43:22 +03:00
Wernerandskull132 101b251c93 Various Bugfixes (#2463)
Fixes #2291 
Fixes #2046 
Fixes #2454 
Lazyfix of #726
2017-05-27 12:40:18 +03:00
skull132andGitHub 755ce490db Rewriting multiz movement to be gooder (#2464)
Intent: implement all of the features from #2442 while also unfucking the multiz movement files to be more readable and not recurse.

To that end, this PR does the following:

All multiz travel is now arbitrated by SSfalling. This will eliminate the need for recursion without relying on timers. Timers would be a bit scary.
The call chain for multiz movement now looks like this (in terms of overwritable procs):
can_fall() (Can lead into fall_impact() & fall_collateral() if returns FALSE)
fall_through() IF current block is open space ELSE fall_impact() & fall_collateral()
Removed almost every istype(src, A) check in the movement.dm file by exercising proper parenting and call chains.
Documented and standardized the contents of multiz/movement.dm. Because this is an API we're going to be relying on very heavily, I'd like to get this right before we move on.
A lot of minor tweaks, like swapping usr over to the applicable mob, and so on.
2017-05-27 02:14:35 +03:00
Alberykandskull132 e71299699e Adds more mixed gamemodes and make them votable (#2420)
-allow voting for most mixed gamemodes, with exception of bughunt and infection
-adds crossfire(merc and heister), also adds a raider frequency to don't mix them with mercs
-adds siege(rev and merc)
-adds visitors(ninja and wizard)
2017-05-26 22:15:32 +03:00
skull132 c27866e4af Merge branch 'master' into development
# Conflicts:
#	code/_helpers/logging.dm
#	code/modules/mob/living/living.dm
2017-05-25 15:06:32 +03:00
Ronandskull132 8386075565 Bug fixes (#2447)
Fixes #639
Fixes #2445
Fixes #1708
Makes succumb tell you if you can't succumb.
2017-05-25 14:42:57 +03:00
Alberykandskull132 6bbbf11402 Allows skeleton to play xylophone with their ribcages (#2441)
Increases skeleton spooky
2017-05-24 21:04:16 +03:00
Ronandskull132 db7e2d1426 Malfunction tweaks (#2425)
Tweaks several aspects of the newmalf based on feedback and testing. Also fixes some bugs.
2017-05-24 02:54:31 +03:00
Ronandskull132 457f62f804 Openturf falling change (#2428)
Falling now stacks based on distance and only applies the damage when you hit something solid.
Fixes part of #2416
2017-05-23 22:32:08 +03:00
Lohikarandskull132 3be27b9efa Merge SSnanoui & Nanomanager (#2427)
Merges the NanoUI subsystem with Nanomanager, as well as cleans up some nanomanager code.
Most of the files in this commit are changed as a result of removing the nanomanager global in favor of the SSnanoui global.
2017-05-23 16:33:00 +03:00
Lohikarandskull132 4d6d382967 Job subsystem & Player Spawn Tweaks (#2403)
Converts the job controller into a subsystem, including absolute paths. Also cleans up some mob despawn code.

changes:

The job master is now a subsystem. Job init moved out of EMI.
Custom loadout now properly overrides job equipment on spawn.
Odin despawn timers are now deleted on arrival shuttle launch.
Cryogenic storage despawn is now handled by the job controller.
Backpack equipping has been fully moved to equip_backpack().
equip_backpack() will now equip departmental backpacks.
Job backpack selection is now set via. vars instead of overriding a proc.
Fixes #2180.
2017-05-23 12:10:30 +03:00
Alberykandskull132 3c6759f3d5 Carp migration and map fixes (#2384)
-fix cavern dwellers not spawning in carp migrations
-removes space dust as it should
-adds space shark
-adds a cryo console to communal, central command and robotics
-adds a glass to the arrivals shuttle, to avoid people reaching the shuttle controllers
-fixes some missing access in the bridge, like the command bar having no access in the airlock
2017-05-22 21:02:46 +03:00
LordFowlandskull132 8c119edefd Miningedits (#2363)
Does some mapping stuff, re-arranges mining. Adds catwalks.
Noises the open space sprite somewhat, effect could definitely be improved.
Adds a ghosttrap to mining drones
Adds holes to holes
Fixes some of the airlocks
2017-05-21 22:12:06 +03:00
skull132andGitHub 2e87db1883 Fixes #2370 (#2371)
:ree: Lohikar with your lazy lazy lists.
2017-05-21 12:50:28 +03:00
Ronandskull132 790480c8da Removes all \red and \blue's (#2309)
Removes all \red's and \blues in favor of span classes. \red things that were bold were replaced with danger because it's warning but bold.
2017-05-21 12:07:57 +03:00
Alberykandskull132 fe396373c6 Changes wizard checks and fix wizard apprentices (#2307)
-added a check to see if the mob is a wizard or apprentice
-replaced the faction check with the new check
-fixed wizard apprentices, also giving them a book with three spells uses
-you can now cast cure major wounds on yourself
-reduces the brain damage caused by swap
Fixes #2047
2017-05-21 03:44:16 +03:00
skull132andGitHub a498a8988c Improve Open Turf Traversal (#2337)
Aims to improve open turf traversal and interaction by doing two things:

If a mob is wearing magboots and has enabled magboots, they are now unable to walk onto an open turf. This includes open space turfs. It makes magboots useful again for miners, on the asteroid!
If a mob is wearing a jetpack with jetpack stabilization enabled (and the jetpack active), they can walk onto the open turf but will not fall down. They can now also, simply by having the jetpack active, move upwards. Keeping stabilization off in this stage will allow them to pop-up and down if they want, leading to hilarity.
Touches mob/proc/Check_Shoegrip() and makes it more useful + more used.
2017-05-21 03:07:41 +03:00
Alberykandskull132 52137ac6b9 Rat king tweaks (#2342)
-fix some grammar issues
-gives the rat king night vision
-buffs the health. 1 mouse = + 5 hp while the rat king has twice as the health of any regular mouse by himself.
2017-05-21 01:20:40 +03:00
skull132 efee411ad7 Merge branch 'master' into development
# Conflicts:
#	code/modules/modular_computers/computers/modular_computer/damage.dm
2017-05-20 19:18:35 +03:00
Ronandskull132 5de06206e7 More bug fixes (#2305)
Fixes #2296
Fixes #1904
Fixes #2303
Fixes #2285
Fixes #1753
Fixes #1649
Fixes #789
Fixes #1779
2017-05-20 18:41:26 +03:00
Lohikarandskull132 277790a630 (Hopefully) Fix Mind GC Issues (#2301)
Should fix weirdness with mob GC such as ghosts jumping to their deleted bodies, observers failing to GC, and mobs with minds not GCing in general.

changes:

Mob cleanup relating to the mob has been moved to the mind.
On deletion a mob will now null out the current and original fields in the mind, if they pointed to it.
2017-05-20 14:24:47 +03:00
skull132 a073f5c111 Merge branch 'master' into development 2017-05-16 14:46:36 +03:00
Ronandskull132 85bd1a69f6 Bug Fixes (#2282)
Fixes #2125
Fixes #2048
Fixes #1690
Fixes #1689
Fixes #1667
Fixes #1089
Fixes #1971
Fixes #1848
Fixes #1190
Fixes #2139
Fixes #2111
2017-05-16 13:57:30 +03:00
Lohikarandskull132 5cec2cfa6d More discreet shells (#2272)
changes:

Shells Frames' species no longer show up on examine. They can still be detected via. other means such as checking pulse, health scanners, or them being damaged.
IPC Tags are now located in the head instead of the groin.
Note: This does not affect tags showing up on examine. They must be manually removed from the shell to completely disguise their examine text.
2017-05-15 22:23:06 +03:00
Ronandskull132 fa64b7cf7b AI Malfunction Update (#2193)
Incorporates many of the things from: https://forums.aurorastation.org/viewtopic.php?f=18&t=7845.
Added several new features to the Malf AI gamemode based on the thread above.
2017-05-15 22:20:40 +03:00
skull132 5065dea527 Merge branch 'master' into development 2017-05-14 20:52:53 +03:00
Ronandskull132 9543d5628b Bug fixes (#2109, #1437, and AI Slipper) (#2227)
Fixes #2109
Fixes #1437
2017-05-14 13:34:10 +03:00
Lohikarandskull132 6cf332bfa7 Merge voting controller into SSvote (#2183)
changes:

Merged the voting controller into the voting subsystem.
Changed the voting UI to use /datum/browser.
Converted /datum/browser to use HTML5 & attempt to use edge if available. All users of the browser datum have been confirmed functional with Edge.
Changed the ChemMaster to use SSassets for resource download.
2017-05-13 12:37:43 +03:00
Lohikarandskull132 6ef9191275 Kill airlocks' process(), SSpower, and misc. performance tweaks (#2175)
changes:

Airlocks no longer tick (exceptions: firedoors, uranium airlocks)
Airlock commands run before round-start are queued to run at round-start.
Airlock commands that failed to run are scheduled to try again in 2 seconds with timers.
Callbacks can now be registered with SSticker to run at round-start in a non-blocking way.
Added a new subsystem (SSpower) for handling power-related functions. Currently doesn't do a whole lot, but this will likely eventually change.
RCON functionality has been moved from SSmachinery to SSpower.
The global cable list has been moved into SSpower.
Powernet sensors no longer process purely to keep themselves in the global machines list, instead they are added to a list in SSpower.
Power terminals no longer pointlessly tick.
Removed some variables from SSticker that weren't used by anything.
Holographic overlays such as those used by consoles are now cached.
Xenoarcheology setup is now tick-checked.
ZAS now uses post-fire timing.
The req_access and req_one_access lists are no longer initialized by default on all /obj types.
Openturfs will only emit starlight if they are bordering a non-openturf dynamically lit turf.
Powernets are now stored in SSpower instead of being a global.
The global mouse list is now stored in SSmob instead of being a global.
Fixed some weirdness in APCs' Destroy() caused by a merge.
SSwireless now pre-bakes to reduce round-start processing.
SSwireless no longer uses processing queues.
2017-05-11 22:19:51 +03:00
Lohikarandskull132 36a07fa7b2 Cameranet sorting fixes (#2188)
changes:

The cameranet is now actually sorted like it's supposed to be. Whoops.
The obfuscations list on turfs is now only created when it is actually needed, instead of every turf in the game having the list created from the start.
Visualnet update buffers now use timers instead of spawn.
Fixes #2186.
2017-05-07 14:46:40 +03:00
Alberykandskull132 d06ec8158b Rat king fixes (#2169)
-fix compile error
-update the overlay system
2017-05-03 23:15:31 +03:00
Alberykandskull132 6f3e41ecf0 Adds the rat king (#2130)
Ports the rat king from apollo, as an admin tool for now.

The rat king can collect mouse as he walks by, getting stronger, and unlocking some skills, it also can speak to all mouse in the world via a special skill.
2017-05-03 22:23:43 +03:00
skull132andGitHub bdd9a14c1b Merge branch 'development' into map-development 2017-05-03 21:04:38 +03:00
Alberykandskull132 4748112358 Guard dogs (#2143)
-adds guard dogs, mobs you can command around like the wizard's bear, with basic things like attack, stay and follow
-they have a verb that allows one player to become their master, and change their name, by being near them
-added the dogs to the random cargo spawn
2017-05-02 21:53:58 +03:00
LohikarandLordFowl f6dc33a465 Newmap - SMC, Openturf, Arrivals Controller, and Mine Turf Improvements (#1958)
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.

* this is probably important

* Remove cascade disabling SSgarbage

* Fixed a bug where dust() did not qdel the target mob

* Misc fixes

* Fix decals surviving break-to-plating

* Subsystem flag tweaks

* Apparently subsystems are new'd before config is.

* Fix paper icons

* Speculative fix for insane lag

* Better machinery stat

* Make organs not use SSoverlay

* Misc bugfixes & tweaks

* Nightmode fixes

* Changelog for SMC

* Port /tg/'s improved MC crash handling

* Add some more SS Recover() procs

* supply_controller -> SScargo

* More New() -> Initialize()

* pAI and robot construction overlays

* Fix cargo unit tests

* Merge the DMM Suite's atom/New() into atoms_init

* Lighting pre-baking

* Lighting initialization logging

* Fix some bad SS init orders

* Fix SSlighting logging; rename Processes to MC

* Speculative fix for insane GC lag

* Prebaked openturf/icon_smooth & fix lighting prebake

* SS init status; SSatoms LATEQDEL

* Fix bug with MC init stat panel

* Fix parallax

* Misc

* Ignore SS_NO_DISPLAY during init

* apparently this is important

* REEEEEE

* Image GC fixes; broadcaster radio-new sanity

* RCON Cleanup

* Move pAI recruiter into subsystem

* Move global solars list into sun subsystem

* Make chickens not use a global

* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup

* Speed up space init a little

* Fix bad timer flags on floor drying

* Subsystem panic-restart verb for mins

* Explosion speedup

* Minor subsystem & MC logging tweaks

* SSopenturf improvements

* Make pipenet actually initialize (whoops)

* Minor tweaks

* Implement lighting rounding

* comments are hard okay

* Minor lattice tweaks

* Fix some timer issues & better closet init

* Timer sanity

* Request console tweaks + Storage init sanity

* Minor SSmachiner RCON improvements

* Further reduce world-start timer count

* Standardize subsystem logging

* Garbage hard delete profiling from /tg/

* Timer hang detection & recovery

* Log machines that sleep in process() and fuck up SSmachinery

* Fix an issue with external airlocks sleeping in process()

* Failsafe logging

* Minor tweaks

* Revert "Request console tweaks + Storage init sanity"

This reverts commit 98d3579e35.

* Re-implement RC changes

* Fix SQL FT saving

* Fix SSmachinery sleep in disposals

* Minor SS tweaks

* Paper fixes

* Blood drying fixes

* Merge gameticker and SSticker

* Minor global list init cleanup

* Lagcheck biogenerator & bags

* Tweak SScargo init order; RIG Initialize()

* Caching tweaks

* Remove rogue comma

* Initialize fixes

* Lighting destroy cleanup

* Fix emagging airlocks

* Initial SSicon implementation

* Tweaks & Fixes

* Fire + Air alarm queued icon updates

* Overlays + Queued icon cleanup

* Runtime & background fixes

* Kill some meaningless set statements

* Kill some image qdels

* Bump up lighting rounding val

* Fix adv. scanner destroy runtimes

* Remove unneeded icon update limiting

* Move icon smoothing into helpers

* Show a warning if DM 510 compiles without memory leak hack enabled

* Re-organize subsystems & MC defines a little

* Airlock SFX

* Log of Changes

* Make SSicon_update disable itself when not doing anything

* Fix respawn verb runtime when used early in server-init

* Add more information to MC's stat_entry()

* Replace direct refernces to gcDestroyed with QDEL* macros

* plant_controller -> SSplants

* More plant tweaks

* Add more humor to changelog

* Move parallax globals into SSparallax

* Lighting responsiveness tweaks

* Fix parallax init order & better MC init panel stat

* Make mobs GC

* More overlays + Remove intercom spawn()

* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.

* Update changelog

* Mob GC tweaks

* Del() cleanup

* Fix insomniac ZAS connection edges

* Minor pAI cleanup

* Convert more things to SSoverlay; fix duplicated overlay in field gens

* SM Bluespace turf tweaks

* Update SSgarbage debug globals list

* Human-type qdel tweaks

* Subsystem suspension; stat_entry improvements

* SQL Statistics cleanup

* Fix runtimes with ambrosia

* More disable() -> suspend(); fix nightmode again

* Human qdel fix; minor tweaks

* Update turbolift to work with StonedMC

* Make lifts use timers instead of a subsystem

* Make SSassets start earlier

* Convert the radio controller into a subsystem

* Fix some missing CHECK_TICKs in asteroid generation

* MC stat tweaks; make shouldnt_see a typecache

* Kill some redundant debug-controller entries

* radio_controller -> SSradio

* Better SSgarbage hard-del logging from /tg/ upstream

* Logging tweaks + GELF

* Misc client caching improvements

* Slime SSoverlay

* Oven icon fixes

* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.

* Holder tweaks + Welding tool Initialize()

* Fix some bad subsystem logging

* Fix suit cooling units spawning without cells

* Starlight tweaks

* Gibber infinite gib fix

* More SSoverlay stuff

* Make crates use CUT_OVERLAY_IN

* Make SSarrivals suspend instead of disable

* Make openturf use split/phased tick checks

* Speculative fix for unwet timer runtimes

* Blood overlay tweaks/fixes

* Update crusher to play nice with SMC + SSoverlay

* Openturf improvements and fixes

* Minor turbolift tweaks

* Lighting performance improvements + ChangeTurf tweaks

* this is probably important

* Fix wall weld noises on changeturf

* More ChangeTurf tweaks

* Explosion tweaks

* Pre-game lobby tweaks

* Openturf tweaks

* Prevent admins from starting the game before init finishes

* Fix Travis

* Kill an unused var

* Fix ChangeTurf runtimes on openturfs

* Fixes

* Browser datum fixes, asset caching

* Update changelog

* Changelog

* Lobby tweaks

* Ticker tweaks; kill ticker var

* Further lobby tweaks

* Cascade tweaks

* air_master -> SSair

* Reduce overhead from radio autosay

* alarm_manager -> SSalarm

* bomb_processor -> SSexplosives

* corp_regs -> SSlaw

* ZAS overlay fixes

* Small wall icon optimization

* Fix effects master

* Assembly tweaks

* Megavend fixes

* Shuttle fixes

* Camera alert performance improvements

* Fix some world.log spam from lighting overlays

* Fix some Initialize() procs

* Openspace responsiveness tweaks

* Make HE pipes animate through openturfs

* Kill a spawn
2017-05-02 14:40:40 -04:00
skull132 a5848c2802 Merge branch 'development' into map-development
# Conflicts:
#	baystation12.dme
#	code/game/objects/random/random.dm
#	code/game/turfs/turf_changing.dm
#	code/modules/mining/ore.dm
#	code/modules/mob/living/silicon/robot/robot_modules.dm
2017-05-01 01:07:56 +03:00
LordFowlandGitHub c03666340a Finalisation PR for map-dev, prepares new map for merging. (#2144)
* Commited

* The FINAL commit (probably not, tho)
2017-04-30 15:04:54 -04:00
skull132 c197ce34fc Merge branch 'master' into development 2017-04-29 01:51:38 +03:00