mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-31 17:19:55 +01:00
The 515 MegaPR early downport (#7783)
Co-authored-by: Selis <selis@xynolabs.com> Co-authored-by: Selis <sirlionfur@hotmail.de> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> Co-authored-by: SatinIsle <thesatinisle@gmail.com> Co-authored-by: Heroman <alesha3000@list.ru> Co-authored-by: Casey <a.roaming.shadow@gmail.com> Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
co-authored by
Selis
Selis
Kashargul
SatinIsle
Heroman
Casey
Raeschen
parent
96a43a09c1
commit
b90f7ec922
@@ -779,3 +779,20 @@
|
||||
#define ELEMENT_CONFLICT_FOUND (1<<0)
|
||||
//From reagents touch_x.
|
||||
#define COMSIG_REAGENTS_TOUCH "reagent_touch"
|
||||
|
||||
|
||||
//Moved observer stuff to DCS
|
||||
#define COMSIG_OBSERVER_MOVED "observer_move"
|
||||
#define COMSIG_OBSERVER_DESTROYED "observer_destroyed"
|
||||
#define COMSIG_OBSERVER_SHUTTLE_ADDED "observer_shuttle_added"
|
||||
#define COMSIG_OBSERVER_SHUTTLE_PRE_MOVE "observer_shuttle_premove"
|
||||
#define COMSIG_OBSERVER_SHUTTLE_MOVED "observer_shuttle_moved"
|
||||
#define COMSIG_OBSERVER_TURF_ENTERED "observer_turf_entered"
|
||||
#define COMSIG_OBSERVER_TURF_EXITED "observer_turf_exited"
|
||||
#define COMSIG_OBSERVER_Z_MOVED "observer_z_moved"
|
||||
#define COMSIG_OBSERVER_MOB_EQUIPPED "observer_mob_equipped"
|
||||
#define COMSIG_OBSERVER_ITEM_EQUIPPED "observer_item_equipped"
|
||||
#define COMSIG_OBSERVER_MOB_UNEQUIPPED "observer_mob_unequipped"
|
||||
#define COMSIG_OBSERVER_ITEM_UNEQUIPPED "observer_item_unequipped"
|
||||
#define COMSIG_OBSERVER_APC "observer_apc"
|
||||
#define COMSIG_OBSERVER_GLOBALMOVED "observer_global_move"
|
||||
|
||||
+29
-12
@@ -1,4 +1,6 @@
|
||||
//defines that give qdel hints. these can be given as a return in destory() or by calling
|
||||
//! Defines that give qdel hints.
|
||||
//!
|
||||
//! These can be given as a return in [/atom/proc/Destroy] or by calling [/proc/qdel].
|
||||
|
||||
/// `qdel` should queue the object for deletion.
|
||||
#define QDEL_HINT_QUEUE 0
|
||||
@@ -11,41 +13,56 @@
|
||||
// Qdel should assume this object won't gc, and hard delete it posthaste.
|
||||
#define QDEL_HINT_HARDDEL_NOW 4
|
||||
|
||||
|
||||
#ifdef REFERENCE_TRACKING
|
||||
/** If REFERENCE_TRACKING is enabled, qdel will call this object's find_references() verb.
|
||||
*
|
||||
* Functionally identical to [QDEL_HINT_QUEUE] if [GC_FAILURE_HARD_LOOKUP] is not enabled in _compiler_options.dm.
|
||||
*/
|
||||
#warn TG0001 qdel REFERENCE_TRACKING enabled
|
||||
#define QDEL_HINT_FINDREFERENCE 5
|
||||
/// Behavior as [QDEL_HINT_FINDREFERENCE], but only if the GC fails and a hard delete is forced.
|
||||
#define QDEL_HINT_IFFAIL_FINDREFERENCE 6
|
||||
#endif
|
||||
|
||||
#define GC_QUEUE_CHECK 1
|
||||
#define GC_QUEUE_HARDDELETE 2
|
||||
#define GC_QUEUE_COUNT 2 //increase this when adding more steps.
|
||||
// Defines for the ssgarbage queues
|
||||
#define GC_QUEUE_FILTER 1 //! short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
|
||||
#define GC_QUEUE_CHECK 2 //! main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
|
||||
#define GC_QUEUE_HARDDELETE 3 //! short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they *can* softdelete, they will soft delete rather then wasting time with a hard delete.
|
||||
#define GC_QUEUE_COUNT 3 //! Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
|
||||
|
||||
|
||||
// Defines for the ssgarbage queue items
|
||||
#define GC_QUEUE_ITEM_QUEUE_TIME 1 //! Time this item entered the queue
|
||||
#define GC_QUEUE_ITEM_REF 2 //! Ref to the item
|
||||
#define GC_QUEUE_ITEM_GCD_DESTROYED 3 //! Item's gc_destroyed var value. Used to detect ref reuse.
|
||||
#define GC_QUEUE_ITEM_INDEX_COUNT 3 //! Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
|
||||
|
||||
// Defines for the time an item has to get its reference cleaned before it fails the queue and moves to the next.
|
||||
#define GC_FILTER_QUEUE (1 SECONDS)
|
||||
#define GC_CHECK_QUEUE (5 MINUTES)
|
||||
#define GC_DEL_QUEUE (10 SECONDS)
|
||||
|
||||
|
||||
#define QDEL_ITEM_ADMINS_WARNED (1<<0) //! Set when admins are told about lag causing qdels in this type.
|
||||
#define QDEL_ITEM_SUSPENDED_FOR_LAG (1<<1) //! Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.
|
||||
|
||||
// Defines for the [gc_destroyed][/datum/var/gc_destroyed] var.
|
||||
#define GC_QUEUED_FOR_QUEUING -1
|
||||
#define GC_CURRENTLY_BEING_QDELETED -2
|
||||
|
||||
#define QDELING(X) (X.gc_destroyed)
|
||||
#define QDELETED(X) (!X || X.gc_destroyed)
|
||||
#define QDELETED(X) (isnull(X) || QDELING(X))
|
||||
#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
|
||||
//Qdel helper macros.
|
||||
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE)
|
||||
// This is a bit hacky, we do it to avoid people relying on a return value for the macro
|
||||
// If you need that you should use QDEL_IN_STOPPABLE instead
|
||||
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time);
|
||||
#define QDEL_IN_STOPPABLE(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time, TIMER_STOPPABLE)
|
||||
#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
|
||||
#define QDEL_NULL(item) if(item) {qdel(item); item = null}
|
||||
#define QDEL_NULL(item) qdel(item); item = null
|
||||
#define QDEL_NULL_LIST QDEL_LIST_NULL
|
||||
#define QDEL_LIST_NULL(x) if(x) { for(var/y in x) { qdel(y) } ; x = null }
|
||||
#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); }
|
||||
#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE)
|
||||
#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); }
|
||||
#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); }
|
||||
|
||||
/proc/______qdel_list_wrapper(list/L) //the underscores are to encourage people not to use this directly.
|
||||
QDEL_LIST(L)
|
||||
|
||||
@@ -128,6 +128,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define FIRE_PRIORITY_PING 10
|
||||
#define FIRE_PRIORITY_AI 10
|
||||
#define FIRE_PRIORITY_GARBAGE 15
|
||||
#define FIRE_PRIORITY_ASSETS 20
|
||||
#define FIRE_PRIORITY_ALARM 20
|
||||
#define FIRE_PRIORITY_CHARSETUP 25
|
||||
#define FIRE_PRIORITY_AIRFLOW 30
|
||||
|
||||
Reference in New Issue
Block a user