X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=e56759e05cedd772759e79d4ea2670b08de0092d;hb=240269d614d12d0612cc0764589e6798378e2b8c;hp=be07f7201127b37cc837be9e6653ef3f1f993e1f;hpb=1e196be4c0a2f1edf823b3a0e5a14a146317686e;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index be07f720..e56759e0 100644 --- a/src/files.c +++ b/src/files.c @@ -82,8 +82,32 @@ #define LEVELCLASS_CONTRIBUTION_END 299 #define LEVELCLASS_USER_START 300 #define LEVELCLASS_USER_END 399 + +#define LEVELCLASS_TUTORIAL LEVELCLASS_TUTORIAL_START +#define LEVELCLASS_CLASSICS LEVELCLASS_CLASSICS_START +#define LEVELCLASS_CONTRIBUTION LEVELCLASS_CONTRIBUTION_START +#define LEVELCLASS_USER LEVELCLASS_USER_START #define LEVELCLASS_UNDEFINED 999 +#define IS_LEVELCLASS_TUTORIAL(n) \ + (leveldir[n].sort_priority >= LEVELCLASS_TUTORIAL_START && \ + leveldir[n].sort_priority <= LEVELCLASS_TUTORIAL_END) +#define IS_LEVELCLASS_CLASSICS(n) \ + (leveldir[n].sort_priority >= LEVELCLASS_CLASSICS_START && \ + leveldir[n].sort_priority <= LEVELCLASS_CLASSICS_END) +#define IS_LEVELCLASS_CONTRIBUTION(n) \ + (leveldir[n].sort_priority >= LEVELCLASS_CONTRIBUTION_START && \ + leveldir[n].sort_priority <= LEVELCLASS_CONTRIBUTION_END) +#define IS_LEVELCLASS_USER(n) \ + (leveldir[n].sort_priority >= LEVELCLASS_USER_START && \ + leveldir[n].sort_priority <= LEVELCLASS_USER_END) + +#define LEVELCLASS(n) (IS_LEVELCLASS_TUTORIAL(n) ? LEVELCLASS_TUTORIAL : \ + IS_LEVELCLASS_CLASSICS(n) ? LEVELCLASS_CLASSICS : \ + IS_LEVELCLASS_CONTRIBUTION(n) ? LEVELCLASS_CONTRIBUTION : \ + IS_LEVELCLASS_USER(n) ? LEVELCLASS_USER : \ + LEVELCLASS_UNDEFINED) + static void SaveUserLevelInfo(); /* for 'InitUserLevelDir()' */ static char *getSetupLine(char *, int); /* for 'SaveUserLevelInfo()' */ @@ -267,6 +291,7 @@ static void setLevelInfoToDefaults() level.high_speed = FALSE; strcpy(level.name, "Nameless Level"); + strcpy(level.author, "Anonymous"); for(i=0; i= LEVELCLASS_CONTRIBUTION_START && - leveldir[leveldir_nr].sort_priority <= LEVELCLASS_CONTRIBUTION_END) + /* determine level author */ + if (leveldir[leveldir_nr].author) { - Error(ERR_WARN, "level file '%s' has version number 1.0", filename); - Error(ERR_WARN, "using high speed movement for player"); - level.high_speed = TRUE; + strncpy(level.author, leveldir[leveldir_nr].author, + MAX_LEVEL_AUTHOR_LEN - 1); + level.author[MAX_LEVEL_AUTHOR_LEN - 1] = '\0'; } - - /* determine border element */ - BorderElement = EL_LEERRAUM; - for(y=0; yname = getStringCopy("non-existing"); + ldi->author = NULL; ldi->levels = 0; ldi->first_level = 0; ldi->sort_priority = LEVELCLASS_UNDEFINED; /* default: least priority */