X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=0115b5d9fb95f3ca633032656bcb0673138a62f0;hb=328e3faf46607ba39f55f84ed3d470de67d5bd6c;hp=ae54541fb3639f5da828a511bf4785d2dfbea943;hpb=a8613c2d9809cf90870f7c33b6fda80957241827;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index ae54541f..0115b5d9 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -498,36 +498,45 @@ char *getBasePath(char *filename) /* various string functions */ /* ------------------------------------------------------------------------- */ -char *getPath2(char *path1, char *path2) +char *getStringCat2WithSeparator(char *s1, char *s2, char *sep) { - char *sep = STRING_PATH_SEPARATOR; - char *complete_path = checked_malloc(strlen(path1) + 1 + - strlen(path2) + 1); + char *complete_string = checked_malloc(strlen(s1) + strlen(sep) + + strlen(s2) + 1); - sprintf(complete_path, "%s%s%s", path1, sep, path2); + sprintf(complete_string, "%s%s%s", s1, sep, s2); - return complete_path; + return complete_string; } -char *getPath3(char *path1, char *path2, char *path3) +char *getStringCat3WithSeparator(char *s1, char *s2, char *s3, char *sep) { - char *sep = STRING_PATH_SEPARATOR; - char *complete_path = checked_malloc(strlen(path1) + 1 + - strlen(path2) + 1 + - strlen(path3) + 1); + char *complete_string = checked_malloc(strlen(s1) + strlen(sep) + + strlen(s2) + strlen(sep) + + strlen(s3) + 1); - sprintf(complete_path, "%s%s%s%s%s", path1, sep, path2, sep, path3); + sprintf(complete_string, "%s%s%s%s%s", s1, sep, s2, sep, s3); - return complete_path; + return complete_string; } char *getStringCat2(char *s1, char *s2) { - char *complete_string = checked_malloc(strlen(s1) + strlen(s2) + 1); + return getStringCat2WithSeparator(s1, s2, ""); +} - sprintf(complete_string, "%s%s", s1, s2); +char *getStringCat3(char *s1, char *s2, char *s3) +{ + return getStringCat3WithSeparator(s1, s2, s3, ""); +} - return complete_string; +char *getPath2(char *path1, char *path2) +{ + return getStringCat2WithSeparator(path1, path2, STRING_PATH_SEPARATOR); +} + +char *getPath3(char *path1, char *path2, char *path3) +{ + return getStringCat3WithSeparator(path1, path2, path3, STRING_PATH_SEPARATOR); } char *getStringCopy(char *s) @@ -1761,6 +1770,12 @@ int get_parameter_value(char *value_raw, char *suffix, int type) strEqual(value, "up") ? MV_UP : strEqual(value, "down") ? MV_DOWN : MV_NONE); } + else if (strEqual(suffix, ".align")) + { + result = (strEqual(value, "left") ? ALIGN_LEFT : + strEqual(value, "right") ? ALIGN_RIGHT : + strEqual(value, "center") ? ALIGN_CENTER : ALIGN_DEFAULT); + } else if (strEqual(suffix, ".anim_mode")) { result = (string_has_parameter(value, "none") ? ANIM_NONE : @@ -1774,6 +1789,9 @@ int get_parameter_value(char *value_raw, char *suffix, int type) string_has_parameter(value, "ce_delay") ? ANIM_CE_DELAY : string_has_parameter(value, "horizontal") ? ANIM_HORIZONTAL : string_has_parameter(value, "vertical") ? ANIM_VERTICAL : + string_has_parameter(value, "centered") ? ANIM_CENTERED : + string_has_parameter(value, "fade") ? ANIM_FADE : + string_has_parameter(value, "crossfade") ? ANIM_CROSSFADE : ANIM_DEFAULT); if (string_has_parameter(value, "reverse"))