forked from github/server
new mail addresses
gcc-4.2: MAX() and MIN()
This commit is contained in:
parent
8a2fe52291
commit
9e529a50ae
43 changed files with 323 additions and 334 deletions
|
@ -13,8 +13,9 @@ if ! $(HAVE_LUA) {
|
|||
}
|
||||
|
||||
if ! $(CPU) {
|
||||
CPU = pentium2 ;
|
||||
ARCH = -march=$(CPU) -mtune=$(CPU) -mmmx -mieee-fp ;
|
||||
CPU = prescott ;
|
||||
ARCH = -march=$(CPU) -mmmx -mieee-fp ;
|
||||
ARCH += -mtune=$(CPU) ;
|
||||
}
|
||||
|
||||
if $(DISTCC_HOSTS) {
|
||||
|
|
|
@ -276,40 +276,32 @@ cr_output_curses(FILE * F, const faction * viewer, const void * obj, typ_t typ)
|
|||
static int
|
||||
cr_unit(variant var, char * buffer, const void * userdata)
|
||||
{
|
||||
const faction * report = (const faction*)userdata;
|
||||
unit * u = (unit *)var.v;
|
||||
sprintf(buffer, "%d", u?u->no:-1);
|
||||
unused(report);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
cr_ship(variant var, char * buffer, const void * userdata)
|
||||
{
|
||||
const faction * report = (const faction*)userdata;
|
||||
ship * u = (ship *)var.v;
|
||||
sprintf(buffer, "%d", u?u->no:-1);
|
||||
unused(report);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
cr_building(variant var, char * buffer, const void * userdata)
|
||||
{
|
||||
const faction * report = (const faction*)userdata;
|
||||
building * u = (building *)var.v;
|
||||
sprintf(buffer, "%d", u?u->no:-1);
|
||||
unused(report);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
cr_faction(variant var, char * buffer, const void * userdata)
|
||||
{
|
||||
const faction * report = (const faction*)userdata;
|
||||
faction * f = (faction *)var.v;
|
||||
sprintf(buffer, "%d", f?f->no:-1);
|
||||
unused(report);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -353,10 +353,10 @@ do_recruiting(recruitment * recruits, int available)
|
|||
|
||||
if (rc==new_race[RC_URUK]) multi = 1;
|
||||
|
||||
number = min(req->qty, get / multi);
|
||||
number = MIN(req->qty, get / multi);
|
||||
if (rc->recruitcost) {
|
||||
int afford = get_pooled(u, oldresourcetype[R_SILVER], GET_DEFAULT, number*rc->recruitcost) / rc->recruitcost;
|
||||
number = min(number, afford);
|
||||
number = MIN(number, afford);
|
||||
use_pooled(u, oldresourcetype[R_SILVER], GET_DEFAULT, rc->recruitcost*number);
|
||||
}
|
||||
if (u->number+number>UNIT_MAXSIZE) {
|
||||
|
@ -548,7 +548,7 @@ recruit(unit * u, struct order * ord, request ** recruitorders)
|
|||
}
|
||||
if (recruitcost>0) {
|
||||
int pooled = get_pooled(u, oldresourcetype[R_SILVER], GET_DEFAULT, recruitcost * n);
|
||||
n = min(n, pooled / recruitcost);
|
||||
n = MIN(n, pooled / recruitcost);
|
||||
}
|
||||
|
||||
u->wants = n;
|
||||
|
@ -1120,7 +1120,7 @@ recruit_archetype(unit * u, order * ord)
|
|||
if (a!=NULL) {
|
||||
maxsize -= a->data.i;
|
||||
}
|
||||
n = min(maxsize/arch->size, n);
|
||||
n = MIN(maxsize/arch->size, n);
|
||||
if (n<=0) {
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, ord, "recruit_capacity_exhausted", "building", u->building));
|
||||
/* TODO: error message */
|
||||
|
@ -1427,11 +1427,11 @@ allocate_resource(unit * u, const resource_type * rtype, int want)
|
|||
/* nun ist amount die Gesamtproduktion der Einheit (in punkten) */
|
||||
|
||||
/* mit Flinkfingerring verzehnfacht sich die Produktion */
|
||||
amount += skill * min(u->number, get_item(u,I_RING_OF_NIMBLEFINGER)) * 9;
|
||||
amount += skill * MIN(u->number, get_item(u,I_RING_OF_NIMBLEFINGER)) * 9;
|
||||
|
||||
/* Schaffenstrunk: */
|
||||
if ((dm = get_effect(u, oldpotiontype[P_DOMORE])) != 0) {
|
||||
dm = min(dm, u->number);
|
||||
dm = MIN(dm, u->number);
|
||||
change_effect(u, oldpotiontype[P_DOMORE], -dm);
|
||||
amount += dm * skill; /* dm Personen produzieren doppelt */
|
||||
}
|
||||
|
@ -1538,7 +1538,7 @@ leveled_allocation(const resource_type * rtype, region * r, allocation * alist)
|
|||
}
|
||||
need = norders;
|
||||
|
||||
avail = min(avail, norders);
|
||||
avail = MIN(avail, norders);
|
||||
if (need>0) {
|
||||
int use = 0;
|
||||
for (al=alist;al;al=al->next) if (!fval(al, AFL_DONE)) {
|
||||
|
@ -1552,7 +1552,7 @@ leveled_allocation(const resource_type * rtype, region * r, allocation * alist)
|
|||
use += x;
|
||||
norders -= want;
|
||||
need -= x;
|
||||
al->get = min(al->want, al->get+(int)(x/al->save));
|
||||
al->get = MIN(al->want, al->get+(int)(x/al->save));
|
||||
}
|
||||
}
|
||||
if (use) {
|
||||
|
@ -1584,7 +1584,7 @@ attrib_allocation(const resource_type * rtype, region * r, allocation * alist)
|
|||
if (avail < 0) avail = 0;
|
||||
}
|
||||
|
||||
avail = min(avail, norders);
|
||||
avail = MIN(avail, norders);
|
||||
for (al=alist;al;al=al->next) {
|
||||
if (avail > 0) {
|
||||
int want = required(al->want, al->save);
|
||||
|
@ -1594,7 +1594,7 @@ attrib_allocation(const resource_type * rtype, region * r, allocation * alist)
|
|||
++x;
|
||||
avail -= x;
|
||||
norders -= want;
|
||||
al->get = min(al->want, (int)(x/al->save));
|
||||
al->get = MIN(al->want, (int)(x/al->save));
|
||||
if (rdata->produce) {
|
||||
int use = required(al->get, al->save);
|
||||
if (use) rdata->produce(r, rtype, use);
|
||||
|
@ -2021,7 +2021,7 @@ buy(unit * u, request ** buyorders, struct order * ord)
|
|||
k -= a->data.i;
|
||||
}
|
||||
|
||||
n = min(n, k);
|
||||
n = MIN(n, k);
|
||||
|
||||
if (!n) {
|
||||
cmistake(u, ord, 102, MSG_COMMERCE);
|
||||
|
@ -2305,7 +2305,7 @@ static boolean
|
|||
|
||||
/* Ein Händler kann nur 10 Güter pro Talentpunkt verkaufen. */
|
||||
|
||||
n = min(n, u->number * 10 * eff_skill(u, SK_TRADE, r));
|
||||
n = MIN(n, u->number * 10 * eff_skill(u, SK_TRADE, r));
|
||||
|
||||
if (!n) {
|
||||
cmistake(u, ord, 54, MSG_COMMERCE);
|
||||
|
@ -2334,11 +2334,11 @@ static boolean
|
|||
for (o=*sellorders;o;o=o->next) {
|
||||
if (o->type.ltype==ltype && o->unit->faction == u->faction) {
|
||||
int fpool = o->qty - get_pooled(o->unit, itype->rtype, GET_RESERVE, INT_MAX);
|
||||
available -= max(0, fpool);
|
||||
available -= MAX(0, fpool);
|
||||
}
|
||||
}
|
||||
|
||||
n = min(n, available);
|
||||
n = MIN(n, available);
|
||||
|
||||
if (n <= 0) {
|
||||
cmistake(u, ord, 264, MSG_COMMERCE);
|
||||
|
@ -2362,7 +2362,7 @@ static boolean
|
|||
k -= a->data.i;
|
||||
}
|
||||
|
||||
n = min(n, k);
|
||||
n = MIN(n, k);
|
||||
assert(n>=0);
|
||||
/* die Menge der verkauften Güter merken */
|
||||
a->data.i += n;
|
||||
|
@ -2415,7 +2415,7 @@ expandstealing(region * r, request * stealorders)
|
|||
n = 10;
|
||||
}
|
||||
if (n > 0) {
|
||||
n = min(n, oa[i].unit->wants);
|
||||
n = MIN(n, oa[i].unit->wants);
|
||||
use_pooled(u, r_silver, GET_ALL, n);
|
||||
oa[i].unit->n = n;
|
||||
change_money(oa[i].unit, n);
|
||||
|
@ -2469,8 +2469,8 @@ plant(region *r, unit *u, int raw)
|
|||
return;
|
||||
}
|
||||
|
||||
n = min(skill*u->number, n);
|
||||
n = min(raw, n);
|
||||
n = MIN(skill*u->number, n);
|
||||
n = MIN(raw, n);
|
||||
/* Für jedes Kraut Talent*10% Erfolgschance. */
|
||||
for(i = n; i>0; i--) {
|
||||
if (rng_int()%10 < skill) planted++;
|
||||
|
@ -2518,14 +2518,14 @@ planttrees(region *r, unit *u, int raw)
|
|||
}
|
||||
|
||||
/* wenn eine Anzahl angegeben wurde, nur soviel verbrauchen */
|
||||
raw = min(raw, skill*u->number);
|
||||
raw = MIN(raw, skill*u->number);
|
||||
n = get_pooled(u, rtype, GET_DEFAULT, raw);
|
||||
if (n==0) {
|
||||
ADDMSG(&u->faction->msgs,
|
||||
msg_feedback(u, u->thisorder, "resource_missing", "missing", rtype));
|
||||
return;
|
||||
}
|
||||
n = min(raw, n);
|
||||
n = MIN(raw, n);
|
||||
|
||||
/* Für jeden Samen Talent*10% Erfolgschance. */
|
||||
for(i = n; i>0; i--) {
|
||||
|
@ -2582,7 +2582,7 @@ breedtrees(region *r, unit *u, int raw)
|
|||
}
|
||||
|
||||
/* wenn eine Anzahl angegeben wurde, nur soviel verbrauchen */
|
||||
raw = min(skill*u->number, raw);
|
||||
raw = MIN(skill*u->number, raw);
|
||||
n = get_pooled(u, rtype, GET_DEFAULT, raw);
|
||||
/* Samen prüfen */
|
||||
if (n==0) {
|
||||
|
@ -2590,7 +2590,7 @@ breedtrees(region *r, unit *u, int raw)
|
|||
msg_feedback(u, u->thisorder, "resource_missing", "missing", rtype));
|
||||
return;
|
||||
}
|
||||
n = min(raw, n);
|
||||
n = MIN(raw, n);
|
||||
|
||||
/* Für jeden Samen Talent*5% Erfolgschance. */
|
||||
for(i = n; i>0; i--) {
|
||||
|
@ -2623,7 +2623,7 @@ breedhorses(region *r, unit *u)
|
|||
cmistake(u, u->thisorder, 107, MSG_PRODUCE);
|
||||
return;
|
||||
}
|
||||
n = min(u->number * eff_skill(u, SK_HORSE_TRAINING, r), get_item(u, I_HORSE));
|
||||
n = MIN(u->number * eff_skill(u, SK_HORSE_TRAINING, r), get_item(u, I_HORSE));
|
||||
|
||||
for (c = 0; c < n; c++) {
|
||||
if (rng_int() % 100 < eff_skill(u, SK_HORSE_TRAINING, r)) {
|
||||
|
@ -2848,7 +2848,7 @@ steal_cmd(unit * u, struct order * ord, request ** stealorders)
|
|||
}
|
||||
}
|
||||
|
||||
i = min(u->number, get_item(u,I_RING_OF_NIMBLEFINGER));
|
||||
i = MIN(u->number, get_item(u,I_RING_OF_NIMBLEFINGER));
|
||||
if (i > 0) {
|
||||
n *= STEALINCOME * (u->number + i * 9);
|
||||
} else {
|
||||
|
@ -2869,7 +2869,7 @@ steal_cmd(unit * u, struct order * ord, request ** stealorders)
|
|||
|
||||
/* Nur soviel PRODUCEEXP wie auch tatsaechlich gemacht wurde */
|
||||
|
||||
produceexp(u, SK_STEALTH, min(n, u->number));
|
||||
produceexp(u, SK_STEALTH, MIN(n, u->number));
|
||||
}
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
|
@ -2894,7 +2894,7 @@ expandentertainment(region * r)
|
|||
entertaining -= o->qty;
|
||||
|
||||
/* Nur soviel PRODUCEEXP wie auch tatsächlich gemacht wurde */
|
||||
produceexp(u, SK_ENTERTAINMENT, min(u->n, u->number));
|
||||
produceexp(u, SK_ENTERTAINMENT, MIN(u->n, u->number));
|
||||
add_income(u, IC_ENTERTAIN, o->qty, u->n);
|
||||
fset(u, UFL_LONGACTION|UFL_NOTMOVING);
|
||||
}
|
||||
|
@ -2945,7 +2945,7 @@ entertain_cmd(unit * u, struct order * ord)
|
|||
skip_token();
|
||||
max_e = getuint();
|
||||
if (max_e != 0) {
|
||||
u->wants = min(u->wants,max_e);
|
||||
u->wants = MIN(u->wants,max_e);
|
||||
}
|
||||
o = nextentertainer++;
|
||||
o->unit = u;
|
||||
|
@ -2997,7 +2997,7 @@ expandwork(region * r, request * work_begin, request * work_end)
|
|||
/* Der Rest wird von den Bauern verdient. n ist das uebriggebliebene
|
||||
* Geld. */
|
||||
|
||||
earnings = min(n, rpeasants(r) * p_wage) + verdienst;
|
||||
earnings = MIN(n, rpeasants(r) * p_wage) + verdienst;
|
||||
/* Mehr oder weniger durch Trank "Riesengrass" oder "Faulobstschnaps" */
|
||||
|
||||
rsetmoney(r, rmoney(r) + earnings);
|
||||
|
@ -3097,9 +3097,9 @@ tax_cmd(unit * u, struct order * ord, request ** taxorders)
|
|||
|
||||
if (max == 0) max = INT_MAX;
|
||||
if (!playerrace(u->race)) {
|
||||
u->wants = min(income(u), max);
|
||||
u->wants = MIN(income(u), max);
|
||||
} else {
|
||||
u->wants = min(n * eff_skill(u, SK_TAXING, r) * 20, max);
|
||||
u->wants = MIN(n * eff_skill(u, SK_TAXING, r) * 20, max);
|
||||
}
|
||||
|
||||
u2 = is_guarded(r, u, GUARD_TAX);
|
||||
|
|
|
@ -87,7 +87,7 @@ give_item(int want, const item_type * itype, unit * src, unit * dest, struct ord
|
|||
|
||||
assert(itype!=NULL);
|
||||
n = get_pooled(src, item2resource(itype), GET_DEFAULT, want);
|
||||
n = min(want, n);
|
||||
n = MIN(want, n);
|
||||
if (dest && src->faction != dest->faction && src->faction->age < GiveRestriction()) {
|
||||
if (ord!=NULL) {
|
||||
ADDMSG(&src->faction->msgs, msg_feedback(src, ord, "giverestriction",
|
||||
|
|
|
@ -202,7 +202,7 @@ get_food(region *r)
|
|||
* food from the peasants */
|
||||
if (owner!=NULL && (get_alliance(owner, u->faction) & HELP_MONEY)) {
|
||||
int rm = rmoney(r);
|
||||
int use = min(rm, need);
|
||||
int use = MIN(rm, need);
|
||||
rsetmoney(r, rm-use);
|
||||
need -= use;
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ get_food(region *r)
|
|||
for (v = r->units; need && v; v = v->next) {
|
||||
if (v->faction == u->faction && help_money(v)) {
|
||||
int give = get_money(v) - lifestyle(v);
|
||||
give = min(need, give);
|
||||
give = MIN(need, give);
|
||||
if (give>0) {
|
||||
change_money(v, -give);
|
||||
change_money(u, give);
|
||||
|
@ -231,7 +231,7 @@ get_food(region *r)
|
|||
int need = lifestyle(u);
|
||||
faction * f = u->faction;
|
||||
|
||||
need -= max(0, get_money(u));
|
||||
need -= MAX(0, get_money(u));
|
||||
|
||||
if (need > 0) {
|
||||
unit *v;
|
||||
|
@ -239,7 +239,7 @@ get_food(region *r)
|
|||
for (v = r->units; need && v; v = v->next) {
|
||||
if (v->faction != f && alliedunit(v, f, HELP_MONEY) && help_money(v)) {
|
||||
int give = get_money(v) - lifestyle(v);
|
||||
give = min(need, give);
|
||||
give = MIN(need, give);
|
||||
|
||||
if (give>0) {
|
||||
change_money(v, -give);
|
||||
|
@ -289,7 +289,7 @@ get_food(region *r)
|
|||
}
|
||||
if (donor != NULL) {
|
||||
int blut = get_effect(donor, pt_blood);
|
||||
blut = min(blut, hungry);
|
||||
blut = MIN(blut, hungry);
|
||||
change_effect(donor, pt_blood, -blut);
|
||||
hungry -= blut;
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ get_food(region *r)
|
|||
|
||||
/* 3. Von den überlebenden das Geld abziehen: */
|
||||
for (u = r->units; u; u = u->next) {
|
||||
int need = min(get_money(u), lifestyle(u));
|
||||
int need = MIN(get_money(u), lifestyle(u));
|
||||
change_money(u, -need);
|
||||
}
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ live(region * r)
|
|||
}
|
||||
/* bestes Talent raussuchen */
|
||||
if (sb!=NULL) {
|
||||
int weeks = min(effect, u->number);
|
||||
int weeks = MIN(effect, u->number);
|
||||
reduce_skill(u, sb, weeks);
|
||||
ADDMSG(&u->faction->msgs, msg_message("dumbeffect",
|
||||
"unit weeks skill", u, weeks, (skill_t)sb->id));
|
||||
|
@ -439,7 +439,7 @@ calculate_emigration(region *r)
|
|||
int max_emigration = MAX_EMIGRATION(rp2-maxp2);
|
||||
|
||||
if (max_emigration>0) {
|
||||
max_emigration = min(max_emigration, max_immigrants);
|
||||
max_emigration = MIN(max_emigration, max_immigrants);
|
||||
r->land->newpeasants += max_emigration;
|
||||
rc->land->newpeasants -= max_emigration;
|
||||
max_immigrants -= max_emigration;
|
||||
|
@ -499,7 +499,7 @@ peasants(region * r)
|
|||
|
||||
/* Alle werden satt, oder halt soviele für die es auch Geld gibt */
|
||||
|
||||
satiated = min(peasants, money / maintenance_cost(NULL));
|
||||
satiated = MIN(peasants, money / maintenance_cost(NULL));
|
||||
rsetmoney(r, money - satiated * maintenance_cost(NULL));
|
||||
|
||||
/* Von denjenigen, die nicht satt geworden sind, verhungert der
|
||||
|
@ -508,7 +508,7 @@ peasants(region * r)
|
|||
|
||||
/* Es verhungert maximal die unterernährten Bevölkerung. */
|
||||
|
||||
n = min(peasants - satiated, rpeasants(r));
|
||||
n = MIN(peasants - satiated, rpeasants(r));
|
||||
dead += (int)(0.5F + n * PEASANT_STARVATION_CHANCE);
|
||||
|
||||
if (dead > 0) {
|
||||
|
@ -590,7 +590,7 @@ horses(region * r)
|
|||
|
||||
/* Logistisches Wachstum, Optimum bei halbem Maximalbesatz. */
|
||||
maxhorses = maxworkingpeasants(r)/10;
|
||||
maxhorses = max(0, maxhorses);
|
||||
maxhorses = MAX(0, maxhorses);
|
||||
horses = rhorses(r);
|
||||
if (horses > 0) {
|
||||
if (is_cursed(r->attribs, C_CURSED_BY_THE_GODS, 0)) {
|
||||
|
@ -620,7 +620,7 @@ horses(region * r)
|
|||
if (r2 && fval(r2->terrain, WALK_INTO)) {
|
||||
int pt = (rhorses(r) * HORSEMOVE)/100;
|
||||
pt = (int)normalvariate(pt, pt/4.0);
|
||||
pt = max(0, pt);
|
||||
pt = MAX(0, pt);
|
||||
if (fval(r2, RF_MIGRATION))
|
||||
rsethorses(r2, rhorses(r2) + pt);
|
||||
else {
|
||||
|
@ -666,7 +666,7 @@ trees(region * r, const int current_season, const int last_weeks_season)
|
|||
a = a_find(r->attribs, &at_germs);
|
||||
if(a && last_weeks_season == SEASON_SPRING) {
|
||||
/* ungekeimte Samen bleiben erhalten, Sprößlinge wachsen */
|
||||
sprout = min(a->data.sa[1], rtrees(r, 1));
|
||||
sprout = MIN(a->data.sa[1], rtrees(r, 1));
|
||||
/* aus dem gesamt Sprößlingepool abziehen */
|
||||
rsettrees(r, 1, rtrees(r, 1) - sprout);
|
||||
/* zu den Bäumen hinzufügen */
|
||||
|
@ -686,7 +686,7 @@ trees(region * r, const int current_season, const int last_weeks_season)
|
|||
/* Grundchance 1.0% */
|
||||
seedchance = (int)(FORESTGROWTH * RESOURCE_QUANTITY);
|
||||
/* Jeder Elf in der Region erhöht die Chance um 0.0008%. */
|
||||
seedchance += (min(elves, (production(r)*MAXPEASANTS_PER_AREA)/8)) * 8;
|
||||
seedchance += (MIN(elves, (production(r)*MAXPEASANTS_PER_AREA)/8)) * 8;
|
||||
grownup_trees = rtrees(r, 2);
|
||||
seeds = 0;
|
||||
|
||||
|
@ -738,7 +738,7 @@ trees(region * r, const int current_season, const int last_weeks_season)
|
|||
|
||||
/* Raubbau abfangen, es dürfen nie mehr Samen wachsen, als aktuell
|
||||
* in der Region sind */
|
||||
seeds = min(a->data.sa[0], rtrees(r, 0));
|
||||
seeds = MIN(a->data.sa[0], rtrees(r, 0));
|
||||
sprout = 0;
|
||||
|
||||
for(i=0;i<seeds;i++) {
|
||||
|
@ -757,7 +757,7 @@ trees(region * r, const int current_season, const int last_weeks_season)
|
|||
* der Region entfernt werden können, da Jungbäume in der gleichen
|
||||
* Runde nachwachsen, wir also nicht mehr zwischen diesjährigen und
|
||||
* 'alten' Jungbäumen unterscheiden könnten */
|
||||
sprout = min(a->data.sa[1], rtrees(r, 1));
|
||||
sprout = MIN(a->data.sa[1], rtrees(r, 1));
|
||||
grownup_trees = 0;
|
||||
|
||||
for(i=0;i<sprout;i++) {
|
||||
|
@ -844,7 +844,7 @@ demographics(void)
|
|||
for (r = regions; r; r = r->next) {
|
||||
if (r->land && r->land->newpeasants) {
|
||||
int rp = rpeasants(r) + r->land->newpeasants;
|
||||
rsetpeasants(r, max(0, rp));
|
||||
rsetpeasants(r, MAX(0, rp));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1089,7 +1089,7 @@ parse_restart(void)
|
|||
puts(" - beseitige Spieler, die sich nach der Anmeldung nicht "
|
||||
"gemeldet haben...");
|
||||
|
||||
age = calloc(max(4,turn+1), sizeof(int));
|
||||
age = calloc(MAX(4,turn+1), sizeof(int));
|
||||
for (f = factions; f; f = f->next) if (!is_monsters(f)) {
|
||||
if (RemoveNMRNewbie() && !fval(f, FFL_NOIDLEOUT)) {
|
||||
if (f->age>=0 && f->age <= turn) ++age[f->age];
|
||||
|
@ -2386,7 +2386,7 @@ combatspell_cmd(unit * u, struct order * ord)
|
|||
if (findparam(s, u->faction->locale) == P_LEVEL) {
|
||||
/* Merken, setzen kommt erst später */
|
||||
level = getint();
|
||||
level = max(0, level);
|
||||
level = MAX(0, level);
|
||||
s = getstrtoken();
|
||||
}
|
||||
|
||||
|
@ -2943,8 +2943,8 @@ age_building(building * b)
|
|||
}
|
||||
} else if (mage!=NULL) {
|
||||
int sk = effskill(mage, SK_MAGIC);
|
||||
c->duration = max(c->duration, sk/2);
|
||||
c->vigour = max(c->vigour, sk);
|
||||
c->duration = MAX(c->duration, sk/2);
|
||||
c->vigour = MAX(c->vigour, sk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2969,12 +2969,12 @@ ageing(void)
|
|||
/* Goliathwasser */
|
||||
int i = get_effect(u, oldpotiontype[P_STRONG]);
|
||||
if (i > 0){
|
||||
change_effect(u, oldpotiontype[P_STRONG], -1 * min(u->number, i));
|
||||
change_effect(u, oldpotiontype[P_STRONG], -1 * MIN(u->number, i));
|
||||
}
|
||||
/* Berserkerblut*/
|
||||
i = get_effect(u, oldpotiontype[P_BERSERK]);
|
||||
if (i > 0){
|
||||
change_effect(u, oldpotiontype[P_BERSERK], -1 * min(u->number, i));
|
||||
change_effect(u, oldpotiontype[P_BERSERK], -1 * MIN(u->number, i));
|
||||
}
|
||||
|
||||
if (is_cursed(u->attribs, C_OLDRACE, 0)){
|
||||
|
@ -3325,9 +3325,9 @@ monthly_healing(void)
|
|||
p *= heal_factor(u->race);
|
||||
if (u->hp < umhp) {
|
||||
#ifdef NEW_DAEMONHUNGER_RULE
|
||||
double maxheal = max(u->number, umhp/20.0);
|
||||
double maxheal = MAX(u->number, umhp/20.0);
|
||||
#else
|
||||
double maxheal = max(u->number, umhp/10.0);
|
||||
double maxheal = MAX(u->number, umhp/10.0);
|
||||
#endif
|
||||
int addhp;
|
||||
struct building * b = inside_building(u);
|
||||
|
@ -3344,7 +3344,7 @@ monthly_healing(void)
|
|||
if (maxheal>0.0 && chance(maxheal)) ++addhp;
|
||||
|
||||
/* Aufaddieren der geheilten HP. */
|
||||
u->hp = min(u->hp + addhp, umhp);
|
||||
u->hp = MIN(u->hp + addhp, umhp);
|
||||
|
||||
/* soll man an negativer regeneration sterben können? */
|
||||
assert(u->hp > 0);
|
||||
|
@ -3502,7 +3502,7 @@ claim_cmd(unit * u, struct order * ord)
|
|||
if (itype!=NULL) {
|
||||
item ** iclaim = i_find(&u->faction->items, itype);
|
||||
if (iclaim!=NULL && *iclaim!=NULL) {
|
||||
n = min(n, (*iclaim)->number);
|
||||
n = MIN(n, (*iclaim)->number);
|
||||
i_change(iclaim, itype, -n);
|
||||
i_change(&u->items, itype, n);
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ reduce_weight(unit * u)
|
|||
int weight = 0;
|
||||
|
||||
if (horses > 0) {
|
||||
horses = min(horses, (u->number*2));
|
||||
horses = MIN(horses, (u->number*2));
|
||||
change_resource(u, oldresourcetype[R_HORSE], - horses);
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ reduce_weight(unit * u)
|
|||
if (weight>capacity) {
|
||||
if (itype->weight>=10 && itype->rtype->wtype==0 && itype->rtype->atype==0) {
|
||||
if (itype->capacity < itype->weight) {
|
||||
int reduce = min(itm->number, -((capacity-weight)/itype->weight));
|
||||
int reduce = MIN(itm->number, -((capacity-weight)/itype->weight));
|
||||
give_item(reduce, itm->type, u, NULL, NULL);
|
||||
weight -= reduce * itype->weight;
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ reduce_weight(unit * u)
|
|||
const item_type * itype = itm->type;
|
||||
weight += itm->number*itype->weight;
|
||||
if (itype->capacity < itype->weight) {
|
||||
int reduce = min(itm->number, -((capacity-weight)/itype->weight));
|
||||
int reduce = MIN(itm->number, -((capacity-weight)/itype->weight));
|
||||
give_item(reduce, itm->type, u, NULL, NULL);
|
||||
weight -= reduce * itype->weight;
|
||||
}
|
||||
|
@ -608,7 +608,7 @@ eaten_by_monster(unit * u)
|
|||
|
||||
if (n > 0) {
|
||||
n = lovar(n);
|
||||
n = min(rpeasants(u->region), n);
|
||||
n = MIN(rpeasants(u->region), n);
|
||||
|
||||
if (n > 0) {
|
||||
deathcounts(u->region, n);
|
||||
|
@ -634,7 +634,7 @@ absorbed_by_monster(unit * u)
|
|||
|
||||
if(n > 0) {
|
||||
n = lovar(n);
|
||||
n = min(rpeasants(u->region), n);
|
||||
n = MIN(rpeasants(u->region), n);
|
||||
if (n > 0){
|
||||
rsetpeasants(u->region, rpeasants(u->region) - n);
|
||||
scale_number(u, u->number + n);
|
||||
|
@ -650,7 +650,7 @@ scareaway(region * r, int anzahl)
|
|||
int n, p, diff = 0, emigrants[MAXDIRECTIONS];
|
||||
direction_t d;
|
||||
|
||||
anzahl = min(max(1, anzahl),rpeasants(r));
|
||||
anzahl = MIN(MAX(1, anzahl),rpeasants(r));
|
||||
|
||||
/* Wandern am Ende der Woche (normal) oder wegen Monster. Die
|
||||
* Wanderung wird erst am Ende von demographics () ausgefuehrt.
|
||||
|
@ -662,7 +662,7 @@ scareaway(region * r, int anzahl)
|
|||
|
||||
p = rpeasants(r);
|
||||
assert(p >= 0 && anzahl >= 0);
|
||||
for (n = min(p, anzahl); n; n--) {
|
||||
for (n = MIN(p, anzahl); n; n--) {
|
||||
direction_t dir = (direction_t)(rng_int() % MAXDIRECTIONS);
|
||||
region * rc = rconnect(r, dir);
|
||||
|
||||
|
@ -698,7 +698,7 @@ scared_by_monster(unit * u)
|
|||
|
||||
if(n > 0) {
|
||||
n = lovar(n);
|
||||
n = min(rpeasants(u->region), n);
|
||||
n = MIN(rpeasants(u->region), n);
|
||||
if(n > 0) {
|
||||
n = scareaway(u->region, n);
|
||||
if(n > 0) {
|
||||
|
|
|
@ -1160,7 +1160,7 @@ rotting_herbs(void)
|
|||
if (fval(itm->type, ITF_HERB)) {
|
||||
double nv = normalvariate(k, k/4);
|
||||
int inv = (int)nv;
|
||||
int delta = min(n, inv);
|
||||
int delta = MIN(n, inv);
|
||||
if (i_change(itmp, itm->type, -delta)==NULL) {
|
||||
continue;
|
||||
}
|
||||
|
@ -1207,7 +1207,7 @@ randomevents(void)
|
|||
a_remove(&r->attribs, a);
|
||||
ADDMSG(&r->msgs, msg_message("orcified", "region", r));
|
||||
} else {
|
||||
a->data.i -= max(10,a->data.i/10);
|
||||
a->data.i -= MAX(10,a->data.i/10);
|
||||
if (a->data.i <= 0) a_remove(&r->attribs, a);
|
||||
}
|
||||
}
|
||||
|
@ -1244,7 +1244,7 @@ randomevents(void)
|
|||
while (*blist) {
|
||||
building * b = *blist;
|
||||
if (fval(b->type, BTF_DECAY) && !buildingowner(r, b)) {
|
||||
b->size -= max(1, (b->size * 20) / 100);
|
||||
b->size -= MAX(1, (b->size * 20) / 100);
|
||||
if (b->size == 0) {
|
||||
remove_building(blist, r->buildings);
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ spy_cmd(unit * u, struct order * ord)
|
|||
* Für jeden Talentpunkt, den das Spionagetalent das Tarnungstalent
|
||||
* des Opfers übersteigt, erhöht sich dieses um 5%*/
|
||||
spy = eff_skill(u, SK_SPY, r) - eff_skill(target, SK_STEALTH, r);
|
||||
spychance = 0.1 + max(spy*0.05, 0.0);
|
||||
spychance = 0.1 + MAX(spy*0.05, 0.0);
|
||||
|
||||
if (chance(spychance)) {
|
||||
produceexp(u, SK_SPY, u->number);
|
||||
|
@ -154,7 +154,7 @@ spy_cmd(unit * u, struct order * ord)
|
|||
- (effskill(u, SK_STEALTH) + eff_skill(u, SK_SPY, r)/2);
|
||||
|
||||
if (invisible(u, target) >= u->number) {
|
||||
observe = min(observe, 0);
|
||||
observe = MIN(observe, 0);
|
||||
}
|
||||
|
||||
/* Anschließend wird - unabhängig vom Erfolg - gewürfelt, ob der
|
||||
|
@ -392,7 +392,7 @@ crew_skill(region * r, faction * f, ship * sh, skill_t sk)
|
|||
for (u=r->units;u;u=u->next) {
|
||||
if (u->ship == sh && u->faction == f) {
|
||||
int s = eff_skill(u, sk, r);
|
||||
value = max(s, value);
|
||||
value = MAX(s, value);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
|
|
|
@ -159,7 +159,7 @@ teach_unit(unit * teacher, unit * student, int nteaching, skill_t sk,
|
|||
* steigen.
|
||||
*
|
||||
* n ist die Anzahl zusätzlich gelernter Tage. n darf max. die Differenz
|
||||
* von schon gelernten Tagen zum max(30 Tage pro Mann) betragen. */
|
||||
* von schon gelernten Tagen zum MAX(30 Tage pro Mann) betragen. */
|
||||
|
||||
if (magic_lowskill(student)){
|
||||
cmistake(teacher, teacher->thisorder, 292, MSG_EVENT);
|
||||
|
@ -173,7 +173,7 @@ teach_unit(unit * teacher, unit * student, int nteaching, skill_t sk,
|
|||
n -= teach->value;
|
||||
}
|
||||
|
||||
n = min(n, nteaching);
|
||||
n = MIN(n, nteaching);
|
||||
|
||||
if (n != 0) {
|
||||
struct building * b = inside_building(teacher);
|
||||
|
@ -196,7 +196,7 @@ teach_unit(unit * teacher, unit * student, int nteaching, skill_t sk,
|
|||
&& student->building && student->building->type == bt_find("academy"))
|
||||
{
|
||||
int j = study_cost(student, sk);
|
||||
j = max(50, j * 2);
|
||||
j = MAX(50, j * 2);
|
||||
/* kann Einheit das zahlen? */
|
||||
if (get_pooled(student, oldresourcetype[R_SILVER], GET_DEFAULT, j) >= j) {
|
||||
/* Jeder Schüler zusätzlich +10 Tage wenn in Uni. */
|
||||
|
@ -236,7 +236,7 @@ teach_unit(unit * teacher, unit * student, int nteaching, skill_t sk,
|
|||
* die Talentänderung (enno).
|
||||
*/
|
||||
|
||||
nteaching = max(0, nteaching - student->number * 30);
|
||||
nteaching = MAX(0, nteaching - student->number * 30);
|
||||
|
||||
}
|
||||
return n;
|
||||
|
@ -274,7 +274,7 @@ teach_cmd(unit * u, struct order * ord)
|
|||
teaching = u->number * 30 * TEACHNUMBER;
|
||||
|
||||
if ((i = get_effect(u, oldpotiontype[P_FOOL])) > 0) { /* Trank "Dumpfbackenbrot" */
|
||||
i = min(i, u->number * TEACHNUMBER);
|
||||
i = MIN(i, u->number * TEACHNUMBER);
|
||||
/* Trank wirkt pro Schüler, nicht pro Lehrer */
|
||||
teaching -= i * 30;
|
||||
change_effect(u, oldpotiontype[P_FOOL], -i);
|
||||
|
@ -532,7 +532,7 @@ learn_cmd(unit * u, order * ord)
|
|||
const struct building_type * btype = b?b->type:NULL;
|
||||
|
||||
if (btype == bt_find("academy")) {
|
||||
studycost = max(50, studycost * 2);
|
||||
studycost = MAX(50, studycost * 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -608,11 +608,11 @@ learn_cmd(unit * u, order * ord)
|
|||
if (studycost) {
|
||||
int cost = studycost * u->number;
|
||||
money = get_pooled(u, oldresourcetype[R_SILVER], GET_DEFAULT, cost);
|
||||
money = min(money, cost);
|
||||
money = MIN(money, cost);
|
||||
}
|
||||
if (money < studycost * u->number) {
|
||||
studycost = p; /* Ohne Univertreurung */
|
||||
money = min(money, studycost);
|
||||
money = MIN(money, studycost);
|
||||
if (p>0 && money < studycost * u->number) {
|
||||
cmistake(u, ord, 65, MSG_EVENT);
|
||||
multi = money / (double)(studycost * u->number);
|
||||
|
@ -631,12 +631,12 @@ learn_cmd(unit * u, order * ord)
|
|||
}
|
||||
|
||||
if (get_effect(u, oldpotiontype[P_WISE])) {
|
||||
l = min(u->number, get_effect(u, oldpotiontype[P_WISE]));
|
||||
l = MIN(u->number, get_effect(u, oldpotiontype[P_WISE]));
|
||||
teach->value += l * 10;
|
||||
change_effect(u, oldpotiontype[P_WISE], -l);
|
||||
}
|
||||
if (get_effect(u, oldpotiontype[P_FOOL])) {
|
||||
l = min(u->number, get_effect(u, oldpotiontype[P_FOOL]));
|
||||
l = MIN(u->number, get_effect(u, oldpotiontype[P_FOOL]));
|
||||
teach->value -= l * 30;
|
||||
change_effect(u, oldpotiontype[P_FOOL], -l);
|
||||
}
|
||||
|
@ -651,7 +651,7 @@ learn_cmd(unit * u, order * ord)
|
|||
teach->value += u->number * 5 * (l+1);
|
||||
} else {
|
||||
teach->value -= u->number * 5 * (l+1);
|
||||
teach->value = max(0, teach->value);
|
||||
teach->value = MAX(0, teach->value);
|
||||
}
|
||||
}
|
||||
#endif /* KARMA_MODULE */
|
||||
|
|
|
@ -99,7 +99,7 @@ attack_catapult(const troop * at, const struct weapon_type * wtype, int * casual
|
|||
}
|
||||
|
||||
enemies = count_enemies(b, af, FIGHT_ROW, FIGHT_ROW, SELECT_ADVANCE);
|
||||
enemies = min(enemies, CATAPULT_ATTACKS);
|
||||
enemies = MIN(enemies, CATAPULT_ATTACKS);
|
||||
if (enemies==0) {
|
||||
return true; /* allow further attacks */
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ use_manacrystal(struct unit * u, const struct item_type * itype, int amount, str
|
|||
}
|
||||
|
||||
for (i=0;i!=amount;++i) {
|
||||
sp += max(25, max_spellpoints(u->region, u)/2);
|
||||
sp += MAX(25, max_spellpoints(u->region, u)/2);
|
||||
change_spellpoints(u, sp);
|
||||
}
|
||||
|
||||
|
|
|
@ -72,11 +72,11 @@ herbsearch(region * r, unit * u, int max)
|
|||
return;
|
||||
}
|
||||
|
||||
if (max) max = min(max, rherbs(r));
|
||||
if (max) max = MIN(max, rherbs(r));
|
||||
else max = rherbs(r);
|
||||
herbsfound = ntimespprob(eff_skill(u, SK_HERBALISM, r) * u->number,
|
||||
(double)rherbs(r)/100.0F, -0.01F);
|
||||
herbsfound = min(herbsfound, max);
|
||||
herbsfound = MIN(herbsfound, max);
|
||||
rsetherbs(r, rherbs(r)-herbsfound);
|
||||
|
||||
if (herbsfound) {
|
||||
|
@ -128,7 +128,7 @@ use_potion(unit * u, const item_type * itype, int amount, struct order *ord)
|
|||
} else if (ptype==oldpotiontype[P_HEAL]) {
|
||||
return EUNUSABLE;
|
||||
} else if (ptype==oldpotiontype[P_HEILWASSER]) {
|
||||
u->hp = min(unit_max_hp(u) * u->number, u->hp + 400 * amount);
|
||||
u->hp = MIN(unit_max_hp(u) * u->number, u->hp + 400 * amount);
|
||||
} else if (ptype==oldpotiontype[P_PEOPLE]) {
|
||||
region * r = u->region;
|
||||
attrib * a = (attrib*)a_find(r->attribs, &at_peasantluck);
|
||||
|
@ -144,7 +144,7 @@ use_potion(unit * u, const item_type * itype, int amount, struct order *ord)
|
|||
amount=1;
|
||||
} else if (ptype==oldpotiontype[P_MACHT]) {
|
||||
/* Verfünffacht die HP von max. 10 Personen in der Einheit */
|
||||
u->hp += min(u->number, 10*amount) * unit_max_hp(u) * 4;
|
||||
u->hp += MIN(u->number, 10*amount) * unit_max_hp(u) * 4;
|
||||
} else {
|
||||
change_effect(u, ptype, 10*amount);
|
||||
}
|
||||
|
|
|
@ -94,7 +94,6 @@ alliance_kick(const tnode * tnext, void * data, struct order * ord)
|
|||
unit * u = (unit*)data;
|
||||
faction * f = findfaction(getid());
|
||||
attrib * a;
|
||||
unused(tnext);
|
||||
|
||||
if (f==NULL || f->alliance!=u->faction->alliance) {
|
||||
/* does not belong to our alliance */
|
||||
|
|
|
@ -216,7 +216,7 @@ armedmen(const unit * u, boolean siege_weapons)
|
|||
/* if (effskill(u, wtype->skill) >= wtype->minskill) n += itm->number; */
|
||||
if (n>u->number) break;
|
||||
}
|
||||
n = min(n, u->number);
|
||||
n = MIN(n, u->number);
|
||||
}
|
||||
}
|
||||
return n;
|
||||
|
@ -442,7 +442,7 @@ get_row(const side * s, int row, const side * vs)
|
|||
/* every entry in the size[] array means someone trying to defend us.
|
||||
* 'retreat' is the number of rows falling.
|
||||
*/
|
||||
result = max(FIRST_ROW, row - retreat);
|
||||
result = MAX(FIRST_ROW, row - retreat);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -576,11 +576,11 @@ weapon_skill(const weapon_type * wtype, const unit * u, boolean attacking)
|
|||
if(u->race == new_race[RC_URUK]) {
|
||||
int sword = effskill(u, SK_MELEE);
|
||||
int spear = effskill(u, SK_SPEAR);
|
||||
skill = max(sword, spear) - 3;
|
||||
skill = MAX(sword, spear) - 3;
|
||||
if (attacking) {
|
||||
skill = max(skill, u->race->at_default);
|
||||
skill = MAX(skill, u->race->at_default);
|
||||
} else {
|
||||
skill = max(skill, u->race->df_default);
|
||||
skill = MAX(skill, u->race->df_default);
|
||||
}
|
||||
} else {
|
||||
if (attacking) {
|
||||
|
@ -734,7 +734,7 @@ select_magicarmor(troop t)
|
|||
int geschuetzt = 0;
|
||||
int ma = 0;
|
||||
|
||||
geschuetzt = min(get_item(u, I_TROLLBELT), u->number);
|
||||
geschuetzt = MIN(get_item(u, I_TROLLBELT), u->number);
|
||||
|
||||
if (geschuetzt > t.index) /* unser Kandidat wird geschuetzt */
|
||||
ma += 1;
|
||||
|
@ -1016,8 +1016,8 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
|||
}
|
||||
#endif /* KARMA_MODULE */
|
||||
|
||||
kritchance = max(kritchance, 0.005);
|
||||
kritchance = min(0.9, kritchance);
|
||||
kritchance = MAX(kritchance, 0.005);
|
||||
kritchance = MIN(0.9, kritchance);
|
||||
|
||||
while (chance(kritchance)) {
|
||||
if (bdebug) {
|
||||
|
@ -1040,7 +1040,7 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
|||
}
|
||||
|
||||
/* Skilldifferenzbonus */
|
||||
da += max(0, (sk-sd)/DAMAGE_QUOTIENT);
|
||||
da += MAX(0, (sk-sd)/DAMAGE_QUOTIENT);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1063,13 +1063,13 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
|||
}
|
||||
|
||||
if (res > 0) {
|
||||
da = (int) (max(da * res, 0));
|
||||
da = (int) (MAX(da * res, 0));
|
||||
}
|
||||
/* gegen Magie wirkt nur natürliche und magische Rüstung */
|
||||
ar = an+am;
|
||||
}
|
||||
|
||||
rda = max(da - ar,0);
|
||||
rda = MAX(da - ar,0);
|
||||
|
||||
if ((du->race->battle_flags & BF_INV_NONMAGIC) && !magic) rda = 0;
|
||||
else {
|
||||
|
@ -1094,7 +1094,7 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
|||
}
|
||||
/* gibt Rüstung +effect für duration Treffer */
|
||||
if (meffect->typ == SHIELD_ARMOR) {
|
||||
rda = max(rda - meffect->effect, 0);
|
||||
rda = MAX(rda - meffect->effect, 0);
|
||||
meffect->duration--;
|
||||
}
|
||||
}
|
||||
|
@ -1294,7 +1294,7 @@ select_enemy(fighter * af, int minrow, int maxrow, int select)
|
|||
minrow = FIGHT_ROW;
|
||||
maxrow = BEHIND_ROW;
|
||||
}
|
||||
minrow = max(minrow, FIGHT_ROW);
|
||||
minrow = MAX(minrow, FIGHT_ROW);
|
||||
|
||||
enemies = count_enemies(b, af, minrow, maxrow, select);
|
||||
|
||||
|
@ -1367,7 +1367,7 @@ select_opponent(battle * b, troop at, int mindist, int maxdist)
|
|||
* them */
|
||||
dt = select_enemy(at.fighter, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
|
||||
} else {
|
||||
mindist = max(mindist, FIGHT_ROW);
|
||||
mindist = MAX(mindist, FIGHT_ROW);
|
||||
dt = select_enemy(at.fighter, mindist, maxdist, SELECT_ADVANCE);
|
||||
}
|
||||
|
||||
|
@ -1479,7 +1479,7 @@ do_combatmagic(battle *b, combatmagic_t was)
|
|||
}
|
||||
|
||||
level = eff_spelllevel(mage, sp, level, 1);
|
||||
if (sl > 0) level = min(sl, level);
|
||||
if (sl > 0) level = MIN(sl, level);
|
||||
if (level < 0) {
|
||||
report_failed_spell(b, mage, sp);
|
||||
free_order(ord);
|
||||
|
@ -1561,7 +1561,7 @@ do_combatspell(troop at)
|
|||
}
|
||||
|
||||
level = eff_spelllevel(mage, sp, fi->magic, 1);
|
||||
if ((sl = get_combatspelllevel(mage, 1)) > 0) level = min(level, sl);
|
||||
if ((sl = get_combatspelllevel(mage, 1)) > 0) level = MIN(level, sl);
|
||||
|
||||
if (fumble(r, mage, sp, sp->level) == true) {
|
||||
report_failed_spell(b, mage, sp);
|
||||
|
@ -1825,7 +1825,7 @@ dazzle(battle *b, troop *td)
|
|||
void
|
||||
damage_building(battle *b, building *bldg, int damage_abs)
|
||||
{
|
||||
bldg->size = max(1, bldg->size-damage_abs);
|
||||
bldg->size = MAX(1, bldg->size-damage_abs);
|
||||
|
||||
/* Wenn Burg, dann gucken, ob die Leute alle noch in das Gebäude passen. */
|
||||
|
||||
|
@ -2085,7 +2085,7 @@ do_regenerate(fighter *af)
|
|||
|
||||
while(ta.index--) {
|
||||
af->person[ta.index].hp += effskill(au, SK_STAMINA);
|
||||
af->person[ta.index].hp = min(unit_max_hp(au), af->person[ta.index].hp);
|
||||
af->person[ta.index].hp = MIN(unit_max_hp(au), af->person[ta.index].hp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2118,9 +2118,9 @@ fleechance(unit * u)
|
|||
|
||||
if (u->race == new_race[RC_HALFLING]) {
|
||||
c += 0.20;
|
||||
c = min(c, 0.90);
|
||||
c = MIN(c, 0.90);
|
||||
} else {
|
||||
c = min(c, 0.75);
|
||||
c = MIN(c, 0.75);
|
||||
}
|
||||
|
||||
if (a!=NULL) c += a->data.flt;
|
||||
|
@ -2189,7 +2189,7 @@ loot_items(fighter * corpse)
|
|||
float lootfactor = dead/(float)u->number; /* only loot the dead! */
|
||||
int maxloot = (int)(itm->number*lootfactor);
|
||||
if (maxloot>0) {
|
||||
int i = min(10, maxloot);
|
||||
int i = MIN(10, maxloot);
|
||||
for (; i != 0; --i) {
|
||||
int loot = maxloot/i;
|
||||
|
||||
|
@ -2264,7 +2264,7 @@ static void
|
|||
battle_effects(battle * b, int dead_players)
|
||||
{
|
||||
region * r = b->region;
|
||||
int dead_peasants = min(rpeasants(r), (int)(dead_players*PopulationDamage()));
|
||||
int dead_peasants = MIN(rpeasants(r), (int)(dead_players*PopulationDamage()));
|
||||
deathcounts(r, dead_peasants + dead_players);
|
||||
chaoscounts(r, dead_peasants / 2);
|
||||
rsetpeasants(r, rpeasants(r) - dead_peasants);
|
||||
|
@ -2805,7 +2805,7 @@ print_stats(battle * b)
|
|||
|
||||
for (s=b->sides;s!=b->sides+b->nsides;++s) {
|
||||
if (cv_size(&s->leader.fighters)) {
|
||||
b->max_tactics = max(b->max_tactics, s->leader.value);
|
||||
b->max_tactics = MAX(b->max_tactics, s->leader.value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2948,7 +2948,7 @@ make_fighter(battle * b, unit * u, side * s1, boolean attack)
|
|||
/* change_effect wird in ageing gemacht */
|
||||
|
||||
/* Effekte von Artefakten */
|
||||
strongmen = min(fig->unit->number, get_item(u, I_TROLLBELT));
|
||||
strongmen = MIN(fig->unit->number, get_item(u, I_TROLLBELT));
|
||||
|
||||
#if KARMA_MODULE
|
||||
for (a = a_find(u->attribs, &at_prayer_effect); a && a->type==&at_prayer_effect; a = a->next) {
|
||||
|
@ -3125,7 +3125,7 @@ make_fighter(battle * b, unit * u, side * s1, boolean attack)
|
|||
else
|
||||
p_bonus += 3;
|
||||
} while(rnd >= 97);
|
||||
bonus = max(p_bonus, bonus);
|
||||
bonus = MAX(p_bonus, bonus);
|
||||
}
|
||||
t += bonus;
|
||||
}
|
||||
|
@ -3241,7 +3241,7 @@ make_battle(region * r)
|
|||
|
||||
for (bf=b->factions;bf;bf=bf->next) {
|
||||
faction * f = bf->faction;
|
||||
max_fac_no = max(max_fac_no, f->no);
|
||||
max_fac_no = MAX(max_fac_no, f->no);
|
||||
freset(f, FFL_MARK);
|
||||
}
|
||||
return b;
|
||||
|
@ -3284,7 +3284,7 @@ free_battle(battle * b)
|
|||
bfaction * bf = b->factions;
|
||||
faction * f = bf->faction;
|
||||
b->factions = bf->next;
|
||||
max_fac_no = max(max_fac_no, f->no);
|
||||
max_fac_no = MAX(max_fac_no, f->no);
|
||||
free(bf);
|
||||
}
|
||||
|
||||
|
@ -3542,7 +3542,7 @@ flee(const troop dt)
|
|||
/* Regeländerung: Man muß das Tier nicht reiten können,
|
||||
* um es vom Schlachtfeld mitzunehmen, ist ja nur
|
||||
* eine Region weit. * */
|
||||
keep = min(1, itm->number);
|
||||
keep = MIN(1, itm->number);
|
||||
/* da ist das weight des tiers mit drin */
|
||||
carry += itype->capacity - itype->weight;
|
||||
} else if (itm->type->weight <= 0) {
|
||||
|
@ -3881,7 +3881,7 @@ battle_flee(battle * b)
|
|||
troop dt;
|
||||
int runners = 0;
|
||||
/* Flucht nicht bei mehr als 600 HP. Damit Wyrme tötbar bleiben. */
|
||||
int runhp = min(600,(int)(0.9+unit_max_hp(u)*hpflee(u->status)));
|
||||
int runhp = MIN(600,(int)(0.9+unit_max_hp(u)*hpflee(u->status)));
|
||||
if (fval(u->race, RCF_UNDEAD) || u->race == new_race[RC_SHADOWKNIGHT]) continue;
|
||||
|
||||
dt.fighter = fig;
|
||||
|
@ -3918,7 +3918,7 @@ battle_flee(battle * b)
|
|||
if (fig->person[dt.index].flags & FL_PANICED) {
|
||||
ispaniced = EFFECT_PANIC_SPELL;
|
||||
}
|
||||
if (chance(min(fleechance(u)+ispaniced, 0.90))) {
|
||||
if (chance(MIN(fleechance(u)+ispaniced, 0.90))) {
|
||||
++runners;
|
||||
flee(dt);
|
||||
}
|
||||
|
|
|
@ -190,7 +190,7 @@ bin_r_str_buf(struct storage * store, char * result, size_t size)
|
|||
result[0] = 0;
|
||||
} else {
|
||||
len = (size_t)i;
|
||||
rd = min(len, size);
|
||||
rd = MIN(len, size);
|
||||
fread(result, sizeof(char), rd, file(store));
|
||||
if (rd<len) {
|
||||
fseek(file(store), (long)(len-rd), SEEK_CUR);
|
||||
|
|
|
@ -99,7 +99,7 @@ get_borders_i(const region * r1, const region * r2)
|
|||
int key = reg_hashkey(r1);
|
||||
int k2 = reg_hashkey(r2);
|
||||
|
||||
key = min(k2, key) % BORDER_MAXHASH;
|
||||
key = MIN(k2, key) % BORDER_MAXHASH;
|
||||
bp = &borders[key];
|
||||
while (*bp) {
|
||||
border * b = *bp;
|
||||
|
@ -452,7 +452,7 @@ b_nameroad(const border * b, const region * r, const struct faction * f, int gfl
|
|||
return LOC(f->locale, mkname("border", "an_incomplete_road"));
|
||||
}
|
||||
} else {
|
||||
int percent = max(1, 100*local/r->terrain->max_road);
|
||||
int percent = MAX(1, 100*local/r->terrain->max_road);
|
||||
if (local) {
|
||||
snprintf(buffer, sizeof(buffer), LOC(f->locale, mkname("border", "a_road_percent")), percent);
|
||||
} else {
|
||||
|
|
|
@ -223,9 +223,9 @@ siege_cmd(unit * u, order * ord)
|
|||
/* schaden durch katapulte */
|
||||
|
||||
d = i_get(u->items, it_catapult);
|
||||
d = min(u->number, d);
|
||||
d = MIN(u->number, d);
|
||||
pooled = get_pooled(u, it_catapultammo->rtype, GET_DEFAULT, d);
|
||||
d = min(pooled, d);
|
||||
d = MIN(pooled, d);
|
||||
if (eff_skill(u, SK_CATAPULT, r) >= 1) {
|
||||
katapultiere = d;
|
||||
d *= eff_skill(u, SK_CATAPULT, r);
|
||||
|
@ -251,11 +251,11 @@ siege_cmd(unit * u, order * ord)
|
|||
* einheiten wieder abgesucht werden muessen! */
|
||||
|
||||
usetsiege(u, b);
|
||||
b->besieged += max(bewaffnete, katapultiere);
|
||||
b->besieged += MAX(bewaffnete, katapultiere);
|
||||
|
||||
/* definitiver schaden eingeschraenkt */
|
||||
|
||||
d = min(d, b->size - 1);
|
||||
d = MIN(d, b->size - 1);
|
||||
|
||||
/* meldung, schaden anrichten */
|
||||
if (d && !curse_active(get_curse(b->attribs, magicwalls_ct))) {
|
||||
|
@ -311,11 +311,11 @@ destroy_road(unit *u, int nmax, struct order * ord)
|
|||
cmistake(u, ord, 71, MSG_PRODUCE);
|
||||
} else {
|
||||
short road = rroad(r, d);
|
||||
n = min(n, road);
|
||||
n = MIN(n, road);
|
||||
if (n!=0) {
|
||||
region * r2 = rconnect(r,d);
|
||||
int willdo = eff_skill(u, SK_ROAD_BUILDING, r)*u->number;
|
||||
willdo = min(willdo, n);
|
||||
willdo = MIN(willdo, n);
|
||||
if (willdo==0) {
|
||||
/* TODO: error message */
|
||||
}
|
||||
|
@ -502,7 +502,7 @@ build_road(region * r, unit * u, int size, direction_t d)
|
|||
return;
|
||||
}
|
||||
|
||||
if (size>0) left = min(size, left);
|
||||
if (size>0) left = MIN(size, left);
|
||||
/* baumaximum anhand der rohstoffe */
|
||||
if (u->race == new_race[RC_STONEGOLEM]){
|
||||
n = u->number * GOLEM_STONE;
|
||||
|
@ -513,14 +513,14 @@ build_road(region * r, unit * u, int size, direction_t d)
|
|||
return;
|
||||
}
|
||||
}
|
||||
left = min(n, left);
|
||||
left = MIN(n, left);
|
||||
|
||||
/* n = maximum by skill. try to maximize it */
|
||||
n = u->number * eff_skill(u, SK_ROAD_BUILDING, r);
|
||||
if (n < left) {
|
||||
item * itm = *i_find(&u->items, olditemtype[I_RING_OF_NIMBLEFINGER]);
|
||||
if (itm!=NULL && itm->number>0) {
|
||||
int rings = min(u->number, itm->number);
|
||||
int rings = MIN(u->number, itm->number);
|
||||
n = n * (9*rings+u->number) / u->number;
|
||||
}
|
||||
}
|
||||
|
@ -529,15 +529,15 @@ build_road(region * r, unit * u, int size, direction_t d)
|
|||
if (dm != 0) {
|
||||
int sk = eff_skill(u, SK_ROAD_BUILDING, r);
|
||||
int todo = (left - n + sk - 1) / sk;
|
||||
todo = min(todo, u->number);
|
||||
dm = min(dm, todo);
|
||||
todo = MIN(todo, u->number);
|
||||
dm = MIN(dm, todo);
|
||||
change_effect(u, oldpotiontype[P_DOMORE], -dm);
|
||||
n += dm * sk;
|
||||
} /* Auswirkung Schaffenstrunk */
|
||||
}
|
||||
|
||||
/* make minimum of possible and available: */
|
||||
n = min(left, n);
|
||||
n = MIN(left, n);
|
||||
|
||||
/* n is now modified by several special effects, so we have to
|
||||
* minimize it again to make sure the road will not grow beyond
|
||||
|
@ -553,7 +553,7 @@ build_road(region * r, unit * u, int size, direction_t d)
|
|||
} else {
|
||||
use_pooled(u, oldresourcetype[R_STONE], GET_DEFAULT, n);
|
||||
/* Nur soviel PRODUCEEXP wie auch tatsaechlich gemacht wurde */
|
||||
produceexp(u, SK_ROAD_BUILDING, min(n, u->number));
|
||||
produceexp(u, SK_ROAD_BUILDING, MIN(n, u->number));
|
||||
}
|
||||
ADDMSG(&u->faction->msgs, msg_message("buildroad",
|
||||
"region unit size", r, u, n));
|
||||
|
@ -632,7 +632,7 @@ build(unit * u, const construction * ctype, int completed, int want)
|
|||
|
||||
if (dm != 0) {
|
||||
/* Auswirkung Schaffenstrunk */
|
||||
dm = min(dm, u->number);
|
||||
dm = MIN(dm, u->number);
|
||||
change_effect(u, oldpotiontype[P_DOMORE], -dm);
|
||||
skills += dm * effsk;
|
||||
}
|
||||
|
@ -687,17 +687,17 @@ build(unit * u, const construction * ctype, int completed, int want)
|
|||
item * itm = *i_find(&u->items, olditemtype[I_RING_OF_NIMBLEFINGER]);
|
||||
if (itm!=NULL) i = itm->number;
|
||||
if (i>0) {
|
||||
int rings = min(u->number, i);
|
||||
int rings = MIN(u->number, i);
|
||||
n = n * (9*rings+u->number) / u->number;
|
||||
}
|
||||
}
|
||||
|
||||
if (want>0) {
|
||||
n = min(want, n);
|
||||
n = MIN(want, n);
|
||||
}
|
||||
|
||||
if (type->maxsize>0) {
|
||||
n = min(type->maxsize-completed, n);
|
||||
n = MIN(type->maxsize-completed, n);
|
||||
if (type->improvement==NULL) {
|
||||
want = n;
|
||||
}
|
||||
|
@ -752,7 +752,7 @@ build(unit * u, const construction * ctype, int completed, int want)
|
|||
completed = completed + n;
|
||||
}
|
||||
/* Nur soviel PRODUCEEXP wie auch tatsaechlich gemacht wurde */
|
||||
produceexp(u, ctype->skill, min(made, u->number));
|
||||
produceexp(u, ctype->skill, MIN(made, u->number));
|
||||
|
||||
return made;
|
||||
}
|
||||
|
@ -789,7 +789,7 @@ maxbuild(const unit * u, const construction * cons)
|
|||
if (have<need) {
|
||||
return 0;
|
||||
}
|
||||
else maximum = min(maximum, have/need);
|
||||
else maximum = MIN(maximum, have/need);
|
||||
}
|
||||
return maximum;
|
||||
}
|
||||
|
@ -977,7 +977,7 @@ build_ship(unit * u, ship * sh, int want)
|
|||
}
|
||||
|
||||
if (sh->damage && can) {
|
||||
int repair = min(sh->damage, can * DAMAGE_SCALE);
|
||||
int repair = MIN(sh->damage, can * DAMAGE_SCALE);
|
||||
n += repair / DAMAGE_SCALE;
|
||||
if (repair % DAMAGE_SCALE) ++n;
|
||||
sh->damage = sh->damage - repair;
|
||||
|
@ -1016,7 +1016,7 @@ create_ship(region * r, unit * u, const struct ship_type * newtype, int want, or
|
|||
cmistake(u, ord, 88, MSG_PRODUCE);
|
||||
return;
|
||||
}
|
||||
if (want>0) want = min(want, msize);
|
||||
if (want>0) want = MIN(want, msize);
|
||||
else want = msize;
|
||||
|
||||
sh = new_ship(newtype, u->faction->locale, r);
|
||||
|
@ -1070,7 +1070,7 @@ continue_ship(region * r, unit * u, int want)
|
|||
cmistake(u, u->thisorder, 88, MSG_PRODUCE);
|
||||
return;
|
||||
}
|
||||
if (want > 0) want = min(want, msize);
|
||||
if (want > 0) want = MIN(want, msize);
|
||||
else want = msize;
|
||||
|
||||
build_ship(u, sh, want);
|
||||
|
|
|
@ -144,18 +144,18 @@ bt_register(building_type * type)
|
|||
int
|
||||
buildingcapacity(const building * b)
|
||||
{
|
||||
if (b->type->capacity>=0) {
|
||||
if (b->type->capacity>=0) {
|
||||
if (b->type->maxcapacity>=0) {
|
||||
return min(b->type->maxcapacity, b->size * b->type->capacity);
|
||||
return MIN(b->type->maxcapacity, b->size * b->type->capacity);
|
||||
}
|
||||
return b->size * b->type->capacity;
|
||||
}
|
||||
return b->size * b->type->capacity;
|
||||
}
|
||||
if (b->size>=b->type->maxsize) {
|
||||
if (b->type->maxcapacity>=0) {
|
||||
return b->type->maxcapacity;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
attrib_type at_building_generic_type = {
|
||||
|
|
|
@ -134,7 +134,7 @@ curse_age(attrib * a)
|
|||
} else if (c_flags(c) & CURSE_NOAGE) {
|
||||
c->duration = 1;
|
||||
} else if (c->duration!=INT_MAX) {
|
||||
c->duration = max(0, c->duration-1);
|
||||
c->duration = MAX(0, c->duration-1);
|
||||
}
|
||||
return c->duration;
|
||||
}
|
||||
|
@ -314,7 +314,7 @@ ct_find(const char *c)
|
|||
if (strcmp(c, ctl->type->cname)==0) {
|
||||
return ctl->type;
|
||||
} else {
|
||||
size_t k = min(strlen(c), strlen(ctl->type->cname));
|
||||
size_t k = MIN(strlen(c), strlen(ctl->type->cname));
|
||||
if (!strncasecmp(c, ctl->type->cname, k)) {
|
||||
return ctl->type;
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ get_cursedmen(unit *u, curse *c)
|
|||
cursedmen = cc->cursedmen;
|
||||
}
|
||||
|
||||
return min(u->number, cursedmen);
|
||||
return MIN(u->number, cursedmen);
|
||||
}
|
||||
|
||||
/* setzt die Anzahl der betroffenen Personen auf cursedmen */
|
||||
|
@ -548,7 +548,7 @@ create_curse(unit *magician, attrib **ap, const curse_type *ct, double vigour,
|
|||
/* es gibt schon eins diese Typs */
|
||||
if (c && ct->mergeflags != NO_MERGE) {
|
||||
if(ct->mergeflags & M_DURATION){
|
||||
c->duration = max(c->duration, duration);
|
||||
c->duration = MAX(c->duration, duration);
|
||||
}
|
||||
if(ct->mergeflags & M_SUMDURATION){
|
||||
c->duration += duration;
|
||||
|
@ -557,10 +557,10 @@ create_curse(unit *magician, attrib **ap, const curse_type *ct, double vigour,
|
|||
c->effect.i += effect.i;
|
||||
}
|
||||
if(ct->mergeflags & M_MAXEFFECT){
|
||||
c->effect.i = max(c->effect.i, effect.i);
|
||||
c->effect.i = MAX(c->effect.i, effect.i);
|
||||
}
|
||||
if(ct->mergeflags & M_VIGOUR){
|
||||
c->vigour = max(vigour, c->vigour);
|
||||
c->vigour = MAX(vigour, c->vigour);
|
||||
}
|
||||
if(ct->mergeflags & M_VIGOUR_ADD){
|
||||
c->vigour = vigour + c->vigour;
|
||||
|
|
|
@ -1833,7 +1833,7 @@ maxworkingpeasants(const struct region * r)
|
|||
{
|
||||
int i = production(r) * MAXPEASANTS_PER_AREA
|
||||
- ((rtrees(r,2)+rtrees(r,1)/2) * TREESIZE);
|
||||
return max(i, 0);
|
||||
return MAX(i, 0);
|
||||
}
|
||||
|
||||
unit_list *
|
||||
|
@ -1886,8 +1886,8 @@ lighthouse_range(const building * b, const faction * f)
|
|||
if (c > buildingcapacity(b)) break;
|
||||
if (f==NULL || u->faction == f) {
|
||||
int sk = eff_skill(u, SK_PERCEPTION, r) / 3;
|
||||
d = max(d, sk);
|
||||
d = min(maxd, d);
|
||||
d = MAX(d, sk);
|
||||
d = MIN(maxd, d);
|
||||
if (d==maxd) break;
|
||||
}
|
||||
} else if (c) break; /* first unit that's no longer in the house ends the search */
|
||||
|
@ -2578,7 +2578,7 @@ plagues(region * r, boolean ismagic)
|
|||
/* Seuchenwahrscheinlichkeit in % */
|
||||
|
||||
if (!ismagic) {
|
||||
double mwp = max(maxworkingpeasants(r), 1);
|
||||
double mwp = MAX(maxworkingpeasants(r), 1);
|
||||
double prob = pow(rpeasants(r) / (mwp * wage(r, NULL, NULL) * 0.13), 4.0)
|
||||
* PLAGUE_CHANCE;
|
||||
|
||||
|
@ -2670,7 +2670,7 @@ default_wage(const region *r, const faction * f, const race * rc)
|
|||
|
||||
/* Godcurse: Income -10 */
|
||||
if (curse_active(get_curse(r->attribs, ct_find("godcursezone")))) {
|
||||
wage = max(0,wage-10);
|
||||
wage = MAX(0,wage-10);
|
||||
}
|
||||
|
||||
/* Bei einer Dürre verdient man nur noch ein Viertel */
|
||||
|
|
|
@ -52,7 +52,7 @@ new_group(faction * f, const char * name, int gid)
|
|||
while (*gp) gp = &(*gp)->next;
|
||||
*gp = g;
|
||||
|
||||
maxgid = max(gid, maxgid);
|
||||
maxgid = MAX(gid, maxgid);
|
||||
g->name = strdup(name);
|
||||
g->gid = gid;
|
||||
|
||||
|
|
|
@ -751,7 +751,7 @@ heal(unit * user, int effect)
|
|||
{
|
||||
int req = unit_max_hp(user) * user->number - user->hp;
|
||||
if (req>0) {
|
||||
req = min(req, effect);
|
||||
req = MIN(req, effect);
|
||||
effect -= req;
|
||||
user->hp += req;
|
||||
}
|
||||
|
|
|
@ -401,7 +401,7 @@ sacrifice_cmd(unit * u, struct order * ord)
|
|||
cmistake(u, ord, 253, MSG_EVENT);
|
||||
return 0;
|
||||
}
|
||||
n = min(get_spellpoints(u), min(max_spellpoints(u->region, u), n));
|
||||
n = MIN(get_spellpoints(u), min(max_spellpoints(u->region, u), n));
|
||||
if(n <= 0) {
|
||||
cmistake(u, ord, 254, MSG_EVENT);
|
||||
return 0;
|
||||
|
|
|
@ -534,7 +534,7 @@ get_combatspelllevel(const unit *u, int nr)
|
|||
assert(nr < MAXCOMBATSPELLS);
|
||||
if (m) {
|
||||
int level = eff_skill(u, SK_MAGIC, u->region);
|
||||
return min(m->combatspells[nr].level, level);
|
||||
return MIN(m->combatspells[nr].level, level);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -664,7 +664,7 @@ change_spellpoints(unit * u, int mp)
|
|||
if (!m) return 0;
|
||||
|
||||
/* verhindere negative Magiepunkte */
|
||||
sp = max(m->spellpoints + mp, 0);
|
||||
sp = MAX(m->spellpoints + mp, 0);
|
||||
m->spellpoints = sp;
|
||||
|
||||
return sp;
|
||||
|
@ -723,7 +723,7 @@ max_spellpoints(const region * r, const unit * u)
|
|||
n = get_curseeffect(u->attribs, C_AURA, 0);
|
||||
if (n>0) msp = (msp*n)/100;
|
||||
|
||||
return max((int)msp, 0);
|
||||
return MAX((int)msp, 0);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -759,7 +759,7 @@ countspells(unit *u, int step)
|
|||
count = m->spellcount + step;
|
||||
|
||||
/* negative Werte abfangen. */
|
||||
m->spellcount = max(0,count);
|
||||
m->spellcount = MAX(0,count);
|
||||
|
||||
return m->spellcount;
|
||||
}
|
||||
|
@ -847,7 +847,7 @@ eff_spelllevel(unit *u, const spell * sp, int cast_level, int range)
|
|||
* gewünschten gebildet */
|
||||
} else if (sp->components[k].cost == SPC_LEVEL) {
|
||||
costtyp = SPC_LEVEL;
|
||||
cast_level = min(cast_level, maxlevel);
|
||||
cast_level = MIN(cast_level, maxlevel);
|
||||
/* bei Typ Linear müssen die Kosten in Höhe der Stufe vorhanden
|
||||
* sein, ansonsten schlägt der Spruch fehl */
|
||||
} else if (sp->components[k].cost == SPC_LINEAR) {
|
||||
|
@ -859,7 +859,7 @@ eff_spelllevel(unit *u, const spell * sp, int cast_level, int range)
|
|||
/* Ein Spruch mit Fixkosten wird immer mit der Stufe des Spruchs und
|
||||
* nicht auf der Stufe des Magiers gezaubert */
|
||||
if (costtyp == SPC_FIX) {
|
||||
cast_level = min(cast_level, sp->level);
|
||||
cast_level = MIN(cast_level, sp->level);
|
||||
}
|
||||
|
||||
return cast_level;
|
||||
|
@ -1061,7 +1061,7 @@ spellpower(region * r, unit * u, const spell * sp, int cast_level, struct order
|
|||
|
||||
force = force * MagicPower();
|
||||
|
||||
return max(force, 0);
|
||||
return MAX(force, 0);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
@ -1220,8 +1220,8 @@ target_resists_magic(unit *magician, void *obj, int objtyp, int t_bonus)
|
|||
break;
|
||||
}
|
||||
|
||||
probability = max(0.02, probability + t_bonus*0.01);
|
||||
probability = min(0.98, probability);
|
||||
probability = MAX(0.02, probability + t_bonus*0.01);
|
||||
probability = MIN(0.98, probability);
|
||||
|
||||
/* gibt true, wenn die Zufallszahl kleiner als die chance ist und
|
||||
* false, wenn sie gleich oder größer ist, dh je größer die
|
||||
|
@ -1355,7 +1355,7 @@ do_fumble(castorder *co)
|
|||
|
||||
case 2:
|
||||
/* temporärer Stufenverlust */
|
||||
duration = max(rng_int()%level/2, 2);
|
||||
duration = MAX(rng_int()%level/2, 2);
|
||||
effect.i = -(level/2);
|
||||
c = create_curse(u, &u->attribs, ct_find("skillmod"), (float)level, duration,
|
||||
effect, 1);
|
||||
|
@ -1469,15 +1469,15 @@ regeneration_magiepunkte(void)
|
|||
|
||||
/* maximal Differenz bis Maximale-Aura regenerieren
|
||||
* mindestens 1 Aura pro Monat */
|
||||
reg_aura = max(1,reg_aura);
|
||||
reg_aura = min((auramax - aura), reg_aura);
|
||||
reg_aura = MAX(1,reg_aura);
|
||||
reg_aura = MIN((auramax - aura), reg_aura);
|
||||
|
||||
aura += (int)reg_aura;
|
||||
ADDMSG(&u->faction->msgs, msg_message(
|
||||
"regenaura", "unit region amount",
|
||||
u, r, (int)reg_aura));
|
||||
}
|
||||
set_spellpoints(u, min(aura, auramax));
|
||||
set_spellpoints(u, MIN(aura, auramax));
|
||||
|
||||
/* Zum letzten Mal Spruchliste aktualisieren */
|
||||
updatespelllist(u);
|
||||
|
@ -2473,7 +2473,7 @@ cast_cmd(unit * u, order * ord)
|
|||
/* für Syntax ' STUFE x REGION y z ' */
|
||||
if (findparam(s, u->faction->locale) == P_LEVEL) {
|
||||
int p = getint();
|
||||
level = min(p, level);
|
||||
level = MIN(p, level);
|
||||
if (level < 1) {
|
||||
/* Fehler "Das macht wenig Sinn" */
|
||||
cmistake(u, ord, 10, MSG_MAGIC);
|
||||
|
@ -2499,7 +2499,7 @@ cast_cmd(unit * u, order * ord)
|
|||
* hier nach REGION nochmal auf STUFE prüfen */
|
||||
if (findparam(s, u->faction->locale) == P_LEVEL) {
|
||||
int p = getint();
|
||||
level = min(p, level);
|
||||
level = MIN(p, level);
|
||||
if (level < 1) {
|
||||
/* Fehler "Das macht wenig Sinn" */
|
||||
cmistake(u, ord, 10, MSG_MAGIC);
|
||||
|
@ -2622,7 +2622,7 @@ cast_cmd(unit * u, order * ord)
|
|||
* löschen, zaubern kann er noch */
|
||||
range *= 2;
|
||||
set_order(&mage->thisorder, NULL);
|
||||
level = min(level, eff_skill(mage, SK_MAGIC, mage->region)/2);
|
||||
level = MIN(level, eff_skill(mage, SK_MAGIC, mage->region)/2);
|
||||
familiar = u;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -272,11 +272,11 @@ ridingcapacity(unit * u)
|
|||
* tragen nichts (siehe walkingcapacity). Ein Wagen zählt nur, wenn er
|
||||
* von zwei Pferden gezogen wird */
|
||||
|
||||
animals = min(animals, effskill(u, SK_RIDING) * u->number * 2);
|
||||
animals = MIN(animals, effskill(u, SK_RIDING) * u->number * 2);
|
||||
if (fval(u->race, RCF_HORSE)) animals += u->number;
|
||||
|
||||
/* maximal diese Pferde können zum Ziehen benutzt werden */
|
||||
vehicles = min(animals / HORSESNEEDED, vehicles);
|
||||
vehicles = MIN(animals / HORSESNEEDED, vehicles);
|
||||
|
||||
return vehicles * vcap + animals * acap;
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ walkingcapacity(const struct unit * u)
|
|||
/* Das Gewicht, welches die Pferde tragen, plus das Gewicht, welches
|
||||
* die Leute tragen */
|
||||
|
||||
pferde_fuer_wagen = min(animals, effskill(u, SK_RIDING) * u->number * 4);
|
||||
pferde_fuer_wagen = MIN(animals, effskill(u, SK_RIDING) * u->number * 4);
|
||||
if (fval(u->race, RCF_HORSE)) {
|
||||
animals += u->number;
|
||||
people = 0;
|
||||
|
@ -303,7 +303,7 @@ walkingcapacity(const struct unit * u)
|
|||
}
|
||||
|
||||
/* maximal diese Pferde können zum Ziehen benutzt werden */
|
||||
wagen_mit_pferden = min(vehicles, pferde_fuer_wagen / HORSESNEEDED);
|
||||
wagen_mit_pferden = MIN(vehicles, pferde_fuer_wagen / HORSESNEEDED);
|
||||
|
||||
n = wagen_mit_pferden * vcap;
|
||||
|
||||
|
@ -313,7 +313,7 @@ walkingcapacity(const struct unit * u)
|
|||
wagen_ohne_pferde = vehicles - wagen_mit_pferden;
|
||||
|
||||
/* Genug Trolle, um die Restwagen zu ziehen? */
|
||||
wagen_mit_trollen = min(u->number / 4, wagen_ohne_pferde);
|
||||
wagen_mit_trollen = MIN(u->number / 4, wagen_ohne_pferde);
|
||||
|
||||
/* Wagenkapazität hinzuzählen */
|
||||
n += wagen_mit_trollen * vcap;
|
||||
|
@ -331,7 +331,7 @@ walkingcapacity(const struct unit * u)
|
|||
}
|
||||
/* change_effect wird in ageing gemacht */
|
||||
tmp = get_item(u, I_TROLLBELT);
|
||||
n += min(people, tmp) * (STRENGTHMULTIPLIER-1) * personcapacity(u);
|
||||
n += MIN(people, tmp) * (STRENGTHMULTIPLIER-1) * personcapacity(u);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
@ -359,7 +359,7 @@ canwalk(unit * u)
|
|||
|
||||
maxwagen = effskill(u, SK_RIDING) * u->number * 2;
|
||||
if (u->race == new_race[RC_TROLL]) {
|
||||
maxwagen = max(maxwagen, u->number / 4);
|
||||
maxwagen = MAX(maxwagen, u->number / 4);
|
||||
}
|
||||
maxpferde = effskill(u, SK_RIDING) * u->number * 4 + u->number;
|
||||
|
||||
|
@ -843,7 +843,7 @@ bewegung_blockiert_von(unit * reisender, region * r)
|
|||
if (!contact && guard) {
|
||||
double prob = 0.3; /* 30% base chance */
|
||||
prob += 0.1 * (perception - eff_stealth(reisender, r));
|
||||
prob += 0.1 * min(guard->number, get_item(guard, I_AMULET_OF_TRUE_SEEING));
|
||||
prob += 0.1 * MIN(guard->number, get_item(guard, I_AMULET_OF_TRUE_SEEING));
|
||||
|
||||
if (chance(prob)) {
|
||||
return guard;
|
||||
|
@ -1836,7 +1836,7 @@ sail(unit * u, order * ord, boolean move_on_land, region_list **routep)
|
|||
const luxury_type * ltype = resource2luxury(itm->type->rtype);
|
||||
if (ltype!=NULL && itm->number>0) {
|
||||
int st = itm->number * effskill(hafenmeister, SK_TRADE) / 50;
|
||||
st = min(itm->number, st);
|
||||
st = MIN(itm->number, st);
|
||||
|
||||
if (st > 0) {
|
||||
i_change(&u2->items, itm->type, -st);
|
||||
|
|
|
@ -418,9 +418,9 @@ abkz(const char *s, char * buf, size_t buflen, size_t maxchars)
|
|||
}
|
||||
}
|
||||
|
||||
/* Buchstaben pro Teilkürzel = max(1,max/AnzWort) */
|
||||
/* Buchstaben pro Teilkürzel = MAX(1,max/AnzWort) */
|
||||
|
||||
bpt = max(1, maxchars / c);
|
||||
bpt = MAX(1, maxchars / c);
|
||||
|
||||
/* Einzelne Wörter anspringen und jeweils die ersten BpT kopieren */
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ get_pooled(const unit * u, const resource_type * rtype, unsigned int mode, int c
|
|||
if ((mode & GET_SLACK) && (mode & GET_RESERVE)) use = have;
|
||||
else {
|
||||
int reserve = get_reservation(u, rtype);
|
||||
int slack = max(0, have-reserve);
|
||||
int slack = MAX(0, have-reserve);
|
||||
if (mode & GET_RESERVE) use = have-slack;
|
||||
else if (mode & GET_SLACK) use = slack;
|
||||
}
|
||||
|
@ -216,17 +216,17 @@ use_pooled(unit * u, const resource_type * rtype, unsigned int mode, int count)
|
|||
}
|
||||
|
||||
if ((mode & GET_SLACK) && (mode & GET_RESERVE)) {
|
||||
n = min(use, have);
|
||||
n = MIN(use, have);
|
||||
} else {
|
||||
int reserve = get_reservation(u, rtype);
|
||||
int slack = max(0, have-reserve);
|
||||
int slack = MAX(0, have-reserve);
|
||||
if (mode & GET_RESERVE) {
|
||||
n = have-slack;
|
||||
n = min(use, n);
|
||||
n = MIN(use, n);
|
||||
change_reservation(u, rtype, -n);
|
||||
}
|
||||
else if (mode & GET_SLACK) {
|
||||
n = min(use, slack);
|
||||
n = MIN(use, slack);
|
||||
}
|
||||
}
|
||||
if (n>0) {
|
||||
|
|
|
@ -1202,7 +1202,7 @@ terraform_region(region * r, const terrain_type * terrain)
|
|||
if (!fval(r, RF_CHAOTIC)) {
|
||||
int peasants;
|
||||
peasants = (maxworkingpeasants(r) * (20+dice_rand("6d10")))/100;
|
||||
rsetpeasants(r, max(100, peasants));
|
||||
rsetpeasants(r, MAX(100, peasants));
|
||||
rsetmoney(r, rpeasants(r) * ((wage(r, NULL, NULL)+1) + rng_int() % 5));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ struct message;
|
|||
struct message_list;
|
||||
struct rawmaterial;
|
||||
struct donation;
|
||||
struct item;
|
||||
|
||||
typedef struct land_region {
|
||||
char *name;
|
||||
|
|
|
@ -203,8 +203,8 @@ update_nmrs(void)
|
|||
int nmr = turn-f->lastorders+1;
|
||||
if (nmr<0 || nmr>NMRTimeout()) {
|
||||
log_error(("faction %s has %d NMRS\n", factionid(f), nmr));
|
||||
nmr = max(0, nmr);
|
||||
nmr = min(nmr, NMRTimeout());
|
||||
nmr = MAX(0, nmr);
|
||||
nmr = MIN(nmr, NMRTimeout());
|
||||
}
|
||||
++nmrs[nmr];
|
||||
}
|
||||
|
@ -833,7 +833,7 @@ spskill(char * buffer, size_t size, const struct locale * lang, const struct uni
|
|||
oldeff = sv->old + get_modifier(u, sv->id, sv->old, u->region, false);
|
||||
}
|
||||
|
||||
oldeff = max(0, oldeff);
|
||||
oldeff = MAX(0, oldeff);
|
||||
diff = effsk - oldeff;
|
||||
|
||||
if (diff != 0) {
|
||||
|
|
|
@ -1303,7 +1303,7 @@ invisible(const unit *target, const unit * viewer)
|
|||
else {
|
||||
int hidden = get_item(target, I_RING_OF_INVISIBILITY) + 100 * get_item(target, I_SPHERE_OF_INVISIBILITY);
|
||||
if (hidden) {
|
||||
hidden = min(hidden, target->number);
|
||||
hidden = MIN(hidden, target->number);
|
||||
if (viewer) hidden -= get_item(viewer, I_AMULET_OF_TRUE_SEEING);
|
||||
}
|
||||
return hidden;
|
||||
|
|
|
@ -218,8 +218,8 @@ tagbegin(xml_stack *stack)
|
|||
monster * m = calloc(sizeof(monster), 1);
|
||||
m->race = rc_find(xml_value(tag, "race"));
|
||||
m->chance = xml_fvalue(tag, "chance");
|
||||
m->avgsize = max(1, xml_ivalue(tag, "size"));
|
||||
m->maxunits = min(1, xml_ivalue(tag, "maxunits"));
|
||||
m->avgsize = MAX(1, xml_ivalue(tag, "size"));
|
||||
m->maxunits = MIN(1, xml_ivalue(tag, "maxunits"));
|
||||
|
||||
if (m->race) {
|
||||
if (xml_bvalue(tag, "boss")) {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
/* util includes */
|
||||
#include <util/rng.h>
|
||||
|
||||
#define age_chance(a,b,p) (max(0,a-b)*p)
|
||||
#define age_chance(a,b,p) (MAX(0,a-b)*p)
|
||||
|
||||
#define DRAGONAGE 27
|
||||
#define WYRMAGE 68
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#define UNDEAD_BREAKUP 25 /* chance dafuer */
|
||||
#define UNDEAD_BREAKUP_FRACTION (25+rng_int()%70) /* anteil der weg geht */
|
||||
|
||||
#define age_chance(a,b,p) (max(0,a-b)*p)
|
||||
#define age_chance(a,b,p) (MAX(0,a-b)*p)
|
||||
|
||||
void
|
||||
age_undead(unit *u)
|
||||
|
@ -61,7 +61,7 @@ void
|
|||
age_skeleton(unit *u)
|
||||
{
|
||||
if (is_monsters(u->faction) && rng_int()%100 < age_chance(u->age, 27, 1)) {
|
||||
int n = max(1,u->number/2);
|
||||
int n = MAX(1,u->number/2);
|
||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||
u->race = new_race[RC_SKELETON_LORD];
|
||||
u->irace = new_race[RC_SKELETON_LORD];
|
||||
|
@ -74,7 +74,7 @@ void
|
|||
age_zombie(unit *u)
|
||||
{
|
||||
if (is_monsters(u->faction) && rng_int()%100 < age_chance(u->age, 27, 1)) {
|
||||
int n = max(1,u->number/2);
|
||||
int n = MAX(1,u->number/2);
|
||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||
u->race = new_race[RC_ZOMBIE_LORD];
|
||||
u->irace = new_race[RC_ZOMBIE_LORD];
|
||||
|
@ -87,7 +87,7 @@ void
|
|||
age_ghoul(unit *u)
|
||||
{
|
||||
if (is_monsters(u->faction) && rng_int()%100 < age_chance(u->age, 27, 1)) {
|
||||
int n = max(1,u->number/2);
|
||||
int n = MAX(1,u->number/2);
|
||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||
u->race = new_race[RC_GHOUL_LORD];
|
||||
u->irace = new_race[RC_GHOUL_LORD];
|
||||
|
|
|
@ -286,14 +286,14 @@ sp_combatrosthauch(fighter * fi, int level, double power, spell * sp)
|
|||
if (df->alive==0) continue;
|
||||
if (force<=0) break;
|
||||
|
||||
/* da n min(force, x), sollte force maximal auf 0 sinken */
|
||||
/* da n MIN(force, x), sollte force maximal auf 0 sinken */
|
||||
assert(force >= 0);
|
||||
|
||||
if (df->weapons) {
|
||||
int w;
|
||||
for (w=0;df->weapons[w].type!=NULL;++w) {
|
||||
weapon * wp = df->weapons;
|
||||
int n = min(force, wp->used);
|
||||
int n = MIN(force, wp->used);
|
||||
if (n) {
|
||||
requirement * mat = wp->type->itype->construction->materials;
|
||||
boolean iron = false;
|
||||
|
@ -841,7 +841,7 @@ sp_shadowknights(fighter * fi, int level, double power, spell * sp)
|
|||
region *r = b->region;
|
||||
unit *mage = fi->unit;
|
||||
attrib *a;
|
||||
int force = max(1, (int)get_force(power, 3));
|
||||
int force = MAX(1, (int)get_force(power, 3));
|
||||
message * msg;
|
||||
|
||||
unused(sp);
|
||||
|
@ -933,7 +933,7 @@ sp_chaosrow(fighter * fi, int level, double power, spell * sp)
|
|||
|
||||
if (df->alive==0) continue;
|
||||
if (power<=0.0) break;
|
||||
/* force sollte wegen des max(0,x) nicht unter 0 fallen können */
|
||||
/* force sollte wegen des MAX(0,x) nicht unter 0 fallen können */
|
||||
|
||||
if (is_magic_resistant(mage, df->unit, 0)) continue;
|
||||
|
||||
|
@ -967,7 +967,7 @@ sp_chaosrow(fighter * fi, int level, double power, spell * sp)
|
|||
}
|
||||
k+=df->alive;
|
||||
}
|
||||
power = max(0, power-n);
|
||||
power = MAX(0, power-n);
|
||||
}
|
||||
cv_kill(fgs);
|
||||
free(fgs);
|
||||
|
@ -1066,12 +1066,12 @@ sp_hero(fighter * fi, int level, double power, spell * sp)
|
|||
switch(sp->id) {
|
||||
case SPL_HERO:
|
||||
df_bonus = (int)(power/5);
|
||||
force = max(1, lovar(get_force(power, 4)));
|
||||
force = MAX(1, lovar(get_force(power, 4)));
|
||||
break;
|
||||
|
||||
default:
|
||||
df_bonus = 1;
|
||||
force = max(1, (int)power);
|
||||
force = MAX(1, (int)power);
|
||||
}
|
||||
|
||||
allies = count_allies(fi->side, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE);
|
||||
|
@ -1115,7 +1115,7 @@ sp_berserk(fighter * fi, int level, double power, spell * sp)
|
|||
switch(sp->id) {
|
||||
case SPL_BERSERK:
|
||||
case SPL_BLOODTHIRST:
|
||||
at_bonus = max(1,level/3);
|
||||
at_bonus = MAX(1,level/3);
|
||||
df_malus = 2;
|
||||
force = (int)get_force(power,2);
|
||||
break;
|
||||
|
@ -1165,7 +1165,7 @@ sp_frighten(fighter * fi, int level, double power, spell * sp)
|
|||
int targets = 0;
|
||||
message * m;
|
||||
|
||||
at_malus = max(1,level - 4);
|
||||
at_malus = MAX(1,level - 4);
|
||||
df_malus = 2;
|
||||
force = (int)get_force(power, 2);
|
||||
|
||||
|
@ -1427,7 +1427,7 @@ sp_fumbleshield(fighter * fi, int level, double power, spell * sp)
|
|||
case SPL_CERRDOR_FUMBLESHIELD:
|
||||
case SPL_TYBIED_FUMBLESHIELD:
|
||||
duration = 100;
|
||||
effect = max(1, 25-level);
|
||||
effect = MAX(1, 25-level);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1473,7 +1473,7 @@ sp_reanimate(fighter * fi, int level, double power, spell * sp)
|
|||
}
|
||||
|
||||
healable = count_healable(b, fi);
|
||||
healable = (int)min(k, healable);
|
||||
healable = (int)MIN(k, healable);
|
||||
while (healable--) {
|
||||
fighter * tf = select_corpse(b, fi);
|
||||
if (tf!=NULL && tf->side->casualties > 0
|
||||
|
@ -1521,7 +1521,7 @@ sp_keeploot(fighter * fi, int level, double power, spell * sp)
|
|||
message_all(b, m);
|
||||
msg_release(m);
|
||||
|
||||
b->keeploot = (int)max(25, b->keeploot + 5*power);
|
||||
b->keeploot = (int)MAX(25, b->keeploot + 5*power);
|
||||
|
||||
return level;
|
||||
}
|
||||
|
@ -1551,10 +1551,10 @@ heal_fighters(cvector *fgs, int * power, boolean heal_monsters)
|
|||
if (rest>n) ++wound;
|
||||
|
||||
if (wound > 0 && wound < hp) {
|
||||
int heal = min(healhp, wound);
|
||||
int heal = MIN(healhp, wound);
|
||||
assert(heal>=0);
|
||||
df->person[n].hp += heal;
|
||||
healhp = max(0, healhp - heal);
|
||||
healhp = MAX(0, healhp - heal);
|
||||
++healed;
|
||||
if (healhp<=0) break;
|
||||
}
|
||||
|
@ -1678,7 +1678,7 @@ sp_undeadhero(fighter * fi, int level, double power, spell * sp)
|
|||
cv_kill(fgs);
|
||||
free(fgs);
|
||||
|
||||
level = min(level, undead);
|
||||
level = MIN(level, undead);
|
||||
if (undead == 0) {
|
||||
msg = msg_message("summonundead_effect_0", "mage region", mage, mage->region);
|
||||
} else {
|
||||
|
|
|
@ -149,7 +149,7 @@ magicanalyse_region(region *r, unit *mage, double force)
|
|||
* mehr als 100% probability und damit immer ein Erfolg. */
|
||||
probability = curse_chance(c, force);
|
||||
mon = c->duration + (rng_int()%10) - 5;
|
||||
mon = max(1, mon);
|
||||
mon = MAX(1, mon);
|
||||
found = true;
|
||||
|
||||
if (chance(probability)) { /* Analyse geglückt */
|
||||
|
@ -190,7 +190,7 @@ magicanalyse_unit(unit *u, unit *mage, double force)
|
|||
* mehr als 100% probability und damit immer ein Erfolg. */
|
||||
probability = curse_chance(c, force);
|
||||
mon = c->duration + (rng_int()%10) - 5;
|
||||
mon = max(1,mon);
|
||||
mon = MAX(1,mon);
|
||||
|
||||
if (chance(probability)) { /* Analyse geglückt */
|
||||
if (c_flags(c) & CURSE_NOAGE) {
|
||||
|
@ -231,7 +231,7 @@ magicanalyse_building(building *b, unit *mage, double force)
|
|||
* mehr als 100% probability und damit immer ein Erfolg. */
|
||||
probability = curse_chance(c, force);
|
||||
mon = c->duration + (rng_int()%10) - 5;
|
||||
mon = max(1,mon);
|
||||
mon = MAX(1,mon);
|
||||
|
||||
if (chance(probability)) { /* Analyse geglückt */
|
||||
if (c_flags(c) & CURSE_NOAGE) {
|
||||
|
@ -272,7 +272,7 @@ magicanalyse_ship(ship *sh, unit *mage, double force)
|
|||
* mehr als 100% probability und damit immer ein Erfolg. */
|
||||
probability = curse_chance(c, force);
|
||||
mon = c->duration + (rng_int()%10) - 5;
|
||||
mon = max(1,mon);
|
||||
mon = MAX(1,mon);
|
||||
|
||||
if (chance(probability)) { /* Analyse geglückt */
|
||||
if (c_flags(c) & CURSE_NOAGE) {
|
||||
|
@ -701,7 +701,7 @@ sp_destroy_magic(castorder *co)
|
|||
mage, mage->region, co->order));
|
||||
}
|
||||
|
||||
return max(succ, 1);
|
||||
return MAX(succ, 1);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
@ -764,7 +764,7 @@ sp_transferaura(castorder *co)
|
|||
return 0;
|
||||
}
|
||||
|
||||
gain = min(aura, scm_src->spellpoints) / multi;
|
||||
gain = MIN(aura, scm_src->spellpoints) / multi;
|
||||
scm_src->spellpoints -= gain*multi;
|
||||
scm_dst->spellpoints += gain;
|
||||
|
||||
|
@ -902,7 +902,7 @@ sp_summonent(castorder *co)
|
|||
return 0;
|
||||
}
|
||||
|
||||
ents = (int)min(power*power, rtrees(r,2));
|
||||
ents = (int)MIN(power*power, rtrees(r,2));
|
||||
|
||||
u = create_unit(r, mage->faction, ents, new_race[RC_TREEMAN], 0, NULL, mage);
|
||||
|
||||
|
@ -1296,7 +1296,7 @@ sp_rosthauch(castorder *co)
|
|||
for (;iweapon!=NULL;iweapon=iweapon->next) {
|
||||
item ** ip = i_find(&u->items, iweapon->type);
|
||||
if (*ip) {
|
||||
int i = min((*ip)->number, force);
|
||||
int i = MIN((*ip)->number, force);
|
||||
if (iweapon->chance<1.0) {
|
||||
i = (int)(i*iweapon->chance);
|
||||
}
|
||||
|
@ -1332,7 +1332,7 @@ sp_rosthauch(castorder *co)
|
|||
* ungünstigsten Fall kann pro Stufe nur eine Waffe verzaubert werden,
|
||||
* darum wird hier nur für alle Fälle in denen noch weniger Waffen
|
||||
* betroffen wurden ein Kostennachlass gegeben */
|
||||
return min(success, cast_level);
|
||||
return MIN(success, cast_level);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1364,7 +1364,7 @@ sp_kaelteschutz(castorder *co)
|
|||
unit *mage = co->magician.u;
|
||||
int cast_level = co->level;
|
||||
double force = co->force;
|
||||
int duration = max(cast_level, (int)force) + 1;
|
||||
int duration = MAX(cast_level, (int)force) + 1;
|
||||
spellparameter *pa = co->par;
|
||||
variant effect;
|
||||
|
||||
|
@ -2091,8 +2091,8 @@ sp_drought(castorder *co)
|
|||
*/
|
||||
c = get_curse(r->attribs, ct_find("drought"));
|
||||
if (c) {
|
||||
c->vigour = max(c->vigour, power);
|
||||
c->duration = max(c->duration, (int)power);
|
||||
c->vigour = MAX(c->vigour, power);
|
||||
c->duration = MAX(c->duration, (int)power);
|
||||
} else {
|
||||
variant effect;
|
||||
/* Baeume und Pferde sterben */
|
||||
|
@ -2280,8 +2280,8 @@ sp_earthquake(castorder *co)
|
|||
if (burg->size != 0 && !is_cursed(burg->attribs, C_MAGICWALLS, 0)) {
|
||||
/* Magieresistenz */
|
||||
if (!target_resists_magic(mage, burg, TYP_BUILDING, 0)) {
|
||||
kaputt = min(10 * cast_level, burg->size / 4);
|
||||
kaputt = max(kaputt, 1);
|
||||
kaputt = MIN(10 * cast_level, burg->size / 4);
|
||||
kaputt = MAX(kaputt, 1);
|
||||
burg->size -= kaputt;
|
||||
if (burg->size == 0) {
|
||||
/* TODO: sollten die Insassen nicht Schaden nehmen? */
|
||||
|
@ -2448,7 +2448,7 @@ sp_forest_fire(castorder *co)
|
|||
* das Zaubern. Patzer werden warscheinlicher.
|
||||
* Jeder Zauber muss erst gegen den Wiederstand des Fluchs gezaubert
|
||||
* werden und schwächt dessen Antimagiewiederstand um 1.
|
||||
* Wirkt max(Stufe(Magier) - Stufe(Ziel), rand(3)) Wochen
|
||||
* Wirkt MAX(Stufe(Magier) - Stufe(Ziel), rand(3)) Wochen
|
||||
* Patzer:
|
||||
* Magier wird selbst betroffen
|
||||
*
|
||||
|
@ -2476,7 +2476,7 @@ sp_fumblecurse(castorder *co)
|
|||
|
||||
rx = rng_int()%3;
|
||||
sx = cast_level - effskill(target, SK_MAGIC);
|
||||
duration = max(sx, rx) + 1;
|
||||
duration = MAX(sx, rx) + 1;
|
||||
|
||||
effect.i = (int)(force/2);
|
||||
c = create_curse(mage, &target->attribs, ct_find("fumble"),
|
||||
|
@ -2815,7 +2815,7 @@ wall_move(const border * b, struct unit * u, struct region * from, struct region
|
|||
wall_data * fd = (wall_data*)b->data.v;
|
||||
if (!routing && fd->active) {
|
||||
int hp = dice(3, fd->force) * u->number;
|
||||
hp = min (u->hp, hp);
|
||||
hp = MIN(u->hp, hp);
|
||||
u->hp -= hp;
|
||||
if (u->hp) {
|
||||
ADDMSG(&u->faction->msgs, msg_message("firewall_damage",
|
||||
|
@ -2887,8 +2887,8 @@ sp_firewall(castorder *co)
|
|||
fd->countdown = cast_level+1;
|
||||
} else {
|
||||
fd = (wall_data*)b->data.v;
|
||||
fd->force = (int)max(fd->force, force/2+0.5);
|
||||
fd->countdown = max(fd->countdown, cast_level+1);
|
||||
fd->force = (int)MAX(fd->force, force/2+0.5);
|
||||
fd->countdown = MAX(fd->countdown, cast_level+1);
|
||||
}
|
||||
|
||||
/* melden, 1x pro Partei */
|
||||
|
@ -3113,7 +3113,7 @@ sp_unholypower(castorder *co)
|
|||
* Rüstung wirkt nicht
|
||||
* Patzer:
|
||||
* Magier gerät in den Staub und verliert zufällige Zahl von HP bis
|
||||
* auf max(hp,2)
|
||||
* auf MAX(hp,2)
|
||||
* Besonderheiten:
|
||||
* Nicht als curse implementiert, was schlecht ist - man kann dadurch
|
||||
* kein dispell machen. Wegen fix unter Zeitdruck erstmal nicht zu
|
||||
|
@ -3588,7 +3588,7 @@ sp_summonundead(castorder *co)
|
|||
return 0;
|
||||
}
|
||||
|
||||
undead = min(deathcount(r), 2 + lovar(force));
|
||||
undead = MIN(deathcount(r), 2 + lovar(force));
|
||||
|
||||
if (cast_level <= 8) {
|
||||
race = new_race[RC_SKELETON];
|
||||
|
@ -3633,7 +3633,7 @@ sp_auraleak(castorder *co)
|
|||
int cast_level = co->level;
|
||||
message * msg;
|
||||
|
||||
lost = min(0.95, cast_level * 0.05);
|
||||
lost = MIN(0.95, cast_level * 0.05);
|
||||
|
||||
for(u = r->units; u; u = u->next) {
|
||||
if (is_mage(u)) {
|
||||
|
@ -3993,8 +3993,8 @@ sp_raisepeasantmob(castorder *co)
|
|||
anteil.i = 6 + (rng_int()%4);
|
||||
|
||||
n = rpeasants(r) * anteil.i / 10;
|
||||
n = max(0, n);
|
||||
n = min(n, rpeasants(r));
|
||||
n = MAX(0, n);
|
||||
n = MIN(n, rpeasants(r));
|
||||
|
||||
if (n <= 0) {
|
||||
report_failure(mage, co->order);
|
||||
|
@ -4218,12 +4218,12 @@ sp_recruit(castorder *co)
|
|||
* Bauer, nur die Kosten steigen. */
|
||||
n = (int)((pow(force, 1.6) * 100)/f->race->recruitcost);
|
||||
if (f->race==new_race[RC_URUK]) {
|
||||
n = min(2*maxp, n);
|
||||
n = max(n, 1);
|
||||
n = MIN(2*maxp, n);
|
||||
n = MAX(n, 1);
|
||||
rsetpeasants(r, maxp - (n+1) / 2);
|
||||
} else {
|
||||
n = min(maxp, n);
|
||||
n = max(n, 1);
|
||||
n = MIN(maxp, n);
|
||||
n = MAX(n, 1);
|
||||
rsetpeasants(r, maxp - n);
|
||||
}
|
||||
|
||||
|
@ -4265,12 +4265,12 @@ sp_bigrecruit(castorder *co)
|
|||
|
||||
n = (int)force + lovar((force * force * 1000)/f->race->recruitcost);
|
||||
if (f->race==new_race[RC_URUK]) {
|
||||
n = min(2*maxp, n);
|
||||
n = max(n, 1);
|
||||
n = MIN(2*maxp, n);
|
||||
n = MAX(n, 1);
|
||||
rsetpeasants(r, maxp - (n+1) / 2);
|
||||
} else {
|
||||
n = min(maxp, n);
|
||||
n = max(n, 1);
|
||||
n = MIN(maxp, n);
|
||||
n = MAX(n, 1);
|
||||
rsetpeasants(r, maxp - n);
|
||||
}
|
||||
|
||||
|
@ -4351,7 +4351,7 @@ sp_pump(castorder *co)
|
|||
* Betört eine Einheit, so das sie ihm den größten Teil ihres Bargelds
|
||||
* und 50% ihres Besitzes schenkt. Sie behält jedoch immer soviel, wie
|
||||
* sie zum überleben braucht. Wirkt gegen Magieresistenz.
|
||||
* min(Stufe*1000$, u->money - maintenace)
|
||||
* MIN(Stufe*1000$, u->money - maintenace)
|
||||
* Von jedem Item wird 50% abgerundet ermittelt und übergeben. Dazu
|
||||
* kommt Itemzahl%2 mit 50% chance
|
||||
*
|
||||
|
@ -4387,15 +4387,15 @@ sp_seduce(castorder *co)
|
|||
item * itm = *itmp;
|
||||
int loot;
|
||||
if (itm->type==i_silver) {
|
||||
loot = min(cast_level * 1000, get_money(target) - (maintenance_cost(target)));
|
||||
loot = max(loot, 0);
|
||||
loot = MIN(cast_level * 1000, get_money(target) - (maintenance_cost(target)));
|
||||
loot = MAX(loot, 0);
|
||||
} else {
|
||||
loot = itm->number/2;
|
||||
if (itm->number % 2) {
|
||||
loot += rng_int() % 2;
|
||||
}
|
||||
if (loot > 0) {
|
||||
loot = (int)min(loot, force * 5);
|
||||
loot = (int)MIN(loot, force * 5);
|
||||
}
|
||||
}
|
||||
if (loot>0) {
|
||||
|
@ -4508,7 +4508,7 @@ sp_headache(castorder *co)
|
|||
}
|
||||
if (smax!=NULL) {
|
||||
/* wirkt auf maximal 10 Personen */
|
||||
int change = min(10, target->number) * (rng_int()%2+1) / target->number;
|
||||
int change = MIN(10, target->number) * (rng_int()%2+1) / target->number;
|
||||
reduce_skill(target, smax, change);
|
||||
}
|
||||
set_order(&target->thisorder, NULL);
|
||||
|
@ -4553,7 +4553,7 @@ sp_raisepeasants(castorder *co)
|
|||
ADDMSG(&mage->faction->msgs, msg_feedback(mage, co->order, "error_nopeasants", ""));
|
||||
return 0;
|
||||
}
|
||||
bauern = (int)min(rpeasants(r), power*250);
|
||||
bauern = (int)MIN(rpeasants(r), power*250);
|
||||
rsetpeasants(r, rpeasants(r) - bauern);
|
||||
|
||||
u2 = create_unit(r, mage->faction, bauern, new_race[RC_PEASANT], 0, LOC(mage->faction->locale, "furious_mob"), mage);
|
||||
|
@ -4720,7 +4720,7 @@ sp_puttorest(castorder *co)
|
|||
message * seen = msg_message("puttorest", "mage", mage);
|
||||
message * unseen = msg_message("puttorest", "mage", NULL);
|
||||
|
||||
laid_to_rest = max(laid_to_rest, dead);
|
||||
laid_to_rest = MAX(laid_to_rest, dead);
|
||||
|
||||
deathcounts(r, -laid_to_rest);
|
||||
|
||||
|
@ -4943,7 +4943,7 @@ sp_baddreams(castorder *co)
|
|||
|
||||
/* wirkt erst in der Folgerunde, soll mindestens eine Runde wirken,
|
||||
* also duration+2 */
|
||||
duration = (int)max(1, power/2); /* Stufe 1 macht sonst mist */
|
||||
duration = (int)MAX(1, power/2); /* Stufe 1 macht sonst mist */
|
||||
duration = 2 + rng_int()%duration;
|
||||
|
||||
/* Nichts machen als ein entsprechendes Attribut in die Region legen. */
|
||||
|
@ -4983,7 +4983,7 @@ sp_gooddreams(castorder *co)
|
|||
|
||||
/* wirkt erst in der Folgerunde, soll mindestens eine Runde wirken,
|
||||
* also duration+2 */
|
||||
duration = (int)max(1, power/2); /* Stufe 1 macht sonst mist */
|
||||
duration = (int)MAX(1, power/2); /* Stufe 1 macht sonst mist */
|
||||
duration = 2 + rng_int()%duration;
|
||||
effect.i = 1;
|
||||
c = create_curse(mage, &r->attribs, ct_find("gbdream"), power, duration, effect, 0);
|
||||
|
@ -5116,7 +5116,7 @@ sp_sweetdreams(castorder *co)
|
|||
cmistake(mage, co->order, 40, MSG_EVENT);
|
||||
continue;
|
||||
}
|
||||
men = min(opfer, u->number);
|
||||
men = MIN(opfer, u->number);
|
||||
opfer -= men;
|
||||
|
||||
/* Nichts machen als ein entsprechendes Attribut an die Einheit legen. */
|
||||
|
@ -5293,7 +5293,7 @@ sp_resist_magic_bonus(castorder *co)
|
|||
continue;
|
||||
*/
|
||||
|
||||
m = min(u->number,victims);
|
||||
m = MIN(u->number,victims);
|
||||
victims -= m;
|
||||
|
||||
resistbonus.i = 20;
|
||||
|
@ -5310,8 +5310,8 @@ sp_resist_magic_bonus(castorder *co)
|
|||
msg_release(msg);
|
||||
}
|
||||
|
||||
cast_level = min(cast_level, (int)(cast_level*(victims+4)/maxvictims));
|
||||
return max(cast_level, 1);
|
||||
cast_level = MIN(cast_level, (int)(cast_level*(victims+4)/maxvictims));
|
||||
return MAX(cast_level, 1);
|
||||
}
|
||||
|
||||
/** spell 'Astraler Weg'.
|
||||
|
@ -6094,7 +6094,7 @@ sp_permtransfer(castorder *co)
|
|||
return 0;
|
||||
}
|
||||
|
||||
aura = min(get_spellpoints(mage)-spellcost(mage, sp), aura);
|
||||
aura = MIN(get_spellpoints(mage)-spellcost(mage, sp), aura);
|
||||
|
||||
change_maxspellpoints(mage,-aura);
|
||||
change_spellpoints(mage,-aura);
|
||||
|
@ -6484,7 +6484,7 @@ sp_speed2(castorder *co)
|
|||
spellparameter *pa = co->par;
|
||||
|
||||
maxmen = 2 * cast_level * cast_level;
|
||||
dur = max(1, cast_level/2);
|
||||
dur = MAX(1, cast_level/2);
|
||||
|
||||
for (n = 0; n < pa->length; n++) {
|
||||
variant effect;
|
||||
|
@ -6498,7 +6498,7 @@ sp_speed2(castorder *co)
|
|||
|
||||
u = pa->param[n]->data.u;
|
||||
|
||||
men = min(maxmen,u->number);
|
||||
men = MIN(maxmen,u->number);
|
||||
effect.i = 2;
|
||||
create_curse(mage, &u->attribs, ct_find("speed"), force, dur, effect, men);
|
||||
maxmen -= men;
|
||||
|
@ -6508,7 +6508,7 @@ sp_speed2(castorder *co)
|
|||
ADDMSG(&mage->faction->msgs, msg_message("speed_time_effect", "unit region amount", mage, mage->region, used));
|
||||
/* Effektiv benötigten cast_level (mindestens 1) zurückgeben */
|
||||
used = (int)sqrt(used/2);
|
||||
return max(1, used);
|
||||
return MAX(1, used);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
@ -6592,7 +6592,7 @@ sp_q_antimagie(castorder *co)
|
|||
"destroy_magic_noeffect", "unit region command",
|
||||
mage, mage->region, co->order));
|
||||
}
|
||||
return max(succ, 1);
|
||||
return MAX(succ, 1);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
@ -6783,7 +6783,7 @@ sp_wdwpyramid(castorder *co)
|
|||
|
||||
ADDMSG(&mage->faction->msgs, msg_message("wdw_pyramidspell_notfound",
|
||||
"unit region command mindist maxdist", mage, r, co->order,
|
||||
max(1, minshowdist), maxshowdist));
|
||||
MAX(1, minshowdist), maxshowdist));
|
||||
}
|
||||
|
||||
return cast_level;
|
||||
|
|
|
@ -56,7 +56,7 @@ do_shock(unit *u, const char *reason)
|
|||
if (u->number > 0) {
|
||||
/* HP - Verlust */
|
||||
u->hp = (unit_max_hp(u) * u->number)/10;
|
||||
u->hp = max(1, u->hp);
|
||||
u->hp = MAX(1, u->hp);
|
||||
}
|
||||
|
||||
/* Aura - Verlust */
|
||||
|
|
15
src/config.h
15
src/config.h
|
@ -238,17 +238,18 @@ extern char * strdup(const char *s);
|
|||
/**** ****
|
||||
** min/max macros **
|
||||
**** ****/
|
||||
|
||||
#ifndef NOMINMAX
|
||||
#ifndef min
|
||||
# define min(a,b) ((a) < (b) ? (a) : (b))
|
||||
#ifndef MIN
|
||||
# define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
#endif
|
||||
#ifndef max
|
||||
# define max(a,b) ((a) > (b) ? (a) : (b))
|
||||
#ifndef MAX
|
||||
# define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined (ghs) || defined (__GNUC__) || defined (__hpux) || defined (__sgi) || defined (__DECCXX) || defined (__KCC) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544)
|
||||
|
||||
#if defined (__GNUC__)
|
||||
# define unused(a) /* unused: a */
|
||||
#elif defined (ghs) || || defined (__hpux) || defined (__sgi) || defined (__DECCXX) || defined (__KCC) || defined (__rational__) || defined (__USLC__) || defined (ACE_RM544)
|
||||
# define unused(a) do {/* null */} while (&a == 0)
|
||||
#else /* ghs || __GNUC__ || ..... */
|
||||
# define unused(a) (a)
|
||||
|
|
|
@ -90,14 +90,14 @@
|
|||
<xi:include href="eressea/temple.xml"/>
|
||||
<strings>
|
||||
<string name="mailto">
|
||||
<text locale="de">eressea-server@eressea.kn-bremen.de</text>
|
||||
<text locale="en">eressea-server@eressea.kn-bremen.de</text>
|
||||
<text locale="de">eressea-server@eressea.de</text>
|
||||
<text locale="en">eressea-server@eressea.de</text>
|
||||
</string>
|
||||
<string name="newbie_info_1">
|
||||
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
|
||||
ERESSEA BEFEHLE an eressea-server@eressea.kn-bremen.de zu senden.</text>
|
||||
<text locale="en">Remember to send your orders to
|
||||
eressea-server@eressea.kn-bremen.de with the subject ERESSEA ORDERS.</text>
|
||||
ERESSEA BEFEHLE an eressea-server@eressea.de zu senden.</text>
|
||||
<text locale="en">Remember to send your orders to
|
||||
eressea-server@eressea.de with the subject ERESSEA ORDERS.</text>
|
||||
</string>
|
||||
<string name="mailcmd">
|
||||
<text locale="de">ERESSEA BEFEHLE</text>
|
||||
|
|
|
@ -1,57 +1,52 @@
|
|||
Willkommen beim Eressea-Testspiel.
|
||||
|
||||
Vorweg: Dieses ist NICHT deine zukünftige Eressea-Partei. Es ist ein
|
||||
Vorweg: Dieses ist NICHT deine zukünftige Eressea-Partei. Es ist ein
|
||||
Tutorial. Um sicherzustellen, das neue Spieler in Eressea ein gewisses
|
||||
Grundverständnis der Anleitung mitbringen, und nicht nach wochenlanger
|
||||
Wartezeit über einen einfachen Fehler stolpern, schicken wir jeden neuen
|
||||
Grundverständnis der Anleitung mitbringen, und nicht nach wochenlanger
|
||||
Wartezeit über einen einfachen Fehler stolpern, schicken wir jeden neuen
|
||||
Spieler in eine Probepartie, die 5 Runden dauert. Du kannst also mit dieser
|
||||
Partei tun was Du möchtest, und etwas herumexperimentieren, ohne das das auf
|
||||
Deine spätere Partei Auswirkungen hat. Einzig, das Du die 5 Runden
|
||||
überlebst, verlangen wir von Dir.
|
||||
Partei tun was Du möchtest, und etwas herumexperimentieren, ohne das das auf
|
||||
Deine spätere Partei Auswirkungen hat. Einzig, das Du die 5 Runden
|
||||
überlebst, verlangen wir von Dir.
|
||||
|
||||
Folgende Unterschiede gibt es zwischen diesem Testspiel und dem richtigen
|
||||
Eressea:
|
||||
|
||||
* Email-Adresse für Züge
|
||||
Testspiel: tutorial@eressea.upb.de
|
||||
Eressea: eressea-server@eressea.upb.de
|
||||
* Email-Adresse für Züge
|
||||
Testspiel: tutorial@eressea.de
|
||||
Eressea: eressea-server@eressea.de
|
||||
|
||||
* Zugabgaberhytmus:
|
||||
Testspiel: 3x die Woche, Montag, Mittwoch und Samstag um 09:00 Uhr morgens
|
||||
Eressea: 1x die Woche, Sonntags um 9:00 Uhr
|
||||
|
||||
* Spieldauer:
|
||||
Testspiel: 5 Züge Minimum, Partei wird nach 10 Zügen gelöscht.
|
||||
Testspiel: 5 Züge Minimum, Partei wird nach 10 Zügen gelöscht.
|
||||
Eressea: unbegrenzt
|
||||
|
||||
|
||||
Ein paar Tipps für den Anfang:
|
||||
Ein paar Tipps für den Anfang:
|
||||
|
||||
Eressea ist ein komplexes Spiel mit einer Menge Regeln. Je besser Du sie
|
||||
verstehst, desto besser wirst Du das Spiel spielen können. Nimm Dir die
|
||||
Zeit, die Anleitung ausführlich zu lesen. Du findest sie unter
|
||||
http://eressea.upb.de/rules/. Wenn Du allgemeine Fragen hast, kannst Du auch
|
||||
auf unserem Forum vorbeischauen, das du unter http://eressea.upb.de/forum/
|
||||
findest.
|
||||
verstehst, desto besser wirst Du das Spiel spielen können. Nimm Dir die
|
||||
Zeit, die Anleitung ausführlich zu lesen. Du findest sie unter
|
||||
http://wiki.eressea.de/de/. Wenn Du allgemeine Fragen hast, kannst Du auch
|
||||
auf unserem Forum vorbeischauen, das du auf
|
||||
http://www.pbem-spiele.de/forum/viewforum.php?f=16 findest.
|
||||
|
||||
Eressea ist ein textuelles Spiel. Laß Dich nicht davon einschüchtern, das Du
|
||||
Befehle lernen mußt - so viele sind es nicht, und die meisten sind sehr
|
||||
Eressea ist ein textuelles Spiel. Laß Dich nicht davon einschüchtern, das Du
|
||||
Befehle lernen mußt - so viele sind es nicht, und die meisten sind sehr
|
||||
intuitiv. Vieles in Eressea passiert in deiner Phantasie, und das
|
||||
spannendste am Spiel sind die anderen Spieler und die Diplomatie mit ihnen.
|
||||
|
||||
Die beiden anderen Dateien in dieser Mail enthalten den Report in zwei
|
||||
verschiedenen Formaten. Die Datei mit der Endung .nr ist eine normale
|
||||
Textdatei, und sie enthält deinen ersten Report in menschenlesbarer Form. Du
|
||||
Textdatei, und sie enthält deinen ersten Report in menschenlesbarer Form. Du
|
||||
kannst sie mit jedem Texteditor (zum Beispiel Notepad) lesen. Die zweite
|
||||
Datei mit der Endung .cr enthält den Report in einer Form, die von
|
||||
Datei mit der Endung .cr enthält den Report in einer Form, die von
|
||||
Eressea-Software gelesen werden kann, wie zum Beispiel Magellan, das Du
|
||||
unter http://eressea.upb.de/magellan/ findest. Ob Du lieber mit der
|
||||
Textversion oder mit einem Programm spielst, ist Dir überlassen.
|
||||
unter http://magellan.log-out.net/ findest. Ob Du lieber mit der
|
||||
Textversion oder mit einem Programm spielst, ist Dir überlassen.
|
||||
|
||||
Solltest Du Fragen haben, die du mit der Anleitung nicht beantworten kannst,
|
||||
kannst du eine Mail an die Adresse eressea-help@eressea.kn-bremen.de
|
||||
schicken. Dort hilft man Dir gerne mit Fragen aller Art. Oder Du siehst Dir
|
||||
mal die Beispielzüge unter http://www.webfeed.de/eressea/ an.
|
||||
|
||||
Viel Spaß mit Eressea wünscht Dir auf jeden Fall
|
||||
Viel Spaß mit Eressea wünscht Dir auf jeden Fall
|
||||
das Eressea-Team.
|
||||
|
|
|
@ -10,8 +10,8 @@ game shortly.
|
|||
The tutorial differs from Eressea in a few very important points:
|
||||
|
||||
* Email-Address to send your turns to:
|
||||
Tutorial: tutorial@eressea.upb.de
|
||||
Eressea: eressea-server@eressea.upb.de
|
||||
Tutorial: tutorial@eressea.de
|
||||
Eressea: eressea-server@eressea.de
|
||||
|
||||
* Frequency:
|
||||
Tutorial: 3x per Week, Monday, Wednesday and Saturday before 9 am CET.
|
||||
|
@ -40,7 +40,7 @@ because the translation of the human-readable report is currently a work in
|
|||
progress. That's why we recommend using the file with the .cr extension
|
||||
instead. It is a format that is understood by most Eressea-tools, notably
|
||||
the very good Magellan client. It is available at
|
||||
http://eressea.upb.de/magellan/.
|
||||
http://magellan.log-out.net/.
|
||||
|
||||
If you have any questions that the documentation does not answer, you can
|
||||
send them to eressea-help@eressea.kn-bremen.de, and get an answer from a
|
||||
|
|
|
@ -13,7 +13,7 @@ loadscript("default.lua")
|
|||
|
||||
function change_locales()
|
||||
-- local localechange = { }
|
||||
local localechange = { en = { "won" } }
|
||||
local localechange = { de = { "bb" } }
|
||||
|
||||
for loc, flist in pairs(localechange) do
|
||||
for index, name in pairs(flist) do
|
||||
|
|
|
@ -96,8 +96,8 @@ convert_resources(void)
|
|||
rawmaterial * rmstone = rm_get(r, rm_stones.rtype);
|
||||
|
||||
int oldiron;
|
||||
int oldlaen = MAXLAENPERTURN * min(r->age, 100) / 2;
|
||||
int oldstone = terrain[rterrain(r)].quarries * max(0, r->age - INIT_STONE);
|
||||
int oldlaen = MAXLAENPERTURN * MIN(r->age, 100) / 2;
|
||||
int oldstone = terrain[rterrain(r)].quarries * MAX(0, r->age - INIT_STONE);
|
||||
int iron = a->data.sa[0];
|
||||
int laen = a->data.sa[1];
|
||||
int stone, level;
|
||||
|
@ -127,7 +127,7 @@ convert_resources(void)
|
|||
|
||||
/** IRON **/
|
||||
if (r_isglacier(r) || r->terrain==T_ICEBERG) {
|
||||
oldiron = GLIRONPERTURN * min(r->age, 100) / 2;
|
||||
oldiron = GLIRONPERTURN * MIN(r->age, 100) / 2;
|
||||
} else {
|
||||
oldiron = IRONPERTURN * r->age;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ convert_resources(void)
|
|||
}
|
||||
if (terrain[r->terrain].rawmaterials[i].type) {
|
||||
base = terrain[r->terrain].rawmaterials[i].base;
|
||||
iron = max(0, (int)(oldiron * ironmulti - iron ));
|
||||
iron = MAX(0, (int)(oldiron * ironmulti - iron ));
|
||||
level = 1;
|
||||
base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor));
|
||||
while (iron >= base) {
|
||||
|
@ -163,7 +163,7 @@ convert_resources(void)
|
|||
if (terrain[r->terrain].rawmaterials[i].type == &rm_laen) break;
|
||||
}
|
||||
if (terrain[r->terrain].rawmaterials[i].type) {
|
||||
laen = max(0, (int)(oldlaen * laenmulti - laen));
|
||||
laen = MAX(0, (int)(oldlaen * laenmulti - laen));
|
||||
level = 1;
|
||||
base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor));
|
||||
while (laen >= base) {
|
||||
|
|
Loading…
Reference in a new issue