From: Andreas Eversberg Date: Sun, 15 Apr 2018 08:22:38 +0000 (+0200) Subject: OVR: Fix scale of fixed (interior) objects (bus, taxi, intercity) X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=mercenary-reloaded.git;a=commitdiff_plain;h=787b84c9dcd061bbe27cf4fb37cb31abe5e96334 OVR: Fix scale of fixed (interior) objects (bus, taxi, intercity) --- diff --git a/src/mercenary/render.c b/src/mercenary/render.c index b275e43..b4f53b9 100644 --- a/src/mercenary/render.c +++ b/src/mercenary/render.c @@ -63,6 +63,7 @@ #define EXPLOSION_VERTICES 16 #define EXPLOSION_ELIPSE 1.17 #define SIGHT_DIST 78.74 /* distanc of sights in inch */ +#define FIX_OBJECT_SCALE 16 /* * render item definition and structures @@ -1742,6 +1743,12 @@ void render_one_item(render_item_t *render_item, int vr) rc = use_coord("object", render_item->u.polygon.vertex[i], &x[i], &y[i], &z[i], fix); if (rc < 0) break; + /* fixed objects are pre-scaled by 16, so we correct this */ + if (fix) { + x[i] /= FIX_OBJECT_SCALE; + y[i] /= FIX_OBJECT_SCALE; + z[i] /= FIX_OBJECT_SCALE; + } /* interpolate motion, if object is moving */ if ((render_item->type == RENDER_ITEM_OBJECT_POLYGON || render_item->type == RENDER_ITEM_TAG_POLYGON_OBJECT) && render_item_object_info && render_item_object_info->u.info.moving) { for (o = 0; o < interpolation.object_count; o++) { @@ -1794,6 +1801,12 @@ void render_one_item(render_item_t *render_item, int vr) rc = use_coord("object", render_item->u.line.vertex[i], &x[i], &y[i], &z[i], fix); if (rc < 0) break; + /* fixed objects are pre-scaled by 16, so we correct this */ + if (fix) { + x[i] /= FIX_OBJECT_SCALE; + y[i] /= FIX_OBJECT_SCALE; + z[i] /= FIX_OBJECT_SCALE; + } /* interpolate motion, if object is moving */ if ((render_item->type == RENDER_ITEM_OBJECT_LINE || render_item->type == RENDER_ITEM_TAG_LINE_OBJECT) && render_item_object_info && render_item_object_info->u.info.moving) { for (o = 0; o < interpolation.object_count; o++) {