summaryrefslogtreecommitdiff
path: root/src/stage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stage.c')
-rw-r--r--src/stage.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/stage.c b/src/stage.c
index 1cb3995..cc8f618 100644
--- a/src/stage.c
+++ b/src/stage.c
@@ -58,6 +58,8 @@ struct stage_t {
float aspect_ratio; /* width/height ratio of stage, -1.0...1.0 range of node coordinates map to this ratio. */
v2f_t position; /* position of the stage (defaults to 0,0) */
float alpha; /* alpha to apply to all nodes */
+ stage_map_t aabb_map; /* aabb map for the stage, nodes inherit this setting at create time */
+ stage_map_t position_map; /* position map for the stage, nodes inherit this setting at create time */
};
@@ -106,6 +108,8 @@ stage_node_t * stage_node_new(stage_t *stage, int layer, const char *name, void
if (!node)
return NULL;
+ node->aabb_map = stage->aabb_map;
+ node->position_map = stage->position_map;
list_add_tail(&node->nodes, &stage->layers[layer]);
return node;
@@ -378,6 +382,20 @@ void stage_get_position(stage_t *stage, v2f_t *res_position)
}
+/* set the aabb mapping for the stage */
+void stage_set_aabb_map(stage_t *stage, stage_map_t map)
+{
+ stage->aabb_map = map;
+}
+
+
+/* set the position mapping for the stage */
+void stage_set_position_map(stage_t *stage, stage_map_t map)
+{
+ stage->position_map = map;
+}
+
+
static void map_stage_rect(const stage_t *stage, const SDL_Rect *stage_rect, stage_map_t map, float *res_w, float *res_h)
{
switch (map) {
© All Rights Reserved