forked from github/server
mapper kompiliert wieder. neue messages kompilieren und linken
This commit is contained in:
parent
b9f413f6fc
commit
2ccf6631e5
|
@ -1,6 +1,6 @@
|
|||
/* vi: set ts=2:
|
||||
*
|
||||
* $Id: eressea.c,v 1.24 2001/02/28 18:25:24 corwin Exp $
|
||||
* $Id: eressea.c,v 1.25 2001/02/28 23:28:53 enno Exp $
|
||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||
|
@ -56,7 +56,9 @@
|
|||
#include <base36.h>
|
||||
#include <event.h>
|
||||
#include <umlaut.h>
|
||||
|
||||
#ifdef NEW_MESSAGES
|
||||
# include <translation.h>
|
||||
#endif
|
||||
/* libc includes */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -1851,7 +1853,11 @@ kernel_done(void)
|
|||
/* calling this function releases memory assigned to static variables, etc.
|
||||
* calling it is optional, e.g. a release server will most likely not do it.
|
||||
*/
|
||||
#ifdef OLD_MESSAGES
|
||||
render_cleanup();
|
||||
#else
|
||||
translation_done();
|
||||
#endif
|
||||
skill_done();
|
||||
gc_done();
|
||||
}
|
||||
|
@ -1859,6 +1865,30 @@ kernel_done(void)
|
|||
extern void attrib_init(void);
|
||||
extern void render_init(void);
|
||||
|
||||
void
|
||||
read_strings(FILE * F)
|
||||
{
|
||||
char rbuf[8192];
|
||||
while (fgets(rbuf, sizeof(rbuf), F)) {
|
||||
char * b = rbuf;
|
||||
locale * lang;
|
||||
char * key = b;
|
||||
char * language;
|
||||
|
||||
if (rbuf[0]=='#') continue;
|
||||
rbuf[strlen(rbuf)-1] = 0; /* \n weg */
|
||||
while (*b && *b!=';') ++b;
|
||||
if (!*b) continue;
|
||||
*b++ = 0;
|
||||
language = b;
|
||||
while (*b && *b!=';') ++b;
|
||||
*b++ = 0;
|
||||
lang = find_locale(language);
|
||||
if (!lang) lang = make_locale(language);
|
||||
locale_setstring(lang, key, b);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
kernel_init(void)
|
||||
{
|
||||
|
@ -1866,7 +1896,11 @@ kernel_init(void)
|
|||
skill_init();
|
||||
attrib_init();
|
||||
init_locales();
|
||||
#ifdef OLD_MESSAGES
|
||||
render_init();
|
||||
#else
|
||||
translation_init();
|
||||
#endif
|
||||
if (!turn) turn = lastturn();
|
||||
if (turn == 0)
|
||||
srand(time((time_t *) NULL));
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* vi: set ts=2:
|
||||
*
|
||||
* $Id: message.c,v 1.9 2001/02/28 22:14:57 enno Exp $
|
||||
* $Id: message.c,v 1.10 2001/02/28 23:28:54 enno Exp $
|
||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||
|
@ -307,7 +307,7 @@ parse_message(char * b, const struct locale * deflocale)
|
|||
args[i] = NULL;
|
||||
|
||||
/* add the messagetype */
|
||||
mtype = mt_register(mt_new(name, args));
|
||||
mtype = mt_register(mt_new(name, (const char**)args));
|
||||
nrt_register(mtype, lang, message, level, section);
|
||||
crt_register(mtype, lang);
|
||||
}
|
||||
|
@ -322,7 +322,8 @@ read_messages(FILE * F, const struct locale * lang)
|
|||
}
|
||||
}
|
||||
|
||||
#else
|
||||
#endif
|
||||
|
||||
void
|
||||
addmessage(region * r, faction * f, const char *s, msg_t mtype, int level)
|
||||
{
|
||||
|
@ -373,11 +374,11 @@ caddmessage(region * r, faction * f, char *s, msg_t mtype, int level)
|
|||
default:
|
||||
fprintf(stderr, "Warnung: Ungültige Msg-Klasse!");
|
||||
}
|
||||
#ifdef OLD_MESSAGES
|
||||
if (m) m->level = level;
|
||||
#endif
|
||||
}
|
||||
|
||||
static messagetype * messagetypes;
|
||||
|
||||
void
|
||||
xmistake(const unit * u, const char *s, const char *comment, int mtype)
|
||||
{
|
||||
|
@ -417,6 +418,9 @@ old_hashstring(const char* s)
|
|||
}
|
||||
|
||||
|
||||
#ifdef OLD_MESSAGES
|
||||
static messagetype * messagetypes;
|
||||
|
||||
void
|
||||
debug_messagetypes(FILE * out)
|
||||
{
|
||||
|
@ -582,6 +586,13 @@ get_msglevel(const struct warning * warnings, const msglevel * levels, const mes
|
|||
return 0x7F;
|
||||
}
|
||||
|
||||
int
|
||||
msg_level(const message * m)
|
||||
{
|
||||
return m->level;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
set_msglevel(struct warning ** warnings, const char * type, int level)
|
||||
{
|
||||
|
@ -603,13 +614,6 @@ set_msglevel(struct warning ** warnings, const char * type, int level)
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
msg_level(const message * m)
|
||||
{
|
||||
return m->level;
|
||||
}
|
||||
#endif /* NEW_MESSAGES */
|
||||
|
||||
message *
|
||||
add_message(message_list** pm, message * m)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* vi: set ts=2:
|
||||
*
|
||||
* $Id: render.c,v 1.7 2001/02/24 12:50:48 enno Exp $
|
||||
* $Id: render.c,v 1.8 2001/02/28 23:28:54 enno Exp $
|
||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||
|
@ -129,31 +129,6 @@ add_evalfun(const char * name, localizer * l, eval_fun fun)
|
|||
else assert(!strcmp(find->name, name));
|
||||
}
|
||||
|
||||
char rbuf[8192];
|
||||
|
||||
void
|
||||
read_strings(FILE * F)
|
||||
{
|
||||
while (fgets(rbuf, 8192, F)) {
|
||||
char * b = rbuf;
|
||||
locale * lang;
|
||||
char * key = b;
|
||||
char * language;
|
||||
|
||||
if (rbuf[0]=='#') continue;
|
||||
rbuf[strlen(rbuf)-1] = 0; /* \n weg */
|
||||
while (*b && *b!=';') ++b;
|
||||
if (!*b) continue;
|
||||
*b++ = 0;
|
||||
language = b;
|
||||
while (*b && *b!=';') ++b;
|
||||
*b++ = 0;
|
||||
lang = find_locale(language);
|
||||
if (!lang) lang = make_locale(language);
|
||||
locale_setstring(lang, key, b);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
render_cleanup(void)
|
||||
{
|
||||
|
@ -239,6 +214,8 @@ v_dir(const locale * l, void * data) {
|
|||
return locale_string(l, dres[i]);
|
||||
}
|
||||
|
||||
static char rbuf[8192];
|
||||
|
||||
static char *
|
||||
render_immediate(const message * m, const char * find, localizer * l)
|
||||
{
|
||||
|
@ -579,159 +556,4 @@ read_messages(FILE * F, const struct locale * deflocale)
|
|||
}
|
||||
}
|
||||
|
||||
#include "skill.h"
|
||||
#include "magic.h"
|
||||
void
|
||||
spy_message(int spy, unit *u, unit *target)
|
||||
{
|
||||
const char *c;
|
||||
region * r = u->region;
|
||||
|
||||
if (spy < 0) {
|
||||
sprintf(buf, "%s konnte nichts über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herausbekommen.");
|
||||
addmessage(r, u->faction, buf, MSG_EVENT, ML_WARN);
|
||||
} else if (spy == 0) {
|
||||
sprintf(buf, "%s gelang es, Informationen über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herausbekommen: Partei '");
|
||||
scat(factionname(target->faction));
|
||||
scat("', Talente: ");
|
||||
|
||||
change_skill(u, SK_SPY, PRODUCEEXP / 2);
|
||||
|
||||
{
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
skill_t sk;
|
||||
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
if (get_skill(target, sk)) {
|
||||
found++;
|
||||
if (first == 1) {
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(skillnames[sk]);
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
scat(".");
|
||||
|
||||
addmessage(0, u->faction, buf, MSG_EVENT, ML_IMPORTANT);
|
||||
|
||||
/* Spionage > Wahrnehmung:
|
||||
* Talente mit Werten, Gegenstände und Kampfstatus */
|
||||
} else if (spy > 0) {
|
||||
sprintf(buf, "%s gelang es, Informationen über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herauszubekommen: Partei '");
|
||||
scat(factionname(target->faction));
|
||||
scat("', Talente: ");
|
||||
|
||||
change_skill(u, SK_SPY, PRODUCEEXP);
|
||||
|
||||
{
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
skill_t sk;
|
||||
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
if (get_skill(target, sk)) {
|
||||
found++;
|
||||
if (first == 1) {
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(skillnames[sk]);
|
||||
scat(" ");
|
||||
icat(eff_skill(target, sk, target->region));
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
scat("; Kampfstatus: ");
|
||||
scat(report_kampfstatus(target) + 2);
|
||||
c = hp_status(target);
|
||||
if (c && strlen(c))
|
||||
sprintf(buf, "%s (%s)", buf, c);
|
||||
scat("; ");
|
||||
|
||||
icat(get_money(target));
|
||||
scat(" Silber;");
|
||||
|
||||
scat(" Im Gepäck sind");
|
||||
{
|
||||
boolean first = true;
|
||||
int found = 0;
|
||||
item * itm;
|
||||
for (itm=target->items;itm;itm=itm->next) {
|
||||
if (itm->number>0) {
|
||||
resource_type * rtype = itm->type->rtype;
|
||||
++found;
|
||||
if (first) {
|
||||
first = false;
|
||||
scat(": ");
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
|
||||
if (itm->number == 1) {
|
||||
scat("1 ");
|
||||
scat(locale_string(u->faction->locale, resourcename(rtype, 0)));
|
||||
} else {
|
||||
icat(itm->number);
|
||||
scat(" ");
|
||||
scat(locale_string(u->faction->locale, resourcename(rtype, NMF_PLURAL)));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat(" keine verborgenen Gegenstände");
|
||||
}
|
||||
scat(".");
|
||||
}
|
||||
|
||||
/* magische Spionage:
|
||||
* zusätzlich Magiegebiet und Zauber */
|
||||
if (spy > 1){
|
||||
if (eff_skill(target, SK_MAGIC, target->region) > 0){
|
||||
spell_ptr *spt;
|
||||
spell *sp;
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
|
||||
scat(" Magiegebiet: ");
|
||||
scat(magietypen[find_magetype(target)]);
|
||||
if (get_mage(target)) {
|
||||
scat(", Sprüche: ");
|
||||
|
||||
for (spt = get_mage(target)->spellptr;spt; spt = spt->next){
|
||||
sp = find_spellbyid(spt->spellid);
|
||||
found++;
|
||||
if (first == 1){
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(sp->name);
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
addmessage(0, u->faction, buf, MSG_EVENT, ML_IMPORTANT);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* vi: set ts=2:
|
||||
*
|
||||
* $Id: reports.c,v 1.6 2001/02/19 14:19:24 corwin Exp $
|
||||
* $Id: reports.c,v 1.7 2001/02/28 23:28:54 enno Exp $
|
||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||
|
@ -22,6 +22,8 @@
|
|||
#include "eressea.h"
|
||||
#include "reports.h"
|
||||
|
||||
/* kernel includes */
|
||||
#include "skill.h"
|
||||
#include "unit.h"
|
||||
#include "item.h"
|
||||
#include "group.h"
|
||||
|
@ -483,3 +485,157 @@ spunit(struct strlist ** SP, const struct faction * f, const unit * u, int inden
|
|||
assert(SP);
|
||||
lparagraph(SP, buf, indent, (char) ((u->faction == f) ? '*' : (dh ? '+' : '-')));
|
||||
}
|
||||
|
||||
void
|
||||
spy_message(int spy, unit *u, unit *target)
|
||||
{
|
||||
const char *c;
|
||||
struct region * r = u->region;
|
||||
|
||||
if (spy < 0) {
|
||||
sprintf(buf, "%s konnte nichts über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herausbekommen.");
|
||||
addmessage(r, u->faction, buf, MSG_EVENT, ML_WARN);
|
||||
} else if (spy == 0) {
|
||||
sprintf(buf, "%s gelang es, Informationen über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herausbekommen: Partei '");
|
||||
scat(factionname(target->faction));
|
||||
scat("', Talente: ");
|
||||
|
||||
change_skill(u, SK_SPY, PRODUCEEXP / 2);
|
||||
|
||||
{
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
skill_t sk;
|
||||
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
if (get_skill(target, sk)) {
|
||||
found++;
|
||||
if (first == 1) {
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(skillnames[sk]);
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
scat(".");
|
||||
|
||||
addmessage(0, u->faction, buf, MSG_EVENT, ML_IMPORTANT);
|
||||
|
||||
/* Spionage > Wahrnehmung:
|
||||
* Talente mit Werten, Gegenstände und Kampfstatus */
|
||||
} else if (spy > 0) {
|
||||
sprintf(buf, "%s gelang es, Informationen über ", unitname(u));
|
||||
scat(unitname(target));
|
||||
scat(" herauszubekommen: Partei '");
|
||||
scat(factionname(target->faction));
|
||||
scat("', Talente: ");
|
||||
|
||||
change_skill(u, SK_SPY, PRODUCEEXP);
|
||||
|
||||
{
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
skill_t sk;
|
||||
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
if (get_skill(target, sk)) {
|
||||
found++;
|
||||
if (first == 1) {
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(skillnames[sk]);
|
||||
scat(" ");
|
||||
icat(eff_skill(target, sk, target->region));
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
scat("; Kampfstatus: ");
|
||||
scat(report_kampfstatus(target) + 2);
|
||||
c = hp_status(target);
|
||||
if (c && strlen(c))
|
||||
sprintf(buf, "%s (%s)", buf, c);
|
||||
scat("; ");
|
||||
|
||||
icat(get_money(target));
|
||||
scat(" Silber;");
|
||||
|
||||
scat(" Im Gepäck sind");
|
||||
{
|
||||
boolean first = true;
|
||||
int found = 0;
|
||||
item * itm;
|
||||
for (itm=target->items;itm;itm=itm->next) {
|
||||
if (itm->number>0) {
|
||||
resource_type * rtype = itm->type->rtype;
|
||||
++found;
|
||||
if (first) {
|
||||
first = false;
|
||||
scat(": ");
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
|
||||
if (itm->number == 1) {
|
||||
scat("1 ");
|
||||
scat(locale_string(u->faction->locale, resourcename(rtype, 0)));
|
||||
} else {
|
||||
icat(itm->number);
|
||||
scat(" ");
|
||||
scat(locale_string(u->faction->locale, resourcename(rtype, NMF_PLURAL)));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (found == 0) {
|
||||
scat(" keine verborgenen Gegenstände");
|
||||
}
|
||||
scat(".");
|
||||
}
|
||||
|
||||
/* magische Spionage:
|
||||
* zusätzlich Magiegebiet und Zauber */
|
||||
if (spy > 1){
|
||||
if (eff_skill(target, SK_MAGIC, target->region) > 0){
|
||||
spell_ptr *spt;
|
||||
spell *sp;
|
||||
int first = 1;
|
||||
int found = 0;
|
||||
|
||||
scat(" Magiegebiet: ");
|
||||
scat(magietypen[find_magetype(target)]);
|
||||
if (get_mage(target)) {
|
||||
scat(", Sprüche: ");
|
||||
|
||||
for (spt = get_mage(target)->spellptr;spt; spt = spt->next){
|
||||
sp = find_spellbyid(spt->spellid);
|
||||
found++;
|
||||
if (first == 1){
|
||||
first = 0;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(sp->name);
|
||||
}
|
||||
if (found == 0) {
|
||||
scat("Keine");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
addmessage(0, u->faction, buf, MSG_EVENT, ML_IMPORTANT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ typedef struct message {
|
|||
const void ** parameters;
|
||||
} message;
|
||||
|
||||
extern struct message_type * mt_new(const char * name, const char * args[]);
|
||||
extern struct message_type * mt_new(const char * name, const char ** args);
|
||||
extern struct message_type * mt_new_va(const char * name, ...);
|
||||
/* mt_new("simple_sentence", "subject:string", "predicate:string",
|
||||
* "object:string", "lang:locale", NULL); */
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
#CONVERT_TRIGGERS = 1
|
||||
|
||||
CFLAGS += -DNEW_MESSAGES
|
||||
|
||||
LD=gcc
|
||||
AR=ar
|
||||
CC=@colorgcc
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* vi: set ts=2:
|
||||
*
|
||||
* $Id: map_partei.c,v 1.4 2001/02/09 13:53:53 corwin Exp $
|
||||
* $Id: map_partei.c,v 1.5 2001/02/28 23:28:55 enno Exp $
|
||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||
|
@ -318,7 +318,7 @@ addplayer(region *r, char *email, race_t frace)
|
|||
set_ursprung(f, 0, r->x, r->y);
|
||||
|
||||
f->options = Pow(O_REPORT) | Pow(O_STATISTICS) | Pow(O_ZUGVORLAGE) |
|
||||
Pow(O_SILBERPOOL) | Pow(O_MERIAN);
|
||||
Pow(O_SILBERPOOL);
|
||||
|
||||
f->no = unused_faction_id();
|
||||
register_faction_id(f->no);
|
||||
|
|
Loading…
Reference in New Issue