Skip to content

Commit

Permalink
fix single player mode
Browse files Browse the repository at this point in the history
  • Loading branch information
GenZmeY committed Jan 8, 2024
1 parent 643c721 commit 6d7f055
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 12 deletions.
4 changes: 2 additions & 2 deletions CTI/Classes/CTI.uc
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ private function PostInit()
{
if (RepInfo.PendingSync)
{
RepInfo.PrepareSync(Self, LogLevel, KFGI.KFGFxManagerClass, DLCSkinUpdateRequired.Value, bApplyPatch);
RepInfo.Replicate(WeapDefs);
}
}
Expand Down Expand Up @@ -348,12 +349,11 @@ public function bool CreateRepInfo(Controller C)

if (RepInfo == None) return false;

RepInfo.PrepareSync(Self, KFPlayerController(C), LogLevel, DLCSkinUpdateRequired.Value, bApplyPatch);

RepInfos.AddItem(RepInfo);

if (ReadyToSync)
{
RepInfo.PrepareSync(Self, LogLevel, KFGI.KFGFxManagerClass, DLCSkinUpdateRequired.Value, bApplyPatch);
RepInfo.Replicate(WeapDefs);
}
else
Expand Down
2 changes: 1 addition & 1 deletion CTI/Classes/CTI_InventoryManager.uc
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public reliable server function CTI_ServerBuyWeapon(int ItemIndex, optional int
if (CurrentCarryBlocks > CurrentCarryBlocks + BlocksRequired) return;
if (!CTI_ProcessWeaponDosh(PurchasedItem)) return;

CTI_AddTransactionItem( PurchasedItem, WeaponUpgrade);
CTI_AddTransactionItem(PurchasedItem, WeaponUpgrade);
}

// final function AddTransactionItem( const out STraderItem ItemToAdd, optional byte WeaponUpgrade )
Expand Down
50 changes: 41 additions & 9 deletions CTI/Classes/CTI_RepInfo.uc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ var public bool PendingSync;
var private CTI CTI;
var private E_LogLevel LogLevel;

var private class<KFGFxMoviePlayer_Manager> FrontEndClass;

var private GameReplicationInfo GRI;
var private KFPlayerController KFPC;
var private KFPlayerReplicationInfo KFPRI;
Expand All @@ -49,7 +51,7 @@ var private bool ClientReady, ServerReady;
replication
{
if (bNetInitial && Role == ROLE_Authority)
LogLevel, SkinUpdateRequired, PatchRequired;
LogLevel, SkinUpdateRequired, PatchRequired, FrontEndClass;
}

public simulated function bool SafeDestroy()
Expand All @@ -60,24 +62,50 @@ public simulated function bool SafeDestroy()
}

public function PrepareSync(
CTI _CTI, KFPlayerController _KFPC, E_LogLevel _LogLevel,
CTI _CTI, E_LogLevel _LogLevel,
class<KFGFxMoviePlayer_Manager> _FrontEndClass,
bool _SkinUpdateRequired, bool _PatchRequired)
{
`Log_Trace();

CTI = _CTI;
KFPC = _KFPC;
LogLevel = _LogLevel;
FrontEndClass = _FrontEndClass;
SkinUpdateRequired = _SkinUpdateRequired;
PatchRequired = _PatchRequired;
}

private reliable client function ClientSetFrontEnd()
{
if (FrontEndClass == None || GetKFPRI() == None)
{
`Log_Debug("Wait for frontend");
SetTimer(1.0f, false, nameof(ClientSetFrontEnd));
return;
}

if (KFPC.MyGFxManager != None && KFPC.MyGFxManager.class == FrontEndClass)
{
`Log_Debug("MyGFxManager is ok:" @ String(KFPC.MyGFxManager.class));
return;
}

KFPC.MyGFxManager.CloseMenus(true);
KFPC.MyGFxManager = None;

KFPC.ClientSetFrontEnd(FrontEndClass, KFPRI.bOnlySpectator);

`Log_Debug(String(FrontEndClass) @ "initialized.");
}

public function Replicate(const out Array<class<KFWeaponDefinition> > WeapDefs)
{
`Log_Trace();

ServerReady = !PatchRequired;

ClientSetFrontEnd();

if (PatchRequired)
{
if (GetKFPC() != None)
Expand All @@ -92,13 +120,14 @@ public function Replicate(const out Array<class<KFWeaponDefinition> > WeapDefs)
RepArray = WeapDefs;
RepData.Size = RepArray.Length;

if (WorldInfo.NetMode == NM_StandAlone)
if (WorldInfo.NetMode != NM_StandAlone)
{
Progress(RepArray.Length, RepArray.Length);
return;
Sync();
}
else
{
Finished();
}

Sync();
}

private reliable server function Sync()
Expand Down Expand Up @@ -179,7 +208,10 @@ private simulated function Finished()
if (KFGRI != None)
{
`Log_Debug("Finished: Trader.static.OverwriteTraderItems");
Trader.static.OverwriteTraderItems(KFGRI, RepArray, PatchRequired, LogLevel);
if (WorldInfo.NetMode != NM_StandAlone)
{
Trader.static.OverwriteTraderItems(KFGRI, RepArray, PatchRequired, LogLevel);
}
`Log_Info("Trader items successfully synchronized!");
}
else
Expand Down

0 comments on commit 6d7f055

Please sign in to comment.