Verflucht komplizierter Fix in movement. Das kann eigentlich nur schiefgehen.
Bei der Gelegenheit mal in movement etwas Code-Massage betrieben. Das ist zwar grundsätzlich ein hoffnungsloser Fall, aber ich kann's nicht lassen.
==12779==
==12779== Invalid read of size 1
==12779== at 0x807C3B2: simplename (common/kernel/battle.c:3049)
==12779== by 0x807C43D: make_battle (common/kernel/battle.c:3083)
==12779== by 0x807D236: do_battle (common/kernel/battle.c:3537)
==12779== by 0x80C9706: processorders (common/gamecode/laws.c:3556)
==12779== Address 0x45D84EB5 is 0 bytes after a block of size 13 alloc'd
==12779== at 0x40028A89: malloc (vg_replace_malloc.c:153)
==12779== by 0x40029038: realloc (vg_replace_malloc.c:302)
==12779== by 0x809D3C5: rds (common/kernel/save.c:265)
==12779== by 0x80A00C0: readregion (common/kernel/save.c:1832)
aus: Seine beste Fernampfwaffe und seine beste Nahkampfwaffe.
Welches die beste Waffe ist, ist nicht immer einleuchtend, und an dieser
Stelle macht der Server eine Vereinfachung - er wählt die Waffe, bei der der
Angriffswert plus dem Verteidigungswert am größten ist.
** Wenn eine Einheit an der Reihe ist, wird geprüft:
1. Ist die Einheit ein Magier, so zaubert sie.
2. Ist die Einheit damit beschäftigt, eine Waffe nachzuladen, so tut sie das.
3. Steht die Einheit in einer der hinteren Reihen, attackiert sie, so
vorhanden, mit der Fernkampfwaffe.
4. Steht die Einheit in der vorderen Kampfreihe, so attackiert sie mit
derjenigen Waffe von beiden, in der ihr Talent am höchsten ist.
** Wird eine Einheit angegriffen, so gilt:
1. Handelt es sich um einen Angriff durch einen Nahkämpfer, so verteidigt
sie sich mit ihrer Nahkampfwaffe oder Waffenlosem Kampf.
2. Handelt es sich um eine Attacke durch einen Fernkämpfer, so verteidigt
sie sich mit dem halben Talent ihrer besten Waffe.
- englische Zauberübersetzungen, Code gebaut und Übersetzung angefangen
- Visual Studio Project, neue Files eingefügt
- strnzcpy für MSVC hat nicht so richtig geklappt. alles gleich gemacht.
* 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
* Meldung bei nicht aureichendem Lehrer-Talent ist missverständlich
* bei FAHRE wird auf Hunger geprueft
* Daemonenpanik im Kampf nur noch, wenn nicht als andere Rasse getarnt.
* watchers kriegen kampfreports
* fix der behandlung von einheiten mit massenhaft keksen.
Das linkt momentan wegen zwei fehlenden Funktionen noch nicht, die ich morgen nachreiche. Alte Varainte kompoiliert und linkt aber, also einfach nicht an den defines spielen im Moment.
* RACE_ADJUSTMENT korrekt deaktiviert.
* Schiffe werden nur noch beschädigt, wenn der Kampf für sie relevant war.
* Erneute Reparatur für Regionen ohne demand.
* KÄMPFE HELFE NICHT repariert.
* Setzen des Kampfzaubers ohne Stufenangabe setzt die Stufe auf 0 (=max)
* Übersetzung des HP-Status im Report
* Teilübersetzung der Spionage-Reports.
* locale_string() liefert auf NULL wieder NULL zurück (statt crash).
- 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.
kleine bugfixes in einzelnen messagedefinitionen
- graph:
corwin, vertex ist ein punkt, keine kante. Du meinst edge.
- graph:
Fehler bei markern, ein == statt einem =.
- Kampf: ST_AGGRO, ST_CHICKEN
Zwei neue Kampfstati, die das Fluchtverhalten beinnflußen.