private static void Script_Transition(idWindow window, List <idWinGuiScript> source) { // transitions always affect rect or vec4 vars if (source.Count >= 4) { idWinRectangle rect = null; idWinVector4 vec4 = source[0].Variable as idWinVector4; // // added float variable idWinFloat val = null; // if (vec4 == null) { rect = source[0].Variable as idWinRectangle; // // added float variable if (rect == null) { val = source[0].Variable as idWinFloat; } // } idWinVector4 from = source[1].Variable as idWinVector4; idWinVector4 to = source[2].Variable as idWinVector4; idWinString timeStr = source[3].Variable as idWinString; // // added float variable if (((vec4 == null) && (rect == null) && (val == null)) && (from != null) && (to != null) && (timeStr != null)) { idConsole.Warning("Bad transition in gui {0} in window {1}", window.UserInterface.SourceFile, window.Name); } else { int time; int.TryParse(timeStr.ToString(), out time); float accel = 0.0f; float decel = 0.0f; if (source.Count > 4) { idWinString accelStr = source[4].Variable as idWinString; idWinString decelStr = source[5].Variable as idWinString; float.TryParse(accelStr.ToString(), out accel); float.TryParse(decelStr.ToString(), out decel); } if (vec4 != null) { vec4.Evaluate = false; window.AddTransition(vec4, from, to, time, accel, decel); } else if (val != null) { val.Evaluate = false; window.AddTransition(val, from, to, time, accel, decel); } else { rect.Evaluate = false; window.AddTransition(rect, from, to, time, accel, decel); } window.StartTransition(); } } }