- is_familiar() gab false zurück, wenn Magier nicht vorhanden war (partielles laden)
- verschiedene typecasts, die eigentlich unnötig sind
- windir nur benutzen, wenn MSCVER gesetzt
- Mallornbogen, Elfenbogen und Hellebarde in externer Datei statt im Code definiert.
- Gute/Böse Träume wieder aktiviert (war aus Versehen abgeschaltet)
- Score von Waffen anders berechnet.
- alle xml dateien sind echtes XML
- alle alten XML Leseroutinen sind raus
- Daten werden mit dem libxml DOM parser gelesen
- der alte XML Parser ist weg
- libraries required: libxml2, iconv
-- implementiert. Kann nur einmal pro Partei verwendet werden, und nur von einem Magier. Müssen wir erklären.
Amulett des wahren Sehens und Ring der Unsichtbarkeit geben lediglich einen Bonus auf Wahrnehmung (+2) und Tarnung (+4).
-- das define war nicht aktiviert
Halblinge haben Armbrustschiessen +0 (statt +1).
-- spearates Rassenfile für WDW
Es gibt spezielle Regeln für Allianzen, und der HELFE und KONTAKTIERE Befehl sind eingeschränkt. Konkret kann kein HELP_FIGHT HELP_GUARD HELP_FSTEALTH HELP_MONEY gegeben werden (die anderen sind erlaubt).
-- mit #defeine ALLIES_ONLY definiert
Jede Allianz kann bis zu 15 Magier und 15 Alchemisten haben. Jede einzelne Partei der Allianz kann dabei nicht mehr als 15/Anzahl_Parteien (aufgerundet) Magier bzw. Alchemisten haben, und die Gesamtsumme darf 15 nicht übersteigen.
-- mit #define ALLIANCE_LIMITS gemacht.
Die Startgeschenke (Personen, Silber, ...) werden pro Allianz, nicht pro Spieler verteilt. Größere Allianzen bekommen also weniger pro Spieler.
-- Nochmal geändert: Die Allianzen kriegen jede 168 Personen zum Start, weil sich das gut aufteilen lässt. Das wird auf 28 Einheiten pro Partei gesplittet, jede Einheit hat eines der Talente, außer der Starteinheit, die hat den magicskillboost. Einige Skills kommen öfter vor als andere, das ist nicht einfach vermeidbar. Sollte aber auch wurscht sein, es geht primär darum, lehren zu können.
Es gibt ein Einheitenlimit von 1000 Einheiten pro Allianz.
-- die Regel sparen wir uns einfach mal.
* Bugfix Sichtbarkeitsregel bei Borders
* Neu definiert, was eine attribut-funktion zurückliefern soll, wenn sie
failed. asserts, die checken das ich auch keine vergessen habe.
damit ist die killunit::handle Geschichte erledigt.
* Bugfix looting. Sowohl eigene als auch fremde Einheiten können looten.
* Korrektur doppeltes shock-attribut.
* Straßen, Diskrepanz im NR und CR beseitigt
* remove_empty_factions macht kein free mehr.
Neue allgemeine Eigenschaften für Gebäude:
- Magieresistenz,
- Magieresistenz für insassen,
- Auraregenerationsmodifikator für Insassen,
- Schutz im Kampf,
- Magisch
- STRINGS
strings.txt für deutsch und englisch um einen Haufen fehlender Einträge
erweitert.language.c schreibt jetzt auf Wunsch ein logfile aller fehlender
strings, was extrem hilfreich beim ergänzen ist.
- LOKALISIERUNG
Man kann jetzt Befehle komplett in einer anderen Sprache geben. Der NR macht
Talente, Zugvorlage und Gegenstände in der eigenen Sprache.
- monster.h
zu monster.c nach gamecode verschoben
- locale_string(key, NULL)
NULL-locale liefert jetzt den key selbst zurück.
- CR:
1. Anzeige der hashes statt der lokalisierten strings
2. TRANSLATION Block
- Messages:
make_message heisst jetzt msg_message
msg_error() ist eine neue funktion für fehlermeldungen
- strings.txt, messages.xml
Einen Haufen neuer Einträge gemacht.
Messages werden jetzt in einem anderen Meta-Format (message* of
message_type*) gespeichert, das man in beliebige Formate (CR oder NR)
rendern kann. crmessage.c und nrmessage.c sind die render-engines dafür.
Die Messagetypen werden in res/{de,en}/messages.xml gesammelt, ultimativ
kann das aber durchaus eine einzelne Datei sein. Die ist derzeit nicht
wirklich xml (Umlaute drin, keine Definitionsdatei), aber gut lesbar.
- make_message
Diese Funktion ersetzt new_message, und ist etwas einfacher in der Syntax:
make_message("dumb_mistake", "unit region command", u, r, cmd) erzeugt
eine neue Nachricht, die dann einfach mit add_message wie bisher an die
Nachrichtenliste gehängt werden kann.
TODO: Messages könnte man durchaus reference-counten, und in mehrere Listen
einfügen, solang sie a) mehrfachverwendet (Kampf!) und b) vom Betrachter
unabhängig sind. Das spart einigen Speicher.
- CR Version erhöht.
Weil die MESSAGETYPES Blocks anders sind als früher
- OFFENSIVE_DELAY
Verbietet Einheiten, deren Partei eine Reigon niht bewachen, den
Angriff in der Region, wenn sie sich in der Runde zuvor bewegt haben.
Status der letzten Runde wird in neuem Attribut at_moved gespeichert.
- SHORT_ATTACKS
ein define, das angibt ob Kämpfen grundsätzlich keine lange Aktion ist.
- XML Parser
xml.[hc] enthält einen XML-Parser, dem man ein plugin mit callbacks
übergibt, die nach dem Parsen eines tokens aufgerufen werden.
noch, die Optionsmimik komplett umzustricken, um Optionen mit
einem Parameter auch ohne Hack möglich zu machen.
- Neue Spezialeigenschaft FS_UNDEAD. Wir sollten dringend darüber
nachdenken, bestimmte Eigenschaften von Einheiten (etwa
Untot-sein) besser zu generalisieren, so gibt es andauernd
Inkonsistenzen.