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"));


_______________________________________________
netrek-cvs mailing list
[EMAIL PROTECTED]
http://mailman.us.netrek.org/mailman/listinfo/netrek-cvs

Reply via email to