X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=fb265fab44a1c633590580a7c81949be7682577b;hb=b3be19debfe6a782dced04fe3ee4406b7d8a2135;hp=06ded93686bbe9b672a182bd6ff86263921fd60e;hpb=b5793d558cadada689358997736a16bcf346a462;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 06ded936..fb265fab 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -1442,28 +1442,28 @@ int putFileChunk(FILE *file, char *chunk_name, int chunk_size, int getFileVersion(File *file) { + int version_super = getByteFromFile(file); int version_major = getByteFromFile(file); int version_minor = getByteFromFile(file); int version_patch = getByteFromFile(file); - int version_build = getByteFromFile(file); - return VERSION_IDENT(version_major, version_minor, version_patch, - version_build); + return VERSION_IDENT(version_super, version_major, version_minor, + version_patch); } int putFileVersion(FILE *file, int version) { if (file != NULL) { + int version_super = VERSION_SUPER(version); int version_major = VERSION_MAJOR(version); int version_minor = VERSION_MINOR(version); int version_patch = VERSION_PATCH(version); - int version_build = VERSION_BUILD(version); + fputc(version_super, file); fputc(version_major, file); fputc(version_minor, file); fputc(version_patch, file); - fputc(version_build, file); } return 4; @@ -2806,6 +2806,25 @@ int get_anim_parameter_value(char *s) return result; } +int get_anim_action_parameter_value(char *token) +{ + int result = getImageIDFromToken(token); + + if (result == -1) + { + char *gfx_token = getStringCat2("gfx.", token); + + result = getImageIDFromToken(gfx_token); + + checked_free(gfx_token); + } + + if (result == -1) + result = ANIM_EVENT_ACTION_NONE; + + return result; +} + int get_parameter_value(char *value_raw, char *suffix, int type) { char *value = getStringToLower(value_raw); @@ -2887,6 +2906,11 @@ int get_parameter_value(char *value_raw, char *suffix, int type) // add optional "click:anim_X" or "click:anim_X.part_X" parameter result |= get_anim_parameter_value(value); } + else if (strEqual(suffix, ".init_event_action") || + strEqual(suffix, ".anim_event_action")) + { + result = get_anim_action_parameter_value(value); + } else if (strEqual(suffix, ".class")) { result = (strEqual(value, ARG_UNDEFINED) ? ARG_UNDEFINED_VALUE : @@ -2904,6 +2928,12 @@ 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, "passthrough_clicks")) + result |= STYLE_PASSTHROUGH; + + if (string_has_parameter(value, "multiple_actions")) + result |= STYLE_MULTIPLE_ACTIONS; } else if (strEqual(suffix, ".fade_mode")) {