Es sind nicht ganz so viele Einträge. Man muss 16 Formationen erstellen.
Derzeit habe ich 8 fertig, womit ich die Einheiten auf der linken Kante nach Norden blicken lassen kann. Es sieht auf jeden Fall sehr lustig aus
Jetzt bräuchte ich noch 8 für die entgegengesetzte Blickrichtung. Durch geschicktes Vertauschen kann man die Einträge dann bei den anderen Kanten wiederverwenden.
Es gibt derzeit CvUnit::getFormationType(), was, für Civ4 ungewöhnlich, einen Pointer auf einen char-String zurück gibt.
setFormationType(...) gibt es noch nicht. Die kann man aber leicht ergänzen. Intern braucht sie in einer member-Variable eigentlich nur einen Pointer zu speichern.
Ändern sollte man die Formation an den Stellen an denen die Blickrichtung der Einheit angepasst wird.
Das ist zum einen setFacingDirection(...) und zum anderen setXY(), in der die member-Variable an setFacingDirection vorbei geändert wird.
Ich melde mich erst wieder, wenn ich etwas Code fertig habe.
Ich will die Idee mit den Flüssen mal bis zu Ende denken und dann etwas mit folgenden Eigenschaften kreieren:
1. Einheiten wechseln beim Betreten des Flusses in einen Flussmodus. Danach sind nur noch Flussmündungen, Städte, Festungen und die an den Fluss angrenzenden Felder als valide Plots erlaubt. D.h. man muss die Einheit erst wieder auf ein normales Feld ziehen, um andere Flüsse betreten zu können. (Hoffe, die KI kommt damit klar
)
Flüsse die ins gleiche Feld münden, müssen als gleicher Fluss gelten, weil der Spieler beim Ziehen nicht für einen der beiden entscheiden kann. (Man denke an ein Feld mit Flussmündung auf Ost- und Westseite.)
2. Die Schiffe ziehen entlang von Kanten. (Leider wird die Animation quer durchs Land gehen wenn man mehrere Felder weit zieht.)
Hier sehe ich Schwierigkeiten beim Anpassen des Pfadsuche-Algorithmus. Ohne Anpassung wird man bei "Schleifen" im Fluss zwischen benachbarten Feldern springen können und damit den Flussbogen abkürzen.
3. Möchte man eine andere Kante des gleichen Feldes erreichen muss man auf das Feld auf der gegenüberliegenden Seite der Kante drücken (Stolperstein sind angrenzende Wasserfelder.)
Wie geschlossene Grenzen, Krieg oder Einheitenkämpfe aussehen könnten weiß ich noch nicht genau.
Außerdem kann ich die Flagge und den Selektionskreis der Einheiten mit den bekannten Mitteln nicht beeinflussen.