forked from github/server
Unicode WIP:
- creport.c compiles
This commit is contained in:
parent
7031e9d032
commit
e63c3dc4a1
4 changed files with 45 additions and 37 deletions
|
@ -19,7 +19,7 @@
|
|||
/* tweakable features */
|
||||
#define ENCODE_SPECIAL 1
|
||||
#define RENDER_CRMESSAGES
|
||||
|
||||
#define BUFFERSIZE 32768
|
||||
/* modules include */
|
||||
#include <modules/score.h>
|
||||
|
||||
|
@ -88,7 +88,7 @@ boolean opt_cr_absolute_coords = false;
|
|||
|
||||
#define TAG_LOCALE "de"
|
||||
#ifdef TAG_LOCALE
|
||||
static const char *
|
||||
static const xmlChar *
|
||||
crtag(const char * key)
|
||||
{
|
||||
static const struct locale * lang = NULL;
|
||||
|
@ -96,7 +96,7 @@ crtag(const char * key)
|
|||
return (const xmlChar*)locale_string(lang, key);
|
||||
}
|
||||
#else
|
||||
#define crtag(x) (x)
|
||||
#define crtag(x) (const xmlChar*)(x)
|
||||
#endif
|
||||
/*
|
||||
* translation table
|
||||
|
@ -111,7 +111,7 @@ typedef struct translation {
|
|||
static translation * translation_table[TRANSMAXHASH];
|
||||
static translation * junkyard;
|
||||
|
||||
static const char *
|
||||
static const xmlChar *
|
||||
add_translation(const char * key, const xmlChar * value)
|
||||
{
|
||||
int kk = ((key[0] << 5) + key[0]) % TRANSMAXHASH;
|
||||
|
@ -250,6 +250,7 @@ print_curses(FILE * F, const faction * viewer, const void * obj, typ_t typ)
|
|||
msg = msg_curse(c, obj, typ, self);
|
||||
|
||||
if (msg) {
|
||||
char buf[BUFFERSIZE];
|
||||
if (!header) {
|
||||
header = 1;
|
||||
fputs("EFFECTS\n", F);
|
||||
|
@ -370,7 +371,7 @@ cr_skill(variant var, char * buffer, const void * userdata)
|
|||
const faction * report = (const faction*)userdata;
|
||||
skill_t sk = (skill_t)var.i;
|
||||
if (sk!=NOSKILL) sprintf(buffer, "\"%s\"",
|
||||
add_translation(skillname(sk, NULL), skillname(sk, report->locale)));
|
||||
add_translation(skillnames[sk], skillname(sk, report->locale)));
|
||||
else strcpy(buffer, "\"\"");
|
||||
return 0;
|
||||
}
|
||||
|
@ -381,8 +382,8 @@ cr_order(variant var, char * buffer, const void * userdata)
|
|||
order * ord = (order*)var.v;
|
||||
if (ord!=NULL) {
|
||||
char * wp = buffer;
|
||||
char * cmd = getcommand(ord);
|
||||
const char * rp = cmd;
|
||||
xmlChar * cmd = getcommand(ord);
|
||||
const xmlChar * rp = cmd;
|
||||
|
||||
*wp++ = '\"';
|
||||
while (*rp) {
|
||||
|
@ -425,7 +426,6 @@ cr_resources(variant var, char * buffer, const void * userdata)
|
|||
static int
|
||||
cr_regions(variant var, char * buffer, const void * userdata)
|
||||
{
|
||||
const faction * report = (const faction*)userdata;
|
||||
const arg_regions * rdata = (const arg_regions *)var.v;
|
||||
char * wp = buffer;
|
||||
if (rdata!=NULL && rdata->nregions>0) {
|
||||
|
@ -502,7 +502,7 @@ render_messages(FILE * F, faction * f, message_list *msgs)
|
|||
{
|
||||
struct mlist* m = msgs->begin;
|
||||
while (m) {
|
||||
char crbuffer[1024*32]; /* gross, wegen spionage-messages :-( */
|
||||
char crbuffer[BUFFERSIZE]; /* gross, wegen spionage-messages :-( */
|
||||
boolean printed = false;
|
||||
const struct message_type * mtype = m->msg->type;
|
||||
unsigned int hash = mtype->key;
|
||||
|
@ -570,7 +570,7 @@ cr_output_buildings(FILE * F, building * b, const unit * owner, int fno, faction
|
|||
bname = buildingtype(type, b, b->size);
|
||||
fprintf(F, "\"%s\";Typ\n", add_translation(bname, LOC(f->locale, bname)));
|
||||
fprintf(F, "\"%s\";Name\n", b->name);
|
||||
if (b->display && strlen(b->display))
|
||||
if (b->display && b->display[0])
|
||||
fprintf(F, "\"%s\";Beschr\n", b->display);
|
||||
if (b->size)
|
||||
fprintf(F, "%d;Groesse\n", b->size);
|
||||
|
@ -592,7 +592,7 @@ cr_output_ship(FILE * F, const ship * sh, const unit * u, int fcaptain, const fa
|
|||
assert(sh);
|
||||
fprintf(F, "SCHIFF %d\n", sh->no);
|
||||
fprintf(F, "\"%s\";Name\n", sh->name);
|
||||
if (sh->display && strlen(sh->display))
|
||||
if (sh->display && sh->display[0])
|
||||
fprintf(F, "\"%s\";Beschr\n", sh->display);
|
||||
fprintf(F, "\"%s\";Typ\n", add_translation(sh->type->name[0], locale_string(f->locale, sh->type->name[0])));
|
||||
fprintf(F, "%d;Groesse\n", sh->size);
|
||||
|
@ -635,7 +635,7 @@ cr_output_unit(FILE * F, const region * r,
|
|||
{
|
||||
/* Race attributes are always plural and item attributes always
|
||||
* singular */
|
||||
const char * str;
|
||||
const xmlChar * str;
|
||||
const item_type * lasttype;
|
||||
int pr;
|
||||
item *itm, *show;
|
||||
|
@ -761,7 +761,8 @@ cr_output_unit(FILE * F, const region * r,
|
|||
/* additional information for own units */
|
||||
if (u->faction == f || omniscient(f)) {
|
||||
order * ord;
|
||||
const char *c;
|
||||
const xmlChar *xc;
|
||||
const char * c;
|
||||
int i;
|
||||
|
||||
i = ualias(u);
|
||||
|
@ -781,9 +782,9 @@ cr_output_unit(FILE * F, const region * r,
|
|||
fprintf(F, "%d;Tarnung\n", i);
|
||||
}
|
||||
}
|
||||
c = uprivate(u);
|
||||
if (c) {
|
||||
fprintf(F, "\"%s\";privat\n", c);
|
||||
xc = uprivate(u);
|
||||
if (xc) {
|
||||
fprintf(F, "\"%s\";privat\n", xc);
|
||||
}
|
||||
c = hp_status(u);
|
||||
if (c && *c && (u->faction == f || omniscient(f))) {
|
||||
|
@ -840,7 +841,7 @@ cr_output_unit(FILE * F, const region * r,
|
|||
fprintf(F, "TALENTE\n");
|
||||
}
|
||||
fprintf(F, "%d %d;%s\n", u->number*level_days(sv->level), esk,
|
||||
add_translation(skillname(sk, NULL), skillname(sk, f->locale)));
|
||||
add_translation(skillnames[sk], skillname(sk, f->locale)));
|
||||
}
|
||||
}
|
||||
/* spells */
|
||||
|
@ -854,14 +855,14 @@ cr_output_unit(FILE * F, const region * r,
|
|||
for (;slist; slist = slist->next) {
|
||||
spell * sp = slist->data;
|
||||
if (sp->level <= t) {
|
||||
const char * name = add_translation(mkname("spell", sp->sname), spell_name(sp, f->locale));
|
||||
const xmlChar * name = add_translation(mkname("spell", sp->sname), spell_name(sp, f->locale));
|
||||
fprintf(F, "\"%s\"\n", name);
|
||||
}
|
||||
}
|
||||
for (i=0;i!=MAXCOMBATSPELLS;++i) {
|
||||
const spell * sp = mage->combatspells[i].sp;
|
||||
if (sp) {
|
||||
const char * name = add_translation(mkname("spell", sp->sname), spell_name(sp, f->locale));
|
||||
const xmlChar * name = add_translation(mkname("spell", sp->sname), spell_name(sp, f->locale));
|
||||
fprintf(F, "KAMPFZAUBER %d\n", i);
|
||||
fprintf(F, "\"%s\";name\n", name);
|
||||
fprintf(F, "%d;level\n", mage->combatspells[i].level);
|
||||
|
@ -1006,9 +1007,9 @@ static void
|
|||
cr_reportspell(FILE * F, spell *sp, const struct locale * lang)
|
||||
{
|
||||
int k;
|
||||
const char * name = add_translation(mkname("spell", sp->sname), spell_name(sp, lang));
|
||||
const xmlChar * name = add_translation(mkname("spell", sp->sname), spell_name(sp, lang));
|
||||
|
||||
fprintf(F, "ZAUBER %d\n", hashstring(spell_name(sp, default_locale)));
|
||||
fprintf(F, "ZAUBER %d\n", hashstring(sp->sname));
|
||||
fprintf(F, "\"%s\";name\n", name);
|
||||
fprintf(F, "%d;level\n", sp->level);
|
||||
fprintf(F, "%d;rank\n", sp->rank);
|
||||
|
@ -1125,7 +1126,7 @@ report_computer(const char * filename, report_context * ctx)
|
|||
building *b;
|
||||
ship *sh;
|
||||
unit *u;
|
||||
const char * mailto = locale_string(f->locale, "mailto");
|
||||
const xmlChar * mailto = locale_string(f->locale, "mailto");
|
||||
const attrib * a;
|
||||
seen_region * sr = NULL;
|
||||
#ifdef SCORE_MODULE
|
||||
|
@ -1249,7 +1250,8 @@ report_computer(const char * filename, report_context * ctx)
|
|||
for (a=a_find(f->attribs, &at_showitem);a && a->type==&at_showitem;a=a->next) {
|
||||
const potion_type * ptype = resource2potion(((const item_type*)a->data.v)->rtype);
|
||||
requirement * m;
|
||||
const char * ch, * description = NULL;
|
||||
const char * ch;
|
||||
const xmlChar * description = NULL;
|
||||
|
||||
if (ptype==NULL) continue;
|
||||
m = ptype->itype->construction->materials;
|
||||
|
@ -1264,7 +1266,7 @@ report_computer(const char * filename, report_context * ctx)
|
|||
description = LOC(f->locale, potiontext);
|
||||
}
|
||||
|
||||
fprintf(F, "\"%s\";Beschr\n", description);
|
||||
fprintf(F, "\"%s\";Beschr\n", description);
|
||||
fprintf(F, "ZUTATEN\n");
|
||||
|
||||
while (m->number) {
|
||||
|
@ -1296,7 +1298,12 @@ report_computer(const char * filename, report_context * ctx)
|
|||
#endif
|
||||
else fprintf(F, "REGION %d %d %d\n", region_x(r, f), region_y(r, f), r->planep->id);
|
||||
}
|
||||
if (r->land && strlen(rname(r, f->locale))) fprintf(F, "\"%s\";Name\n", rname(r, f->locale));
|
||||
if (r->land) {
|
||||
const xmlChar * str = rname(r, f->locale);
|
||||
if (str && str[0]) {
|
||||
fprintf(F, "\"%s\";Name\n", str);
|
||||
}
|
||||
}
|
||||
tname = terrain_name(r);
|
||||
|
||||
fprintf(F, "\"%s\";Terrain\n", add_translation(tname, locale_string(f->locale, tname)));
|
||||
|
@ -1313,9 +1320,9 @@ report_computer(const char * filename, report_context * ctx)
|
|||
} else {
|
||||
int stealthmod = stealth_modifier(sr->mode);
|
||||
#define RESOURCECOMPAT
|
||||
char cbuf[8192], *pos = cbuf;
|
||||
char cbuf[BUFFERSIZE], *pos = cbuf;
|
||||
#ifdef RESOURCECOMPAT
|
||||
if (r->display && strlen(r->display))
|
||||
if (r->display && r->display[0])
|
||||
fprintf(F, "\"%s\";Beschr\n", r->display);
|
||||
#endif
|
||||
if (fval(r->terrain, LAND_REGION)) {
|
||||
|
|
|
@ -497,7 +497,7 @@ paint_status(window * wnd, const state * st)
|
|||
map_region * mr = cursor_region(&st->display, &st->cursor);
|
||||
if (mr && mr->r) {
|
||||
if (mr->r->land) {
|
||||
name = mr->r->land->name;
|
||||
name = (const char *)mr->r->land->name;
|
||||
} else {
|
||||
name = mr->r->terrain->_name;
|
||||
}
|
||||
|
@ -527,7 +527,7 @@ paint_info_region(window * wnd, const state * st)
|
|||
if (mr && mr->r) {
|
||||
const region * r = mr->r;
|
||||
if (r->land) {
|
||||
mvwaddnstr(win, line++, 1, r->land->name, size);
|
||||
mvwaddnstr(win, line++, 1, (char *)r->land->name, size);
|
||||
} else {
|
||||
mvwaddnstr(win, line++, 1, r->terrain->_name, size);
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ paint_info_region(window * wnd, const state * st)
|
|||
for (u=r->units;u && line<maxline;u=u->next) {
|
||||
if (!fval(u->faction, FFL_MARK)) {
|
||||
mvwprintw(win, line, 1, "%.4s ", itoa36(u->faction->no));
|
||||
mvwaddnstr(win, line++, 6, u->faction->name, size-5);
|
||||
mvwaddnstr(win, line++, 6, (char *)u->faction->name, size-5);
|
||||
fset(u->faction, FFL_MARK);
|
||||
}
|
||||
}
|
||||
|
@ -571,7 +571,7 @@ paint_info_region(window * wnd, const state * st)
|
|||
wattroff(win, A_BOLD | COLOR_PAIR(COLOR_YELLOW));
|
||||
for (u=r->units;u && line<maxline;u=u->next) {
|
||||
mvwprintw(win, line, 1, "%.4s ", itoa36(u->no));
|
||||
mvwaddnstr(win, line++, 6, u->name, size-5);
|
||||
mvwaddnstr(win, line++, 6, (char *)u->name, size-5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1101,7 +1101,7 @@ handlekey(state * st, int c)
|
|||
}
|
||||
}
|
||||
for (r=first;;) {
|
||||
if (findmode=='r' && r->land && r->land->name && strstr(r->land->name, locate)) {
|
||||
if (findmode=='r' && r->land && r->land->name && strstr((const char*)r->land->name, locate)) {
|
||||
break;
|
||||
} else if (findmode=='f') {
|
||||
unit * u;
|
||||
|
|
|
@ -66,7 +66,7 @@ class bind_orders {
|
|||
public:
|
||||
static order * next(order * node) { return node->next; }
|
||||
static std::string value(order * node) {
|
||||
char * cmd = getcommand(node);
|
||||
char * cmd = (char*)getcommand(node);
|
||||
std::string s(cmd);
|
||||
free(cmd);
|
||||
return s;
|
||||
|
@ -372,7 +372,7 @@ unit_setid(unit& u, int id)
|
|||
static const char *
|
||||
unit_getname(const unit& u)
|
||||
{
|
||||
return u.name;
|
||||
return (const char *)u.name;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -385,7 +385,7 @@ unit_setname(unit& u, const char * name)
|
|||
static const char *
|
||||
unit_getinfo(const unit& u)
|
||||
{
|
||||
return u.display;
|
||||
return (const char *)u.display;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -478,7 +478,7 @@ unit_setmagic(unit& u, const char * type)
|
|||
static void
|
||||
unit_addorder(unit& u, const char * str)
|
||||
{
|
||||
order * ord = parse_order(str, u.faction->locale);
|
||||
order * ord = parse_order((const xmlChar *)str, u.faction->locale);
|
||||
addlist(&u.orders, ord);
|
||||
u.faction->lastorders = turn;
|
||||
}
|
||||
|
@ -568,7 +568,7 @@ unit_capacity(const struct unit& u)
|
|||
static void
|
||||
unit_addnotice(unit& u, const char * str)
|
||||
{
|
||||
addmessage(u.region, u.faction, str, MSG_MESSAGE, ML_IMPORTANT);
|
||||
addmessage(u.region, u.faction, (const xmlChar*)str, MSG_MESSAGE, ML_IMPORTANT);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -666,6 +666,7 @@ main(int argc, char *argv[])
|
|||
// run the main script
|
||||
if (luafile==NULL) lua_console(luaState);
|
||||
else {
|
||||
char buf[MAX_PATH];
|
||||
if (script_path) sprintf(buf, "%s/%s", script_path, luafile);
|
||||
else strcpy(buf, luafile);
|
||||
#ifdef LUABIND_NO_EXCEPTIONS
|
||||
|
|
Loading…
Reference in a new issue