mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 01:57:01 +00:00
* lol. * bit of changes * deletes stuff * some map path updates * more changes * deletes unit test that was gonna be deleted in tg * see if this fixes anything
31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
// Helpers for checking whether a z-level conforms to a specific requirement
|
|
|
|
// Basic levels
|
|
#define is_centcom_level(z) SSmapping.level_trait(z, ZTRAIT_CENTCOM)
|
|
|
|
GLOBAL_LIST_EMPTY(station_levels_cache)
|
|
|
|
// Used to prevent z from being re-evaluated
|
|
GLOBAL_VAR(station_level_z_scratch)
|
|
|
|
// Called a lot, somewhat slow, so has its own cache
|
|
#define is_station_level(z) \
|
|
( \
|
|
z && \
|
|
( \
|
|
/* The right hand side of this guarantees that we'll have the space to fill later on, while also not failing the condition */ \
|
|
(GLOB.station_levels_cache.len < (GLOB.station_level_z_scratch = z) && (GLOB.station_levels_cache.len = GLOB.station_level_z_scratch)) \
|
|
|| isnull(GLOB.station_levels_cache[GLOB.station_level_z_scratch]) \
|
|
) \
|
|
? (GLOB.station_levels_cache[GLOB.station_level_z_scratch] = !!SSmapping.level_trait(z, ZTRAIT_STATION)) \
|
|
: GLOB.station_levels_cache[GLOB.station_level_z_scratch] \
|
|
)
|
|
|
|
#define is_mining_level(z) SSmapping.level_trait(z, ZTRAIT_MINING)
|
|
|
|
#define is_reserved_level(z) SSmapping.level_trait(z, ZTRAIT_RESERVED)
|
|
|
|
#define is_away_level(z) SSmapping.level_trait(z, ZTRAIT_AWAY)
|
|
|
|
#define is_secret_level(z) SSmapping.level_trait(z, ZTRAIT_SECRET)
|