* ZEIGE lokalisiert und im CR

* Ursprung für Astralebene wird initialisiert
* doppelte GM Attribute löschen
This commit is contained in:
Enno Rehling 2002-01-28 01:55:31 +00:00
parent 597f38d182
commit 3ab91b969d
7 changed files with 76 additions and 27 deletions

View File

@ -2093,8 +2093,7 @@ display_item(faction *f, unit *u, const item_type * itype)
} }
if (!fp) return false; if (!fp) return false;
sprintf(buf, "%s: ", LOC(f->locale, name)); buf[0]='\0';
while (fgets(t, NAMESIZE, fp) != NULL) { while (fgets(t, NAMESIZE, fp) != NULL) {
if (t[strlen(t) - 1] == '\n') { if (t[strlen(t) - 1] == '\n') {
t[strlen(t) - 1] = 0; t[strlen(t) - 1] = 0;
@ -2104,7 +2103,7 @@ display_item(faction *f, unit *u, const item_type * itype)
fclose(fp); fclose(fp);
name = buf; name = buf;
} }
addmessage(0, f, name, MSG_EVENT, ML_IMPORTANT); ADDMSG(&f->msgs, msg_message("displayitem", "item description", itype, name));
return true; return true;
} }

View File

@ -1200,7 +1200,7 @@ randomevents(void)
} }
for (r = regions; r; r = r->next) { for (r = regions; r; r = r->next) {
#ifdef RACE_ADJUSTMENTS == 0 #if (RACE_ADJUSTMENTS==0)
/* Elfen generieren Wald, Personen in Steinkreisen können Einhörner /* Elfen generieren Wald, Personen in Steinkreisen können Einhörner
* bekommen. */ * bekommen. */

View File

@ -250,7 +250,7 @@ init_oldweapons(void)
item_type * itype = olditemtype[weapontable[w].item]; item_type * itype = olditemtype[weapontable[w].item];
int minskill = 1, wflags = WTF_NONE; int minskill = 1, wflags = WTF_NONE;
weapon_mod * modifiers = NULL; weapon_mod * modifiers = NULL;
int (*attack)(const troop *, int * deaths) = NULL; int (*attack)(const troop *, int * deaths, int row) = NULL;
switch (w) { switch (w) {
case WP_RUNESWORD: case WP_RUNESWORD:

View File

@ -97,8 +97,8 @@ getplaneid(const region *r)
return 0; return 0;
} }
int static int
ursprung_x(const faction *f, const plane *pl) ursprung_x(const faction *f, const plane *pl, const region * rdefault)
{ {
ursprung *ur; ursprung *ur;
int id = 0; int id = 0;
@ -113,11 +113,13 @@ ursprung_x(const faction *f, const plane *pl)
if(ur->id == id) if(ur->id == id)
return ur->x; return ur->x;
} }
return 0; if (!rdefault) return 0;
set_ursprung((faction*)f, pl->id, rdefault->x - plane_center_x(pl), rdefault->y - plane_center_y(pl));
return rdefault->x - plane_center_x(pl);
} }
int static int
ursprung_y(const faction *f, const plane *pl) ursprung_y(const faction *f, const plane *pl, const region * rdefault)
{ {
ursprung *ur; ursprung *ur;
int id = 0; int id = 0;
@ -132,7 +134,9 @@ ursprung_y(const faction *f, const plane *pl)
if(ur->id == id) if(ur->id == id)
return ur->y; return ur->y;
} }
return 0; if (!rdefault) return 0;
set_ursprung((faction*)f, id, rdefault->x - plane_center_x(pl), rdefault->y - plane_center_y(pl));
return rdefault->y - plane_center_y(pl);
} }
int int
@ -159,7 +163,7 @@ region_x(const region *r, const faction *f)
plane *pl; plane *pl;
pl = getplane(r); pl = getplane(r);
return r->x - ursprung_x(f, pl) - plane_center_x(pl); return r->x - ursprung_x(f, pl, r) - plane_center_x(pl);
} }
int int
@ -168,7 +172,7 @@ region_y(const region *r, const faction *f)
plane *pl; plane *pl;
pl = getplane(r); pl = getplane(r);
return r->y - ursprung_y(f, pl) - plane_center_y(pl); return r->y - plane_center_y(pl) - ursprung_y(f, pl, r);
} }
void void
@ -220,9 +224,9 @@ rel_to_abs(const struct plane *pl, const struct faction * f, int rel, unsigned c
assert(index == 0 || index == 1); assert(index == 0 || index == 1);
if(index == 0) if(index == 0)
return (rel + ursprung_x(f,pl) + plane_center_x(pl)); return (rel + ursprung_x(f, pl, NULL) + plane_center_x(pl));
return (rel + ursprung_y(f,pl) + plane_center_y(pl)); return (rel + ursprung_y(f, pl, NULL) + plane_center_y(pl));
} }

View File

