Commit Graph

35 Commits

Author SHA1 Message Date
AnturK b444f4f5da Fixes shuttle loan events not creating crates. 2016-02-27 17:49:09 +01:00
Bjorn Neergaard fd5b61a156 Implement robust cargo logging 2016-02-08 04:28:19 -06:00
Bjorn Neergaard 4ef2667ff2 Rewrite supply packs/cargo orders 2016-02-07 04:45:55 -06:00
Bjorn Neergaard 6f05af73a3 Fix shuttles not correctly buying/selling
Empty crates are now sold properly, as well as being sold
only when centcomm is reached
2016-02-06 02:01:38 -06:00
Bjorn Neergaard 9386602acf tgui cargo console
rewrite awful shuttle/cargo code a lot as well
2016-02-05 17:06:07 -06:00
Firecage 332bde0f4f Does the rest of the if()'s/ else's 2016-01-17 19:03:12 +02:00
Incoming 1f9f0dfc40 Adds subtypesof(). It's shorthand for typesof(path) - path.
Replaces typesof(path) - path with subtypesof(path) in obvious places. I was a bit conservative, there's probably a few more places that could use this.
2015-11-16 18:55:57 -05:00
Tkdrg 236e5cf86b Fixes cargo manifest access restriction display
Why use replacetext with no arguments? I have no idea.
This wasn't runtiming because of the bygex stuff I guess.
Thanks octareroon91 for reporting this to me ingame.
2015-11-12 02:14:35 -03:00
Jordie0608 b919eed9cc pass for metastation, code improvement 2015-10-15 19:06:53 +11:00
Jordie0608 69a6c82654 station placed shuttles demonstration 2015-10-13 21:49:52 +11:00
Kyle Spier-Swenson a8e1fce32d Update shuttles.dm 2015-09-09 08:33:40 -07:00
Aranclanos 9d8391d846 Merge pull request #11619 from optimumtact/patch-8
remove commented out code
2015-09-08 00:06:07 -03:00
Orange Borg c05dc7ef93 remove commented out code 2015-09-07 17:14:42 +12:00
Aranclanos 7daee1797b Fixes the latejoin message about the evacuation shuttle showing on incorrect times. 2015-09-01 15:38:56 -03:00
Razharas 305cbb644c Merge pull request #11288 from Robustin/AnnouncementsFix
Fixes Announcements Garbling
2015-09-01 10:29:58 +03:00
Razharas 7f14f8fedb Merge pull request #11410 from bgobandit/manifestpets
Animals are now listed properly on cargo manifests.
2015-09-01 09:59:13 +03:00
bgobandit 676f63051b THANKS REMIEBAMA 2015-08-26 17:35:08 -04:00
bgobandit e68ebf7377 Animals are now listed properly on cargo manifests. 2015-08-26 17:12:15 -04:00
Cheridan 531b19b5e9 Merge pull request #11263 from Aranclanos/processremove
Replaces the Cut() usage in the processing lists from the different c…
2015-08-19 22:49:30 -05:00
Robustin 61b7c347a1 Fixes Announcements Garbling
Maybe... Doubtfully... But I wanted to give it a try since I'm tired of my glorious pronouncements garbled in &39

If I actually fixed it then I should get a medal for best coding by someone who can't code. My logic was that WHISPER works just fine with apostrophes and ampersands but shuttle call reasons, announcements, etc. would get that garbled text when using apostrophes and ampersands.

With whispers trim is on the "inside", with stripped_input that is used for these announcements trim is on the "outside". It makes intuitive sense to me that whoever wrote that stripped_input comment might have gotten things flipped since if trim is on the inside, and it allows single symbols to pass through, then there's nothing to filter html_encode from spewing that garbage out.

