Tramway SDK
macros.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3
4// This file contains some macros. All of them are completely optional.
5
6#ifndef TRAM_SDK_TEMPLATES_MACROS_H
7#define TRAM_SDK_TEMPLATES_MACROS_H
8
10#define TRAM_SDK_REGISTER_EVENT_DATATYPE(EVENT_ID, TYPE) template <> struct tram::EventDataType<EVENT_ID> { TYPE type; };
11
13#define TRAM_SDK_IMPLEMENT_POOL(TYPE, NAME, SIZE) template <> Pool<TYPE> PoolProxy<TYPE>::pool (NAME, SIZE);
14
15
16// Asserts
17
18#ifndef NDEBUG
19#define TRAM_SDK_ASSERT(EXPRESSION) if (!(EXPRESSION)) { Log("{}\nAssert at line {} in {}", #EXPRESSION, __LINE__, __FILE__); abort(); }
20#define TRAM_SDK_ASSERT_MESSAGE(EXPRESSION, MESSAGE) if (!(EXPRESSION)) { Log("{}\n{}\nAssert at line {} in {}", MESSAGE, #EXPRESSION, __LINE__, __FILE__); abort(); }
21#else
22#define TRAM_SDK_ASSERT(EXPRESSION) ;
23#define TRAM_SDK_ASSERT_MESSAGE(EXPRESSION, MESSAGE) ;
24#endif
25
26
27#endif // TRAM_SDK_TEMPLATES_MACROS_H