@ -58,8 +58,6 @@ int region_x(const struct region *r, const struct faction *f);
int region_y(const struct region *r, const struct faction *f); int region_y(const struct region *r, const struct faction *f);
int plane_center_x(const struct plane *pl); int plane_center_x(const struct plane *pl);
int plane_center_y(const struct plane *pl); int plane_center_y(const struct plane *pl);
int ursprung_x(const struct faction *f, const plane *pl);
int ursprung_y(const struct faction *f, const plane *pl);
void set_ursprung(struct faction *f, int id, int x, int y); void set_ursprung(struct faction *f, int id, int x, int y);
plane * create_new_plane(int id, const char *name, int minx, int maxx, int miny, int maxy, int flags); plane * create_new_plane(int id, const char *name, int minx, int maxx, int miny, int maxy, int flags);
plane * getplanebyname(const char *); plane * getplanebyname(const char *);

View File

@ -1388,15 +1388,13 @@ update_gms(void)
for (f=factions;f;f=f->next) { for (f=factions;f;f=f->next) {
attrib * permissions = a_find(f->attribs, &at_permissions); attrib * permissions = a_find(f->attribs, &at_permissions);
if (permissions) { if (permissions) {
const char * keys[] = { "gmgate", "gmmsgr", "gmmsgu", NULL };
int k;
item_t i; item_t i;
if (!find_key((attrib*)permissions->data.v, atoi36("gmgate"))) { for (k=0;keys[k];++k) {
a_add((attrib**)&permissions->data.v, make_key(atoi36("gmgate"))); if (!find_key((attrib*)permissions->data.v, atoi36(keys[k]))) {
a_add((attrib**)&permissions->data.v, make_key(atoi36(keys[k])));
} }
if (!find_key((attrib*)permissions->data.v, atoi36("gmmsgr"))) {
a_add((attrib**)&permissions->data.v, make_key(atoi36("gmmsgr")));
}
if (!find_key((attrib*)permissions->data.v, atoi36("gmmsgu"))) {
a_add((attrib**)&permissions->data.v, make_key(atoi36("gmmsgu")));
} }
for (i=I_GREATSWORD;i!=I_KEKS;++i) { for (i=I_GREATSWORD;i!=I_KEKS;++i) {
attrib * a = a_find(permissions, &at_gmcreate); attrib * a = a_find(permissions, &at_gmcreate);
@ -1407,6 +1405,44 @@ update_gms(void)
} }
} }
static int
fix_gms(void)
{
faction * f;
for (f=factions;f;f=f->next) {
attrib * permissions = a_find(f->attribs, &at_permissions);
if (permissions) {
const char * keys[] = { "gmgate", "gmmsgr", "gmmsgr", "gmmsgu", NULL };
int k;
item_t i;
for (k=0;keys[k];++k) {
attrib * a = find_key((attrib*)permissions->data.v, atoi36("gmgate"));
if (a) {
attrib ** ap = &a->nexttype;
while (*ap) {
attrib * an = *ap;
if (a->data.i==an->data.i) a_remove(ap, an);
else ap = &an->next;
}
}
}
for (i=I_GREATSWORD;i!=I_KEKS;++i) {
attrib * a = a_find(permissions, &at_gmcreate);
while (a && a->data.v!=(void*)olditemtype[i]) a=a->nexttype;
if (a) {
attrib ** ap = &a->nexttype;
while (*ap) {
attrib * an = *ap;
if (a->data.v==an->data.v) a_remove(ap, an);
else ap = &an->next;
}
}
}
}
}
return 0;
}
#if 1 #if 1
static int static int
fix_demand(void) fix_demand(void)
@ -2779,11 +2815,13 @@ heal_all(void)
return 0; return 0;
} }
static void static int
fix_astralplane(void) fix_astralplane(void)
{ {
plane * astralplane = getplanebyname("Astralraum"); plane * astralplane = getplanebyname("Astralraum");
freset(astralplane, PFL_NOCOORDS); freset(astralplane, PFL_NOCOORDS);
set_ursprung(findfaction(MONSTER_FACTION), astralplane->id, 0, 0);
return 0;
} }
void void
@ -2828,6 +2866,7 @@ korrektur(void)
do_once("grat", fix_ratfamiliar()); do_once("grat", fix_ratfamiliar());
do_once("fdmd", fix_demand()); do_once("fdmd", fix_demand());
do_once("fgms", fix_gms());
#if NEW_RESOURCEGROWTH #if NEW_RESOURCEGROWTH
do_once("rndr", randomized_resources()); do_once("rndr", randomized_resources());
#endif #endif

View File

@ -3,7 +3,7 @@
<type> <type>
<arg name="turns" type="int"></arg> <arg name="turns" type="int"></arg>
</type> </type>
<text locae="de">"Deine Partei ist noch $int($turns) Wochen immun gegen Angriffe."</text> <text locale="de">"Deine Partei ist noch $int($turns) Wochen immun gegen Angriffe."</text>
</message> </message>
<message name="giverestriction" section="errors"> <message name="giverestriction" section="errors">
@ -7282,4 +7282,13 @@
<text locale="en">"Life itself touches the world and all beings are healed."</text> <text locale="en">"Life itself touches the world and all beings are healed."</text>
</message> </message>
<message name="showitem" section="events">
<type>
<arg name="item" type="item"></arg>
<arg name="description" type="string"></arg>
</type>
<text locale="de">"$resource($item,1): $description"</text>
<text locale="en">"$resource($item,1): $description"</text>
</message>
</messages> </messages>