doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GuiScript.cpp
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 #include "../idlib/precompiled.h"
30 #pragma hdrstop
31 
32 #include "Window.h"
33 #include "Winvar.h"
34 #include "GuiScript.h"
35 #include "UserInterfaceLocal.h"
36 
37 
38 /*
39 =========================
40 Script_Set
41 =========================
42 */
44  idStr key, val;
45  idWinStr *dest = dynamic_cast<idWinStr*>((*src)[0].var);
46  if (dest) {
47  if (idStr::Icmp(*dest, "cmd") == 0) {
48  dest = dynamic_cast<idWinStr*>((*src)[1].var);
49  int parmCount = src->Num();
50  if (parmCount > 2) {
51  val = dest->c_str();
52  int i = 2;
53  while (i < parmCount) {
54  val += " \"";
55  val += (*src)[i].var->c_str();
56  val += "\"";
57  i++;
58  }
59  window->AddCommand(val);
60  } else {
61  window->AddCommand(*dest);
62  }
63  return;
64  }
65  }
66  (*src)[0].var->Set((*src)[1].var->c_str());
67  (*src)[0].var->SetEval(false);
68 }
69 
70 /*
71 =========================
72 Script_SetFocus
73 =========================
74 */
76  idWinStr *parm = dynamic_cast<idWinStr*>((*src)[0].var);
77  if (parm) {
78  drawWin_t *win = window->GetGui()->GetDesktop()->FindChildByName(*parm);
79  if (win && win->win) {
80  window->SetFocus(win->win);
81  }
82  }
83 }
84 
85 /*
86 =========================
87 Script_ShowCursor
88 =========================
89 */
91  idWinStr *parm = dynamic_cast<idWinStr*>((*src)[0].var);
92  if ( parm ) {
93  if ( atoi( *parm ) ) {
94  window->GetGui()->GetDesktop()->ClearFlag( WIN_NOCURSOR );
95  } else {
96  window->GetGui()->GetDesktop()->SetFlag( WIN_NOCURSOR );
97  }
98  }
99 }
100 
101 /*
102 =========================
103 Script_RunScript
104 
105  run scripts must come after any set cmd set's in the script
106 =========================
107 */
109  idWinStr *parm = dynamic_cast<idWinStr*>((*src)[0].var);
110  if (parm) {
111  idStr str = window->cmd;
112  str += " ; runScript ";
113  str += parm->c_str();
114  window->cmd = str;
115  }
116 }
117 
118 /*
119 =========================
120 Script_LocalSound
121 =========================
122 */
124  idWinStr *parm = dynamic_cast<idWinStr*>((*src)[0].var);
125  if (parm) {
126  session->sw->PlayShaderDirectly(*parm);
127  }
128 }
129 
130 /*
131 =========================
132 Script_EvalRegs
133 =========================
134 */
136  window->EvalRegs(-1, true);
137 }
138 
139 /*
140 =========================
141 Script_EndGame
142 =========================
143 */
145  cvarSystem->SetCVarBool( "g_nightmare", true );
146  cmdSystem->BufferCommandText( CMD_EXEC_APPEND, "disconnect\n" );
147 }
148 
149 /*
150 =========================
151 Script_ResetTime
152 =========================
153 */
155  idWinStr *parm = dynamic_cast<idWinStr*>((*src)[0].var);
156  drawWin_t *win = NULL;
157  if (parm && src->Num() > 1) {
158  win = window->GetGui()->GetDesktop()->FindChildByName(*parm);
159  parm = dynamic_cast<idWinStr*>((*src)[1].var);
160  }
161  if (win && win->win) {
162  win->win->ResetTime(atoi(*parm));
163  win->win->EvalRegs(-1, true);
164  } else {
165  window->ResetTime(atoi(*parm));
166  window->EvalRegs(-1, true);
167  }
168 }
169 
170 /*
171 =========================
172 Script_ResetCinematics
173 =========================
174 */
176  window->ResetCinematics();
177 }
178 
179 /*
180 =========================
181 Script_Transition
182 =========================
183 */
185  // transitions always affect rect or vec4 vars
186  if (src->Num() >= 4) {
187  idWinRectangle *rect = NULL;
188  idWinVec4 *vec4 = dynamic_cast<idWinVec4*>((*src)[0].var);
189  //
190  // added float variable
191  idWinFloat* val = NULL;
192  //
193  if (vec4 == NULL) {
194  rect = dynamic_cast<idWinRectangle*>((*src)[0].var);
195  //
196  // added float variable
197  if ( NULL == rect ) {
198  val = dynamic_cast<idWinFloat*>((*src)[0].var);
199  }
200  //
201  }
202  idWinVec4 *from = dynamic_cast<idWinVec4*>((*src)[1].var);
203  idWinVec4 *to = dynamic_cast<idWinVec4*>((*src)[2].var);
204  idWinStr *timeStr = dynamic_cast<idWinStr*>((*src)[3].var);
205  //
206  // added float variable
207  if (!((vec4 || rect || val) && from && to && timeStr)) {
208  //
209  common->Warning("Bad transition in gui %s in window %s\n", window->GetGui()->GetSourceFile(), window->GetName());
210  return;
211  }
212  int time = atoi(*timeStr);
213  float ac = 0.0f;
214  float dc = 0.0f;
215  if (src->Num() > 4) {
216  idWinStr *acv = dynamic_cast<idWinStr*>((*src)[4].var);
217  idWinStr *dcv = dynamic_cast<idWinStr*>((*src)[5].var);
218  assert(acv && dcv);
219  ac = atof(*acv);
220  dc = atof(*dcv);
221  }
222 
223  if (vec4) {
224  vec4->SetEval(false);
225  window->AddTransition(vec4, *from, *to, time, ac, dc);
226  //
227  // added float variable
228  } else if ( val ) {
229  val->SetEval ( false );
230  window->AddTransition(val, *from, *to, time, ac, dc);
231  //
232  } else {
233  rect->SetEval(false);
234  window->AddTransition(rect, *from, *to, time, ac, dc);
235  }
236  window->StartTransition();
237  }
238 }
239 
240 typedef struct {
241  const char *name;
246 
248  { "set", Script_Set, 2, 999 },
249  { "setFocus", Script_SetFocus, 1, 1 },
250  { "endGame", Script_EndGame, 0, 0 },
251  { "resetTime", Script_ResetTime, 0, 2 },
252  { "showCursor", Script_ShowCursor, 1, 1 },
253  { "resetCinematics", Script_ResetCinematics, 0, 2 },
254  { "transition", Script_Transition, 4, 6 },
255  { "localSound", Script_LocalSound, 1, 1 },
256  { "runScript", Script_RunScript, 1, 1 },
257  { "evalRegs", Script_EvalRegs, 0, 0 }
258 };
259 
261 
262 
263 /*
264 =========================
265 idGuiScript::idGuiScript
266 =========================
267 */
269  ifList = NULL;
270  elseList = NULL;
271  conditionReg = -1;
272  handler = NULL;
273  parms.SetGranularity( 2 );
274 }
275 
276 /*
277 =========================
278 idGuiScript::~idGuiScript
279 =========================
280 */
282  delete ifList;
283  delete elseList;
284  int c = parms.Num();
285  for ( int i = 0; i < c; i++ ) {
286  if ( parms[i].own ) {
287  delete parms[i].var;
288  }
289  }
290 }
291 
292 /*
293 =========================
294 idGuiScript::WriteToSaveGame
295 =========================
296 */
298  int i;
299 
300  if ( ifList ) {
301  ifList->WriteToSaveGame( savefile );
302  }
303  if ( elseList ) {
304  elseList->WriteToSaveGame( savefile );
305  }
306 
307  savefile->Write( &conditionReg, sizeof( conditionReg ) );
308 
309  for ( i = 0; i < parms.Num(); i++ ) {
310  if ( parms[i].own ) {
311  parms[i].var->WriteToSaveGame( savefile );
312  }
313  }
314 }
315 
316 /*
317 =========================
318 idGuiScript::ReadFromSaveGame
319 =========================
320 */
322  int i;
323 
324  if ( ifList ) {
325  ifList->ReadFromSaveGame( savefile );
326  }
327  if ( elseList ) {
328  elseList->ReadFromSaveGame( savefile );
329  }
330 
331  savefile->Read( &conditionReg, sizeof( conditionReg ) );
332 
333  for ( i = 0; i < parms.Num(); i++ ) {
334  if ( parms[i].own ) {
335  parms[i].var->ReadFromSaveGame( savefile );
336  }
337  }
338 }
339 
340 /*
341 =========================
342 idGuiScript::Parse
343 =========================
344 */
346  int i;
347 
348  // first token should be function call
349  // then a potentially variable set of parms
350  // ended with a ;
351  idToken token;
352  if ( !src->ReadToken(&token) ) {
353  src->Error( "Unexpected end of file" );
354  return false;
355  }
356 
357  handler = NULL;
358 
359  for ( i = 0; i < scriptCommandCount ; i++ ) {
360  if ( idStr::Icmp(token, commandList[i].name) == 0 ) {
361  handler = commandList[i].handler;
362  break;
363  }
364  }
365 
366  if (handler == NULL) {
367  src->Error("Uknown script call %s", token.c_str());
368  }
369  // now read parms til ;
370  // all parms are read as idWinStr's but will be fixed up later
371  // to be proper types
372  while (1) {
373  if ( !src->ReadToken(&token) ) {
374  src->Error( "Unexpected end of file" );
375  return false;
376  }
377 
378  if (idStr::Icmp(token, ";") == 0) {
379  break;
380  }
381 
382  if (idStr::Icmp(token, "}") == 0) {
383  src->UnreadToken(&token);
384  break;
385  }
386 
387  idWinStr *str = new idWinStr();
388  *str = token;
389  idGSWinVar wv;
390  wv.own = true;
391  wv.var = str;
392  parms.Append( wv );
393  }
394 
395  //
396  // verify min/max params
397  if ( handler && (parms.Num() < commandList[i].mMinParms || parms.Num() > commandList[i].mMaxParms ) ) {
398  src->Error("incorrect number of parameters for script %s", commandList[i].name );
399  }
400  //
401 
402  return true;
403 }
404 
405 /*
406 =========================
407 idGuiScriptList::Execute
408 =========================
409 */
411  int c = list.Num();
412  for (int i = 0; i < c; i++) {
413  idGuiScript *gs = list[i];
414  assert(gs);
415  if (gs->conditionReg >= 0) {
416  if (win->HasOps()) {
417  float f = win->EvalRegs(gs->conditionReg);
418  if (f) {
419  if (gs->ifList) {
420  win->RunScriptList(gs->ifList);
421  }
422  } else if (gs->elseList) {
423  win->RunScriptList(gs->elseList);
424  }
425  }
426  }
427  gs->Execute(win);
428  }
429 }
430 
431 /*
432 =========================
433 idGuiScriptList::FixupParms
434 =========================
435 */
437  if (handler == &Script_Set) {
438  bool precacheBackground = false;
439  bool precacheSounds = false;
440  idWinStr *str = dynamic_cast<idWinStr*>(parms[0].var);
441  assert(str);
442  idWinVar *dest = win->GetWinVarByName(*str, true);
443  if (dest) {
444  delete parms[0].var;
445  parms[0].var = dest;
446  parms[0].own = false;
447 
448  if ( dynamic_cast<idWinBackground *>(dest) != NULL ) {
449  precacheBackground = true;
450  }
451  } else if ( idStr::Icmp( str->c_str(), "cmd" ) == 0 ) {
452  precacheSounds = true;
453  }
454  int parmCount = parms.Num();
455  for (int i = 1; i < parmCount; i++) {
456  idWinStr *str = dynamic_cast<idWinStr*>(parms[i].var);
457  if (idStr::Icmpn(*str, "gui::", 5) == 0) {
458 
459  // always use a string here, no point using a float if it is one
460  // FIXME: This creates duplicate variables, while not technically a problem since they
461  // are all bound to the same guiDict, it does consume extra memory and is generally a bad thing
462  idWinStr* defvar = new idWinStr();
463  defvar->Init ( *str, win );
464  win->AddDefinedVar ( defvar );
465  delete parms[i].var;
466  parms[i].var = defvar;
467  parms[i].own = false;
468 
469  //dest = win->GetWinVarByName(*str, true);
470  //if (dest) {
471  // delete parms[i].var;
472  // parms[i].var = dest;
473  // parms[i].own = false;
474  //}
475  //
476  } else if ((*str[0]) == '$') {
477  //
478  // dont include the $ when asking for variable
479  dest = win->GetGui()->GetDesktop()->GetWinVarByName((const char*)(*str) + 1, true);
480  //
481  if (dest) {
482  delete parms[i].var;
483  parms[i].var = dest;
484  parms[i].own = false;
485  }
486  } else if ( idStr::Cmpn( str->c_str(), STRTABLE_ID, STRTABLE_ID_LENGTH ) == 0 ) {
487  str->Set( common->GetLanguageDict()->GetString( str->c_str() ) );
488  } else if ( precacheBackground ) {
489  const idMaterial *mat = declManager->FindMaterial( str->c_str() );
490  mat->SetSort( SS_GUI );
491  } else if ( precacheSounds ) {
492  // Search for "play <...>"
493  idToken token;
495  parser.LoadMemory(str->c_str(), str->Length(), "command");
496 
497  while ( parser.ReadToken(&token) ) {
498  if ( token.Icmp("play") == 0 ) {
499  if ( parser.ReadToken(&token) && ( token != "" ) ) {
500  declManager->FindSound( token.c_str() );
501  }
502  }
503  }
504  }
505  }
506  } else if (handler == &Script_Transition) {
507  if (parms.Num() < 4) {
508  common->Warning("Window %s in gui %s has a bad transition definition", win->GetName(), win->GetGui()->GetSourceFile());
509  }
510  idWinStr *str = dynamic_cast<idWinStr*>(parms[0].var);
511  assert(str);
512 
513  //
514  drawWin_t *destowner;
515  idWinVar *dest = win->GetWinVarByName(*str, true, &destowner );
516  //
517 
518  if (dest) {
519  delete parms[0].var;
520  parms[0].var = dest;
521  parms[0].own = false;
522  } else {
523  common->Warning("Window %s in gui %s: a transition does not have a valid destination var %s", win->GetName(), win->GetGui()->GetSourceFile(),str->c_str());
524  }
525 
526  //
527  // support variables as parameters
528  int c;
529  for ( c = 1; c < 3; c ++ ) {
530  str = dynamic_cast<idWinStr*>(parms[c].var);
531 
532  idWinVec4 *v4 = new idWinVec4;
533  parms[c].var = v4;
534  parms[c].own = true;
535 
536  drawWin_t* owner;
537 
538  if ( (*str[0]) == '$' ) {
539  dest = win->GetWinVarByName ( (const char*)(*str) + 1, true, &owner );
540  } else {
541  dest = NULL;
542  }
543 
544  if ( dest ) {
545  idWindow* ownerparent;
546  idWindow* destparent;
547  if ( owner ) {
548  ownerparent = owner->simp?owner->simp->GetParent():owner->win->GetParent();
549  destparent = destowner->simp?destowner->simp->GetParent():destowner->win->GetParent();
550 
551  // If its the rectangle they are referencing then adjust it
552  if ( ownerparent && destparent &&
553  (dest == (owner->simp?owner->simp->GetWinVarByName ( "rect" ):owner->win->GetWinVarByName ( "rect" ) ) ) )
554  {
555  idRectangle rect;
556  rect = *(dynamic_cast<idWinRectangle*>(dest));
557  ownerparent->ClientToScreen ( &rect );
558  destparent->ScreenToClient ( &rect );
559  *v4 = rect.ToVec4 ( );
560  } else {
561  v4->Set ( dest->c_str ( ) );
562  }
563  } else {
564  v4->Set ( dest->c_str ( ) );
565  }
566  } else {
567  v4->Set(*str);
568  }
569 
570  delete str;
571  }
572  //
573 
574  } else {
575  int c = parms.Num();
576  for (int i = 0; i < c; i++) {
577  parms[i].var->Init(parms[i].var->c_str(), win);
578  }
579  }
580 }
581 
582 /*
583 =========================
584 idGuiScriptList::FixupParms
585 =========================
586 */
588  int c = list.Num();
589  for (int i = 0; i < c; i++) {
590  idGuiScript *gs = list[i];
591  gs->FixupParms(win);
592  if (gs->ifList) {
593  gs->ifList->FixupParms(win);
594  }
595  if (gs->elseList) {
596  gs->elseList->FixupParms(win);
597  }
598  }
599 }
600 
601 /*
602 =========================
603 idGuiScriptList::WriteToSaveGame
604 =========================
605 */
607  int i;
608 
609  for ( i = 0; i < list.Num(); i++ ) {
610  list[i]->WriteToSaveGame( savefile );
611  }
612 }
613 
614 /*
615 =========================
616 idGuiScriptList::ReadFromSaveGame
617 =========================
618 */
620  int i;
621 
622  for ( i = 0; i < list.Num(); i++ ) {
623  list[i]->ReadFromSaveGame( savefile );
624  }
625 }
void Execute(idWindow *win)
Definition: GuiScript.h:54
void Error(const char *str,...) const id_attribute((format(printf
Definition: Parser.cpp:318
void ResetTime(int time)
Definition: Window.cpp:2646
void Script_SetFocus(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:75
void Script_EvalRegs(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:135
assert(prefInfo.fullscreenBtn)
int Length()
Definition: Winvar.h:192
virtual const idSoundShader * FindSound(const char *name, bool makeDefault=true)=0
void UnreadToken(idToken *token)
Definition: Parser.cpp:2745
idCVarSystem * cvarSystem
Definition: CVarSystem.cpp:487
idSoundWorld * sw
Definition: Session.h:154
void ScreenToClient(idRectangle *rect)
Definition: Window.cpp:4118
void AddDefinedVar(idWinVar *var)
Definition: Window.h:451
virtual void virtual void virtual const idLangDict * GetLanguageDict(void)=0
const char * GetName()
Definition: Window.h:247
idWindow * GetParent(void)
Definition: SimpleWindow.h:55
#define STRTABLE_ID
Definition: Common.h:56
drawWin_t * FindChildByName(const char *name)
Definition: Window.cpp:2573
void AddCommand(const char *cmd)
Definition: Window.cpp:693
virtual void PlayShaderDirectly(const char *name, int channel=-1)=0
virtual void Set(const char *val)
Definition: Winvar.h:591
void Script_Transition(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:184
void ClientToScreen(idRectangle *rect)
Definition: Window.cpp:4137
void FixupParms(idWindow *win)
Definition: GuiScript.cpp:587
void SetGranularity(int newgranularity)
Definition: List.h:305
int scriptCommandCount
Definition: GuiScript.cpp:260
int LoadMemory(const char *ptr, int length, const char *name)
Definition: Parser.cpp:3049
idCmdSystem * cmdSystem
Definition: CmdSystem.cpp:116
void Script_LocalSound(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:123
Definition: Token.h:71
void Script_Set(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:43
virtual const idMaterial * FindMaterial(const char *name, bool makeDefault=true)=0
GLuint src
Definition: glext.h:5390
int i
Definition: process.py:33
int Cmpn(const char *text, int n) const
Definition: Str.h:657
int Icmp(const char *text) const
Definition: Str.h:667
idWindow * win
Definition: SimpleWindow.h:37
#define STRTABLE_ID_LENGTH
Definition: Common.h:57
int Icmpn(const char *text, int n) const
Definition: Str.h:672
Definition: File.h:50
int ReadToken(idToken *token)
Definition: Parser.cpp:2338
virtual void BufferCommandText(cmdExecution_t exec, const char *text)=0
virtual const char * c_str() const =0
int conditionReg
Definition: GuiScript.h:72
void WriteToSaveGame(idFile *savefile)
Definition: GuiScript.cpp:606
const idVec4 & ToVec4() const
Definition: Rectangle.h:115
const GLubyte * c
Definition: glext.h:4677
idCommon * common
Definition: Common.cpp:206
#define NULL
Definition: Lib.h:88
virtual void SetCVarBool(const char *name, const bool value, int flags=0)=0
idGuiScriptList * ifList
Definition: GuiScript.h:73
float EvalRegs(int test=-1, bool force=false)
Definition: Window.cpp:1079
void Script_ShowCursor(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:90
const char * GetSourceFile(void) const
virtual int Read(void *buffer, int len)
Definition: File.cpp:179
const char * GetString(const char *str) const
Definition: LangDict.cpp:148
void Script_RunScript(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:108
idList< idGuiScript * > list
Definition: GuiScript.h:82
void(* handler)(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:242
void FixupParms(idWindow *win)
Definition: GuiScript.cpp:436
idWinVar * var
Definition: GuiScript.h:39
idWindow * GetDesktop() const
void Script_ResetCinematics(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:175
idWinVar * GetWinVarByName(const char *_name)
bool own
Definition: GuiScript.h:40
idStr cmd
Definition: Window.h:316
idDeclManager * declManager
void ResetCinematics()
Definition: Window.cpp:2635
idWindow * SetFocus(idWindow *w, bool scripts=true)
Definition: Window.cpp:1537
void(* handler)(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.h:76
prefInfo window
bool RunScriptList(idGuiScriptList *src)
Definition: Window.cpp:2677
void Execute(idWindow *win)
Definition: GuiScript.cpp:410
idGuiScriptList * elseList
Definition: GuiScript.h:74
void ClearFlag(unsigned int f)
Definition: Window.cpp:1493
int Append(const type &obj)
Definition: List.h:646
void Script_EndGame(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:144
void ReadFromSaveGame(idFile *savefile)
Definition: GuiScript.cpp:321
guiCommandDef_t commandList[]
Definition: GuiScript.cpp:247
tuple f
Definition: idal.py:89
idUserInterfaceLocal * GetGui()
Definition: Window.h:225
int Num(void) const
Definition: List.h:265
bool HasOps()
Definition: Window.h:290
const GLcharARB * name
Definition: glext.h:3629
virtual int Write(const void *buffer, int len)
Definition: File.cpp:189
Definition: Str.h:116
const char * name
Definition: GuiScript.cpp:241
bool Parse(idParser *src)
Definition: GuiScript.cpp:345
const int WIN_NOCURSOR
Definition: Window.h:58
Window win
Definition: glimp.cpp:46
virtual const char * c_str() const
Definition: Winvar.h:204
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
const char * c_str(void) const
Definition: Str.h:487
void WriteToSaveGame(idFile *savefile)
Definition: GuiScript.cpp:297
void SetSort(float s) const
Definition: Material.h:513
void StartTransition()
Definition: Window.cpp:2626
idList< idGSWinVar > parms
Definition: GuiScript.h:75
EventHandlerUPP handler
idSimpleWindow * simp
Definition: SimpleWindow.h:38
idSession * session
Definition: Session.cpp:48
virtual void Set(const char *val)
Definition: Winvar.h:208
void SetFlag(unsigned int f)
Definition: Window.cpp:1484
virtual void Init(const char *_name, idWindow *win)
Definition: Winvar.h:156
virtual void virtual void Warning(const char *fmt,...) id_attribute((format(printf
void Script_ResetTime(idWindow *window, idList< idGSWinVar > *src)
Definition: GuiScript.cpp:154
virtual idWinVar * GetWinVarByName(const char *_name, bool winLookup=false, drawWin_t **owner=NULL)
Definition: Window.cpp:1776
void SetEval(bool b)
Definition: Winvar.h:82
void ReadFromSaveGame(idFile *savefile)
Definition: GuiScript.cpp:619
idWindow * GetParent()
Definition: Window.h:224
void AddTransition(idWinVar *dest, idVec4 from, idVec4 to, int time, float accelTime, float decelTime)
Definition: Window.cpp:2613