Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv28852/src
Modified Files:
beeplite.c local.c mswindow.c redraw.c sound.c
Log Message:
Fixed beeplite TTS with detcircle and doublebuffering, at the same time rewriting the text messaging code to display and clear text in a more intelligent fashion
Fixed beeplite sounds with newSound
Index: redraw.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/redraw.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- redraw.c 18 May 2006 07:15:35 -0000 1.7
+++ redraw.c 3 Jun 2006 07:03:42 -0000 1.8
@@ -104,31 +104,6 @@
W_ClearArea (warnw, 5, 5, W_Textwidth * warncount, W_Textheight);
warncount = 0;
}
-
-#ifdef BEEPLITE
- if (tts_timer)
- {
- tts_timer--;
- if (!tts_timer)
- {
- /* timed out */
- W_EraseTTSText(w, last_tts_xpos, tts_ypos, last_tts_width);
- last_tts_width = 0;
- }
- else if (tts_timer == tts_time - 1 && last_tts_width)
- {
- /* first draw -- erase previous */
- W_EraseTTSText(w, last_tts_xpos, tts_ypos, last_tts_width);
- /* draw new */
- W_WriteTTSText(w, WINSIDE, tts_ypos, lastIn, tts_len);
- }
- else
- {
- /* regular draw */
- W_WriteTTSText(w, WINSIDE, tts_ypos, lastIn, tts_len);
- }
- }
-#endif
local (); /* redraw local window */
Index: beeplite.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/beeplite.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- beeplite.c 28 May 2006 23:05:12 -0000 1.9
+++ beeplite.c 3 Jun 2006 07:03:42 -0000 1.10
@@ -204,49 +204,89 @@
}
break;
-/* The sound files don't even exist in standard client, and
- are not loaded into SDL library currently - can change at
- a later time. */
+/* SDL sounds sent to default (MESSAGE_WAV) for sounds not in client yet */
#ifdef SOUND
- if (!newSound)
- {
case '1':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE1_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE1_WAV);
+ else
+ Play_Sound(MESSAGE1_SOUND);
+ }
break;
case '2':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE2_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE2_WAV);
+ else
+ Play_Sound(MESSAGE2_SOUND);
+ }
break;
case '3':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE3_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE3_SOUND);
+ }
break;
case '4':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE4_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE4_SOUND);
+ }
break;
case '5':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE5_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE5_SOUND);
+ }
break;
case '6':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE6_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE6_SOUND);
+ }
break;
case '7':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE7_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE7_SOUND);
+ }
break;
case '8':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE8_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE8_SOUND);
+ }
break;
case '9':
if (F_beeplite_flags & LITE_SOUNDS)
- Play_Sound(MESSAGE9_SOUND);
+ {
+ if (newSound)
+ Play_Sound(MESSAGE_WAV);
+ else
+ Play_Sound(MESSAGE9_SOUND);
+ }
break;
- }
#endif
/* Text between: /| | will be displayed with TTS */
Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- local.c 2 Jun 2006 21:06:55 -0000 1.37
+++ local.c 3 Jun 2006 07:03:42 -0000 1.38
@@ -1120,7 +1120,29 @@
clearcount++;
}
}
-
+
+#ifdef BEEPLITE
+ if (tts_timer)
+ {
+ tts_timer--;
+ if (!tts_timer)
+ {
+ /* timed out */
+ last_tts_width = 0;
+ }
+ else
+ {
+ /* draw */
+ W_WriteTTSText(w, WINSIDE, tts_ypos, lastIn, tts_len);
+ clearzone[0][clearcount] = last_tts_xpos;
+ clearzone[1][clearcount] = tts_ypos - W_Textheight;
+ clearzone[2][clearcount] = last_tts_width;
+ clearzone[3][clearcount] = W_Textheight;
+ clearcount++;
+ }
+ }
+#endif
+
if (j->p_flags & PFCLOAK) /* when cloaked stop here */
continue;
Index: mswindow.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/mswindow.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- mswindow.c 2 Jun 2006 21:06:55 -0000 1.30
+++ mswindow.c 3 Jun 2006 07:03:42 -0000 1.31
@@ -711,7 +711,7 @@
#endif
//Register our class
- wc.cbSize = sizeof(WNDCLASSEX);
+ wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_NOCLOSE | CS_HREDRAW | CS_VREDRAW; //Don't allow them to close windows
wc.lpfnWndProc = NetrekWndProc;
wc.cbClsExtra = 0;
@@ -5278,26 +5278,17 @@
}
#ifdef BEEPLITE
-void W_EraseTTSText(W_Window window, int last_tts_xpos, int tts_ypos, int last_tts_width)
-{
- tts_ypos -= W_Textheight;
- last_tts_xpos -= 3;
- last_tts_width += 3;
-
- W_ClearArea(window, last_tts_xpos, tts_ypos, last_tts_width, W_Textheight);
-}
-
-void W_WriteTTSText(W_Window window, int max_width, int tts_ypos, char *str, int len)
+void W_WriteTTSText(W_Window window, int max_width, int y, char *str, int len)
{
register int x;
- HDC hdc;
+ register int border;
SIZE ext;
- FNHEADER_VOID;
-
- tts_ypos -= W_Textheight;
+ DBHEADER_VOID;
- hdc = GetDC(win->hwnd);
+ y -= W_Textheight;
+ border = win->border;
+
if (NetrekPalette)
{
SelectPalette(hdc, NetrekPalette, FALSE);
@@ -5306,14 +5297,18 @@
SetTextColor(hdc, colortable[GREY].rgb);
SetBkMode(hdc, TRANSPARENT);
+ SelectObject (hdc, (HFONT) W_HighlightFont);
GetTextExtentPoint32 (hdc, str, len, &ext);
x = (max_width - ext.cx)/2;
- if (x < 0)
- x = 4;
- TextOut(hdc, x, tts_ypos, str, len);
- ReleaseDC(win->hwnd, hdc);
- last_tts_xpos = x;
+ x += border;
+ y += border;
+
+ ExtTextOut (hdc, x, y, ETO_CLIPPED | ETO_OPAQUE, NULL, str, len, NULL);
+ last_tts_xpos = x - border;
last_tts_width = ext.cx;
+
+ if (!sdb || !doubleBuffering || !ingame)
+ ReleaseDC (win->hwnd, hdc);
}
#endif
Index: sound.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- sound.c 29 May 2006 23:59:53 -0000 1.14
+++ sound.c 3 Jun 2006 07:03:42 -0000 1.15
@@ -111,6 +111,8 @@
newsounds[OTHER_FIRE_TORP_WAV] = Mix_LoadWAV(DATAFILE("nt_fire_torp_other.wav"));
newsounds[INTRO_WAV] = Mix_LoadWAV(DATAFILE("nt_intro.wav"));
newsounds[MESSAGE_WAV] = Mix_LoadWAV(DATAFILE("nt_message.wav"));
+ newsounds[MESSAGE1_WAV] = Mix_LoadWAV(DATAFILE("nt_message1.wav"));
+ newsounds[MESSAGE2_WAV] = Mix_LoadWAV(DATAFILE("nt_message2.wav"));
newsounds[PHASER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser.wav"));
newsounds[PHASER_OTHER_WAV] = Mix_LoadWAV(DATAFILE("nt_phaser_other.wav"));
newsounds[PLASMA_HIT_WAV] = Mix_LoadWAV(DATAFILE("nt_plasma_hit.wav"));