Level-/Karteneditor für Historyline 1914-18

  • @Dragonsphere


    noch weiter gekommen - du scheinst ja genau so ausgebucht zu sein wie ich :)

    Ja, Freizeit ist leider aktuell kaum vorhanden :(


    Ein bisschen Code habe ich aber zwischenzeitlich trotzdem zustandegebracht.

    Mit Qt habe ich ein bisschen rumprobiert und den Mapviewer nochmal in Qt umgesetzt. Das Laden der Ressourcen direkt aus dem Spiel und das Anzeigen einer Karte funktioniert gut.


    HL-Editor_Win_Qt.zip

    Achtung: Der Pfad zum Spiel steht hier aktuell noch mit in den Kostanten im Quellcode und muss entsprechend angepasst werden.


    Und dann hat mich neulich der Ehrgeiz gepackt und ich habe direkt mal einen DOS-Port davon gemacht, bzw. den Code für DOS angepasst.

    Funktioniert auch gut. Hier steht der Pfad zum Spiel in der HLMVIEW.CFG, kann also angepasst werden, ohne neu kompilieren zu müssen.

    Die Nummer der zu ladenden Karte könnt ihr als Kommandozeilenparameter angeben. Mit den Cursortasten könnt ihr den Kartenausschnitt scrollen. Mit Tab zwischen Sommer/Winter wechseln :)

    HLMVIEW_DOS.zip


    Also ein Grundgerüst steht und als nächstes müsste eine schöne Editor-Oberfläche kommen. Aktuell fehlt mir nur total die Zeit dafür.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Hab die DOS Version heute getestet. Funktioniert gut. :thumbup:

    Ja, unter DOSBox muss man die Cycle etwas hoch stellen, aber sonst läuft die gut, auch auf meinem 486er und ist schonmal eine gute Basis für den Editor, auf die man doch aufbauen kann..


    Mit Qt fremdel ich dagegen noch etwas. Da musste ich dann doch erstmal die ein oder andere Funktion nachlesen und in Quellcodes stöbern. Habe bisher noch auf ein zusätzliches Menü verzichtet und hatte dann auch noch mit einigen blöden Bugs zu kämpfen, bis das Anzeigen einer Karte in einem Fenster endlich korrekt klappte.

    Meinen Code zum Laden einer Karte an DOS und VGA anzupassen, war dagegen ein Kinderspiel und für mich vertautes Gebiet. Das konnte ich so runterschreiben. Etwas Fleißarbeit alle Speicherzugriffe umzubauen (habe mich zum Glück an die Möglichkeit der Huge-Pointer in C++ erinnert und umschiffte so die 64 KB Segment-Probleme :)) und dann von Bitmap Objekten usw. auf simple Screenbuffer und deren Kopieren in den Bildschirmspeicher umstellen. Aber das war es dann im Wesentlichen auch schon. Daher war der DOS-Port dann doch recht schnell gemacht und ist schon ein bisschen weiter, mit Config-Datei und so :D

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Zitat

    Mit Qt habe ich ein bisschen rumprobiert und den Mapviewer nochmal in Qt umgesetzt. Das Laden der Ressourcen direkt aus dem Spiel und das Anzeigen einer Karte funktioniert gut.

    sieht ganz gut aus - fehlt noch Scrolling und 1Mio andere Sachen - aber schon ganz fein


    Zitat

    Und dann hat mich neulich der Ehrgeiz gepackt und ich habe direkt mal einen DOS-Port davon gemacht, bzw. den Code für DOS angepasst.

    Ist das nicht eher ein Trieb als Ehrgeiz :)

  • Ist das nicht eher ein Trieb als Ehrgeiz :)

    Ein Trieb? Eher ein Drang eine Zeit lang dem Alltag zu entfliehen. Unter DOS zu programmieren hat für mich irgendwie etwas sehr entspannendes, fast schon meditatives. Da kann ich super bei abschalten. Alles ist vertaut, überschaubar, langsam und berechenbar. Dann Code zu schreiben und über die gleichen Programmier-Probleme und Lösungen zu grübeln, wie schon vor 25 Jahren, das hat etwas von einer entspannten Zeitreise zurück in eine vertraute Zeit, als das Leben noch einfacher war.

    Hinzu kommt dann Ehrgeiz, den unter Windows geschriebenen Code auch unter DOS zum Laufen zu bringen und vielleicht etwas Masochismus, sich dafür unnötiger Weise mit den Limitierungen wie 64 KB Segmenten und einer IDE von 1992 herumzuschlagen (da führen dann manchmal nostalgischen Gefühle und Erinnerungen an die "blaue" Borland IDE zu etwas irrationalen Handlungen) :D


    fehlt noch Scrolling und 1Mio andere Sachen

    Ja es fehlt noch einiges.

    Was wir aber haben sind zwei Header-Dateien mit leicht anzupassendem und auf verschiedenen Betriebssystemen verwendbarem Code für Aufgaben wie das Zeichnen von Landschaftsfeldern und Einheiten aus den originalen Spieldateien. Auch schon gründlich getestet und Fehler bereinigt. Auch das Laden ganzer Kartendaten funktioniert ja schon prima. Hier fehlt nur noch die Behandlung von Gebäuden.

    Das ist doch schön eine gute Grundlage und jeder von euch kann auch gerne damit weitermachen. Mein aktueller Quellcode liegt ja dabei. :)

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Zitat

    Das ist doch schön eine gute Grundlage und jeder von euch kann auch gerne damit weitermachen. Mein aktueller Quellcode liegt ja dabei. :)

    ist wirklich super das du den Quelltext mit veröffentlichst - Github Project wäre schon was feines - auch wenn es nur Teil-Prototypen sind - dann würde der Code auch per google gut findbar sein

    Einmal editiert, zuletzt von llm ()

  • Hey Dragonsphere,


    nach dem es etwas ruhiger geworden ist um das Projekt, wollte ich mal nachfragen, ob Du denn nach wie vor weiter entwickelst oder ob es nun an der Community liegt,

    mit Deinem Quellcode etwas auf die Beine zu stellen?


    Schönen Gruß!

  • Keine Sorge, ich mache damit weiter, sobald ich wieder etwas mehr Zeit dafür finde. Juni/Juli waren bei mir leider beruflich wie privat sehr stressig und da blieb mir einfach keine Zeit dafür.

    Dennoch würde ich mich über Unterstützung, gerade bei der Windows-Version, sehr freuen.

    Aktuell bin ich im Urlaub, wenn ich zurück bin, stelle ich auch in den aktuellen Quellcode-Stand bei GitHub ein.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • So, es gibt Neuigkeiten und einen Screenshot meines Desktop als kleinen Teaser :D



    Endlich habe ich wieder Zeit für dieses Projekt gefunden und mit der Qt Version weitergemacht.

    Jetzt gibt es auch eine Menüleiste, Dateien können komfortabel geladen und gespeichert werden (bisher nur .fin, also nur Landschaft).

    Zudem lässt sich die Skalierung der Bitmaps und der Pfad zu den Spieldateien einstellen und ein Rahmen um die Hexfelder ein und ausblenden.

    Auch eine neue Karte lässt sich schon erstellen.

    Aber das wichtigste fehlt noch, denn noch lassen sich die Felder nicht editieren. Am Wochenende will ich mal versuchen, den Code zum Auswählen und Ändern von Feldern hinzubekommen.


    Wie versprochen stehen jetzt Projekt und Quellcode bei GitHub


    Da Qt ja Neuland für mich ist, musste ich mich da erst etwas einarbeiten. Sicherlich lässt sich da einiges noch optimieren und noch ist der Code auch nicht ganz sauber/einheitich. Beispielsweise nutze ich im Hauptprogramm Dateizugriffe per QFile, die eingebundenenen Header-Dateien aber noch Standard C-Routinen u.ä.

    Aber es funktioniert :)


    Den Code der DOS-Version habe ich auch mit hochgeladen. Da gibt es aber leider noch nichts neues.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • 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. :)


    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • 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

    Einmal editiert, zuletzt von llm ()

  • 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.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • 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

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • 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

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • 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.

  • 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.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!