1 /*-----===================================-------
\r
2 Team:Nexuiz Misc. Items/Functions
\r
4 -------===================================-----*/
\r
6 // Ice/Slippery ground
\r
12 void () slippery_touch =
\r
14 other.slip_time = time + .2; // amount of time the player is slipping (this gets constantly updated)
\r
15 other.slip_amount = self.slip_amount; // handled in cl_physics.c
\r
18 void () func_slippery =
\r
20 if (self.area_min != '0 0 0')
\r
22 setsize(self, self.area_min, self.area_max);
\r
26 setsize(self, '-16 -16 -24', '16 16 32');
\r
28 self.solid = SOLID_TRIGGER;
\r
29 self.touch = slippery_touch;
\r
34 self.classname = "func_slippery";
\r
38 // XavioR's QuakeC String Tools
\r
39 // Copyright Team:Nexuiz (2006)
\r
40 float(string s) strlen;/* = #114;*/ // returns how many characters are in a string
\r
41 float (string st, string findme) SearchString =
\r
43 local float stleng; // string length
\r
44 local float stpos; // start part of the string to check
\r
45 local string srcstr; // search string
\r
46 stleng = strlen(findme);
\r
49 srcstr = substring(st, stpos, stleng);
\r
50 while (srcstr != "")
\r
52 srcstr = substring(st, stpos, stleng);
\r
53 if (srcstr == findme)
\r
58 return (-1); // -1 being "NOT FOUND"
\r
61 // Returns the value of a string after the "=" of properties such as "health" or "ammo_cells" etc
\r
62 float (string st, string valueof, float stpos) ValueString =
\r
64 local float posneg; // is it positive or negative
\r
65 local float stleng; // string length
\r
67 local string fdigit; // finds the digits
\r
68 local string totalstring; // total value
\r
69 stleng = strlen(valueof);
\r
70 stpos2 = stpos + stleng + 1; // this puts us at "property="
\r
71 fdigit = substring(st, stpos2, 1); // now we look for a "+" or a "-" (IE health=+2 etc)
\r
77 stpos2 = stpos2 + 1; // this puts us at "property=+" or "property=-"
\r
78 fdigit = substring(st, stpos2, 1); // find the first digit..
\r
79 while (fdigit != "" || fdigit != ",")
\r
81 totalstring = strcat(totalstring, fdigit); //combine the digits..
\r
82 stpos2 = stpos2 + 1;
\r
83 fdigit = substring(st, stpos2, 1);
\r
84 if (fdigit == "" || fdigit == ",")
\r
85 return (stof(totalstring) * posneg);
\r
87 return (stof(totalstring) * posneg);
\r
90 // Replace String - Replaces a part of a string value
\r
91 string (string st, string findme, string replacewith) ReplaceString =
\r
93 local float stleng; // string length
\r
94 local float stpos; // starting position of the string to replace
\r
95 local string st1; // first half of the string
\r
96 local string st2; // last half of the string
\r
97 local string resultstring; // result of the combination
\r
99 stleng = strlen(findme); // find the length of the string
\r
100 stpos = SearchString(st, findme); // find where the string begins
\r
103 bprint(strcat("Warning: Value not found in string: ",findme,"\n"));
\r
106 bprint(strcat(ftos(stpos),"\n"));
\r
107 st1 = substring(st, 0, stpos);
\r
108 st2 = substring(st, stpos + stleng, -1);
\r
109 resultstring = strcat(st1, replacewith, st2);
\r
110 bprint(strcat(resultstring,"\n"));
\r
111 return(resultstring);
\r