mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 02:32:10 +00:00
## About The Pull Request Here we go again. 1624 fixed some bugs with `::`, which we're starting to make more use of.  Case in point: This test run https://github.com/tgstation/tgstation/actions/runs/8147514803/job/22268415319?pr=81726 But then we need the fixes for 1624 so we go to 1626. But also 1627 has compiler improvements so might as well
31 lines
1.6 KiB
Plaintext
31 lines
1.6 KiB
Plaintext
// This file contains defines allowing targeting byond versions newer than the supported
|
|
|
|
//Update this whenever you need to take advantage of more recent byond features
|
|
#define MIN_COMPILER_VERSION 515
|
|
#define MIN_COMPILER_BUILD 1627
|
|
#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM)
|
|
//Don't forget to update this part
|
|
#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update.
|
|
#error You need version 515.1627 or higher
|
|
#endif
|
|
|
|
// Keep savefile compatibilty at minimum supported level
|
|
/savefile/byond_version = MIN_COMPILER_VERSION
|
|
|
|
// So we want to have compile time guarantees these methods exist on local type
|
|
// We use wrappers for this in case some part of the api ever changes, and to make their function more clear
|
|
// For the record: GLOBAL_VERB_REF would be useless as verbs can't be global.
|
|
|
|
/// Call by name proc references, checks if the proc exists on either this type or as a global proc.
|
|
#define PROC_REF(X) (nameof(.proc/##X))
|
|
/// Call by name verb references, checks if the verb exists on either this type or as a global verb.
|
|
#define VERB_REF(X) (nameof(.verb/##X))
|
|
|
|
/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc
|
|
#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
|
|
/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb
|
|
#define TYPE_VERB_REF(TYPE, X) (nameof(##TYPE.verb/##X))
|
|
|
|
/// Call by name proc reference, checks if the proc is an existing global proc
|
|
#define GLOBAL_PROC_REF(X) (/proc/##X)
|