diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c index 794139f5d..00e9ff2f7 100644 --- a/src/common/gamecode/laws.c +++ b/src/common/gamecode/laws.c @@ -2035,8 +2035,8 @@ password_cmd(unit * u, struct order * ord) strncpy(pbuf, s, 31); pbuf[31] = 0; c = pbuf; - while(*c) { - if(!isalnum(*c)) pwok = false; + while (*c) { + if (!isalnum(*c)) pwok = false; c++; } if (pwok == false) { diff --git a/src/common/gamecode/randenc.c b/src/common/gamecode/randenc.c index f58470a44..173f577ed 100644 --- a/src/common/gamecode/randenc.c +++ b/src/common/gamecode/randenc.c @@ -1153,9 +1153,10 @@ demon_skillchanges(void) while (weeks--) learn_skill(u, sv->id, 1.0); } if (sv->old>sv->level) { - log_printf("%s dropped from %u to %u:%u in %s\n", - unitname(u), sv->old, sv->level, - sv->weeks, skillname(sv->id, NULL)); + if (!quiet) { + log_printf("%s dropped from %u to %u:%u in %s\n", + unitname(u), sv->old, sv->level, sv->weeks, skillname(sv->id, NULL)); + } } } ++sv; diff --git a/src/common/gamecode/study.c b/src/common/gamecode/study.c index 1b7971c18..63a05179d 100644 --- a/src/common/gamecode/study.c +++ b/src/common/gamecode/study.c @@ -80,13 +80,13 @@ getmagicskill(void) boolean is_migrant(unit *u) { - if (u->race == u->faction->race) return false; + if (u->race == u->faction->race) return false; - if (is_familiar(u)) return false; + if (fval(u->race, RCF_UNDEAD|RCF_ILLUSIONARY)) return false; + if (is_familiar(u)) return false; + if (u->race == new_race[RC_TOAD]) return false; - if (u->race == new_race[RC_TOAD]) return false; - - return true; + return true; } /* ------------------------------------------------------------- */ diff --git a/src/common/kernel/skill.c b/src/common/kernel/skill.c index 3cd15136b..8de88267f 100644 --- a/src/common/kernel/skill.c +++ b/src/common/kernel/skill.c @@ -103,15 +103,15 @@ enable_skill(const char * skname, boolean value) skill_t sk_find(const char * name) { - skill_t i; - if (name==NULL) return NOSKILL; + skill_t i; + if (name==NULL) return NOSKILL; if (strncmp(name, "sk_", 3)==0) name+=3; - for (i=0;i!=MAXSKILLS;++i) { + for (i=0;i!=MAXSKILLS;++i) { if (skill_enabled[i]) { if (strcmp(name, skillnames[i])==0) return i; } - } - return NOSKILL; + } + return NOSKILL; } /** skillmod attribut **/ diff --git a/src/eressea/korrektur.c b/src/eressea/korrektur.c index 2adea2d37..c28c88cb1 100644 --- a/src/eressea/korrektur.c +++ b/src/eressea/korrektur.c @@ -217,12 +217,18 @@ warn_items(void) static boolean kor_teure_talente(unit *u) { - if(effskill(u, SK_TACTICS) >= 1 || - effskill(u, SK_MAGIC) >= 1 || - effskill(u, SK_ALCHEMY) >= 1 || - effskill(u, SK_HERBALISM) >= 1 || - effskill(u, SK_SPY) >= 1) { - return true; + const skill_t expskills[] = { SK_ALCHEMY, SK_HERBALISM, SK_MAGIC, SK_SPY, SK_TACTICS, NOSKILL }; + skill * sv = u->skills; + for (;sv!=u->skills+u->skill_size;++sv) { + int l = 0, h = 4; + skill_t sk = sv->id; + assert(expskills[h]==NOSKILL); + while (lexpskills[m]) l=m+1; + else h=m; + } } return false; } @@ -231,25 +237,23 @@ static void no_teurefremde(boolean convert) { const curse_type * slave_ct = ct_find("slavery"); - region *r; + faction * f; - for(r=regions;r;r=r->next) { - unit *u; - - for(u=r->units;u;u=u->next) { - if (u->faction->no != MONSTER_FACTION && playerrace(u->faction->race) - && is_migrant(u) && kor_teure_talente(u)) - { - if (slave_ct && curse_active(get_curse(u->attribs, slave_ct))) - continue; - log_warning(("Teurer Migrant: %s, Partei %s\n", - unitname(u), factionname(u->faction))); - if (convert) { - u->race = u->faction->race; - u->irace = u->faction->race; - sprintf(buf, "Die Götter segnen %s mit der richtigen Rasse", - unitname(u)); - addmessage(0, u->faction, buf, MSG_MESSAGE, ML_IMPORTANT); + for (f=factions;f;f=f->next) { + if (f->no != MONSTER_FACTION) { + unit *u; + for (u=f->units;u;u=u->nextF) { + if (is_migrant(u) && kor_teure_talente(u)) { + if (slave_ct && curse_active(get_curse(u->attribs, slave_ct))) + continue; + log_warning(("Teurer Migrant: %s, Partei %s\n", unitname(u), factionname(f))); + if (convert) { + u->race = f->race; + u->irace = f->race; + sprintf(buf, "Die Götter segnen %s mit der richtigen Rasse", + unitname(u)); + addmessage(0, u->faction, buf, MSG_MESSAGE, ML_IMPORTANT); + } } } }