diff options
Diffstat (limited to 'TemplePushing.c4s/System.c4g')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/Debug.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/Debug.c b/TemplePushing.c4s/System.c4g/Debug.c new file mode 100644 index 0000000..f0cd420 --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Debug.c @@ -0,0 +1,53 @@ +#strict 2 + +global func VerifyHostileSortDistance(int player) +{ + var crew = GetCrew(player); + var searchResult = crew->FindObjects( + Find_OCF(OCF_CrewMember | OCF_Alive), + Find_Hostile(player), + Sort_Distance(crew->GetX(), crew->GetY())); + + var isOrdered = true; + var namesMsg = "[", distancesMsg = "["; + var prevObj, prevDistance; + for (var obj in searchResult) + { + // Update messages + var prefix; if (prevObj) prefix = ", "; else prefix = ""; + namesMsg = Format("%s%s%s", namesMsg, prefix, GetPlayerName(obj->GetOwner())); + var distance = crew->ObjectDistance(obj); + distancesMsg = Format("%s%s%d", distancesMsg, prefix, distance); + + // Check if searchResult is in wrong order + if (prevObj && distance < prevDistance) isOrdered = false; + + // Use current object and distance as previous values for next object + prevObj = obj; + prevDistance = distance; + } + namesMsg = Format("%s]", namesMsg); + distancesMsg = Format("%s]", distancesMsg); + Log("%s -> %s", namesMsg, distancesMsg); + + return isOrdered; +} + +global func VerifyHostilityAllVsAll() +{ + var verified = true; + for (var i = 0; i < GetPlayerCount(); ++i) + { + for (var j = 0; j < GetPlayerCount(); ++j) + { + if (i == j) continue; + var plrA = GetPlayerByIndex(i), plrB = GetPlayerByIndex(j); + if (!Hostile(plrA, plrB, true)) + { + verified = false; + Log("VerifyHostilityAllVsAll: %s is not hostile to %s", GetPlayerName(plrA), GetPlayerName(plrB)); + } + } + } + return verified; +} |