If this isn't the correct fix then at least I should be close enough that someone can point me in the right direction.
2015-08-19 15:43:01 -04:00
Aranclanos 6b8ab6641a Replaces the Cut() usage in the processing lists from the different controllers for a Remove() 2015-08-18 06:52:57 -03:00
c0 df4d5cfe0d RnD update 2015-08-12 15:18:13 +03:00
MrPerson 471d69fcf7 Change many ERROR() calls into thrown exceptions
This requires a 508 beta version to use. If Travis fails this he's a bitch

Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.

Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop
2015-07-23 08:19:08 -07:00
Miauw a881478743 Removes strip_html_properly(), replaces it with html_encode().
It was not as proper as the name would imply, and experience and amused redditors have taught me that writing a proper HTML-scrubbing function is a very hard task indeed.
2015-06-11 15:37:41 +02:00
Jordie c9b804f6f6 Merge pull request #9256 from astralenigma/cradesbypaprka
Crates are mailed with manifests taped to the outside by paprka Merge Conflict resolution
2015-05-08 22:10:35 +10:00
astralenigma d84bfc0f2b Putting all on github now.
Only crates is missing the overlay of the manifesto.
2015-05-01 00:33:21 +01:00
MrStonedOne bd6d51a0b5 Massive MC and subsystem rewrite
MC:
	No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
	Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
	Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
	MC can now be told to init a zlevel

All Subsystems:
	Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
	All subsystems now properlly handle being given a zlevel in their init proc

Subsystem changes:
	Air:
		Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
		Air now fires 4 times faster when it can do so without lagging things up
		Pipenet has been merged into air
		Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
		Hotspots (the fire object) are now object pooled
	Pipenet:
		Deleted, added to air
	Machinery:
		Moved all atmos calcualtions in all objects's process() to process_atmos().
	Lighting:
		Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
	Ticker:
		Fixed ticker not updating the lobby panel when game start delayed
		Fixed the game start timer updating rapidly from queued fires when game start delay is removed
	Garbage/qdel:
		qdel will now limit its process time to 2ds a fire.
		qdel can now be given hints as a return to Destroy() as to what should be done with the object.
		the options are:
			queue: (default) this is the normal behavior.
			letmelive: old default to non-null/zero. does nothing with the object
			iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
			harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
			harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
		All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
		Fixed some objects not GCing because they didn't properlly clear references in Destory()
		Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
2015-04-29 02:00:25 -07:00
Jordie0608 b501710e30 stops backup shuttle coming when already called 2015-03-18 22:27:20 +11:00
Incoming f6380f385e Removed some now obsoleted code
Fixed an edge case
2015-01-21 23:28:48 -05:00
Incoming d7bca48557 Shuttle stranding:
Removes fake recalls, the shuttle will arrive in rounds that usually would not allow shuttles (rev, malf, blob) but when the time comes for the shuttle to leave, it simply won't.

What this does:
-It gives a bonus ~8 minute delay to antag discovery on shuttle calls
-It punishes crews that call the shuttle at first sign of danger by:
--Rev: having the heads/potential converts huddle in predictable locations
--Blob/Malf: Distracting focus from the antag
-Gives a nice little OH SHIT moment when the shuttle doesn't launch

Essentially this turns shuttle calls into something you wouldn't attempt without confirmation of the round type, which is the opposite of how it functions currently.

Malf AIs also gain the ability to recall the shuttle to avoid the hard tell if they prefer.
2015-01-21 17:35:45 -05:00
tkdrg 674b3b65c0 Merge pull request #6968 from phil235/LockdownMalfFix
Fixes malf AI lockdown affecting doors on away missions
2015-01-14 14:58:10 -03:00
Orange Borg 825c8d45a5 Reorder error check for manifest length
Manifests were reporting an incorret size when there were no errors in the manifest.
2015-01-13 10:37:49 +13:00
phil235 a55e6a70be Fixes malf AI lockdown affecting doors on z levels other than station and mining.
Replaces a lot of z level numbers in code by their respective defines.
Adding a define for the Mining asteroid z level.
2015-01-11 15:39:32 +01:00
carnie c6e90c2ded Resolves #6862 - "shuttle_away" docking port was too small to fit the supply shuttle into, so it could never return to centcom.
Resolves #6835 - Same issue as part of #6862. Was adding new requests to the wrong list, so when reviewing the most recent request, the computer would not find it in the pending requests list and spit out the invalid instruction message.
2015-01-07 18:28:55 +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