1 // ==========================
2 // Turret Config Generator
3 // ==========================
5 void T_Config_Queue_Swap(float root, float child, entity pass)
7 string oldroot = tur_config_queue[root];
8 tur_config_queue[root] = tur_config_queue[child];
9 tur_config_queue[child] = oldroot;
12 float T_Config_Queue_Compare(float root, float child, entity pass)
16 for(i = 1; i <= 100; ++i)
18 r = str2chr(tur_config_queue[root], i);
19 c = str2chr(tur_config_queue[child], i);
20 if(r == c) { continue; }
21 else if(c > r) { return -1; }
28 void Dump_Turret_Settings()
30 float x, totalsettings = 0;
31 FOREACH(Turrets, it != TUR_Null, LAMBDA({
32 // step 1: clear the queue
34 for(x = 0; x <= MAX_TUR_CONFIG; ++x)
35 { tur_config_queue[x] = string_null; }
37 // step 2: build new queue
41 heapsort(TUR_CONFIG_COUNT, T_Config_Queue_Swap, T_Config_Queue_Compare, world);
43 // step 4: write queue
44 TUR_CONFIG_WRITETOFILE(sprintf("// {{{ #%d: %s\n", i, it.turret_name))
45 for(x = 0; x <= TUR_CONFIG_COUNT; ++x)
46 { TUR_CONFIG_WRITETOFILE(tur_config_queue[x]) }
47 TUR_CONFIG_WRITETOFILE("// }}}\n")
50 LOG_INFO(sprintf("#%d: %s: %d settings...\n", i, it.turret_name, TUR_CONFIG_COUNT));
51 totalsettings += TUR_CONFIG_COUNT;
54 // clear queue now that we're finished
56 for(x = 0; x <= MAX_TUR_CONFIG; ++x)
57 { tur_config_queue[x] = string_null; }
60 LOG_INFO(sprintf("Totals: %d turrets, %d settings\n", (Turrets_COUNT - 1), totalsettings));