2 .float bgmscriptangular;
\r
10 InterpolateOrigin_Do();
\r
12 if(self.bgmscriptangular)
\r
18 f = BGMScript(self);
\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
30 if(self.alpha >= ALPHA_MIN_VISIBLE)
\r
36 void Ent_Wall_Remove()
\r
39 strunzone(self.bgmscript);
\r
40 self.bgmscript = string_null;
\r
46 InterpolateOrigin_Undo();
\r
47 self.iflags = IFLAG_ANGLES;
\r
54 self.colormap = ReadShort();
\r
61 self.origin_x = ReadCoord();
\r
62 self.origin_y = ReadCoord();
\r
63 self.origin_z = ReadCoord();
\r
70 self.angles_x = ReadAngle();
\r
71 self.angles_y = ReadAngle();
\r
72 self.angles_z = ReadAngle();
\r
75 self.angles = '0 0 0';
\r
80 self.modelindex = ReadShort();
\r
81 self.solid = ReadByte();
\r
82 self.scale = ReadByte() / 16.0;
\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
93 self.mins = self.maxs = '0 0 0';
\r
96 strunzone(self.bgmscript);
\r
97 self.bgmscript = ReadString();
\r
98 if(substring(self.bgmscript, 0, 1) == "<")
\r
100 self.bgmscript = strzone(substring(self.bgmscript, 1, -1));
\r
101 self.bgmscriptangular = 1;
\r
105 self.bgmscript = strzone(self.bgmscript);
\r
106 self.bgmscriptangular = 0;
\r
108 if(self.bgmscript != "")
\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
119 BGMScript_InitEntity(self);
\r
122 InterpolateOrigin_Note();
\r
124 self.entremove = Ent_Wall_Remove;
\r
125 self.draw = Ent_Wall_Draw;
\r