Ich habe bereits vor einige Zeit mit AGS 3.4 experimentiert. Ich weiß, Beta und so. Kann aber trotzdem nicht schaden, sich die Version schon mal anzusehen.
Bei 3.4 wurden wieder größere Änderungen vorgenommen, die es nötig machen die SPs wieder abzudaten.
Insgesamt gibt es drei Problemstellen:
1. Die Syntax von ProcessClick() wurde verändert.ProcessClick() heißt nun Room.ProcessClick(). Da die Anzahl und Reihenfolge der Parameter nicht verändert wurde ist dieses Problem eine Sache von Sekunden und kann von jedem selbst vorgenommen werden.
2. FaceDirection ist nun ein interner Befehl von AGS.FaceDirection war ein Befehl, der von LucasFan/Proscito (wer auch immer das Script damals erstellt hat) selbstgeschrieben wurde. Ab 3.4 bringt AGS diese Funktion selbst mit, was unsere Funktion überflüssig macht.
Da der AGS-interne Befehl exakt die gleiche Schreibweise verwendet, erzeugt unsere Definition nun eine Fehlermeldung (AGS erlaubt das Überladen von Funktionen nicht). Die Funktionsdefinition kann einfach entfernt werden, das eigentliche Problem sind diesmal die Parameter: Anstelle von "eDir[X]" schreiben sich die internen Parameter "eDirection[X]".
2.5 EnterRoom ist nun überflüssig.Der Sinn von EnterRoom war es, den Raumwechsel und FaceDirection in einen Befehl zusammenzufassen. Da FaceDirection jetzt standmäßig vorhanden ist, wurde ChangeRoom um einen optionalen Richtungs-Parameter erweitert. Die gesamte Funktionalität von EnterRoom fließt in ChangeRoom ein, womit es für die Verwendung von EnterRoom keinen Grund mehr gibt. Zusätzlich ist ChangeRoom dynamischer, da es einer beliebigen Anzahl von Argumenten funktioniert, wohingegen EnterRoom stehts drei Argumente erwartet.
3. Das Türensystem funktioniert nicht mehr richtig.Das Türensystem nimmt für jede Türenseite nur eine Richtung entgegen, die irgendwie "umgedreht" werden, wenn man auf der anderen Seite steht. Ich habe nicht heraus gefunden (Dokumentation, anyone?) wie das erreicht wird, wahrscheinlich hat es irgendetwas mit zwei Zeilen zu tun, die ich nicht verstehe.
Aufjedenfall funktioniert das System nicht mehr. Der Charakter dreht sich immer in eine falsche Richtung, wenn er Türen von der anderen Seite anläuft.
Mein Lösungsansatz hier wäre eine Funktion zu schreiben, die eine Richtung vom Typ CharacterDirection (neuer Datentyp) entgegen nimmt und dann die entgegengesetzte Richtung zurückgibt. Diese kann dann in ClickDoor benutzt werden, um den Charakter entsprechend drehen zu lassen.
Zu 2. bin ich noch etwas unschlüssig. Es ist machbar, dass die alten Funktionen und Parameter weiterhin verwendbar sind. Gemessen daran, wieviele Leute selbst nach 10 Jahren (!) noch DisplaySpeech und co. verwenden halte ich einen "radikalen Schnitt" doch für sinnvoller.
Wer sich ein Bild von allem machen will: Im Wendy-SP-Repositry ist ein zusätzlicher Branch, der alle Änderungen enthält:
https://github.com/ManiacMansionMania/Wendy-SP/tree/rule34Das playerExtend-Modul heißt jetzt legacyExtensions, da es keine Funktion mehr erfüllt, außer Kompatiblität zu Legacy Code bereitszustellen. Wenn man standardkonform scriptet, ist es gefahrlos entfernbar.