[Add] Factions are now able to have long names.
This commit is contained in:
parent
9d43435d4a
commit
a9c57f2cab
@ -15,7 +15,8 @@
|
|||||||
#define PLAYER_ALLY 70 /* Above this, player is considered ally. */
|
#define PLAYER_ALLY 70 /* Above this, player is considered ally. */
|
||||||
|
|
||||||
typedef struct Faction_ {
|
typedef struct Faction_ {
|
||||||
char* name;
|
char* name; /* Normal name. */
|
||||||
|
char* longname; /* Long name. */
|
||||||
|
|
||||||
/* Enemies. */
|
/* Enemies. */
|
||||||
int* enemies;
|
int* enemies;
|
||||||
@ -58,6 +59,13 @@ char* faction_name(int f) {
|
|||||||
return faction_stack[f].name;
|
return faction_stack[f].name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the faction's long name (formal). */
|
||||||
|
char* faction_longname(int f) {
|
||||||
|
if(faction_stack[f].longname != NULL)
|
||||||
|
return faction_stack[f].longname;
|
||||||
|
return faction_stack[f].name;
|
||||||
|
}
|
||||||
|
|
||||||
/* Modify the player's standing with a faction. */
|
/* Modify the player's standing with a faction. */
|
||||||
void faction_modPlayer(int f, int mod) {
|
void faction_modPlayer(int f, int mod) {
|
||||||
if(faction_isFaction(f)) {
|
if(faction_isFaction(f)) {
|
||||||
@ -247,7 +255,9 @@ static Faction* faction_parse(xmlNodePtr parent) {
|
|||||||
if(xml_isNode(node, "player")) {
|
if(xml_isNode(node, "player")) {
|
||||||
tmp->player = xml_getInt(node);
|
tmp->player = xml_getInt(node);
|
||||||
player = 1;
|
player = 1;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
xmlr_strd(node, "longname", tmp->longname);
|
||||||
} while(xml_nextNode(node));
|
} while(xml_nextNode(node));
|
||||||
|
|
||||||
if(player == 0) DEBUG("Faction '%s' missing player tag", tmp->name);
|
if(player == 0) DEBUG("Faction '%s' missing player tag", tmp->name);
|
||||||
@ -319,6 +329,7 @@ int factions_load(void) {
|
|||||||
/* Player faction is hardcoded. */
|
/* Player faction is hardcoded. */
|
||||||
faction_stack = malloc(sizeof(Faction));
|
faction_stack = malloc(sizeof(Faction));
|
||||||
faction_stack[0].name = strdup("Player");
|
faction_stack[0].name = strdup("Player");
|
||||||
|
faction_stack[0].longname = NULL;
|
||||||
faction_stack[0].nallies = 0;
|
faction_stack[0].nallies = 0;
|
||||||
faction_stack[0].nenemies = 0;
|
faction_stack[0].nenemies = 0;
|
||||||
faction_nstack++;
|
faction_nstack++;
|
||||||
@ -356,8 +367,9 @@ void factions_free(void) {
|
|||||||
/* Free factions. */
|
/* Free factions. */
|
||||||
for(i = 0; i < faction_nstack; i++) {
|
for(i = 0; i < faction_nstack; i++) {
|
||||||
free(faction_stack[i].name);
|
free(faction_stack[i].name);
|
||||||
if(faction_stack[i].nallies > 0) free(faction_stack[i].allies);
|
if(faction_stack[i].longname != NULL) free(faction_stack[i].longname);
|
||||||
if(faction_stack[i].nenemies > 0) free(faction_stack[i].enemies);
|
if(faction_stack[i].nallies > 0) free(faction_stack[i].allies);
|
||||||
|
if(faction_stack[i].nenemies > 0) free(faction_stack[i].enemies);
|
||||||
}
|
}
|
||||||
free(faction_stack);
|
free(faction_stack);
|
||||||
faction_stack = NULL;
|
faction_stack = NULL;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
/* Get stuff. */
|
/* Get stuff. */
|
||||||
int faction_get(const char* name);
|
int faction_get(const char* name);
|
||||||
char* faction_name(int f);
|
char* faction_name(int f);
|
||||||
|
char* faction_longname(int f);
|
||||||
|
|
||||||
/* Player stuff. */
|
/* Player stuff. */
|
||||||
void faction_modPlayer(int f, int mod);
|
void faction_modPlayer(int f, int mod);
|
||||||
|
Loading…
Reference in New Issue
Block a user