projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added reading unconfigured music files from already existing list
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index ef38d17026b1277b953e48e0a19997601f148c50..ee42c99071149d56b57ac3293f64ed5b28032cfa 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-114,7
+114,7
@@
CONF_CONTENT_NUM_BYTES : 1)
#define CONF_ELEMENT_BYTE_POS(i) ((i) * CONF_ELEMENT_NUM_BYTES)
CONF_CONTENT_NUM_BYTES : 1)
#define CONF_ELEMENT_BYTE_POS(i) ((i) * CONF_ELEMENT_NUM_BYTES)
-#define CONF_ELEMENTS_ELEMENT(b,
i) ((b[CONF_ELEMENT_BYTE_POS(i)] << 8) |
\
+#define CONF_ELEMENTS_ELEMENT(b,
i) ((b[CONF_ELEMENT_BYTE_POS(i)] << 8) |
\
(b[CONF_ELEMENT_BYTE_POS(i) + 1]))
#define CONF_CONTENT_ELEMENT_POS(c,x,y) ((c) * CONF_CONTENT_NUM_ELEMENTS + \
(b[CONF_ELEMENT_BYTE_POS(i) + 1]))
#define CONF_CONTENT_ELEMENT_POS(c,x,y) ((c) * CONF_CONTENT_NUM_ELEMENTS + \
@@
-921,6
+921,16
@@
static struct LevelFileConfigInfo chunk_config_ELEM[] =
&li.mm_ball_content, EL_EMPTY, NULL,
&li.num_mm_ball_contents, 8, MAX_MM_BALL_CONTENTS
},
&li.mm_ball_content, EL_EMPTY, NULL,
&li.num_mm_ball_contents, 8, MAX_MM_BALL_CONTENTS
},
+ {
+ EL_MM_GRAY_BALL, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
+ &li.rotate_mm_ball_content, TRUE
+ },
+ {
+ EL_MM_GRAY_BALL, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
+ &li.explode_mm_ball, FALSE
+ },
{
EL_MM_STEEL_BLOCK, -1,
{
EL_MM_STEEL_BLOCK, -1,
@@
-3703,6
+3713,7
@@
static void CopyNativeLevel_RND_to_EM(struct LevelInfo *level)
cav->lenses_time = level->lenses_time;
cav->magnify_time = level->magnify_time;
cav->lenses_time = level->lenses_time;
cav->magnify_time = level->magnify_time;
+ cav->wind_time = 9999;
cav->wind_direction =
map_direction_RND_to_EM(level->wind_direction_initial);
cav->wind_direction =
map_direction_RND_to_EM(level->wind_direction_initial);
@@
-4186,6
+4197,8
@@
static void CopyNativeLevel_RND_to_MM(struct LevelInfo *level)
level_mm->num_ball_contents = level->num_mm_ball_contents;
level_mm->ball_choice_mode = level->mm_ball_choice_mode;
level_mm->num_ball_contents = level->num_mm_ball_contents;
level_mm->ball_choice_mode = level->mm_ball_choice_mode;
+ level_mm->rotate_ball_content = level->rotate_mm_ball_content;
+ level_mm->explode_ball = level->explode_mm_ball;
for (i = 0; i < level->num_mm_ball_contents; i++)
level_mm->ball_content[i] =
for (i = 0; i < level->num_mm_ball_contents; i++)
level_mm->ball_content[i] =
@@
-4237,6
+4250,8
@@
static void CopyNativeLevel_MM_to_RND(struct LevelInfo *level)
level->num_mm_ball_contents = level_mm->num_ball_contents;
level->mm_ball_choice_mode = level_mm->ball_choice_mode;
level->num_mm_ball_contents = level_mm->num_ball_contents;
level->mm_ball_choice_mode = level_mm->ball_choice_mode;
+ level->rotate_mm_ball_content = level_mm->rotate_ball_content;
+ level->explode_mm_ball = level_mm->explode_ball;
for (i = 0; i < level->num_mm_ball_contents; i++)
level->mm_ball_content[i] =
for (i = 0; i < level->num_mm_ball_contents; i++)
level->mm_ball_content[i] =
@@
-10371,6
+10386,14
@@
static struct TokenInfo options_setup_tokens[] =
TYPE_BOOLEAN,
&setup.options.verbose, "options.verbose"
},
TYPE_BOOLEAN,
&setup.options.verbose, "options.verbose"
},
+ {
+ TYPE_BOOLEAN,
+ &setup.options.debug, "options.debug"
+ },
+ {
+ TYPE_STRING,
+ &setup.options.debug_mode, "options.debug_mode"
+ },
};
static void setSetupInfoToDefaults(struct SetupInfo *si)
};
static void setSetupInfoToDefaults(struct SetupInfo *si)
@@
-10642,6
+10665,8
@@
static void setSetupInfoToDefaults(struct SetupInfo *si)
si->debug.xsn_percent = 0;
si->options.verbose = FALSE;
si->debug.xsn_percent = 0;
si->options.verbose = FALSE;
+ si->options.debug = FALSE;
+ si->options.debug_mode = getStringCopy(ARG_UNDEFINED_STRING);
#if defined(PLATFORM_ANDROID)
si->fullscreen = TRUE;
#if defined(PLATFORM_ANDROID)
si->fullscreen = TRUE;
@@
-12085,7
+12110,7
@@
static void InitMenuDesignSettings_SpecialPostProcessing(void)
vp_playfield->width = MIN(vp_playfield->width, vp_playfield->max_width);
if (vp_playfield->max_height != -1)
vp_playfield->width = MIN(vp_playfield->width, vp_playfield->max_width);
if (vp_playfield->max_height != -1)
- vp_playfield->height = MIN(vp_playfield->height,vp_playfield->max_height);
+ vp_playfield->height = MIN(vp_playfield->height,
vp_playfield->max_height);
// adjust playfield position according to specified alignment
// adjust playfield position according to specified alignment
@@
-12454,7
+12479,9
@@
static void LoadMenuDesignSettingsFromFilename(char *filename)
{
{ "menu.draw_xoffset.INFO", &menu.draw_xoffset_info[i] },
{ "menu.draw_yoffset.INFO", &menu.draw_yoffset_info[i] },
{
{ "menu.draw_xoffset.INFO", &menu.draw_xoffset_info[i] },
{ "menu.draw_yoffset.INFO", &menu.draw_yoffset_info[i] },
- { "menu.list_size.INFO", &menu.list_size_info[i] }
+ { "menu.list_size.INFO", &menu.list_size_info[i] },
+ { "menu.list_entry_size.INFO", &menu.list_entry_size_info[i] },
+ { "menu.tile_size.INFO", &menu.tile_size_info[i] }
};
for (j = 0; j < ARRAY_SIZE(menu_config); j++)
};
for (j = 0; j < ARRAY_SIZE(menu_config); j++)
@@
-12494,6
+12521,7
@@
static void LoadMenuDesignSettingsFromFilename(char *filename)
struct TokenIntPtrInfo menu_config[] =
{
{ "menu.left_spacing.INFO", &menu.left_spacing_info[i] },
struct TokenIntPtrInfo menu_config[] =
{
{ "menu.left_spacing.INFO", &menu.left_spacing_info[i] },
+ { "menu.middle_spacing.INFO", &menu.middle_spacing_info[i] },
{ "menu.right_spacing.INFO", &menu.right_spacing_info[i] },
{ "menu.top_spacing.INFO", &menu.top_spacing_info[i] },
{ "menu.bottom_spacing.INFO", &menu.bottom_spacing_info[i] },
{ "menu.right_spacing.INFO", &menu.right_spacing_info[i] },
{ "menu.top_spacing.INFO", &menu.top_spacing_info[i] },
{ "menu.bottom_spacing.INFO", &menu.bottom_spacing_info[i] },
@@
-12909,14
+12937,22
@@
static boolean sound_info_listed(struct MusicFileInfo *list, char *basename)
return music_info_listed_ext(list, basename, TRUE);
}
return music_info_listed_ext(list, basename, TRUE);
}
+static boolean checkLevelSetHasMusic_NoConf(void)
+{
+ int i;
+
+ for (i = leveldir_current->first_level;
+ i <= leveldir_current->last_level; i++)
+ if (levelset.music[i] == MUS_UNDEFINED)
+ return TRUE;
+
+ return FALSE;
+}
+
void LoadMusicInfo(void)
{
void LoadMusicInfo(void)
{
- char *music_directory = getCustomMusicDirectory_NoConf();
int num_music = getMusicListSize();
int num_music = getMusicListSize();
- int num_music_noconf = 0;
int num_sounds = getSoundListSize();
int num_sounds = getSoundListSize();
- Directory *dir;
- DirectoryEntry *dir_entry;
struct FileInfo *music, *sound;
struct MusicFileInfo *next, **new;
int i;
struct FileInfo *music, *sound;
struct MusicFileInfo *next, **new;
int i;
@@
-12944,6
+12980,7
@@
void LoadMusicInfo(void)
new = &music_file_info;
new = &music_file_info;
+ // get music file info for all configured music files
for (i = 0; i < num_music; i++)
{
music = getMusicListEntry(i);
for (i = 0; i < num_music; i++)
{
music = getMusicListEntry(i);
@@
-12967,53
+13004,31
@@
void LoadMusicInfo(void)
}
}
}
}
- if ((dir = openDirectory(music_directory)) == NULL)
- {
- Warn("cannot read music directory '%s'", music_directory);
-
- return;
- }
-
- while ((dir_entry = readDirectory(dir)) != NULL) // loop all entries
+ // if some levels have no game music configured, use unconfigured music
+ if (checkLevelSetHasMusic_NoConf())
{
{
- char *basename = dir_entry->basename;
- boolean music_already_used = FALSE;
- int i;
+ int num_music_noconf = getMusicListSize_NoConf();
- //
skip all music files that are configured in music config file
- for (i = 0; i < num_music; i++)
+ //
get music file info for all unconfigured music files
+ for (i = 0; i < num_music
_noconf
; i++)
{
{
- music = getMusicListEntry(i);
+ int music_nr_noconf = MAP_NOCONF_MUSIC(i);
+ char *basename = getMusicInfoEntryFilename(music_nr_noconf);
- if (
music->fil
ename == NULL)
+ if (
bas
ename == NULL)
continue;
continue;
- if (
strEqual(basename, music->fil
ename))
+ if (
!music_info_listed(music_file_info, bas
ename))
{
{
- music_already_used = TRUE;
- break;
- }
- }
+ *new = get_music_file_info(basename, music_nr_noconf);
- if (music_already_used)
- continue;
-
- if (!FileIsMusic(dir_entry->filename))
- continue;
-
- if (!music_info_listed(music_file_info, basename))
- {
- *new = get_music_file_info(basename, MAP_NOCONF_MUSIC(num_music_noconf));
-
- if (*new != NULL)
- new = &(*new)->next;
+ if (*new != NULL)
+ new = &(*new)->next;
+ }
}
}
-
- num_music_noconf++;
}
}
- closeDirectory(dir);
-
+ // get sound file info for all configured sound files
for (i = 0; i < num_sounds; i++)
{
sound = getSoundListEntry(i);
for (i = 0; i < num_sounds; i++)
{
sound = getSoundListEntry(i);