Arbeit mit Scripttexturen / Zugriffsverletzungen

Willkommen in der OMSI-WebDisk!
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet: = Englisch [EN], = Deutsch [DE], = Französisch [FR]. Wenn du die angegebene Sprache nicht beherrschst, schreibe auf Englisch!
  • Hallo zusammen,

    seit einiger Zeit sitze ich an der Umsetzung eines LAWO Sicma-Controls für OMSI. Den Screen hierzu will ich ähnlich einer Matrix mit Scripttexturen umsetzen. Grundsätzlich scheint das Script zu laufen, es hakt jedoch sobald ich versuche, Fonts in die Scripttextur mit einzubinden. Diese werden auf der Scripttextur nur sehr selten, fast schon zufällig angezeigt (d.h. für mich grundsätzlich kan OMSI den Font finden), meist sieht es jedoch aus, als wären da gar keine Zahlen. Dazu kommen in der Logfile Zugriffsverletzungen, aber nicht, wie man sich denken würde, eine vollgespamte Logfile, sondern nur vereinzelte Einträge. Daraus schließe ich, dass der Fehler nicht im Frame-Script, sondern in einem puktuellen Macro liegt (in diesen wird auch mit Fonts gearbeitet, in den Triggern hingegen nicht, weshalb ich diese ebenfalls ausschließen würde), jedoch sind zumindest meine 2 Augen zu blind einen Fehler zu finden.


    Hier mal 2 Beispiels-Zugriffsverletzungen. Meine Vermutung ist, dass diese passiert, sobald ich den Zielcode verändern will (d.h. zahlen höher/niedriger mache).

    Code
    300 00:12:59 -  -   Error:           Zugriffsverletzung bei Adresse 005D6C37 in Modul 'Omsi.exe'. Schreiben von Adresse 2D31C820: P.TL: 8
    301 00:13:05 -  -   Error:           Zugriffsverletzung bei Adresse 005D6C37 in Modul 'Omsi.exe'. Schreiben von Adresse 484C10C0: P.TL: 8


    Und im Folgenden nun die Macros, doch zuerst dessen Funktionen grob erklärt. Das reinladen von Bitmap-Texturen funktioniert übrigens Problemlos, kann also eigentlich auch als Fehlerquelle ausgeschlossen werden. (in den Fett hervorgehobenen vermute ich ein Problem)


    sicma_zahlentasten: wird jedes mal beim Drücken einer der Tasten "+1000"/"-1000"; "+100"/"-100" ect. ausgelöst. Das scheint grundsätzlich auch zu funktionieren (d.h. ich kann Zielcodes korrekt einstellen), jedoch funktioniert eben die Anzeige des Codes auf dem Display nicht.


    sicma_display: wird zur erneuten berechnung des Displays ausgelöst (d.h. bei jedem Druck eines Buttons)


    sicma_reset: Resettet die Scripttextur bevor sie neu beschrieben wird


    sicma_zielcode: soll den Zielcode groß aufs Display schreiben, während dieser eingestellt werden kann (deshalb jede Ziffer einzeln)


    sicma_liniennr: selbiges für die Liniennummer


    sicma_suffix: selbiges für's suffix


    sicma_zielcode_klein: eine kleine Zielcodeanzeige auf dem Zielanzeigescreen


    sicma_zielanzeige: Soll später das Matrixziel anzeigen, vorerst jedoch nur testweise die Liniennummer.


    sicma_zielcode_refresh: Berechnet die Codes aus den eingaben der 1000er, 100er, 10er und 1er-Stelle.


    Noch eine Randinfo: ich verwende für das 134x136px große Display zwecks besserer Darstellung pro eigentlichem Pixel 8 Scripttexturpixel (also 1072x288, die Scripttextur hat 2048x512), sämtliche Grafiken & Fonts sind auf diese Größe angepasst. Macht zumindest bei den gelegentlich zu sehenden Zahlen und den Bitmaps auch keine Probleme.


    Nun die Macros im Script (auf Anfrage würde ich auch mehr zur Verfügung stellen, wenn dies der Lösung des Problems dient).



    Ich würde mich sehr über fachkundige Hilfe freuen!


    LG Niklas

    Einmal editiert, zuletzt von der_Nik_ ()