Files
fulpstation/code/__HELPERS/varset_callback.dm
John Willard 62ef201552 Removes 2 TG edits & TGU (#975)
* deletes our yarn and moves fulp edit to a proper fulp edit

* tgu

* retgu

* reasonable fixes to maps

* fixes to pubby & selene

* test commit

* Update tgstation.dme

* FUCK YOU SELENE

* Revert "Merge branch 'tgui-thing' of https://github.com/JohnFulpWillard/fulpstation into tgui-thing"

This reverts commit a0de10e581, reversing
changes made to 69fa3aecfd.

* Fixes the rest of fulp map issues

* Fulp edits

* Update PubbyStation.dmm

* Update Heliostation.dmm

* Last fixes

* fix selene double APC

* removes a telecomms hub from bridge

* adds ranged oven to all maps

* Ordnance data disk (from a previous TGU)

* consoles too

* revert readme & prison ovens
2023-04-30 11:46:37 -04:00

25 lines
1.1 KiB
Plaintext

#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value)
//dupe code because dm can't handle 3 level deep macros
#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value)
/// Same as VARSET_CALLBACK, but uses a weakref to the datum.
/// Use this if the timer is exceptionally long.
#define VARSET_WEAK_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), WEAKREF(##datum), NAMEOF(##datum, ##var), ##var_value)
/proc/___callbackvarset(list_or_datum, var_name, var_value)
if(length(list_or_datum))
list_or_datum[var_name] = var_value
return
var/datum/datum = list_or_datum
if (isweakref(datum))
var/datum/weakref/datum_weakref = datum
datum = datum_weakref.resolve()
if (isnull(datum))
return
if(IsAdminAdvancedProcCall())
datum.vv_edit_var(var_name, var_value) //same result generally, unless badmemes
else
datum.vars[var_name] = var_value