Änderungen
Diese History enthält die letzten Änderungen an T.A.G. und T.A.M. Da es öfters neue Versionen der beiden Programme gibt, lonht es sich, hier einmal vorbeizuschauen, was verändert oder hinzugefügt wurde.
* * *
- 06.03.2003
Beim Verwenden von Synonymen, die einen Satz kürzer werden lassen, wurden die letzten Wörter nicht gelöscht, so dass sie doppelt da waren.
Die Bedingung
Licht_In
ist üeberarbeitet worden: Es wurden bei anderen Räumen als aRaum nicht nur Lichtquellen im Raum sondern auch die beim (nicht anwesenden) Spieler berücksichtigt.- 21.02.2003
Ein Bug bei der Textausgabe mit »mein/dein« und
#person
wurde gefixt. (Siehe »mein elbisches Schwert« in Karn.)Beim Umleiten von Aufstehen in
steigen_von
wirdaObj
jetzt aufaSitz
umgelenkt, so dass man in derVorAusf
nur(steigen_von)
abfangen muss, wenn der Spiele, sagen wir mal, an einen Stuhl gefesselt ist. (Dank an Christof Knodel fürs Aufspüren des Bugs.)- 13.11.2002
Stilistische und orthografische Überarbeitung der dem Paket beiliegenden Dateien
tag.std
undnormal.adv
. Vielen Dank an Florian Edlbauer für die Anregungen.- 29.10.2002
Ein neuer Befehl
Spielzug
erlaubt es, einen Spielzug ohne Eingriff des Spielers durchzuführen. Das heißt, alle Aktionen * undNachher
werden ausgeführt, mehr nicht.Die Datei
tag.std
ist auf die neue Rechtschreibung angepasst worden und es wurden einige Fehler ausgebügelt.- 16.10.2002
Die Übergabe von
#obj
an SichtUndRw funktionierte nicht.- 04.10.2002
Ein weiterer Fehler in der T.A.M. verhinderte das Aufrufen von
Verbparser
, wenn der vorherige Zug mitStop
oderBed
abgebrochen wurde.- 03.10.2002
Ein Fehler im T.A.G. wurde behoben, der Textblöcke von mehr als 8000 (32768) Bytes zuließ. (Dank an Andrea Weikert.)
Die Notation
&
Var wurde eingeführt, mit der man einen Wert immer als Zahl betrachtet, so dasssei &xRaum 1
oder so jetzt funktioniert. Das war für das Debug-Modul nötig und hilft auch, Felder mit anderen Datentypen als Zahlen zu belegen:Felddaten f 0 (&Hammer &Zange &Säge &Feile)
In der T.A.M. ist ein Fehler gefixt, der das Setzen einer Zahl im
ObjParser
verhindert hat.- 11.08.2002
Objekte, die außer Sicht sind, werden nun nicht mehr in den Raumbeschreibungen erwähnt. (Das fiel mir beim Programmieren einer Lösung zum IF-Guru #1 auf.)
- 21.07.2002
Das Positionieren des Cursors nach dem Fortsetzungszeichen ist verbessert worden.
Es gibt drei neue Befehle:
Tastendruck
, das einfach ohne Textausgebe auf das Drücken von Space oder Return wartet undBSneu
undBSoben
, die den Bildschirm löschen und den Cursor unten oder oben auf dem Bildschirm platzieren.- 19.07.2002
Ein Bug, bei dem Objekte, die an anderen Gegenständen waren, beim nehmen eine obskure Fehlermeldung erhielten, ist gefixt.
Die Ausgabe der IDs im Logfile ist nun möglich. (Dieses Feature war nach dem Umstellen auf Hashtables schweigend unter den Tisch gefallen.)
Die Zeit in der Statuszeile war korrupt. Jetzt nicht mehr.
- 10.07.2002
Mit dem behobenen Bug vom 07.07. hatte sich ein alter wieder eingeschlichen: Das Erkennen von Plural-Dativen funktionierte nicht mehr. Jetzt sind hoffentlich alle beide Bugs behoben. (Dank an Florian Edlbauer)
- 07.07.2002
Ein alter Bug ist behoben: Die Abfrage von »den« als Plural-Dativ und Maskulinum-Akkusativ. Nun können die Kuchen in Karn (die als
kuchen
m und p definiert sind) und Sachen wie »der/das Schild« korrekt interpretiert werden.Ein Fehler bei den Raumbeschreibungen ist gefixt: Objekte mit
Erst
-Beschreibungen wurden erwähnt, wenn sie indirekt beim Spieler waren.- 06.07.2002 Ein Bug beim Lesen von zahlen mit
LeseZahl
undLeseNummer
ist korrigiert worden. Danke an Florian Edlbauer fürs Finden und Melden.- 28.02.2002
Ein Bug, der o, u, a am Ende von Zeilen in ö, ü, ä umgewandelt hat, wenn aus dem vorherigen Befehl noch ein e an der nächsten Stelle gespeichert war, ist behoben.
Die Objekte werden nun korrekt initlalisiert und sollten nun keine störenden Meldungen bei Start der T.A.M. mehr ergeben.
- 27.02.2002
Ein Bug beim Ausführen der Aktionen * hat diese immer wiederholt, wenn aus ihnen heraus geheZu oder eine andere Aktion aufgerufen wurde.
Bei zusammengesetzten Sätzen war die Ausgabe nicht richtig, wenn ein Fehler im zweiten Teil auftrat. (Dank an Jens Bojaryn für das Aufspüren und Isolieren beider Bugs.)
- 18.01.2002
Dative und Akkusative ohne Fallerkennung (Artikel und Adjektive) werden jetzt von T.A.M. richtig interpretiert.
ausziehen
hatte bei aObjBeiMir
, was zur Folge hatte, dass versucht wurde, aObj aufzuheben, wenn es nicht beim Spieler war. Das ist in T.A.G. geändert.- 10.11.2001
Die Variablen uns Schlüsselwörter in T.A.G. werden nun mit einem Hashcode ermittelt, was das Generieren eines Adventures (theoretisch) schneller macht.
Ein Bug wurde gefixt, der negative Zahlen innerhalb runder Klammern nicht erkannt hat.
- 08.11.2001
Die Routine zum Aufteilen des Befehls ist neu geschrieben worden. In Fehlermeldungen werden nun Wörter so ausgegeben, wie sie der Spiele eingegeben hat. (Es gab bei Groß- und Kleinschreibung sowie umgewandelten Umlauten und ß unschöne Effekte.)
Die Entf-Taste funktioniert nun wie in Text-Editoren. (Das Zeichen unter dem Cursor wird gelöscht.)
- 29.10.2001
Bugfix beim Befehl
GeheZu
mit RaumvariablenBugfix bei der Berechnung des verbleibenden Platzes beim Ablegen und Aufnehmen von Gegenständen.
- 23.09.2001
Nach einem Redesign des Teils, der die Ausführungsblöcke interpretiert, ist die T.A.M. ein wenig vom 64K-Limit für Code in Turbo Pascal weggerückt.
Bugfix bei der Referenz auf Objekte ohne Substantiv (»der Blinde« oder »Welchen Ball?« – »den roten«)
Die Aktion
PostMortem
wird nun ganz am Ende eines Zuges abgearbeitet. Vorher, als sie einfach an der Stelle, an der der Spieler stirbt, aufgerufen wurde, gab es oft Komplikationen beim Neustarten.- 25.07.2001
»ich« wird jetzt auch in der T.A.M. zu »Du« umgeleitet.
Die Pronomina werden jetzt auf einen Stapel gelegt, damit z.B. »sie« (pl) und »sie« (f) unterschieden werden können.
- 27.06.2001
Korrektur von Schleifen: Endlosschleife, wenn der Endwert 255 war.
Korrektur von eindimensionalen Feldern der Größe 256.
Die Bedingung
(
Objekt Klasse)
berücksicht jetzt auch übergeordnete Klassen: Bei einem Objekt der KlasseTier
, die eine Unterklasse vonKreatur
ist, sind(Objekt Tier)
und(Objekt Kreatur)
jetzt war. Vorher traf dies nur auf die erste Bedingung zu.- 08.05.2001
Einige Bugs bei Feldern wurden behoben: Die Anweisung
belege
, die Höchstdimension 256 und eine automatische Vorbelegung mit Null. (Dank an Thomas Kühne.)- 25.01.2001
Der Parser ist komplett neu organisiert worden: Satzzeichen werden jetzt als eigenständige Wörter behandelt. Bislang wurden sie einfach als White Space betrachtet. Folgendes gilt:
- Mehrere Anweisungen müssen mit Punkt, Komma oder
und
voneiender getrennt werden. - In Aufzählungen müssen die Objekte mit Kommas oder mit
und
voneinander getrennt werden. - Wenn eine Person angesprochen werden soll, muß der Name der Person am Anfang des Satzes stehen, von der eigentlichen Anweisung durch ein Komma oder einen Doppelpunkt getrennt.
Das macht den Parser hoffentlich etwas klarer.
- Mehrere Anweisungen müssen mit Punkt, Komma oder
- 11.01.2001
T.A.G. hat es ins neue Millennium geschafft.
Wenn
gestorben
im Nachausführungsblock aufgerufen wurde, kam es zu eigenartigen Ergebnissen. Das ist (hoffentlich) gefixt.Die Antworten beim Besteigen, sich Setzen usw. werden nun auf den Puffer geschrieben.
* * *
Ältere Änderungen stehen in der Datei tag.hst
, die T.A.G. und T.A.M. beiliegt.