04.10.2017, 18:04
(04.10.2017, 11:29)Obi-Wahn schrieb: Vielen Dank, Mirko! Vielleicht lockt dein Fehlerbericht HenneNWH mal wieder hier ins Forum.
Ich muss ja auch zugeben, dass ich die Build-Umgebung momentan nicht bereit stehen habe und auch erst mal alles wieder einstellen müsste.
Ich habe BrightEyes bisher immer mit der Version 1.2.13 von SDL kompiliert. Neuere Versionen ergaben früher immer Bugs und Fehler. Welche Version benutzt du?
Gerne doch! Ich konnte ein paar der Fehler (jetzt, wo ich debuggen kann) auch schon analysieren und habe mir teilweise schon mögliche Lösungen überlegt.
Die Punkte 1 und 3 sind grundsätzlich ähnlich. Die Auswahlbox gibt -1 zurück, wenn man abbricht und das wird in beiden Fällen nicht sauber ausgewertet. Bei den positiven Eigenschaften im Generator müsste man den Rückgabewert aufgrund des Datentyps mit 0xffff statt mit -1 vergleichen, wie es bei den negativen Eigenschaften auch schon gemacht wird.
Beim Odem Arcanum ist die Sache komplizierter. Bisher (und vermutlich auch im Originalcode) wird der Rückgabewert ungeprüft verwendet um einen Index in das Inventar des zaubernden Heldens zu berechnen. Wenn dort aber -1(bzw. 0xffff) verwendet wird, schaut das Programm natürlich daneben. Eine mögliche Lösung hier wäre, die Auswahlbox solange wieder zu öffnen, bis wirklich etwas ausgewählt wurde (die Astralenergie ist beim öffnen der Box sowieso schon verbraucht). Das klappt aber nur, wenn der Held auch Gegenstände hat, also müsste man das noch prüfen und notfalls die Entsprechende Nachricht ausgeben. Lokal habe ich das so schon bei mir eingebaut. Den Code kann ich entsprechend hier reinstellen, wenn diese Vorgehensweise sinnvoll erscheint. Die Inventarprüfung und Fehlermeldung habe ich dabei aus der Inventarauswahlbox herauskopiert und angepasst. Es kann natürlich sein, dass es dafür bessere Varianten gibt oder ich allgemein einen falschen Lösungsweg gewählt habe. Mir fehlt da definitv noch der Überblick, wie einige Dinge zusammenhängen oder gedacht sind .
Der Absturz bei der Frage nach den Informanten liegt daran, dass die entsprechende Funktion zum auslesen der Wohnortbeschreibung einen Zeiger zurückgibt, der dann bei der Formatierung der Ausgabe zu einem Zugriffsfehler führt. Vielleicht haben die falschen Strings in Oberorken und der Absturz auf dem Schiff ähnliche Gründe.
Bei SDL habe ich die 1.2.15 genommen. Aber die Probleme treten auch mit den von Dir mitgelieferten Dlls und der entsprechenden Exe auf.