forked from github/server
speedups
This commit is contained in:
parent
ad9bd0b291
commit
bb0c563c3d
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: eressea.c,v 1.13 2001/02/12 22:39:56 enno Exp $
|
* $Id: eressea.c,v 1.14 2001/02/13 02:58:51 enno Exp $
|
||||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
@ -1033,7 +1033,7 @@ igetstrtoken (const char *s1)
|
||||||
s++;
|
s++;
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
while (i < DISPLAYSIZE && *s && *s != ' ') {
|
while (*s && *s != ' ' && i < DISPLAYSIZE) {
|
||||||
buf[i] = (*s);
|
buf[i] = (*s);
|
||||||
|
|
||||||
/* Hier wird space_replacement wieder in space zurueck
|
/* Hier wird space_replacement wieder in space zurueck
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: item.c,v 1.9 2001/02/11 20:54:01 enno Exp $
|
* $Id: item.c,v 1.10 2001/02/13 02:58:51 enno Exp $
|
||||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
@ -44,11 +44,21 @@ potion_type * potiontypes;
|
||||||
item_type * itemtypes;
|
item_type * itemtypes;
|
||||||
herb_type * herbtypes;
|
herb_type * herbtypes;
|
||||||
|
|
||||||
attrib_type at_ptype = { "potion_type" };
|
#ifdef AT_PTYPE
|
||||||
attrib_type at_wtype = { "weapon_type" };
|
static attrib_type at_ptype = { "potion_type" };
|
||||||
attrib_type at_ltype = { "luxury_type" };
|
#endif
|
||||||
attrib_type at_itype = { "item_type" };
|
#ifdef AT_WTYPE
|
||||||
attrib_type at_htype = { "herb_type" };
|
static attrib_type at_wtype = { "weapon_type" };
|
||||||
|
#endif
|
||||||
|
#ifdef AT_LTYPE
|
||||||
|
static attrib_type at_ltype = { "luxury_type" };
|
||||||
|
#endif
|
||||||
|
#ifdef AT_ITYPE
|
||||||
|
static attrib_type at_itype = { "item_type" };
|
||||||
|
#endif
|
||||||
|
#ifdef AT_HTYPE
|
||||||
|
static attrib_type at_htype = { "herb_type" };
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
res_changeaura(unit * u, const resource_type * rtype, int delta)
|
res_changeaura(unit * u, const resource_type * rtype, int delta)
|
||||||
|
@ -158,7 +168,11 @@ it_register(item_type * itype)
|
||||||
item_type ** p_itype = &itemtypes;
|
item_type ** p_itype = &itemtypes;
|
||||||
while (*p_itype && *p_itype != itype) p_itype = &(*p_itype)->next;
|
while (*p_itype && *p_itype != itype) p_itype = &(*p_itype)->next;
|
||||||
if (*p_itype==NULL) {
|
if (*p_itype==NULL) {
|
||||||
|
#ifdef AT_ITYPE
|
||||||
a_add(&itype->rtype->attribs, a_new(&at_itype))->data.v = (void*) itype;
|
a_add(&itype->rtype->attribs, a_new(&at_itype))->data.v = (void*) itype;
|
||||||
|
#else
|
||||||
|
itype->rtype->itype = itype;
|
||||||
|
#endif
|
||||||
*p_itype = itype;
|
*p_itype = itype;
|
||||||
rt_register(itype->rtype);
|
rt_register(itype->rtype);
|
||||||
}
|
}
|
||||||
|
@ -190,7 +204,11 @@ new_itemtype(resource_type * rtype,
|
||||||
void
|
void
|
||||||
lt_register(luxury_type * ltype)
|
lt_register(luxury_type * ltype)
|
||||||
{
|
{
|
||||||
|
#ifdef AT_LTYPE
|
||||||
a_add(<ype->itype->rtype->attribs, a_new(&at_ltype))->data.v = (void*) ltype;
|
a_add(<ype->itype->rtype->attribs, a_new(&at_ltype))->data.v = (void*) ltype;
|
||||||
|
#else
|
||||||
|
ltype->itype->rtype->ltype = ltype;
|
||||||
|
#endif
|
||||||
ltype->next = luxurytypes;
|
ltype->next = luxurytypes;
|
||||||
luxurytypes = ltype;
|
luxurytypes = ltype;
|
||||||
}
|
}
|
||||||
|
@ -214,7 +232,11 @@ new_luxurytype(item_type * itype, int price)
|
||||||
void
|
void
|
||||||
wt_register(weapon_type * wtype)
|
wt_register(weapon_type * wtype)
|
||||||
{
|
{
|
||||||
|
#ifdef AT_WTYPE
|
||||||
a_add(&wtype->itype->rtype->attribs, a_new(&at_wtype))->data.v = (void*) wtype;
|
a_add(&wtype->itype->rtype->attribs, a_new(&at_wtype))->data.v = (void*) wtype;
|
||||||
|
#else
|
||||||
|
wtype->itype->rtype->wtype = wtype;
|
||||||
|
#endif
|
||||||
wtype->next = weapontypes;
|
wtype->next = weapontypes;
|
||||||
weapontypes = wtype;
|
weapontypes = wtype;
|
||||||
}
|
}
|
||||||
|
@ -250,7 +272,11 @@ new_weapontype(item_type * itype,
|
||||||
void
|
void
|
||||||
pt_register(potion_type * ptype)
|
pt_register(potion_type * ptype)
|
||||||
{
|
{
|
||||||
|
#ifdef AT_PTYPE
|
||||||
a_add(&ptype->itype->rtype->attribs, a_new(&at_ptype))->data.v = (void*) ptype;
|
a_add(&ptype->itype->rtype->attribs, a_new(&at_ptype))->data.v = (void*) ptype;
|
||||||
|
#else
|
||||||
|
ptype->itype->rtype->ptype = ptype;
|
||||||
|
#endif
|
||||||
ptype->next = potiontypes;
|
ptype->next = potiontypes;
|
||||||
potiontypes = ptype;
|
potiontypes = ptype;
|
||||||
}
|
}
|
||||||
|
@ -276,7 +302,11 @@ new_potiontype(item_type * itype,
|
||||||
void
|
void
|
||||||
ht_register(herb_type * htype)
|
ht_register(herb_type * htype)
|
||||||
{
|
{
|
||||||
|
#ifdef AT_HTYPE
|
||||||
a_add(&htype->itype->rtype->attribs, a_new(&at_htype))->data.v = (void*) htype;
|
a_add(&htype->itype->rtype->attribs, a_new(&at_htype))->data.v = (void*) htype;
|
||||||
|
#else
|
||||||
|
htype->itype->rtype->htype = htype;
|
||||||
|
#endif
|
||||||
htype->next = herbtypes;
|
htype->next = herbtypes;
|
||||||
herbtypes = htype;
|
herbtypes = htype;
|
||||||
}
|
}
|
||||||
|
@ -312,43 +342,68 @@ rt_register(resource_type * rtype)
|
||||||
}
|
}
|
||||||
|
|
||||||
const resource_type *
|
const resource_type *
|
||||||
item2resource(const item_type * itype) {
|
item2resource(const item_type * itype)
|
||||||
|
{
|
||||||
return itype->rtype;
|
return itype->rtype;
|
||||||
}
|
}
|
||||||
|
|
||||||
const item_type *
|
const item_type *
|
||||||
resource2item(const resource_type * rtype) {
|
resource2item(const resource_type * rtype)
|
||||||
|
{
|
||||||
|
#ifdef AT_ITYPE
|
||||||
attrib * a = a_find(rtype->attribs, &at_itype);
|
attrib * a = a_find(rtype->attribs, &at_itype);
|
||||||
if (a) return (const item_type *)a->data.v;
|
if (a) return (const item_type *)a->data.v;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#else
|
||||||
|
return rtype->itype;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const herb_type *
|
const herb_type *
|
||||||
resource2herb(const resource_type * rtype) {
|
resource2herb(const resource_type * rtype)
|
||||||
|
{
|
||||||
|
#ifdef AT_HTYPE
|
||||||
attrib * a = a_find(rtype->attribs, &at_htype);
|
attrib * a = a_find(rtype->attribs, &at_htype);
|
||||||
if (a) return (const herb_type *)a->data.v;
|
if (a) return (const herb_type *)a->data.v;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#else
|
||||||
|
return rtype->htype;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const weapon_type *
|
const weapon_type *
|
||||||
resource2weapon(const resource_type * rtype) {
|
resource2weapon(const resource_type * rtype) {
|
||||||
|
#ifdef AT_WTYPE
|
||||||
attrib * a = a_find(rtype->attribs, &at_wtype);
|
attrib * a = a_find(rtype->attribs, &at_wtype);
|
||||||
if (a) return (const weapon_type *)a->data.v;
|
if (a) return (const weapon_type *)a->data.v;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#else
|
||||||
|
return rtype->wtype;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const luxury_type *
|
const luxury_type *
|
||||||
resource2luxury(const resource_type * rtype) {
|
resource2luxury(const resource_type * rtype)
|
||||||
|
{
|
||||||
|
#ifdef AT_LTYPE
|
||||||
attrib * a = a_find(rtype->attribs, &at_ltype);
|
attrib * a = a_find(rtype->attribs, &at_ltype);
|
||||||
if (a) return (const luxury_type *)a->data.v;
|
if (a) return (const luxury_type *)a->data.v;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#else
|
||||||
|
return rtype->ltype;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const potion_type *
|
const potion_type *
|
||||||
resource2potion(const resource_type * rtype) {
|
resource2potion(const resource_type * rtype)
|
||||||
|
{
|
||||||
|
#ifdef AT_PTYPE
|
||||||
attrib * a = a_find(rtype->attribs, &at_ptype);
|
attrib * a = a_find(rtype->attribs, &at_ptype);
|
||||||
if (a) return (const potion_type *)a->data.v;
|
if (a) return (const potion_type *)a->data.v;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
#else
|
||||||
|
return rtype->ptype;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
resource_type *
|
resource_type *
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: item.h,v 1.3 2001/02/03 13:45:32 enno Exp $
|
* $Id: item.h,v 1.4 2001/02/13 02:58:51 enno Exp $
|
||||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
@ -37,6 +37,11 @@ typedef struct item {
|
||||||
* limited supply */
|
* limited supply */
|
||||||
#define RTF_DYNAMIC (1<<3) /* dynamic type, must be saved */
|
#define RTF_DYNAMIC (1<<3) /* dynamic type, must be saved */
|
||||||
|
|
||||||
|
#undef AT_ITYPE /* should resource_type use an attribute for items ? */
|
||||||
|
#undef AT_HTYPE /* should resource_type use an attribute for herbs ? */
|
||||||
|
#undef AT_PTYPE /* should resource_type use an attribute for potions ? */
|
||||||
|
#undef AT_LTYPE /* should resource_type use an attribute for luxuries ? */
|
||||||
|
#undef AT_WTYPE /* should resource_type use an attribute for weapons ? */
|
||||||
|
|
||||||
/* flags for resource_type::name() */
|
/* flags for resource_type::name() */
|
||||||
#define NMF_PLURAL 0x01
|
#define NMF_PLURAL 0x01
|
||||||
|
@ -55,6 +60,21 @@ typedef struct resource_type {
|
||||||
struct attrib * attribs;
|
struct attrib * attribs;
|
||||||
struct resource_type * next;
|
struct resource_type * next;
|
||||||
unsigned int hashkey;
|
unsigned int hashkey;
|
||||||
|
#ifndef AT_ITYPE
|
||||||
|
struct item_type * itype;
|
||||||
|
#endif
|
||||||
|
#ifndef AT_HTYPE
|
||||||
|
struct herb_type * htype;
|
||||||
|
#endif
|
||||||
|
#ifndef AT_PTYPE
|
||||||
|
struct potion_type * ptype;
|
||||||
|
#endif
|
||||||
|
#ifndef AT_LTYPE
|
||||||
|
struct luxury_type * ltype;
|
||||||
|
#endif
|
||||||
|
#ifndef AT_WTYPE
|
||||||
|
struct weapon_type * wtype;
|
||||||
|
#endif
|
||||||
} resource_type;
|
} resource_type;
|
||||||
extern resource_type * resourcetypes;
|
extern resource_type * resourcetypes;
|
||||||
extern const char* resourcename(const resource_type * rtype, int flags);
|
extern const char* resourcename(const resource_type * rtype, int flags);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: umlaut.c,v 1.3 2001/02/10 10:40:12 enno Exp $
|
* $Id: umlaut.c,v 1.4 2001/02/13 02:58:51 enno Exp $
|
||||||
* Eressea PB(E)M host Copyright (C) 1998-2000
|
* Eressea PB(E)M host Copyright (C) 1998-2000
|
||||||
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
* Christian Schlittchen (corwin@amber.kn-bremen.de)
|
||||||
* Katja Zedel (katze@felidae.kn-bremen.de)
|
* Katja Zedel (katze@felidae.kn-bremen.de)
|
||||||
|
@ -50,10 +50,12 @@ addtoken(tnode * root, const char* str, void * id)
|
||||||
root->id = id;
|
root->id = id;
|
||||||
root->leaf=1;
|
root->leaf=1;
|
||||||
} else {
|
} else {
|
||||||
char c = (char)tolower(*(unsigned char*)str);
|
tnode * tk;
|
||||||
int index = ((unsigned char)c) % 32;
|
int index, i = 0;
|
||||||
int i=0;
|
char c = *str;
|
||||||
tnode * tk = root->next[index];
|
if (c<'a' || c>'z') c = (char)tolower((unsigned char)c);
|
||||||
|
index = ((unsigned char)c) % 32;
|
||||||
|
tk = root->next[index];
|
||||||
if (root->id==E_TOK_NOMATCH) root->id = id;
|
if (root->id==E_TOK_NOMATCH) root->id = id;
|
||||||
while (tk && tk->c != c) tk = tk->nexthash;
|
while (tk && tk->c != c) tk = tk->nexthash;
|
||||||
if (!tk) {
|
if (!tk) {
|
||||||
|
@ -81,8 +83,11 @@ findtoken(tnode * tk, const char * str)
|
||||||
if(*str == 0) return E_TOK_NOMATCH;
|
if(*str == 0) return E_TOK_NOMATCH;
|
||||||
|
|
||||||
while (*str) {
|
while (*str) {
|
||||||
char c = (char)tolower(*str);
|
int index;
|
||||||
int index = ((unsigned char)c) % 32;
|
char c = *str;
|
||||||
|
if (c<'a' || c>'z') c = (char)tolower((unsigned char)c);
|
||||||
|
|
||||||
|
index = ((unsigned char)c) % 32;
|
||||||
tk = tk->next[index];
|
tk = tk->next[index];
|
||||||
while (tk && tk->c!=c) tk = tk->nexthash;
|
while (tk && tk->c!=c) tk = tk->nexthash;
|
||||||
++str;
|
++str;
|
||||||
|
|
|
@ -167,6 +167,10 @@ SOURCE=.\lists.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\log.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\rand.h
|
SOURCE=.\rand.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -228,6 +232,10 @@ SOURCE=.\lists.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\log.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\rand.c
|
SOURCE=.\rand.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue