forked from Mirrors/openclonk
PowerSystem: Network creation as a function
parent
28b22c6c62
commit
0c148530a6
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue