… | |
… | |
1233 | |
1233 | |
1234 | while (data < data_end) |
1234 | while (data < data_end) |
1235 | { |
1235 | { |
1236 | flags = (data [0] << 8) + data [1]; data += 2; |
1236 | flags = (data [0] << 8) + data [1]; data += 2; |
1237 | |
1237 | |
1238 | x = ((flags >> 10) & 63) + self->x; |
1238 | x = self->x + ((flags >> 10) & 63); |
1239 | y = ((flags >> 4) & 63) + self->y; |
1239 | y = self->y + ((flags >> 4) & 63); |
1240 | |
1240 | |
1241 | cell = map_get_cell (self, x, y); |
1241 | cell = map_get_cell (self, x, y); |
1242 | |
1242 | |
1243 | if (flags & 15) |
1243 | if (flags & 15) |
1244 | { |
1244 | { |
… | |
… | |
1341 | int vx, vy; |
1341 | int vx, vy; |
1342 | int x, y, z; |
1342 | int x, y, z; |
1343 | int last_name; |
1343 | int last_name; |
1344 | mapface face; |
1344 | mapface face; |
1345 | |
1345 | |
1346 | vx = self->x + (self->w - sw + 1) / 2 - shift_x; |
1346 | vx = self->x + self->w / 2 - sw / 2 - shift_x; |
1347 | vy = self->y + (self->h - sh + 1) / 2 - shift_y; |
1347 | vy = self->y + self->h / 2 - sh / 2 - shift_y; |
1348 | |
1348 | |
1349 | /* |
1349 | /* |
1350 | int vx = self->vx = self->w >= sw |
1350 | int vx = self->vx = self->w >= sw |
1351 | ? self->x + (self->w - sw) / 2 |
1351 | ? self->x + (self->w - sw) / 2 |
1352 | : MIN (self->x, MAX (self->x + self->w - sw + 1, self->vx)); |
1352 | : MIN (self->x, MAX (self->x + self->w - sw + 1, self->vx)); |
… | |
… | |
1447 | for (y = 0; y < h; y++) |
1447 | for (y = 0; y < h; y++) |
1448 | for (x = 0; x < w; x++) |
1448 | for (x = 0; x < w; x++) |
1449 | { |
1449 | { |
1450 | unsigned char m = data [x + y * w]; |
1450 | unsigned char m = data [x + y * w]; |
1451 | |
1451 | |
|
|
1452 | if (m) |
|
|
1453 | { |
1452 | float *c = color [m & 15]; |
1454 | float *c = color [m & 15]; |
1453 | |
1455 | |
1454 | float tx1 = m & 0x40 ? 0.5 : m & 0x80 ? 0.25 : 0.; |
1456 | float tx1 = m & 0x40 ? 0.5 : 0.; |
1455 | float tx2 = tx1 + 0.25; |
1457 | float tx2 = tx1 + 0.5; |
1456 | |
1458 | |
1457 | glColor4f (c[0], c[1], c[2], 0.75); |
1459 | glColor4f (c[0], c[1], c[2], 0.75); |
1458 | glTexCoord2f (tx1, 0.); glVertex2i (x , y ); |
1460 | glTexCoord2f (tx1, 0.); glVertex2i (x , y ); |
1459 | glTexCoord2f (tx1, 1.); glVertex2i (x , y + 1); |
1461 | glTexCoord2f (tx1, 1.); glVertex2i (x , y + 1); |
1460 | glTexCoord2f (tx2, 1.); glVertex2i (x + 1, y + 1); |
1462 | glTexCoord2f (tx2, 1.); glVertex2i (x + 1, y + 1); |
1461 | glTexCoord2f (tx2, 0.); glVertex2i (x + 1, y ); |
1463 | glTexCoord2f (tx2, 0.); glVertex2i (x + 1, y ); |
|
|
1464 | } |
1462 | } |
1465 | } |
1463 | |
1466 | |
1464 | glEnd (); |
1467 | glEnd (); |
1465 | glDisable (GL_BLEND); |
1468 | glDisable (GL_BLEND); |
1466 | glDisable (GL_TEXTURE_2D); |
1469 | glDisable (GL_TEXTURE_2D); |
… | |
… | |
1712 | const_iv (GL_SCISSOR_TEST), |
1715 | const_iv (GL_SCISSOR_TEST), |
1713 | const_iv (GL_DEPTH_TEST), |
1716 | const_iv (GL_DEPTH_TEST), |
1714 | const_iv (GL_ALPHA_TEST), |
1717 | const_iv (GL_ALPHA_TEST), |
1715 | const_iv (GL_NORMALIZE), |
1718 | const_iv (GL_NORMALIZE), |
1716 | const_iv (GL_RESCALE_NORMAL), |
1719 | const_iv (GL_RESCALE_NORMAL), |
|
|
1720 | const_iv (GL_FRONT), |
|
|
1721 | const_iv (GL_BACK), |
1717 | const_iv (GL_AND), |
1722 | const_iv (GL_AND), |
1718 | const_iv (GL_ONE), |
1723 | const_iv (GL_ONE), |
1719 | const_iv (GL_ZERO), |
1724 | const_iv (GL_ZERO), |
1720 | const_iv (GL_SRC_ALPHA), |
1725 | const_iv (GL_SRC_ALPHA), |
1721 | const_iv (GL_DST_ALPHA), |
1726 | const_iv (GL_DST_ALPHA), |
… | |
… | |
1843 | |
1848 | |
1844 | void glPopMatrix () |
1849 | void glPopMatrix () |
1845 | |
1850 | |
1846 | void glLoadIdentity () |
1851 | void glLoadIdentity () |
1847 | |
1852 | |
|
|
1853 | void glDrawBuffer (int buffer) |
|
|
1854 | |
|
|
1855 | void glReadBuffer (int buffer) |
|
|
1856 | |
1848 | # near_ and far_ are due to microsofts buggy "c" compiler |
1857 | # near_ and far_ are due to microsofts buggy "c" compiler |
1849 | void glFrustum (double left, double right, double bottom, double top, double near_, double far_) |
1858 | void glFrustum (double left, double right, double bottom, double top, double near_, double far_) |
1850 | |
1859 | |
1851 | # near_ and far_ are due to microsofts buggy "c" compiler |
1860 | # near_ and far_ are due to microsofts buggy "c" compiler |
1852 | void glOrtho (double left, double right, double bottom, double top, double near_, double far_) |
1861 | void glOrtho (double left, double right, double bottom, double top, double near_, double far_) |