netpanzer-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netPanzer-CVS] netpanzer/src DirectX/DDraw/DirectDraw.cpp Dire...


From: Tyler Nielsen
Subject: [netPanzer-CVS] netpanzer/src DirectX/DDraw/DirectDraw.cpp Dire...
Date: Sun, 07 Sep 2003 22:44:23 -0400

CVSROOT:        /cvsroot/netpanzer
Module name:    netpanzer
Branch:         
Changes by:     Tyler Nielsen <address@hidden>  03/09/07 22:44:23

Modified files:
        src/DirectX/DDraw: DirectDraw.cpp DirectDrawglobals.hpp 
        src/Lib/2D     : Span.cpp 
        src/NetPanzer/Interfaces: GameManager.cpp 
        src/NetPanzer/Port: Wrldsprt.cpp blitters.cpp 
        src/UILib      : UIDraw.hpp 
        src/UILib/SDL  : SDLDraw.cpp 

Log message:
        Changed gets calls into fgets (removed linker warning)
        Removed global variable DBUFFER_WIDTH, replaced it with a 
Screen->getWidth() call
        Changed all _asm in blitter.cpp, changed most _asm in Span.cpp

Patches:
Index: netpanzer/src/DirectX/DDraw/DirectDraw.cpp
diff -u netpanzer/src/DirectX/DDraw/DirectDraw.cpp:1.5 
netpanzer/src/DirectX/DDraw/DirectDraw.cpp:1.6
--- netpanzer/src/DirectX/DDraw/DirectDraw.cpp:1.5      Sat Sep  6 07:04:14 2003
+++ netpanzer/src/DirectX/DDraw/DirectDraw.cpp  Sun Sep  7 22:44:22 2003
@@ -46,8 +46,6 @@
 
 unsigned char *DOUBLE_BUFFER = 0;
 
-unsigned long DBUFFER_WIDTH;
-unsigned long DBUFFER_HEIGHT;
 unsigned long DBUFFER_VIEW_WIDTH;
 unsigned long DBUFFER_VIEW_HEIGHT;
 unsigned long X_CLIP_OFS;
@@ -390,7 +388,9 @@
        {
                result = fullScreenSurfaceInitialization(width, height, bpp, 
modeFlags);
        }
-
+        curWidth = width;
+        curHeight = height;
+        curBPP = bpp;
 
        return( result ); 
 } // end setVideoMode
Index: netpanzer/src/DirectX/DDraw/DirectDrawglobals.hpp
diff -u netpanzer/src/DirectX/DDraw/DirectDrawglobals.hpp:1.4 
netpanzer/src/DirectX/DDraw/DirectDrawglobals.hpp:1.5
--- netpanzer/src/DirectX/DDraw/DirectDrawglobals.hpp:1.4       Sat Sep  6 
07:04:14 2003
+++ netpanzer/src/DirectX/DDraw/DirectDrawglobals.hpp   Sun Sep  7 22:44:22 2003
@@ -23,8 +23,6 @@
 #if 0
 extern DirectDraw DDraw;
 
-extern unsigned long DBUFFER_WIDTH;
-extern unsigned long DBUFFER_HEIGHT;
 extern unsigned long DBUFFER_VIEW_WIDTH;
 extern unsigned long DBUFFER_VIEW_HEIGHT;
 extern unsigned long X_CLIP_OFS;
