X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fconfig.qc;h=14c51be66122d463940a6f7d0c422d5a993b8528;hb=1a366da10ff6cc0740b9c7754cc0d8c0fac356a4;hp=7d1a81d490b1be213ad7d12faa20ca3d6e2d6355;hpb=583ff2fd202086e9cccd53071a5b88371b8d9dd1;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/config.qc b/qcsrc/common/turrets/config.qc index 7d1a81d49..14c51be66 100644 --- a/qcsrc/common/turrets/config.qc +++ b/qcsrc/common/turrets/config.qc @@ -1,8 +1,24 @@ #include "config.qh" + +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include + #include +#endif + // ========================== // Turret Config Generator // ========================== +#ifdef SVQC + +void T_Config_Queue(string setting) +{ + if (TUR_CONFIG_COUNT <= MAX_CONFIG_SETTINGS - 1) + config_queue[TUR_CONFIG_COUNT++] = setting; +} + void T_Config_Queue_Swap(float root, float child, entity pass) { string oldroot = config_queue[root]; @@ -28,35 +44,46 @@ float T_Config_Queue_Compare(float root, float child, entity pass) void Dump_Turret_Settings() { + #define TUR_CONFIG_WRITETOFILE(str) write_String_To_File(tur_config_file, str, tur_config_alsoprint) int totalsettings = 0; FOREACH(Turrets, it != TUR_Null, { // step 1: clear the queue TUR_CONFIG_COUNT = 0; - for(int j = 0; j <= MAX_CONFIG_SETTINGS; ++j) + for (int j = 0; j < MAX_CONFIG_SETTINGS; ++j) config_queue[j] = string_null; // step 2: build new queue it.tr_config(it); + if (TUR_CONFIG_COUNT > MAX_CONFIG_SETTINGS - 1) + { + LOG_INFOF("\n^1Dumping aborted^7: hit MAX_CONFIG_SETTINGS (%d) limit\n\n", MAX_CONFIG_SETTINGS); + break; + } + // step 3: sort queue heapsort(TUR_CONFIG_COUNT, T_Config_Queue_Swap, T_Config_Queue_Compare, NULL); // step 4: write queue - TUR_CONFIG_WRITETOFILE(sprintf("// {{{ #%d: %s\n", i, it.turret_name)) - for(int j = 0; j <= TUR_CONFIG_COUNT; ++j) - TUR_CONFIG_WRITETOFILE(config_queue[j]) - TUR_CONFIG_WRITETOFILE("// }}}\n") + TUR_CONFIG_WRITETOFILE(sprintf("// {{{ #%d: %s\n", i, it.turret_name)); + for (int j = 0; j < TUR_CONFIG_COUNT; ++j) + TUR_CONFIG_WRITETOFILE(config_queue[j]); + TUR_CONFIG_WRITETOFILE("// }}}\n"); // step 5: debug info - LOG_INFO(sprintf("#%d: %s: %d settings...\n", i, it.turret_name, TUR_CONFIG_COUNT)); + LOG_INFOF("#%d: %s: %d settings...", i, it.turret_name, TUR_CONFIG_COUNT); totalsettings += TUR_CONFIG_COUNT; }); + #undef TUR_CONFIG_WRITETOFILE + + // extra information + if (TUR_CONFIG_COUNT <= MAX_CONFIG_SETTINGS - 1) + LOG_INFOF("Totals: %d turrets, %d settings", (REGISTRY_COUNT(Turrets) - 1), totalsettings); // clear queue now that we're finished TUR_CONFIG_COUNT = 0; - for(int j = 0; j <= MAX_CONFIG_SETTINGS; ++j) + for (int j = 0; j < MAX_CONFIG_SETTINGS; ++j) config_queue[j] = string_null; - - // extra information - LOG_INFO(sprintf("Totals: %d turrets, %d settings\n", (Turrets_COUNT - 1), totalsettings)); } + +#endif