+#include "config.qh"
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+ #include <common/util.qh>
+ #include "all.qh"
+#endif
+
// ==========================
// Balance Config Generator
// ==========================
-void W_Config_Queue_Swap(float root, float child, entity pass)
+void W_Config_Queue_Swap(int root, int child, entity pass)
{
- string oldroot = wep_config_queue[root];
- wep_config_queue[root] = wep_config_queue[child];
- wep_config_queue[child] = oldroot;
+ string oldroot = config_queue[root];
+ config_queue[root] = config_queue[child];
+ config_queue[child] = oldroot;
}
-float W_Config_Queue_Compare(float root, float child, entity pass)
+float W_Config_Queue_Compare(int root, int child, entity pass)
{
- float i, r, c;
-
- for(i = 1; i <= 100; ++i)
- {
- r = str2chr(wep_config_queue[root], i);
- c = str2chr(wep_config_queue[child], i);
- if(r == c) { continue; }
- else if(c > r) { return -1; }
- else { return 1; }
- }
-
- return 0;
+ return strcmp(config_queue[root], config_queue[child]);
}
-void Dump_Weapon_Settings(void)
+void Dump_Weapon_Settings()
{
- float i, x, totalsettings = 0;
- for(i = WEP_FIRST; i <= WEP_LAST; ++i)
- {
+ int totalweapons = 0, totalsettings = 0;
+ FOREACH(Weapons, it != WEP_Null, {
// step 1: clear the queue
WEP_CONFIG_COUNT = 0;
- for(x = 0; x <= MAX_WEP_CONFIG; ++x)
- { wep_config_queue[x] = string_null; }
+ for (int x = 0; x <= MAX_CONFIG_SETTINGS; ++x)
+ config_queue[x] = string_null;
// step 2: build new queue
- WEP_ACTION(i, WR_CONFIG);
+ it.wr_config(it);
// step 3: sort queue
- heapsort(WEP_CONFIG_COUNT, W_Config_Queue_Swap, W_Config_Queue_Compare, world);
-
+ heapsort(WEP_CONFIG_COUNT, W_Config_Queue_Swap, W_Config_Queue_Compare, NULL);
+
// step 4: write queue
- WEP_CONFIG_WRITETOFILE(sprintf("// {{{ #%d: %s\n", i, W_Name(i)))
- for(x = 0; x <= WEP_CONFIG_COUNT; ++x) { WEP_CONFIG_WRITETOFILE(wep_config_queue[x]) }
- WEP_CONFIG_WRITETOFILE("// }}}\n")
+ WEP_CONFIG_WRITETOFILE(sprintf(
+ "// {{{ #%d: %s%s\n",
+ i,
+ it.m_name,
+ ((it.spawnflags & WEP_FLAG_MUTATORBLOCKED) ? " (MUTATOR WEAPON)" : "")
+ ));
+ for (int x = 0; x <= WEP_CONFIG_COUNT; ++x) { WEP_CONFIG_WRITETOFILE(config_queue[x]); }
+ WEP_CONFIG_WRITETOFILE("// }}}\n");
// step 5: debug info
- print(sprintf("#%d: %s: %d settings...\n", i, W_Name(i), WEP_CONFIG_COUNT));
+ LOG_INFOF("#%d: %s: %d settings...", i, it.m_name, WEP_CONFIG_COUNT);
+ totalweapons += 1;
totalsettings += WEP_CONFIG_COUNT;
- }
+ });
// clear queue now that we're finished
WEP_CONFIG_COUNT = 0;
- for(x = 0; x <= MAX_WEP_CONFIG; ++x)
- { wep_config_queue[x] = string_null; }
+ for(int x = 0; x <= MAX_CONFIG_SETTINGS; ++x)
+ config_queue[x] = string_null;
// extra information
- print(sprintf("Totals: %d weapons, %d settings\n", (i - 1), totalsettings));
+ LOG_INFOF("Totals: %d weapons, %d settings", totalweapons, totalsettings);
}