- added a dummy struct named '_' to define global variables. This can only be used internally.
This method was chosen because it avoids adding variable declarations to the global namespace which would have required a lot more work while polluting the grammar. This way the global variables can be handled by a small bit of special coding in the struct generator.
This commit is contained in:
parent
feb680a4eb
commit
cd392e50e9
15 changed files with 135 additions and 153 deletions
|
|
@ -1170,7 +1170,12 @@ struct AFuncDesc
|
|||
MSVC_FSEG FieldDesc const *const VMField_##cls##_##scriptname##_HookPtr GCC_FSEG = &VMField_##cls##_##scriptname;
|
||||
|
||||
#define DEFINE_GLOBAL(name) \
|
||||
static const FieldDesc VMGlobal_##name = { nullptr, #name, (intptr_t)&name, (unsigned)sizeof(name), 0 }; \
|
||||
static const FieldDesc VMGlobal_##name = { "", #name, (intptr_t)&name, (unsigned)sizeof(name), 0 }; \
|
||||
extern FieldDesc const *const VMGlobal_##name##_HookPtr; \
|
||||
MSVC_FSEG FieldDesc const *const VMGlobal_##name##_HookPtr GCC_FSEG = &VMGlobal_##name;
|
||||
|
||||
#define DEFINE_GLOBAL_NAMED(iname, name) \
|
||||
static const FieldDesc VMGlobal_##name = { "", #name, (intptr_t)&iname, (unsigned)sizeof(iname), 0 }; \
|
||||
extern FieldDesc const *const VMGlobal_##name##_HookPtr; \
|
||||
MSVC_FSEG FieldDesc const *const VMGlobal_##name##_HookPtr GCC_FSEG = &VMGlobal_##name;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue