forked from github/server
* Bugfix MACHE
This commit is contained in:
parent
a9c1340f1e
commit
c78c5efafb
|
@ -543,23 +543,21 @@ cr_output_unit(FILE * F, const region * r,
|
||||||
{
|
{
|
||||||
/* print faction information */
|
/* print faction information */
|
||||||
const faction * sf = visible_faction(f,u);
|
const faction * sf = visible_faction(f,u);
|
||||||
|
const attrib *atyp = a_find(u->faction->attribs, &at_raceprefix);
|
||||||
|
const attrib *a = a_find(u->attribs, &at_group);
|
||||||
|
if (a) {
|
||||||
|
const attrib *agrp = a_find(((const group*)a->data.v)->attribs, &at_raceprefix);
|
||||||
|
if (agrp) atyp = agrp;
|
||||||
|
}
|
||||||
if (u->faction == f || omniscient(f)) {
|
if (u->faction == f || omniscient(f)) {
|
||||||
const attrib *a_otherfaction = a_find(u->attribs, &at_otherfaction);
|
const attrib *a_otherfaction = a_find(u->attribs, &at_otherfaction);
|
||||||
/* my own faction, full info */
|
/* my own faction, full info */
|
||||||
const attrib * a = a_find(u->attribs, &at_group);
|
|
||||||
const attrib * ap = 0;
|
const attrib * ap = 0;
|
||||||
if (a) {
|
if (a) {
|
||||||
const group * g = (const group*)a->data.v;
|
const group * g = (const group*)a->data.v;
|
||||||
ap = a_find(g->attribs, &at_raceprefix);
|
ap = a_find(g->attribs, &at_raceprefix);
|
||||||
fprintf(F, "%d;gruppe\n", g->gid);
|
fprintf(F, "%d;gruppe\n", g->gid);
|
||||||
}
|
}
|
||||||
if (ap==NULL) {
|
|
||||||
ap = a_find(u->faction->attribs, &at_raceprefix);
|
|
||||||
}
|
|
||||||
if (ap) {
|
|
||||||
const char * name = (const char*)ap->data.v;
|
|
||||||
fprintf(F, "\"%s\";typprefix\n", add_translation(name, LOC(f->locale, name)));
|
|
||||||
}
|
|
||||||
fprintf(F, "%d;Partei\n", u->faction->no);
|
fprintf(F, "%d;Partei\n", u->faction->no);
|
||||||
if (sf!=u->faction) fprintf(F, "%d;Verkleidung\n", sf->no);
|
if (sf!=u->faction) fprintf(F, "%d;Verkleidung\n", sf->no);
|
||||||
if (fval(u, FL_PARTEITARNUNG))
|
if (fval(u, FL_PARTEITARNUNG))
|
||||||
|
@ -567,7 +565,6 @@ cr_output_unit(FILE * F, const region * r,
|
||||||
if (a_otherfaction)
|
if (a_otherfaction)
|
||||||
fprintf(F, "%d;Anderepartei\n", a_otherfaction->data.i);
|
fprintf(F, "%d;Anderepartei\n", a_otherfaction->data.i);
|
||||||
} else {
|
} else {
|
||||||
const attrib * a = a_find(u->attribs, &at_group);
|
|
||||||
if (fval(u, FL_PARTEITARNUNG)) {
|
if (fval(u, FL_PARTEITARNUNG)) {
|
||||||
/* faction info is hidden */
|
/* faction info is hidden */
|
||||||
fprintf(F, "%d;Parteitarnung\n", i2b(fval(u, FL_PARTEITARNUNG)));
|
fprintf(F, "%d;Parteitarnung\n", i2b(fval(u, FL_PARTEITARNUNG)));
|
||||||
|
@ -578,19 +575,13 @@ cr_output_unit(FILE * F, const region * r,
|
||||||
fprintf(F, "1;Verraeter\n");
|
fprintf(F, "1;Verraeter\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (a) {
|
|
||||||
const attrib *agrp = a_find(((const group*)a->data.v)->attribs, &at_raceprefix);
|
|
||||||
if (agrp==NULL) {
|
|
||||||
agrp = a_find(u->faction->attribs, &at_raceprefix);
|
|
||||||
}
|
}
|
||||||
if (agrp) {
|
if (atyp) {
|
||||||
const char * name = (const char*)agrp->data.v;
|
const char * name = (const char*)atyp->data.v;
|
||||||
fprintf(F, "\"%s\";typprefix\n", add_translation(name, LOC(f->locale, name)));
|
fprintf(F, "\"%s\";typprefix\n", add_translation(name, LOC(f->locale, name)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (u->faction != f && a_fshidden
|
||||||
}
|
|
||||||
if(u->faction != f && a_fshidden
|
|
||||||
&& a_fshidden->data.ca[0] == 1 && effskill(u, SK_STEALTH) >= 6) {
|
&& a_fshidden->data.ca[0] == 1 && effskill(u, SK_STEALTH) >= 6) {
|
||||||
fprintf(F, "-1;Anzahl\n");
|
fprintf(F, "-1;Anzahl\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1858,7 +1858,7 @@ create_item(unit * u, const item_type * itype, int want)
|
||||||
else {
|
else {
|
||||||
const potion_type * ptype = resource2potion(itype->rtype);
|
const potion_type * ptype = resource2potion(itype->rtype);
|
||||||
if (ptype!=NULL) create_potion(u, ptype, want);
|
if (ptype!=NULL) create_potion(u, ptype, want);
|
||||||
else if (itype->construction) manufacture(u, itype, want);
|
else if (itype->construction && itype->construction->materials) manufacture(u, itype, want);
|
||||||
else cmistake(u, findorder(u, u->thisorder), 125, MSG_PRODUCE);
|
else cmistake(u, findorder(u, u->thisorder), 125, MSG_PRODUCE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1474,7 +1474,11 @@ init_olditems(void)
|
||||||
if (itemdata[i].benutze_funktion) {
|
if (itemdata[i].benutze_funktion) {
|
||||||
itype->use = use_olditem;
|
itype->use = use_olditem;
|
||||||
}
|
}
|
||||||
|
if (con->materials) {
|
||||||
itype->construction = con;
|
itype->construction = con;
|
||||||
|
} else {
|
||||||
|
free(con);
|
||||||
|
}
|
||||||
olditemtype[i] = itype;
|
olditemtype[i] = itype;
|
||||||
oldresourcetype[item2res(i)] = rtype;
|
oldresourcetype[item2res(i)] = rtype;
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,129 +132,29 @@ verify_owners(boolean bOnce)
|
||||||
if (fun == 0) a_add(&global.attribs, make_key(atoi36(magic))); \
|
if (fun == 0) a_add(&global.attribs, make_key(atoi36(magic))); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
static void
|
int
|
||||||
fix_vertrautenmagie(void)
|
warn_items(void)
|
||||||
{
|
|
||||||
region *r;
|
|
||||||
for(r=regions; r; r=r->next) {
|
|
||||||
unit *u;
|
|
||||||
for(u=r->units;u;u=u->next) {
|
|
||||||
sc_mage *m = get_mage(u);
|
|
||||||
if (m != NULL) {
|
|
||||||
|
|
||||||
/* Vertraute und Monster haben alle Magiegebiet M_GRAU */
|
|
||||||
if (m->magietyp != M_GRAU) continue;
|
|
||||||
|
|
||||||
switch(u->race) {
|
|
||||||
case new_race[RC_PSEUDODRAGON]:
|
|
||||||
if(!getspell(u, SPL_FLEE)) addspell(u, SPL_FLEE);
|
|
||||||
if(!getspell(u, SPL_SLEEP)) addspell(u, SPL_SLEEP);
|
|
||||||
if(!getspell(u, SPL_FRIGHTEN)) addspell(u, SPL_FRIGHTEN);
|
|
||||||
break;
|
|
||||||
case new_race[RC_NYMPH]:
|
|
||||||
if(!getspell(u, SPL_SEDUCE)) addspell(u, SPL_SEDUCE);
|
|
||||||
if(!getspell(u, SPL_CALM_MONSTER)) addspell(u, SPL_CALM_MONSTER);
|
|
||||||
if(!getspell(u, SPL_SONG_OF_CONFUSION)) addspell(u, SPL_SONG_OF_CONFUSION);
|
|
||||||
if(!getspell(u, SPL_DENYATTACK)) addspell(u, SPL_DENYATTACK);
|
|
||||||
break;
|
|
||||||
case new_race[RC_UNICORN]:
|
|
||||||
if(!getspell(u, SPL_RESISTMAGICBONUS)) addspell(u, SPL_RESISTMAGICBONUS);
|
|
||||||
if(!getspell(u, SPL_SONG_OF_PEACE)) addspell(u, SPL_SONG_OF_PEACE);
|
|
||||||
if(!getspell(u, SPL_CALM_MONSTER)) addspell(u, SPL_CALM_MONSTER);
|
|
||||||
if(!getspell(u, SPL_HERO)) addspell(u, SPL_HERO);
|
|
||||||
if(!getspell(u, SPL_HEALINGSONG)) addspell(u, SPL_HEALINGSONG);
|
|
||||||
if(!getspell(u, SPL_DENYATTACK)) addspell(u, SPL_DENYATTACK);
|
|
||||||
break;
|
|
||||||
case new_race[RC_WRAITH]:
|
|
||||||
if(!getspell(u, SPL_STEALAURA)) addspell(u, SPL_STEALAURA);
|
|
||||||
if(!getspell(u, SPL_FRIGHTEN)) addspell(u, SPL_FRIGHTEN);
|
|
||||||
if(!getspell(u, SPL_SUMMONUNDEAD)) addspell(u, SPL_SUMMONUNDEAD);
|
|
||||||
break;
|
|
||||||
case new_race[RC_IMP]:
|
|
||||||
if(!getspell(u, SPL_STEALAURA)) addspell(u, SPL_STEALAURA);
|
|
||||||
break;
|
|
||||||
case new_race[RC_DREAMCAT]:
|
|
||||||
if(!getspell(u, SPL_ILL_SHAPESHIFT)) addspell(u, SPL_ILL_SHAPESHIFT);
|
|
||||||
if(!getspell(u, SPL_TRANSFERAURA_TRAUM)) addspell(u, SPL_TRANSFERAURA_TRAUM);
|
|
||||||
break;
|
|
||||||
case new_race[RC_FEY]:
|
|
||||||
if(!getspell(u, SPL_DENYATTACK)) addspell(u, SPL_DENYATTACK);
|
|
||||||
if(!getspell(u, SPL_CALM_MONSTER)) addspell(u, SPL_CALM_MONSTER);
|
|
||||||
if(!getspell(u, SPL_SEDUCE)) addspell(u, SPL_SEDUCE);
|
|
||||||
break;
|
|
||||||
/* kein break, ein Wyrm hat alle Drachensprüche */
|
|
||||||
case new_race[RC_WYRM]:
|
|
||||||
if(!getspell(u, SPL_WYRMODEM)) addspell(u, SPL_WYRMODEM);
|
|
||||||
case new_race[RC_DRAGON]:
|
|
||||||
if(!getspell(u, SPL_DRAGONODEM)) addspell(u, SPL_DRAGONODEM);
|
|
||||||
case new_race[RC_FIREDRAGON]:
|
|
||||||
case new_race[RC_SEASERPENT]:
|
|
||||||
if(!getspell(u, SPL_FIREDRAGONODEM)) addspell(u, SPL_FIREDRAGONODEM);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
|
||||||
addunitsilver(unit * u, int count, int mode)
|
|
||||||
{
|
|
||||||
if (mode)
|
|
||||||
change_money(u, count * u->number);
|
|
||||||
else
|
|
||||||
u->money = count * u->number;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addunititems(unit * u, int count, char item, int mode)
|
|
||||||
{
|
|
||||||
if (mode)
|
|
||||||
change_item(u, item, count * u->number);
|
|
||||||
else
|
|
||||||
set_item(u, item, count * u->number);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addfactionsilver(faction * f, int count, int mode)
|
|
||||||
{
|
{
|
||||||
|
boolean found = 0;
|
||||||
|
region * r;
|
||||||
|
for (r=regions;r;r=r->next) {
|
||||||
unit * u;
|
unit * u;
|
||||||
for (u=f->units;u;u=u->nextF) {
|
for (u=r->units;u;u=u->next) {
|
||||||
addunitsilver(u, count, mode);
|
item * itm;
|
||||||
|
for (itm=u->items;itm;itm=itm->next) {
|
||||||
|
if (itm->number>100000) {
|
||||||
|
found = 1;
|
||||||
|
log_error(("Einheit %s hat %u %s\n",
|
||||||
|
unitid(u), itm->number,
|
||||||
|
resourcename(itm->type->rtype, 0)));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addfactionitems(faction * f, int count, char item, int mode)
|
|
||||||
{
|
|
||||||
unit * u;
|
|
||||||
for (u=f->units;u;u=u->nextF) {
|
|
||||||
addunititems(u, count, item, mode);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
showallspells(void)
|
|
||||||
{
|
|
||||||
faction * f;
|
|
||||||
for (f=factions;f;f=f->next) {
|
|
||||||
if (f->no==MONSTER_FACTION) continue;
|
|
||||||
a_removeall(&f->attribs, &at_seenspell);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
add_magrathea(void)
|
|
||||||
{
|
|
||||||
unit * tans = ufindhash(atoi36("tans"));
|
|
||||||
if (tans) u_setfaction(tans, findfaction(999));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef XMAS1999
|
#ifdef XMAS1999
|
||||||
#include "race.h"
|
#include "race.h"
|
||||||
#include "movement.h"
|
#include "movement.h"
|
||||||
|
@ -2682,7 +2582,7 @@ warn_password(void)
|
||||||
ADDMSG(&f->msgs, msg_message("msg_errors", "string",
|
ADDMSG(&f->msgs, msg_message("msg_errors", "string",
|
||||||
"Dein Passwort enthält Zeichen, die bei der Nachsendung "
|
"Dein Passwort enthält Zeichen, die bei der Nachsendung "
|
||||||
"von Reports Probleme bereiten können. Bitte wähle ein neues "
|
"von Reports Probleme bereiten können. Bitte wähle ein neues "
|
||||||
"Passwort, bevorzugt nur aus Buchstaben un Zahlen bestehend."));
|
"Passwort, bevorzugt nur aus Buchstaben und Zahlen bestehend."));
|
||||||
}
|
}
|
||||||
f = f->next;
|
f = f->next;
|
||||||
}
|
}
|
||||||
|
@ -2750,6 +2650,7 @@ korrektur(void)
|
||||||
do_once("fquc", fix_questcoors());
|
do_once("fquc", fix_questcoors());
|
||||||
do_once("fsee", fix_seeds());
|
do_once("fsee", fix_seeds());
|
||||||
do_once("orc2", orc_conversion2());
|
do_once("orc2", orc_conversion2());
|
||||||
|
do_once("witm", warn_items());
|
||||||
warn_password();
|
warn_password();
|
||||||
|
|
||||||
/* seems something fishy is going on, do this just
|
/* seems something fishy is going on, do this just
|
||||||
|
|
Loading…
Reference in New Issue