Index: netpanzer/src/Lib/2D/Span.cpp
diff -u netpanzer/src/Lib/2D/Span.cpp:1.3 netpanzer/src/Lib/2D/Span.cpp:1.4
--- netpanzer/src/Lib/2D/Span.cpp:1.3   Fri Sep  5 22:01:18 2003
+++ netpanzer/src/Lib/2D/Span.cpp       Sun Sep  7 22:44:22 2003
@@ -25,9 +25,8 @@
 //--------------------------------------------------------------------------
 void bltTransSpan(PIX *dRow, const PIX *sRow, int pixelsPerRow)
 {
-
-       // XXX msvc assembler disabled...
-#ifdef MSVC
+       memcpy(dRow, sRow, pixelsPerRow*sizeof(PIX));
+#if 0
                _asm {
                        mov edi, [dRow]
                        mov esi, [sRow]
@@ -116,8 +115,13 @@
 {
        if (!allowSpanBlitting) { return; } // Remove for release candidate.
 
-       // XXX disable msvc assembler
-#ifdef MSVC
+       int idx;
+
+       for(idx=0;idx<pixelsPerRow;idx++) {
+         dRow[idx] = table[ (dRow[idx]<<8)+sRow[idx] ];
+       }
+
+#if 0
                _asm {
                        mov edi, [dRow]
                        mov esi, [sRow]
@@ -293,8 +297,12 @@
 
        if (!allowSpanBlitting) { return; } // Remove for release candidate.
 
-       // XXX disabled msvc assembler
-#ifdef MSVC
+        int idx;
+
+       for(idx=0;idx<pixelsPerRow;idx++)
+         dRow[idx] = table[dRow[idx]];
+
+#if 0
                _asm {
                        mov edi, [dRow]
                        mov ecx, [pixelsPerRow]
@@ -361,7 +369,6 @@
 void bltScaleSpan(PIX *dRow, const PIX *sRow, int srcX1FracWithCount, int 
stepAndDecCount, int stepWholePart)
 {
        if (!allowSpanBlitting) { return; } // Remove for release candidate.
-
        // XXX disabled msvc assembler
 #ifdef MSVC
                _asm {
Index: netpanzer/src/NetPanzer/Interfaces/GameManager.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.23 
netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.24
--- netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.23     Sun Sep  7 
14:45:12 2003
+++ netpanzer/src/NetPanzer/Interfaces/GameManager.cpp  Sun Sep  7 22:44:22 2003
@@ -1692,13 +1692,13 @@
   
   printf( "Map Name <%s> : ", GameConfig::getGameMapName() );
   fflush(stdout);
-  gets(input_str);
+  fgets(input_str, 256, stdin);
   if ( strlen(input_str) > 0 )
   {  GameConfig::setGameMapName( input_str ); }
 
   printf( "Players <%d> : ", GameConfig::GetNumberPlayers() );
   fflush(stdout);
-  gets(input_str);
+  fgets(input_str, 256, stdin);
   if ( strlen(input_str) > 0 )
    { 
     short players; 
@@ -1708,7 +1708,7 @@
 
   printf( "Units <%d> : ", GameConfig::GetNumberUnits() );
   fflush(stdout);
-  gets(input_str);
+  fgets(input_str, 256, stdin);
   if ( strlen(input_str) > 0 )
    { 
     short units; 
@@ -1726,7 +1726,7 @@
    printf( "(3) Time Limit \n" );
    printf( "Choose : " );
    fflush(stdout);
-   gets(input_str);
+   fgets(input_str, 256, stdin);
    sscanf( input_str, "%d", &game_type ); 
   } while( (game_type < 1) && (game_type > 3) );
  
@@ -1737,7 +1737,7 @@
       GameConfig::SetGameType(_gametype_objective);
       printf( "Outpost Occupation <%.0f %%> : ", 
GameConfig::getObjectiveOccuapationPercentage() );
       fflush(stdout);
-      gets(input_str);
+      fgets(input_str, 256, stdin);
       if ( strlen(input_str) > 0 )
        { 
         float percent; 
@@ -1751,7 +1751,7 @@
       GameConfig::SetGameType(_gametype_fraglimit);
       printf( "Frag Limit <%d> frags : ", GameConfig::GetFragLimit() );
       fflush(stdout);
-      gets(input_str);
+      fgets(input_str, 256, stdin);
       if ( strlen(input_str) > 0 )
        { 
         int frags; 
@@ -1765,7 +1765,7 @@
       GameConfig::SetGameType(_gametype_timelimit);
       printf( "Time Limit <%d> minutes: ", GameConfig::GetTimeLimit() );
       fflush(stdout);
-      gets(input_str);
+      fgets(input_str, 256, stdin);
       if ( strlen(input_str) > 0 )
        { 
         int time_limit; 
@@ -1778,13 +1778,13 @@
     
   printf( "PowerUps <NO> (Y/N) : " );
   fflush(stdout);
-  gets(input_str);
+  fgets(input_str, 256, stdin);
   if ( strcasecmp( "y", input_str ) == 0 )
    { GameConfig::setPowerUpState(true); }
 
   printf( "Server Name <Dedicated Server> :" );
   fflush(stdout);
-  gets(input_str);
+  fgets(input_str, 256, stdin);
   if ( strlen(input_str) > 0 )
    { GameConfig::SetPlayerName( input_str ); }
   else
Index: netpanzer/src/NetPanzer/Port/Wrldsprt.cpp
diff -u netpanzer/src/NetPanzer/Port/Wrldsprt.cpp:1.5 
netpanzer/src/NetPanzer/Port/Wrldsprt.cpp:1.6
--- netpanzer/src/NetPanzer/Port/Wrldsprt.cpp:1.5       Sat Sep  6 07:04:15 2003
+++ netpanzer/src/NetPanzer/Port/Wrldsprt.cpp   Sun Sep  7 22:44:22 2003
@@ -127,7 +127,7 @@
 
   //WorldViewInterface::getViewStart( 640, 480, &view_start_x, &view_start_y );
   
-  frame_offset = ((y - (view_start_y)) * DBUFFER_WIDTH) + (x - (view_start_x)) 
+ OFFSET_TO_VIEW;
+  frame_offset = ((y - (view_start_y)) * Screen->getWidth()) + (x - 
(view_start_x)) + OFFSET_TO_VIEW;
 
   Screen->lockDoubleBuffer( &double_buffer );
 
@@ -143,7 +143,7 @@
      x_size = (bbox_x2 - select_x_cut) - (bbox_x1 + select_x_cut);
      y_size = (bbox_y2 - select_y_cut) - (bbox_y1 + select_y_cut);
 
-     //frame_offset = ((y - (SCREEN_Y)) * DBUFFER_WIDTH) + (x - (SCREEN_X)) + 
OFFSET_TO_VIEW;
+     //frame_offset = ((y - (SCREEN_Y)) * Screen->getWidth()) + (x - 
(SCREEN_X)) + OFFSET_TO_VIEW;
 
      //blit_selector_square( x_size, y_size, frame_offset, DOUBLE_BUFFER); 
     }
@@ -293,7 +293,7 @@
   
   //WorldViewInterface::getViewStart( 640, 480, &view_start_x, &view_start_y );
   
-  frame_offset = ((y - (view_start_y)) * DBUFFER_WIDTH) + (x - (view_start_x)) 
+ OFFSET_TO_VIEW;
+  frame_offset = ((y - (view_start_y)) * Screen->getWidth()) + (x - 
(view_start_x)) + OFFSET_TO_VIEW;
 
   frame_data = anim->data + (anim->frame_size * frame_counter) + (direct * 
anim->direct_size);
   
@@ -309,7 +309,7 @@
      x_size = (bbox_x2 - select_x_cut) - (bbox_x1 + select_x_cut);
      y_size = (bbox_y2 - select_y_cut) - (bbox_y1 + select_y_cut);
 
-     frame_offset = ((y - (view_start_y)) * DBUFFER_WIDTH) + (x - 
(view_start_x)) + OFFSET_TO_VIEW;
+     frame_offset = ((y - (view_start_y)) * Screen->getWidth()) + (x - 
(view_start_x)) + OFFSET_TO_VIEW;
 
      blit_selector_square( x_size, y_size, frame_offset, double_buffer ); 
     }
Index: netpanzer/src/NetPanzer/Port/blitters.cpp
diff -u netpanzer/src/NetPanzer/Port/blitters.cpp:1.4 
netpanzer/src/NetPanzer/Port/blitters.cpp:1.5
--- netpanzer/src/NetPanzer/Port/blitters.cpp:1.4       Sat Sep  6 07:04:15 2003
+++ netpanzer/src/NetPanzer/Port/blitters.cpp   Sun Sep  7 22:44:22 2003
@@ -19,6 +19,8 @@
 #include <assert.h>
 #include "blitters.h"
 #include "codewiz.hpp"
+#include <string.h>
+#include "UIDraw.hpp"
 
 void blit_partial_xy( unsigned char *tile_ptr,unsigned char *buffer_ptr,short 
y_size,short x_size)
 {
@@ -27,8 +29,16 @@
        assert(y_size > 0);
        assert(x_size > 0);
 
-       // XXX disabled msvc assembler
-#ifdef MSVC
+       int y;
+       
+// XXX 32 should be at least a define, but probably a variable.  Pass in class 
instead of data pointer.
+       for(y=0; y<y_size; y++) {
+         memcpy(buffer_ptr, tile_ptr, x_size);
+         buffer_ptr += Screen->getWidth()-x_size;
+         tile_ptr   += 32-x_size;
+       }
+
+#if 0
   __asm
  {
                         mov  esi,tile_ptr;
@@ -95,8 +105,14 @@
 
 void blit_partial_y( unsigned char *tile_ptr, unsigned char *buffer_ptr, short 
y_size)
 {
-       // XXX disabled msvc assembler
-#ifdef MSVC
+       int y;
+       // XXX remove 'magic' 32
+       for(y=0; y<y_size; y++) {
+         memcpy(tile_ptr, buffer_ptr, 32);
+         tile_ptr += 32;
+         buffer_ptr += Screen->getWidth()-32;
+       }
+#if 0
   __asm
  { 
                         mov  esi,tile_ptr;
@@ -167,9 +183,18 @@
 void general_blitter( unsigned char x_size, unsigned char y_size, unsigned 
long frame_offset, 
                       unsigned char *buffer_ptr, unsigned char *dbuffer_ptr )
  {
+  int x,y;
+  dbuffer_ptr += frame_offset;
+  for(y=0; y<y_size; y++) {
+    for(x=0; x<x_size; x++) {
+      if(buffer_ptr[x] != 0)
+        dbuffer_ptr[x]=buffer_ptr[x];
+    }
+    buffer_ptr += Screen->getWidth()-x_size;
+    dbuffer_ptr += Screen->getWidth()-x_size;
+  }
 
-        // XXX disabled msvc assembler
-#ifdef MSVC
+#if 0
   __asm
   {
                         mov  ebx,0
@@ -219,8 +244,18 @@
 void blit_selector_square( unsigned char x_size, unsigned char y_size,
                            unsigned long frame_offset, unsigned char 
*dbuffer_ptr )
  {
-        // XXX disabled msvc assembler
-#ifdef MSVC
+       int y;
+       const char color = 0x47;
+       dbuffer_ptr += frame_offset;
+       memset(dbuffer_ptr, color, x_size);  //top
+       dbuffer_ptr += Screen->getWidth()-x_size;
+       for(y = 1; y < (y_size-1); y++) {
+         dbuffer_ptr[0] = color;  //left 
+         dbuffer_ptr[x_size-1] = color;  //right
+         dbuffer_ptr += Screen->getWidth()-x_size;
+       }
+       memset(dbuffer_ptr, color, x_size); //bottom
+#if 0
   __asm
    {
                         mov  ebx,0
Index: netpanzer/src/UILib/SDL/SDLDraw.cpp
diff -u netpanzer/src/UILib/SDL/SDLDraw.cpp:1.5 
netpanzer/src/UILib/SDL/SDLDraw.cpp:1.6
--- netpanzer/src/UILib/SDL/SDLDraw.cpp:1.5     Sat Sep  6 13:28:08 2003
+++ netpanzer/src/UILib/SDL/SDLDraw.cpp Sun Sep  7 22:44:22 2003
@@ -19,8 +19,6 @@
 #include "SDLDraw.hpp"
 
 // XXX fixme, need sensefull values here
-unsigned long DBUFFER_WIDTH;
-unsigned long DBUFFER_HEIGHT;
 unsigned long DBUFFER_VIEW_WIDTH;
 unsigned long DBUFFER_VIEW_HEIGHT;
 unsigned long X_CLIP_OFS;
@@ -52,6 +50,10 @@
        if(FrontBuffer==NULL)
                return false;
 
+       curWidth = width;
+       curHeight = height;
+       curBPP = bpp;
+       
        // let's scare the mouse :)
        SDL_ShowCursor(SDL_DISABLE);
        // and set a window title
Index: netpanzer/src/UILib/UIDraw.hpp
diff -u netpanzer/src/UILib/UIDraw.hpp:1.4 netpanzer/src/UILib/UIDraw.hpp:1.5
--- netpanzer/src/UILib/UIDraw.hpp:1.4  Sat Sep  6 07:04:15 2003
+++ netpanzer/src/UILib/UIDraw.hpp      Sun Sep  7 22:44:22 2003
@@ -31,6 +31,9 @@
 //---------------------------------------------------------------------------
 class UIDraw
 {
+protected:
+  int curWidth, curHeight, curBPP;
+
 public:
   virtual bool initialize() = 0;
   virtual void shutdown() = 0;
@@ -43,6 +46,10 @@
   virtual void restoreAll()=0;
   virtual bool copyDoubleBufferandFlip()=0;
   virtual void setPalette(RGBColor *color)=0;
+
+  int getWidth(void) { return curWidth; }
+  int getHeight(void) { return curHeight; }
+  int getBPP(void) { return curBPP; }
 }; // end DirectDraw
 
 // XXX some global vars, these should be avoided or at least moved inside the




reply via email to

[Prev in Thread] Current Thread [Next in Thread]