Beiträge von Dragonsphere

    Tyrian ist sowieso eines der Spiele mit den vielfältigsten (Fun-)Cheats und Eastereggs. Da ist doch wirklich alles drin, vom normalen Godmode und Geld-Cheat über versteckte Schwierigkeitsgrade bis zum versteckten Minigame Destruct. :)

    Dazu noch der Weihnachtsmodus und sogar in der Jukebox gibt es Tastenkombinationen für lustigen Blödsinn.

    Da sie jetzt läuft, will ich euch die Beta 1.3 nicht länger vorenthalten:


    32 Bit Version HL-Editor beta 1-3 (x86).zip komplett mit den 32 bit Qt-Dlls


    64 Bit Version HL-Editor beta 1-3 (x64).zip nur die exe


    Nochmal kurz Rückmeldung vom Testen: Wenn ich z.B. auf Map 62.fin (WATER glaube ich) versuche, die Mapsize von ursprünglich 40x40 auf 40x32 zu ändern, crasht das Programm oder ab und zu zeigt es auch "Memory allocation error!" an.

    ist behoben


    Mir war beim Testen noch aufgefallen, dass man aktuell, so glaube ich, keine Einheiten aus einem Depot/Fabrik/HQ entfernen kann.

    Jetzt kannst du sie mit einem Rechtsklick wieder rauswerfen :)


    Außerdem funktioniert jetzt der Cancel-Button bei der Auswahl des Spielverzeichnisses und wenn man die Skalierung anders einstellt, werden jetzt auch die Child-Windows direkt neu skaliert und aktualisiert.

    Jemand eine Idee?

    C++ Debug vs. Release hat ein paar unterschiede, z.B. dass Variablen in Release NICHT mit 0 initialisiert werden. Da kann es viele Probleme geben...

    Guter Hinweis. Danke. :)

    Aber eine falsch initialisierte Variable dürfte sich doch bei 64 Bit Code nicht anders auswirken als bei 32 Bit....


    Ich bin inzwischen auch etwas weiter und meine Überlegungen gingen dabei in eine ähnliche Richtung:

    Das eine Anwendung ohne Fehlermeldung einfach geschlossen wird, tritt ja auch gerne auf, wenn irgendwo in nicht korrekt reservierten Speicher geschrieben wird.

    Da der Debugger ja seine Daten zusätzlich auf dem Stack ablegt, überschreibt man im Debug-Modus dann nicht so leicht wesentliche Dinge, wie in Release. Könnte also auch passen.


    Etwas testen mit einer an unterschiedlichen Stellen eingefügten Messagebox ergab dann auch, dass die 32 Bit Release-Version beim Entpacken der Dateien von History Line abschmiert.

    Also habe ich testweise mal die Größe des von "Unpack_file" per malloc reservierten Speichers erhöht uns siehe da, es läuft. Es reicht sogar ein zusätzliches Byte beim Puffer für die entpackten Daten.


    Finde das aber immernoch einen sehr merkwürdigen Fehler. Der betroffene Code läuft unter DOS und als 64-Bit Code wunderbar, nur unter 32 Bit braucht es ein zusätzliches Byte bei reserviertem Speicher.

    Das ist doch seltsam...

    Ich habe ein ganz seltsamen Fehler, wenn ich einen 32 Bit Release erstellen möchte.

    Also, ich habe mir zusätzlich zur 64 Bit auch die Deskop Qt 5.15.2 MSVC2019 32bit als zweites Kit installiert. Erstelle ich damit nun ein Debug Profil, läuft alles wie es soll. Wähle ich aber Release, erstellt er mir zwar ebenfalls alles ohne Fehler oder Warnungen und das Programm startet, bricht aber beim Erstellen einer neuen Karte oder beim Laden einer Karte einfach ab bzw. wird einfach geschlossen. Egal, ob ich es aus dem Qt Creator oder direkt die exe ausführe. Versuche ich es im Qt Creator zu debuggen, läuft es wieder tadellos - auch als release....


    Jemand eine Idee?

    Wir hatten uns hier im Thread darauf verständigt, den Editor zunächst für Windows/Linux umzusetzen.

    Ich habe aber großes Interesse, später auch eine DOS Version hinterherzuschieben.

    Die bisher hier geposteten exe-Dateien sind für WIndows und 64 Bit.

    (Geschrieben und kompiliert habe ich das Programm unter Windows 10 x64 und bisher nur mit der 64-Bit Version von Qt 5.15.2 erstellt).


    Ich werde nachher mal versuchen, eine 32 Bit Version zu erstellen.

    Mega! Mir war beim Testen noch aufgefallen, dass man aktuell, so glaube ich, keine Einheiten aus einem Depot/Fabrik/HQ entfernen kann.

    Man kann sie durch andere ersetzen, aber eine Art leeren "Platzhalter" gibt es noch nicht, oder? Ich kann es von der Karte entfernen und neu setzten, dann wäre es wieder leer.


    Vielen Dank Dir!

    Stimmt... jetzt fällt es mir auch auf.

    Also Vorsicht! Was man sich in die Garage stellt, bekommt man nur mit der Abrissbirne wieder raus. :D


    Werde ich bei nächster Gelegenheit angehen.

    Ich habe gestern noch ein bisschen Zeit gefunden und gerade eine neue Version (Beta 1.2) bei github hochgeladen (auch die exe datei).

    Da sind jetzt auch schon einige der Rückmeldungen von tbc21 berücksichtigt.


    • Unter dem Punkt "Save" gibt es jetzt auch "Save as.." im Menü. Eine bereits einmal gespeicherte oder zuvor geöffnete Datei, wird bei "Save" erneut unter dem gleichen Namen gespeichert. Ohne Abfrage o.ä.
    • Beim Karten bauen könnt ihr also einfach auch mit Strg+S "schnellspeichern". "Save as..." fragt immer nach einer Auswahl oder Eingabe eines Dateinamens, "Save" nur beim ersten Speichern einer ganz neu erstellten Karte.
    • Bei "Save as..." eingegebene Dateinamen werden automatisch um die Endung (.fin) ergänzt, wenn diese fehlt.
    • Beim Beenden u.ä. wird jetzt auch auf nicht gespeicherte Änderungen hingewiesen und gefragt, ob diese noch gespeichert werden soll.
    • Der Name der aktuell markierten Einheit steht jetzt unten im Auswahlfenster der Einheiten.
    • Unter "Add map to game" eingegebene Levelcodes werden nun geprüft, ob diese auch aus fünf Buchstaben bestehen und nur gültige ASCII-Zeichen enthalten, damit sie auch mit dem Spiel funktionieren.
    • Ich habe jetzt (hoffentlich abschließend) den Fehler mit den fehlenden Gebäude/Transporteinheit-Datensätzen bei einigen Karten behoben.
      Prinzipell behandelt das Spiel Transporteinheiten wie Gebäude, anscheinend aber mit einer Ausnahme: Transporter sind nur in den SHP-Dateien gespeichert, wenn sie auch Einheiten enthalten. Bei Karten mit leeren LKW oder Truppentransportern konnte der Editor also keinen passenden Datensatz in den (originalen) Dateien finden und es kam zu Fehlern.

    Für euch auch hier die Dateien:


    Einmal die EXE der Beta 1.2:

    HL-Editor BETA 1-2.zip


    Und einmal die Qt-Dlls u.ä. für alle, die sie noch benötigen. Ich habe das jetzt mal getrennt.

    Qt Dateien.zip



    In den letzten beiden Wochen konnte ich mir recht gut Zeit für dieses Projekt frei räumen, aber in der nächsten Zeit werde ich von den anderen Dingen im Leben wieder mehr in Anspruch genommen werden. Daher wird das nächste Update wohl länger auf sich warten lassen.

    Toll wäre auch, wenn man in dem Einheitenauswahlfenster per Mouseover oder in der Statusleiste unten den Namen angezeigt bekommt.

    Infanterie und Fahrzeuge sind eindeutig, aber die Flugzeuge sind manchmal schwer auseinanderzuhalten :)

    Habe ich gestern Abend eingebaut. :) Nicht per Mouseover, aber der Name der angeklickten/markierten Einheit wird jetzt unten im Fenster angezeigt.

    Ich bastel noch an ein, zwei weiteren kleinen Verbesserungen und dann gibt's wieder ein Update.

    Bei mir ist es auch das Programmieren, was mich zurück zu DOS und echter Hardware geführt hat. Ich bastel zwar auch gerne an der Hardware und kann auch ganz passabel löten, aber den echten Kick verschafft mir das Programmieren unter DOS mit direkten Hardwarezugriffen ohne Bevormundung durch das Betriebssystems und der Herausforderung, aus oft sehr begrenzten Ressourcen und technischen Möglichkeiten das Maximum herauszukitzeln. :D Das hat mich damals schon so fasziniert und kommt in einem Emulator oder einer Virtaul Box einfach nicht so gut. Das brachte mich letztlich auch dazu, mir wieder einen DOS-PC zuzulegen.


    Einsam habe ich mich hier aber dadurch, dass ich lieber Programmiere als an der Hardware zu basteln oder zu spielen, nie gefühlt. Wir sind hier doch eine tolle Community deren Interesse bei DOS und alten Computern liegt, dass es dabei unterschiediche Schwerpunkte gibt bereichert doch sehr und ergänzt sich oft prima. Hier im Forum fand ich zum Beispiel schon immer die Möglichkeit sehr spannend, die absolut faszinierenden (Hardware-)projekte anderer mit Software unterstützen zu können. Beispiele sind da zum Beispiel die Tandy-Soundkarte von matze79, für die ich ein TSR-Programm (um auf einem PC einen Tandy vorzutäuschen) und letztlich sogar mit einem eigenen Tacker geschrieben habe, was mir viel Spaß gemacht hat und wodurch ich sehr viel gelernt habe. Zum Beispiel Portzugriffe im V86-Mode abfangen, damit hätte ich mich wohl sonst nie befasst. Auch zum Tandy hatte ich selber nie einen Bezug. Da für Soundkarten mit OPTi 929 Chip Anleitungen kursieren, dass deren Zicken durch mehrfaches Initialisieren mit unterschiedlichen Treiberversionen in den Griff zu kriegen sind, habe ich kurzerhand ein eigenes Initialisierungsprogramm geschrieben, das das umsetzt und das mitlerweise auch für mehrere sehr spannende "Eigenbau"-Soundkartenprojekte genutzt wird. Für das Projekt von @mr-edit Mars 3D, einen asiatischen Doom-Clone, zu übersetzen und mit CD und Box aufzulegen, habe ich ein neues, englischssprachiges Setup geschrieben, da sich das original nicht editieren/übersetzen ließ. Und noch so einiges mehr....


    Dabei bin ich aber auch kein alter Hase bzw. Programmierer von damals, sondern renne beim Programmieren unter DOS eher schönen Erinnerungen an ein Hobby aus meiner Kindheit/Jugend hinterher (Mein Vater brachte mir das Schreiben von komplexeren Batchdateien bei, in der Schule lernte ich später etwas Pascal und war davon so angetan, dass ich mir Bücher dazu besorgte und sie förmlich verschlang. Später brauchte ich mir dann auch etwas C bei. Mich verschlug es beruflich dann aber letztlich doch in andere Gefilde). Das Alter und damit verbunden die Zeit ist abr leider auch bei mir der limitierende Faktor hier.

    Vor ein paar Jahren, als ich hier sehr aktiv war und mich mit Freude auch an große Projekte gemacht habe, zu denen ich dann auch gerne in umfangreichen Threads hier geschrieben habe, wohnte ich alleine und hatte eine Wochenend-/Fernbeziehung. Ich konnte also an den Abenden unter der Woche problemlos und ungestört vor meinen DOS-Rechnern sitzen. Inzwischen bin ich verheiratet und Vater von zwei kleinen Kindern, meine Zeit (und Energie) für solche Projekte ist daher ein sehr sehr knappes Gut geworden.

    Der Leveleditor für Historyline ist mein erstest Projekt hier, seit die Kinder da sind und dafür die Zeit zu finden war und ist eine riesen Herausforderung für mich. Aber das ist ein Projekt, was mir seit über 20 Jahren im Kopf herumgeht, daher ist die Motivation groß. Aber ich komme nicht mehr dazu, darüber hinaus hier regelmäßig viel zu lesen oder mich einzubringen.

    Vielleicht könntest Du nach dem ersten Speichern nicht erneut den File Manager Dialog öffnen lassen, sondern direkt fragen, ob die vorhandene Datei überschrieben werden soll.


    Gibt es eine Undo Funktion, also das letzte Kommando einfach rückgängig machen lassen, z.B. mit STRG+Z?

    Ja, solche Details wie eine Undo-Funktion oder eine Prüfung beim Speichern fehlen noch.

    Mir fehlte beim Testen auch sehr eine Übersicht/Statistik der bereits gesetzten Gebäude,Einheiten und Ressourcen pro Seite.

    Und wie ich weiter oben schon schrieb, ist das Programm auch noch keinesfalls "narrensicher". Beispielsweise könnte beim Exportieren einer Karte in das Spiel auch ein Passwort mit Zahlen/Sonderzeichen vergeben werden, das dann im Spiel gar nicht eingegeben werden kann :D Im Moment wird nur geprüft, dass es fünf Zeichen sind....

    Priorität hat für mich aber erstmal, dass die Grundfunktionen des Programms fehlerfrei funktionieren. Dann kommt die Nutzerfreundlichkeit ;)


    Beim Speichern wird noch gemeckert: No data for Depot(0) found oder No Data for Transport Unit 1. Die hatte ich z.B. gar nicht angepasst oder geändert.

    Hier schreibe ich mal, wann diese Fehlermeldung auftritt: In der SHP-Datei einer Karte sind ja die Datensätze für jedes Gebäude gespeichert, allerdings einfach der Reihe nach (Karte von links nach recht und oben nach unten gelesen), separat für jeden Gebäudetyp. Gebäude nach der Reihenfolge des Auftretens auf der Karte zu nummerieren, ist für einen Editor aber ziemlich blöde, da sich mit neu gesetzten oder gelöschten Gebäuden die Reihenfolge ja ändern könnte.

    Ich bin hier daher so vorgegangen, dass beim Laden einer Karte einmal jedem Gebäudefeld (es zählt der Gebäudeeingang) der jeweilige Eintrag aus der SHP zugeordnet wird und zudem auch die Koordinaten des jeweiligen Hex-Feldes gespeichert werden. Der Editor nutzt dann im Weiteren nur noch die Koordinaten für die Verknüpfung von Feld und zugehörigem Datensatz und neue Gebäudeeinträge können einfach hinzugefügt werden.. Beim speichern der Karte kann dann anhand der Koordinaten ja problemlos wieder so sortiert werden, wie es das Spiel haben möchte. Die von tbc21 genannte Fehlermeldung wird angezeigt, wenn das Programm beim Laden oder Speichern keine Gebäudedaten mit entsprechenden Koordinaten zu einem Feld mit einem Gebäudeeingang auf der Karte findet (er bricht dann nicht ab, sondern speichert einfach ein leeres Gebäude).

    Sollte daher eigentlich nicht auftreten....


    Da auch vom Spiel nur die Felder mit Gebäudeeingang verwendet werden um ein Gebäude zu identifizieren, kann man bei der Gestaltung der Gebäude durchaus kreativ werden.

    Ein Hauptquartier muss nicht die übliche "Burg" sein, sondern kann z.B. durch die Verwendung anderer Gebäudeteile auch mehr im Stil einer Militärbasis umgesetzt werden:

    pasted-from-clipboard.png


    Funktioniert problemlos, auch bei den anderen Gebäuden :)

    Es sind plötzlich unendlich Möglichkeiten da. Ich könnte Stunden damit verbringen :saint:

    Dann weiß ich ja, wie du dieses Jahr deinen Weihnachtsurlaub verbringst :D

    Vielleicht sollten wir bald einen neuen Thread zum Austausch der selbst erstellten Karten starten! 8)

    Habe mich inzwischen in der Qt Wiki zum Thema Deployment schlau gemacht.

    Für tbc21 und alle anderen ohne Qt-Installation gibt es daher jetzt ein "Mittagspausen-Release" :)

    Aktuelle Version mit einigen Korrekturen (BETA 1.1) und allen nötigen DLLs von Qt.


    Das ist von der Qt-Lizenz her auch unproblematisch, da es sich ja bei unserem Mapeditor definitiv um ein Opensource-Projekt ohne kommerzielle Absichten handelt.

    HL Editor BETA 1-1 komplett.zip

    Muss man vorher noch eine QT runtime installieren? Bei mir werden fehlende DLLs angemeckert. QT5Gui, widget und core. Die habe ich so herunterladen können aber nun sagt er was von fehlendem QTplatform plugin.

    Ich habe es bisher noch nicht auf einem PC ohne Qt-Installation getestet. Da ich hier bei diesem Projekt zum ersten Mal Qt verwendet habe, muss ich da auch erstmal Erfahrungen sammeln und mich schlau machen.

    Aber bestimmt können die Qt Experten hier sagen, was fehlt und ob ich noch etwas hinzufügen muss :)


    Ich habe heute angefangen, ausführlicher zu testen und habe auch direkt einen miesen Bug gefunden und auch direkt gefixt. Ich hatte einen Tippfehler im Code und dadurch wurden französische Transportwagen nicht richtig erkannt und in der SHP-Datei zur Karte gespeichert. Das sorgte dann dafür, dass die Zahl der Gebäude (zu denen History Line ja auch Transporteinheiten zählt) nicht mehr mit der Karte übereinstimmte und führte so zu weiteren Fehlern. Fällt natürlich erst auf, wenn man französische LKW platziert hat....


    Ist jetzt behoben und die Dateien bei GitHub sind schon aktualisiert.

    Davon träume ich seit 1992... Fantastisch!

    Das ist ja das schöne an diesem Forum hier, hier werden Träume auch nach 31 Jahren noch Wirklichkeit :)

    Hier bekommt man die Hardware, die man sich früher nie leisten konnte, eine Beratung in einer Qualität, die damals der VOBIS-Verkäufer nie hinbekommen hätte und manchmal auch die Software, die man damals vermisst hat.


    dosreloaded.de - Where dreams come true :D

    Ich habe endlich wieder Zeit zum Programmieren gefunden und eine erste vollständige Version fertig. Ein Betatest kann also starten :)

    HL-Editor Beta 1.zip


    Noch ist es ausdrücklich eine Beta-Version! An mehreren Stellen gibt es noch keine Prüfung, ob Nutzereingaben Sinn machen bzw. vom Spiel in der Form überhaupt unterstützt werden. Bestehende Dateien werden unter Umständen auch stumpf überschrieben. Man kann also durchaus seine HL-Installation damit schrotten!

    Also lieber vorab ein Backup vom Spiel machen ;)


    So, genug warnende Worte, kommen wir zu den schönen Dingen, den Funktionen des Editors.


    Nach dem ersten Start des Programms werdet ihr direkt erstmal mit einer Fehlermeldung begrüßt werden :D

    Aber keine Panik, natürlich muss das Programm erstmal wissen, wo auf eurem Rechner die Dateien vom Spiel zu finden sind. Also Meldung wegklicken und oben auf Settings/Game Path gehen und das Verzeichnis von History Line 1914-1918 auf eurer Festplatte auswählen.


    Nun könnt ihr über den Menüpunkt File eine neue Karte erstellen oder eine bestehende Karte öffnen.


    Eigentlich ziemlich selbsterklärend oder? Hier könnt ihr über File/New eine neue Karte erstellen oder File/Open eine Karte öffnen. Der Punkt File/Save lässt euch die editierte Karte speichern und per File/Add to game lässt sie sich mit eigenem Passwort als neue Karte dem Spiel hinzufügen.


    Habt ihr eine neue Karte erstellt oder eine bestehende geöffnet, wird die Karte im Hauptfenster angezeigt und zusätzlich öffnen sich zwei weitere Fenster:

    Das Auswahlfenster für Gelände- und Gebäudeteile und analog dazu das Auswahlfenster für die Einheiten.


    Durch Linksklick bzw. Anklicken könnt ihr hier die gewünsche Kombination aus Gelände/Einheit auswählen und dann auf der Karte platzieren. Durch Rechtsklick auf eines dieser Fenster wird keine Einheit/ kein Gelände gewählt. Zum Beispiel wenn eine Einheit auf ein vorher platziertes Gelände gesetzt werden soll.


    Klickt ihr mit der rechten Maustaste auf einen Gebäudeeingang, öffnet sich ein weiteres Fenster. Hier könnt ihr Einheiten im Gebäude platzieren und einstellen, wie viele Ressourcen das Gebäude pro Runde bringen soll:


    Das war's im Grunde auch schon zur eigentlichen Steuereung/Bedienung. Unter dem Menüpunkt Edit finden sich noch weitere Funktionen:



    Resize Map

    Hier könnt ihr die Größe der Karte ändern. Da History Line sehr empfindlich auf "falsche" Kartengrößen reagiert, können hier bisher nur Größen ausgewählt werden, die es im Spiel schon gibt.

    Der bisherige Inhalt der Karte bleibt erhalten, verkleinert ihr die Karte, wird die bisherige Karte aber natürlich am Rand entsprechend beschnitten.


    Toggle summer/winter

    Hier könnt ihr wählen, ob die Karte im Sommer oder Winter spielt. Gespeichert wird das aber nur, wenn ihr sie über Add map to game dem Spiel hinzufügt.


    Flood/dry map

    Eine kleine Hilfe zum Erstellen von Seeschlachten. Hier wird Grasland (default bei neuen Karten) durch tiefes Wasser ersetzt und umgekehrt.


    Set buildbable units

    Hier könnt ihr einstellen, welche Einheiten in Fabriken gebaut werden können und welche nicht


    Show grid

    Zeichnet zur besseren Erkennung einen Rahmen um die einzelnen Hexfelder bzw. entfernt diesen wieder.


    Und dann könnt ihr noch die zusätzlichen Fenster bei Bedarf ein-/ausblenden.


    Unter Settings gibt es neben der Auswahl des Spielverzeichnisses noch die Möglichkeit, einen Skalierungsfaktor für die Bitmaps aus dem Spiel zu wählen. Voreingestellt ist 2x

    baut bei mir out-of-the-box - auch unter msys2/MinGW unter Windows und läuft auch fein


    unter Linux baut es wenn man die Microsoft fopen_s durch das normale fopen ersetzt

    aber die case-sensitivität vom Linux Dateisystem spuckt noch in die Supper weil *.fin eben was anderes ist als *.FIN oder \\ und / auch nicht so sind wie unter Linux erwartet

    da fehlt eine case-insensitive suche und ein paar Funktionen um die Pfad-Sachen zu abstrahieren

    Ja, das sind noch so Problemchen, die ja aber schnell angepasst werden können, wenn der Rest erstmal funktioniert.

    Ursprünglich wollte ich in den Header-Dateien weiterhin fopen verwenden, um sie später möglichst auch unter DOS verwenden zu können. Da spuckte mir Windows in die Suppe und ich änderte auf fopen_s. Mit Blick auf Linux wäre es dann ja wieder umgekehrt sinnvoll, Dateizugriffe ausschließlich über die Qt Funktionen abzubilden.

    Na, darum kümmere ich mich, wenn der Rest steht. Bin auch fast fertig und aktuell dabei, das Editieren von Gebäudeinhalten und Transportfahrzeugen noch einzubauen. Der Rest steht und Karten können auch schon mit eigenem Passwort ins Spiel integriert werden :)

    Wenn es zeitlich bei mir klappt, gibt es nach dem Wochenende wieder ein Update.

    Es geht voran :)

    Geländeteile und Einheiten können jetzt ausgewählt und platziert und damit eigene Karten erstellt werden :Banana


    Ich habe das letztlich über zwei zusätzliche Child-Windows gelöst, da ich bei der großen Zahl auszuwählender Teile eine vernünftig scrollen und mir die Fenster passend schieben können wollte.

    Funktioniert soweit schon gut, ein paar kleinere Fehler sind aber noch dabei (Auswahl der Hex-Felder ist nicht immer ganz sauber u.ä.).


    Was jetzt noch fehlt ist die Möglichkeit, den Inhalt von Transportern und Gebäuden zu editieren und die zur Verfügung stehenden Ressourcen anzupassen.

    Und die Möglichkeit, die fertigen Karten auch mit eigenem Passwort im Spiel zu ergänzen. Also im Wesentlichen nur noch ein paar Dialoge. :)


    Nicht zu vergessen Games wie MegaZeux und Co, die die EGA und VGA Features der redefinierbaren Zeichensätze ausnutzten um den Textmodus (80x25) aufzupeppen.

    Das wäre auch mein erster Gedanke dazu. Neben den genannten Spielen sind ja auch die Norton Utilities ein gutes Beispiel, wo durch redifinierte Zeichen der Textmodus aufgepeppt wurde.

    Also, VGA-Erkennung rein und dann die Zeichen, die unschön dargestellt werden, durch das CGA Pendant ersetzen :)