Siedler 3 - Lobby Preview
Die letzen Tage habe ich wieder viel mit Siedler 3 verbracht. Allerdings nicht mit Spielen, sondern mit Reversing und Coding.
Durch einige Tricks habe ich es geschafft, einzelne UI Elemente zu “kontrollieren” und Aktionen mit ihnen durchzuführen, die eigentlich nur nach einem Mausklick auf das jeweilige Element erfolgen. Denn die “neue” Lobby wird über das LAN-Menu laufen, nur dass der Bildschrim komplett ersetzt wird. Um aber ein Spiel aus dem LAN-Modus zu starten, sind folgende Schritte notwendig:
- Spieler klickt auf den Adapter in der ersten Listview (DirectPlay Adapter)
- Spieler klickt in die Textbox und gibt die IP des Hosts ein
- Spieler klickt auf “Suche Spiele” -> Spiele werden angezeigt
- Spieler wählt ein Spiel aus der Lisview aus
- Spieler klingt auf “Mitspielen”.
Diese 5 Schritte kann ich nun per Programmcode aufrufen, auch wenn es noch nicht immer klappt (Bei einem Fehlerdialog hängt sich das Programm auf, da dieser eigentlich nicht vom UIThread aufgerufen wird etc).
Das bedeutet, dass einer neuen Lobby nun nichts mehr im Wege steht. Oder doch? Die eigentliche UI für die Lobby muss ja noch geschrieben werden. Und dabei kann (wegen des alten GDI standarts, leider nicht mal GDI+) auch keine UI Library verwendet werden. Selber schreiben heißt die Devise! In den letzten Tagen habe ich daher einige Basis UI Klassen angefertigt (TextLabel, Button, ListView) um daraus eine Lobby zu konstruieren. Das Resultat: