- 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
* 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.
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.
- resourcetypen haben ein RTF_POOLED flag. Nur wenn es gesetzt ist, kann die resource
über den pool benutzt werden. Derzeit für alle item-typen aktiviert, noch was?
- In den rassen-ec_flags gibt es NOGIVE, was vom pool beachtet wird. Die Unterscheidung
zu GIVEITEM ist mir, offen gesagt, aber unklar.
Speedups:
- Auswertung in movement schneller, weniger igetkeyword() Aufrufe.
- battle.c schneller
- a_find und a_select, lokale Variablen gestrichen.
Comments:
- Der Server crasht bei mir während Reportgenerierung, wenn er mit Optimierungen
kompiliert ist und ich 225 komplett auswerte. Noch keine Ahnung, warum.