diff --git a/src/common/gamecode/economy.c b/src/common/gamecode/economy.c index 5369e5492..77624ca96 100644 --- a/src/common/gamecode/economy.c +++ b/src/common/gamecode/economy.c @@ -19,6 +19,8 @@ * permission from the authors. */ +#pragma region includes + #include #include #include "economy.h" @@ -79,6 +81,7 @@ #include #include +#pragma endregion typedef struct request { struct request * next; @@ -101,6 +104,27 @@ static int entertaining; static int norders; static request *oa; +#define RECRUIT_MERGE 1 +#define RECRUIT_CLASSIC 2 +#define RECRUIT_ARCHETYPES 4 +static int rules_recruit = -1; + +static void recruit_init(void) +{ + if (rules_recruit<0) { + rules_recruit = 0; + if (get_param_int(global.parameters, "recruit.allow_merge", 1)) { + rules_recruit |= RECRUIT_MERGE; + } + if (get_param_int(global.parameters, "recruit.classic", 1)) { + rules_recruit |= RECRUIT_CLASSIC; + } + if (get_param_int(global.parameters, "recruit.archetype", 0)) { + rules_recruit |= RECRUIT_ARCHETYPES; + } + } +} + int income(const unit * u) { @@ -1091,11 +1115,6 @@ maintain_buildings(region * r, boolean crash) } } -#define RECRUIT_MERGE 1 -#define RECRUIT_CLASSIC 2 -#define RECRUIT_ARCHETYPES 4 -static int rules_recruit = -1; - static int recruit_archetype(unit * u, order * ord) { @@ -1103,18 +1122,7 @@ recruit_archetype(unit * u, order * ord) int want; const char * s; - if (rules_recruit<0) { - rules_recruit = 0; - if (get_param_int(global.parameters, "recruit.allow_merge", 1)) { - rules_recruit |= RECRUIT_MERGE; - } - if (get_param_int(global.parameters, "recruit.classic", 1)) { - rules_recruit |= RECRUIT_CLASSIC; - } - if (get_param_int(global.parameters, "recruit.archetype", 0)) { - rules_recruit |= RECRUIT_ARCHETYPES; - } - } + if (rules_recruit<0) recruit_init(); init_tokens(ord); skip_token(); @@ -1235,16 +1243,6 @@ recruit_archetype(unit * u, order * ord) return -1; } -static void recruit_init(void) -{ - if (rules_recruit<0) { - rules_recruit = 0; - if (get_param_int(global.parameters, "recruit.allow_merge", 1)) { - rules_recruit |= RECRUIT_MERGE; - } - } -} - int recruit_archetypes(void) { if (rules_recruit<0) recruit_init(); diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c index 0abe75c75..1a1067f8c 100644 --- a/src/common/gamecode/laws.c +++ b/src/common/gamecode/laws.c @@ -2925,10 +2925,10 @@ static void age_region(region * r) int stability = r->land->ownership->since_turn; int morale = MORALE_TAKEOVER + stability/10; if (r->land->ownership->owner && r->land->moraleland->morale = MIN(morale, MORALE_MAX); + r->land->morale = (short)MIN(morale, MORALE_MAX); } if (!r->land->ownership->owner && r->land->moraleland->morale = MIN(morale, MORALE_DEFAULT); + r->land->morale = (short)MIN(morale, MORALE_DEFAULT); } } } diff --git a/src/common/gamecode/study.c b/src/common/gamecode/study.c index 63d6be830..aaed7b6ee 100644 --- a/src/common/gamecode/study.c +++ b/src/common/gamecode/study.c @@ -107,24 +107,28 @@ magic_lowskill(unit *u) int study_cost(unit *u, skill_t sk) { - int stufe, k = 50; + static int cost = 0; + int stufe, k = 50; - switch (sk) { - case SK_SPY: - return 100; - break; - case SK_TACTICS: - case SK_HERBALISM: - case SK_ALCHEMY: - return 200; - break; - case SK_MAGIC: /* Die Magiekosten betragen 50+Summe(50*Stufe) */ - /* 'Stufe' ist dabei die nächste zu erreichende Stufe */ - stufe = 1 + get_level(u, SK_MAGIC); - return k*(1+((stufe+1)*stufe/2)); - break; - } - return 0; + if (cost==0) { + cost = get_param_int(global.parameters, "skills.cost", 200); + } + switch (sk) { + case SK_SPY: + return 100; + break; + case SK_TACTICS: + case SK_HERBALISM: + case SK_ALCHEMY: + return 200; + break; + case SK_MAGIC: /* Die Magiekosten betragen 50+Summe(50*Stufe) */ + /* 'Stufe' ist dabei die nächste zu erreichende Stufe */ + stufe = 1 + get_level(u, SK_MAGIC); + return k*(1+((stufe+1)*stufe/2)); + break; + } + return 0; } /* ------------------------------------------------------------- */ diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 9e2846b80..8a11abc7d 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -1347,7 +1347,6 @@ parse_equipment(xmlDocPtr doc) xmlXPathFreeObject(xpathResult); xpathResult = xmlXPathEvalExpression(BAD_CAST "skill", xpath); - assert(!eq->skills); add_skills(eq, xpathResult->nodesetval); xmlXPathFreeObject(xpathResult); diff --git a/src/eressea.sln b/src/eressea.sln index 1ed731289..03173a5c8 100644 --- a/src/eressea.sln +++ b/src/eressea.sln @@ -36,32 +36,26 @@ Global {F70CFB27-8A2F-E447-B452-4E1C590EDA6D}.Profile|Win32.ActiveCfg = Profile|Win32 {F70CFB27-8A2F-E447-B452-4E1C590EDA6D}.Profile|Win32.Build.0 = Profile|Win32 {F70CFB27-8A2F-E447-B452-4E1C590EDA6D}.Release|Win32.ActiveCfg = Release|Win32 - {F70CFB27-8A2F-E447-B452-4E1C590EDA6D}.Release|Win32.Build.0 = Release|Win32 {6F104C0A-DDF5-A34B-A89C-0DC278DCEF6D}.Debug|Win32.ActiveCfg = Debug|Win32 {6F104C0A-DDF5-A34B-A89C-0DC278DCEF6D}.Profile|Win32.ActiveCfg = Profile|Win32 {6F104C0A-DDF5-A34B-A89C-0DC278DCEF6D}.Profile|Win32.Build.0 = Profile|Win32 {6F104C0A-DDF5-A34B-A89C-0DC278DCEF6D}.Release|Win32.ActiveCfg = Release|Win32 - {6F104C0A-DDF5-A34B-A89C-0DC278DCEF6D}.Release|Win32.Build.0 = Release|Win32 {1E8BFF9E-3044-0742-992F-C5765B80FE65}.Debug|Win32.ActiveCfg = Debug|Win32 {1E8BFF9E-3044-0742-992F-C5765B80FE65}.Profile|Win32.ActiveCfg = Profile|Win32 {1E8BFF9E-3044-0742-992F-C5765B80FE65}.Profile|Win32.Build.0 = Profile|Win32 {1E8BFF9E-3044-0742-992F-C5765B80FE65}.Release|Win32.ActiveCfg = Release|Win32 - {1E8BFF9E-3044-0742-992F-C5765B80FE65}.Release|Win32.Build.0 = Release|Win32 {74B1CBD4-3B6E-E544-9475-33FBB0BCE165}.Debug|Win32.ActiveCfg = Debug|Win32 {74B1CBD4-3B6E-E544-9475-33FBB0BCE165}.Profile|Win32.ActiveCfg = Profile|Win32 {74B1CBD4-3B6E-E544-9475-33FBB0BCE165}.Profile|Win32.Build.0 = Profile|Win32 {74B1CBD4-3B6E-E544-9475-33FBB0BCE165}.Release|Win32.ActiveCfg = Release|Win32 - {74B1CBD4-3B6E-E544-9475-33FBB0BCE165}.Release|Win32.Build.0 = Release|Win32 {D893D6B3-805D-9848-8EA4-CDA1B79151F6}.Debug|Win32.ActiveCfg = Debug|Win32 {D893D6B3-805D-9848-8EA4-CDA1B79151F6}.Profile|Win32.ActiveCfg = Profile|Win32 {D893D6B3-805D-9848-8EA4-CDA1B79151F6}.Profile|Win32.Build.0 = Profile|Win32 {D893D6B3-805D-9848-8EA4-CDA1B79151F6}.Release|Win32.ActiveCfg = Release|Win32 - {D893D6B3-805D-9848-8EA4-CDA1B79151F6}.Release|Win32.Build.0 = Release|Win32 {75501170-51C2-E641-BA8B-EDC008184192}.Debug|Win32.ActiveCfg = Debug|Win32 {75501170-51C2-E641-BA8B-EDC008184192}.Profile|Win32.ActiveCfg = Profile|Win32 {75501170-51C2-E641-BA8B-EDC008184192}.Profile|Win32.Build.0 = Profile|Win32 {75501170-51C2-E641-BA8B-EDC008184192}.Release|Win32.ActiveCfg = Release|Win32 - {75501170-51C2-E641-BA8B-EDC008184192}.Release|Win32.Build.0 = Release|Win32 {AD80EB0B-7CB4-42F2-9C95-8CCEF68DB387}.Debug|Win32.ActiveCfg = Debug|Win32 {AD80EB0B-7CB4-42F2-9C95-8CCEF68DB387}.Debug|Win32.Build.0 = Debug|Win32 {AD80EB0B-7CB4-42F2-9C95-8CCEF68DB387}.Profile|Win32.ActiveCfg = Release|Win32 diff --git a/src/eressea.vcproj b/src/eressea.vcproj index ef6f0d368..f58ae52db 100644 --- a/src/eressea.vcproj +++ b/src/eressea.vcproj @@ -67,7 +67,7 @@ /> + + + next) { + const spell * sp = spl->data; + spell_component * spc = sp->components; + char components[128]; + components[0]=0; + for (;spc->type;++spc) { + strcat(components, LOC(loc, spc->type->_name[0])); + strcat(components, ","); + } + fprintf(F, "%s;%d;%s;%s\n", LOC(loc, mkname("spell", sp->sname)), sp->level, LOC(loc, mkname("school", magietypen[sp->magietyp])), components); + } + fclose(F); +} + int main(int argc, char *argv[]) { @@ -628,7 +649,9 @@ main(int argc, char *argv[]) kernel_init(); game_init(); - // run the main script + /* write_spells(); */ + + /* run the main script */ if (luafile==NULL) lua_console(luaState); else { char buf[MAX_PATH]; diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml index db2ac6cf4..bed1dd4c0 100644 --- a/src/res/de/strings.xml +++ b/src/res/de/strings.xml @@ -4026,7 +4026,7 @@ Shadow Call - Erscahffe einen Ring der Regeneration + Erschaffe einen Ring der Regeneration Create A Ring Of Regeneration diff --git a/src/res/e2k9.xml b/src/res/e2k9.xml index fb6b8bb4d..28dd54cd9 100644 --- a/src/res/e2k9.xml +++ b/src/res/e2k9.xml @@ -49,6 +49,8 @@ + + @@ -67,7 +69,6 @@ - @@ -91,6 +92,7 @@ + @@ -103,14 +105,16 @@ + - + + @@ -119,8 +123,10 @@ - + + + diff --git a/src/res/e2k9/races.xml b/src/res/e2k9/races.xml index b08027677..8b1dd18b9 100644 --- a/src/res/e2k9/races.xml +++ b/src/res/e2k9/races.xml @@ -13,7 +13,7 @@ - + @@ -36,7 +36,6 @@ - @@ -44,6 +43,7 @@ + @@ -59,6 +59,7 @@ + @@ -84,6 +85,7 @@ + diff --git a/src/res/messages.xml b/src/res/messages.xml index 5cb6a7b0b..0d167a5b1 100644 --- a/src/res/messages.xml +++ b/src/res/messages.xml @@ -6973,7 +6973,7 @@ - + "$unit($unit) in $region($region): '$order($command)' - Die Einheit steht nicht im benötigten Gebäude, $localize($building)." "$unit($unit) in $region($region): '$order($command)' - The unit must be in a $localize($building) to produce this." diff --git a/src/res/vinyambar-3.xml b/src/res/vinyambar-3.xml index 9f65798f9..48168bb96 100644 --- a/src/res/vinyambar-3.xml +++ b/src/res/vinyambar-3.xml @@ -11,7 +11,7 @@ - Game specific +