]> icculus.org git repositories - divverent/nexuiz.git/blob - TeamNexuiz/game/gamec/tn_misc.c
now menu qc respects g_campaign_name
[divverent/nexuiz.git] / TeamNexuiz / game / gamec / tn_misc.c
1 /*-----===================================-------\r
2                 Team:Nexuiz Misc. Items/Functions\r
3                                 -=[ by avirox ]=-\r
4 -------===================================-----*/\r
5 \r
6 // Ice/Slippery ground\r
7 .vector area_min;\r
8 .vector area_max;\r
9 .float slip_time;\r
10 .float slip_amount;\r
11 \r
12 void () slippery_touch =\r
13 {\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
16 };\r
17 \r
18 void () func_slippery =\r
19 {\r
20         if (self.area_min != '0 0 0')\r
21         {\r
22                 setsize(self, self.area_min, self.area_max);\r
23         }\r
24         else\r
25         {\r
26                 setsize(self, '-16 -16 -24', '16 16 32');\r
27         }\r
28         self.solid = SOLID_TRIGGER;\r
29         self.touch = slippery_touch;\r
30 };\r
31 \r
32 void () func_ice =\r
33 {\r
34         self.classname = "func_slippery";\r
35         func_slippery();\r
36 };\r
37 \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
42 {\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
47 \r
48         stpos = 0;\r
49         srcstr = substring(st, stpos, stleng);\r
50         while (srcstr != "")\r
51         {\r
52                 srcstr = substring(st, stpos, stleng);\r
53                 if (srcstr == findme)\r
54                         return (stpos);\r
55                 else\r
56                         stpos = stpos + 1;\r
57         }\r
58         return (-1);                    // -1 being "NOT FOUND"\r
59 };\r
60 \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
63 {\r
64         local float posneg;             // is it positive or negative\r
65         local float stleng;             // string length\r
66         local float stpos2;\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
72         if (fdigit = "-")\r
73                 posneg = -1;\r
74         else\r
75                 posneg = 1;\r
76 \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
80         {\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
86         }\r
87         return (stof(totalstring) * posneg);\r
88 };\r
89 \r
90 // Replace String - Replaces a part of a string value\r
91 string (string st, string findme, string replacewith) ReplaceString =\r
92 {\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
98 \r
99         stleng = strlen(findme);                // find the length of the string\r
100         stpos = SearchString(st, findme);               // find where the string begins\r
101         if (stpos == -1)\r
102         {\r
103                 bprint(strcat("Warning: Value not found in string: ",findme,"\n"));\r
104                 return (st);\r
105         }\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
112 };\r