Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv25375/src
Modified Files:
data.c local.c map.c mswindow.c newwin.c
Log Message:
Adds support for paradise wormholes.
Fixes bug with local star draw clearzone.
Index: data.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/data.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -d -r1.96 -r1.97
--- data.c 7 Jun 2007 04:43:38 -0000 1.96
+++ data.c 7 Jun 2007 06:29:05 -0000 1.97
@@ -356,6 +356,9 @@
W_Icon base_star_bitmap;
W_Icon star_bitmap[STAR_VIEWS];
W_Icon star_mbitmap;
+W_Icon base_wormhole_bitmap;
+W_Icon wormhole_bitmap[WORMHOLE_VIEWS];
+W_Icon wormhole_mbitmap;
W_Icon paradise_ship_bitmaps;
W_Icon paradise_ships[NUM_PSHIP_TYPES][NUMTEAMS];
W_Icon paradise_cship_self_bitmaps;
Index: newwin.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/newwin.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- newwin.c 7 Jun 2007 04:43:39 -0000 1.67
+++ newwin.c 7 Jun 2007 06:29:06 -0000 1.68
@@ -504,6 +504,18 @@
W_StoreBitmap3 ("bitmaps/paradise/starm.bmp", BMP_MSTAR_WIDTH,
BMP_MSTAR_HEIGHT, BMP_MSTAR, mapw,
LR_DEFAULTCOLOR);
+ base_wormhole_bitmap =
+ W_StoreBitmap3 ("bitmaps/paradise/wormhole.bmp", BMP_WORMHOLE_WIDTH,
+ BMP_WORMHOLE_HEIGHT * WORMHOLE_VIEWS, BMP_WORMHOLE, w,
+ LR_DEFAULTCOLOR);
+ for (i = 0; i < WORMHOLE_VIEWS; i++)
+ wormhole_bitmap[i] =
+ W_PointBitmap2 (base_wormhole_bitmap, 0, i, BMP_WORMHOLE_WIDTH, BMP_WORMHOLE_HEIGHT);
+
+ wormhole_mbitmap =
+ W_StoreBitmap3 ("bitmaps/paradise/wormholem.bmp", BMP_MWORMHOLE_WIDTH,
+ BMP_MWORMHOLE_HEIGHT, BMP_MWORMHOLE, mapw,
+ LR_DEFAULTCOLOR);
drone_bitmap =
W_StoreBitmap3 ("bitmaps/paradise/drone.bmp", BMP_DRONE_WIDTH,
Index: mswindow.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/mswindow.c,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -d -r1.85 -r1.86
--- mswindow.c 25 May 2007 03:36:46 -0000 1.85
+++ mswindow.c 7 Jun 2007 06:29:06 -0000 1.86
@@ -595,6 +595,10 @@
for (i = 0; i < STAR_VIEWS; i++)
free (star_bitmap[i]);
free (star_mbitmap);
+ free (base_wormhole_bitmap);
+ for (i = 0; i < WORMHOLE_VIEWS; i++)
+ free (wormhole_bitmap[i]);
+ free (wormhole_mbitmap);
free (paradise_ship_bitmaps);
free (paradise_cship_self_bitmaps);
free (paradise_cship_bitmaps);
Index: map.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/map.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- map.c 7 Jun 2007 04:43:39 -0000 1.58
+++ map.c 7 Jun 2007 06:29:06 -0000 1.59
@@ -583,6 +583,11 @@
dy - ( BMP_MSTAR_HEIGHT / 2),
BMP_MSTAR_WIDTH,
BMP_MSTAR_HEIGHT);
+ else if (PL_TYPE(*l) == PLWHOLE)
+ W_ClearArea (mapw, dx - ( BMP_MWORMHOLE_WIDTH / 2),
+ dy - ( BMP_MWORMHOLE_HEIGHT / 2),
+ BMP_MWORMHOLE_WIDTH,
+ BMP_MWORMHOLE_HEIGHT);
else
{
#endif
@@ -649,6 +654,17 @@
star_mbitmap,
planetColor (l),
mapw);
+ else if (PL_TYPE(*l) == PLWHOLE)
+ W_OverlayScaleBitmap (dx - (BMP_MWORMHOLE_WIDTH / 2),
+ dy - (BMP_MWORMHOLE_HEIGHT / 2),
+ BMP_MWORMHOLE_WIDTH,
+ BMP_MWORMHOLE_HEIGHT,
+ BMP_MWORMHOLE_WIDTH,
+ BMP_MWORMHOLE_HEIGHT,
+ 0,
+ wormhole_mbitmap,
+ planetColor (l),
+ mapw);
else
#endif
#ifdef BEEPLITE
Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -d -r1.104 -r1.105
--- local.c 25 May 2007 03:36:46 -0000 1.104
+++ local.c 7 Jun 2007 06:29:06 -0000 1.105
@@ -41,6 +41,7 @@
static int planet_frame = 0;
#ifdef PARADISE
static int star_frame = 0;
+static int wormhole_frame = 0;
#endif
static int star_updates = 0;
static int last_speed = 0;
@@ -599,6 +600,25 @@
planetColor (l),
w);
}
+ else if (PL_TYPE(*l) == PLWHOLE)
+ {
+ int j = wormhole_frame * 10 / server_ups;
+ if ((j >= WORMHOLE_VIEWS - 1) || (j < 0))
+ {
+ j = 0;
+ wormhole_frame = 0;
+ }
+ W_WriteScaleBitmap (dx - (BMP_WORMHOLE_WIDTH / 2) * SCALE / scaleFactor,
+ dy - (BMP_WORMHOLE_HEIGHT / 2) * SCALE / scaleFactor,
+ BMP_WORMHOLE_WIDTH * SCALE / scaleFactor,
+ BMP_WORMHOLE_HEIGHT * SCALE / scaleFactor,
+ BMP_WORMHOLE_WIDTH,
+ BMP_WORMHOLE_HEIGHT,
+ 0,
+ wormhole_bitmap[j],
+ planetColor (l),
+ w);
+ }
else
#endif
if (planetBitmap == 3)
@@ -652,7 +672,11 @@
W_White);
}
- if (showPlanetNames)
+ if (showPlanetNames
+#ifdef PARADISE
+ && (PL_TYPE(*l) != PLWHOLE)
+#endif
+ )
{
/* Center name */
W_MaskText (w, dx - (W_Textwidth * l->pl_namelen / 2),
@@ -710,6 +734,23 @@
clearzone[3][clearcount] = W_Textheight;
clearcount++;
}
+#ifdef PARADISE
+ if (PL_TYPE(*l) == PLSTAR)
+ {
+ clearzone[0][clearcount] = dx - (BMP_STAR_WIDTH / 2) * SCALE / scaleFactor;
+ clearzone[1][clearcount] = dy - (BMP_STAR_HEIGHT / 2) * SCALE / scaleFactor;
+ clearzone[2][clearcount] = BMP_STAR_WIDTH * SCALE / scaleFactor;
+ clearzone[3][clearcount] = BMP_STAR_HEIGHT * SCALE / scaleFactor;
+ }
+ else if (PL_TYPE(*l) == PLWHOLE)
+ {
+ clearzone[0][clearcount] = dx - (BMP_WORMHOLE_WIDTH / 2) * SCALE / scaleFactor;
+ clearzone[1][clearcount] = dy - (BMP_WORMHOLE_HEIGHT / 2) * SCALE / scaleFactor;
+ clearzone[2][clearcount] = BMP_WORMHOLE_WIDTH * SCALE / scaleFactor;
+ clearzone[3][clearcount] = BMP_WORMHOLE_HEIGHT * SCALE / scaleFactor;
+ }
+ else
+#endif
if (planetBitmap == 3)
{
clearzone[0][clearcount] = dx - (5 * BMP_PLANET_WIDTH / 6 * SCALE / scaleFactor) - 1;
@@ -729,6 +770,7 @@
planet_frame++;
#ifdef PARADISE
star_frame++;
+ wormhole_frame++;
#endif
}