FOLGE SCHIFF wird ein langer Befehl
Neuer Parameter --lomem, um unkritische Strings zu ignorieren (spart mindestens 150 MB Speicher). Nicht für echte Auswertungen verwenden!
Tests für display/name/etc == NULL
In der Regel sollte create_unit() benutzt werden, um Einheiten zu erzeugen, weil dann Parteitarnung, Rasse, etc. von der erzeugenden Einheit übernommen werden.
1. Wer auf KÄMPFE FLIEHE steht, rennt immer davon.
2. Jede andere Person die noch nicht getroffen worden ist, bleibt in der Kampfregion stehen. Als Treffer gilt jeder Angriff, auch wenn der Schlag in der Rüstung hängen blieb o.ä.
Ausserdem: Monster dürfen Fremdrassen rekrutieren. Wird z.Z. jedoch nicht genutzt, ausser von Testskripten.
Rekrutieren und div. andere Dinge waren möglich, weil HELFE GIB ein automatisches KONTAKTIERE setzte.
Ich habe den Code nach anderen Vorkommen aehnlicher Bugs untersucht und repariert.
define removed, because it will never be turned off again.
- bewache_an()
renamed to guard_on_cmd, guard_cmd renamed to guard_on_cmd. now uses parse()
- http://eressea.upb.de/mantis/bug_view_page.php?bug_id=0000242
Hungernde Einheiten können Bewache nicht zurücknehmen.
GUARD is a short command, should be allowed when hungry.
VERKAUFE ALLES verbessert
- http://eressea.upb.de/mantis/bug_view_page.php?bug_id=0000192
Keine opponent-Auswahl mehr im Kampf
- LUA:
unit.weight und unit.capacity (read-only)
- Reporterzeugung:
Parteiliste nur noch in parteien.full
Stringfix (Fräcke)
Bugfix leave_trail. Aufsplitten von move_ship
- Änderung von get_param (liefert NULL für undeklarierte params) in Vorbereitung auf "mehr config, weniger define"
Diverse indenting-anpassungen (space statt tabs)
- 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
==32343== Source and destination overlap in memcpy(0x4192492c, 0x4192492c, 20)
==32343== at 0x40020351: memcpy (mac_replace_strmem.c:95)
==32343== by 0x80BC95B: scramble (common/gamecode/economy.c:132)
==32343== by 0x80BCA71: expandorders (common/gamecode/economy.c:169)
==32343== by 0x80BCB75: expandrecruit (common/gamecode/economy.c:199)
==32343==
==32343== Source and destination overlap in memcpy(0x443f3de0, 0x443f3de0, 20)
==32343== at 0x40020351: memcpy (mac_replace_strmem.c:95)
==32343== by 0x80BC95B: scramble (common/gamecode/economy.c:132)
==32343== by 0x80BCA71: expandorders (common/gamecode/economy.c:169)
==32343== by 0x80C31A4: expandtax (common/gamecode/economy.c:3108)
==32343==
==32343== Source and destination overlap in memcpy(0x425a5b4c, 0x425a5b4c, 20)
==32343== at 0x40020351: memcpy (mac_replace_strmem.c:95)
==32343== by 0x80BC95B: scramble (common/gamecode/economy.c:132)
==32343== by 0x80BCA71: expandorders (common/gamecode/economy.c:169)
==32343== by 0x80C09C3: expandbuying (common/gamecode/economy.c:1949)
==32343==
==32343== Source and destination overlap in memcpy(0x425a78e0, 0x425a78e0, 20)
==32343== at 0x40020351: memcpy (mac_replace_strmem.c:95)
==32343== by 0x80BC95B: scramble (common/gamecode/economy.c:132)
==32343== by 0x80BCA71: expandorders (common/gamecode/economy.c:169)
==32343== by 0x80C10A3: expandselling (common/gamecode/economy.c:2180)
==32343==
-- 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.