persistente befehle nur noch mit @

This commit is contained in:
Enno Rehling 2002-05-02 21:19:45 +00:00
parent 2171245196
commit 03a967c2c4
2 changed files with 61 additions and 26 deletions

View File

@ -610,12 +610,8 @@ is_persistent(const char *s, const struct locale *lang)
if(*s == '@') return true; if(*s == '@') return true;
#endif /* Nur kurze Befehle! */ #endif /* Nur kurze Befehle! */
switch(igetkeyword(s, lang)) { switch(igetkeyword(s, lang)) {
case K_BUY:
case K_SELL:
case K_CAST:
case K_KOMMENTAR: case K_KOMMENTAR:
case K_LIEFERE: case K_LIEFERE:
case K_RESERVE:
return true; return true;
break; break;
} }
@ -657,11 +653,11 @@ read_items(FILE *F, item **ilist)
} }
#if RESOURCE_CONVERSION #if RESOURCE_CONVERSION
struct attrib_type at_resources = { struct attrib_type at_resources = {
"resources", NULL, NULL, NULL, NULL, NULL, ATF_UNIQUE "resources", NULL, NULL, NULL, NULL, NULL, ATF_UNIQUE
}; };
void void
read_iron(struct region * r, int iron) read_iron(struct region * r, int iron)
{ {
attrib * a = a_find(r->attribs, &at_resources); attrib * a = a_find(r->attribs, &at_resources);
@ -673,7 +669,7 @@ read_iron(struct region * r, int iron)
a->data.sa[0] = (short)iron; a->data.sa[0] = (short)iron;
} }
void void
read_laen(struct region * r, int laen) read_laen(struct region * r, int laen)
{ {
attrib * a = a_find(r->attribs, &at_resources); attrib * a = a_find(r->attribs, &at_resources);
@ -1385,7 +1381,7 @@ curse_read(attrib * a, FILE * f) {
if (global.data_version >= CURSETYPE_VERSION) { if (global.data_version >= CURSETYPE_VERSION) {
char cursename[64]; char cursename[64];
fscanf(f, "%d %s %d %d %d %d %d ", &c->no, cursename, &c->flag, fscanf(f, "%d %s %d %d %d %d %d ", &c->no, cursename, &c->flag,
&c->duration, &c->vigour, &mageid, &c->effect); &c->duration, &c->vigour, &mageid, &c->effect);
ct = ct_find(cursename); ct = ct_find(cursename);
} else { } else {
@ -1858,7 +1854,7 @@ readregion(FILE * F, int x, int y)
i = ri(F); rsethorses(r, i); i = ri(F); rsethorses(r, i);
#if NEW_RESOURCEGROWTH #if NEW_RESOURCEGROWTH
if (global.data_version < NEWRESOURCE_VERSION) { if (global.data_version < NEWRESOURCE_VERSION) {
i = ri(F); i = ri(F);
#if RESOURCE_CONVERSION #if RESOURCE_CONVERSION
if (i!=0) read_iron(r, i); if (i!=0) read_iron(r, i);
#endif #endif
@ -2098,7 +2094,7 @@ readfaction(FILE * F)
f->age = ri(F); f->age = ri(F);
/* /*
if (sqlstream && f->age==0) { if (sqlstream && f->age==0) {
fprintf(sqlstream, fprintf(sqlstream,
"UPDATE users SET status='ACTIVE' where email='%s';\n", "UPDATE users SET status='ACTIVE' where email='%s';\n",
f->email); f->email);
} }

View File

@ -83,6 +83,44 @@
extern void reorder_owners(struct region * r); extern void reorder_owners(struct region * r);
static int
convert_orders(void)
{
region * r;
for (r=regions;r;r=r->next) {
unit * u;
for (u=r->units;u;u=u->next) {
strlist * o;
for (o=u->orders;o;o=o->next) {
int c = igetkeyword(o->s, u->faction->locale);
switch (c) {
case K_RESERVE:
case K_BUY:
case K_SELL:
case K_CAST:
sprintf(buf, "@%s", LOC(u->faction->locale, keywords[c]));
for (;;) {
const char * c = getstrtoken();
if (c && *c) {
if (strchr(c, ' ')) {
strcat(buf, " \"");
strcat(buf, c);
strcat(buf, "\"");
} else {
strcat(buf, " ");
strcat(buf, c);
}
} else break;
}
set_string(&o->s, buf);
break;
}
}
}
}
return 0;
}
static void static void
verify_owners(boolean bOnce) verify_owners(boolean bOnce)
{ {
@ -147,8 +185,8 @@ warn_items(void)
for (itm=u->items;itm;itm=itm->next) { for (itm=u->items;itm;itm=itm->next) {
if (itm->number>100000 && itm->type!=it_money) { if (itm->number>100000 && itm->type!=it_money) {
found = 1; found = 1;
log_error(("Einheit %s hat %u %s\n", log_error(("Einheit %s hat %u %s\n",
unitid(u), itm->number, unitid(u), itm->number,
resourcename(itm->type->rtype, 0))); resourcename(itm->type->rtype, 0)));
} }
} }
@ -345,9 +383,9 @@ no_teurefremde(boolean convert)
for(u=r->units;u;u=u->next) { for(u=r->units;u;u=u->next) {
if(u->faction->no != MONSTER_FACTION if(u->faction->no != MONSTER_FACTION
&& is_migrant(u) && is_migrant(u)
&& kor_teure_talente(u)) && kor_teure_talente(u))
{ {
log_printf("* Warnung, teurer Migrant: %s %s\n", log_printf("* Warnung, teurer Migrant: %s %s\n",
unitname(u), factionname(u->faction)); unitname(u), factionname(u->faction));
if(convert) { if(convert) {
u->race = u->faction->race; u->race = u->faction->race;
@ -2443,13 +2481,13 @@ heal_all(void)
for(r=regions; r; r=r->next) { for(r=regions; r; r=r->next) {
for(u=r->units;u;u=u->next) { for(u=r->units;u;u=u->next) {
int max_hp = unit_max_hp(u) * u->number; int max_hp = unit_max_hp(u) * u->number;
if(u->hp < max_hp) { if(u->hp < max_hp) {
u->hp = max_hp; u->hp = max_hp;
fset(u->faction, FL_DH); fset(u->faction, FL_DH);
} }
} }
} }
for (f=factions; f; f=f->next) { for (f=factions; f; f=f->next) {
if(fval(f,FL_DH)) { if(fval(f,FL_DH)) {
add_message(&f->msgs, msg); add_message(&f->msgs, msg);
@ -2502,7 +2540,7 @@ peasant_adjustment(void)
} }
if (c==0) continue; if (c==0) continue;
avg = sum/c; avg = sum/c;
for(r=regions; r; r=r->next) if(rterrain(r) == ter) { for(r=regions; r; r=r->next) if(rterrain(r) == ter) {
unit *u; unit *u;
int playerp = 0; int playerp = 0;
@ -2532,13 +2570,13 @@ peasant_adjustment(void)
freeall += max(0,production(r) * MAXPEASANTS_PER_AREA freeall += max(0,production(r) * MAXPEASANTS_PER_AREA
- ((rtrees(r,2)+rtrees(r,1)/2) * TREESIZE) - playerp); - ((rtrees(r,2)+rtrees(r,1)/2) * TREESIZE) - playerp);
} }
for(r=regions; r; r=r->next) if(rterrain(r) == ter) { for(r=regions; r; r=r->next) if(rterrain(r) == ter) {
unit *u; unit *u;
double free; double free;
int newp; int newp;
int playerp = 0; int playerp = 0;
for(u = r->units; u; u=u->next) { for(u = r->units; u; u=u->next) {
if(lifestyle(u) > 0) playerp += u->number; if(lifestyle(u) > 0) playerp += u->number;
/* Sonderregel Bauernmob */ /* Sonderregel Bauernmob */
@ -2555,7 +2593,7 @@ peasant_adjustment(void)
assert(rpeasants(r) >= 0); assert(rpeasants(r) >= 0);
} }
} }
s = 0; s = 0;
for(r=regions; r; r=r->next) { for(r=regions; r; r=r->next) {
s += rpeasants(r); s += rpeasants(r);
@ -2687,7 +2725,7 @@ warn_password(void)
c++; c++;
} }
if (pwok == false) { if (pwok == false) {
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 und Zahlen bestehend.")); "Passwort, bevorzugt nur aus Buchstaben und Zahlen bestehend."));
@ -2745,7 +2783,7 @@ questportal_init(void)
u = findunit(atoi36("L0sc")); u = findunit(atoi36("L0sc"));
if(u) i_change(&u->items, &it_questkey1, 1); if(u) i_change(&u->items, &it_questkey1, 1);
u = findunit(atoi36("xi7m")); u = findunit(atoi36("xi7m"));
if(u) i_change(&u->items, &it_questkey2, 1); if(u) i_change(&u->items, &it_questkey2, 1);
return 0; return 0;
@ -2828,6 +2866,7 @@ korrektur(void)
update_gmquests(); /* test gm quests */ update_gmquests(); /* test gm quests */
/* fix_unitrefs(); */ /* fix_unitrefs(); */
stats(); stats();
do_once("pers", convert_orders());
do_once("sql2", dump_sql()); do_once("sql2", dump_sql());
do_once("fw02", fix_watchers()); do_once("fw02", fix_watchers());
do_once("fxh3", fix_plainherbs()); do_once("fxh3", fix_plainherbs());
@ -2858,8 +2897,8 @@ korrektur(void)
warn_password(); warn_password();
fix_road_borders(); fix_road_borders();
/* seems something fishy is going on, do this just /* seems something fishy is going on, do this just
* to be on the safe side: * to be on the safe side:
*/ */
fix_demand(); fix_demand();
/* trade_orders(); */ /* trade_orders(); */