34 lines
867 B
C
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
|