summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan <>2016-03-09 22:17:36 +0100
committerJan <>2016-03-09 22:18:14 +0100
commite0f54dc408b9f2948cb78100d324aaefd1600cd3 (patch)
tree8bb671ae04ab66898decc050faef11a15f24fa19
parent29726293c49ba1c3a4bd6d5c9ab09a1f6942ad1d (diff)
downloadtempelschubsen-e0f54dc408b9f2948cb78100d324aaefd1600cd3.tar.gz
tempelschubsen-e0f54dc408b9f2948cb78100d324aaefd1600cd3.zip
Add verification functions for debugging
Add VerifyHostileSortDistance(int player) and VerifyHostilityAllVsAll()
-rw-r--r--TemplePushing.c4s/System.c4g/Debug.c53
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;
+}