ecehck und andere altlasten raus aus dem repository

This commit is contained in:
Enno Rehling 2001-02-10 14:11:59 +00:00
parent 1987a58511
commit 6450114ba7
5 changed files with 0 additions and 4879 deletions

View File

@ -1,6 +0,0 @@
@VERSION
@ADRESSEN
;Partei
;Parteiname
;banner
;email

File diff suppressed because it is too large Load Diff

View File

@ -1,130 +0,0 @@
/* vi: set ts=2 ai sw=2
*
* $Id: filter.c,v 1.2 2001/01/26 16:19:41 enno Exp $
* Eressea PB(E)M host Copyright (C) 1997-99
* Enno Rehling (rehling@usa.net)
* Christian Schlittchen (corwin@amber.kn-bremen.de)
* Katja Zedel (katze@felidae.kn-bremen.de)
* Henning Peters (faroul@gmx.de)
*
* based on:
*
* Atlantis v1.0 13 September 1993 Copyright 1993 by Russell Wallace
* Atlantis v1.7 Copyright 1996 by Alex Schröder
*
* This program may not be used, modified or distributed. It may not be
* sold or used commercially without prior written permission from the
* authors.
*
* Eressea PBeM CR Filter
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tag {
struct tag * next;
char * name;
} tag;
typedef struct section {
struct section * next;
char * name;
tag * tags;
} section;
section *
read_tags(FILE * in)
{
char buf[64];
section * sec = NULL;
while (fgets(buf, 64, in)) {
size_t end = strlen(buf);
if (end && buf[end-1]=='\n') buf[end-1] = ' ';
if (buf[0]=='@') {
section * last = sec;
sec = (section *) calloc(1, sizeof(section));
sec->next = last;
sec->name = (char*)calloc(strlen(buf), sizeof(char));
strcpy(sec->name, buf+1);
} else if (sec) {
tag * last = sec->tags;
sec->tags = (tag *) calloc(1, sizeof(tag));
sec->tags->next = last;
sec->tags->name = (char*)calloc(strlen(buf)+1, sizeof(char));
strcpy(sec->tags->name, buf);
}
}
return sec;
}
void
filter_stream(FILE * in, FILE * out, section * sec)
{
char buf[8092];
section * s = NULL;
while (fgets(buf, 8092, in)) {
section * c;
int found = 0;
size_t end = strlen(buf);
if (end && buf[end-1]=='\n') buf[end-1] = ' ';
for (c = sec;c;c=c->next) {
if (!strncmp(buf, c->name, min(strlen(buf), strlen(c->name)))) {
s = c;
fprintf(out, "%s\n", buf);
found = 1;
break;
}
}
if (s && !found) {
if (strchr(buf, ';')) {
tag * t;
for (t=s->tags;t;t = t->next) {
size_t len = strlen(t->name);
if (!strcmp(buf+strlen(buf)-len, t->name)) {
fprintf(out, "%s\n", buf);
found = 1;
break;
}
}
} else s = NULL;
}
}
}
int
usage(const char* message)
{
fprintf(stderr, "usage: filter <filter.crf> <input.cr> <output.cr>\n");
if (message) fprintf(stderr, "\nERROR: %s\n", message);
return -1;
}
int
main(int argc, char** argv)
{
FILE * filter;
FILE * in = stdin;
FILE * out = stdout;
section * sec;
if (argc<1) return usage(0);
filter = fopen(argv[1], "rt");
if (!filter) usage("cannot open filter definitions");
sec = read_tags(filter);
if (argc>2) {
in = fopen(argv[2], "rt");
if (!in) usage("cannot open input file");
}
if (argc>3) {
out = fopen(argv[3], "wt+");
if (!out) usage("cannot open output file");
}
filter_stream(in, out, sec);
}

View File

@ -1,66 +0,0 @@
# Liste der Items für ECheck V3 und höher - Faroul
# Alle Items stehen hier mit allen dem Server bekannten Namen.
# Pro Zeile gilt:
# erster Eintrag: Einzahl;
# zweiter Eintrag: Mehrzahl
# dritter und weitere Einträge: weitere Alternativen
# Umlaute müssen nicht umschrieben werden, sondern als ISO-Latin1
# benutzt: ae=ä, oe=ö, ue=ü, Ae=Ä, Oe=Ö, Ue=Ü, sz=ß
# Die Luxusgüter _MÜSSEN_ hier ganz vorne in dieser Reihenfolge stehen,
# sonst berechnet ECheck die Einkaufspreise nicht
Balsam; Balsam
Gewürz; Gewürz; Gewürze
Juwel; Juwelen
Myrrhe; Myrrhe
Öl; Öl; Öle
Seide; Seide
Weihrauch; Weihrauch
# der Rest ist in der Reihenfolge egal:
Eisen; Eisen; Eisenbarren
Holz; Holz; Holzstamm; Holzstämme
Stein; Steine; Steinquader
Pferd; Pferde
Wagen; Wagen
Katapult; Katapulte
Schwert; Schwerter
Speer; Speere
Armbrust; Armbrüste
Bogen; Bögen; Langbogen; Langbögen
Kettenhemd; Kettenhemden; Hemden
Plattenpanzer; Plattenpanzer; Panzer
Bihänder; Bihänder; Zweihänder
Kriegsaxt; Kriegsäxte; Axt; Äxte
Elfenbogen; Elfenbögen
Laenschwert; Laenschwerter
Laenschild; Laenschilde
Laenkettenhemd; Laenkettenhemden
Laen; Laen
Schild; Schilde
Hellebarde; Hellebarden
Lanze; Lanzen
Mallorn; Mallorn
Amulett der Dunkelheit; Amulette der Dunkelheit; Dunkelheit
Amulett des Todes; Amulette des Todes; Todes
Amulett der Heilung; Amulette der Heilung; Heilung
Amulett des wahren Sehens; Amulette des wahren Sehens; Sehens
Mantel der Unverletzlichkeit; Mäntel der Unverletzlichkeit; Mantel der Unverletzbarkeit; Mäntel der Unverletzbarkeit; Unverletzbarkeit; Unverletzlichkeit
Ring der Unsichtbarkeit; Ringe der Unsichtbarkeit; Unsichtbarkeit
Ring der Macht; Ringe der Macht; Macht
Runenschwert; Runenschwerter
Schildstein; Schildsteine
Zauberstab des Feuers; Zauberstäbe des Feuers; Feuers
Zauberstab der Blitze; Zauberstäbe der Blitze; Blitze
Zauberstab der Teleportation; Zauberstäbe der Teleportation; Teleportation
Drachenkopf; Drachenköpfe; Kopf; Köpfe
Amulett der Keuschheit; Amulette der Keuschheit; Keuschheitsamulett
Amulett des Treffens; Amulette des Treffens; Treffens
Drachenblut; Drachenblut; Blut
# So, das waren die offiziellen Items; diese Liste sollte man nicht ändern,
# wenn man auf das Ergebnis von ECheck Wert legt...
# Man kann aber neue Items anhängen; nein, ich werde keine Fragen zu
# etwaigen neuen Items beantworten, ebensowenig jemand anders aus dem
# Design-Team - Faroul

View File

@ -1,5 +0,0 @@
@VERSION
@REGION
;Terrain
;Name
;Insel