diff --git a/src/common/kernel/build.c b/src/common/kernel/build.c index b7e73b481..30dceb7e4 100644 --- a/src/common/kernel/build.c +++ b/src/common/kernel/build.c @@ -1159,7 +1159,7 @@ entership(unit * u, ship * sh, struct order * ord, boolean lasttry) getshipweight(sh, &sweight, &scabins); sweight += weight(u); scabins += u->number; - sweight = (sweight/100) * 100; /* Silberreste abrunden */ + sweight = ((sweight+99) / 100) * 100; /* Silberreste aufrunden */ if (sweight > mweight || scabins > mcabins) { if (lasttry) cmistake(u, ord, 34, MSG_MOVE); diff --git a/src/common/kernel/movement.c b/src/common/kernel/movement.c index 67514daf2..fa9983882 100644 --- a/src/common/kernel/movement.c +++ b/src/common/kernel/movement.c @@ -433,7 +433,7 @@ cansail(const region * r, ship * sh) if (sh->type->construction && sh->size!=sh->type->construction->maxsize) return false; getshipweight(sh, &n, &p); - n = (n/100) * 100; /* Silberreste abrunden */ + n = ((n+99)/100) * 100; /* Silberreste aufrunden */ if( is_cursed(sh->attribs, C_SHIP_FLYING, 0) ) { if (sh->type->cargo>500*100) diff --git a/src/common/kernel/race.c b/src/common/kernel/race.c index e777d733d..3178ccc95 100644 --- a/src/common/kernel/race.c +++ b/src/common/kernel/race.c @@ -368,7 +368,6 @@ oldfamiliars(unit * familiar) set_level(familiar, SK_MAGIC, 1); set_level(familiar, SK_MINING, 1); set_level(familiar, SK_LUMBERJACK, 1); - set_level(familiar, SK_ROAD_BUILDING, 1); set_level(familiar, SK_AUSDAUER, 1); m = create_mage(familiar, M_GRAU); break; diff --git a/src/common/kernel/spell.c b/src/common/kernel/spell.c index e7c370bfb..f1c434103 100644 --- a/src/common/kernel/spell.c +++ b/src/common/kernel/spell.c @@ -2278,6 +2278,11 @@ sp_ironkeeper(castorder *co) unit *mage = (unit *)co->magician; int cast_level = co->level; + if (rterrain(r) != T_MOUNTAIN && rterrain(r) != T_GLACIER) { + report_failure(mage, co->order); + return 0; + } + keeper = create_unit(r, mage->faction, 1, new_race[RC_IRONKEEPER], 0, "Bergwächter", mage); /*keeper->age = cast_level + 2;*/