rott/kf_sources/ScrnZedPack/Classes/FFPKarma.uc
2026-07-14 20:27:09 +07:00

62 lines
1.8 KiB
Ucode

/*
This object is used to load bRagdolls config variable
Clients, who have no config (and probabaly have no karma data),
will have karma ragdoll death animations turned off.
@author PooSH
@author Marco
*/
Class FFPKarma extends Object
Config(FemaleFPMut)
PerObjectConfig;
var config bool bRagdolls;
var config bool bAutoDetect;
var private bool bHasInit,bRagdoll;
static final function InitConfig(LevelInfo Level)
{
local FFPKarma D;
Default.bHasInit = true;
if ( Level.NetMode == NM_DedicatedServer ) {
Default.bRagdoll = false;
}
else if ( Level.PlatformIsWindows() ) {
// DIR command doesn't work on Linux. Not sure about MacOS
Default.bRagdoll = Level.GetLocalPlayerController().ConsoleCommand("DIR ../KarmaData/FFPKarma.ka") ~= "FFPKarma.ka";
}
else {
// read from config. create config file, if it doesn't exist
D = New(None,"FemaleFPKarma") Class'FFPKarma';
Default.bRagdoll = D.bRagdolls;
if ( Level.PlatformIsWindows() ) {
if ( Level.GetLocalPlayerController().ConsoleCommand("DIR ../KarmaData/FFPKarma.ka") ~= "FFPKarma.ka" ) {
// karma file exists
if ( default.bAutoDetect )
Default.bRagdolls = true; // enable it in config for the next use, but don't enable it now. For cases, when karma file is obtained via MusicLoader
}
else {
// karma file doesn't exist - disable ragdoll animations
Default.bRagdolls = false;
Default.bRagdoll = false;
}
}
D.SaveConfig();
}
}
static final function bool UseRagdoll(LevelInfo Level)
{
if( !Default.bHasInit )
InitConfig(Level);
return Default.bRagdoll;
}
defaultproperties
{
bAutoDetect=True
}