From a50d9c569d4157aa96fb9a80cf3205dbd80babbc Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Mon, 28 May 2018 21:22:13 +0200 Subject: Handle coordinates in opposite order --- harddoomdev.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/harddoomdev.c b/harddoomdev.c index 30c37fe..fc1f0e4 100644 --- a/harddoomdev.c +++ b/harddoomdev.c @@ -232,11 +232,16 @@ void draw_column(struct surface_data *surface_data, struct colors_data *colors_data, struct colors_data *trans_data, uint8_t flags, uint8_t trans_idx) { + uint16_t y1, y2; + + y1 = min(column.y1, column.y2); + y2 = max(column.y1, column.y2); + set_surf_dst_pt(surface_data->doom_data, surface_data->page_table_dev); set_surf_dims(surface_data->doom_data, surface_data->width, surface_data->height); set_draw_params(surface_data->doom_data, flags); - set_xy_a(surface_data->doom_data, column.x, column.y1); - set_xy_b(surface_data->doom_data, column.x, column.y2); + set_xy_a(surface_data->doom_data, column.x, y1); + set_xy_b(surface_data->doom_data, column.x, y2); if (!(flags & HARDDOOM_DRAW_PARAMS_FUZZ)) { set_texture_pt(surface_data->doom_data, @@ -265,12 +270,17 @@ void draw_column(struct surface_data *surface_data, void draw_span(struct surface_data *surface_data, struct flat_data *flat_data, struct doomdev_span span) { + uint16_t x1, x2; + + x1 = min(span.x1, span.x2); + x2 = max(span.x1, span.x2); + set_surf_dst_pt(surface_data->doom_data, surface_data->page_table_dev); set_surf_dims(surface_data->doom_data, surface_data->width, surface_data->height); set_flat(surface_data->doom_data, flat_data->flat_dev); - set_xy_a(surface_data->doom_data, span.x1, span.y); - set_xy_b(surface_data->doom_data, span.x2, span.y); + set_xy_a(surface_data->doom_data, x1, span.y); + set_xy_b(surface_data->doom_data, x2, span.y); set_ustart(surface_data->doom_data, span.ustart); set_ustep(surface_data->doom_data, span.ustep); set_vstart(surface_data->doom_data, span.vstart); -- cgit v1.2.3