+#if ENABLE_EFFECTINFO
+
#include "effectinfo.qh"
#define EFFECTINFO_PARSER(on, MY) \
on(type, MY(type) \
void effectinfo_dump(int fh, bool alsoprint)
{
- #define WRITE(s) MACRO_BEGIN { \
- fputs(fh, s); \
- if (alsoprint) LOG_INFO(s); \
- } MACRO_END
- WRITE("// ********************************************** //\n");
- WRITE("// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n");
- WRITE("// ** ** //\n");
- WRITE("// ** This file is automatically generated by ** //\n");
- WRITE("// ** code with the command 'dumpeffectinfo'. ** //\n");
- WRITE("// ** ** //\n");
- WRITE("// ** If you modify an effect, please ** //\n");
- WRITE("// ** regenerate this file with that command. ** //\n");
- WRITE("// ** ** //\n");
- WRITE("// ********************************************** //\n");
- WRITE("\n");
+ #define WRITE(str) write_String_To_File(fh, str, alsoprint)
+ WRITE(
+ "// ********************************************** //\n"
+ "// ** WARNING - DO NOT MANUALLY EDIT THIS FILE ** //\n"
+ "// ** ** //\n"
+ "// ** This file is automatically generated by ** //\n"
+ "// ** code with the command 'dumpeffectinfo'. ** //\n"
+ "// ** ** //\n"
+ "// ** If you modify an effect, please ** //\n"
+ "// ** regenerate this file with that command. ** //\n"
+ "// ** ** //\n"
+ "// ********************************************** //\n"
+ "\n");
for (EffectInfo it = NULL; (it = findfloat(it, instanceOfEffectInfo, true)); ) {
if (it.classname == "vtbl") continue;
#undef WRITE
}
-GENERIC_COMMAND(dumpeffectinfo, "Dump all effectinfo to effectinfo_dump.txt")
+GENERIC_COMMAND(dumpeffectinfo, "Dump all effectinfo to effectinfo_dump.txt", false)
{
switch (request) {
case CMD_REQUEST_COMMAND: {
REGISTRY(EffectInfos, BITS(9))
-#define EffectInfos_from(i) _EffectInfos_from(i, NULL)
REGISTER_REGISTRY(EffectInfos)
+
+REGISTRY_DEFINE_GET(EffectInfos, NULL)
#define EFFECTINFO(name) \
- [[accumulate]] void effectinfo_##name(EffectInfoGroup parent, EffectInfo this) { } \
+ ACCUMULATE void effectinfo_##name(EffectInfoGroup parent, EffectInfo this) { } \
REGISTER(EffectInfos, EFFECTINFO, name, m_id, NEW(EffectInfoGroup)) { \
effectinfo_##name(this, NULL); \
}
#define MY(f) this.effectinfo_##f
#define DEF(name) EFFECTINFO(name)
#define SUB(name) \
- [[accumulate]] void effectinfo_##name(EffectInfoGroup parent, EffectInfo this) { parent = EFFECTINFO_##name; parent.children[parent.children_count++] = this = NEW(EffectInfo, #name); } \
- [[accumulate]] void effectinfo_##name(EffectInfoGroup parent, EffectInfo this)
+ ACCUMULATE void effectinfo_##name(EffectInfoGroup parent, EffectInfo this) { parent = EFFECTINFO_##name; parent.children[parent.children_count++] = this = NEW(EffectInfo, #name); } \
+ ACCUMULATE void effectinfo_##name(EffectInfoGroup parent, EffectInfo this)
#include "effectinfo.inc"
#undef MY
#undef DEF
#undef SUB
+
+#endif