forked from github/server
Einheit verhungert und Gegenstände gehen verloren Aauflösen von Einheiten vereinheitlicht, und einige alte #defines mitsamt Code entfernt.
This commit is contained in:
parent
c1b275dad9
commit
8276a63c1e
|
@ -896,7 +896,6 @@ demographics(void)
|
|||
|
||||
if (rterrain(r) != T_OCEAN) {
|
||||
/* die Nachfrage nach Produkten steigt. */
|
||||
#ifdef NEW_ITEMS
|
||||
struct demand * dmd;
|
||||
if (r->land) for (dmd=r->land->demands;dmd;dmd=dmd->next) {
|
||||
if (dmd->value>0 && dmd->value < MAXDEMAND) {
|
||||
|
@ -905,24 +904,6 @@ demographics(void)
|
|||
if (rand() % 100 < rise) dmd->value++;
|
||||
}
|
||||
}
|
||||
#else
|
||||
item_t n;
|
||||
for (n = 0; n != MAXLUXURIES; n++) {
|
||||
int d = rdemand(r, n);
|
||||
if (d > 0 && d < MAXDEMAND) {
|
||||
if (buildingtype_exists(r, &bt_harbour)) {
|
||||
if (rand() % 100 < DMRISEHAFEN) {
|
||||
d++;
|
||||
}
|
||||
} else {
|
||||
if (rand() % 100 < DMRISE) {
|
||||
d++;
|
||||
}
|
||||
}
|
||||
}
|
||||
rsetdemand(r, n, (char)d);
|
||||
}
|
||||
#endif
|
||||
/* Seuchen erst nachdem die Bauern sich vermehrt haben
|
||||
* und gewandert sind */
|
||||
|
||||
|
@ -2737,7 +2718,6 @@ instant_orders(void)
|
|||
|
||||
for (f = factions; f; f = f->next) {
|
||||
attrib *a;
|
||||
#ifdef NEW_ITEMS
|
||||
a = a_find(f->attribs, &at_showitem);
|
||||
while(a!=NULL) {
|
||||
const item_type * itype = (const item_type *)a->data.v;
|
||||
|
@ -2750,13 +2730,6 @@ instant_orders(void)
|
|||
a = n;
|
||||
} else a = a->nexttype;
|
||||
}
|
||||
#else
|
||||
a = a_find(f->attribs, &at_show_item_description);
|
||||
while (a!=NULL) {
|
||||
display_item(f, NULL, (item_t)(a->data.i));
|
||||
a_remove(&f->attribs, a);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
parse(K_GROUP, group_cmd, false);
|
||||
|
|
|
@ -1178,11 +1178,7 @@ describe(FILE * F, const region * r, int partial, faction * f)
|
|||
|
||||
if (rhorses(r)) {
|
||||
bufp += sprintf(bufp, ", %d ", rhorses(r));
|
||||
#ifdef NEW_ITEMS
|
||||
bufp += strxcpy(bufp, LOC(f->locale, resourcename(oldresourcetype[R_HORSE], (rhorses(r)>1)?GR_PLURAL:0)));
|
||||
#else
|
||||
bufp += strxcpy(bufp, itemdata[I_HORSE].name[rhorses(r) > 1]);
|
||||
#endif
|
||||
}
|
||||
strcpy(bufp++, ".");
|
||||
|
||||
|
@ -1916,9 +1912,6 @@ static int
|
|||
report(FILE *F, faction * f, struct seen_region ** seen, const faction_list * addresses,
|
||||
const char * pzTime)
|
||||
{
|
||||
#ifndef NEW_ITEMS
|
||||
potion_t potion;
|
||||
#endif
|
||||
int flag = 0;
|
||||
char ch;
|
||||
int dh;
|
||||
|
|
|
@ -205,10 +205,6 @@ extern void read_laen(struct region * r, int laen);
|
|||
|
||||
#define MAXPEASANTS_PER_AREA 10
|
||||
|
||||
#if !defined(NEW_ITEMS)
|
||||
# define NEW_ITEMS
|
||||
#endif
|
||||
|
||||
/* So lange kann die Partei nicht angegriffen werden */
|
||||
#undef STUDY_IF_NOT_WORKING
|
||||
|
||||
|
|
|
@ -191,66 +191,7 @@ destroyfaction(faction * f)
|
|||
|
||||
for (u=f->units;u;u=u->nextF) {
|
||||
region * r = u->region;
|
||||
unit * au;
|
||||
int number = 0;
|
||||
struct friend {
|
||||
struct friend * next;
|
||||
int number;
|
||||
faction * faction;
|
||||
unit * unit;
|
||||
} * friends = NULL;
|
||||
for (au=r->units;au;au=au->next) if (au->faction!=f) {
|
||||
if (alliedunit(u, au->faction, HELP_ALL)) {
|
||||
struct friend * nf, ** fr = &friends;
|
||||
|
||||
while (*fr && (*fr)->faction->no<au->faction->no) fr = &(*fr)->next;
|
||||
nf = *fr;
|
||||
if (nf==NULL || nf->faction!=au->faction) {
|
||||
nf = calloc(sizeof(struct friend), 1);
|
||||
nf->next = *fr;
|
||||
nf->faction = au->faction;
|
||||
nf->unit = au;
|
||||
*fr = nf;
|
||||
}
|
||||
nf->number += au->number;
|
||||
number += au->number;
|
||||
}
|
||||
}
|
||||
if (friends && number) {
|
||||
struct friend * nf = friends;
|
||||
while (nf) {
|
||||
unit * u2 = nf->unit;
|
||||
#ifdef NEW_ITEMS
|
||||
item * itm = u->items;
|
||||
while(itm){
|
||||
const item_type * itype = itm->type;
|
||||
item * itn = itm->next;
|
||||
int n = itm->number;
|
||||
n = n * nf->number / number;
|
||||
if (n>0) {
|
||||
i_change(&u->items, itype, -n);
|
||||
i_change(&u2->items, itype, n);
|
||||
}
|
||||
itm = itn;
|
||||
}
|
||||
#else
|
||||
resource_t res;
|
||||
for (res = 0; res <= R_SILVER; ++res) {
|
||||
int n = get_resource(u, res);
|
||||
if (n<=0) continue;
|
||||
n = n * nf->number / number;
|
||||
if (n<=0) continue;
|
||||
change_resource(u, res, -n);
|
||||
change_resource(u2, res, n);
|
||||
}
|
||||
#endif
|
||||
number -= nf->number;
|
||||
nf = nf->next;
|
||||
free(friends);
|
||||
friends = nf;
|
||||
}
|
||||
friends = NULL;
|
||||
}
|
||||
distribute_items(u);
|
||||
if (rterrain(r) != T_OCEAN && !!playerrace(u->race)) {
|
||||
const race * rc = u->race;
|
||||
int p = rpeasants(u->region);
|
||||
|
|
|
@ -114,8 +114,69 @@ dfindhash(int no)
|
|||
|
||||
unit * udestroy = NULL;
|
||||
|
||||
#undef DESTROY
|
||||
/* Einheiten werden nicht wirklich zerstört. */
|
||||
/** distributes a unit's posessions to friendly units
|
||||
* this happens when units die and no own units are in the region
|
||||
*/
|
||||
void
|
||||
distribute_items(unit * u)
|
||||
{
|
||||
faction * f = u->faction;
|
||||
region * r = u->region;
|
||||
unit * au;
|
||||
int number = 0;
|
||||
struct friend {
|
||||
struct friend * next;
|
||||
int number;
|
||||
faction * faction;
|
||||
unit * unit;
|
||||
} * friends = NULL;
|
||||
|
||||
if (u->items==NULL) return;
|
||||
|
||||
for (au=r->units;au;au=au->next) if (au->faction!=f) {
|
||||
if (alliedunit(u, au->faction, HELP_ALL)) {
|
||||
struct friend * nf, ** fr = &friends;
|
||||
|
||||
while (*fr && (*fr)->faction->no<au->faction->no) fr = &(*fr)->next;
|
||||
nf = *fr;
|
||||
if (nf==NULL || nf->faction!=au->faction) {
|
||||
nf = malloc(sizeof(struct friend));
|
||||
nf->next = *fr;
|
||||
nf->faction = au->faction;
|
||||
nf->unit = au;
|
||||
nf->number = 0;
|
||||
*fr = nf;
|
||||
}
|
||||
nf->number += au->number;
|
||||
number += au->number;
|
||||
}
|
||||
}
|
||||
|
||||
if (friends && number) {
|
||||
struct friend * nf = friends;
|
||||
while (nf) {
|
||||
unit * u2 = nf->unit;
|
||||
item * itm = u->items;
|
||||
while (itm!=NULL) {
|
||||
const item_type * itype = itm->type;
|
||||
item * itn = itm->next;
|
||||
int n = itm->number;
|
||||
n = n * nf->number / number;
|
||||
if (n>0) {
|
||||
i_change(&u->items, itype, -n);
|
||||
i_change(&u2->items, itype, n);
|
||||
}
|
||||
itm = itn;
|
||||
}
|
||||
number -= nf->number;
|
||||
nf = nf->next;
|
||||
free(friends);
|
||||
friends = nf;
|
||||
}
|
||||
friends = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
destroy_unit(unit * u)
|
||||
{
|
||||
|
@ -156,6 +217,7 @@ destroy_unit(unit * u)
|
|||
}
|
||||
if (*p_item == item) p_item=&item->next;
|
||||
}
|
||||
if (u->items) distribute_items(u);
|
||||
}
|
||||
|
||||
/* Wir machen das erst nach dem Löschen der Items. Der Klon darf keine
|
||||
|
|
|
@ -186,10 +186,9 @@ extern int eff_skill_study(const struct unit * u, skill_t sk, const struct regio
|
|||
|
||||
extern int get_modifier(const struct unit * u, skill_t sk, int lvl, const struct region * r, boolean noitem);
|
||||
|
||||
#undef DESTROY
|
||||
|
||||
/* Einheiten werden nicht wirklich zerstört. */
|
||||
extern void destroy_unit(struct unit * u);
|
||||
extern void distribute_items(struct unit * u);
|
||||
|
||||
/* see resolve.h */
|
||||
extern void * resolve_unit(variant data);
|
||||
|
|
|
@ -139,9 +139,9 @@ enter_arena(unit * u, const item_type * itype, int amount, order * ord)
|
|||
if (get_level(u, sk)>1 && enter_fail(u)) return -1;
|
||||
}
|
||||
for (u2=r->units;u2;u2=u2->next) if (u2->faction==u->faction) break;
|
||||
#ifdef NEW_ITEMS
|
||||
assert(!"not implemented");
|
||||
#else
|
||||
|
||||
assert(!"not implemented");
|
||||
/*
|
||||
for (res=0;res!=MAXRESOURCES;++res) if (res!=R_SILVER && res!=R_ARENA_GATE && (is_item(res) || is_herb(res) || is_potion(res))) {
|
||||
int x = get_resource(u, res);
|
||||
if (x) {
|
||||
|
@ -152,7 +152,7 @@ enter_arena(unit * u, const item_type * itype, int amount, order * ord)
|
|||
else if (enter_fail(u)) return -1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
if (get_money(u) > fee) {
|
||||
if (u2) change_money(u2, get_money(u) - fee);
|
||||
else if (enter_fail(u)) return -1;
|
||||
|
|
|
@ -1236,7 +1236,7 @@ shift(void)
|
|||
t_queue_len--;
|
||||
return r;
|
||||
}
|
||||
#ifdef NEW_ITEMS
|
||||
|
||||
static const luxury_type * tradegood = NULL;
|
||||
|
||||
void
|
||||
|
@ -1260,22 +1260,6 @@ settg(region *r)
|
|||
}
|
||||
}
|
||||
|
||||
#else
|
||||
int tradegood;
|
||||
|
||||
void
|
||||
settg(region *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i=0; i <= MAXLUXURIES; i++) {
|
||||
rsetdemand(r, i, 1+rand()%5);
|
||||
}
|
||||
rsetdemand(r, tradegood, 0);
|
||||
if(rand()%100 < 20) tradegood = rand()%7;
|
||||
}
|
||||
#endif
|
||||
|
||||
boolean
|
||||
Create_Island(region *r, int * n, terrain_t t, int x, int y) {
|
||||
if (!r) return false;
|
||||
|
@ -1303,11 +1287,7 @@ create_island(region *r, int n, terrain_t t)
|
|||
for(r2=regions; r2; r2=r2->next) {
|
||||
r2->msgs = (void *)0;
|
||||
}
|
||||
#ifdef NEW_ITEMS
|
||||
tradegood = NULL;
|
||||
#else
|
||||
tradegood = rand()%7;
|
||||
#endif
|
||||
terraform(r,t);
|
||||
if(r->land) settg(r);
|
||||
r->msgs = (void *)(rand()%6);
|
||||
|
|
|
@ -179,7 +179,6 @@ input_string(const char * text, char * result, size_t len) {
|
|||
return res;
|
||||
}
|
||||
|
||||
#ifdef NEW_ITEMS
|
||||
static boolean i_modif = false;
|
||||
|
||||
static void
|
||||
|
@ -200,7 +199,6 @@ chg_item(selection * s, void * data) {
|
|||
s->str = strdup(buf);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
boolean
|
||||
modify_items(unit * u)
|
||||
|
@ -456,9 +454,7 @@ modify_unit(region * r, unit * modunit)
|
|||
int q, a, x, y, zt, zg;
|
||||
char modif = 0;
|
||||
int at;
|
||||
#ifdef NEW_ITEMS
|
||||
const item * itm;
|
||||
#endif
|
||||
|
||||
wclear(mywin);
|
||||
sprintf(buf, "< Einheit modifizieren: %s,%s >",
|
||||
|
|
|
@ -1608,7 +1608,7 @@
|
|||
<text locale="en">damage</text>
|
||||
</string>
|
||||
<string name="nr_youaredead">
|
||||
<text locale="en">Your faction has been eliminated. We hope you had a good time anyways, and encourage you to sign up you for another game.</text>
|
||||
<text locale="en">Your faction has been eliminated. We hope that you had a good time, and if you liked the game, you should sign up and play again.</text>
|
||||
</string>
|
||||
<!-- TODO: calendar ist noch komplexer -->
|
||||
<string name="nr_skills">
|
||||
|
|
Loading…
Reference in New Issue