Commit Graph

58 Commits

Author SHA1 Message Date
Alberyk
85ff01ecf8 Fixes rig actuators and leaping causing people to do flips (#6580) 2019-06-16 22:19:35 +03:00
alsoandanswer
e004413c18 adds cool animations (#6533) 2019-06-14 17:53:58 +02:00
Ron
d1c1d84bde Refactors gravity checking (#4591)
Removes a lot of duplicated or redundant code from areas when checking gravity.
2018-04-12 20:31:05 +03:00
Lohikar
a86398d0d2 Code Cleanup: (Bump(), Bumped()) -> (Collide(), CollidedWith()) (#4349)
This PR rips out the old Bump() and Bumped() procs and replaces them with Collide() and CollidedWith() respectively. Behavior should be the same, but Bump() should no longer be double-called, and no longer relies on spawns.

Other changes:

LAssailant is now a weakref.
Some direct loc setting are now forceMove().
2018-03-08 09:39:53 +02:00
Lohikar
383dd055e7 Merge branch 'master' into development 2017-10-20 13:30:03 -05: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
Erki
6c47fb889a Revert #3241 (#3670) 2017-10-17 20:39:50 -05: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
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
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
ab247a07d9 Fix parallax again (#3279)
Fix parallax being static when it shouldn't have been.
2017-08-13 19:46:23 +03:00
Lohikar
2ee49b1b9e Fix parallax (#2983)
changes:

Parallax now actually moves properly on Move().
Parallax movement can now be toggled as a preference.
Merged all movable/Move() overrides for performance reasons.
2017-07-09 19:35:02 +03:00
Lohikar
de2efd09ac Fix a parallax runtime (#2887)
Fixes #2835.
2017-07-01 21:25:14 +03:00
Lohikar
b071bbf0d2 Parallax-related performance tweaks (#2810)
Experimental tweaks to how parallax's movement hooks work; the current ones appear to be fairly expensive for all movable movement, doing locate(/mob) in src on every forceMove(). This PR creates a new lazylist (contained_mobs) containing a list of every mob directly contained by an object. contained_mobs is updated on mob/forceMove().

Not sure how to handle mobs located deeper than directly inside an object.

Only alternative to this I see is to make SSparallax tick.
2017-06-26 12:05:17 +03:00
Lohikar
f702f99f14 Openturf throw fix & minor refactors (#2203)
changes:

Thrown objects will now fire Entered() on the turf they land on. As a result, they will now fall if they land on an openturf.
Openturfs now queue an icon update if something falls down.
/obj/item/weapon/ore_radar converted to use SSfast_process instead of a spawn loop.
Converted hand-held tanks' New() to Initialize().
Note: This PR allows grenades to be thrown down openturfs.
2017-05-13 12:35:40 +03:00
Lohikar
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
LordFowl
76a891930e Bugfix Bonanza + Z-code and stuff. (#1819)
* Bugfix Bonfire #1

* Bugfix Bonanza #2

* BigBomba

* Banner.dmi

* Fixing Cyborg spawn

* Re-enabling asteroid gen
2017-02-22 14:42:49 -05:00
Lohikar
0cba68911d Lighting Overhaul & General process improvements (#1612)
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.

changes:

New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.
2017-01-29 01:13:54 +02:00
skull132
44f22c2128 Improve Object Initialization (#1368)
Okay. You can read the entire theory over in this issue: #1365

But basically. All objects to be initialized are now added to a list in their New() proc on world/New(). This is substantially smaller than the entire world. This allows game_controller/setup_objects() to crawl a much larger list, and speeds it up by 6 seconds (from 9.5 to 3.5 seconds). The impact on world/New() is, on average, under 1 second.

Also fixes #1365 and #1363 as a result of reworking the initialization call logic in atoms_movable.dm. initialize() is now more secure, and can handle recursive calls at any point in time.
2017-01-02 00:45:36 +02:00
NanakoAC
f7476fa9d7 Nanako's compile fixes (#25)
Various compile error fixes. windoor stuff, ID, emag, holders marked for farther fixing later.
nothing too remarkable
2016-11-30 18:28:58 +02:00
Hubblenaut
a89c066905 Fixes onmob icons for holders
Conflicts:
	code/game/objects/items.dm
2016-01-08 14:47:08 +01:00
PsiOmegaDelta
a4545f8ded Scheduler, observation, and New() tweaks.
Corrects a number of places where New() did not call ..(), and implements similar changes to attempt to ensure New()/initialize() complete running before qdel() runs.
Cuts down on the number of created items during server start.
2015-12-27 17:44:53 +01:00
Chinsky
0a4ebb2765 Fixes #10751 Thrown items now use last_move direction isntead of neverchanging dir 2015-12-12 15:29:08 +03:00
PsiOmega
145d8d91ef Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	code/_helpers/unsorted.dm
2015-09-26 08:43:06 +02:00
GinjaNinja32
8ed4faf7b2 Add proc/crash_with, fix two incorrect qdel calls 2015-09-23 13:29:54 +01:00
PsiOmegaDelta
2d01a06f00 Corrects world-edge math.
Meteors coming from the east would immediately be transfered to another Z-level and deleted, due to being considered outside the Z-level transition border.
2015-09-18 15:23:18 +02:00
PsiOmegaDelta
3a55b130a0 Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	.travis.yml
	code/modules/virus2/disease2.dm
	maps/exodus-5.dmm
2015-08-14 08:34:42 +02:00
PsiOmegaDelta
d1e8f670b2 qdel(reagent) adjustments.
Attempts to ensure qdel(reagents) only occur once per Destroy()
2015-08-13 10:26:31 +02:00
PsiOmegaDelta
1b10f78940 Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts:
	code/modules/mob/living/carbon/human/life.dm
2015-08-13 09:01:10 +02:00
Chinsky
6d4699fa32 Merge pull request #10590 from GinjaNinja32/debug
more debug stuff
2015-08-13 05:22:45 +03:00
GinjaNinja32
8d57f25fd5 Add a runtime-generating call to the "object was deleted via del() rather than qdel()" log, so we can get a stack trace from it 2015-08-13 01:51:40 +01:00
PsiOmega
ba240cb768 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/game/antagonist/station/rogue_ai.dm
	code/game/machinery/atmoalter/portable_atmospherics.dm
	code/game/machinery/spaceheater.dm
	code/modules/clothing/head/soft_caps.dm
	maps/exodus-5.dmm
2015-08-12 21:18:18 +02:00
PsiOmegaDelta
93e666e67c Adds a missing not-null check that is made in another case. 2015-08-12 09:22:46 +02:00
PsiOmegaDelta
f420dd9f01 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	.travis.yml
	code/modules/mob/living/carbon/brain/life.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/living_defines.dm
	code/modules/mob/living/silicon/silicon.dm
	code/setup.dm
2015-06-30 08:59:34 +02:00
PsiOmega
85d0d6fcd3 Wrenching times no longer runtime.
Fixes #9175.
2015-06-28 18:17:53 +02:00
Zuhayr
48cf00ca54 Merge with dev-freeze. 2015-06-21 20:45:47 +09:30
mwerezak
1678cc5b96 Removes CRASH() 2015-06-21 03:00:36 -04:00
PsiOmegaDelta
c3f0a46c19 Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/game/objects/items/weapons/storage/briefcase.dm
	html/changelogs/.all_changelog.yml
2015-06-05 10:39:41 +02:00
PsiOmegaDelta
224cbb41bf Garbage/qdel changes.
Moves atom/Destroy() into atom/movable/Destroy(). Is now a /tg/ copy-paste.
Means deleting turfs no longer wipes everything on that turf and that pulling is canceled.
qdel no longer willingly accepts lists.
2015-06-04 19:32:05 +02:00
Zuhayr
ebe62cefd8 Refactored random map generator system and added several terrain generators.
Created a global list to track base turfs for explosions/shuttle moves.
Remaps the asteroid to be a moonlet. Tidies up some references to 'asteroid', removes moonbase from the accessible z level list.
2015-06-03 04:36:19 +09:30
mwerezak
4ba4bd8dd3 Replaces nuke disk search_contents_for with a global nuke disk registry 2015-05-22 01:15:04 -04:00
mwerezak
3c67c46442 Limits the ability of the SM to return to the station zlevel once ejected.
Fixes #7900
2015-05-21 01:02:30 -04:00
Mloc
16d50c645d new object-based lighting system
Signed-off-by: Mloc <colmohici@gmail.com>
2015-05-10 20:54:25 +01:00
PsiOmega
fcfdcecd3a initialize() should now always be called, be it on game starting up or object being created after game start.
Partially fixes #9036.
2015-04-30 19:28:35 +02:00
PsiOmega
d59ff1e1f9 Begins work to remove the need for spawn() in New() procs. 2015-04-27 08:23:54 +02:00
PsiOmega
1ae0ad6d92 Updates the atom_pool, now datum_pool, to handle any datum object.
Makes the garbage collector similarly robust. Continues the whole Destroy/qdel porting.
2015-04-24 09:59:05 +02:00
PsiOmega
4b040d93ba Continues the painful process of porting Destroy()s, Dels(), and everything else needed for qdel. 2015-04-17 09:47:19 +02:00
PsiOmega
464d702d4b Mob refactoring.
Updates Bump() code.
Intents now use constants.
Simple animals can now use languages without overriding say().
There is now a difference between being able to smash normal and reinforced walls.
Reworks simple_animal/attackby so that constructs don't need to override it simply to add damage resistance.
2015-03-29 10:44:31 +02:00
Mloc-Argent
117ca6a135 refactor 'dir = ' into 'set_dir()'
This should have little/no gameplay effect right now, just paving the
 way for directional lights.
Replaced handle_rotation() on buckly things with this.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2014-12-01 13:44:02 +00:00
Zuhayr
90d65aed57 Removed attack_paw, attack_animal and attack_slime. 2014-11-13 17:15:29 +10:30