Commit Graph

416 Commits

Author SHA1 Message Date
Lohikar
bb5a34eaf8 Misc. Optimizations (#3993)
changes:

Overlays now creates less temporary lists.
Falling no longer queues unsimulated atoms that wouldn't fall anyways (incl. LOs).
Pixel-shifted AO is now cached too.
Changed some references to get_map_cell() to macro equivalents in random maps.
Added smoothing hinting to the icon smoother, allowing for major performance improvements in common cases.
Space initialization no longer involves appearance churn (and is much faster as a result).
2017-12-23 21:27:51 +02:00
Lohikar
f73849368f Make get_smooth_underlay_icon work properly with space parallax (#3906)
Fixes an issue where space underlays on diagonally smoothed turfs would not work properly with space parallax.
2017-12-18 00:20:35 +02:00
Lohikar
cd910c072c Asteroid tweaks (#3951)
changes:

Z-levels below the surface now use 'rocky' ash instead of ash turfs. (Sprites from TG)
Fixed an issue where openturfs would incorrectly inherit their mimiced turf's gender.
Tweaked the names & descriptions of sand (now ash) and rock.
Reduced some pointless locate() calls in icon smoothing code for turf paths.
Replaced the empty space map with runtime Z expansion.
Fixes #2756.
2017-12-10 00:20:35 +02:00
skull132
d536d9f4aa Merge branch 'fake-master' into development
# Conflicts:
#	code/ATMOSPHERICS/atmospherics.dm
#	code/defines/procs/announce.dm
#	maps/aurora/aurora-3_sublevel.dmm
2017-12-09 00:08:21 +02:00
Lohikar
82f347040b Stacker fixes (#3903) 2017-11-25 21:30:21 -06:00
Lohikar
f53c99bea4 Add map laceholder objects for mine turfs (#3828)
changes:

Mine turfs now use a 32x32 icon on the map to make them easier to map with. In-game behavior (should be) unchanged.
2017-11-18 18:46:59 +02:00
skull132
c0f22a1cdd Merge branch 'master' into development
# Conflicts:
#	maps/aurora/aurora-1_centcomm.dmm
2017-10-29 16:15:53 +02:00
Lohikar
fc78e49b14 Fix AO being broken on ChangeTurf() (#3732)
Fix AO being broken on ChangeTurf()
2017-10-22 17:53:39 +03:00
Lohikar
61b5203d24 Runtime Map Loading (#3597)
changes:

Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
2017-10-18 23:07:34 +03:00
Lohikar
146726ffcf Fix AO not initializing on mine turfs (#3639)
Fixes #3638.
2017-10-14 19:32:33 +03:00
Alberyk
e8786864b1 Reduces the income of the working classes (#3608)
Nerfs mining making a fuckton of money easily, now you need 1,000 mining points to get 100 credits.
Also, thermal lances are more expensive and you can buy only five of them.
2017-10-13 17:38:49 +03:00
chaoko99
a3b0a30890 Singulo cannot eat ores. (#3594) 2017-10-10 10:32:26 +02: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
Alberyk
0d8fe2e6a4 Adds more in hand sprites for certain items (#3392)
Adds a lot of more in hands and back sprites, wielded shotgun sprites, guns, bags and things like mining satchels and bee nets.
2017-09-08 13:14:52 -05:00
Lohikar
06ea9d6ac2 Mining performance fixes (#3387)
changes:

Mining ore bags are no longer painfully slow.
The ore summoner now sleeps instead of just giving up on TICK_CHECK.
2017-09-03 00:47:01 +03:00
Lohikar
67bac9475d Restore old machinery init behavior (#3380) 2017-08-31 22:56:05 -05:00
Lohikar
dc85579850 Closet & use_check() tweaks (#3346)
changes:

use_check() will now show failure messages to the affected mob by default. It still returns the failure reason & permits disabling of messages via. the show_messages parameter.
Lockers now take 2 seconds to weld or disassemble.
A progress bar is now shown to mobs with the progress bars pref enabled while attempting to break out of welded lockers.
2017-08-29 23:25:19 +03:00
Ron
ceab73c63e Makes some machines upgradeable (#3311)
Adds the ability to upgrade the following:
- Sleepers
- The ore processor
- All cooking appliances (Minus the microwave)
- Tesla Coil

Also makes components not spawn in machines until they are needed (When they are being upgraded) to reduce the objects generated. Adds some new macro's and converts some istypes to use them. And moves stock parts into their own file.
2017-08-28 01:51:37 -05:00
skull132
1aa305f1f9 Merge branch 'master' into development 2017-08-13 23:30:37 +03:00
Lohikar
0cec8fad8c Maybe reduce ore magnet lag (#3248) 2017-08-11 23:07:59 +03:00
Lohikar
c3c31c85ea Machinery Component Initialization Refactor (#3258)
Machinery objects' component_parts list is now automatically populated with the types in the component_types list. Types can have an associated number which is interpreted as an instruction to spawn that number of that type. This eliminates a few Initialize() procs, and simplifies others.
Example:

component_types = list(
    /obj/foo/bar,
    /obj/baz = 2
)
Other changes:

Cable coils will now no longer force a stack size of 30 when created without their stack size passed as a parameter - this fixes anonymous types not working correctly with cable coils.
2017-08-09 20:33:14 +03:00
Ron
3e1356c9b0 Adds a limit to mining vendors (#3260)
Adds a limit to items in the mining vendor. Most items have 10, some items have more/less, all items that come from the shuttle have infinite stock along with some other items like point transfers. And the floodlight comes on the shuttle now.
2017-08-09 20:23:09 +03:00
Ron
cb5e227320 Converts some istype's to use helpers (#3224)
Converts various istype's to use helpers. Mainly:
Cable
Wrench
Screwdriver
Multitool
Crowbar
Wirecutter

And makes the helpers defines.
2017-08-06 22:08:42 +03:00
Alberyk
868d4d37bf Fixes some things (#3197)
Fixes #3195
Fixes #3194 by reducing a bit the mining pickaxes damage and the kinetic accelerator damage
Allows fitness machines to drain a bit of nutrition as you use them
Fixes one of the syndicate cyborgs sprites having a rogue pixel somewhere
Fixes some barsigns not having icons for all directions
Brings back the illegal guns crate to cargo due to massive popular request
2017-07-31 21:56:48 +03:00
Erki
07cedfb335 Some more fixes (#3130)
Fixes #2173
Fixes #1927
Fixes #3100
Fixes #3087
Fixes #3124
2017-07-23 01:03:41 +03:00
Alberyk
ac5b4ea055 Food, hair and grammer fixes (#3058)
Fixes #3051
Fixes #3055
Fixes #3057
Fixes #3061
Fixes some food having no taste, also fixe cheese tasting like meat and other minor things like grammar.
Removes the ,45 magazine from the warden's locker, and give them a helmet to match his armor
Fixes a missing window at the main central level
Fixes a messed up hall at central command
Adds a small room for interview for the ccia in the odin, that was left out due to map issues
Adds the captain chair overlay that I forgot to add way back
2017-07-16 11:56:13 +03:00
skull132
7a63a918c4 Mining flags into light beacons (#3039)
Turns the mining flags into light emitting beacons. This is for added ambiance and to make them more useful in the not-at-all lit asteroid of Nümap. They can now be used as waypoint markers!

Preview: https://kama.skullnet.me/index.php/s/E9ko2agfntCCamA
2017-07-15 21:57:53 +03:00
Alberyk
2f949ecb45 Ports baystation armor system (#2954)
Ports Baystation12/Baystation12#12658

Changing how the calculation of armor works , instead of just being a check if it is protected fully, half or nothing. Making armor more reliable and less rng dependant.

Also, uranium meteors will irradiate nearby people when they explode.
2017-07-15 16:24:03 +03:00
Lohikar
41e39f52d1 Wall Icon Refactor (#3023)
changes:

Atom types can now define custom adjacency code for the smoothing system.
Walls now draw using the generic icon smoothing system.
Walls now pre-bake colors into their icons instead of doing it client-side with the color var.
Walls can now use the SSoverlay appearance cache; wall icon updates should be faster.
The "rusty" wall type now actually works.
Smoothing now uses mutable_appearance instead of image in some places.
Should be a bit easier on clients, though I haven't done profiling.

This PR breaks 510 compatibility.
2017-07-15 16:22:21 +03:00
Lohikar
b5472e50f4 Convert a fuck ton of machines to Initialize() (#2985)
Needs testing, but shouldn't break anything. Also adds Destroy() to the SMES base class.
2017-07-14 20:08:59 +03:00
Lohikar
f885bffdae More tweaks (#2889)
changes:

Clipboard overlays are now a little gentler on SSoverlays.
Ported potential performance improvements for getFlatIcon and listclearnulls from /tg/.
Icon smoothing now clears the base icon by default; SMOOTH_NO_CLEAR_ICON disables this behavior.
Potential SSoverlays performance improvement from /tg/.
Speculative fix for #2826.
2017-07-01 23:09:10 +03:00
Alberyk
1365befb04 Fixes some things (#2886)
Fixes #2832
Fixes #2821
Fixes #2805
Adds a tint to the bomb suit helmet
Fixes the wizard voidsuit an outdated wizard faction check
Fixes pants don't convering the legs
Fixes hailers showing their messages on the lobby
Reduces the recharge cost of the mounted thermal drill, so, it won't use an entire powercell when you fire it once
2017-07-01 21:53:49 +03:00
Lohikar
9a899801b1 more closet initialize (#2855)
Converts some closets to fill() that I missed in my first pass.
2017-06-28 14:37:42 +03:00
Lohikar
8445d042dc Miscellaneous fixes (#2774)
changes:

Fixed various GC failures.
Converted integrated radios (used in PDA cartridges) to Initialize.
Added a missing Destroy to the QM PDA cartridge's integrated radio.
Fixed a runtime when mineturfs with no ore were destroyed by explosions.
Fixed a runtime when explosions attempted to Z-travel.
Minor radio performance improvements.
Converted radio globals to defines.
Changed the Security-I and Medical-I frequencies to use the same colors as their respective departments.
Fixes #2646.
2017-06-21 00:09:55 +03:00
skull132
36cb778548 Add roofs (#2737)
Implements roofs
2017-06-17 22:18:39 +03:00
Lohikar
0db557ac29 machinery_process() & auto_use_power efficiency tweaks (#2657)
changes:

Machinery now uses machinery_process() instead of process(), allowing machines to be put into SSprocessing-style lists in addition to the machinery list.
Automatic power calculations now involve less proc-calls.
2017-06-12 19:09:36 +03:00
Lohikar
a28fbd1415 Icon smoothing fixes (#2624)
Fixes some issues with smoothing, including asteroid flooring losing its sprite for no apparent reason.
2017-06-05 11:15:47 +03:00
LordFowl
5ae8a2d5a5 [New Map] Digging with a shovel no longer creates ore from nothing (#2611)
Using a shovel to dig a hole will now only spawn ore that that ore already holds. This means that an ore scanner is once again needed to maximise profits, although digging with a shovel remains far more inefficient than digging with a drill, due to simply how much sand there is in a sand tile.
2017-06-05 11:13:32 +03:00
LordFowl
61bca133ef [New Map] Fixes Dumb Turrets (#2621)
Removes most instances of doublepane glass walls in one tile corridors, which the game was not designed for, thus interfering with turret target calculations and throwing objects. This means that the turrets in telecoms and in the vault will be more responsive to intruders.

Re-adds the fourth miner slot, but this time properly maps in a locker, spawn pos, hardsuit, and his own new type of flag - the purple flag (not that anyone uses flags ayy lmao.)

To further cement the uselessness of flags, all miners and the QM now start with a GPS.

CT's should now have access to the end of the miner belt, allowing them to collect resources.

Ore boxes can now be purchased and crafted from wood.
2017-06-05 10:40:32 +03:00
Alberyk
264b12ce42 Adds more sounds (#2590)
Adds sounds for turning on flashlights, flares, flipping coins, shuffling deck of cards, using lighters and zippos, drills, sonic jackhammers, bikes and some weapon related sounds.
2017-06-04 13:32:49 +03:00
Lohikar
8c5a5a09c7 Mineturf fixes (#2600)
changes:

Fixed a bug where dig overlays could sometimes be drawn under icon smoothing overlays.
Fixed a bug where sometimes mine turfs' icons would disappear.
Converted a manual GetBelow() statement into a call to GetBelow().
Disabled xenoarch turf overlays as the sprites are missing anyways.
2017-06-04 13:29:58 +03:00
Lohikar
03bf22eee6 Convert most mobs to Initialize() (#2540)
I'm sure this won't break anything at all.
2017-05-31 22:58:54 +03:00
LordFowl
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
LordFowl
4e09ed8a73 New Map Bug Batch (#2473)
Fixes #2362
Fixes #2232
Fixes #2234
Fixes #2214
Fixes #2385
Fixes #2386
Fixes #2356
Fixes #2406
Fixes #2409
Fixes #2404
Fixes #2432
Fixes #2439
Fixes #2437

Removes "You hear a click from the bottom of the door" message from airlocks when they bolt/unbolt.
Makes ghosttraps significantly easier to spot.
2017-05-27 22:43:48 +03:00
Lohikar
193f89d206 Diagonal smoothing fixes & Shuttle Smoothing Tweaks (#2466)
Ports a refactor of diagonal smoothing underlays from /tg/, fixes a bug where diagonal smoothing did not work on shuttle walls, and updates shuttle walls to use the generic smoothing instead of mapped in icon states.

Fixes issues with shuttle corners not showing the correct underlay.
2017-05-27 12:14:01 +03:00
skull132
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
skull132
c7d894f069 Fix mining runtimes (#2387)
The wonders of "async" processing!
2017-05-22 02:03:38 +03:00
LordFowl
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
Ron
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