977 lines
26 KiB
Ucode
977 lines
26 KiB
Ucode
class menu_Old extends PopupPageBase
|
|
transient;
|
|
|
|
|
|
var(DEBUG) transient array<StaticMeshActor> cachedStaticMeshes;
|
|
var(DEBUG) transient array<Light> cachedLights;
|
|
var(DEBUG) transient array<Emitter> cachedEmitters;
|
|
var(DEBUG) transient array<Decoration> cachedDecorations;
|
|
var(DEBUG) transient array<Mover> cachedMovers;
|
|
var(DEBUG) transient array<Projector> cachedProjectors; // KFBloodSplatter
|
|
var(DEBUG) transient array<KF_RotatingMeshActor> cachedRotatingMeshActors; // terraininfo
|
|
|
|
var PlayerController PC;
|
|
var editinline array<byte> CloseKey;
|
|
|
|
var ActortListController ALC;
|
|
var string mapName;
|
|
|
|
var automated GUIButton b_HideAllActors, b_ShowAllActors, b_CacheAllActors,
|
|
b_UncacheAllActors, b_RefreshScreen, b_DisplayCachedActors,
|
|
b_ValidateCachedActors, b_ClearCache, b_ActivateInteraction;
|
|
var automated BackgroundArea a_List;
|
|
var automated GUIListBox lb_ActortListsList;
|
|
var GUIList li_ActortListsList;
|
|
var automated GUILabel l_WeaponList;
|
|
|
|
var string colorG, colorB, colorY, colorW;
|
|
|
|
|
|
simulated function InitComponent(GUIController MyController, GUIComponent MyOwner)
|
|
{
|
|
super.InitComponent(MyController,MyOwner);
|
|
|
|
PC = PlayerOwner();
|
|
|
|
colorG = chr(27) $ chr(1) $ chr(240) $ chr(1);
|
|
colorB = chr(27) $ chr(90) $ chr(90) $ chr(240);
|
|
colorY = chr(27) $ chr(127) $ chr(127) $ chr(1);
|
|
colorW = chr(27) $ chr(255) $ chr(255) $ chr(255);
|
|
}
|
|
|
|
|
|
event Opened(GUIComponent Sender)
|
|
{
|
|
local int i;
|
|
local string KeyName;
|
|
local array<string> KeyNames;
|
|
|
|
local array<string> ActortListNames;
|
|
|
|
super.Opened(Sender);
|
|
|
|
PC = PlayerOwner();
|
|
|
|
// write in KeyNames all bind keys that onen this window to use 'closeWindowWithBind()' then
|
|
CloseKey.Remove(0, CloseKey.Length);
|
|
KeyName = PC.ConsoleCommand("BINDINGTOKEY hideMenu");
|
|
Split(KeyName, ",", KeyNames);
|
|
for (i = 0; i < KeyNames.Length; i++)
|
|
CloseKey[CloseKey.Length] = byte(PC.ConsoleCommand("KEYNUMBER"@KeyNames[i]));
|
|
|
|
mapName = class'KFGameType'.static.GetCurrentMapName(PC.Level);
|
|
|
|
// in case of 255.255.225.228:8080/KF-WestLondon
|
|
i = InStr(mapName, "/") + 1;
|
|
MapName = Mid(MapName, i, Len(MapName) - i);
|
|
|
|
l_WeaponList.caption = MapName;
|
|
|
|
// refresh list with ActortLists
|
|
|
|
GetALL().clear();
|
|
ActortListNames = GetALC().GetAllActortLists();
|
|
for (i = 0; i < ActortListNames.Length; i++)
|
|
{
|
|
if (Left(ActortListNames[i], Len(MapName)) ~= MapName)
|
|
GetALL().add(ActortListNames[i]);
|
|
}
|
|
}
|
|
|
|
|
|
simulated function Closed(GUIComponent Sender, bool bCancelled)
|
|
{
|
|
super.Closed(Sender, bCancelled);
|
|
|
|
b_CacheAllActors.MenuState=MSAT_Disabled;
|
|
b_UncacheAllActors.MenuState=MSAT_Disabled;
|
|
}
|
|
|
|
|
|
// safe cleanup
|
|
event Free()
|
|
{
|
|
// all automated components are cleaned in super code
|
|
pc = none;
|
|
ALC = none;
|
|
li_ActortListsList = none;
|
|
// clear all arrays
|
|
clearCache();
|
|
|
|
super.Free();
|
|
}
|
|
|
|
|
|
// =============================================================================
|
|
// getters for safe calls
|
|
|
|
final private function PCMsg(coerce string s, optional Name Type)
|
|
{
|
|
if (pc != none)
|
|
PC.ClientMessage(s, Type);
|
|
}
|
|
|
|
|
|
final private function ActortListController GetALC()
|
|
{
|
|
if (ALC == none)
|
|
ALC = new class'ActortListController';
|
|
|
|
return ALC;
|
|
}
|
|
|
|
|
|
final private function GUIList GetALL()
|
|
{
|
|
if (li_ActortListsList == none)
|
|
{
|
|
li_ActortListsList = lb_ActortListsList.List;
|
|
li_ActortListsList.TextAlign = TXTA_Left;
|
|
li_ActortListsList.OnClick = ActivateAllButtons;
|
|
li_ActortListsList.bMultiSelect = true;
|
|
li_ActortListsList.bDropSource = true;
|
|
li_ActortListsList.bDropTarget = true;
|
|
}
|
|
|
|
return li_ActortListsList;
|
|
}
|
|
|
|
|
|
// =============================================================================
|
|
simulated function bool ButtonClicked(GUIComponent Sender)
|
|
{
|
|
// local StaticMeshActor tempActor;
|
|
// local Emitter tempEmitter;
|
|
// local Light tempLight;
|
|
// local mover tempMover;
|
|
// local array<string> uselessActors;
|
|
// local int i, count;
|
|
|
|
switch (Sender)
|
|
{
|
|
case b_CacheAllActors:
|
|
cacheStaticMeshes();
|
|
cacheLights();
|
|
cacheEmitters();
|
|
cacheDecorations();
|
|
cacheMovers();
|
|
cacheRotatingMeshActors();
|
|
break;
|
|
|
|
case b_UncacheAllActors:
|
|
// UNCACHE
|
|
break;
|
|
|
|
case b_HideAllActors:
|
|
checkAvailability();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
PCMsg(colorG$"Following actors were hided:");
|
|
hideStaticMeshes();
|
|
hideLights();
|
|
hideEmitters();
|
|
hideDecorations();
|
|
hideMovers();
|
|
hideRotatingMeshActors();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
break;
|
|
|
|
case b_ShowAllActors:
|
|
checkAvailability();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
PCMsg(colorG$"Following actors were unhided:");
|
|
showStaticMeshes();
|
|
showLights();
|
|
showEmitters();
|
|
showDecorations();
|
|
showMovers();
|
|
showRotatingMeshActors();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
break;
|
|
|
|
case b_RefreshScreen:
|
|
hideSMeshesWithoutColliding();
|
|
break;
|
|
|
|
case b_DisplayCachedActors:
|
|
checkAvailability();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
PCMsg(colorG$"Cached actors:");
|
|
displayCachedStaticMeshes();
|
|
displayCachedLights();
|
|
displayCachedEmitters();
|
|
displayCachedDecorations();
|
|
displayCachedMovers();
|
|
displayCachedRotatingMeshActors();
|
|
PCMsg(colorW$"----------------------------------------");
|
|
break;
|
|
|
|
case b_ClearCache:
|
|
clearCache();
|
|
break;
|
|
|
|
case b_ActivateInteraction:
|
|
// runInteraction();
|
|
closeInteraction();
|
|
break;
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
simulated function runInteraction()
|
|
{
|
|
// local int i;
|
|
local PlayerController dude;
|
|
|
|
dude = PlayerOwner();
|
|
|
|
if (dude != none)
|
|
{
|
|
// dude.Player.LocalInteractions[dude.Player.LocalInteractions.Length] = none;
|
|
// for(i = 0; i < dude.Player.LocalInteractions.Length; i++)
|
|
// PCMsg(colorW$string(dude.Player.LocalInteractions[i].name));
|
|
|
|
dude.Player.LocalInteractions[0] = new class<Interaction>(DynamicLoadObject(string(class'HideMutInteraction'), class'Class', true));
|
|
dude.Player.LocalInteractions[0].ViewportOwner = dude.Player;
|
|
}
|
|
|
|
// dude.Player.InteractionMaster.AddInteraction(string(class'HideMutInteraction'), dude.Player);
|
|
}
|
|
|
|
|
|
simulated function closeInteraction()
|
|
{
|
|
PlayerOwner().Player.LocalInteractions[0].ViewportOwner = none;
|
|
PlayerOwner().Player.LocalInteractions.Remove(0, 1);
|
|
}
|
|
|
|
|
|
// STATIC MESHES
|
|
simulated function cacheStaticMeshes()
|
|
{
|
|
local StaticMeshActor tempSM;
|
|
local array<string> uselessStaticMeshes;
|
|
local int i, count;
|
|
|
|
uselessStaticMeshes = GetALC().getUselessStaticMeshes(GetALL().get(false));
|
|
|
|
PCMsg("Meshes in ini file:"$uselessStaticMeshes.length);
|
|
|
|
forEach AllObjects (class'StaticMeshActor', tempSM)
|
|
{
|
|
for (i = 0; i < uselessStaticMeshes.length; i++)
|
|
{
|
|
if (string(tempSM.name) == uselessStaticMeshes[i])
|
|
{
|
|
cachedStaticMeshes[cachedStaticMeshes.length] = tempSM;
|
|
uselessStaticMeshes.remove(i,1);
|
|
count++;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg("Meshes added:"$count);
|
|
PCMsg(colorG$"All static meshes were cached sucessfully.");
|
|
}
|
|
|
|
|
|
simulated function hideStaticMeshes()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Static meshes");
|
|
|
|
for (i = 0; i < cachedStaticMeshes.length; i++)
|
|
{
|
|
if (cachedStaticMeshes[i].bHidden == false)
|
|
{
|
|
cachedStaticMeshes[i].bHidden = true;
|
|
cachedStaticMeshes[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedStaticMeshes[i].name));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
simulated function showStaticMeshes()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Static meshes");
|
|
|
|
for (i = 0; i < cachedStaticMeshes.length; i++)
|
|
{
|
|
if (cachedStaticMeshes[i].bHidden == true)
|
|
{
|
|
cachedStaticMeshes[i].bHidden = false;
|
|
cachedStaticMeshes[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedStaticMeshes[i].name));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
simulated function displayCachedStaticMeshes()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Static meshes ["$cachedStaticMeshes.length$"]");
|
|
|
|
for (i = 0; i < cachedStaticMeshes.length; i++)
|
|
PCMsg(colorY$" "@string(cachedStaticMeshes[i].name));
|
|
}
|
|
|
|
|
|
// LIGHTS
|
|
simulated function cacheLights()
|
|
{
|
|
local Light tempL;
|
|
local array<string> uselessLights;
|
|
local int i;
|
|
|
|
uselessLights = GetALC().getUselessLights(GetALL().get(false));
|
|
|
|
forEach AllObjects (class'Light', tempL)
|
|
{
|
|
for (i = 0; i < uselessLights.length; i++)
|
|
{
|
|
if (string(tempL.name) == uselessLights[i])
|
|
{
|
|
cachedLights[cachedLights.length] = tempL;
|
|
uselessLights.remove(i,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg(colorG$"All lights were cached sucessfully.");
|
|
}
|
|
|
|
|
|
simulated function hideLights()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Lights[coronas]");
|
|
|
|
for (i = 0; i < cachedLights.length; i++)
|
|
{
|
|
if (cachedLights[i].bCorona == true)
|
|
{
|
|
cachedLights[i].bCorona = false;
|
|
if (cachedLights[i].bStatic)
|
|
cachedLights[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedLights[i].name));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
simulated function showLights()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Lights[coronas]");
|
|
|
|
for(i = 0; i < cachedLights.length; i++)
|
|
if(cachedLights[i].bCorona == false)
|
|
{
|
|
cachedLights[i].bCorona = true;
|
|
if(cachedLights[i].bStatic)
|
|
cachedLights[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedLights[i].name));
|
|
}
|
|
}
|
|
|
|
simulated function displayCachedLights()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Lights ["$cachedLights.length$"]");
|
|
|
|
for(i = 0; i < cachedLights.length; i++)
|
|
PCMsg(colorY$" "@string(cachedLights[i].name));
|
|
}
|
|
|
|
/*EMITTERS*/
|
|
simulated function cacheEmitters()
|
|
{
|
|
local Emitter tempE;
|
|
local array<string> uselessEmitters;
|
|
local int i;
|
|
|
|
uselessEmitters = GetALC().getUselessEmitters(GetALL().get(false));
|
|
|
|
forEach AllObjects (class'Emitter', tempE)
|
|
{
|
|
for(i = 0; i < uselessEmitters.length; i++)
|
|
{
|
|
if(string(tempE.name) == uselessEmitters[i])
|
|
{
|
|
cachedEmitters[cachedEmitters.length] = tempE;
|
|
uselessEmitters.remove(i,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg(colorG$"All emitters were cached sucessfully.");
|
|
}
|
|
|
|
simulated function hideEmitters()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Emitters");
|
|
|
|
for(i = 0; i < cachedEmitters.length; i++)
|
|
if(cachedEmitters[i].bHidden == false)
|
|
{
|
|
cachedEmitters[i].bHidden = true;
|
|
if(cachedEmitters[i].bStatic)
|
|
cachedEmitters[i].ResetStaticFilterState();
|
|
// PCMsg(colorY$" "@string(cachedEmitters[i].name));
|
|
}
|
|
}
|
|
|
|
simulated function showEmitters()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Emitters");
|
|
|
|
for(i = 0; i < cachedEmitters.length; i++)
|
|
if(cachedEmitters[i].bHidden == true)
|
|
{
|
|
cachedEmitters[i].bHidden = false;
|
|
if(cachedEmitters[i].bStatic)
|
|
cachedEmitters[i].ResetStaticFilterState();
|
|
// PCMsg(colorY$" "@string(cachedEmitters[i].name));
|
|
}
|
|
}
|
|
|
|
simulated function displayCachedEmitters()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Emitters ["$cachedEmitters.length$"]");
|
|
|
|
for(i = 0; i < cachedEmitters.length; i++)
|
|
PCMsg(colorY$" "@string(cachedEmitters[i].name));
|
|
}
|
|
|
|
|
|
// DECORATIONS
|
|
simulated function cacheDecorations()
|
|
{
|
|
local Decoration tempD;
|
|
local array<string> uselessDecorations;
|
|
local int i;
|
|
|
|
uselessDecorations = GetALC().getUselessDecorations(GetALL().get(false));
|
|
|
|
forEach AllObjects (class'Decoration', tempD)
|
|
{
|
|
for(i = 0; i < uselessDecorations.length; i++)
|
|
{
|
|
if(string(tempD.name) == uselessDecorations[i])
|
|
{
|
|
cachedDecorations[cachedDecorations.length] = tempD;
|
|
uselessDecorations.remove(i,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg(colorG$"All decorations were cached sucessfully.");
|
|
}
|
|
|
|
|
|
simulated function hideDecorations()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Decorations");
|
|
|
|
for (i = 0; i < cachedDecorations.length; i++)
|
|
if (cachedDecorations[i].bHidden == false)
|
|
{
|
|
cachedDecorations[i].bHidden = true;
|
|
if (cachedDecorations[i].bStatic)
|
|
cachedDecorations[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedDecorations[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function showDecorations()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Decorations");
|
|
|
|
for (i = 0; i < cachedDecorations.length; i++)
|
|
if (cachedDecorations[i].bHidden == true)
|
|
{
|
|
cachedDecorations[i].bHidden = false;
|
|
if (cachedDecorations[i].bStatic)
|
|
cachedDecorations[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedDecorations[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function displayCachedDecorations()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Decorations ["$cachedDecorations.length$"]");
|
|
|
|
for (i = 0; i < cachedDecorations.length; i++)
|
|
PCMsg(colorY$" "@string(cachedDecorations[i].name));
|
|
}
|
|
|
|
|
|
// MOVERS
|
|
simulated function cacheMovers()
|
|
{
|
|
local Mover tempM;
|
|
local array<string> uselessMovers;
|
|
local int i;
|
|
|
|
uselessMovers = GetALC().getUselessMovers(GetALL().get(false));
|
|
|
|
forEach AllObjects (class'Mover', tempM)
|
|
{
|
|
for (i = 0; i < uselessMovers.length; i++)
|
|
{
|
|
if (string(tempM.name) == uselessMovers[i])
|
|
{
|
|
cachedMovers[cachedMovers.length] = tempM;
|
|
uselessMovers.remove(i,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg(colorG$"All movers were cached sucessfully.");
|
|
}
|
|
|
|
|
|
simulated function hideMovers()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Movers");
|
|
|
|
for (i = 0; i < cachedMovers.length; i++)
|
|
if (cachedMovers[i].bHidden == false)
|
|
{
|
|
cachedMovers[i].bHidden = true;
|
|
if (cachedMovers[i].bStatic)
|
|
cachedMovers[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedMovers[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function showMovers()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Movers");
|
|
|
|
for (i = 0; i < cachedMovers.length; i++)
|
|
if (cachedMovers[i].bHidden == true)
|
|
{
|
|
cachedMovers[i].bHidden = false;
|
|
if (cachedMovers[i].bStatic)
|
|
cachedMovers[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedMovers[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function displayCachedMovers()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"Movers ["$cachedMovers.length$"]");
|
|
|
|
for (i = 0; i < cachedMovers.length; i++)
|
|
PCMsg(colorY$" "@string(cachedMovers[i].name));
|
|
}
|
|
|
|
|
|
// KF_RotatingMeshActor
|
|
// Chaos code
|
|
simulated function cacheRotatingMeshActors()
|
|
{
|
|
local KF_RotatingMeshActor tempRM;
|
|
local array<string> uselessRotatingMeshActors;
|
|
local int i, count;
|
|
|
|
uselessRotatingMeshActors = GetALC().getuselessRotatingMeshActors(GetALL().get(false));
|
|
|
|
PCMsg("Rotating Movers in ini file:"$uselessRotatingMeshActors.length);
|
|
|
|
forEach AllObjects (class'KF_RotatingMeshActor', tempRM)
|
|
{
|
|
for (i = 0; i < uselessRotatingMeshActors.length; i++)
|
|
{
|
|
if (string(tempRM.name) == uselessRotatingMeshActors[i])
|
|
{
|
|
cachedRotatingMeshActors[cachedRotatingMeshActors.length] = tempRM;
|
|
uselessRotatingMeshActors.remove(i,1);
|
|
count++;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
PCMsg("RotatingMeshActors added:"$count);
|
|
PCMsg(colorG$"All RotatingMeshActors were cached sucessfully.");
|
|
}
|
|
|
|
|
|
simulated function hideRotatingMeshActors()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"RotatingMeshActors");
|
|
|
|
for (i = 0; i < cachedRotatingMeshActors.length; i++)
|
|
if (cachedRotatingMeshActors[i].bHidden == false)
|
|
{
|
|
cachedRotatingMeshActors[i].bHidden = true;
|
|
cachedRotatingMeshActors[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedRotatingMeshActors[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function showRotatingMeshActors()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"RotatingMeshActors");
|
|
|
|
for (i = 0; i < cachedRotatingMeshActors.length; i++)
|
|
if (cachedRotatingMeshActors[i].bHidden == true)
|
|
{
|
|
cachedRotatingMeshActors[i].bHidden = false;
|
|
cachedRotatingMeshActors[i].ResetStaticFilterState();
|
|
PCMsg(colorY$" "@string(cachedRotatingMeshActors[i].name));
|
|
}
|
|
}
|
|
|
|
|
|
simulated function displayCachedRotatingMeshActors()
|
|
{
|
|
local int i;
|
|
|
|
PCMsg(colorB$"RotatingMeshActors ["$cachedRotatingMeshActors.length$"]");
|
|
|
|
for (i = 0; i < cachedRotatingMeshActors.length; i++)
|
|
PCMsg(colorY$" "@string(cachedRotatingMeshActors[i].name));
|
|
}
|
|
|
|
// Chaos code
|
|
simulated function clearCache()
|
|
{
|
|
if (cachedStaticMeshes.length > 0)
|
|
cachedStaticMeshes.remove(0,cachedStaticMeshes.length);
|
|
|
|
if (cachedLights.length > 0)
|
|
cachedLights.remove(0,cachedLights.length);
|
|
|
|
if (cachedEmitters.length > 0)
|
|
cachedEmitters.remove(0,cachedEmitters.length);
|
|
|
|
if (cachedDecorations.length > 0)
|
|
cachedDecorations.remove(0,cachedDecorations.length);
|
|
|
|
if (cachedMovers.length > 0)
|
|
cachedMovers.remove(0,cachedMovers.length);
|
|
|
|
if (cachedProjectors.length > 0)
|
|
cachedProjectors.remove(0,cachedProjectors.length);
|
|
|
|
if (cachedRotatingMeshActors.length > 0)
|
|
cachedRotatingMeshActors.remove(0,cachedRotatingMeshActors.length);
|
|
|
|
PCMsg(colorG$"The cache was cleared.");
|
|
}
|
|
|
|
|
|
simulated function bool closeWindowWithBind(out byte Key, out byte State, float delta)
|
|
{
|
|
local int i;
|
|
|
|
for (i = 0; i < CloseKey.Length; i++)
|
|
if (Key == CloseKey[i])
|
|
{
|
|
Controller.CloseMenu(false);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
simulated function bool ActivateAllButtons(GUIComponent Sender)
|
|
{
|
|
GetALL().InternalOnClick(Sender);
|
|
b_CacheAllActors.MenuState=MSAT_Blurry;
|
|
// b_UncacheAllActors.MenuState=MSAT_Blurry;
|
|
return true;
|
|
}
|
|
|
|
|
|
simulated function hideSMeshesWithoutColliding()
|
|
{
|
|
local StaticMeshActor tempMesh;
|
|
local Emitter tempE;
|
|
local Light tempL;
|
|
local Decoration tempD;
|
|
local Mover tempM;
|
|
local KF_RotatingMeshActor tempR;
|
|
|
|
forEach AllObjects (class'StaticMeshActor', tempMesh)
|
|
{
|
|
if(tempMesh.bBlockActors == false && tempMesh.bBlockZeroExtentTraces == false)
|
|
{
|
|
tempMesh.bHidden = true;
|
|
tempMesh.ResetStaticFilterState();
|
|
cachedStaticMeshes[cachedStaticMeshes.length] = tempMesh;
|
|
}
|
|
|
|
}
|
|
forEach AllObjects (class'Emitter', tempE)
|
|
{
|
|
if(tempE.Instigator == none)
|
|
{
|
|
tempE.bHidden = true;
|
|
if(tempE.bStatic)
|
|
tempE.ResetStaticFilterState();
|
|
cachedEmitters[cachedEmitters.length] = tempE;
|
|
}
|
|
}
|
|
forEach AllObjects (class'Light', tempL)
|
|
{
|
|
if(tempL.bCorona == true)
|
|
{
|
|
tempL.bCorona = false;
|
|
if(tempL.bStatic)
|
|
tempL.ResetStaticFilterState();
|
|
cachedLights[cachedLights.length] = tempL;
|
|
}
|
|
}
|
|
forEach AllObjects (class'Decoration', tempD)
|
|
{
|
|
tempD.bHidden = true;
|
|
if(tempD.bStatic)
|
|
tempD.ResetStaticFilterState();
|
|
cachedDecorations[cachedDecorations.length] = tempD;
|
|
}
|
|
forEach AllObjects (class'Mover', tempM)
|
|
{
|
|
if(tempM.bBlockActors == false && tempM.bBlockZeroExtentTraces == false)
|
|
{
|
|
tempM.bHidden = true;
|
|
if(tempM.bStatic)
|
|
tempM.ResetStaticFilterState();
|
|
cachedMovers[cachedMovers.length] = tempM;
|
|
}
|
|
|
|
}
|
|
// TODO:Check it later
|
|
forEach AllObjects (class'KF_RotatingMeshActor', tempR)
|
|
{
|
|
if(tempR.bBlockActors == false)
|
|
{
|
|
tempR.bHidden = true;
|
|
if(tempR.bStatic)
|
|
tempR.ResetStaticFilterState();
|
|
cachedRotatingMeshActors[cachedRotatingMeshActors.length] = tempR;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
simulated function checkAvailability()
|
|
{
|
|
local int i;
|
|
|
|
if (cachedStaticMeshes.length > 0)
|
|
{
|
|
for (i = 0; i < cachedStaticMeshes.length && cachedStaticMeshes[i] == none; i++)
|
|
cachedStaticMeshes.remove(i, 1);
|
|
}
|
|
|
|
if (cachedLights.length > 0)
|
|
{
|
|
for (i = 0; i < cachedLights.length && cachedLights[i] == none; i++)
|
|
cachedLights.remove(i, 1);
|
|
}
|
|
|
|
if (cachedEmitters.length > 0)
|
|
{
|
|
for (i = 0; i < cachedEmitters.length && (cachedEmitters[i] == none || cachedEmitters[i].bDeleteMe); i++)
|
|
cachedEmitters.remove(i, 1);
|
|
}
|
|
|
|
if (cachedDecorations.length > 0)
|
|
{
|
|
for (i = 0; i < cachedDecorations.length && cachedDecorations[i] == none; i++)
|
|
cachedDecorations.remove(i, 1);
|
|
}
|
|
|
|
if (cachedMovers.length > 0)
|
|
{
|
|
for (i = 0; i < cachedMovers.length && cachedMovers[i] == none; i++)
|
|
cachedMovers.remove(i, 1);
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
Begin Object Class=GUIButton Name=HideAllActorsButton
|
|
Caption="Hide cached"
|
|
WinTop=0.722000
|
|
WinLeft=0.605000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=HideAllActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_HideAllActors=GUIButton'HideMut.menu_Old.HideAllActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=ShowAllActorsButton
|
|
Caption="Unhide cached"
|
|
WinTop=0.722000
|
|
WinLeft=0.700000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=ShowAllActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_ShowAllActors=GUIButton'HideMut.menu_Old.ShowAllActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=CacheAllActorsButton
|
|
Caption="Cache"
|
|
MenuState=MSAT_Disabled
|
|
WinTop=0.712000
|
|
WinLeft=0.405000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=CacheAllActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_CacheAllActors=GUIButton'HideMut.menu_Old.CacheAllActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=UncacheAllActorsButton
|
|
Caption="Uncache"
|
|
MenuState=MSAT_Disabled
|
|
WinTop=0.712000
|
|
WinLeft=0.505000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=UncacheAllActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_UncacheAllActors=GUIButton'HideMut.menu_Old.UncacheAllActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=RefreshScreenButton
|
|
Caption="Just button"
|
|
WinTop=0.722000
|
|
WinLeft=0.795000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=RefreshScreenButton.InternalOnKeyEvent
|
|
End Object
|
|
b_RefreshScreen=GUIButton'HideMut.menu_Old.RefreshScreenButton'
|
|
|
|
Begin Object Class=GUIButton Name=DisplayCachedActorsButton
|
|
Caption="Display cached"
|
|
WinTop=0.722000
|
|
WinLeft=0.305000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=DisplayCachedActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_DisplayCachedActors=GUIButton'HideMut.menu_Old.DisplayCachedActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=ValidateCachedActorsButton
|
|
Caption="Validate cache"
|
|
MenuState=MSAT_Disabled
|
|
WinTop=0.722000
|
|
WinLeft=0.210000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=ValidateCachedActorsButton.InternalOnKeyEvent
|
|
End Object
|
|
b_ValidateCachedActors=GUIButton'HideMut.menu_Old.ValidateCachedActorsButton'
|
|
|
|
Begin Object Class=GUIButton Name=ClearCacheButton
|
|
Caption="Clear cache"
|
|
WinTop=0.722000
|
|
WinLeft=0.115000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=ClearCacheButton.InternalOnKeyEvent
|
|
End Object
|
|
b_ClearCache=GUIButton'HideMut.menu_Old.ClearCacheButton'
|
|
|
|
Begin Object Class=GUIButton Name=ActivateInteractionButton
|
|
Caption="Run interaction"
|
|
WinTop=0.712000
|
|
WinLeft=0.015000
|
|
WinWidth=0.090000
|
|
WinHeight=0.080000
|
|
OnClick=menu_Old.ButtonClicked
|
|
OnKeyEvent=ActivateInteractionButton.InternalOnKeyEvent
|
|
End Object
|
|
b_ActivateInteraction=GUIButton'HideMut.menu_Old.ActivateInteractionButton'
|
|
|
|
Begin Object Class=BackgroundArea Name=ListArea
|
|
WinTop=0.550000
|
|
WinLeft=0.400000
|
|
WinWidth=0.200000
|
|
WinHeight=0.150000
|
|
End Object
|
|
a_List=BackgroundArea'HideMut.menu_Old.ListArea'
|
|
|
|
Begin Object Class=GUIListBox Name=ActortListsListBox
|
|
bVisibleWhenEmpty=True
|
|
OnCreateComponent=ActortListsListBox.InternalOnCreateComponent
|
|
WinTop=0.557000
|
|
WinLeft=0.403000
|
|
WinWidth=0.194000
|
|
WinHeight=0.140000
|
|
End Object
|
|
lb_ActortListsList=GUIListBox'HideMut.menu_Old.ActortListsListBox'
|
|
|
|
Begin Object Class=GUILabel Name=WeaponListLabel
|
|
Caption="Current map"
|
|
TextAlign=TXTA_Center
|
|
VertAlign=TXTA_Center
|
|
StyleName="TextLabel"
|
|
Hint="Current map"
|
|
WinTop=0.530000
|
|
WinLeft=0.400000
|
|
WinWidth=0.200000
|
|
WinHeight=0.020000
|
|
End Object
|
|
l_WeaponList=GUILabel'HideMut.menu_Old.WeaponListLabel'
|
|
|
|
bPersistent=True
|
|
bAllowedAsLast=True
|
|
WinTop=0.700000
|
|
WinLeft=0.400000
|
|
WinWidth=0.200000
|
|
WinHeight=0.100000
|
|
OnKeyEvent=menu_Old.closeWindowWithBind
|
|
}
|