X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=mercenary-reloaded.git;a=blobdiff_plain;f=src%2Fmercenary%2Frender.c;h=f672eac1e2a6f8c98f8b0f310d50b4d12782589d;hp=621db0da762d1ce79e3055301d37fab04000ff21;hb=293b76fb1ccd2bda197e36b9f8f4e4f23f8286e4;hpb=6324ef1bbccd1ff00111eda853f8986a9d956105 diff --git a/src/mercenary/render.c b/src/mercenary/render.c index 621db0d..f672eac 100644 --- a/src/mercenary/render.c +++ b/src/mercenary/render.c @@ -1704,7 +1704,7 @@ void render_one_item(render_item_t *render_item) #endif /* special case where we don't want to interpolate motion (taxi/busses/intercity) */ - if (render_item->type == RENDER_ITEM_OBJECT_POLYGON && render_item_object_info && !render_item_object_info->u.info.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) { // GET_ORIENTATION_FIX; fix = 1; } @@ -1743,7 +1743,7 @@ void render_one_item(render_item_t *render_item) GET_ORIENTATION; int fix = 0; double x[2], y[2], z[2]; - int i; + int i, o; int rc; #ifdef DEBUG_ITEMS @@ -1769,6 +1769,18 @@ void render_one_item(render_item_t *render_item) rc = use_coord("object", render_item->u.line.vertex[i], &x[i], &y[i], &z[i], fix); if (rc < 0) break; + /* 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++) { + if (interpolation.object_id[o] == render_item_object_info->u.info.id) + break; + } + if (o < interpolation.object_count) { + x[i] += interpolation.object_offset_east[o]; + y[i] += interpolation.object_offset_height[o]; + z[i] += interpolation.object_offset_north[o]; + } + } /* rotate vertex */ rotate_coordinate(roll, pitch, yaw, &x[i], &y[i], &z[i]); }