X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=5ec5f7f063e83c9454f7e2d85b3be2b8fb5b2414;hb=efda7f7ff333c8aa84af7966e11e2ea070c6aea9;hp=be19967a77e4b5a63f03148318e45810ad03903a;hpb=5945d4cf6b675d43d102a1a2ab7d6ebd43a49ead;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index be19967a..5ec5f7f0 100644 --- a/src/files.c +++ b/src/files.c @@ -10064,17 +10064,43 @@ static boolean string_has_parameter(char *s, char *s_contained) static int get_anim_parameter_value(char *s) { - char *pattern_1 = "click:anim_"; + int event_value[] = + { + ANIM_EVENT_CLICK, + ANIM_EVENT_INIT, + ANIM_EVENT_START, + ANIM_EVENT_END, + ANIM_EVENT_POST + }; + char *pattern_1[] = + { + "click:anim_", + "init:anim_", + "start:anim_", + "end:anim_", + "post:anim_" + }; char *pattern_2 = ".part_"; char *matching_char = NULL; char *s_ptr = s; + int pattern_1_len = 0; int result = ANIM_EVENT_NONE; + int i; + + for (i = 0; i < ARRAY_SIZE(event_value); i++) + { + matching_char = strstr(s_ptr, pattern_1[i]); + pattern_1_len = strlen(pattern_1[i]); + result = event_value[i]; + + if (matching_char != NULL) + break; + } - matching_char = strstr(s_ptr, pattern_1); if (matching_char == NULL) return ANIM_EVENT_NONE; - s_ptr = matching_char + strlen(pattern_1); + s_ptr = matching_char + pattern_1_len; // check for main animation number ("anim_X" or "anim_XX") if (*s_ptr >= '0' && *s_ptr <= '9')