VWF Helpertool - Programmierung & Bug Report

  • Bredator
    Klasse das du dich meinem Problem annimmst. Und das das dann auch noch so schnell geht, echt super!
    Wenn du noch Infos von mir brauchst, sag bescheid.
    Hier mal ein Screenshot von der Font (die große für die Dialoge).
    Die komprimierten Sachen wie "ti", "fi", "tl" usw. werden als normale Buchstaben gedumpt, also kein Problem. Ich müsste speziell für FFV die Längen von folgenden Sachen eingeben können: Großes Alphabet, kleines Alphabet, Zahlen, Umlaute groß/klein, ß, Satzzeichen (. , ! ? : ; ( ) / - ' " ) und Leerzeichen. Evtl sollten aber mehr Satzzeichen möglich gemacht werden um das Tool universell zu gestallten. (Apostroph und Anführungszeichen habe ich in der rom mehrere, das kommt aber wegen der Amerikanische Schreibweise, die Spiegelverkerten gibt es im deutschen nicht)


    Wie wirst du die die Möglichkeit gestallten die Pixelbreite einstellen zu können? Wird das im Programm einstellbar sein oder wird dafür eine Art tbl geladen in dem man die Breite eingibt? Wenn ich das richtig gesehen/verstanden habe lässt du die zu langen Zeilen in rot anzeigen. Eine gute Idee. Könntest du den Pixel-Wert der Zeilen auch als Zahl anzeigen lassen?
    Und wie SinaP schon geschrieben hat, ein Editor ist nicht unbedingt nötig. Die eigentliche Ausbesserung werde ich im Texteditor vornehmen.


  • Geplant war zunächst eine schlichte Table, bei der zu jedem Zeichen die Zeichenbreite angegeben wird. Kann man natürlich auch über eine Eingabemaske machen, wäre dann der nächste Schritt. Alle Zeichen, die im Table angegeben werden, werden auch bei der Berechnung berücksichtigt. Hier muss momentan halt mit den Codewerten gearbeitet werden für die Eingabe (AltGR + Numblock), Verbesserungen sind hier natürlich möglich.


    Vorgegangen wird im Programm momentan folgendermaßen:
    - Textdatei laden
    - Table laden
    - Zeilenbreite angeben
    - "Go"-Button drücken


    Zu lange Zeilen werden dann in Rot angezeigt, vor der Zeile wird in Klammern die Zeilenbreite angegeben. Momentan bin ich noch mittendrin, alles soweit umzusetzen, das meiste ist aber schon fertig. Im Laufe des Tages sollte das Tool benutzbar sein ;)


    Edit: Eine Liste mit Ignorezeichen wird auch noch irgendwie eingebunden. Damit kann man dann die Zeilen, die mit >H< oder sonstigen Zeichen beginnen, ausblenden.

  • Edit: Eine Liste mit Ignorezeichen wird auch noch irgendwie eingebunden. Damit kann man dann die Zeilen, die mit >H< oder sonstigen Zeichen beginnen, ausblenden.


    Das währe dann speziell auf meinen Dump bzw. die art wie ich den Text gedumpt habe angepasst. Muss aber auch nicht sein. Wenn er mir die Pixelbreite der Zeilen mit [>Pointer XY<] oder >H<01 anzeigt ist das ja nicht schlimm, die brauche ich ja nicht beachten. Der Dump bzw. Text könnte bei jemand Anderem anders aussehen, die >H< und >Pointer< Zeilen kommen nur zu stande da ich mit SNESedit gearbeitet habe.


    Eine Eingabemaske zum eingeben der Breite währe nice.
    Ich habe jetzt gerade mal die Breite der Font abgezählt. Hier das Ergebniss: (Leerzeichen und Bindestrich editiere ich hier gleich noch rein)

  • So, hier mal was auf die schnelle zusammengezimmertes. Sollte mit deinem tbl laufen, sobald du Werte für Leerzeichen und Bindestrich
    angegeben hast. Ansonsten viel Feedback geben, dann kann ich da noch viel machen. Ist jetzt zum Teil noch auf dich zugeschnitten, universeller
    wird es aber noch. Source folgt auch noch, sobald ich die ausstehenden Punkte fertig habe.

    • Offizieller Beitrag

    Weltklasse in welch einer kurzen Zeit du so etwas zusammen gebaut hast ^^
    Wenn der Source wirklich veröffentlicht wird und das Teil wirklich universell wird ist es ein echter zugewinn für SNESEdit denn genau das fehlt beim Inserten ob mit Hand oder automatisch ich hoffe Sini wird es berücksichtigen wenn er die neue GUI fertig hat und dann Luft für Erweiterungen hat :)


    EDIT: Dein Tool hilft wirklich allen und nicht nur Mi...


    DANKE Bredator

  • Immer diese Anspielungen ...
    Es gibt doch denn Bug-Tracker. Schreib es als Feature rein.
    Mit etwas guten Willen und Kaffee kann man die Breite und Höche beim Tile-Malen gleich rausfummeln und als Datei verewigen.
    Irgendeine Taste zum automatisch Einlesen wird sich schon Finden lassen, zur Not auch ein Knopf ...

  • @ Bredator - leg bitte mal 'ne "leere" TBL dazu, dann geht das Testen / benutzen schneller (ich hoffe sie ist identisch mit der von SnesEdit - blos, dass als Entsprechung nicht das angezeigte Zeichen sondern die Pixel-Anzahl hin kommt - wäre gut für DTE/MTE).
    Ja, wie ich sehe, hast du nicht die Hex-Werte als Pixel-Breite - sondern die einzelnen Zeichen - ist im Prinzip egal, auch bei DTE / MTE -
    nur nicht bei meiner Variante -> ich habe die übrigen leeren Stellen für "al", "bl", "cl", "dl", "el", "ai", "bi", "ci", "di", "ei", genommen.
    Es sind dann für z.B. "al" andere Hex-Werte - und auch eine andere Pixelbreite als "a" und "l".
    Und mach einen Button Info rein. Sonnst kannst du am Ende nichts mehr weiterentwickeln, weil es plötzlich ein fremdes Copyright hat :D .


    @ SinaP - könnte aber auch sein, dass "Anspielungen" manchmal einfach sein müssen ...
    "Es gibt doch denn Bug-Tracker. Schreib es als Feature rein."
    Wozu denn, wenn du's hier schon gelesen hast :whistling:

  • So, hier mal noch ne Version mit TableEditor und Infofeld. Morgen bin ich noch anderweitig an Projekten dran und kann erst im Laufe der nächsten Woche an dem Tool wieder weitermachen. Ich hoffe, man kann damit schon halbwegs arbeiten ;)

  • Braucht noch eine Ausnahme-Behandlung, falls mal ein Trottel gleich zuerst auf den Button "Anzeigen" klickt. :D


    Außerdem habe ich in LoM 6 Sonderzeichen - u.a. Note und Herz, die ich dann im Text so als Bild anzeigen lassen kann.
    Wenn die Tbl. also neben Buchstaben usw. auch Hex-Werte (wenigstens 1-Byte) annehmen würde,
    die man dann mit der Pixelbreite verknüpft wäre das vieeel besser.


    Und für Fortgeschrittene:
    LoM macht selbst einen Zeilenumbruch. (ist in Spielen gar nicht so selten)
    Man hat aber insgesamt nur 3 Zeilen zur Verfügung.
    Es reicht also nicht die Zeilenbreite mal 3. :evil:
    Wenn dein Tool irgendwann mal im Text einen Zeilenumbruch machen kann
    (man müsste wohl auch definieren können, ob nur beim Leerzeichen - sonst ist es nicht universell)
    und dann noch die 3 Zeilen anzeigt, (oder auch 4 - man sieht ja dann, was los ist)
    das wäre wie der 8. Januar.

  • Sooo :D
    Hab das gute Stück jetzt mal ausprobiert (nach dem ich net framework 4 instaliert hab).
    Erst mal musste ich kapieren das ich die Reihenfolge einhalten muss wie ich das lade. Jetzt hab ich ein tbl erstellt und versucht einen Textdump zu starten. Leider mit mäßigen erfolg. (Unbehandelte Ausnahme in der Anwendung)
    Im ersten Pointer zeigt er mir eine Zeilenlänge von 272 Pixel an, was aber nicht sein kann. Beim zweiten Pointer ist Schluss und es wird nichts mehr angezeigt.


    Hier mal einen Textdump + tbl

  • Er muß erkennen was in Klammern ist und was Text ist.
    Zwischen >H< Überspringen oder gleich 0.
    Zwischen [>bla<] Überspringen oder gleich 0.
    Zwischen (bla) Überspringen oder gleich 0. Wenn am Ende der Zeile, sonst ist es Text aus Spiel.
    Zwischen [bla] Überspringen oder gleich 0.


    Bei SnesEdit. Bei/Für andere/n Programme/n dann andere Sachen beachten.

  • mi213


    Fehler gefunden... Umlaute (und Eszett) haben im Table komplett gefehlt, dann fliegt das Ding weg. Hatte den Fehler schonmal auf dem Zettel, aber der ging verschütt ;) Werde das so lösen, dass ich, nachdem Table & Text geladen wurden, einen schnellen Vergleich mache und prüfe, ob alle Zeichen des Textes auch im Table vorhanden sind.
    Außerdem war ein Fehler in deinem Table (kleines W war zweimal vorhanden, dafür kein kleines x). Hab das alles noch in den TableEditor mit aufgenommen.
    Exceptionhandling ist etwas, was noch kaum vorhanden ist. Das mache ich, wie gesagt, im Laufe der Woche dann. Hab die Umlaute noch ergänzt, sollte jetzt eigentlich gehen.

  • Er muß erkennen was in Klammern ist und was Text ist. ...


    Daher dachte ich, man definiert die Pixelbreite von Hex-Werten.
    Dann kann man alle überflüssigen Zeichen eine Breite zuweisen. Glücklicherweise stehen sie ja in separaten Zeilen.
    Das wäre gut für einige Ausnahmen, die so auftauchen - weiter oben beschreeiben.


    Anmerkung: Die Variannte braucht halt in der TBL 2 Entsprechungen für den Hex-Wert.
    1. Was soll in Textfenster angezeigt werden.
    2. Pixelbreite.

  • Ich habe mich jetzt mal intensiv mit dem Tool beschäftigt und scheiße, ich muss sagen das ist echt genial!!! Ich hatte mir ja im Vorfeld ein paar Gedanken zu solch einem Programm gemacht und das was du da in der kurzen Zeit zusammen gebastelt hast kommt meinen Vorstellungen erschreckend Nah. Eigentlich ist es exakt so geworden wie ich es mir vorgestellt hatte. Fetten Dank noch mal dafür! :thumbup:


    Ich musste jetzt noch etwas rumprobieren bis ich die ganzen Pixel gebändigt hatte. Erstmal hatte ich mich mit meinem ersten tbl vertan da ich für jedes Zeichen die doppelte Pixelanzahl angegeben hatte. Das hab ich jetzt gefixt. Dann ist da noch ein kleiner Denkfehler aufgetaucht bei der Kombination von Leerzeichen und "Pixel zwischen Buchstaben". Letzderes bedeutet ja nur das zu jedem Zeichen (in meinem Beispiel) ein Pixel dazu gerechnet wird. Achtung, jetzt wirds kompliziert: Zwischen zwei Wörter (also das Leerzeichen) hatte ich 5 Pixel. Davon musste ich aber noch den einen Pixel abziehen der vom letzdem Buchstaben des ersten Wort dazu kommt und einen Pixel der vom Leerzeichen selber dazu gerechnet wird. Somit ist das Leerzeichen nicht 5 Pixel sondern nur 3 Pixel breit. :wacko:


    Ich habe jetzt das ganze noch ein paar mal gegen gecheckt, Pixelbreiten auf Screenshots abgezählt, Pixelbreiten mit Hilfe der tbl und einem Taschenrechner selber zusammen gezählt und mit dem tool verglichen und es passt nun alles exakt!


    Ein paar Sachen die mir noch eingefallen sind für die nächste Version:
    - Englische Sprache (optimal in einem Setting-Menüpunkt umstellbar (deutsch, englisch)) um das tool auch für die internationalen Hacker interessant zu machen
    - Eingabemöglichkeit für "Kritische Zeilenlänge in Pixel" hinzufügen, Zeilen sollten in gelb eingefärbt werden
    - Die Ignorliste (>H<xy, [>Pointer xy<]) die im Moment aktiev ist und speziell für mein Dump (bzw. Dump mit SNESedit) angepasst ist, in einem Setting-Menüpunkt ein/ausschaltbar machen (damit es nicht zu Verwirrung kommt wenn ein Dump anders ausschaut)
    - Wenn am Ende einer Zeile noch Leerzeichen stehen, sollten diese ignoriert werden können (Funktion im Setting-Menü ein/ausschaltbar)


    Freue mich schon darauf wie das Tool in der Final Version ausschauen wird bzw. Funktionen bietet. Ist auf jeden Fall schon mal eine enorme Erleichterung beim arbeiten mit vwf Games.