projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d1a0dcb
)
fixed setting (and maybe inheriting) draw order for global animations
author
Holger Schemel
<info@artsoft.org>
Tue, 12 Dec 2023 13:21:04 +0000
(14:21 +0100)
committer
Holger Schemel
<info@artsoft.org>
Tue, 12 Dec 2023 13:21:04 +0000
(14:21 +0100)
src/anim.c
patch
|
blob
|
history
src/init.c
patch
|
blob
|
history
diff --git
a/src/anim.c
b/src/anim.c
index a23d6e581de1c2f23c1b780d91e1f771c92f1247..0cb2023d85b6b21f1eb0f14bcf551f352942ace2 100644
(file)
--- a/
src/anim.c
+++ b/
src/anim.c
@@
-535,6
+535,10
@@
static void InitGlobalAnimControls(void)
anim->state = ANIM_STATE_INACTIVE;
anim->state = ANIM_STATE_INACTIVE;
+ // if draw order is undefined, set to default value "0"
+ if (anim->control_info.draw_order == ARG_UNDEFINED_VALUE)
+ anim->control_info.draw_order = 0;
+
part_nr = 0;
for (p = 0; p < NUM_GLOBAL_ANIM_PARTS_ALL; p++)
part_nr = 0;
for (p = 0; p < NUM_GLOBAL_ANIM_PARTS_ALL; p++)
@@
-606,6
+610,10
@@
static void InitGlobalAnimControls(void)
if (part->control_info.class == get_hash_from_key("pointer") &&
part->control_info.style == STYLE_DEFAULT)
part->control_info.style |= STYLE_PASSTHROUGH;
if (part->control_info.class == get_hash_from_key("pointer") &&
part->control_info.style == STYLE_DEFAULT)
part->control_info.style |= STYLE_PASSTHROUGH;
+
+ // if draw order is undefined, inherit it from main animation
+ if (part->control_info.draw_order == ARG_UNDEFINED_VALUE)
+ part->control_info.draw_order = anim->control_info.draw_order;
}
if (anim->num_parts > 0 || anim->has_base)
}
if (anim->num_parts > 0 || anim->has_base)
diff --git
a/src/init.c
b/src/init.c
index af11e4c7a5242329fcab1d5c112ddf05c50b90bb..45945dcd2d2f7868056be394ef789c4b34bf293c 100644
(file)
--- a/
src/init.c
+++ b/
src/init.c
@@
-722,14
+722,23
@@
static void InitGlobalAnimGraphicInfo(void)
struct GraphicInfo *g = &graphic_info[graphic];
struct FileInfo *image = getImageListEntryFromImageID(graphic);
char **parameter_raw = image->parameter;
struct GraphicInfo *g = &graphic_info[graphic];
struct FileInfo *image = getImageListEntryFromImageID(graphic);
char **parameter_raw = image->parameter;
- int p = GFX_ARG_DRAW_MASKED;
- int draw_masked = get_graphic_parameter_value(parameter_raw[p],
- image_config_suffix[p].token,
- image_config_suffix[p].type);
+ int p1 = GFX_ARG_DRAW_MASKED;
+ int p2 = GFX_ARG_DRAW_ORDER;
+ int draw_masked = get_graphic_parameter_value(parameter_raw[p1],
+ image_config_suffix[p1].token,
+ image_config_suffix[p1].type);
+ int draw_order = get_graphic_parameter_value(parameter_raw[p2],
+ image_config_suffix[p2].token,
+ image_config_suffix[p2].type);
// if ".draw_masked" parameter is undefined, use default value "TRUE"
if (draw_masked == ARG_UNDEFINED_VALUE)
g->draw_masked = TRUE;
// if ".draw_masked" parameter is undefined, use default value "TRUE"
if (draw_masked == ARG_UNDEFINED_VALUE)
g->draw_masked = TRUE;
+
+ // if ".draw_order" parameter is undefined, set back to "undefined"
+ // (used to be able to inherit draw order from main animation later)
+ if (draw_order == ARG_UNDEFINED_VALUE)
+ g->draw_order = ARG_UNDEFINED_VALUE;
}
#if 0
}
#if 0
@@
-1657,6
+1666,10
@@
static void set_graphic_parameters_ext(int graphic, int *parameter,
if (parameter[GFX_ARG_DRAW_MASKED] != ARG_UNDEFINED_VALUE)
g->draw_masked = parameter[GFX_ARG_DRAW_MASKED];
if (parameter[GFX_ARG_DRAW_MASKED] != ARG_UNDEFINED_VALUE)
g->draw_masked = parameter[GFX_ARG_DRAW_MASKED];
+ // use a different default value for global animations (corrected later)
+ if (graphic >= IMG_GLOBAL_ANIM_1 && graphic <= IMG_GLOBAL_ANIM_32)
+ g->draw_order = ARG_UNDEFINED_VALUE;
+
// used for toon animations and global animations
if (parameter[GFX_ARG_DRAW_ORDER] != ARG_UNDEFINED_VALUE)
g->draw_order = parameter[GFX_ARG_DRAW_ORDER];
// used for toon animations and global animations
if (parameter[GFX_ARG_DRAW_ORDER] != ARG_UNDEFINED_VALUE)
g->draw_order = parameter[GFX_ARG_DRAW_ORDER];