Commit Graph

294 Commits

Author SHA1 Message Date
Enno Rehling 59ccf23db6 Repair MAKE, which broke when I changed MAKE TEMP.
You can now also write MAKETEMP as one word, and we treat it that way.
Added unit test coverage for MAKE order parsing.
2014-08-17 14:47:39 +02:00
Enno Rehling 99124f3d6d Merge branch 'master' of https://github.com/eressea/server 2014-08-17 07:37:50 +02:00
Enno Rehling b385bfc4d2 Merge branch 'fixes-891'
Conflicts:
	src/kernel/faction.c
2014-08-17 07:23:07 +02:00
Enno Rehling 138a4c10a0 properly create missing monster faction when spawning dragons.
remove cached monster faction (static).
Conflicts:
	src/kernel/faction.c
2014-08-17 07:14:47 +02:00
Enno Rehling cef068fe9b cut the number of allocations for order-data in half.
started writing a test file for orders.
2014-08-16 23:26:31 +02:00
Enno Rehling 8803a9e9a8 properly create missing monster faction when spawning dragons. 2014-08-16 13:46:34 +02:00
Enno Rehling 90ec28fed3 fix missing monster factions. 2014-08-16 13:33:47 +02:00
Enno Rehling fa52bb4192 pointless assert triggers when new units are created and placed.
spawning dragons was causing this to fail.
2014-08-16 13:19:00 +02:00
Enno Rehling 9587e9f0cd remove unused variables 2014-08-16 12:02:45 +02:00
Enno Rehling 2fd085d1e5 Merge branch 'master' of https://github.com/eressea/server 2014-08-16 11:59:20 +02:00
Enno Rehling c79dd33bfb smarter processing of MAKE TEMP.
the order gets its own keyword. parsing is hard - composite commands are an anti-pattern.
this eliminates a lot of unnecessary mallocs for pushing/poping parser state.
2014-08-16 11:41:19 +02:00
Enno Rehling 41d42fa248 localization of alliance status "ALL".
fix for https://bugs.eressea.de/view.php?id=1993
2014-08-16 03:07:37 +02:00
Enno Rehling 61ebd1d6b7 fix accidental assignment instead of comparison. 2014-08-14 20:08:29 +02:00
Enno Rehling fa0c999d3e Merge branch 'Bug-1525-and-1872' of github.com:CTD1/eressea-server-bugfixing into CTD1-Bug-1525-and-1872 2014-08-14 20:06:14 +02:00
Enno Rehling 158d4f8d4b MSVC: compile cleanly with level 4 warnings 2014-08-14 19:39:45 +02:00
CTD 7dd86959a9 Bewegung durch Region blockieren
Etwas größerer Umbau. Befreundete Wachen erlauben nicht mehr automatisch
die Durchreise.  Es werden sowohl die Befreundeten als auch die
Feindlichen Bewacher in der Region gezählt, und die Differenz mit
rules.guard.guard_number_stop_prob multipliziert. Bei 700 Feindlichen
und keinen freundlichen Wachen ist die Chance dann 100%. Bei 100
Feindlichen und 400 freundlichen ist sie 0.
Zusätzlich gibt rules.guard.castle_stop_prob 10% pro Burgenlevel für den
Burgenbesitzer.
rules.guard.region_type_stop_prob gibt 10% für Regionen mit weniger
Begehbaren Pfaden (Berge und Vulkane) und das doppelte für sehr schwer
passierbare Regionen (Sümpfe und Gletscher).

Für Spiele mit Wahrnehmung (E2) sollten die Werte für:
rules.guard.skill_stop_prob
rules.guard.castle_stop_prob
rules.guard.region_type_stop_prob

