Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv32180/src
Modified Files:
local.c mswindow.c
Log Message:
Double buffering.
Fix to background stars and short packets.
New IND bitmaps
Addition of some new color planets to plant library,
Index: mswindow.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/mswindow.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- mswindow.c 12 May 2006 01:58:38 -0000 1.17
+++ mswindow.c 12 May 2006 20:51:31 -0000 1.18
@@ -1436,7 +1436,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -1479,7 +1479,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -1554,7 +1554,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- continue; //Horizantal extents do not overlap
+ continue; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -3303,7 +3303,7 @@
r.left = max (x, border);
r.right = min (x + ext.cx, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + ext.cy, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -5318,7 +5318,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -5355,7 +5355,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -5418,7 +5418,7 @@
r.left = max (x, border);
r.right = min (x + width, win->ClipRect.right);
if (r.right < r.left)
- continue; //Horizantal extents do not overlap
+ continue; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + height, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -5750,7 +5750,7 @@
r.left = max (x, border);
r.right = min (x + ext.cx, win->ClipRect.right);
if (r.right < r.left)
- return; //Horizantal extents do not overlap
+ return; //Horizontal extents do not overlap
r.top = max (y, border);
r.bottom = min (y + ext.cy, win->ClipRect.bottom);
if (r.bottom < r.top)
@@ -5850,14 +5850,13 @@
register struct Icon *bitmap = (struct Icon *) icon;
register int borderx, bordery, width, height;
register int srcx, srcy;
- HDC hdc;
HBITMAP newbmp;
XFORM xForm;
double radians;
float cosine, sine, Point1x, Point1y, Point2x, Point2y, Point3x, Point3y;
float xscale, yscale;
float eDx, eDy;
-
+
//Fast (I hope) rectangle intersection, don't overwrite our borders
srcx = bitmap->x;
srcy = bitmap->y;
@@ -5868,15 +5867,12 @@
width = bitmap->width;
height = bitmap->height;
-
-// hdc = GetDC (bitmap->hwnd);
-// newbmp = CreateCompatibleBitmap ( hdc, width, height );
+
newbmp = CreateCompatibleBitmap ( sdb->mem_dc, width, height );
if (NetrekPalette)
{
- // SelectPalette (hdc, NetrekPalette, FALSE);
- // RealizePalette (hdc);
+
SelectPalette (sdb->mem_dc, NetrekPalette, FALSE);
RealizePalette (sdb->mem_dc);
}
@@ -5888,8 +5884,6 @@
//Set the color of the bitmap
//(oddly enough, 1-bit = bk color, 0-bit = text (fg) color)
- // SetBkColor (hdc, colortable[color].rgb);
- // SetTextColor (hdc, colortable[BLACK].rgb);
SetBkColor (sdb->mem_dc, colortable[color].rgb);
SetTextColor (sdb->mem_dc, colortable[BLACK].rgb);
@@ -5916,9 +5910,9 @@
eDx = x + xscale - cosine*(xscale) + sine*(yscale);
eDy = y + yscale - cosine*(yscale) - sine*(xscale);
- // SetGraphicsMode(hdc,GM_ADVANCED);
- // SetGraphicsMode(sdb->mem_dc,GM_ADVANCED);
+ // SetGraphicsMode(sdb->mem_dc,GM_ADVANCED);
+
xForm.eM11=cosine/SCALEX;
xForm.eM12=sine/SCALEX;
xForm.eM21=-sine/SCALEY;
@@ -5926,13 +5920,11 @@
xForm.eDx = eDx;
xForm.eDy = eDy;
- // SetWorldTransform(hdc,&xForm);
+ SetStretchBltMode(sdb->mem_dc, COLORONCOLOR);
// SetWorldTransform(sdb->mem_dc,&xForm);
- // BitBlt(hdc, 0, 0, width, height, GlobalMemDC2, 0, 0, SRCPAINT);
- //BitBlt(sdb->mem_dc, 0, 0, width, height, GlobalMemDC2, 0, 0, SRCPAINT);
- BitBlt (sdb->mem_dc, x, y, width, height, GlobalMemDC2, 0, 0, SRCPAINT);
- // StretchBlt(sdb->mem_dc, x, y, (int)(width/SCALEX), (int)(height/SCALEY), GlobalMemDC2, 0, 0, width, height, SRCCOPY);
-// ReleaseDC (bitmap->hwnd, hdc);
+ // BitBlt(hdc, 0, 0, width, height, GlobalMemDC2, 0, 0, SRCPAINT);
+ // BitBlt(sdb->mem_dc, 0, 0, width, height, GlobalMemDC2, 0, 0, SRCPAINT);
+ StretchBlt(sdb->mem_dc, x, y, (int)(width/SCALEX), (int)(height/SCALEY), GlobalMemDC2, 0, 0, width, height, SRCPAINT);
DeleteObject (newbmp);
}
Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- local.c 12 May 2006 01:58:37 -0000 1.20
+++ local.c 12 May 2006 20:51:31 -0000 1.21
@@ -65,7 +65,7 @@
static void redrawStarSector(int sectorx, int sectory);
-#define scaleLocal(pt) ((pt) + (WINSIDE/2))
+#define scaleLocal(pt) ((pt)/SCALE + (WINSIDE/2))
int fullview = WINSIDE * SCALE;
int view = WINSIDE * SCALE / 2;
@@ -259,8 +259,8 @@
dyy = (int) (Sin[mydir] * streaklength);
for (i = 0, s = star_sector; i < 16; i++, s++)
{
- dx = (s->s_x + xbase)/SCALE - me->p_x/SCALE;
- dy = (s->s_y + ybase)/SCALE - me->p_y/SCALE;
+ dx = (s->s_x + xbase) - (me->p_x - (me->p_x % 40));
+ dy = (s->s_y + ybase) - (me->p_y - (me->p_y % 40));
if (ABS(dx) > (view) || ABS(dy) > (view))
continue;
@@ -283,11 +283,8 @@
}
for (i = 0, s = star_sector; i < 16; i++, s++)
{
- int px, py;
- px = me->p_x % 40;
- py = me->p_y % 40;
- dx = (s->s_x + xbase)/SCALE - me->p_x/SCALE;
- dy = (s->s_y + ybase)/SCALE - me->p_y/SCALE;
+ dx = (s->s_x + xbase) - (me->p_x - (me->p_x % 40));
+ dy = (s->s_y + ybase) - (me->p_y - (me->p_y % 40));
if (ABS(dx) > (view) || ABS(dy) > (view))
continue;