{
int element = EL_CUSTOM_START + i;
- level.custom_element[i].use_gfx_element = FALSE;
- level.custom_element[i].gfx_element = EL_EMPTY_SPACE;
- level.custom_element[i].move_direction = 0;
+ element_info[element].use_gfx_element = FALSE;
+ element_info[element].gfx_element = EL_EMPTY_SPACE;
+
+ element_info[element].push_delay_fixed = 2; /* special default */
+ element_info[element].push_delay_random = 8; /* special default */
+ element_info[element].move_delay_fixed = 0;
+ element_info[element].move_delay_random = 0;
+
+ element_info[element].move_pattern = MV_ALL_DIRECTIONS;
+ element_info[element].move_direction_initial = MV_NO_MOVING;
+ element_info[element].move_stepsize = TILEX / 8;
for(x=0; x<3; x++)
for(y=0; y<3; y++)
- level.custom_element[i].content[x][y] = EL_EMPTY_SPACE;
+ element_info[element].content[x][y] = EL_EMPTY_SPACE;
- level.custom_element[i].change.events = CE_BITMASK_DEFAULT;
- level.custom_element[i].change.delay_fixed = 0;
- level.custom_element[i].change.delay_random = 0;
- level.custom_element[i].change.successor = EL_EMPTY_SPACE;
+ element_info[element].change.events = CE_BITMASK_DEFAULT;
+ element_info[element].change.delay_fixed = 0;
+ element_info[element].change.delay_random = 0;
+ element_info[element].change.successor = EL_EMPTY_SPACE;
/* start with no properties at all */
for (j=0; j < NUM_EP_BITFIELDS; j++)
{
int element = getFile16BitBE(file);
int custom_element_successor = getFile16BitBE(file);
- int i = element - EL_CUSTOM_START;
if (IS_CUSTOM_ELEMENT(element))
- level->custom_element[i].change.successor = custom_element_successor;
+ element_info[element].change.successor = custom_element_successor;
else
Error(ERR_WARN, "invalid custom element number %d", element);
}
{
int element = EL_CUSTOM_START + i;
- if (level->custom_element[i].change.successor != EL_EMPTY_SPACE)
+ if (element_info[element].change.successor != EL_EMPTY_SPACE)
{
if (check < num_changed_custom_elements)
{
putFile16BitBE(file, element);
- putFile16BitBE(file, level->custom_element[i].change.successor);
+ putFile16BitBE(file, element_info[element].change.successor);
}
check++;
/* check for non-standard custom elements and calculate "CUS2" chunk size */
for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
- if (level.custom_element[i].change.successor != EL_EMPTY_SPACE)
+ if (element_info[EL_CUSTOM_START + i].change.successor != EL_EMPTY_SPACE)
num_changed_custom_elements2++;
putFileChunkBE(file, "RND1", CHUNK_SIZE_UNDEFINED);
void DumpLevel(struct LevelInfo *level)
{
printf_line("-", 79);
- printf("Level xxx (file version %06d, game version %06d)\n",
+ printf("Level xxx (file version %08d, game version %08d)\n",
level->file_version, level->game_version);
printf_line("-", 79);
fclose(file);
tape.length_seconds = GetTapeLength();
+
+#if 0
+ printf("tape version: %d\n", tape.game_version);
+#endif
}
void LoadTape(int level_nr)
}
printf_line("-", 79);
- printf("Tape of Level %03d (file version %06d, game version %06d)\n",
+ printf("Tape of Level %03d (file version %08d, game version %08d)\n",
tape->level_nr, tape->file_version, tape->game_version);
printf("Level series identifier: '%s'\n", tape->level_identifier);
printf_line("-", 79);
if ((setup_file_hash = loadSetupFileHash(filename)) == NULL)
return;
- /* special case: initialize with default values that may be overwrittem */
+ /* special case: initialize with default values that may be overwritten */
for (i=0; i < NUM_SPECIAL_GFX_ARGS; i++)
{
char *value_x = getHashEntry(setup_file_hash, "menu.draw_xoffset");
char *value_y = getHashEntry(setup_file_hash, "menu.draw_yoffset");
+ char *list_size = getHashEntry(setup_file_hash, "menu.list_size");
if (value_x != NULL)
menu.draw_xoffset[i] = get_integer_from_string(value_x);
if (value_y != NULL)
menu.draw_yoffset[i] = get_integer_from_string(value_y);
+ if (list_size != NULL)
+ menu.list_size[i] = get_integer_from_string(list_size);
}
/* read (and overwrite with) values that may be specified in config file */