diff dmq3d.c @ 253:61eb5fb4a5e6

Fix a silly rendering issue.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 09 Oct 2012 21:11:07 +0300
parents 98483680ea0f
children be2ca95af493
line wrap: on
line diff
--- a/dmq3d.c	Tue Oct 09 20:59:45 2012 +0300
+++ b/dmq3d.c	Tue Oct 09 21:11:07 2012 +0300
@@ -108,9 +108,11 @@
     {
         DM3DLine *line = &model->lines[i];
         DMVector pv[2];
-        dm_vector_add_r(&pv[0], &model->vertices[line->v1], pos);
-        dm_vector_add_r(&pv[1], &model->vertices[line->v2], pos);
+        dm_vector_copy(&pv[0], &model->vertices[line->v1]);
+        dm_vector_copy(&pv[1], &model->vertices[line->v2]);
         dm_vector_mul_by_mat_n(pv, 2, mat);
+        dm_vector_add(&pv[0], pos);
+        dm_vector_add(&pv[1], pos);
         
         if (line->type > 1)
             dmDrawLineSpec(screen, dmPX(cx, pv[0]), dmPY(cy, pv[0]), dmPX(cx, pv[1]), dmPY(cy, pv[1]), lcol, fbmap);
@@ -122,9 +124,9 @@
     {
         DM3DSprite *sprite = &model->sprites[i];
         DM3DBitmap *bmp = &model->bitmaps[sprite->bitmap];
-        DMVector pv, pt;
-        dm_vector_add_r(&pt, &model->vertices[sprite->v], pos);
-        dm_vector_mul_by_mat(&pv, &pt, mat);
+        DMVector pv;
+        dm_vector_mul_by_mat(&pv, &model->vertices[sprite->v], mat);
+        dm_vector_add(&pv, pos);
         dmUnscaledBlitSurface32to32Transparent(bmp->img, dmPX(cx, pv), dmPY(cy, pv), screen);
     }
 }