roybaer / mdcii-engine

Plattformunabhängiger Nachbau der Grafikengine von Anno 1602 – Platform independent remake of the graphics engine of Anno 1602/1602 AD
GNU General Public License v2.0
25 stars 5 forks source link

cod_bringup Diskussionen #16

Open siredmar opened 5 years ago

siredmar commented 5 years ago

Hier mal ein Thread, bei denen wir uns austauschen koennen, was noch nicht korrekt umgesetzt ist fuer den COD Parser. @roybaer: Du hattest erwaehnt, was noch nicht ganz passt. Kannst du kurz beschreiben was genau ggf. mit Screenshot? Danke!

siredmar commented 5 years ago

Ich habe mal deine Spielstaende geladen. Spielstand gam10.sav: Es gibt hier offenbar tiles, die nicht in der COD auftauchen? Ich hab die Vanilla Version von Anno, mit welcher Version wurden deine Spielstaende denn erzeugt? Ggf. ist hier das ein oder andere Tile dazugekommen. Man sieht das, da manche Tiles gar nicht dargestellt werden und auch keine Bebauung unter dem Mauzeiger angezeigt wird (siehe Bild). fehler1

roybaer commented 5 years ago

Ich hab die Vanilla Version von Anno, mit welcher Version wurden deine Spielstände denn erzeugt? Ggf. ist hier das ein oder andere Tile dazugekommen.

Genau die Version sollte es sein.

Man sieht das, da manche Tiles gar nicht dargestellt werden und auch keine Bebauung unter dem Mauszeiger angezeigt wird (siehe Bild).

Ich sehe da gewöhnliche grüne Wiese mit Index 102.

Du hattest erwähnt, was noch nicht ganz passt. Kannst du kurz beschreiben was genau ggf. mit Screenshot?

Primär drei Sachen, die wahrscheinlich alle zusammen hängen:

  1. Lagerstände in Betrieben werden fälschlicherweise als Animation visualisiert
  2. Die Reife von Feldern wird nicht dargestellt, d.h. beim Index für noch wachsende Felder wird immer das frisch gesäte angezeigt
  3. Die Animation des Meeres ist irgendwie auf der Strecke geblieben

In den COD-Dateien müsste es ein Flag geben, das angibt, ob die Animationsschritte tatsächlich Animationsschritte oder Lagerstände sind. Bei dem Rest müssen wir mal sehen.

Green-Sky commented 5 years ago

Kleiner Einschub: Der cod_parser_test segfaultet bei mir, da die test.cod nicht im Path ist. Das sollte beim Programmstart getestet werden. Der Segmentation Fault selber passiert in cod_parser.cpp Zeile 53, weil die Schleifenbedingung buffer.size() - 1 underflowt (für buffer.size() == 0).

siredmar commented 5 years ago

Kleiner Einschub: Der cod_parser_test segfaultet bei mir, da die test.cod nicht im Path ist. Das sollte beim Programmstart getestet werden. Der Segmentation Fault selber passiert in cod_parser.cpp Zeile 53, weil die Schleifenbedingung buffer.size() - 1 underflowt (für buffer.size() == 0).

cod_parser_test ist kein unit test. Einfach nur ein testprogramm um die geparsten COD Daten anzuschauen. Usage:

./cod_parser_test --help
Zulässige Optionen:
  -c [ --cod ] arg (=test.cod) Path to .cod file
  -d [ --decrypt ] arg (=1)    decrypt true/false
  -h [ --help ]                Gibt diesen Hilfetext aus

Beispiel: ./cod_parser_test -c /hier/liegt/die/test.cod

siredmar commented 5 years ago

Punkt 2: Die Reife von Feldern wird nicht dargestellt, d.h. beim Index für noch wachsende Felder wird immer das frisch gesäte angezeigt Punkt 3: Die Animation des Meeres ist irgendwie auf der Strecke geblieben

-> Punkt 2 und 3 wurden im PR #17 gefixt.

siredmar commented 5 years ago

Punkt 1: Lagerstände in Betrieben werden fälschlicherweise als Animation visualisiert

Es werden nun nur Gebaeude animiert, die auch animiert werden sollen (Muehle, ...) Lagerstaende werden derzeit nicht visualisiert. Diese sind, so weit ich das ueberblicke, derzeit auch noch gar nicht implementiert, oder?

Siehe auch #17

roybaer commented 5 years ago

Der jeweils aktuelle Lagerstand sollte als „Animationsschritt“ im entsprechenden Inselfeld gespeichert sein, wenn ich das noch richtig im Kopf habe. Der darf dann halt nur nicht inkrementiert werden, sonst fängt 's an zu zappeln.

siredmar commented 5 years ago

Hi! Der aktuelle Lagerstand wird auch in der letzten Version vor meinen Aenderungen nicht angezeigt. Habe den Stand hier probiert (https://github.com/roybaer/mdcii-engine/commit/b9c801600f212deb410ca0aace6a482c6afe23da) Der beinhaltet auch keine Visualisierung der Lagerstaende beim Holzfaeller oder Steinbruch. Das Thema sollten wir dann nach dem Merge angehen.