queue_start.FindConnectedComponent_processing = 0;
}
-float Count_Proper_Strings(string improper, string...count)
-{
- float i, total = 0;
- string tmp;
-
- for(i = 0; i < count; ++i)
- {
- tmp = ...(i, string);
- if((tmp) && (tmp != improper)) { ++total; }
- }
-
- return total;
-}
-
-float Count_Proper_Floats(float improper, float...count)
-{
- float i, total = 0;
-
- for(i = 0; i < count; ++i)
- {
- if(...(i, float) != improper) { ++total; }
- }
-
- return total;
-}
-
// todo: this sucks, lets find a better way to do backtraces?
#ifndef MENUQC
void backtrace(string msg)
}
#endif
-string count_ordinal(float interval)
+#ifdef SVQC
+void dedicated_print(string input) // print(), but only print if the server is not local
{
- // This function is designed primarily for the English language, it's impossible
- // to accomodate all languages unless we do a specific function for each one...
- // and since that's not technically feasible/practical, this is all we've got folks.
-
- // Basically, it just allows you to represent a number or count in different ways
- // depending on the number... like, with count_ordinal you can provide integers
- // and retrieve 1st, 2nd, 3rd, nth ordinal numbers in a clean and simple way.
-
- switch(mod(floor(interval), 100))
- {
- // if the first two numbers are 11,12,13, use nth for output
- case 11:
- case 12:
- case 13:
- { return sprintf(_("%dth"), interval); }
-
- default:
- {
- // otherwise, check normally for 1st,2nd,3rd insertions
- switch(mod(interval, 10))
- {
- case 1: return sprintf(_("%dst"), interval);
- case 2: return sprintf(_("%dnd"), interval);
- case 3: return sprintf(_("%drd"), interval);
- }
- return sprintf(_("%dth"), interval);
- }
- }
- return "";
+ if(server_is_dedicated) { print(input); }
}
+#endif
-string count_fill(float interval, string zeroth, string first, string second, string third, string multi)
+#ifndef MENUQC
+float Announcer_PickNumber(float num)
{
- // This function is designed primarily for the English language, it's impossible
- // to accomodate all languages unless we do a specific function for each one...
- // and since that's not technically feasible/practical, this is all we've got folks.
-
- // Here you can insert specific strings based on the interval number, so you could do
- // i.e. count_seconds which outputs like this:
- // 0 seconds
- // 1 second
- // 2 seconds
- // 3 seconds
- // etc... minutes, hours, days, etc.
-
- switch(floor(interval))
+ switch(num)
{
- case 0: return sprintf(zeroth, interval);
- case 1:
- {
- if(interval == 1) // EXACTLY value of 1
- return sprintf(first, interval);
- else
- return sprintf(multi, interval);
- }
- case 2: return sprintf(second, interval);
- case 3: return sprintf(third, interval);
- default: return sprintf(multi, interval);
+ case 10: num = ANNCE_NUM_10; break;
+ case 9: num = ANNCE_NUM_9; break;
+ case 8: num = ANNCE_NUM_8; break;
+ case 7: num = ANNCE_NUM_7; break;
+ case 6: num = ANNCE_NUM_6; break;
+ case 5: num = ANNCE_NUM_5; break;
+ case 4: num = ANNCE_NUM_4; break;
+ case 3: num = ANNCE_NUM_3; break;
+ case 2: num = ANNCE_NUM_2; break;
+ case 1: num = ANNCE_NUM_1; break;
}
- return "";
-}
-
-string process_time(string fields, float seconds)
-{
- float tmp_hours = 0, tmp_minutes = 0, tmp_seconds = 0;
- float tmp_years = 0, tmp_weeks = 0, tmp_days = 0;
-
- tmp_seconds = floor(seconds);
-
- if(tmp_seconds)
- { tmp_minutes = floor(tmp_seconds / 60); }
-
- if(tmp_minutes)
- { tmp_seconds -= (tmp_minutes * 60);
- tmp_hours = floor(tmp_minutes / 60); }
-
- if(tmp_hours)
- { tmp_minutes -= (tmp_hours * 60); }
-
- if(tmp_hours)
- { tmp_days = floor(tmp_hours / 24); }
-
- if(tmp_days)
- { tmp_hours -= (tmp_days * 60);
- tmp_weeks = floor(tmp_days / 7); }
-
- if(tmp_weeks)
- { tmp_days -= (tmp_weeks * 60);
- tmp_years = floor(tmp_weeks / 52); }
-
- //fields = strreplace("
- /*switch(output)
- {
- case 1: return sprintf("%02d:%02d:%02d", tmp_hours, tmp_minutes, tmp_seconds);
- //todo
- default: return "";
- }*/
- return "";
+ return num;
}
+#endif