Go to the documentation of this file.
76 .item_power_factor = 1.0,
83 .no_player_stealing = 1,
84 .create_home_portals = 0,
85 .personalized_blessings = 1,
86 .pk_max_experience = 5000000,
87 .pk_max_experience_percent = 10,
88 .starting_stat_min = 3,
89 .starting_stat_max = 18,
90 .starting_stat_points = 85,
91 .roll_stat_points = 115,
93 .special_break_map = 1,
95 .ignore_assets_errors = 0,
96 .archetypes_tracker = NULL,
153 while (fgets(tmpbuf,
MAX_BUF-1, fp)) {
154 if (tmpbuf[0] ==
'#')
158 tmpbuf[strlen(tmpbuf)-1] = 0;
161 }
else if (online == 1) {
163 }
else if (online == 2) {
221 LOG(
llevError,
"Assets errors, please fix and restart.\n");
236 cp = getenv(
"CROSSFIRE_LIBDIR");
239 cp = getenv(
"CROSSFIRE_LOCALDIR");
242 cp = getenv(
"CROSSFIRE_PLAYERDIR");
245 cp = getenv(
"CROSSFIRE_MAPDIR");
248 cp = getenv(
"CROSSFIRE_UNIQUEDIR");
251 cp = getenv(
"CROSSFIRE_TEMPLATEDIR");
254 cp = getenv(
"CROSSFIRE_TMPDIR");
277 setvbuf(
logfile, NULL, _IOLBF, 0);
372 LOG(
llevError,
"Unable to continue without initial map.\n");
377 LOG(
llevError,
"Legacy map must have a 'slaying' field!\n");
382 LOG(
llevError,
"Can not find object of type MAP subtype MAP_TYPE_DEFAULT.\n");
383 LOG(
llevError,
"Are the archetype files up to date? Can not continue.\n");
412 static int has_been_done = 0;
428 if (fscanf(fp,
"%lu", &
todtick) == 1) {
432 LOG(
llevError,
"Couldn't parse todtick, using default value 0\n");
448 int mess = -1,
level;
449 int mode = 0,
total = 0;
453 if (*
buf ==
'#' || *
buf ==
'\0')
462 cp =
buf + strspn(
buf,
" \t");
464 if (strncmp(cp,
"TYPE:", 5) == 0) {
465 p = strtok(
buf,
":");
466 p = strtok(NULL,
":");
482 p = strtok(
buf,
"=");
484 p = strtok(NULL,
"=");
492 }
else if (mode == 2) {
493 p = strtok(
buf,
"=");
495 p = strtok(NULL,
"=");
503 }
else if (mode == 3) {
504 p = strtok(
buf,
"=");
506 p = strtok(NULL,
"=");
void init_hash_table(void)
mapstruct * ready_map_name(const char *name, int flags)
EXTERN long nrofallowedstr
#define DEATH_PENALTY_LEVEL
#define SPELL_ENCUMBRANCE
sstring add_string(const char *str)
static void init_environ(void)
size_t assets_dump_undefined()
EXTERN artifactlist * first_artifactlist
char * bufferreader_next_line(BufferReader *br)
void clear_friendly_list(void)
EXTERN char first_map_path[MAX_BUF]
void free_experience(void)
EXTERN mapstruct * first_map
EXTERN archetype * amulet_arch
const EXTERN char * undead_name
#define DEATH_PENALTY_RATIO
#define ARMOR_SPEED_IMPROVEMENT
int of_close(OutputFile *of)
#define SPELLPOINT_LEVEL_DEPEND
static void init_clocks(void)
void fatal(enum fatal_error err)
EXTERN attackmess_t attack_mess[NROFATTACKMESS][MAXATTACKMESS]
EXTERN player * first_player
#define ARMOR_SPEED_LINEAR
#define ARMOR_WEIGHT_REDUCTION
#define ARMOR_MAX_ENCHANT
void init_stats(int reload)
EXTERN sstring blocks_prayer
void delete_map(mapstruct *m)
size_t strlcpy(char *dst, const char *src, size_t size)
struct Statistics statistics
#define FREE_AND_CLEAR_STR(xyz)
#define ARMOR_WEIGHT_LINEAR
#define STAT_LOSS_ON_DEATH
#define SET_FRIENDLY_FIRE
const char *const spellpathnames[NRSPELLPATHS]
#define FREE_AND_CLEAR(xyz)
void LOG(LogLevel logLevel, const char *format,...)
FILE * of_open(OutputFile *of, const char *fname)
void init_attackmess(BufferReader *reader, const char *filename)
#define RESET_LOCATION_TIME
#define SPELL_FAILURE_EFFECTS
#define BALANCED_STAT_LOSS
#define PERMANENT_EXPERIENCE_RATIO
archetype * get_archetype_by_type_subtype(int type, int subtype)
EXTERN char first_map_ext_path[MAX_BUF]
EXTERN long trying_emergency_save
EXTERN long nrofartifacts
static void init_defaults(void)
static void init_emergency_mappath(void)
void assets_collect(const char *datadir, int what)
#define EMERGENCY_MAPPATH
EXTERN archetype * ring_arch
void init_experience(void)
static void init_dynamic(void)
EXTERN region * first_region
void write_todclock(void)