PowerSystem: Network creation as a function

install-platforms
Mark 2017-09-10 18:11:05 +02:00
parent 28b22c6c62
commit 0c148530a6
2 changed files with 17 additions and 8 deletions

View File

@ -349,8 +349,7 @@ public func RefreshLinkedFlags()
var old_network = GetPowerHelper();
// Create a new power network for ths flag since we don't know whether flag links have been lost.
// We then just possibly remove the old ones if they exist.
SetPowerHelper(CreateObject(GetPowerSystem()->GetPowerSystemNetwork(), 0, 0, NO_OWNER));
PushBack(LIB_POWR_Networks, GetPowerHelper());
SetPowerHelper(GetPowerSystem()->CreateNetwork());
// Make a list of the power networks which need to be merged into the new one.
var to_merge = [old_network];
for (var linked_flag in lib_flag.linked_flags)

View File

@ -216,9 +216,7 @@ public func GetPowerNetwork(object for_obj)
// Create the helper if it does not exist yet.
if (helper == nil)
{
helper = CreateObject(GetPowerSystem()->GetPowerSystemNetwork(), 0, 0, NO_OWNER);
helper.lib_power.neutral_network = true;
LIB_POWR_Networks[GetLength(LIB_POWR_Networks)] = helper;
helper = CreateNetwork(true);
}
}
// Otherwise just get the helper from the flag.
@ -228,8 +226,7 @@ public func GetPowerNetwork(object for_obj)
// Create the helper if it does not exist yet.
if (helper == nil)
{
helper = CreateObject(GetPowerSystem()->GetPowerSystemNetwork(), 0, 0, NO_OWNER);
LIB_POWR_Networks[GetLength(LIB_POWR_Networks)] = helper;
helper = CreateNetwork(false);
// Add to all linked flags.
flag->SetPowerHelper(helper);
for (var linked_flag in flag->GetLinkedFlags())
@ -237,8 +234,10 @@ public func GetPowerNetwork(object for_obj)
if (!linked_flag)
continue;
// Assert different power helpers for the same network.
if (linked_flag->GetPowerHelper() != nil)
if (linked_flag->GetPowerHelper() != nil)
{
FatalError("Flags in the same network have different power helpers.");
}
linked_flag->SetPowerHelper(helper);
}
}
@ -259,6 +258,17 @@ public func Init()
}
// Definition call: Create a new network and add it to the list of networks.
// Can be a neutral network, if desired.
private func CreateNetwork(bool neutral)
{
var network = CreateObject(GetPowerSystemNetwork(), 0, 0, NO_OWNER);
PushBack(LIB_POWR_Networks, network);
network.lib_power.neutral_network = neutral;
return network;
}
// Definition call: Get the type of network helper object to create.
// You can overload this function if you want to use a different
// power system network helper object.