appearance is something only items have, so move it to item_type

This commit is contained in:
Enno Rehling 2014-06-29 17:35:37 -07:00
parent 2a00301949
commit 11a264742b
2 changed files with 7 additions and 7 deletions

View File

@ -139,8 +139,8 @@ const char *resourcename(const resource_type * rtype, int flags)
if (flags & NMF_PLURAL) if (flags & NMF_PLURAL)
i = 1; i = 1;
if (flags & NMF_APPEARANCE && rtype->_appearance[i]) { if (flags & NMF_APPEARANCE && rtype->itype && rtype->itype->_appearance[i]) {
return rtype->_appearance[i]; return rtype->itype->_appearance[i];
} }
return rtype->_name[i]; return rtype->_name[i];
} }
@ -342,8 +342,8 @@ potion_type *new_potiontype(item_type * itype, int level)
void it_set_appearance(item_type *itype, const char *appearance) { void it_set_appearance(item_type *itype, const char *appearance) {
assert(itype && itype->rtype); assert(itype && itype->rtype);
itype->rtype->_appearance[0] = _strdup(appearance); itype->_appearance[0] = _strdup(appearance);
itype->rtype->_appearance[1] = appearance ? itype->_appearance[1] = appearance ?
strcat(strcpy((char *)malloc(strlen((char *)appearance) + 3), (char *)appearance), "_p") : 0; strcat(strcpy((char *)malloc(strlen((char *)appearance) + 3), (char *)appearance), "_p") : 0;
} }
@ -1172,6 +1172,8 @@ int free_itype_cb(const void * match, const void * key, size_t keylen, void *cbd
item_type *itype; item_type *itype;
cb_get_kv(match, &itype, sizeof(itype)); cb_get_kv(match, &itype, sizeof(itype));
free(itype->construction); free(itype->construction);
free(itype->_appearance[0]);
free(itype->_appearance[1]);
free(itype); free(itype);
return 0; return 0;
} }
@ -1181,8 +1183,6 @@ int free_rtype_cb(const void * match, const void * key, size_t keylen, void *cbd
cb_get_kv(match, &rtype, sizeof(rtype)); cb_get_kv(match, &rtype, sizeof(rtype));
free(rtype->_name[0]); free(rtype->_name[0]);
free(rtype->_name[1]); free(rtype->_name[1]);
free(rtype->_appearance[0]);
free(rtype->_appearance[1]);
free(rtype); free(rtype);
return 0; return 0;
} }

View File

@ -65,7 +65,6 @@ extern "C" {
typedef struct resource_type { typedef struct resource_type {
/* --- constants --- */ /* --- constants --- */
char *_name[2]; /* wie es heißt */ char *_name[2]; /* wie es heißt */
char *_appearance[2]; /* wie es für andere aussieht */
unsigned int flags; unsigned int flags;
/* --- functions --- */ /* --- functions --- */
rtype_uchange uchange; rtype_uchange uchange;
@ -132,6 +131,7 @@ extern "C" {
int weight; int weight;
int capacity; int capacity;
struct construction *construction; struct construction *construction;
char *_appearance[2]; /* wie es für andere aussieht */
/* --- functions --- */ /* --- functions --- */
bool(*canuse) (const struct unit * user, bool(*canuse) (const struct unit * user,
const struct item_type * itype); const struct item_type * itype);