projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed filename string handling for level file info structure
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index 151c8079966f31384daa580d6a82119bb04267b6..b590641afc20b05848461be6327ae59081e52da5 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-1855,8
+1855,9
@@
static void setFileInfoToDefaults(struct LevelFileInfo *level_file_info)
level_file_info->nr = 0;
level_file_info->type = LEVEL_FILE_TYPE_UNKNOWN;
level_file_info->packed = FALSE;
level_file_info->nr = 0;
level_file_info->type = LEVEL_FILE_TYPE_UNKNOWN;
level_file_info->packed = FALSE;
- level_file_info->basename = NULL;
- level_file_info->filename = NULL;
+
+ setString(&level_file_info->basename, NULL);
+ setString(&level_file_info->filename, NULL);
}
int getMappedElement_SB(int, boolean);
}
int getMappedElement_SB(int, boolean);
@@
-2088,8
+2089,9
@@
static void setLevelFileInfo_SingleLevelFilename(struct LevelFileInfo *lfi,
{
lfi->type = type;
lfi->packed = FALSE;
{
lfi->type = type;
lfi->packed = FALSE;
- lfi->basename = getSingleLevelBasename(lfi->nr, lfi->type);
- lfi->filename = getLevelFilenameFromBasename(lfi->basename);
+
+ setString(&lfi->basename, getSingleLevelBasename(lfi->nr, lfi->type));
+ setString(&lfi->filename, getLevelFilenameFromBasename(lfi->basename));
}
#endif
}
#endif
@@
-2105,8
+2107,9
@@
static void setLevelFileInfo_FormatLevelFilename(struct LevelFileInfo *lfi,
lfi->type = type;
lfi->packed = FALSE;
lfi->type = type;
lfi->packed = FALSE;
- lfi->basename = basename;
- lfi->filename = getLevelFilenameFromBasename(lfi->basename);
+
+ setString(&lfi->basename, basename);
+ setString(&lfi->filename, getLevelFilenameFromBasename(lfi->basename));
}
static void setLevelFileInfo_PackedLevelFilename(struct LevelFileInfo *lfi,
}
static void setLevelFileInfo_PackedLevelFilename(struct LevelFileInfo *lfi,
@@
-2114,8
+2117,9
@@
static void setLevelFileInfo_PackedLevelFilename(struct LevelFileInfo *lfi,
{
lfi->type = type;
lfi->packed = TRUE;
{
lfi->type = type;
lfi->packed = TRUE;
- lfi->basename = getPackedLevelBasename(lfi->type);
- lfi->filename = getLevelFilenameFromBasename(lfi->basename);
+
+ setString(&lfi->basename, getPackedLevelBasename(lfi->type));
+ setString(&lfi->filename, getLevelFilenameFromBasename(lfi->basename));
}
static int getFiletypeFromID(char *filetype_id)
}
static int getFiletypeFromID(char *filetype_id)
@@
-2187,7
+2191,7
@@
static void determineLevelFileInfo_Filename(struct LevelFileInfo *lfi)
getSingleLevelBasename(-1));
/* replace local level template filename with global template filename */
getSingleLevelBasename(-1));
/* replace local level template filename with global template filename */
-
lfi->filename = getGlobalLevelTemplateFilename(
);
+
setString(&lfi->filename, getGlobalLevelTemplateFilename()
);
/* no fallback if template file not existing */
return;
/* no fallback if template file not existing */
return;
@@
-6201,12
+6205,13
@@
void LoadLevelFromFilename(struct LevelInfo *level, char *filename)
level_file_info.nr = 0; /* unknown level number */
level_file_info.type = LEVEL_FILE_TYPE_RND; /* no others supported yet */
level_file_info.nr = 0; /* unknown level number */
level_file_info.type = LEVEL_FILE_TYPE_RND; /* no others supported yet */
- level_file_info.filename = filename;
+
+ setString(&level_file_info.filename, filename);
LoadLevelFromFileInfo(level, &level_file_info, FALSE);
}
LoadLevelFromFileInfo(level, &level_file_info, FALSE);
}
-static void LoadLevel_InitVersion(struct LevelInfo *level
, char *filename
)
+static void LoadLevel_InitVersion(struct LevelInfo *level)
{
int i, j;
{
int i, j;
@@
-6526,7
+6531,7
@@
static void LoadLevel_InitCustomElements(struct LevelInfo *level)
}
}
}
}
-static void LoadLevel_InitElements(struct LevelInfo *level
, char *filename
)
+static void LoadLevel_InitElements(struct LevelInfo *level)
{
LoadLevel_InitStandardElements(level);
{
LoadLevel_InitStandardElements(level);
@@
-6538,7
+6543,7
@@
static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
InitElementPropertiesGfxElement();
}
InitElementPropertiesGfxElement();
}
-static void LoadLevel_InitPlayfield(struct LevelInfo *level
, char *filename
)
+static void LoadLevel_InitPlayfield(struct LevelInfo *level)
{
int x, y;
{
int x, y;
@@
-6570,7
+6575,7
@@
static void LoadLevel_InitPlayfield(struct LevelInfo *level, char *filename)
SetBorderElement();
}
SetBorderElement();
}
-static void LoadLevel_InitNativeEngines(struct LevelInfo *level
,char *filename
)
+static void LoadLevel_InitNativeEngines(struct LevelInfo *level)
{
struct LevelFileInfo *level_file_info = &level->file_info;
{
struct LevelFileInfo *level_file_info = &level->file_info;
@@
-6580,36
+6585,37
@@
static void LoadLevel_InitNativeEngines(struct LevelInfo *level,char *filename)
void LoadLevelTemplate(int nr)
{
void LoadLevelTemplate(int nr)
{
- char *filename;
+ if (!fileExists(getGlobalLevelTemplateFilename()))
+ {
+ Error(ERR_WARN, "no level template found for this level");
+
+ return;
+ }
setLevelFileInfo(&level_template.file_info, nr);
setLevelFileInfo(&level_template.file_info, nr);
- filename = level_template.file_info.filename;
LoadLevelFromFileInfo(&level_template, &level_template.file_info, FALSE);
LoadLevelFromFileInfo(&level_template, &level_template.file_info, FALSE);
- LoadLevel_InitVersion(&level_template
, filename
);
- LoadLevel_InitElements(&level_template
, filename
);
+ LoadLevel_InitVersion(&level_template);
+ LoadLevel_InitElements(&level_template);
ActivateLevelTemplate();
}
void LoadLevel(int nr)
{
ActivateLevelTemplate();
}
void LoadLevel(int nr)
{
- char *filename;
-
setLevelFileInfo(&level.file_info, nr);
setLevelFileInfo(&level.file_info, nr);
- filename = level.file_info.filename;
LoadLevelFromFileInfo(&level, &level.file_info, FALSE);
if (level.use_custom_template)
LoadLevelTemplate(-1);
LoadLevelFromFileInfo(&level, &level.file_info, FALSE);
if (level.use_custom_template)
LoadLevelTemplate(-1);
- LoadLevel_InitVersion(&level
, filename
);
- LoadLevel_InitElements(&level
, filename
);
- LoadLevel_InitPlayfield(&level
, filename
);
+ LoadLevel_InitVersion(&level);
+ LoadLevel_InitElements(&level);
+ LoadLevel_InitPlayfield(&level);
- LoadLevel_InitNativeEngines(&level
, filename
);
+ LoadLevel_InitNativeEngines(&level);
}
void LoadLevelInfoOnly(int nr)
}
void LoadLevelInfoOnly(int nr)