Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002191 | Eressea | NACH/ROUTE | öffentlich | 2016-02-25 16:20 | 2017-12-05 19:50 |
Reporter | Solthar | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | N/A |
Status | geschlossen | Lösung | erledigt | ||
Produktversion | 3.7.5 | ||||
Behoben in Version | 3.9.1 | ||||
Zusammenfassung | 0002191: Schiffe und exotische Terrains | ||||
Beschreibung | Ist es eigentlich beabsichtigt, dass keine Schiffe in den Terraintypen Gang oder Halle landen können? | ||||
Zusätzliche Informationen | Es gibt da eine Dopplung in der Konfiguration, die vielleicht nicht nötig ist. Einerseits gibt es die Flags "land, sail" etc. an den Terrains, andererseits wissen die Schiffe explizit, in welchen Regionstypen sie landen dürfen (<coast terrain=...). | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | ii | ||||
Spiel | E2 | ||||
Report | 967 | ||||
Also, erst einmal möchte ich klagen, weil der Titel dieses Bugs nichtssagend ist. Zweitens: Du hast natürlich total Recht, die Doppelung mit (land,sail) ist ungeschickt. Die ist noch aus einer Zeit, als es quasi zwei Klassen von Schiffen gab: Boote, und Nicht-Boote. |
|
Spricht den etwas dagegen das Boote in Gängen anlanden können? Ist ja sonst eine Kleinigkeit. Die Flags an den Regionen sollte man dann auch gleich löschen. |
|
Aktuelle Implementation in move.c ist:
Ich habe allerdings das dunkle Gefühl, dass Piraterie das flag benutzt, ohne sich um den Schiffstypen zu scheren? |
|
Piraterie ruft einfach nur move_cmd auf, und das reduziert das ganze auf move_cmd. Damit geht das am Ende alles durch den selben Codepath, in check_ship_allowed. |
|
Ich glaube, dass das korrekt ist. In Hallen und Gänge soll man nicht segeln können. Zum Code: Das sieht mir nach einer Optimierung aus. Es ist weitaus schneller, auf ein Flag wie SAIL_INTO zu checken, als eine Liste von Terrains zu durchsuchen. Wenn es also ein Terrain gibt, in dem überhaupt kein Schiff landen darf, dann kann man das so markieren. Wenn ich das Flag von dem Terrain entferne, ändert das am Resultat nichts. Natürlich ist das irgendwo doppelt gemoppelt, und kann zu Verwirrung führen. Schöner wäre, wenn das nur über die ship->coast Liste läuft. Das SAIL_INTO Flag ist, das sieht man schon am Namen, noch aus Atlantis, als für alle Schiffe die gleichen Regeln galten. Dann habe ich mich noch gefragt, warum "ocean" in ship_type.coasts aufgelistet wird. Jedes Schiff darf ja wohl in einen Ozean (SEA_REGION) fahren? Aber ich glaube, es gab da mal einen Plan, verschiedene Typen von Ozean zu implementieren, stillere Gewässer, in denen alle Schiffstypen erlaubt sind, und stürmischen Ozean, wo man ein spezielles Schiff braucht. Daraus ist nichts geworden, und dieses Feature ist damit tot und irreführend. Was ich hier tun möchte:
|
|
Kannst du das in einem separaten Bug machen? Das hat mit Spezialterrain ja eher nichts mehr zu tun. |
|
Für Betreten ist SEA_REGION übrigens nicht gedacht, das sind WALK_INTO bzw. FLY_INTO. Es gibt da eine Menge Flags, die leider alle nicht dokumentiert sind. Also, noch ein Punkt für die Liste:
|
|
Der PR ist schon vor einer Weile akzeptiert worden. Die Probleme mit Piraterie existieren wahrscheinich noch immer, sollten aber einen eigenen Bug bekommen. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2016-02-25 16:20 | Solthar | Neuer Eintrag | |
2016-02-25 16:22 | Enno | Notiz hinzugefügt: 0006488 | |
2016-03-20 18:36 | CTD | Notiz hinzugefügt: 0006508 | |
2016-06-08 10:10 | Enno | Bearbeitung durch | => Enno |
2016-06-08 10:10 | Enno | Status | neu => zugewiesen |
2016-06-09 21:22 | Enno | Notiz hinzugefügt: 0006613 | |
2016-06-10 07:43 | Enno | Notiz hinzugefügt: 0006614 | |
2016-06-10 08:05 | Enno | Notiz hinzugefügt: 0006615 | |
2016-06-10 10:20 | Enno | Notiz hinzugefügt: 0006617 | |
2016-06-10 17:49 | Enno | Notiz hinzugefügt: 0006618 | |
2016-06-10 20:57 | Enno | Notiz hinzugefügt: 0006619 | |
2016-08-19 18:10 | Enno | Status | zugewiesen => erledigt |
2016-08-19 18:10 | Enno | Lösung | offen => erledigt |
2016-08-19 18:10 | Enno | Behoben in Version | => 3.9.1 |
2016-08-19 18:10 | Enno | Notiz hinzugefügt: 0006728 | |
2017-12-05 19:50 | Enno | Status | erledigt => geschlossen |