class HideMutMenu extends GUI2K4.MidGamePanel config(HideMut); //===============================================================Strructs // struct for useless map objects to hide and etc struct UselessStuff { var string MapName; var string ProfileName; var array uselessStaticMeshes; var array uselessEmitters; var array uselessLights; var array uselessDecorations; var array uselessMovers; var array uselessProjectors; var array uselessRotatingMeshActors; }; // struct for culled static meshes struct DefaultCulling { var transient array cullStaticMeshes; var array cullDistanceSt; }; // for ambient sounds struct SoundDefault { var transient array AmbientSoundName; var transient array AmbientSound; var array SoundPitch; var array SoundVolume; var array TransientSoundRadius; var array TransientSoundVolume; }; //===============================================================Strructs var(DEBUG) transient array cachedStaticMeshes; //Caches var(DEBUG) transient array cachedLights; var(DEBUG) transient array cachedEmitters; var(DEBUG) transient array cachedDecorations; var(DEBUG) transient array cachedMovers; var(DEBUG) transient array cachedProjectors; //KFBloodSplatter var(DEBUG) transient array cachedRotatingMeshActors; var transient array justStatic; var transient array justEmitter; var transient array justDecos; var transient array justMover; var bool first_Run, first_sounds, bCached, bShow, bDoNotDoShit, bNoEmitters; //sound and culling system var soundDefault OriginalSound; var DefaultCulling DefaultCullMeshes; //For Default Culling var DefaultCulling CulledStaticMeshes; //For modified culling //=================================================================Interface section var automated GUISectionBackground sb_HideStaticMesh_List, sb_Misc, sb_HideStaticMesh, sb_Collision_Flagz, sb_HideActors, sb_Log; var automated GUIButton b_HideAllActors, b_CacheAllActors, b_JustButton, b_DisplayCachedActors, b_ClearCache, b_ActivateInteraction, b_KillEmitters, b_CullDistance, b_Disabler, b_NoAnimShit, b_SaveConfigSettings, b_LoadConfigSettings, b_ClearLog, b_StartMapOptimizer; var automated MOCheckBox ch_HideNiggaz, ch_HideEmitters, ch_HideTerrain,ch_HideStaticMeshes, ch_muteAll, ch_BlockActors, ch_BlockZeroExtentTraces, ch_HideStaticMeshesWithNoCollision, ch_HideDecosWithNoCollision, ch_HideEmittersWithNoInstigator, ch_KillAllEmitters, ch_RemoveAnimatedShit, ch_HideMoversWithNoCollision; var automated moFloatEdit fl_CullDistance; var PlayerController PC; /* var Automated GUIListBox lb_ActortListsList; var GUIList Mo_Profiles; */ var Automated MoComboBox Mo_Profiles, Mo_Logic; var array LColumn; var automated GUIScrollTextBox lb_Actions; //==========================================================Interface section end var string mapName; var array ProfileIndexes; var a_MapOptimizer MapOpt; //==========================================================Config variables var config array AnimatedMeshesNames; var config array MapSpecificObj; var config array uselessSM, uselessEmitter, uselessMover, uselessDecoration; var config bool bHideNiggaz, bHideEmitters, bHideTerrain,bHideStaticMeshes, bmuteAll, bBlockActors, bBlockZeroExtentTraces, bHideStaticMeshesWithNoCollision, bHideDecosWithNoCollision, bHideEmittersWithNoInstigator, bHideMoversWithNoCollision; var config float StaticMesh_CullDistance; var config string MoLogic; var config bool bApplyTweaks, bKillAllEmitters; var bool bConfigLoaded, bRemoveAnimatedShit; //==========================================================Config variables end var string colorG, colorB, colorY, colorW; //Colors simulated function InitComponent(GUIController MyController, GUIComponent MyOwner) { local GUIButton B; local string s; local int i; super.InitComponent(MyController, MyOwner); //For resizing buttons s = GetSizingCaption(); for (i = 0; i < Controls.length; i++) { B = GUIButton(Controls[i]); if (B != none) { B.bAutoSize = true; B.SizingCaption = s; B.AutoSizePadding.HorzPerc = 0.04; B.AutoSizePadding.VertPerc = 0.8; } } 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); sb_Log.ManageComponent(lb_Actions); sb_Log.ManageComponent(b_ClearLog); sb_Misc.ManageComponent(ch_HideNiggaz); sb_Misc.ManageComponent(ch_HideEmitters); sb_Misc.ManageComponent(ch_HideTerrain); sb_Misc.ManageComponent(ch_HideStaticMeshes); sb_Misc.ManageComponent(ch_KillAllEmitters); sb_Misc.ManageComponent(b_KillEmitters); sb_Misc.ManageComponent(fl_CullDistance); sb_Misc.ManageComponent(b_CullDistance); sb_Misc.ManageComponent(b_Disabler); sb_HideStaticMesh_List.ManageComponent(Mo_Profiles); sb_HideStaticMesh_List.ManageComponent(b_CacheAllActors); sb_HideStaticMesh_List.ManageComponent(b_HideAllActors); sb_HideStaticMesh_List.ManageComponent(b_DisplayCachedActors); sb_HideStaticMesh_List.ManageComponent(b_ClearCache); sb_HideStaticMesh_List.ManageComponent(b_SaveConfigSettings); sb_HideStaticMesh_List.ManageComponent(b_LoadConfigSettings); LColumn[0]= b_CacheAllActors; LColumn[1]= b_HideAllActors; LColumn[2] = b_DisplayCachedActors; LColumn[3] = b_ClearCache; Mo_Logic.AddItem("And"); Mo_Logic.AddItem("Or"); sb_HideStaticMesh.ManageComponent(b_ActivateInteraction); sb_HideStaticMesh.ManageComponent(ch_RemoveAnimatedShit); sb_HideStaticMesh.ManageComponent(b_NoAnimShit); sb_HideStaticMesh.ManageComponent(ch_muteAll); sb_HideStaticMesh.ManageComponent(b_StartMapOptimizer); sb_Collision_Flagz.ManageComponent(Mo_Logic); sb_Collision_Flagz.ManageComponent(ch_BlockActors); sb_Collision_Flagz.ManageComponent(ch_BlockZeroExtentTraces); sb_HideActors.ManageComponent(ch_HideStaticMeshesWithNoCollision); sb_HideActors.ManageComponent(ch_HideDecosWithNoCollision); sb_HideActors.ManageComponent(ch_HideEmittersWithNoInstigator); sb_HideActors.ManageComponent(ch_HideMoversWithNoCollision); sb_HideActors.ManageComponent(b_JustButton); } function ShowPanel(bool bShow) { super.ShowPanel(bShow); } //====================Config params function SaveConfigParams() { bHideNiggaz = ch_HideNiggaz.IsChecked(); bHideEmitters = ch_HideEmitters.IsChecked(); bHideTerrain = ch_HideTerrain.IsChecked(); bHideStaticMeshes = ch_HideStaticMeshes.IsChecked(); bmuteAll = ch_muteAll.IsChecked(); bBlockActors = ch_BlockActors.IsChecked(); bBlockZeroExtentTraces = ch_BlockZeroExtentTraces.IsChecked(); bHideStaticMeshesWithNoCollision = ch_HideStaticMeshesWithNoCollision.IsChecked(); bHideDecosWithNoCollision = ch_HideDecosWithNoCollision.IsChecked(); bHideEmittersWithNoInstigator = ch_HideEmittersWithNoInstigator.IsChecked(); bHideMoversWithNoCollision = ch_HideMoversWithNoCollision.IsChecked(); StaticMesh_CullDistance = fl_CullDistance.GetValue(); bRemoveAnimatedShit = ch_RemoveAnimatedShit.IsChecked(); bKillAllEmitters = ch_KillAllEmitters.IsChecked(); MoLogic = Mo_Logic.GetText(); lb_Actions.Addtext("Saving parameters to config..."); SaveConfig(); } function LoadConfigParams() { bDoNotDoShit = True; //Do not let menu do something that we don't want aka multiple config loads and other shit lb_Actions.Addtext("Loading params from config..."); lb_Actions.Addtext("Apply tweaks is" @ bApplyTweaks @ ". Check your config if you want to apply tweaks at runtime..."); ch_HideNiggaz.Checked(bHideNiggaz); ch_HideEmitters.Checked(bHideEmitters); ch_HideTerrain.Checked(bHideTerrain); ch_HideStaticMeshes.Checked(bHideStaticMeshes); ch_muteAll.Checked(bmuteAll); Mo_Logic.SetIndex(Mo_Logic.FindIndex(MoLogic)); ch_BlockActors.Checked(bBlockActors); ch_BlockZeroExtentTraces.Checked(bBlockZeroExtentTraces); ch_HideStaticMeshesWithNoCollision.Checked(bHideStaticMeshesWithNoCollision); ch_HideDecosWithNoCollision.Checked(bHideDecosWithNoCollision); ch_HideEmittersWithNoInstigator.Checked(bHideEmittersWithNoInstigator); ch_HideMoversWithNoCollision.Checked(bHideMoversWithNoCollision); fl_CullDistance.SetValue(StaticMesh_CullDistance); ch_RemoveAnimatedShit.Checked(bRemoveAnimatedShit); ch_KillAllEmitters.Checked(bKillAllEmitters); if (bApplyTweaks && !bConfigLoaded) //Do not apply tweaks if user decided to mash load settings button { lb_Actions.Addtext("Applying tweaks...."); bDoNotDoShit = False; if (bHideNiggaz) removeBlackBitch(bHideNiggaz); if (bHideEmitters) hideAllEmitters(bHideEmitters); if (bHideTerrain) hideTerrain(bHideTerrain); if (bHideStaticMeshes) hideAllStaticMeshes(bHideStaticMeshes); if (bmuteAll) { if (!first_sounds) grabDefaultSounds(); MuteAll(); } if (bHideStaticMeshesWithNoCollision || bHideDecosWithNoCollision || bHideEmittersWithNoInstigator || bHideMoversWithNoCollision) toggleMeshesWithNoCollision(); if (bKillAllEmitters) KillAllEmitters(); if (StaticMesh_CullDistance > 0 && bApplyTweaks) { if (DefaultCullMeshes.cullStaticMeshes.length == 0) GrabCullDistances(); CullDistanceSetAllStaticMeshes(); } if (bRemoveAnimatedShit) NoAnimShit(); } bDoNotDoShit = False; } //==================================================== function bool InternalOnPreDraw(Canvas C) { // local int i; // local float x,w,h; // w = b_CacheAllActors.ActualWidth(); // h = b_CacheAllActors.ActualHeight(); // for (i = 0; i < LColumn.length; i++) // LColumn[i].SetPosition(x, LColumn[i].ActualTop(), w, h, true); // x = sb_HideStaticMesh_List.ActualLeft() + sb_HideStaticMesh_List.ActualWidth() - LColumn[0].ActualLeft() - w; // // Right column for stat meshes list // for (i = 0; i < LColumn.length; i++) // // RColumn[i].SetPosition(x/1.5, LColumn[i].ActualTop(), w, h, true); // return false; // ADDITION return false; } function string GetSizingCaption() { local int i; local string S; for (i = 0; i < Controls.length; i++) if (GUIButton(Controls[i]) != none) if (S == "" || Len(GUIButton(Controls[i]).Caption) > Len(S)) S = GUIButton(Controls[i]).Caption; return S; } event Opened(GUIComponent Sender) { local int i,k; super.Opened(Sender); PC = PlayerOwner(); mapName = PC.Level.GetURLMap(); b_CacheAllActors.MenuState=MSAT_Disabled; b_HideAllActors.MenuState=MSAT_Disabled; b_DisplayCachedActors.MenuState=MSAT_Disabled; //refresh list with ActortLists Mo_Profiles.ResetComponent(); if (MapSpecificObj.Length == 0) //just in case of empty config return; //====================================== /* Stfu.MapName="KF-ThrillsChills"; Stfu.ProfileName = "Optimize map"; for ( i = 0; i < uselessSM.Length; i++ ) { if (i < 31) Stfu.uselessStaticMeshes[i] = uselessSM[i]; else if (i>31) Stfu.uselessEmitters[i] = uselessSM[i]; else if (i>62) Stfu.uselessDecorations[i] = uselessSM[i]; else if (i>92) Stfu.uselessMovers[i] = uselessSM[i]; else if (i>92) Stfu.uselessProjectors[i] = uselessSM[i]; lb_Actions.Addtext(Stfu.uselessStaticMeshes[i]); lb_Actions.Addtext(uselessSM[i]); lb_Actions.Addtext(i); } /* for ( i = 0; i < uselessEmitter.Length; i++ ) { Stfu.uselessEmitters[i] = uselessEmitter[i]; } for ( i = 0; i < uselessDecoration.Length; i++ ) { Stfu.uselessDecorations[i] = uselessDecoration[i]; } for ( i = 0; i < uselessMover.Length; i++ ) { Stfu.uselessMovers[i] = uselessMover[i]; } */ MapSpecificObj[MapSpecificObj.Length] = Stfu; for ( i = 0; i < STFU.uselessStaticMeshes.Length; i++ ) { lb_Actions.Addtext(Stfu.uselessStaticMeshes[i]); } SaveConfig(); */ //============================================== for ( i = 0; i < MapSpecificObj.Length; i++ ) { //lb_Actions.Addtext(MapSpecificObj[i].uselessStaticMeshes[0] @ MapSpecificObj[i].uselessStaticMeshes[1] @ MapSpecificObj[i].uselessStaticMeshes[2]); if (CAPS(MapSpecificObj[i].MapName) == CAPS(MapName)) { Mo_Profiles.addItem(MapSpecificObj[i].ProfileName); //Adding profile name to list ProfileIndexes[k] = i; //Add indexes(id) profiles for our array k++; b_CacheAllActors.MenuState=MSAT_Blurry; } } if (!bConfigLoaded) { LoadConfigParams(); bConfigLoaded = True; } } simulated function Closed(GUIComponent Sender, bool bCancelled) { super.Closed(Sender, bCancelled); } simulated function bool ButtonClicked(GUIComponent Sender) { switch (Sender) { case b_CacheAllActors: bCached = True; b_HideAllActors.MenuState=MSAT_Blurry; b_HideAllActors.MenuState=MSAT_Blurry; b_DisplayCachedActors.MenuState=MSAT_Blurry; cacheStaticMeshes(); cacheLights(); cacheEmitters(); cacheDecorations(); cacheMovers(); cacheRotatingMeshActors(); break; case b_KillEmitters: KillAllEmitters(); break; case b_Disabler: break; case b_HideAllActors: if(bCached) //We have cached elements { checkAvailability(); //none elements clear if (!bShow) //Show or hide cached elements { bShow = True; lb_Actions.Addtext(colorW$"----------------------------------------"); lb_Actions.Addtext(colorG$"Following actors were hided:"); hideStaticMeshes(); hideLights(); hideEmitters(); hideDecorations(); hideMovers(); hideRotatingMeshActors(); lb_Actions.Addtext(colorW$"----------------------------------------"); } else { bShow = False; lb_Actions.Addtext(colorW$"----------------------------------------"); lb_Actions.Addtext(colorG$"Following actors were showed:"); showStaticMeshes(); showLights(); showEmitters(); showDecorations(); showMovers(); showRotatingMeshActors(); lb_Actions.Addtext(colorW$"----------------------------------------"); break; } } else { lb_Actions.Addtext(colorW$"Cache is empty...."); } case b_JustButton: toggleMeshesWithNoCollision(); break; case b_DisplayCachedActors: checkAvailability(); lb_Actions.Addtext(colorW$"----------------------------------------"); lb_Actions.Addtext(colorG$"Cached actors:"); displayCachedStaticMeshes(); displayCachedLights(); displayCachedEmitters(); displayCachedDecorations(); displayCachedMovers(); displayCachedRotatingMeshActors(); lb_Actions.Addtext(colorW$"----------------------------------------"); break; case b_ClearCache: clearCache(); b_HideAllActors.MenuState=MSAT_Disabled; break; case b_CullDistance: if (DefaultCullMeshes.cullStaticMeshes.length == 0) GrabCullDistances(); CullDistanceSetAllStaticMeshes(); break; case b_NoAnimShit: NoAnimShit(); break; case b_ActivateInteraction: break; case b_SaveConfigSettings: SaveConfigParams(); break; case b_LoadConfigSettings: LoadConfigParams(); break; case b_StartMapOptimizer: StartStopMapOptimizer(); break; default: return false; } return true; } // Toggle map optimizer on off simulated function StartStopMapOptimizer() { if (MapOpt == none) { MapOpt = PC.Spawn(class'a_MapOptimizer', PC); MapOpt.StartMapOptimizer(); } else { MapOpt.StopMapOptimizer(); MapOpt.Destroy(); MapOpt = none; } } /*STATIC MESHES*/ simulated function cacheStaticMeshes() { local StaticMeshActor tempSM; local array uselessStaticMeshes; local int i, count; uselessStaticMeshes = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessStaticMeshes; //ALC.getUselessStaticMeshes(Mo_Profiles.get(false)); lb_Actions.Addtext("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; } } } lb_Actions.Addtext("Meshes added:"$count); lb_Actions.Addtext(colorG$"All static meshes were cached sucessfully."); } simulated function hideStaticMeshes() { local int i; lb_Actions.Addtext(colorB$"Static meshes"); for(i = 0; i < cachedStaticMeshes.length; i++) { if(cachedStaticMeshes[i].bHidden == false) { cachedStaticMeshes[i].bHidden = true; if (cachedStaticMeshes[i].bStatic) cachedStaticMeshes[i].ResetStaticFilterState(); lb_Actions.Addtext(colorY$" "@string(cachedStaticMeshes[i].name)); } } } simulated function showStaticMeshes() { local int i; lb_Actions.Addtext(colorB$"Static meshes"); for(i = 0; i < cachedStaticMeshes.length; i++) { if(cachedStaticMeshes[i].bHidden == true) { cachedStaticMeshes[i].bHidden = false; if (cachedStaticMeshes[i].bStatic) cachedStaticMeshes[i].ResetStaticFilterState(); lb_Actions.Addtext(colorY$" "@string(cachedStaticMeshes[i].name)); } } } //=========================================================All Static meshes simulated function hideAllStaticMeshes(bool Flag) { local StaticMeshActor tempSM; forEach AllObjects (class'StaticMeshActor', tempSM) { tempSM.bHidden = Flag; tempSM.ResetStaticFilterState(); } if (Flag) lb_Actions.Addtext(colorB$"All Static meshes, decoratins and movers were hidden"); else lb_Actions.Addtext(colorB$"All Static meshes were shown"); } simulated function hideAllDecorations(bool Flag) { local Decoration tempD; forEach AllObjects(class'Decoration', tempD) { tempD.bHidden = Flag; if(tempD.bStatic) tempD.ResetStaticFilterState(); } if (Flag) lb_Actions.Addtext(colorB$"All Static meshes, decoratins and movers were hidden"); else lb_Actions.Addtext(colorB$"All Static meshes were shown"); } simulated function hideAllMovers(bool Flag) { local Mover tempM; forEach AllObjects (class'Mover', tempM) { //if(tempM.bBlockActors == false && tempM.bBlockZeroExtentTraces == false) tempM.bHidden = Flag; if (tempM.bStatic) tempM.ResetStaticFilterState(); } if (Flag) lb_Actions.Addtext(colorB$"All Static meshes, decoratins and movers were hidden"); else lb_Actions.Addtext(colorB$"All Static meshes were shown"); } simulated function hideAllRotatingMeshActors(bool Flag) { local KF_RotatingMeshActor tempR; forEach AllObjects (class'KF_RotatingMeshActor', tempR) { tempR.bHidden = Flag; if (tempR.bStatic) tempR.ResetStaticFilterState(); } if (Flag) lb_Actions.Addtext(colorB$"All Static meshes, decoratins and movers were hidden"); else lb_Actions.Addtext(colorB$"All Static meshes were shown"); } //=========================================================All Static meshes //=========================================================All Emitters simulated function hideAllEmitters(bool Flag) { local Emitter tempE; if (Flag) //Hide Emitters { forEach AllObjects (class'Emitter', tempE) { tempE.bHidden = true; tempE.ResetStaticFilterState(); } lb_Actions.Addtext(colorB$"All fucking emitters were hidden"); } else { forEach AllObjects (class'Emitter', tempE) { tempE.bHidden = false; tempE.ResetStaticFilterState(); } lb_Actions.Addtext(colorB$"All fucking emitters were shown"); } } simulated function KillAllEmitters() //Bye-bye faggots { local Emitter tempE; forEach AllObjects (class'Emitter', tempE) { tempE.Kill(); } bNoEmitters = True; //BugFix for native-related crash } //=========================================================Emitters //=========================================================Terrain Hide for heavy mapz simulated function hideTerrain(bool Flag) { local ZoneInfo zoneE; forEach AllObjects (class'ZoneInfo', zoneE) { zoneE.bTerrainZone = !Flag; zoneE.ResetStaticFilterState(); } if (flag) lb_Actions.Addtext(colorB$"All terrain were hided"); else lb_Actions.Addtext(colorB$"All terrain were shown"); } //=========================================================Niggaz hide/show simulated function removeBlackBitch(bool Flag) { local WeaponLocker Nigga; forEach AllObjects(class'WeaponLocker', Nigga) { Nigga.bHidden = Flag; } if (flag) lb_Actions.Addtext("All niggaz are hided"); else lb_Actions.Addtext("All niggaz were shown"); } //=========================================================Niggaz hide/show //=========================================================Experimental culldistance set simulated function CullDistanceSetAllStaticMeshes() { local StaticMeshActor tempSM; local float cullDistance; local int i; cullDistance = fl_CullDistance.GetValue(); if (cullDistance == -1 && CulledStaticMeshes.cullStaticMeshes.length != 0) { RestoreCullDistanceSetAllStaticMeshes(); return; } forEach AllObjects (class'StaticMeshActor', tempSM) { if (!tempSM.bHidden) { tempSM.culldistance = culldistance; tempSM.ResetStaticFilterState(); i++; } } lb_Actions.Addtext(colorB$"Cull distance for all statice meshes set to " @ string(cullDistance)); } simulated function RestoreCullDistanceSetAllStaticMeshes() { local StaticMeshActor tempSM; local int i; for (i=0; i uselessLights; local int i; //uselessLights = ALC.getUselessLights(Mo_Profiles.get(false)); uselessLights = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessLights; 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; } } } lb_Actions.Addtext(colorG$"All lights were cached sucessfully."); } simulated function hideLights() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedLights[i].name)); } } simulated function showLights() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedLights[i].name)); } } simulated function displayCachedLights() { local int i; lb_Actions.Addtext(colorB$"Lights ["$cachedLights.length$"]"); for(i = 0; i < cachedLights.length; i++) lb_Actions.Addtext(colorY$" "@string(cachedLights[i].name)); } /*EMITTERS*/ simulated function cacheEmitters() { local Emitter tempE; local array uselessEmitters; local int i; //uselessEmitters = ALC.getUselessEmitters(Mo_Profiles.get(false)); uselessEmitters = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessEmitters; 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; } } } lb_Actions.Addtext(colorG$"All emitters were cached sucessfully."); } simulated function hideEmitters() { local int i; lb_Actions.Addtext(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(); // lb_Actions.Addtext(colorY$" "@string(cachedEmitters[i].name)); } } simulated function showEmitters() { local int i; lb_Actions.Addtext(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(); // lb_Actions.Addtext(colorY$" "@string(cachedEmitters[i].name)); } } simulated function displayCachedEmitters() { local int i; lb_Actions.Addtext(colorB$"Emitters ["$cachedEmitters.length$"]"); for (i = 0; i < cachedEmitters.length; i++) lb_Actions.Addtext(colorY$" "@string(cachedEmitters[i].name)); } // DECORATIONS simulated function cacheDecorations() { local Decoration tempD; local array uselessDecorations; local int i; // uselessDecorations = ALC.getUselessDecorations(Mo_Profiles.get(false)); uselessDecorations = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessDecorations; 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; } } } lb_Actions.Addtext(colorG$"All decorations were cached sucessfully."); } simulated function hideDecorations() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedDecorations[i].name)); } } simulated function showDecorations() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedDecorations[i].name)); } } simulated function displayCachedDecorations() { local int i; lb_Actions.Addtext(colorB$"Decorations ["$cachedDecorations.length$"]"); for (i = 0; i < cachedDecorations.length; i++) lb_Actions.Addtext(colorY$" "@string(cachedDecorations[i].name)); } // MOVERS simulated function cacheMovers() { local Mover tempM; local array uselessMovers; local int i; // uselessMovers = ALC.getUselessMovers(Mo_Profiles.get(false)); uselessMovers = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessMovers; 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; } } } lb_Actions.Addtext(colorG$"All movers were cached sucessfully."); } simulated function hideMovers() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedMovers[i].name)); } } } simulated function showMovers() { local int i; lb_Actions.Addtext(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(); lb_Actions.Addtext(colorY$" "@string(cachedMovers[i].name)); } } simulated function displayCachedMovers() { local int i; lb_Actions.Addtext(colorB$"Movers ["$cachedMovers.length$"]"); for (i = 0; i < cachedMovers.length; i++) lb_Actions.Addtext(colorY$" "@string(cachedMovers[i].name)); } /*KF_RotatingMeshActor*/ /*Chaos code*/ simulated function cacheRotatingMeshActors() { local KF_RotatingMeshActor tempRM; local array uselessRotatingMeshActors; local int i, count; // uselessRotatingMeshActors = ALC.getuselessRotatingMeshActors(Mo_Profiles.get(false)); uselessRotatingMeshActors = MapSpecificObj[ProfileIndexes[Mo_Profiles.getIndex()]].uselessRotatingMeshActors; lb_Actions.Addtext("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; } } } lb_Actions.Addtext("RotatingMeshActors added:"$count); lb_Actions.Addtext(colorG$"All RotatingMeshActors were cached sucessfully."); } simulated function hideRotatingMeshActors() { local int i; lb_Actions.Addtext(colorB$"RotatingMeshActors"); for(i = 0; i < cachedRotatingMeshActors.length; i++) if(cachedRotatingMeshActors[i].bHidden == false) { cachedRotatingMeshActors[i].bHidden = true; cachedRotatingMeshActors[i].ResetStaticFilterState(); lb_Actions.Addtext(colorY$" "@string(cachedRotatingMeshActors[i].name)); } } simulated function showRotatingMeshActors() { local int i; lb_Actions.Addtext(colorB$"RotatingMeshActors"); for (i = 0; i < cachedRotatingMeshActors.length; i++) { if (cachedRotatingMeshActors[i].bHidden == true) { cachedRotatingMeshActors[i].bHidden = false; cachedRotatingMeshActors[i].ResetStaticFilterState(); lb_Actions.Addtext(colorY$" "@string(cachedRotatingMeshActors[i].name)); } } } simulated function displayCachedRotatingMeshActors() { local int i; lb_Actions.Addtext(colorB$"RotatingMeshActors ["$cachedRotatingMeshActors.length$"]"); for (i = 0; i < cachedRotatingMeshActors.length; i++) lb_Actions.Addtext(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); bCached = False; b_HideAllActors.MenuState=MSAT_Disabled; b_DisplayCachedActors.MenuState=MSAT_Disabled; lb_Actions.Addtext(colorG$"The cache was cleared."); } simulated function bool ActivateAllButtons(GUIComponent Sender) { b_CacheAllActors.MenuState=MSAT_Blurry; return true; } simulated function toggleMeshesWithNoCollision() { local StaticMeshActor tempMesh; // local Emitter tempE; local Decoration tempD; local Mover tempM; local int i; if (justStatic.length != 0 || justEmitter.length != 0 || justDecos.length != 0 || justMover.length != 0) { for (i=0; i 0) for(i = cachedStaticMeshes.length; i >= 0 ; i--) if(cachedStaticMeshes[i] == none) cachedStaticMeshes.remove(i,1); if(cachedLights.length > 0) for(i = cachedLights.length; i >= 0 ; i--) if(cachedLights[i] == none) cachedLights.remove(i,1); if(cachedEmitters.length > 0) for(i = cachedEmitters.length; i >= 0 ; i--) { if(cachedEmitters[i] == none) { cachedEmitters.remove(i,1); } else if(cachedEmitters[i].bDeleteMe) { cachedEmitters.remove(i,1); } } if(cachedDecorations.length > 0) for(i = cachedDecorations.length; i >= 0 ; i--) if(cachedDecorations[i] == none) cachedDecorations.remove(i,1); if(cachedMovers.length > 0) for(i = cachedMovers.length; i >= 0 ; i--) if(cachedMovers[i] == none) cachedMovers.remove(i,1); } simulated function checkAvailabilitySingle(array tempArray) { local int i; if (tempArray.length > 0) { for (i = tempArray.length; i >= 0 ; i--) { if (tempArray[i] != none) tempArray.remove(i,1); } } } //============================================================================================ //===========================================================Sound remover + Anim Shit remover simulated function NoAnimShit() { local Actor A; local KF_RotatingMeshActor SMR; local int i,count; if (AnimatedMeshesNames.length == 0) return; forEach AllObjects (class'Actor', A) { for (i=0; i