X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=fa807e8f323dd0161959467fb6553ca5a703da52;hb=90cd4dc88df3f891ecaa0ee9b9010fe432154503;hp=fd7cfcf4b78e4e143f7a79e60970e2954e6be8b9;hpb=76966ac62fb1c36c12b64d60915afcbe149635ff;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index fd7cfcf4..fa807e8f 100644 --- a/src/files.c +++ b/src/files.c @@ -1733,6 +1733,9 @@ static void setLevelInfoToDefaults_Level(struct LevelInfo *level) // set all bug compatibility flags to "false" => do not emulate this bug level->use_action_after_change_bug = FALSE; + // other flags that may be set due to certain level properties + level->has_mouse_events = FALSE; + if (leveldir_current) { // try to determine better author name than 'anonymous' @@ -6561,6 +6564,18 @@ static void LoadLevel_InitCustomElements(struct LevelInfo *level) element_info[element].ignition_delay = 8; } } + + // check for custom elements which have mouse click events defined + for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++) + { + int element = EL_CUSTOM_START + i; + + if (HAS_CHANGE_EVENT(element, CE_CLICKED_BY_MOUSE) || + HAS_CHANGE_EVENT(element, CE_PRESSED_BY_MOUSE) || + HAS_CHANGE_EVENT(element, CE_MOUSE_CLICKED_ON_X) || + HAS_CHANGE_EVENT(element, CE_MOUSE_PRESSED_ON_X)) + level->has_mouse_events = TRUE; + } } static void LoadLevel_InitElements(struct LevelInfo *level) @@ -10309,6 +10324,9 @@ int get_parameter_value(char *value_raw, char *suffix, int type) if (string_has_parameter(value, "reverse")) result |= STYLE_REVERSE; + if (string_has_parameter(value, "block_clicks")) + result |= STYLE_BLOCK; + if (string_has_parameter(value, "passthrough_clicks")) result |= STYLE_PASSTHROUGH;