Files
Bubberstation/code/__byond_version_compat.dm
Useroth f95d6dc664 Fix of the screenshot test (#26857)
* Fix of the screenshot

* Bump min compiler version to 515.1627 (#81841)

## About The Pull Request

Here we go again.

1624 fixed some bugs with `::`, which we're starting to make more use
of.


![image](https://github.com/tgstation/tgstation/assets/51863163/73c40c58-fcd5-463e-9ec7-2cf2fadcefb4)

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

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-13 02:34:12 +01:00

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)