auf 5% Angepasst werden.
2014-08-14 12:37:59 +02:00
Enno Rehling ff73358b9c Some tiny errors that slipped through Visual Studio's warnings. 2014-08-14 09:59:33 +02:00
Enno Rehling dafe71f4b8 micro optimizations.
removing a lot of mallocs through strdup  by replacing getcommand calls with get_command, which takes a buffer. only one left.
removing mkname calls with a static buffer for keyword-tokens.
commit the schema file I had lying around.
2014-08-14 09:57:05 +02:00
Enno Rehling 38352ef3bf add the build number to saves.
this should make future debugging sessions easier, telling us what bugs were or were not fixed at the time of an incident.
added a test to make sure data file can be read/written, and at a minimum, sets global data-version.
also clean up test framework a bit, and introduce a helpful macro.
2014-08-14 05:06:36 +02:00
Enno Rehling b6f627a5d8 Merge branch 'Feature-1865' of github.com:CTD1/eressea-server-bugfixing into CTD1-Feature-1865
Conflicts:
	src/economy.c
2014-08-13 19:44:57 +02:00
Enno Rehling 3c2ae7ca93 preview script and logging cleanup
1. all log messages will be terminated with \n, whether the user provided
	it or not.
2. remove a bunch of print() calls from scripts to reduce clutter
3. replace printf calls with log_* calls to reduce clutter
4. add the new release preview script
2014-08-11 12:04:12 +02:00
Enno Rehling 45a16681c4 logic fix for FOLLOW (if we are not following a ship, and cannot see the target unit, then exit). 2014-08-08 18:18:17 +02:00
CTD fe0ff71aa1 E2 fähig gemacht
Der Burgenbesitzer sieht nur noch etwas wenn er auch Leuchtturmbesitzer
ist.
Das geht jetzt auch für E2 ohne region_owner rule.
2014-08-08 17:15:12 +02:00
CTD 90cf6d845f replace strstr
Neu Funktion check_param die überprüft ob ein übergebener Wert in dem
Wert des entsprechenden Parameters steht.
2014-08-08 13:29:26 +02:00
Enno Rehling 8dd4b783b1 fix gcc error 2014-08-08 01:26:35 +02:00
Enno Rehling 3767957caa indentation + whitespace changes 2014-08-08 01:24:12 +02:00
Enno Rehling 1918f56990 indentation + whitespace changes 2014-08-08 01:16:35 +02:00
CTD bf4bda36a2 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-08 01:14:58 +02:00
CTD f33de38812 Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-08 01:14:57 +02:00
CTD 0d0aad593a Abtreiben Unabhänig von Wahrnehmung
Der Kapitän sollte den Leuchtturm auch sehen, wenn das Besitzer mangels
genug Wahrnehmung das Schiff nicht sieht. Sprich der Sturmschutz des
Leuchtturm hängt jetzt nicht mehr vom Wahrnehmungstalent der Insassen
sondern nur noch von der Größe des Leuchtturms ab, und davon ob der
Unterhalt bezahlt wurde.
sail() ruft als einzige Funktion check_leuchtturm() ohne Partei auf,
daher der einfach Check ob eine Partei übergeben wurde oder nicht.
2014-08-08 01:14:56 +02:00
CTD 549a4fbe5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
Leuchttürme verhindern nicht das Abtreiben sondern reduzieren nur die
Chance auf 1/3.
Das ist für Automatisierung schlecht, daher Reduzieren Leuchttürme das
Abtreiben jetzt auf 0.
Für E4 oder zukünftige Spiele habe ich das auch gleich konfigurierbar
gemacht.
rules.lighthous.stormchancedevisor gibt den Wert an durch den die
Sturmchance geteilt wird, 0 = kein Abtreiben wenn Leuchtturm in
Reichweite.
2014-08-08 01:14:55 +02:00
Enno Rehling 13ba2b8362 Merge pull request #24 from CTD1/Bug-1610
Bug 1610 FOLGE SCHIFF und andere lange Befehle
2014-08-08 01:11:31 +02:00
Enno Rehling 1470b56253 Merge pull request #23 from CTD1/Piraterie
Piraterie repariert
2014-08-08 01:06:49 +02:00
Enno Rehling cad82999d0 Merge pull request #22 from CTD1/Bug-1857
Bug 1857 abtreiben trotz leuchtturmüberwachung e2
2014-08-08 01:00:59 +02:00
Enno Rehling b3a58c6a43 fix tabs 2014-08-08 00:37:51 +02:00
Enno Rehling 500e24d71e Merge pull request #18 from CTD1/Bug-1938
Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
2014-08-08 00:36:36 +02:00
CTD c49c3af1d9 Bug 1610 FOLGE SCHIFF und andere lange Befehle
FOLGE SCHIFF ist genau wie FOLGE EINHEIT jetzt ein Halblanger Befehl.
Das ist konsequent und entfernt an einigen Stellen Spezialbehandlungen.
2014-08-07 18:53:29 +02:00
CTD 7ac56b3fbf Piraterie repariert
Die Piraten sind oftmals einfach in ein falsches (leeres) Ozeanfeld
gesegelt, wenn es irgendwo ein Opfer gab.
2014-08-07 16:02:47 +02:00
CTD 906dd457fc Abtreiben Unabhänig von Wahrnehmung
Der Kapitän sollte den Leuchtturm auch sehen, wenn das Besitzer mangels
genug Wahrnehmung das Schiff nicht sieht. Sprich der Sturmschutz des
Leuchtturm hängt jetzt nicht mehr vom Wahrnehmungstalent der Insassen
sondern nur noch von der Größe des Leuchtturms ab, und davon ob der
Unterhalt bezahlt wurde.
sail() ruft als einzige Funktion check_leuchtturm() ohne Partei auf,
daher der einfach Check ob eine Partei übergeben wurde oder nicht.
2014-08-07 14:37:49 +02:00
CTD 37e0226e5b Bug 1857 abtreiben trotz leuchtturmüberwachung e2
Leuchttürme verhindern nicht das Abtreiben sondern reduzieren nur die
Chance auf 1/3.
Das ist für Automatisierung schlecht, daher Reduzieren Leuchttürme das
Abtreiben jetzt auf 0.
Für E4 oder zukünftige Spiele habe ich das auch gleich konfigurierbar
gemacht.
rules.lighthous.stormchancedevisor gibt den Wert an durch den die
Sturmchance geteilt wird, 0 = kein Abtreiben wenn Leuchtturm in
Reichweite.
2014-08-07 14:04:03 +02:00
CTD 8b9f344484 Fixing server crash
Mit rules.region_owner_pay_building  ein kann es vorkommen, das wegen
einem leeren Gebäude die größte Burg in der Region gesucht wird. Wenn es
aber keine Burg in der Region gibt, wird building_owner mit NULL
aufgerufen. Das musste abgefangen werden.
2014-08-07 11:24:55 +02:00
Enno Rehling 405c63f447 this old race alias stuff has been dead code for years. 2014-08-06 23:44:47 +02:00
Enno Rehling afd41286b5 config file reading based on game name and install location. 2014-08-03 20:37:05 +02:00
CTD 51356b061c Feature 1865 leere unterhaltspflichtige Gebäude
Gebäude ohne Besitzer werden automatisch vom Regionsbesitzer übernommen
(Die Einheit wird sozusagen der neue Gebäudebesitzer). Betreten dann nur
noch wenn Helfe Bewache vom Regionsbesitzer.
Wichtig:
<param name="rules.region_owners" value="1"/>, ist Voraussetzung,  es
geht also nicht in E2.
Es kann für beliebige Gebäude eingeschaltet werden.
Example config :
<param name="rules.region_owner_pay_building" value="market harbour
lighthouse"/>
2014-08-01 16:13:35 +02:00
CTD 8aa356df75 Bug 1938 [E3] Magiepatzer kaputt (auraverlust statt kostensteigerung)!
Erst Bezahlen, dann Patzer. Sonst werden die Kosten im Falle des
"kleinsten" Patzers noch beim aktuellen Spruch erhöht.
2014-07-28 15:38:39 +02:00
Enno Rehling bd2809a975 removing the core directory (moving to res and scripts).
it's from when open-source Eressea was limited, and we no longer need the separation.
JSON configuration for ship flags.
2014-07-28 14:27:30 +02:00
Enno Rehling d994caf7a3 Merge branch 'master' of https://github.com/eressea/server 2014-07-26 22:52:31 +02:00
Enno Rehling d9457a2488 rewrite of the Lua module system.
At this time, only E2 is working.
Fixing a lot of old code (monster is no longer id 0).
package.paths configured from eressea.ini
install directory configured from eressea.ini
moving building_action into a seaprate module (it's deprecated)
2014-07-26 22:52:25 +02:00
Enno Rehling 955a57273d code review changes 2014-07-24 08:04:30 +02:00
Enno Rehling 10e08ab306 Merge pull request #14 from CTD1/master
Bug 1755 Beschworene Skelette mit Ausdauerproblemen
2014-07-24 07:58:50 +02:00
Enno Rehling 2bec7e2bbe save game id in the data file, not name of XML file 2014-07-23 11:54:51 +02:00
Enno Rehling 018d4ca38e fix quest keys to work again.
add a function to walk borders with a callback.
2014-07-22 10:59:47 +02:00
Enno Rehling 13165f2354 Move quest objects to the module that uses them (museum portals). 2014-07-21 11:34:57 +02:00
Enno Rehling e44d4aa9b9 implemented a suggested change to RESERVE.
http://bugs.eressea.de/view.php?id=1675#c5240
new setting "rule.reserve.twophase" reserves from self first, before reserving from others.
fix a crash when trying to flush logs and there is no logfile.
2014-07-20 06:19:21 +02:00
CTD 4cfa1ec7c3 Bug 1755 Beschworene Skelette mit Ausdauerproblemen
Sowohl Beschworenen Untote als auch Monster (Drachen, für Monster-Untote
war es Ok) hatten keine Anpassung ihrer Max-HP nach der Zuweisung von
Skills.
2014-07-18 13:15:18 +02:00
Enno Rehling ae238799b4 Merge pull request #12 from CTD1/master
Bugfix http://bugs.eressea.de/view.php?id=2009
2014-07-17 15:11:00 +02:00
Enno Rehling 1500bcac70 REKRUTIERE RASSE funktioniert nicht (Bug 2012)
http://bugs.eressea.de/view.php?id=2012
init_locales must not be called before races have been configured.
make jsonconf initialize translations
handle missing strings in translations, log errors.
2014-07-17 14:38:56 +02:00
CTD 5e2c5657bd Falscher Magischer Beutel bei Gewichtsberechnung
Bei der Änderung
92f43a7b51
wurde der Magische Beutel durch den Magischen Kräuterbeutel ersetzt, so
das dieser nun das Gewicht reduzierte und der "Bag of Holding" völlig
nutzlos wurde.
2014-07-17 12:59:47 +02:00
CTD 3bd63955a2 Klammern vergessen 2014-07-16 10:28:32 +02:00
CTD1 700a88fd79 Umlaute in Kommentaren
sind doof.
2014-07-15 15:46:02 +02:00
CTD1 6987c61d97 Bug 0002014: Zwergenausrüstung kann nicht hergestellt werden
Nicht auf die Fraction Rasse checken, (die ist normalerweise Halbling, kann aber auch Zwerg sein wenn mit der Starteinheit eigenartige Dinge gemacht wurden) sondern ob der Hersteller eine Zwergen oder Golem ist.
Da Zwergensachen nur von Zwergen benutzt werden können, stellt es keinen Vorteil für andere Völker da wenn sie über Golems Zwergensachen machen können.
2014-07-15 15:34:42 +02:00
CTD1 38a754844e BUG 0001980: Gegener hält Burg obwohl alle geflohen sind!
http://bugs.eressea.de/view.php?id=1980
Der Test unten erzeugt eine Temp-Einheit welche nach dem Kampf die Burg hält, trotz einer vernichtenden Niederlage innerhalb von 2 Kampfrunden. Der Angreifer darf die Burg zwar betreten, bekommt aber nicht das Kommando.
Grund ist das beim Betreten der Burg via u_set_building() nur dann die betretende Einheit zum Burgenbesitzer wird wenn es keinen Burgenbesitzer gibt.
Die eher aufgerufene Funktion building_owner() versucht zwar nach dem Kampf einen neuen Burgenbesitzer zu finden, da sich zu diesem Zeitpunkt aber nur eine Tote Einheit und einen Temp Einheit, beide mit 0 Personen, in der Bug befinden schlägt dies Fehl. Es wird von der Funktion zwar 0 zurückgegeben, aber b->_owner wird nicht zurückgesetzt (Vermutlich da der Server an anderer Stelle sonst annimmt das noch nie jemand in der Burg war). Daher die Überprüfung bei u_set_building ob der Burgenbesitzer tot ist, und wenn ja wird die betretende Einheit neuer Burgenbesitzer.

local r1 = region.create(1, 2, "plain")
local f1 = faction.create("a@b.de", "human", "de")
local f2 = faction.create("c@d.de", "human", "de")
f1.age=20
f2.age=20

local b1 = building.create(r1, "castle")
b1.size = 100

local u0 = unit.create(f1, r1, 10)
u0.building = b1
u0:add_item("money", u0.number * 100)
u0:clear_orders()
u0:add_order("KÄMPFE")
u0:add_order("MACHE TEMP 1")
u0:add_order("ENDE")

local u1 = unit.create(f1, r1, 100)
u1.building = b1
u1:add_item("money", u1.number * 100)
u1:clear_orders()
u1:add_order("KÄMPFE FLIEHE")
u1:add_order("GIB TEMP 1 ALLES PERSONEN")
u1:add_order("GIB TEMP 1 ALLES")
u1:add_order("GIB TEMP 1 Kommando")

local u2 = unit.create(f2, r1, 101)
u2:add_item("sword", u2.number)
u2:add_item("money", u2.number * 100)
u2:set_skill("melee", 16)
u2:clear_orders()
u2:add_order("KÄMPFE")
u2:add_order("ATTACKIEREN " .. itoa36(u1.id))
u2:add_order("BETRETE BURG " .. itoa36(b1.id))

process_orders()


Das sollte für Schiffe eigentlich das gleiche sein, also da die gleiche Änderung.
2014-07-15 15:24:21 +02:00
Enno Rehling b2b35fd9d0 add a test for the E3 reduced give quota.
foreign units receive only 50% of silver given to them.

Conflicts:
	tests/pool.lua
2014-07-07 03:41:33 +02:00
Enno Rehling 68d96014b1 a new method for finding out that a unit died in battle.
turns out, a unit can have 0 people without dying or being a TEMP (GIVE them all away, then RECRUIT more).
2014-07-06 13:00:14 -07:00
Enno Rehling fdae518ef7 also read the extended race::ec_flags from JSON configuration. 2014-07-06 00:53:15 -07:00
Enno Rehling 88f9d247bd Revert "use race::flags|RCF_NOGIVE instead of race::ec_flags|GIVEITEM"
E3 Tests (GIVE) did not pass.

This reverts commit 5ec3f5b83a.
2014-07-06 00:29:52 -07:00
Enno Rehling 5ec3f5b83a use race::flags|RCF_NOGIVE instead of race::ec_flags|GIVEITEM
None of this has tests, it'd going to be years before a change like this can be made without fear D-:
2014-07-05 23:31:34 -07:00
Enno Rehling b21cb8f5c7 Simple test for rules.give (there are many more, can_give deserves a test to itself).
The more tests I write, the more I hate the infrastructure for them.
2014-07-05 23:06:51 -07:00
Enno Rehling f14264e3bb test coverage for can_steal.
add a default message for when no messages are loaded, so that msg_feedback/msg_message doesn't return NULL when XML has not been laoded.
initialize some core stuff before running tests (there probably needs to be more).
2014-07-05 20:14:11 -07:00
Enno Rehling 072f927d5b replace RCF_CANSTEAL with RCF_NOSTEAL for less confusing default behavior. 2014-07-05 19:29:12 -07:00
Enno Rehling 5b437c5833 Replace RCF_PLAYERRACE with RCF_NPC, it's the less confusing default for tests. 2014-07-05 19:21:06 -07:00
Enno Rehling 4a8707b06d fix a fall-through in jsonconf causing an error message.
add tests for pool, not working because of missing GIVEITEM on
JSON-configured races (TBD).
2014-07-05 18:21:20 -07:00
Enno Rehling d743d32215 bind "blocked" flag for Lua (bug 1922).
remove unused region-flags.
2014-07-05 10:46:43 -07:00
Enno Rehling d5e9899544 remove battle statistics, the flag is not set anywhere, and I have not used them in ages. 2014-07-05 10:45:03 -07:00
Enno Rehling 26d6808ea1 read building-maintenance requirements from JSON. 2014-07-04 21:48:17 -07:00
Enno Rehling e0ee82e977 Do not default newly created buildings to being maintained and working (do that in the create order instead).
This was mucking up one of the new tests.
2014-07-04 16:13:48 -07:00
Enno Rehling 22c5b4d45c Merge branch 'master' of github.com:eressea/server 2014-07-02 21:27:53 -07:00
Enno Rehling b5439a1279 fix line/column calculation for JSON Errors.
+ start building a test for http://bugs.eressea.de/view.php?id=1692
2014-07-02 21:17:31 -07:00
Enno Rehling 91a776c0ac begin configuring spells from JSON 2014-07-02 21:15:22 -07:00
Enno Rehling ee1d97df19 remov e the old recycling quota, it was always 0.5 everywhere, and a
silly feature..
2014-07-01 20:36:31 -07:00
Enno Rehling 54a3c2e070 recycle quota is always 0.5 in every game, no reason to toch this. 2014-06-30 19:25:08 -07:00
Enno Rehling 927ada92b6 improve construction data in JSON.
test castle naming function
2014-06-30 19:21:42 -07:00
Enno Rehling e39336e87a move declaration to top of block 2014-06-29 20:09:21 -07:00
Enno Rehling 7a6b237de0 Merge branch 'master' of github.com:TomBraun/server into TomBraun-master
Conflicts:
	src/kernel/build.c
	src/kernel/item.c
2014-06-29 20:05:44 -07:00
Enno Rehling 9dcf5bbf4c fix a crash for invalid race enums 2014-06-29 19:15:03 -07:00
Enno Rehling 12661fc373 new_itemtype has been replaced, delete it. 2014-06-29 19:09:37 -07:00
Enno Rehling 22f64abaf2 caching get_race() calls 2014-06-29 19:04:30 -07:00
Enno Rehling c3dfbdea18 eliminate new_race array in favor of a function (TODO: make it fast) 2014-06-29 18:10:02 -07:00
Enno Rehling 11a264742b appearance is something only items have, so move it to item_type 2014-06-29 17:35:37 -07:00
Enno Rehling 2a00301949 unused variable 2014-06-29 17:31:33 -07:00
Enno Rehling 062ba71bd7 fix reading items in xmlreader (still has no tests) 2014-06-29 17:29:41 -07:00
Enno Rehling 5d32896407 rt_register is no longer required, new_resourcetype replaced by rt_get_or_create. 2014-06-29 17:02:45 -07:00
Enno Rehling 95929a99b5 we are about to remove rt_register, but not quite yet. 2014-06-29 16:46:42 -07:00
Enno Rehling 773f3767d3 eliminate cb_items 2014-06-29 16:41:03 -07:00
Enno Rehling 7ee6f0444d reduce use of cb_items, because we want to remove it. 2014-06-29 16:39:53 -07:00
Enno Rehling 7249630e3c Eliminate some Visual Studio warnings, rename itemnames->resourcenames. 2014-06-29 15:41:04 -07:00
Enno Rehling 6bd2b3be26 add a test for stone golems building castles.
fix a bug when stone golems use themselves up.
2014-06-28 23:58:00 -07:00
Enno Rehling a48cca5db8 building naming function configured from JSON (this needs work).
started writing tests for castles.
2014-06-28 16:55:28 -07:00
Enno Rehling 612dfea36f Merge branch 'master' of github.com:eressea/server 2014-06-28 16:39:54 -07:00
Enno Rehling 89e7a7826f added some tests for building buildings. 2014-06-28 16:19:46 -07:00
TomBraun c31c436cc7 change u->number >> 0 to u->number>0 2014-06-28 20:45:17 +02:00
Enno Rehling 34ce9a0573 JSON configuration can read strings, with test. 2014-06-28 10:37:40 -07:00
TomBraun b346788e43 Merge remote-tracking branch 'eressea/server' 2014-06-27 07:35:21 +02:00
Enno Rehling 39f78354b9 Merge branch 'master' of github.com:eressea/server 2014-06-26 22:06:38 -07:00
Enno Rehling 68aa903130 make tests pass through valgrind
introduce more #ifdef LOMEM to bitfield structs.
2014-06-26 21:48:01 -07:00
Enno Rehling c5cf8bb3be add some asserts, chasing a valgrind message 2014-06-26 21:27:50 -07:00
Enno Rehling 5e835618f3 fix weight calculation, uninitialized value 2014-06-26 21:02:03 -07:00
Enno Rehling dba51bf0f7 remove duplicate handling of "speed" attribute in JSON
add weight and capacity in this test (still broken)
2014-06-26 19:11:34 -07:00
TomBraun 99da4de9ad Define "pf_generic cast = 0" and "pf_generic fumble = 0" early
Visual Studio 2013 express don't compile without errors if
this definition comes to late.
2014-06-26 07:20:59 +02:00
TomBraun be4e02cc16 Merge remote-tracking branch 'upstream/master' 2014-06-26 07:37:30 +02:00
Enno Rehling d0e2ad542a tests for basic movement 2014-06-25 14:30:24 -07:00
Enno Rehling 12e15978b8 read weight, capacity and flags of items 2014-06-25 08:00:09 -07:00
Enno Rehling af77a1d8e5 speed up float params, exploiting alphabetic sorting 2014-06-25 07:25:54 -07:00
Enno Rehling 07d10d9ab0 add tests for get_param functions 2014-06-25 07:22:39 -07:00
TomBraun d4fdddbc27 Iron golems can now create dwarfen only items
(makes irongolems usable for dwarfs)
2014-06-25 13:24:06 +02:00
TomBraun 0400bcafad Iron and Stone golems now use the corect number of stones / iron.
0001946: Eisengolems stellen keine Waren her
http://bugs.eressea.de/view.php?id=1921
2014-06-25 13:22:42 +02:00
TomBraun 84fb776d1c Fixed a bug that crasehed the server
when Stonegolems created a new building
and the whole unite was consumed during this process
(could not enter the new building as no one was left in the unit)
2014-06-25 13:15:37 +02:00
Enno Rehling 31c0e5c2a4 read items from JSON, with no properties yet 2014-06-24 22:54:10 -07:00
Enno Rehling 92f43a7b51 eliminate it_find calls, replace it_find with something backed by rt_find 2014-06-24 22:44:05 -07:00
Enno Rehling dc8a8cdd71 rt_find -> get_resourcetype optimization 2014-06-24 08:19:11 -07:00
Enno Rehling d581737744 optimization: caching resource types in get_resourcetype.
eliminate some it_find calls.
eliminate static variables, they make testing hard.
2014-06-24 07:42:45 -07:00
Enno Rehling 7adb8498aa Merge branch 'fix_block_movement' of github.com:stm2/server into stm2-fix_block_movement
Conflicts:
	scripts/tests/eressea.lua
	src/kernel/move.c
2014-06-23 20:34:07 -07:00
Enno Rehling 77ee0b7af7 remote the item_t enum for good 2014-06-23 19:17:13 -07:00
Enno Rehling 73da14e305 getting rid of the olditemtypes[] array
reduce use of statics
reduce use of item_t enum
2014-06-23 07:28:10 -07:00
Enno Rehling 1444ee58f2 kill XEBALLOON etc, fix some strings 2014-06-22 10:43:05 -07:00
Enno Rehling 2c831230a0 Added a test for expensive skills.
When resetting the game rules, make sure basic resources (money, hp, person) are initialized.
2014-06-22 07:55:14 -07:00
Enno Rehling d9972a9da9 call init_skills when not using JSON config 2014-06-21 14:39:56 -07:00
Enno Rehling bfadc4914f add JSON configuration to skills, and tests 2014-06-21 08:53:14 -07:00
Enno Rehling 46f6628a08 remove obsolete commands (PRAY) and parameters 2014-06-21 07:34:36 -07:00
Enno Rehling bff25f3c51 move skill_t into a separate file, give it unit tests.
name functions the same as we did for keyword/direction earlier.
to do: json configuration and lua test.
2014-06-20 23:59:04 -07:00
Enno Rehling ceabbebc90 switch remaining flags from unsigned to int. 2014-06-18 20:53:06 -07:00
Enno Rehling eb567918e5 forgot to init the bindings for game.pkg
next problem to solve: skills
2014-06-17 23:50:13 -07:00
Enno Rehling 3625ba6a95 remove static variables optimizations, they create global state that is bad for testing 2014-06-17 23:10:55 -07:00
Enno Rehling 8166519d30 add a list of valid coasts to ship definition in JSON.
fix endless loop in error-line counting.
2014-06-17 21:33:42 -07:00
Enno Rehling b6b790d7e7 add a config.reset function to clear configuration state before tests. 2014-06-17 08:46:22 -07:00
Enno Rehling 0675c50c7f keyword lookup macro 2014-06-16 23:05:39 -07:00
Enno Rehling 5c78a3883e cleaning up terrains, reading race flags from a JSON array 2014-06-16 22:43:40 -07:00
Enno Rehling 33928568cf finally have all the scaffolding to write a test with ships.
configure terrain flags from json.
ships are always allowed to enter SEA regions.
2014-06-16 22:19:19 -07:00
Enno Rehling b40ddaeaa1 add test for keyword aliases, add keyword to strings for reverse lookup 2014-06-16 20:41:08 -07:00
Enno Rehling 0af5e96e3a Renaming keyword tokens to English. 2014-06-16 20:16:06 -07:00
Enno Rehling 249a4390c4 read keyword translations from JSON configuration. 2014-06-16 11:30:23 -07:00
Enno Rehling 645a7fcde6 fix keyword translations, they use critbit, not tokens 2014-06-16 10:32:30 -07:00
Enno Rehling 6a20594fd3 renamedtest files in the rest of the makefiles, too. oops. 2014-06-16 08:07:08 -07:00
Enno Rehling 125fd519a8 rename test files.
add tests for keyword.c, incomplete.
2014-06-16 08:01:59 -07:00
Enno Rehling c8dc6be6f2 rename get_keyword, because something else should have that name. 2014-06-16 07:19:22 -07:00
Enno Rehling 64e0c221ec directions can now be read from json configuration.
rename a couple of functions for more consistency across modules.
2014-06-15 22:17:08 -07:00
Enno Rehling acbef7a3a0 fix missing locales initialization 2014-06-15 21:19:47 -07:00
Enno Rehling a9f0538d8e keyword_t and direction_t are moving into their own module.
direction parser gets new initialization function, for use in jsonconf later.
add unit tests for directions.
2014-06-15 18:34:39 -07:00
Enno Rehling 812cb98dff begin binding locales (need to init_locales in the right place, still).
fix indentation in some places.
add some assertions.
2014-06-14 07:52:32 -07:00
Enno Rehling 24dc006e43 fix json config for terrains, some other stuff. 2014-06-13 17:36:05 -07:00