Enno Rehling
754ad78db7
WIP: remove GUARD_* flags.
...
TODO: does not compile
TODO: write new guard.test.c tests
2016-10-31 07:45:06 +01:00
Enno Rehling
2fbc7a44d5
add missing tests for recent failures.
2016-10-23 13:02:53 +02:00
Enno Rehling
a921a6594a
Merge branch 'develop' of https://github.com/ennorehling/eressea.git
2016-10-23 10:03:46 +02:00
Enno Rehling
f12eda8bdf
remove cfindhash, again.
...
curse and unit ids can collide, there is no reason why they should be from the same pool.
2016-10-23 10:03:33 +02:00
Enno Rehling
ac4e32a8f5
Merge branch 'master' into develop
2016-10-23 09:59:42 +02:00
Enno Rehling
34a6dd8d54
fix crash in 997: re-introduce cfindhash.
...
this prevents duplicate curse.no values.
2016-10-22 22:35:10 +02:00
Enno Rehling
38721e2046
remove all mention of centaurs from the code and configuration
2016-10-07 19:33:50 +02:00
Enno Rehling
c53ac9d8aa
remove RS_FARVISION, it is the only spell that uses units.
2016-10-01 21:03:16 +02:00
Enno Rehling
423e293745
some more config lookup caching
2016-09-23 20:39:08 +02:00
Enno Rehling
f8ac5c390d
SAMRT_INTERVALS is no longer an option, but regular
2016-09-20 09:39:21 +02:00
Enno Rehling
9af5fb0326
cache some of the highest-ranking ct_find callers
2016-09-19 04:23:49 +02:00
Enno Rehling
e7739867df
use curse_type caching in att_modification
2016-09-19 03:55:12 +02:00
Enno Rehling
6c9c460815
fix failing unit tests, remove deleted unit from f->units list.
2016-09-18 11:46:54 +02:00
Enno Rehling
f946d50001
alternative implementation for dfindhash that doesn't use as much memory.
...
do not set u->faction = NULL for deleted units.
2016-09-11 20:09:48 +02:00
Enno Rehling
87fed5b7d2
Merge pull request #548 from ennorehling/refactor-volcano
...
new tests, TODOs removed, remove code duplication
2016-08-31 17:19:29 +01:00
Enno Rehling
8a157de36c
only name monsters that have a naming function. test is bad, failing.
2016-08-31 16:43:02 +02:00
Enno Rehling
2d1a13a811
death to static caches!
2016-08-30 07:51:05 +01:00
Enno Rehling
873e6f8086
remove more static curse_type variables
2016-08-29 20:34:30 +01:00
Enno Rehling
f47113e9bd
eliminate static curse variables (gbdream & more)
2016-08-29 20:31:18 +01:00
Enno Rehling
0d609f2115
test magicwalls and strongwalls effects on buildings.
2016-08-29 08:53:09 +01:00
Enno Rehling
33701ab891
make describe_braineater more generic (describe_race).
2016-08-28 20:44:45 +01:00
Enno Rehling
0f3de70ced
refactor to push back the const-ness of generated names.
2016-08-28 19:06:14 +01:00
Enno Rehling
0ac30c65a1
refactoring prior to removing static variable
2016-08-28 18:15:00 +01:00
Enno Rehling
b2e79dc5e9
building maintenance unit tests.
...
backfilling some very basic test coverage.
2016-08-21 20:01:30 +02:00
Enno Rehling
4f5bd43dcf
Merge branch 'master' into develop
...
Conflicts:
src/buildno.h
2016-08-07 00:47:50 +02:00
Enno Rehling
44b6a87649
death by NMR was broken, because I can't write loops good.
2016-08-07 00:40:10 +02:00
Enno Rehling
db5b90e80b
clarify building_type.maxsize and add error logging for bug 2221.
...
https://bugs.eressea.de/view.php?id=2221
2016-08-06 13:52:29 +02:00
Enno Rehling
d0f54bf69a
Merge branch 'feature/kill-maintenance' of https://github.com/ennorehling/eressea into ennorehling-feature/kill-maintenance
...
Conflicts:
src/kernel/config.c
src/kernel/config.h
src/tests.c
2016-07-30 23:27:03 +02:00
Enno Rehling
98a3b31953
cfindhash is gone
2016-03-25 21:51:49 +01:00
Enno Rehling
02cfacd7f8
refactorings
...
- learn_skill from unit.c to study.c
- add academy.c module
2016-03-09 14:52:50 +01:00
Enno Rehling
3d5c7ba8fb
refactoring: move produceexp from unit.c to study.c
2016-03-09 14:50:54 +01:00
Enno Rehling
8a9d617aa3
read_referernce takes a gamedata object.
...
with all the trimmings that requires,
this is for github issue $479
2016-02-24 11:53:22 +01:00
Enno Rehling
7f6ced99b9
attrib.read gets a gamedata object (remove dependency on global.data_version)
2016-02-24 11:44:18 +01:00
Enno Rehling
ca500a499e
adding a much-needed getter function for faction_alive
2016-01-11 12:25:23 +01:00
Enno Rehling
b4389c91fe
fix compilation (what was I thinking?), remove uses of f.alive where they should not be needed.
2016-01-11 11:54:45 +01:00
Enno Rehling
5187788f3c
pass the parent of an attribute into a_age and attrib_type::age
2015-12-16 22:18:44 +01:00
Enno Rehling
c85e489f4f
Merge branch 'monster_leftovers' of https://github.com/stm2/server into stm2-monster_leftovers
...
Conflicts:
src/kernel/unit.c
src/laws.test.c
src/monsters.c
2015-11-25 14:25:42 +01:00
Enno Rehling
f559c263e3
cleanup of config.c: move more code to other modules like unit.c and faction.c
2015-11-24 19:53:27 +01:00
Enno Rehling
84a943b698
fix gcc build
2015-11-24 19:15:53 +01:00
Enno Rehling
64b84481b2
refactoring: move parsing and allies code out of config.c
2015-11-24 18:52:09 +01:00
Enno Rehling
817d81dbf9
remove the rules.hunger.reduces_skill variable, no game was doing anything other than the default.
2015-11-23 21:05:25 +01:00
Enno Rehling
0a47f0e398
eliminate SkillCap feature, it was stupid and not used by any game, ever
2015-11-23 20:58:51 +01:00
Enno Rehling
2e392b4d7c
eliminate even more static variable caches
2015-11-22 16:14:27 +01:00
Enno Rehling
a4cb5e2906
replace all get_param_* for global.parameters with config_get_*
2015-11-22 10:44:46 +01:00
Enno Rehling
66dd1b8172
remove produce_exp caching in static variables (more slowdown)
2015-11-22 10:21:37 +01:00
Enno Rehling
990fda6234
clean up config.c, remove static configuration caching
2015-11-21 18:13:16 +01:00
Enno Rehling
7e27928d17
eliminate static variables and cache logic from more modules
2015-11-21 12:28:20 +01:00
Steffen Mecke
8cec4b20e0
reduce code obfuscation
2015-11-17 02:14:08 +01:00
Steffen Mecke
1789bc06e9
monster faction may learn from experience
2015-11-17 02:13:57 +01:00
Enno Rehling
b81e56d306
CID 22486 Dereference after null check
2015-11-05 08:32:21 +01:00
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