diff options
Diffstat (limited to 'src/math_helper.c')
| -rw-r--r-- | src/math_helper.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/math_helper.c b/src/math_helper.c index 69ad530..436c81b 100644 --- a/src/math_helper.c +++ b/src/math_helper.c @@ -105,6 +105,23 @@ box get_box_of_square(vec3f position, vec3f size) { return (box){rendertl, rendertr, renderbl, renderbr, rendertl, rendertr, renderbl, renderbr}; } +box get_render_box_of_square_without_incline(platform_window* window, vec3f position, vec3f size) { + map_info info = get_map_info(window); + float render_x = (info.tile_width * position.x); + vec2f rendertl = (vec2f){render_x, info.tile_width * position.y - position.z*info.px_raised_per_h}; + vec2f rendertr = (vec2f){render_x + info.tile_width*size.x, info.tile_height * position.y - position.z*info.px_raised_per_h}; + vec2f renderbr = (vec2f){render_x + info.tile_width*size.x, info.tile_height * position.y + info.tile_height*size.y - position.z*info.px_raised_per_h}; + vec2f renderbl = (vec2f){render_x, info.tile_height * position.y + info.tile_height*size.y - position.z*info.px_raised_per_h}; + + position.z += size.z; + vec2f rendertl2 = (vec2f){render_x, info.tile_width * position.y - position.z*info.px_raised_per_h}; + vec2f rendertr2 = (vec2f){render_x + info.tile_width*size.x, info.tile_height * position.y - position.z*info.px_raised_per_h}; + vec2f renderbr2 = (vec2f){render_x + info.tile_width*size.x, info.tile_height * position.y + info.tile_height*size.y - position.z*info.px_raised_per_h}; + vec2f renderbl2 = (vec2f){render_x, info.tile_height * position.y + info.tile_height*size.y - position.z*info.px_raised_per_h}; + + return (box){rendertl, rendertr, renderbl, renderbr, rendertl2, rendertr2, renderbl2, renderbr2}; +} + box get_render_box_of_square(platform_window* window, vec3f position, vec3f size) { map_info info = get_map_info(window); float render_x = (info.tile_width * position.x) + (info.px_incline * position.y); |
