if (element_info[i].change_page[j].can_change)
SET_PROPERTY(i, EP_CAN_CHANGE, TRUE);
+ /* ---------- HAS_ACTION ----------------------------------------------- */
+ SET_PROPERTY(i, EP_HAS_ACTION, FALSE); /* default: has no action */
+ for (j = 0; j < element_info[i].num_change_pages; j++)
+ if (element_info[i].change_page[j].has_action)
+ SET_PROPERTY(i, EP_HAS_ACTION, TRUE);
+
+ /* ---------- CAN_CHANGE_OR_HAS_ACTION --------------------------------- */
+ SET_PROPERTY(i, EP_CAN_CHANGE_OR_HAS_ACTION, (CAN_CHANGE(i) ||
+ HAS_ACTION(i)));
+
/* ---------- GFX_CRUMBLED --------------------------------------------- */
#if 1
SET_PROPERTY(i, EP_GFX_CRUMBLED,
options.verbose = TRUE;
}
+static void InitGameInfo()
+{
+ game.restart_level = FALSE;
+}
+
static void InitPlayerInfo()
{
int i;
for (i = 0; i < NUM_MUSIC_PREFIXES; i++)
music_id_prefix[i] = music_prefix_info[i].prefix;
- music_id_prefix[MAX_LEVELS] = NULL;
+ music_id_prefix[NUM_MUSIC_PREFIXES] = NULL;
for (i = 0; i < NUM_ACTIONS; i++)
action_id_suffix[i] = element_action_info[i].suffix;
artwork_current_identifier) != 0)
artwork_new_identifier = artwork_current_identifier;
+#if 1
+ *(ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type))= artwork_current_identifier;
+#else
+ /* newer versions of gcc do not like this anymore :-/ */
*(&(ARTWORK_CURRENT_IDENTIFIER(artwork, type))) = artwork_current_identifier;
+#endif
#if 0
if (type == ARTWORK_TYPE_GRAPHICS)
InitSetup();
+ InitGameInfo();
InitPlayerInfo();
InitArtworkInfo(); /* needed before loading gfx, sound & music */
InitArtworkConfig(); /* needed before forking sound child process */