Geschrieben um 16:20 am 22.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | So, hab das jetzt mal in einer Glulx+ZCode-Fassung umgesetzt, die zumindest bei mir bisher den Tests standgehalten hat. Wäre aber sehr dankbar, wenn sich das nochmal jemand anders anschauen oder es ausprobieren könnte. (Kris, du könntest es vielleicht mal testweise in deinem Projekt versuchen. Sicherheitskopie der german.h anlegen, die paar Änderungen hier durchführen und schauen, ob alles wie gewohnt läuft.) Den Längencheck für UmlautAux im ZCode habe ich rausgelassen, weil die Gefahr eines Überlaufes aktuell ja nicht besteht. Ab 6/11 gibts im Rahmen der Glulx/ZCode-Angleichung dann endlich ne Library-Routine dafür. In der german.h ab Zeile 824 eingefügt:
|
Geschrieben um 18:46 am 22.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | ChrisW:
Sehr schön! Du könntest die LanguageVerb noch etwas abkürzen, wenn du 'übertrag', 'durchquer', 'begutacht', 'durchsuch', 'zerdrück' und wenn dich die etwas holprige Endung nicht stört auch 'verriegel' rausschmeißt. ChrisW:
Double v8 wäre nicht schlecht, obwohl bei richtig großen Spielen dann wahrscheinlich eher die 64k-Begrenzung für den lesbaren Speicher ein Problem wäre. Clever wäre ein "Variable v8", so dass der packing factor im Header festgelegt würde und nicht durch die Versionsnummer. (z5 und z8 unterscheiden sich ja allein durch diesen Faktor.) Die Länge der Vokabeln könnte man auch dort festlegen. ChrisW:
So etwas wäre wohl besser in einer Library Extension aufgehoben, denke ich, denn nicht jedes Adventure hat viele Schlüssel. Grundsätzlich sind solche Erleichterungen für den Spieler aber eine tolle Sache. (Und leider für meinen Alltags-Schlüsselbund noch nicht implementiert.) ChrisW:
Die Z-Maschine erlaubt es, die Größe der Dictionary-Einträge zu modifizieren. Allerdings sind die Vokabeln selbst immer neun Zeichen lang, die in sechs Bytes abgelegt werden. Die darauf folgenden Bytes enthalten lediglich Flaggen. In Inform werden meines Wissens Sieben-Byte-Einträge benutzt, im letzten Byte ist die Information enthalten, ob ein Wort ein Verb ist, oder ob es mit '...//p' als Plural definiert wurde. |
Geschrieben um 18:52 am 22.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | Ich habe das erstmal auf neutralem Boden getestet (erstmal nur Glulx), und es funktioniert. Allerdings habe ich den Code (also beide Teile) in einer separaten LangVerb.h gespeichert. Dann folgendes:
|
Geschrieben um 20:49 am 22.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | Martin:
Argh, stimmt. Diese Verben haben ja nur neun Zeichen. Martin:
Schon richtig. Viele Änderungen in der 6/11 und der geplanten darauffolgenden Version sind Dinge, die schon vorher in Extensions existierten. So bspw. die Möglichkeit mit LOOK TO THE NORTH usw. in verschiedene Himmelsrichtungen zu schauen. Ob das in die Standardlibrary muss, darüber kann man streiten. Zitat:
Eben das wird in Glulx nur vom Compiler festgelegt, laut Glulx Technical Reference, die Vokabeln können dort also auch länger sein: Glulx TR:
This structure is generated by the compiler, and used by the library. long: number of words ...each word: { byte: 60 (type identifier for dict words) bytes[9]: nine bytes of lower-case text, zero-padded short: flags short: verb number short: unused (zero) } ... The nine-character word length is actually variable, controlled by the $DICT_WORD_SIZE memory setting. ... Kris:
Schöne Variante. Und toll, dass du es gleich ausprobiert hast. Allerdings finde ich schon, dass die neue Variante, so wir sie denn ausführlich getestet haben, in die offizielle german.h sollte. Trotzdem kannst du sie noch im Quellcode deines Spiels erweitern: Dazu wird am Ende die Routine PrintVerb aufgerufen, so sie denn vorhanden ist. Wenn du in deinem eigenen Quellcode diese Routine anlegst, kannst du dort nach Lust und Laune noch Ersetzungen hinzufügen, ohne irgend etwas an der german.h ändern zu müssen. |
Geschrieben um 09:26 am 23.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | ChrisW:
Klar, keine Frage. Nur so lange es keine neue offizielle german.h gibt, arbeite ich lieber mit Extensions. Ich habe schon eine Liste von Änderungen (wie z.B. der Akk-Nom Fehler in der WritListFrom) die ich direkt in der lib vorgenommen habe. Damit ich nicht den Überblick verliere, wenn es eine neue lib gibt, halte ich die Liste lieber so klein wie möglich :-) Gruß Kris |