static void init_language(void) { struct locale* lang; int i; lang = get_or_create_locale("de"); locale_setstring(lang, "skill::unarmed", "Waffenloser Kampf"); locale_setstring(lang, "keyword::attack", "ATTACKIERE"); locale_setstring(lang, "keyword::study", "LERNE"); locale_setstring(lang, "keyword::tax", "TREIBE"); locale_setstring(lang, "keyword::loot", "PLUENDERE"); locale_setstring(lang, "keyword::piracy", "PIRATERIE"); locale_setstring(lang, "keyword::guard", "BEWACHE"); locale_setstring(lang, "keyword::move", "NACH"); locale_setstring(lang, "keyword::message", "BOTSCHAFT"); locale_setstring(lang, "REGION", "REGION"); locale_setstring(lang, "east", "O"); for (i = 0; i < MAXKEYWORDS; ++i) { if (!locale_getstring(lang, mkname("keyword", keywords[i]))) locale_setstring(lang, mkname("keyword", keywords[i]), keywords[i]); } for (i = 0; i < MAXSKILLS; ++i) { if (!locale_getstring(lang, mkname("skill", skillnames[i]))) locale_setstring(lang, mkname("skill", skillnames[i]), skillnames[i]); } init_keywords(lang); init_skills(lang); }
int rc_skillmod(const struct race *rc, const region * r, skill_t sk) { int mods = 0; if (!skill_enabled(sk)) { return 0; } #ifdef FASTER_SKILLMOD unsigned int index = hashstring(rc->_name) % RCMODMAXHASH; struct skillmods **imods = &modhash[index]; while (*imods && (*imods)->race != rc) { imods = &(*imods)->next; } if (*imods == NULL) { *imods = init_skills(rc); } mods = (*imods)->mod[rterrain(r)].value[sk]; #else if (r) { mods = skill_mod(rc, sk, r->terrain); } #endif if (rc == get_race(RC_ELF) && r && r_isforest(r)) { if (sk == SK_PERCEPTION || sk == SK_STEALTH) { ++mods; } else if (sk == SK_TACTICS) { mods += 2; } } return mods; }