Compare commits

..

No commits in common. "8583bef23d2513cd7ff02acb67e81ddd72e72186" and "7f7221e1b75a3f4d3dc14fbca7461ae1d10a19dc" have entirely different histories.

5 changed files with 51 additions and 51 deletions

View File

@ -10,7 +10,7 @@
* be used based on game info's settings;
* 3. `Report...()` methods that perform various validation checks
* (and log them) on config data.
* Copyright 2021-2022 Anton Tarasenko
* Copyright 2021 Anton Tarasenko
*------------------------------------------------------------------------------
* This file is part of Acedia.
*
@ -101,7 +101,6 @@ protected function FromData(HashTable source)
local int i;
local ArrayList nextArray;
local HashTable nextPair;
if (source == none) {
return;
}
@ -134,7 +133,6 @@ private final function FeatureConfigPair HashTableIntoPair(HashTable source)
{
local Text nextText;
local FeatureConfigPair result;
if (source == none) {
return result;
}
@ -154,7 +152,6 @@ private final function array<string> DynamicIntoStringArray(ArrayList source)
local int i;
local Text nextText;
local array<string> result;
if (source == none) {
return result;
}
@ -171,7 +168,6 @@ protected function array<Text> StringToTextArray(array<string> input)
{
local int i;
local array<Text> result;
for (i = 0; i < input.length; i += 1) {
result[i] = _.text.FromString(input[i]);
}
@ -215,7 +211,6 @@ public function ReportIncorrectSettings(
{
local int i;
local array<string> featureNames, featuresToReplace;
for (i = 0; i < featuresToEnable.length; i += 1) {
featureNames[i] = string(featuresToEnable[i].featureClass);
}
@ -238,7 +233,6 @@ public function ReportIncorrectSettings(
public function ReportBadMutatorNames()
{
local int i;
for (i = 0; i < includeMutator.length; i += 1)
{
if (!ValidateServerURLName(includeMutator[i]))
@ -274,7 +268,6 @@ private function ValidateFeatureArray(
{
local int i, j;
local bool foundItem;
for (i = 0; i < subset.length; i += 1)
{
foundItem = false;
@ -312,7 +305,6 @@ public function UpdateFeatureArray(
local int i;
local Text newConfigName;
local string nextFeatureClassName;
for (i = 0; i < featuresToEnable.length; i += 1)
{
nextFeatureClassName = string(featuresToEnable[i].featureClass);
@ -342,7 +334,6 @@ public function UpdateFeatureArray(
private function bool FeatureExcluded(string featureClassName)
{
local int i;
for (i = 0; i < excludeFeature.length; i += 1)
{
if (excludeFeature[i] ~= featureClassName) {
@ -355,7 +346,6 @@ private function bool FeatureExcluded(string featureClassName)
private function Text TryReplacingFeatureConfig(string featureClassName)
{
local int i;
for (i = 0; i < includeFeatureAs.length; i += 1)
{
if (includeFeatureAs[i].feature ~= featureClassName) {
@ -368,7 +358,6 @@ private function Text TryReplacingFeatureConfig(string featureClassName)
private function bool FeatureInIncludedArray(string featureClassName)
{
local int i;
for (i = 0; i < includeFeature.length; i += 1)
{
if (includeFeature[i] ~= featureClassName) {
@ -382,7 +371,6 @@ public function array<Text> GetIncludedMutators()
{
local int i;
local array<string> validatedMutators;
for (i = 0; i < includeMutator.length; i += 1)
{
if (ValidateServerURLName(includeMutator[i])) {

View File

@ -1,7 +1,7 @@
/**
* The only implementation for `BaseGameMode` suitable for standard
* killing floor game types.
* Copyright 2021-2022 Anton Tarasenko
* Copyright 2021 Anton Tarasenko
*------------------------------------------------------------------------------
* This file is part of Acedia.
*
@ -59,7 +59,6 @@ protected function HashTable ToData()
local int i;
local ArrayList nextArray;
local HashTable result, nextPair;
result = super.ToData();
if (result == none) {
return none;
@ -87,7 +86,6 @@ protected function FromData(HashTable source)
local GameOption nextGameOption;
local ArrayList nextArray;
local HashTable nextPair;
super.FromData(source);
if (source == none) {
return;
@ -155,7 +153,6 @@ public function Text GetMapPrefix()
public function ReportBadOptions()
{
local int i;
for (i = 0; i < option.length; i += 1)
{
if ( !ValidateServerURLName(option[i].key)
@ -176,7 +173,6 @@ public function HashTable GetOptions()
{
local int i;
local HashTable result;
result = _.collections.EmptyHashTable();
for (i = 0; i < option.length; i += 1)
{

View File

@ -22,6 +22,13 @@
class Packages extends Mutator
config(Acedia);
// Default value of this variable will be used to store
// reference to the active Acedia mutator,
// as well as to ensure there's only one copy of it.
// We can't use 'Singleton' class for that,
// as we have to derive from 'Mutator'.
var private Packages selfReference;
// Acedia's reference to a `Global` object.
var private Global _;
var private ServerGlobal _server;
@ -49,6 +56,11 @@ struct FeatureConfigPair
var public Text configName;
};
static public final function Packages GetInstance()
{
return default.selfReference;
}
// "Constructor"
simulated function PreBeginPlay()
{
@ -62,8 +74,16 @@ simulated function PreBeginPlay()
private simulated function InitializeClient()
{
_ = class'Global'.static.GetInstance();
// Enforce one copy rule and remember a reference to that copy
if (default.selfReference != none)
{
Destroy();
return;
}
default.selfReference = self;
// TODO: Swap these around after dealing with aliases
class'ClientLevelCore'.static.CreateLevelCore(self);
_ = class'Global'.static.GetInstance();
}
private function InitializeServer()
@ -72,16 +92,23 @@ private function InitializeServer()
local LevelCore serverCore;
local GameMode currentGameMode;
local array<FeatureConfigPair> availableFeatures;
if (clientside) {
AddToPackageMap("Acedia");
}
CheckForGarbage();
// Enforce one copy rule and remember a reference to that copy
if (default.selfReference != none)
{
Destroy();
return;
}
default.selfReference = self;
// Launch and setup core Acedia
// TODO: Swap these around after dealing with aliases
serverCore = class'ServerLevelCore'.static.CreateLevelCore(self);
_ = class'Global'.static.GetInstance();
_server = class'ServerGlobal'.static.GetInstance();
_client = class'ClientGlobal'.static.GetInstance();
serverCore = class'ServerLevelCore'.static.CreateLevelCore(self);
for (i = 0; i < package.length; i += 1) {
_.environment.RegisterPackage_S(package[i]);
}
@ -122,6 +149,7 @@ function ServerTraveling(string URL, bool bItems)
_.memory.Free(votingAdapter);
votingAdapter = none;
}
default.selfReference = none;
_.environment.ShutDown();
if (nextMutator != none) {
nextMutator.ServerTraveling(URL, bItems);
@ -133,13 +161,10 @@ function ServerTraveling(string URL, bool bItems)
// This can lead to serious problems, so such diagnostic check is warranted.
private function CheckForGarbage()
{
local int leftoverObjectAmount;
local int leftoverActorAmount;
local int leftoverDBRAmount;
local int leftoverObjectAmount, leftoverActorAmount, leftoverDBRAmount;
local AcediaObject nextObject;
local AcediaActor nextActor;
local DBRecord nextRecord;
foreach AllObjects(class'AcediaObject', nextObject) {
leftoverObjectAmount += 1;
}
@ -185,7 +210,6 @@ public final function array<FeatureConfigPair> GetAutoConfigurationInfo()
private function EnableFeatures(array<FeatureConfigPair> features)
{
local int i;
for (i = 0; i < features.length; i += 1)
{
if (features[i].featureClass == none) continue;
@ -201,7 +225,6 @@ private function EnableFeatures(array<FeatureConfigPair> features)
private function SetupMutatorSignals()
{
local ServerUnrealService service;
service = ServerUnrealService(class'ServerUnrealService'.static.Require());
onMutateSignal = Mutator_OnMutate_Signal(
service.GetSignal(class'Mutator_OnMutate_Signal'));

View File

@ -1,6 +1,6 @@
/**
* This actor's role is to add Acedia mutator on listen and dedicated servers.
* Copyright 2019-2022 Anton Tarasenko
* Copyright 2019 Anton Tarasenko
*------------------------------------------------------------------------------
* This file is part of Acedia.
*

View File

@ -5,7 +5,7 @@
* data from Acedia's game modes.
* Requires `GameInfo`'s voting handler to be derived from
* `XVotingHandler`, which is satisfied by pretty much every used handler.
* Copyright 2021-2022 Anton Tarasenko
* Copyright 2021 Anton Tarasenko
*------------------------------------------------------------------------------
* This file is part of Acedia.
*
@ -109,7 +109,6 @@ public final function InjectIntoVotingHandler()
local GameMode nextGameMode;
local XVotingHandler votingHandler;
local array<VotingHandler.MapVoteGameConfig> newVotingHandlerConfig;
if (votingHandlerReference != none) {
return;
}
@ -140,11 +139,10 @@ private function VotingHandler.MapVoteGameConfig BuildVotingHandlerConfig(
GameMode gameMode)
{
local VotingHandler.MapVoteGameConfig result;
result.gameClass = _.text.IntoString(gameMode.GetGameTypeClass());
result.gameClass = _.text.ToString(gameMode.GetGameTypeClass());
result.gameName = _.text.ToColoredString(gameMode.GetTitle());
result.prefix = _.text.IntoString(gameMode.GetMapPrefix());
result.acronym = _.text.IntoString(gameMode.GetAcronym());
result.prefix = _.text.ToString(gameMode.GetMapPrefix());
result.acronym = _.text.ToString(gameMode.GetAcronym());
result.mutators = BuildMutatorString(gameMode);
result.options = BuildOptionsString(gameMode);
return result;
@ -155,14 +153,13 @@ private function string BuildMutatorString(GameMode gameMode)
local int i;
local string result;
local array<Text> usedMutators;
usedMutators = gameMode.GetIncludedMutators();
for (i = 0; i < usedMutators.length; i += 1)
{
if (i > 0) {
result $= ",";
}
result $= _.text.IntoString(usedMutators[i]);
result $= _.text.ToString(usedMutators[i]);
}
return result;
}
@ -174,12 +171,11 @@ private function string BuildOptionsString(GameMode gameMode)
local string nextKey, nextValue;
local CollectionIterator iter;
local HashTable options;
options = gameMode.GetOptions();
for (iter = options.Iterate(); !iter.HasFinished(); iter.Next())
{
nextKey = _.text.IntoString(Text(iter.GetKey()));
nextValue = _.text.IntoString(Text(iter.Get()));
nextKey = _.text.ToString(Text(iter.GetKey()));
nextValue = _.text.ToString(Text(iter.Get()));
if (optionWasAdded) {
result $= "?";
}
@ -201,7 +197,6 @@ public final function PrepareForServerTravel()
local string nextGameClassName;
local class<GameInfo> nextGameClass;
local XVotingHandler votingHandler;
if (votingHandlerReference == none) return;
votingHandler = XVotingHandler(votingHandlerReference.Get());
if (votingHandler == none) return;
@ -264,7 +259,6 @@ public final function GameMode SetupGameModeAfterTravel()
public final function RestoreVotingHandlerConfigBackup()
{
local XVotingHandler votingHandler;
if (votingHandlerReference == none) return;
votingHandler = XVotingHandler(votingHandlerReference.Get());
if (votingHandler == none) return;
@ -291,8 +285,7 @@ private final function int GetNumericDifficulty(GameMode gameMode)
{
local int i;
local string difficulty;
difficulty = Locs(_.text.IntoString(gameMode.GetDifficulty()));
difficulty = Locs(_.text.ToString(gameMode.GetDifficulty()));
for (i = 0; i < default.beginnerSynonyms.length; i += 1)
{
if (IsPrefixOf(difficulty, default.beginnerSynonyms[i])) {