]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/client/wall.qc
Change "Being swallowed..." to "Swallowed..." on the HUD ring.
[voretournament/voretournament.git] / data / qcsrc / client / wall.qc
1 .float lip;\r
2 .float bgmscriptangular;\r
3 \r
4 void Ent_Wall_Draw()\r
5 {\r
6         float f;\r
7         vector save;\r
8         var .vector fld;\r
9 \r
10         InterpolateOrigin_Do();\r
11 \r
12         if(self.bgmscriptangular)\r
13                 fld = angles;\r
14         else\r
15                 fld = origin;\r
16         \r
17         save = self.fld;\r
18         f = BGMScript(self);\r
19         if(f >= 0)\r
20         {\r
21                 if(self.lip < 0) // < 0: alpha goes from 1 to 1-|lip| when toggled (toggling subtracts lip)\r
22                         self.alpha = 1 + self.lip * f;\r
23                 else // > 0: alpha goes from 1-|lip| to 1 when toggled (toggling adds lip)\r
24                         self.alpha = 1 - self.lip * (1 - f);\r
25                 self.fld = self.fld + self.movedir * f;\r
26         }\r
27         else\r
28                 self.alpha = 1;\r
29 \r
30         if(self.alpha >= ALPHA_MIN_VISIBLE)\r
31                 R_AddEntity(self);\r
32 \r
33         self.fld = save;\r
34 }\r
35 \r
36 void Ent_Wall_Remove()\r
37 {\r
38         if(self.bgmscript)\r
39                 strunzone(self.bgmscript);\r
40         self.bgmscript = string_null;\r
41 }\r
42 \r
43 void Ent_Wall()\r
44 {\r
45         float f;\r
46         InterpolateOrigin_Undo();\r
47         self.iflags = IFLAG_ANGLES;\r
48 \r
49         f = ReadByte();\r
50 \r
51         if(f & 1)\r
52         {\r
53                 if(f & 0x40)\r
54                         self.colormap = ReadShort();\r
55                 else\r
56                         self.colormap = 0;\r
57         }\r
58 \r
59         if(f & 2)\r
60         {\r
61                 self.origin_x = ReadCoord();\r
62                 self.origin_y = ReadCoord();\r
63                 self.origin_z = ReadCoord();\r
64         }\r
65 \r
66         if(f & 4)\r
67         {\r
68                 if(f & 0x10)\r
69                 {\r
70                         self.angles_x = ReadAngle();\r
71                         self.angles_y = ReadAngle();\r
72                         self.angles_z = ReadAngle();\r
73                 }\r
74                 else\r
75                         self.angles = '0 0 0';\r
76         }\r
77 \r
78         if(f & 8)\r
79         {\r
80                 self.modelindex = ReadShort();\r
81                 self.solid = ReadByte();\r
82                 self.scale = ReadByte() / 16.0;\r
83                 if(f & 0x20)\r
84                 {\r
85                         self.mins_x = ReadCoord();\r
86                         self.mins_y = ReadCoord();\r
87                         self.mins_z = ReadCoord();\r
88                         self.maxs_x = ReadCoord();\r
89                         self.maxs_y = ReadCoord();\r
90                         self.maxs_z = ReadCoord();\r
91                 }\r
92                 else\r
93                         self.mins = self.maxs = '0 0 0';\r
94 \r
95                 if(self.bgmscript)\r
96                         strunzone(self.bgmscript);\r
97                 self.bgmscript = ReadString();\r
98                 if(substring(self.bgmscript, 0, 1) == "<")\r
99                 {\r
100                         self.bgmscript = strzone(substring(self.bgmscript, 1, -1));\r
101                         self.bgmscriptangular = 1;\r
102                 }\r
103                 else\r
104                 {\r
105                         self.bgmscript = strzone(self.bgmscript);\r
106                         self.bgmscriptangular = 0;\r
107                 }\r
108                 if(self.bgmscript != "")\r
109                 {\r
110                         self.bgmscriptattack = ReadByte() / 64.0;\r
111                         self.bgmscriptdecay = ReadByte() / 64.0;\r
112                         self.bgmscriptsustain = ReadByte() / 255.0;\r
113                         self.bgmscriptrelease = ReadByte() / 64.0;\r
114                         self.movedir_x = ReadCoord();\r
115                         self.movedir_y = ReadCoord();\r
116                         self.movedir_z = ReadCoord();\r
117                         self.lip = ReadByte() / 255.0;\r
118                 }\r
119                 BGMScript_InitEntity(self);\r
120         }\r
121 \r
122         InterpolateOrigin_Note();\r
123 \r
124         self.entremove = Ent_Wall_Remove;\r
125         self.draw = Ent_Wall_Draw;\r
126 }\r