c-scripting/src/example1.h

34 lines
867 B
C

#ifndef EXAMPLE1_H
#define EXAMPLE1_H
////////////////////////////////
// Setup a Symbol Set
typedef struct EX1_Ctx{
S64 foo;
} EX1_Ctx;
typedef void EX1_Hook(EX1_Ctx *ctx);
typedef struct EX1_Command{
String8 name;
String8 description;
EX1_Hook *hook;
} EX1_Command;
#define SYMBOL_SET_DEFINE EX1_CommandSymbols
#define EX1_CommandSymbols_Type EX1_Command
#define EX1_CommandSymbols_section ".ex1CMD"
#include "symbol_set.define.h"
#define COMMAND_ID(N) SymbolID(EX1_CommandSymbols, N)
#define COMMAND_DECL(N) SymbolDeclare(EX1_CommandSymbols, N)
#define COMMAND_METADATA_FROM_ID(id) SymbolMetadataFromID(EX1_CommandSymbols, id)
#define COMMAND_SCRIPT(N,desc) \
void cmdhook_##N(EX1_Ctx *ctx); \
SymbolDefine(EX1_CommandSymbols, N) = { str8_lit_const(#N), str8_lit_const(desc), cmdhook_##N };\
void cmdhook_##N(EX1_Ctx *ctx)
#endif //EXAMPLE1_H