forked from github/server
Konvertierungsroutine, mit CONVERT_SKILLPOINTS aktivieren
This commit is contained in:
parent
49317210e0
commit
de1851d65b
|
@ -661,21 +661,23 @@ cr_output_unit(FILE * F, const region * r,
|
||||||
|
|
||||||
/* talents */
|
/* talents */
|
||||||
pr = 0;
|
pr = 0;
|
||||||
for (sk = 0; sk != MAXSKILLS; ++sk)
|
for (sk = 0; sk != MAXSKILLS; ++sk) {
|
||||||
if (get_skill(u, sk)) {
|
int gsk = get_skill(u, sk);
|
||||||
|
if (gsk) {
|
||||||
|
int esk = eff_skill(u, sk, r);
|
||||||
if (!pr) {
|
if (!pr) {
|
||||||
pr = 1;
|
pr = 1;
|
||||||
fprintf(F, "TALENTE\n");
|
fprintf(F, "TALENTE\n");
|
||||||
}
|
}
|
||||||
#ifdef NOVISIBLESKILLPOINTS
|
#if SKILLPOINTS
|
||||||
/* 0 ist nur der Kompatibilität wegen drin, rausnehmen */
|
fprintf(F, "%d %d;%s\n", gsk, esk,
|
||||||
fprintf(F, "0 %d;%s\n", eff_skill(u, sk, r),
|
|
||||||
add_translation(skillname(sk, NULL), skillname(sk, f->locale)));
|
add_translation(skillname(sk, NULL), skillname(sk, f->locale)));
|
||||||
#else
|
#else
|
||||||
fprintf(F, "%d %d;%s\n", get_skill(u, sk), eff_skill(u, sk, r),
|
fprintf(F, "%d %d;%s\n", level_days(gsk/u->number), esk,
|
||||||
add_translation(skillname(sk, NULL), skillname(sk, f->locale)));
|
add_translation(skillname(sk, NULL), skillname(sk, f->locale)));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/* spells */
|
/* spells */
|
||||||
if (is_mage(u)) {
|
if (is_mage(u)) {
|
||||||
sc_mage * mage = get_mage(u);
|
sc_mage * mage = get_mage(u);
|
||||||
|
@ -883,6 +885,7 @@ report_computer(FILE * F, faction * f, const seen_region * seen,
|
||||||
|
|
||||||
fprintf(F, "VERSION %d\n", C_REPORT_VERSION);
|
fprintf(F, "VERSION %d\n", C_REPORT_VERSION);
|
||||||
fprintf(F, "\"%s\";locale\n", locale_name(f->locale));
|
fprintf(F, "\"%s\";locale\n", locale_name(f->locale));
|
||||||
|
fprintf(F, "%d;noskillpoints\n", !SKILLPOINTS);
|
||||||
fprintf(F, "%ld;date\n", report_time);
|
fprintf(F, "%ld;date\n", report_time);
|
||||||
fprintf(F, "\"%s\";Spiel\n", global.gamename);
|
fprintf(F, "\"%s\";Spiel\n", global.gamename);
|
||||||
fprintf(F, "\"%s\";Konfiguration\n", "Standard");
|
fprintf(F, "\"%s\";Konfiguration\n", "Standard");
|
||||||
|
@ -891,7 +894,6 @@ report_computer(FILE * F, faction * f, const seen_region * seen,
|
||||||
fprintf(F, "%d;Runde\n", turn);
|
fprintf(F, "%d;Runde\n", turn);
|
||||||
fputs("2;Zeitalter\n", F);
|
fputs("2;Zeitalter\n", F);
|
||||||
fprintf(F, "PARTEI %d\n", f->no);
|
fprintf(F, "PARTEI %d\n", f->no);
|
||||||
/* fprintf(F, "\"%s\";Passwort\n", f->passw); */
|
|
||||||
fprintf(F, "\"%s\";locale\n", locale_name(f->locale));
|
fprintf(F, "\"%s\";locale\n", locale_name(f->locale));
|
||||||
fprintf(F, "%d;Optionen\n", f->options);
|
fprintf(F, "%d;Optionen\n", f->options);
|
||||||
if (f->options & want(O_SCORE) && f->age>DISPLAYSCORE) {
|
if (f->options & want(O_SCORE) && f->age>DISPLAYSCORE) {
|
||||||
|
|
|
@ -76,35 +76,8 @@
|
||||||
|
|
||||||
#undef XMAS1999
|
#undef XMAS1999
|
||||||
#undef XMAS2000
|
#undef XMAS2000
|
||||||
#define XMAS2001
|
#undef XMAS2001
|
||||||
|
#undef CONVERT_SKILLPOINTS
|
||||||
#if 0
|
|
||||||
static int
|
|
||||||
skillmodifieslearning(void)
|
|
||||||
{
|
|
||||||
region *r;
|
|
||||||
unit *u;
|
|
||||||
int smod, lmod, learning;
|
|
||||||
|
|
||||||
for(r=regions; r; r=r->next) {
|
|
||||||
for(u=r->units; u; u=u->next) {
|
|
||||||
skillvalue *i = u->skills;
|
|
||||||
for (; i != u->skills + u->skill_size; ++i) {
|
|
||||||
smod = rc_skillmod(u->race, u->region, i->id);
|
|
||||||
lmod = 5 * smod;
|
|
||||||
if(smod < 0) {
|
|
||||||
lmod -= 5;
|
|
||||||
} else if(smod > 0) {
|
|
||||||
lmod += 5;
|
|
||||||
}
|
|
||||||
learning = max(0, 30 + lmod);
|
|
||||||
i->value = (i->value * learning)/30;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern void reorder_owners(struct region * r);
|
extern void reorder_owners(struct region * r);
|
||||||
|
|
||||||
|
@ -474,225 +447,6 @@ bename_dracoide(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
repair_illusion(void)
|
|
||||||
{
|
|
||||||
region * r;
|
|
||||||
for (r=regions;r;r=r->next) {
|
|
||||||
unit * u;
|
|
||||||
for (u=r->units;u;u=u->next) {
|
|
||||||
if (playerrace(u->race)
|
|
||||||
&& (get_item(u, I_PLATE_ARMOR) == u->number || get_item(u, I_CHAIN_MAIL) == u->number)
|
|
||||||
&& get_item(u, I_HORSE) == u->number && get_skill(u, SK_SPEAR) == 0 && get_skill(u, SK_SWORD) == 0
|
|
||||||
&& (get_item(u, I_SWORD) == u->number || get_item(u, I_SPEAR) == u->number))
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
skill_t sk;
|
|
||||||
for (sk=0;sk!=MAXSKILLS;++sk) if (sk!=SK_RIDING) i+=get_skill(u, sk);
|
|
||||||
if (get_skill(u, SK_OBSERVATION) == i) u->race=RC_SPELL;
|
|
||||||
else if (i) continue;
|
|
||||||
else {
|
|
||||||
u->race = new_race[RC_ILLUSION];
|
|
||||||
log_puts("[repair_illusion] repariert: %s in Partei %s\n", unitname(u), factionid(u->faction));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(playerrace(u->race) && (
|
|
||||||
strcmp(u->name, "Ausgemergelte Skelette") == 0 ||
|
|
||||||
strcmp(u->name, "Zerfallende Zombies") == 0 ||
|
|
||||||
strcmp(u->name, "Keuchende Ghoule") == 0
|
|
||||||
)) {
|
|
||||||
u->race = new_race[RC_UNDEAD];
|
|
||||||
u->irace = new_race[RC_UNDEAD];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
typedef struct border_info {
|
|
||||||
border_type * type;
|
|
||||||
region * from;
|
|
||||||
direction_t dir;
|
|
||||||
attrib * attribs;
|
|
||||||
} border_info;
|
|
||||||
|
|
||||||
static void *
|
|
||||||
resolve_border(void * data)
|
|
||||||
{
|
|
||||||
border_info * info = (border_info *)data;
|
|
||||||
region * to = rconnect(info->from, info->dir);
|
|
||||||
if (!to) log_warning(("border can only exist between two regions\n"));
|
|
||||||
else {
|
|
||||||
border * b = new_border(info->type, info->from, to);
|
|
||||||
b->attribs = info->attribs;
|
|
||||||
}
|
|
||||||
free(data);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
repair_undead(void)
|
|
||||||
{
|
|
||||||
int no, age;
|
|
||||||
FILE * f = fopen("undeads", "rt");
|
|
||||||
if (!f) return;
|
|
||||||
while (fscanf(f, "%d %d\n", &no, &age)!=EOF) {
|
|
||||||
unit * u = findunitg(no, NULL);
|
|
||||||
if (u && (u->race!=RC_UNDEAD || u->irace != new_race[RC_UNDEAD])) {
|
|
||||||
if (u->age>=age) u->race = u->irace = new_race[RC_UNDEAD];
|
|
||||||
fprintf(stderr, "Repariere %s\n", unitname(u));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
reset_dragon_irace(void)
|
|
||||||
{
|
|
||||||
region *r;
|
|
||||||
unit *u;
|
|
||||||
|
|
||||||
for(r=regions;r;r=r->next) {
|
|
||||||
for(u=r->units;u;u=u->next) {
|
|
||||||
if(u->race == new_race[RC_DRAGON] || u->race == new_race[RC_WYRM]) {
|
|
||||||
u->irace = u->race;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
fix_irace(void)
|
|
||||||
{
|
|
||||||
region *r;
|
|
||||||
unit *u;
|
|
||||||
|
|
||||||
for(r=regions; r; r=r->next) {
|
|
||||||
for(u=r->units; u; u=u->next) {
|
|
||||||
if(u->race != u->irace && u->race <= new_race[RC_AQUARIAN] && u->race!=RC_DAEMON)
|
|
||||||
u->irace = u->race;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
fix_regions(void) {
|
|
||||||
region * r;
|
|
||||||
for (r=regions;r;r=r->next) {
|
|
||||||
if (r->terrain!=T_GLACIER && r->terrain!=T_MOUNTAIN) {
|
|
||||||
rsetiron(r, 0);
|
|
||||||
}
|
|
||||||
if (r->terrain==T_OCEAN) {
|
|
||||||
unit * u;
|
|
||||||
rsethorses(r, 0);
|
|
||||||
rsetmoney(r, 0);
|
|
||||||
rsetpeasants(r, 0);
|
|
||||||
rsettrees(r, 0);
|
|
||||||
for (u=r->units;u;u=u->next)
|
|
||||||
if (playerrace(u->race) && u->ship==NULL) set_number(u, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
read_herbrepair(void) {
|
|
||||||
FILE * f = fopen("repair.herbs", "rt");
|
|
||||||
if (!f) return;
|
|
||||||
while (!feof(f)) {
|
|
||||||
int n, x;
|
|
||||||
unit * u;
|
|
||||||
fscanf(f, "%d %d", &n, &x);
|
|
||||||
u = findunitg(x, NULL);
|
|
||||||
if (!u) u = findunitg(n, NULL);
|
|
||||||
fscanf(f, "%d", &x);
|
|
||||||
while (x!=-1) {
|
|
||||||
fscanf(f, "%d", &n);
|
|
||||||
if (u) change_herb(u, (herb_t)x, n);
|
|
||||||
fscanf(f, "%d", &x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
write_herbrepair(void) {
|
|
||||||
FILE * f = fopen("repair.herbs", "wt");
|
|
||||||
region * r;
|
|
||||||
for (r=regions;r;r=r->next) {
|
|
||||||
unit * u;
|
|
||||||
for (u=r->units;u;u=u->next) {
|
|
||||||
strlist * o;
|
|
||||||
for (o=u->orders;o;o=o->next) {
|
|
||||||
if (igetkeyword(o->s)==K_GIVE) {
|
|
||||||
int n = read_unitid(u->faction, r);
|
|
||||||
herb_t h;
|
|
||||||
if (n<0) continue;
|
|
||||||
if (getparam()==P_HERBS) {
|
|
||||||
fprintf(f, "%d %d ", u->no, n);
|
|
||||||
for (h=0;h!=MAXHERBS;++h) {
|
|
||||||
int i = get_herb(u, h);
|
|
||||||
if (i) fprintf(f, "%d %d ", h, i);
|
|
||||||
}
|
|
||||||
fputs("-1\n", f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
write_migrepair(void)
|
|
||||||
{
|
|
||||||
FILE * f = fopen("repair.migrants", "wt");
|
|
||||||
region * r;
|
|
||||||
for (r=regions;r;r=r->next) {
|
|
||||||
if(rterrain(r) != T_OCEAN)
|
|
||||||
fprintf(f, "%d %d %d %d\n", r->x, r->y, rhorses(r), rtrees(r));
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
read_migrepair(void)
|
|
||||||
{
|
|
||||||
FILE * f = fopen("repair.migrants", "rt");
|
|
||||||
int x, y, h, t;
|
|
||||||
region *r;
|
|
||||||
|
|
||||||
for(r=regions; r; r=r->next) freset(r, FL_DH);
|
|
||||||
|
|
||||||
while (fscanf(f, "%d %d %d %d\n", &x, &y, &h, &t) != EOF) {
|
|
||||||
r = findregion(x, y);
|
|
||||||
if (r) {
|
|
||||||
rsethorses(r, h);
|
|
||||||
rsettrees(r, t);
|
|
||||||
fset(r, FL_DH);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(r=regions; r; r=r->next) if(!fval(r, FL_DH) && rterrain(r) == T_PLAIN) {
|
|
||||||
rsethorses(r, rand() % (terrain[rterrain(r)].production_max / 5));
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fix_migrants(void) {
|
fix_migrants(void) {
|
||||||
region * r;
|
region * r;
|
||||||
|
@ -707,50 +461,6 @@ fix_migrants(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
fix_folge_bug(void)
|
|
||||||
{
|
|
||||||
region *td = findregion(64,-101);
|
|
||||||
region *tl = findregion(65,-101);
|
|
||||||
unit *u, *un;
|
|
||||||
|
|
||||||
for(u=td->units;u;) {
|
|
||||||
un = u->next;
|
|
||||||
if(igetkeyword(u->lastorder) == K_FOLLOW) {
|
|
||||||
move_unit(u, tl, NULL);
|
|
||||||
freset(u, FL_MOVED);
|
|
||||||
u = td->units;
|
|
||||||
} else {
|
|
||||||
u = un;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
katja_erschaffe_elf(void)
|
|
||||||
{
|
|
||||||
region *xon = findregion(6,-4);
|
|
||||||
unit *u;
|
|
||||||
faction *mon = findfaction(MONSTER_FACTION);
|
|
||||||
strlist *S;
|
|
||||||
|
|
||||||
u = createunit(xon, mon, 1, new_race[RC_ELF]);
|
|
||||||
set_string(&u->name,"Corwin");
|
|
||||||
set_string(&u->display,"Ein kleiner, unscheinbarer Elf.");
|
|
||||||
set_item(u, I_BIRTHDAYAMULET, 1);
|
|
||||||
u->money = 10;
|
|
||||||
sprintf(buf, "GIB H 1 Katzenamulett");
|
|
||||||
S = makestrlist(buf); addlist(&u->orders, S);
|
|
||||||
sprintf(buf, "BOTSCHAFT AN EINHEIT H %s",estring("Ein kleiner Elf verbeugt sich vor euch: 'Nehmt dieses Geschenk vom Gott aller Götter. Auf das euch noch ein langes und sehr glückliches Leben beschieden sei.'"));
|
|
||||||
S = makestrlist(buf); addlist(&u->orders, S);
|
|
||||||
set_string(&u->thisorder, "LERNE WAHRNEHMUNG");
|
|
||||||
set_string(&u->thisorder, "LERNE WAHRNEHMUNG");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
kor_teure_talente(unit *u)
|
kor_teure_talente(unit *u)
|
||||||
{
|
{
|
||||||
|
@ -2715,14 +2425,14 @@ fix_ratfamiliar(void)
|
||||||
for(u=r->units; u; u=u->next){
|
for(u=r->units; u; u=u->next){
|
||||||
if (old_race(u->race) == RC_RAT){
|
if (old_race(u->race) == RC_RAT){
|
||||||
if (u->number > 1){
|
if (u->number > 1){
|
||||||
int hp = u->number*3;
|
int mod = skill_level(1);
|
||||||
scale_number(u, 1);
|
scale_number(u, 1);
|
||||||
set_skill(u, SK_MAGIC, get_skill(u, SK_MAGIC)+30);
|
set_skill(u, SK_MAGIC, get_skill(u, SK_MAGIC)+mod);
|
||||||
create_mage(u, M_GRAU);
|
create_mage(u, M_GRAU);
|
||||||
set_skill(u, SK_SPY, get_skill(u, SK_SPY)+30);
|
set_skill(u, SK_SPY, get_skill(u, SK_SPY)+mod);
|
||||||
set_skill(u, SK_STEALTH, get_skill(u, SK_STEALTH)+30);
|
set_skill(u, SK_STEALTH, get_skill(u, SK_STEALTH)+mod);
|
||||||
set_skill(u, SK_OBSERVATION, get_skill(u, SK_OBSERVATION)+30);
|
set_skill(u, SK_OBSERVATION, get_skill(u, SK_OBSERVATION)+mod);
|
||||||
set_skill(u, SK_AUSDAUER, get_skill(u, SK_AUSDAUER)+hp);
|
set_skill(u, SK_AUSDAUER, get_skill(u, SK_AUSDAUER)+skill_level(3));
|
||||||
u->hp = unit_max_hp(u);
|
u->hp = unit_max_hp(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2815,7 +2525,7 @@ heal_all(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PEASANT_ADJUSTMENT == 1
|
#if PEASANT_ADJUSTMENT
|
||||||
|
|
||||||
#define WEIGHT ((double)0.5)
|
#define WEIGHT ((double)0.5)
|
||||||
#define PLWEIGHT ((double)0.75)
|
#define PLWEIGHT ((double)0.75)
|
||||||
|
@ -2825,7 +2535,7 @@ peasant_adjustment(void)
|
||||||
{
|
{
|
||||||
terrain_t ter;
|
terrain_t ter;
|
||||||
int sum, avg, c;
|
int sum, avg, c;
|
||||||
long long freeall, pool;
|
double freeall, pool; /* long long is illegal */
|
||||||
|
|
||||||
for(ter = 0; ter < MAXTERRAINS; ter++) {
|
for(ter = 0; ter < MAXTERRAINS; ter++) {
|
||||||
region *r;
|
region *r;
|
||||||
|
@ -2858,10 +2568,10 @@ peasant_adjustment(void)
|
||||||
if(lifestyle(u) > 0) playerp += u->number;
|
if(lifestyle(u) > 0) playerp += u->number;
|
||||||
}
|
}
|
||||||
|
|
||||||
soll = (avg + playerp + rpeasants(r)) * WEIGHT;
|
soll = (int)((avg + playerp + rpeasants(r)) * WEIGHT);
|
||||||
|
|
||||||
if(playerp * PLWEIGHT + rpeasants(r) > soll) {
|
if(playerp * PLWEIGHT + rpeasants(r) > soll) {
|
||||||
p_weg = min(((playerp * PLWEIGHT) + rpeasants(r)) - soll, rpeasants(r));
|
p_weg = (int)(min(((playerp * PLWEIGHT) + rpeasants(r)) - soll, rpeasants(r)));
|
||||||
assert(p_weg >= 0);
|
assert(p_weg >= 0);
|
||||||
/*
|
/*
|
||||||
if (p_weg > 0){
|
if (p_weg > 0){
|
||||||
|
@ -2880,7 +2590,7 @@ peasant_adjustment(void)
|
||||||
|
|
||||||
for(r=regions; r; r=r->next) if(rterrain(r) == ter) {
|
for(r=regions; r; r=r->next) if(rterrain(r) == ter) {
|
||||||
unit *u;
|
unit *u;
|
||||||
long long free;
|
double free;
|
||||||
int newp;
|
int newp;
|
||||||
int playerp = 0;
|
int playerp = 0;
|
||||||
|
|
||||||
|
@ -2891,7 +2601,7 @@ peasant_adjustment(void)
|
||||||
free = max(0,production(r) * MAXPEASANTS_PER_AREA
|
free = max(0,production(r) * MAXPEASANTS_PER_AREA
|
||||||
- ((rtrees(r,2)+rtrees(r,1)/2) * TREESIZE) - playerp);
|
- ((rtrees(r,2)+rtrees(r,1)/2) * TREESIZE) - playerp);
|
||||||
|
|
||||||
newp = (pool * free)/freeall;
|
newp = (int)((pool * free)/freeall);
|
||||||
|
|
||||||
rsetpeasants(r, rpeasants(r)+newp);
|
rsetpeasants(r, rpeasants(r)+newp);
|
||||||
|
|
||||||
|
@ -2912,13 +2622,45 @@ fix_astralplane(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
level(int days)
|
||||||
|
{
|
||||||
|
int l = 0;
|
||||||
|
while (level_days(l)<=days) ++l;
|
||||||
|
return l-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
convert_skills(void)
|
||||||
|
{
|
||||||
|
region * r;
|
||||||
|
for (r=regions;r;r=r->next) {
|
||||||
|
unit * u;
|
||||||
|
for (u=r->units;u;u=u->next) {
|
||||||
|
skill_t sk;
|
||||||
|
for (sk=0;sk!=MAXSKILLS;++sk) {
|
||||||
|
int val = get_skill(u, sk);
|
||||||
|
if (val) {
|
||||||
|
int lvl = level(val/u->number);
|
||||||
|
int days = val-level_days(lvl)*u->number;
|
||||||
|
int skip = level_days(lvl+1)-level_days(lvl);
|
||||||
|
set_skill(u, sk, lvl * u->number + days/skip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
korrektur(void)
|
korrektur(void)
|
||||||
{
|
{
|
||||||
#if TEST_LOCALES
|
#if TEST_LOCALES
|
||||||
setup_locales();
|
setup_locales();
|
||||||
#endif
|
#endif
|
||||||
|
#if !SKILLPOINTS
|
||||||
|
do_once("nskp", convert_skills());
|
||||||
|
#endif
|
||||||
fix_astralplane();
|
fix_astralplane();
|
||||||
fix_firewalls();
|
fix_firewalls();
|
||||||
fix_gates();
|
fix_gates();
|
||||||
|
@ -2992,8 +2734,8 @@ void
|
||||||
korrektur_end(void)
|
korrektur_end(void)
|
||||||
{
|
{
|
||||||
/* fix_balsamfiasko(); */
|
/* fix_balsamfiasko(); */
|
||||||
#ifdef SKILLMODIFIESLEARNING
|
#ifdef CONVERT_SKILLPOINTS
|
||||||
do_once("smle", skillmodifieslearning());
|
do_once("nskp", convert_skills());
|
||||||
#endif
|
#endif
|
||||||
#ifdef XMAS2001
|
#ifdef XMAS2001
|
||||||
do_once("2001", xmas2001());
|
do_once("2001", xmas2001());
|
||||||
|
|
Loading…
Reference in New Issue