Commit graph

227 commits

Author SHA1 Message Date
Enno Rehling
42ae086def unit is inisde a building also when it was not paid for 2015-11-02 14:49:48 +01:00
Enno Rehling
24ff4c301d refactor: separate building_is_active from inside_building 2015-11-02 14:18:50 +01:00
Enno Rehling
21a2313e2a CID 22517: Parse warning (PW.PARAM_SET_BUT_NOT_USED) 2015-10-30 15:20:06 +01:00
Enno Rehling
e1eb5098d4 CID 22554: Improper use of negative value (REVERSE_NEGATIVE)
I believe this was a false positive, but more asserts can never hurt.
2015-10-30 12:40:48 +01:00
Enno Rehling
4f25831407 coverity scan CID 22576: arguments in wrong order
I believe that was a false positive, and will try to aquelch it by naming the arguments better.
2015-10-29 11:24:01 +01:00
Enno Rehling
3055f517dc move guard implementation into a module (WIP) 2015-09-12 22:53:54 +02:00
Enno Rehling
7906cdbcb6 do not read gamename from XML, read it from JSON only (two mechanisms for the same feature are too many) 2015-09-12 16:49:18 +02:00
Enno Rehling
8a95ea0c00 speeding up produceexp_chance 2015-09-12 16:41:22 +02:00
Enno Rehling
9bdc811582 produceexp uses a json-configurable constant
make get_param_flt return a double, floats are for wimps.
2015-09-12 16:38:51 +02:00
Enno Rehling
68c448b3fb fix signature of callback 2015-09-12 16:29:57 +02:00
Enno Rehling
d1686849e0 refactoring: move produceexp into unit module, for want of a better one. add a bit of test coverage.
https://bugs.eressea.de/view.php?id=2137 - fix learning-by-doing with less than u->number people.
2015-09-12 16:25:47 +02:00
Enno Rehling
cf08cdf3fb configuration type-fixes: int to bool where appropriate (possibly incomplete)
rename some rules to make it more obvious that they are flags or other integer values.
2015-09-11 10:04:08 +02:00
Enno Rehling
60111282b3 make findunitr be O(1) instead of O(#r->units) 2015-09-09 13:29:58 +02:00
Enno Rehling
de808bf146 change effskill signature to take a region, change eff_skill to work on a skill * to avoid multiple lookups. 2015-08-27 16:16:55 +02:00
Enno Rehling
bc1c3dd712 move NEWATSROI out of item_modification 2015-08-26 19:59:11 +02:00
Enno Rehling
afbc4c816b refactoring ship speed, extract total skills of sailors into a function. 2015-08-07 12:43:18 +02:00
Enno Rehling
8dc4e93e90 fix missing units from CR, add a test, partially convert from FILE* to stream 2015-08-05 14:45:46 +02:00
Enno Rehling
2288b8fb27 Merge remote-tracking branch 'upstream/master' into develop
Conflicts:
	.travis.yml
	s/build
	s/cmake-init
	s/runtests
	src/buildno.h
	src/kernel/config.c
	src/kernel/save.c
	src/kernel/unit.c
	src/laws.c
	src/move.c
2015-08-03 19:43:26 +02:00
Enno Rehling
9938b3fb66 eliminate update_gbdream completely, make code smaller and simpler.
simplify tests (no need to use create_spell if we don't use it)
increase build no for hotfix.
2015-08-02 23:16:41 +02:00
Enno Rehling
d99ffaf1ed filter by curse-type before trying to call update_gbdreams. 2015-08-02 22:45:59 +02:00
Enno Rehling
a119f7617f add some assertions to make sure update_gbdream is not called without a magician 2015-08-02 21:17:21 +02:00
Enno Rehling
59745c7ed0 parentheses to fix operator precedence. 2015-07-03 16:13:24 +02:00
Enno Rehling
8e5fc28bfc refactoring more of goodies.h into strings.h 2015-05-18 08:59:38 +02:00
Enno Rehling
bf5fae2ef5 Fix visual studio compilation for Solthar's curse changes (float/int conversions, uninitialized variable). 2015-05-11 23:54:21 -07:00
Steffen Mecke
d9f8479055 removed duplication in good/bad dreams code 2015-05-07 17:54:59 +02:00
Enno Rehling
88d370a7b8 fixing sea serpent names
https://bugs.eressea.de/view.php?id=2057
2015-04-21 12:35:39 +02:00
Enno Rehling
f06e3371a0 Bug 2089 again. rename giveitem flag to keepitem, because races should default to not holding on to their stuff. 2015-04-19 12:49:39 +02:00
Steffen Mecke
d416a8eef1 fix NAME FOREIGN UNIT
RENAME FOREIGN UNIT used a somewhat naive approach to check if a
unit still had its generic name. Fixed that.
2015-02-11 23:10:43 +01:00
Steffen Mecke
a31898ceb5 fix bug in generic_name, minor improvements
Amusingly, names::generic_name used u->no instead of u->number to determine
singular or plural.
2015-02-11 23:10:27 +01:00
Enno Rehling
83e610ee03 Fixing bug 1802 again, CR contains no Monster names. 2015-02-11 07:57:38 +01:00
Enno Rehling
c54cbfd472 fix copyright notice 2015-01-30 22:10:29 +01:00
Enno Rehling
abca25d1d5 fix indentation in every file
fix copyright date
remove vi ts=2 code
remove a couple of superfluous extern declarations
2015-01-30 20:37:14 +01:00
Enno Rehling
798b3d6ad6 Implement tests for magicpath. They are failing (Bug 2066).
Also move spell and race initialization code from being server-only into game_init, where tests can use it.
2015-01-12 08:18:41 +01:00
Enno Rehling
23b8f2bc8a call init_locales after parse_json from Lua, downgrade missing string warnings during that to DEBUG (because it's quite common not to have them).
also, these int to bool conversion warnings made a good point, even if I could not reproduce them.
2015-01-08 20:55:29 +01:00
Enno Rehling
4e94a95835 remove dead code, move weight(unit) to unit.c 2014-12-25 19:40:40 +01:00
Enno Rehling
c8b9044f78 rename to gettoken, use more widely, add a basic test. 2014-12-22 16:28:17 +01:00
Enno Rehling
c5774e652a also prevent monsters from studying unarmed combat if they cannot learn things.
refactor the unit_can_study functionality into a separate function, we are now using it in multiple places.
2014-12-14 16:17:01 +01:00
Enno Rehling
2c077c25e8 space savings: update data files, remove names from NPC units where their name is their race. 2014-12-09 07:44:26 +01:00
Enno Rehling
0fead39b41 added a function that sets a monster's name to NULL if it is the name of its race.
deprecate old rc_name function (renamed to rc_name_s) because it used a static return string.
2014-12-09 07:20:36 +01:00
Enno Rehling
9394c4324e units without a name will use their race as a default name. 2014-12-09 06:45:21 +01:00
Enno Rehling
b551edbdb3 refactoring: moving unitname to unit.c.
also removing static-string some cruft from config.c.
2014-12-09 05:55:16 +01:00
Enno Rehling
669712f04f rename race_ to _race, to follow the style guide. 2014-12-08 22:06:05 +01:00
Enno Rehling
3dd3761acd prevent an invalid assert when undead heroes are magical 2014-12-07 11:14:14 +01:00
Enno Rehling
5b9eb9080f refactoring: move all monster-related code into monster.c
make some features depend on being NPCs, not monster faction.
2014-11-11 16:53:56 +01:00
Enno Rehling
e9084d9678 when free_gamedata, also unhash all factions. speed up is_monsters(). 2014-11-07 22:58:29 +01:00
Enno Rehling
59c1c23324 refactor config.c, move the find* functions into the modules they belong to. 2014-11-01 18:34:53 +01:00
Enno Rehling
1af315ebf2 move magic out of kernel, into src.
clean up/remove a ton of includes, especially of types.h (include in header if you need it, not in every .c file).
2014-11-01 12:57:01 +01:00
Enno Rehling
81bfb598d0 refactoring modules, cleaning out the config.c kitchen sink.
- cansee_* rules to laws.c
- translations to language.c
- stealth to attributes/,
- rename build.h -> buildno.h
2014-11-01 12:09:56 +01:00
Enno Rehling
a29e6a7f40 fix segmentation fault in new assert (units without a faction) 2014-10-31 22:20:07 +01:00
Enno Rehling
5b6663cad7 Assert that magicians are single-person units in a few places.
Bug 2028 claims that this is not always the case, though I cannot prove it.
2014-10-31 22:03:00 +01:00
Enno Rehling
e9c13cc328 cosmetic changes, quick and easy assert to prevent too many magicians. 2014-10-30 17:48:02 +01:00
Enno Rehling
440aca34ea test special treatment for spells in remove_empty_units. 2014-10-16 08:06:44 +02:00
Enno Rehling
559f1f905a Eliminate dead code: FFL_NOTIMEOUT.
old feature for time-limited factions, not used anywhere.
2014-10-16 07:46:08 +02:00
Enno Rehling
7df47fd25c remove bad configuration caching (TODO: cache inside get_param).
move remove_empty_* functions out of config.c
add basic tests for remove_empty_units (no special units yet).
2014-10-16 07:41:49 +02:00
CTD
c937f59536 XML Option hinzugefügt
Das Segeln nur 1 Skill Level verliert ist Default und somit an.
2014-09-25 09:54:52 +02:00
CTD
9e5e7a3e52 Hunger und Segeltalent
Hungernde Einheiten verlieren nur noch einen Punkt Segeln (ab T2), nicht
mehr das halbe Talent.
Das sollte die meisten Schiffsunfälle durch vergessene Silber derart
abschwächen, das die Schiffe noch aus eigener Kraft zum nächsten Hafen
kommen.
2014-09-15 16:10:57 +02:00
Enno Rehling
a9a0455207 reorganized directory structure.
flattening the directory structure, moving some modules to the src/ directory.
making stealth a separate file, under test.
more tests for some stuff.
2014-08-27 06:40:35 +02:00
Enno Rehling
d435c13bfc adding more tests.
test for build()
test for scale_number()
update submodules
2014-08-26 20:06:49 +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
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
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
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
c3dfbdea18 eliminate new_race array in favor of a function (TODO: make it fast) 2014-06-29 18:10:02 -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
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
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
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
7038b021de fix counting of units, making it slower but more correct 2014-05-24 20:25:06 -07:00
Enno Rehling
535a9e6e53 fix number of units in the report header 2014-04-26 12:24:51 -07:00
Enno Rehling
7358c48580 removing some naming conflicts that hapen when trying to re-enable amalgamation builds. 2014-04-11 19:41:17 -07:00
Enno Rehling
0ae8737062 rename MIN/MAX to _min/_max 2014-03-16 05:03:17 +01:00
Enno Rehling
1a7d892a96 use cmake for autoconf, slim down platform.h 2014-03-15 19:29:11 +01:00
Enno Rehling
03c247c788 I am killing the core/ directory.
Lots of files are moving to a new location in src/
Some intersting CMake changes.
2014-02-18 05:45:00 +01:00
Renamed from core/src/kernel/unit.c (Browse further)