mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
* tgu * updated paths * updating more paths * master server * more repaths * tgu * oh these were defined * y * tgu * fixes fulp shuttles i think * revert * tgu * fix checks and stuff * Update sound.dm * Update tg_edits.md * tgu
31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitAdd, ##target, ##trait, ##source)
|
|
#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitRemove, ##target, ##trait, ##source)
|
|
|
|
///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
|
|
/proc/___TraitAdd(target,trait,source)
|
|
if(!target || !trait || !source)
|
|
return
|
|
if(islist(target))
|
|
for(var/i in target)
|
|
if(!isatom(i))
|
|
continue
|
|
var/atom/the_atom = i
|
|
ADD_TRAIT(the_atom,trait,source)
|
|
else if(isatom(target))
|
|
var/atom/the_atom2 = target
|
|
ADD_TRAIT(the_atom2,trait,source)
|
|
|
|
///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
|
|
/proc/___TraitRemove(target,trait,source)
|
|
if(!target || !trait || !source)
|
|
return
|
|
if(islist(target))
|
|
for(var/i in target)
|
|
if(!isatom(i))
|
|
continue
|
|
var/atom/the_atom = i
|
|
REMOVE_TRAIT(the_atom,trait,source)
|
|
else if(isatom(target))
|
|
var/atom/the_atom2 = target
|
|
REMOVE_TRAIT(the_atom2,trait,source)
|