[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netPanzer-CVS] netpanzer/src ChangeLog Lib/2D/Span.cpp Lib/2D/...
From: |
Matthias Braun |
Subject: |
[netPanzer-CVS] netpanzer/src ChangeLog Lib/2D/Span.cpp Lib/2D/... |
Date: |
Mon, 08 Sep 2003 11:32:06 -0400 |
CVSROOT: /cvsroot/netpanzer
Module name: netpanzer
Branch:
Changes by: Matthias Braun <address@hidden> 03/09/08 11:32:05
Modified files:
src : ChangeLog
src/Lib/2D : Span.cpp Surface.cpp
src/Lib/Particles: CloudParticle2D.cpp
src/Lib/View : View.cpp cInputField.hpp
src/NetPanzer/Classes: KeyBinder.cpp KeyBinder.hpp
SelectionBoxSprite.cpp
SelectionBoxSprite.hpp Sprite.cpp
Sprite.hpp WorldInputCmdProcessor.cpp
src/NetPanzer/Classes/Units: SpahPanzer.cpp
src/NetPanzer/Core/unix: main.cpp
src/NetPanzer/Interfaces: GameManager.cpp GameManager.hpp
KeyboardInterface.cpp
KeyboardInterface.hpp MapInterface.cpp
src/NetPanzer/Interfaces/unix: NetworkClientUnix.cpp
src/NetPanzer/Views/Game: AreYouSureResignView.cpp
ProgressView.cpp WinnerMesgView.cpp
src/UILib : UIDraw.hpp
src/UILib/SDL : SDLDraw.cpp SDLDraw.hpp
Log message:
-added some basic music plying support (all files in sfx/music are
played in
random order, so simply put some .mp3 or .ogg there)
-enabled Tile engine code again
-fixed some bugs in the blitting routines
-fixed some more small bugs I introduced while porting
-Added new keyboard handling code
-fixed lots of code that assumed a key scancode is "only" a char
-added possibility to switch windows/fullscreen mode on ALT+ENTER
Patches:
Index: netpanzer/src/ChangeLog
diff -u netpanzer/src/ChangeLog:1.9 netpanzer/src/ChangeLog:1.10
--- netpanzer/src/ChangeLog:1.9 Sun Sep 7 16:49:02 2003
+++ netpanzer/src/ChangeLog Mon Sep 8 11:32:02 2003
@@ -1,3 +1,13 @@
+8-Sep-2003 by Matze Braun
+-added some basic music plying support (all files in sfx/music are played in
+ random order, so simply put some .mp3 or .ogg there)
+-enabled Tile engine code again
+-fixed some bugs in the blitting routines
+-fixed some more small bugs I introduced while porting
+-Added new keyboard handling code
+-fixed lots of code that assumed a key scancode is "only" a char
+-added possibility to switch windows/fullscreen mode on ALT+ENTER
+
7-Sep-2003 by Matze Braun
-removed NetMessageLog class (because it only contained shit ;-)
-slightly changed NetworkServer and NetworkClient interfaces
Index: netpanzer/src/Lib/2D/Span.cpp
diff -u netpanzer/src/Lib/2D/Span.cpp:1.5 netpanzer/src/Lib/2D/Span.cpp:1.6
--- netpanzer/src/Lib/2D/Span.cpp:1.5 Mon Sep 8 08:12:18 2003
+++ netpanzer/src/Lib/2D/Span.cpp Mon Sep 8 11:32:03 2003
@@ -25,6 +25,7 @@
//--------------------------------------------------------------------------
void bltTransSpan(PIX *dRow, const PIX *sRow, int pixelsPerRow)
{
+ // XXX not needed at the moment
memcpy(dRow, sRow, pixelsPerRow*sizeof(PIX));
#if 0
_asm {
@@ -115,10 +116,9 @@
{
if (!allowSpanBlitting) { return; } // Remove for release candidate.
- int idx;
-
- for(idx=0;idx<pixelsPerRow;idx++) {
- dRow[idx] = table[ (dRow[idx]<<8)+sRow[idx] ];
+ for(size_t idx=0;idx<pixelsPerRow;idx++) {
+ dRow[idx] = table[ (dRow[idx]<<8)+sRow[idx] ];
+ //dRow[idx] = table[sRow[idx]];
}
#if 0
@@ -294,12 +294,10 @@
//--------------------------------------------------------------------------
void bltLookupSpan(PIX *dRow, int pixelsPerRow, const PIX *table)
{
-
if (!allowSpanBlitting) { return; } // Remove for release candidate.
- int idx;
- for(idx=0;idx<pixelsPerRow;idx++)
- dRow[idx] = table[dRow[idx]];
+ for(size_t idx=0;idx<pixelsPerRow;idx++)
+ dRow[idx] = table[dRow[idx]];
#if 0
_asm {
@@ -365,9 +363,12 @@
} // end bltLookupSpan
//--------------------------------------------------------------------------
-void bltScaleSpan(PIX *dRow, const PIX *sRow, int srcX1FracWithCount, int
stepAndDecCount, int stepWholePart)
+void bltScaleSpan(PIX *dRow, const PIX *sRow, int srcX1FracWithCount,
+ int stepAndDecCount, int stepWholePart)
{
if (!allowSpanBlitting) { return; } // Remove for release candidate.
+ // XXX not needed anymore at the moment...
+
// XXX disabled msvc assembler
#ifdef MSVC
_asm {
Index: netpanzer/src/Lib/2D/Surface.cpp
diff -u netpanzer/src/Lib/2D/Surface.cpp:1.11
netpanzer/src/Lib/2D/Surface.cpp:1.12
--- netpanzer/src/Lib/2D/Surface.cpp:1.11 Mon Sep 8 09:12:02 2003
+++ netpanzer/src/Lib/2D/Surface.cpp Mon Sep 8 11:32:04 2003
@@ -793,7 +793,8 @@
{
for (int col = 0; col < pixelsPerRow; col++)
{
- if (*sPtr != transPix) *dPtr = color;
+ if (*sPtr != transPix)
+ *dPtr = color;
sPtr++;
dPtr++;
}
@@ -1975,11 +1976,20 @@
int stepWholePart = xSrcDelta >> 16;
int srcX1FracWithCount = (srcX1 << 16) | pixelsPerRow;
+ float xdelta = float(source.pix.x) / float(max.x - min.x);
for (int yCount = 0 ; yCount < numRows ; yCount++)
{
const PIX *sRow = source.rowPtr(srcY >> 16) + (srcX1 >> 16);
- bltBlendScaleSpan(dRow, sRow, srcX1FracWithCount,
stepAndDecCount, stepWholePart, table);
+ // bltBlendScaleSpan(dRow, sRow, srcX1FracWithCount,
stepAndDecCount, stepWholePart, table);
+
+ // XXX: WARNING SLOW CODE
+ float sPos = 0;
+ for(size_t x=0; x<pixelsPerRow; x++) {
+ dRow[x] = table[ (dRow[x]<<8) + sRow[(size_t) sPos]];
+ //dRow[x] = table[sRow[(size_t) sPos]];
+ sPos += xdelta;
+ }
srcY += ySrcDelta;
dRow += stride;
@@ -2109,7 +2119,7 @@
*/
// XXX: WARNING SLOW CODE
float sPos = 0;
- for(int x=0; x<pixelsPerRow; x++) {
+ for(size_t x=0; x<pixelsPerRow; x++) {
dRow[x] = sRow[(size_t) sPos];
sPos += xdelta;
}
@@ -2117,23 +2127,6 @@
srcY += ySrcDelta;
dRow += stride;
}
-}
-
-void Surface::bltScaleTrans(const Surface &source, const iRect &destRect)
const {
-
-//00401151 mov dword ptr [edi],edx
-//00401153 add edi,4
-//main_loop_entrance:
-//00401156 mov edx,7EFEFEFFh
-//0040115B mov eax,dword ptr [ecx]
-//0040115D add edx,eax
-//0040115F xor eax,0FFh
-//00401162 xor eax,edx
-//00401164 mov edx,dword ptr [ecx]
-//00401166 add ecx,4
-//00401169 test eax,81010100h
-//0040116E je main_loop(0x00401151)
-
}
// blendRect
Index: netpanzer/src/Lib/Particles/CloudParticle2D.cpp
diff -u netpanzer/src/Lib/Particles/CloudParticle2D.cpp:1.5
netpanzer/src/Lib/Particles/CloudParticle2D.cpp:1.6
--- netpanzer/src/Lib/Particles/CloudParticle2D.cpp:1.5 Sun Sep 7 16:49:02 2003
+++ netpanzer/src/Lib/Particles/CloudParticle2D.cpp Mon Sep 8 11:32:04 2003
@@ -15,8 +15,8 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
#include <config.h>
+
#include "CloudParticle2D.hpp"
#include "TimerInterface.hpp"
#include "PackedSurface.hpp"
Index: netpanzer/src/Lib/View/View.cpp
diff -u netpanzer/src/Lib/View/View.cpp:1.6 netpanzer/src/Lib/View/View.cpp:1.7
--- netpanzer/src/Lib/View/View.cpp:1.6 Sun Sep 7 16:49:03 2003
+++ netpanzer/src/Lib/View/View.cpp Mon Sep 8 11:32:04 2003
@@ -2084,13 +2084,13 @@
{
if (selectedInputField >= 0)
{
- char shit;
- while (KeyboardInterface::getChar(&shit))
+ int shit;
+ while (KeyboardInterface::getChar(shit))
{
// Check for extended code.
if (shit == 0)
{
- if (KeyboardInterface::getChar(&shit))
+ if (KeyboardInterface::getChar(shit))
{
inputFields[selectedInputField].addExtendedChar(shit);
} else
Index: netpanzer/src/Lib/View/cInputField.hpp
diff -u netpanzer/src/Lib/View/cInputField.hpp:1.2
netpanzer/src/Lib/View/cInputField.hpp:1.3
--- netpanzer/src/Lib/View/cInputField.hpp:1.2 Mon Sep 1 16:24:20 2003
+++ netpanzer/src/Lib/View/cInputField.hpp Mon Sep 8 11:32:04 2003
@@ -18,17 +18,10 @@
#ifndef __cInputField_hpp__
#define __cInputField_hpp__
-
-#if _MSC_VER > 1000
- #pragma once
-#endif
-
-
#include "iXY.hpp"
#include "iRect.hpp"
#include "Surface.hpp"
#include "KeyScanCodeDefs.h"
-
//--------------------------------------------------------------------------
class cInputFieldString
Index: netpanzer/src/NetPanzer/Classes/KeyBinder.cpp
diff -u netpanzer/src/NetPanzer/Classes/KeyBinder.cpp:1.3
netpanzer/src/NetPanzer/Classes/KeyBinder.cpp:1.4
--- netpanzer/src/NetPanzer/Classes/KeyBinder.cpp:1.3 Fri Sep 5 22:01:18 2003
+++ netpanzer/src/NetPanzer/Classes/KeyBinder.cpp Mon Sep 8 11:32:04 2003
@@ -16,14 +16,15 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <config.h>
+
+#include <SDL.h>
#include "KeyBinder.hpp"
#include <string.h>
-
KeyBinder KEY_BINDER;
-bool KeyBinder::locked_key_table[256];
+bool KeyBinder::locked_key_table[SDLK_LAST];
KeyBinder::KeyBinder( unsigned long key_list_size )
{
@@ -34,7 +35,7 @@
{
unsigned long key_list_index;
- key_list.initialize( key_list_size, 1, 256 );
+ key_list.initialize( key_list_size, 1, SDLK_LAST );
for( key_list_index = 0; key_list_index < key_list_size; key_list_index++ )
{
@@ -42,7 +43,7 @@
} // ** for
}
-KeyBinderElement * KeyBinder::findKeyScanCode( unsigned char key_scan_code )
+KeyBinderElement * KeyBinder::findKeyScanCode(int key_scan_code )
{
unsigned long key_list_size;
unsigned long key_list_index;
@@ -83,20 +84,20 @@
memset( locked_key_table, 0, sizeof( bool ) );
}
-void KeyBinder::lockKey( unsigned char key_scan_code )
+void KeyBinder::lockKey(int key_scan_code )
{
// this is always true, isn't it?
// assert( key_scan_code < 256 );
locked_key_table[ key_scan_code ] = true;
}
-void KeyBinder::unlockKey( unsigned char key_scan_code )
+void KeyBinder::unlockKey(int key_scan_code )
{
//assert( key_scan_code < 256 );
locked_key_table[ key_scan_code ] = false;
}
-void KeyBinder::bindAction( unsigned short action_enum, char *action_name,
unsigned char key_scan_code )
+void KeyBinder::bindAction( unsigned short action_enum, char *action_name, int
key_scan_code )
{
if ( isBound( key_scan_code ) == true )
return;
@@ -124,7 +125,7 @@
return( 0 );
}
-bool KeyBinder::isBound( unsigned char key_scan_code )
+bool KeyBinder::isBound(int key_scan_code )
{
KeyBinderElement *key_info;
@@ -137,7 +138,7 @@
return( false );
}
-unsigned short KeyBinder::getKeyAction( unsigned char key_scan_code )
+unsigned short KeyBinder::getKeyAction(int key_scan_code )
{
KeyBinderElement *key_info;
@@ -150,7 +151,7 @@
return(0);
}
-bool KeyBinder::getKeyAction( unsigned char key_scan_code, char *action_name )
+bool KeyBinder::getKeyAction(int key_scan_code, char *action_name )
{
KeyBinderElement *key_info;
Index: netpanzer/src/NetPanzer/Classes/KeyBinder.hpp
diff -u netpanzer/src/NetPanzer/Classes/KeyBinder.hpp:1.2
netpanzer/src/NetPanzer/Classes/KeyBinder.hpp:1.3
--- netpanzer/src/NetPanzer/Classes/KeyBinder.hpp:1.2 Mon Sep 1 16:24:20 2003
+++ netpanzer/src/NetPanzer/Classes/KeyBinder.hpp Mon Sep 8 11:32:04 2003
@@ -23,45 +23,41 @@
#include "KeyScanCodeDefs.h"
class KeyBinderElement
- {
- public:
- unsigned short action_enum;
- char action_name[32];
- unsigned char key_scan_code;
- };
+{
+public:
+ unsigned short action_enum;
+ char action_name[32];
+ int key_scan_code;
+};
class KeyBinder
- {
- protected:
- static bool locked_key_table[256];
+{
+protected:
+ static bool locked_key_table[SDLK_LAST];
- ArrayGrowableTemplate< KeyBinderElement > key_list;
+ ArrayGrowableTemplate< KeyBinderElement > key_list;
- KeyBinderElement * findKeyScanCode( unsigned char key_scan_code );
- KeyBinderElement * findActionName( char *action_name );
-
-
- public:
-
- KeyBinder() { }
- KeyBinder( unsigned long key_list_size );
+ KeyBinderElement * findKeyScanCode( int key_scan_code );
+ KeyBinderElement * findActionName( char *action_name );
+public:
+ KeyBinder() { }
+ KeyBinder( unsigned long key_list_size );
- void initialize( unsigned long key_list_size );
- static void staticInitialize( void );
+ void initialize( unsigned long key_list_size );
+ static void staticInitialize( void );
- void lockKey( unsigned char key_scan_code );
- void unlockKey( unsigned char key_scan_code );
+ void lockKey(int key_scan_code);
+ void unlockKey(int key_scan_code);
- void bindAction( unsigned short action_enum, char *action_name, unsigned
char key_scan_code );
- unsigned char getActionKey( unsigned short action_enum );
- unsigned char getActionKey( char *action_name );
+ void bindAction(unsigned short action_enum, char *action_name, int
key_scan_code );
+ unsigned char getActionKey( unsigned short action_enum );
+ unsigned char getActionKey( char *action_name );
- bool isBound( unsigned char key_scan_code );
+ bool isBound(int key_scan_code );
- unsigned short getKeyAction( unsigned char key_scan_code );
- bool getKeyAction( unsigned char key_scan_code, char *action_name );
-
- };
+ unsigned short getKeyAction(int key_scan_code );
+ bool getKeyAction(int key_scan_code, char *action_name );
+};
extern KeyBinder KEY_BINDER;
Index: netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.cpp
diff -u netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.cpp:1.3
netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.cpp:1.4
--- netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.cpp:1.3 Fri Sep 5
22:01:18 2003
+++ netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.cpp Mon Sep 8
11:32:04 2003
@@ -21,7 +21,7 @@
Surface UNIT_FLAGS_SURFACE;
-bool SelectionBoxSprite::isVisible( Recti &world_win )
+bool SelectionBoxSprite::isVisible(const Recti &world_win) const
{
if (
(world_win.contains( world_pos + selection_area.min ) && (visible ==
true ) ) ||
@@ -33,7 +33,7 @@
}
-void SelectionBoxSprite::blit( Surface *surface, Recti &world_win )
+void SelectionBoxSprite::blit( Surface *surface, const Recti &world_win )
{
PointXYi min_abs, max_abs;
Index: netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.hpp
diff -u netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.hpp:1.2
netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.hpp:1.3
--- netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.hpp:1.2 Mon Sep 1
16:24:20 2003
+++ netpanzer/src/NetPanzer/Classes/SelectionBoxSprite.hpp Mon Sep 8
11:32:04 2003
@@ -43,9 +43,9 @@
box_state = on_off;
}
- virtual bool isVisible( Recti &world_win );
+ virtual bool isVisible(const Recti &world_win ) const;
- virtual void blit( Surface *surface, Recti &world_win );
+ virtual void blit( Surface *surface, const Recti &world_win );
};
Index: netpanzer/src/NetPanzer/Classes/Sprite.cpp
diff -u netpanzer/src/NetPanzer/Classes/Sprite.cpp:1.3
netpanzer/src/NetPanzer/Classes/Sprite.cpp:1.4
--- netpanzer/src/NetPanzer/Classes/Sprite.cpp:1.3 Fri Sep 5 22:01:18 2003
+++ netpanzer/src/NetPanzer/Classes/Sprite.cpp Mon Sep 8 11:32:04 2003
@@ -40,7 +40,7 @@
setData( data, xPix, yPix, numFrames );
}
-bool SpriteSurface::isVisible( Recti &world_win )
+bool SpriteSurface::isVisible(const Recti &world_win ) const
{
long min_x;
long min_y;
@@ -77,11 +77,12 @@
*/
}
-void SpriteSurface::blit( Surface *surface, Recti &world_win )
+void SpriteSurface::blit( Surface *surface, const Recti &world_win )
{
PointXYi blit_offset;
blit_offset = (world_pos + attach_offset) - world_win.min;
+ printf("NormalSpriteBlit %d %d\n", blit_offset.x, blit_offset.y);
bltTrans( *surface, blit_offset.x, blit_offset.y );
}
@@ -101,7 +102,7 @@
drawMode = SOLID;
}
-bool SpritePacked::isVisible( Recti &world_win )
+bool SpritePacked::isVisible(const Recti &world_win ) const
{
long min_x;
long min_y;
@@ -138,7 +139,7 @@
*/
}
-void SpritePacked::blit( Surface *surface, Recti &world_win )
+void SpritePacked::blit( Surface *surface, const Recti &world_win )
{
PointXYi blit_offset;
Index: netpanzer/src/NetPanzer/Classes/Sprite.hpp
diff -u netpanzer/src/NetPanzer/Classes/Sprite.hpp:1.2
netpanzer/src/NetPanzer/Classes/Sprite.hpp:1.3
--- netpanzer/src/NetPanzer/Classes/Sprite.hpp:1.2 Mon Sep 1 16:24:20 2003
+++ netpanzer/src/NetPanzer/Classes/Sprite.hpp Mon Sep 8 11:32:04 2003
@@ -44,7 +44,7 @@
world_pos = worldPos;
}
- virtual bool isVisible(const Recti &world_win ) { return( false ); }
+ virtual bool isVisible(const Recti &world_win ) const = 0;
inline void setWorldPos( int x, int y )
{
@@ -76,15 +76,15 @@
Sprite::height = height;
}
- inline unsigned char getHeight( void )
- {
- return( height );
- }
+ inline unsigned char getHeight() const
+ {
+ return( height );
+ }
- inline void setVisiblity( bool visible )
- {
- Sprite::visible = visible;
- }
+ inline void setVisiblity(bool visible)
+ {
+ Sprite::visible = visible;
+ }
inline void attachSprite( Sprite *sprite, const PointXYi &attach )
{
@@ -100,7 +100,7 @@
iterator->next = sprite;
}
- virtual void blit( Surface *surface, const Recti &world_win ) { }
+ virtual void blit( Surface *surface, const Recti &world_win ) = 0;
inline void blitAll( Surface *surface, const Recti &world_win )
{
@@ -166,10 +166,9 @@
attach_offset.y = 0;
}
- virtual bool isVisible( Recti &world_win );
-
- virtual void blit( Surface *surface, Recti &world_win );
+ virtual bool isVisible(const Recti &world_win ) const;
+ virtual void blit( Surface *surface, const Recti &world_win );
};
class SpritePacked : public PackedSurface, public Sprite
@@ -237,10 +236,9 @@
attach_offset.y = 0;
}
- virtual bool isVisible( Recti &world_win );
+ virtual bool isVisible(const Recti &world_win ) const;
- virtual void blit( Surface *surface, Recti &world_win );
-
- };
+ virtual void blit( Surface *surface, const Recti &world_win );
+};
#endif // ** _SPRITE_HPP
Index: netpanzer/src/NetPanzer/Classes/Units/SpahPanzer.cpp
diff -u netpanzer/src/NetPanzer/Classes/Units/SpahPanzer.cpp:1.3
netpanzer/src/NetPanzer/Classes/Units/SpahPanzer.cpp:1.4
--- netpanzer/src/NetPanzer/Classes/Units/SpahPanzer.cpp:1.3 Fri Sep 5
22:01:19 2003
+++ netpanzer/src/NetPanzer/Classes/Units/SpahPanzer.cpp Mon Sep 8
11:32:04 2003
@@ -16,6 +16,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <config.h>
+
#include "SpahPanzer.hpp"
#include "UnitProfileInterface.hpp"
#include "Gdatstct.hpp"
Index: netpanzer/src/NetPanzer/Classes/WorldInputCmdProcessor.cpp
diff -u netpanzer/src/NetPanzer/Classes/WorldInputCmdProcessor.cpp:1.8
netpanzer/src/NetPanzer/Classes/WorldInputCmdProcessor.cpp:1.9
--- netpanzer/src/NetPanzer/Classes/WorldInputCmdProcessor.cpp:1.8 Sat Sep
6 18:31:20 2003
+++ netpanzer/src/NetPanzer/Classes/WorldInputCmdProcessor.cpp Mon Sep 8
11:32:04 2003
@@ -1002,14 +1002,14 @@
}
bool WorldInputCmdProcessor::getConsoleInputString( char *input_string )
- {
- char key_char;
- while (KeyboardInterface::getChar(&key_char))
+{
+ int key_char;
+ while (KeyboardInterface::getChar(key_char))
{
// Check for extended code.
if (key_char == 0)
{
- if (KeyboardInterface::getChar(&key_char))
+ if (KeyboardInterface::getChar(key_char))
{
ConsoleInterface::addExtendedChar(key_char);
if ((key_char == SDLK_RETURN) )
Index: netpanzer/src/NetPanzer/Core/unix/main.cpp
diff -u netpanzer/src/NetPanzer/Core/unix/main.cpp:1.6
netpanzer/src/NetPanzer/Core/unix/main.cpp:1.7
--- netpanzer/src/NetPanzer/Core/unix/main.cpp:1.6 Mon Sep 8 08:12:19 2003
+++ netpanzer/src/NetPanzer/Core/unix/main.cpp Mon Sep 8 11:32:04 2003
@@ -24,6 +24,7 @@
#include "Log.hpp"
#include "GameManager.hpp"
#include "MouseInterface.hpp"
+#include "KeyboardInterface.hpp"
#include "cMouse.hpp"
bool HandleSDLEvents();
@@ -31,6 +32,7 @@
int main(int argc, char** argv)
{
SDL_Init(SDL_INIT_TIMER);
+ SDL_EnableUNICODE(1);
srand(time(0));
#ifdef __USE_SVID
// the STL functions seem to use the 48er versions of the random
generator
@@ -71,6 +73,7 @@
{
static SDL_Event event;
+ KeyboardInterface::sampleKeyboard();
while(SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
@@ -107,6 +110,27 @@
cMouse::clearButtonMask(!MMOUSE_BUTTON_MASK);
break;
}
+ break;
+ case SDL_KEYDOWN:
+ {
+
KeyboardInterface::keyPressed(event.key.keysym.sym);
+ char c = event.key.keysym.unicode & 0x7F;
+ // XXX This is not optimal... we should find
another way to
+ // differentiate normal chars and special
keys...
+ if ( (c >= 'a' && c <= 'z') || (c >= '0' &&
c<='9')
+ || (c>= 'A' && c <= 'Z') || c == '_' ||
c=='.'
+ || c==' ') {
+ KeyboardInterface::putChar(c);
+ } else {
+ // it's not a normal char put the 0
into the char buffer to
+ // indicate extended chars...
+ KeyboardInterface::putChar(0);
+
KeyboardInterface::putChar(event.key.keysym.sym);
+ }
+ break;
+ }
+ case SDL_KEYUP:
+
KeyboardInterface::keyReleased(event.key.keysym.sym);
break;
}
}
Index: netpanzer/src/NetPanzer/Interfaces/GameManager.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.25
netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.26
--- netpanzer/src/NetPanzer/Interfaces/GameManager.cpp:1.25 Mon Sep 8
08:12:19 2003
+++ netpanzer/src/NetPanzer/Interfaces/GameManager.cpp Mon Sep 8 11:32:04 2003
@@ -189,18 +189,8 @@
LOG( ( "Setting Default Video Sub-system" ) );
current_video_mode_res = PointXYi(640,480);
-
-#ifdef _DEBUG
- //current_mode_flags = VIDEO_MODE_WINDOWED;
- current_mode_flags = VIDEO_MODE_DOUBLE_BUFFER;
- //current_mode_flags = VIDEO_MODE_TRIPLE_BUFFER;
-#else
- //current_mode_flags = VIDEO_MODE_WINDOWED;
- current_mode_flags = VIDEO_MODE_DOUBLE_BUFFER;
- //current_mode_flags = VIDEO_MODE_TRIPLE_BUFFER;
-#endif
-
- setVideoMode(current_video_mode_res);
+ // don't go fullscreen for now
+ setVideoMode(current_video_mode_res, false);
loadPalette("wads/netp.act");
}
@@ -304,7 +294,7 @@
}
// ******************************************************************
-void GameManager::setVideoMode( PointXYi mode_res )
+void GameManager::setVideoMode(const PointXYi& mode_res, bool fullscreen)
{
if(!Screen->isDisplayModeAvailable( mode_res.x, mode_res.y, 8 ))
throw Exception("desired Video mode not available.");
@@ -312,8 +302,8 @@
previous_video_mode_res = current_video_mode_res;
current_video_mode_res = mode_res;
- if (!Screen->setVideoMode(current_video_mode_res.x,
current_video_mode_res.y,
- 8, current_mode_flags))
+ if (!Screen->setVideoMode(current_video_mode_res.x,
+ current_video_mode_res.y, 8, fullscreen))
throw Exception("failed to set video mode.");
WorldViewInterface::setCameraSize( current_video_mode_res.x,
current_video_mode_res.y );
@@ -326,7 +316,7 @@
void GameManager::restorePreviousVideoMode()
{
- setVideoMode( previous_video_mode_res );
+ setVideoMode(previous_video_mode_res, Screen->isFullScreen());
}
void GameManager::drawTextCenteredOnScreen(const char *string, PIX color)
@@ -343,30 +333,30 @@
// ******************************************************************
void GameManager::increaseDisplayResolution()
- {
- PointXYi new_mode;
+{
+ PointXYi new_mode;
- drawTextCenteredOnScreen("Changing Resolution", Color::white);
+ drawTextCenteredOnScreen("Changing Resolution", Color::white);
- GameConfig::setNextGameScreenResolution();
+ GameConfig::setNextGameScreenResolution();
- drawTextCenteredOnScreen("Changing Resolution", Color::white);
+ drawTextCenteredOnScreen("Changing Resolution", Color::white);
- new_mode = GameConfig::getGameScreenResolutionSize();
+ new_mode = GameConfig::getGameScreenResolutionSize();
- setVideoMode(new_mode);
+ setVideoMode(new_mode, Screen->isFullScreen());
- previous_video_mode_res = current_video_mode_res;
- current_video_mode_res = new_mode;
+ previous_video_mode_res = current_video_mode_res;
+ current_video_mode_res = new_mode;
- WorldViewInterface::setCameraSize( current_video_mode_res.x,
current_video_mode_res.y );
- FRAME_BUFFER.create(current_video_mode_res.x, current_video_mode_res.y,
current_video_mode_res.x, 1 );
- screen.createNoAlloc(current_video_mode_res);
- gameView.setSize( current_video_mode_res );
- Desktop::checkViewPositions();
- ConsoleInterface::setToSurfaceSize( current_video_mode_res );
+ WorldViewInterface::setCameraSize( current_video_mode_res.x,
current_video_mode_res.y );
+ FRAME_BUFFER.create(current_video_mode_res.x, current_video_mode_res.y,
current_video_mode_res.x, 1 );
+ screen.createNoAlloc(current_video_mode_res);
+ gameView.setSize( current_video_mode_res );
+ Desktop::checkViewPositions();
+ ConsoleInterface::setToSurfaceSize( current_video_mode_res );
- loadPalette( "wads/netp.act" );
+ loadPalette( "wads/netp.act" );
ConsoleInterface::postMessage( "Screen Resolution : %d x %d",
current_video_mode_res.x, current_video_mode_res.y );
}
@@ -385,7 +375,7 @@
new_mode = GameConfig::getGameScreenResolutionSize();
- setVideoMode(new_mode);
+ setVideoMode(new_mode, Screen->isFullScreen());
previous_video_mode_res = current_video_mode_res;
current_video_mode_res = new_mode;
@@ -627,7 +617,7 @@
void GameManager::processSystemKeys()
{
- unsigned char scan_code;
+ int scan_code;
if (Desktop::getVisible("GameView"))
{
@@ -767,6 +757,22 @@
decreaseDisplayResolution();
}
}
+
+ if (KeyboardInterface::getKeyPressed( SDLK_RETURN ) ==
true)
+ {
+ setVideoMode(current_video_mode_res,
!Screen->isFullScreen());
+
+ // TODO: put all this video mode change stuff
in an own function
+ WorldViewInterface::setCameraSize(
current_video_mode_res.x, current_video_mode_res.y );
+ FRAME_BUFFER.create(current_video_mode_res.x,
current_video_mode_res.y, current_video_mode_res.x, 1 );
+ screen.createNoAlloc(current_video_mode_res);
+ gameView.setSize( current_video_mode_res );
+ Desktop::checkViewPositions();
+ ConsoleInterface::setToSurfaceSize(
current_video_mode_res );
+ loadPalette("wads/netp.act");
+ ConsoleInterface::postMessage("Fullscreen : %s",
+ Screen->isFullScreen() ? "yes"
: "no" );
+ }
}
if (KeyboardInterface::getKeyPressed(SDLK_F2))
@@ -1923,7 +1929,7 @@
// ******************************************************************
void GameManager::inputLoop()
{
- KeyboardInterface::sampleKeyboard();
+ //KeyboardInterface::sampleKeyboard();
processSystemKeys();
Index: netpanzer/src/NetPanzer/Interfaces/GameManager.hpp
diff -u netpanzer/src/NetPanzer/Interfaces/GameManager.hpp:1.3
netpanzer/src/NetPanzer/Interfaces/GameManager.hpp:1.4
--- netpanzer/src/NetPanzer/Interfaces/GameManager.hpp:1.3 Fri Sep 5
19:01:50 2003
+++ netpanzer/src/NetPanzer/Interfaces/GameManager.hpp Mon Sep 8 11:32:04 2003
@@ -176,7 +176,7 @@
static void processSystemMessage( NetMessage *message );
- static void setVideoMode( PointXYi mode_res );
+ static void setVideoMode(const PointXYi& newmode, bool fullscreen);
static void restorePreviousVideoMode();
static void increaseDisplayResolution();
Index: netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.cpp:1.4
netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.cpp:1.5
--- netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.cpp:1.4 Fri Sep
5 22:01:19 2003
+++ netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.cpp Mon Sep 8
11:32:04 2003
@@ -15,10 +15,8 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifdef USE_SDL
#include <config.h>
-#include <SDL.h>
-#endif
+
#ifdef WIN32
#include <windows.h>
#include "DirectInput.hpp"
@@ -26,19 +24,35 @@
#include "KeyboardInterface.hpp"
-char KeyboardInterface::key_table[256];
-char KeyboardInterface::previous_key_state[256];
+bool KeyboardInterface::key_table[SDLK_LAST];
+bool KeyboardInterface::previous_key_state[SDLK_LAST];
-char KeyboardInterface::char_buffer[ _CHAR_BUFFER_SIZE ];
+int KeyboardInterface::char_buffer[ _CHAR_BUFFER_SIZE ];
unsigned long KeyboardInterface::char_buffer_front = 0;
unsigned long KeyboardInterface::char_buffer_rear = 0;
void KeyboardInterface::sampleKeyboard()
{
-#ifdef WIN32
- memcpy(previous_key_state, key_table, 256 * sizeof(char));
-
+ memcpy(previous_key_state, key_table, sizeof(key_table));
+#ifdef WIN32
DirectInput::getKeyboardState(key_table);
#endif
}
+void KeyboardInterface::keyPressed(int scancode) {
+ key_table[scancode] = true;
+}
+
+void KeyboardInterface::keyReleased(int scancode) {
+ key_table[scancode] = false;
+}
+
+bool KeyboardInterface::getKeyPressed(int scanCode)
+{
+ if (
+ KeyboardInterface::getKeyState(scanCode) == true &&
+ KeyboardInterface::getPrevKeyState(scanCode) == false)
+ return true;
+
+ return false;
+}
Index: netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.hpp
diff -u netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.hpp:1.3
netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.hpp:1.4
--- netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.hpp:1.3 Fri Sep
5 21:44:45 2003
+++ netpanzer/src/NetPanzer/Interfaces/KeyboardInterface.hpp Mon Sep 8
11:32:04 2003
@@ -18,6 +18,7 @@
#ifndef _KEYBOARDINTERFACE_HPP
#define _KEYBOARDINTERFACE_HPP
+#include <SDL.h>
#include <string.h>
#define _CHAR_BUFFER_SIZE 256
@@ -26,73 +27,59 @@
class KeyboardInterface
{
protected:
- static char key_table[256];
- static char previous_key_state[256];
- static char char_buffer[ _CHAR_BUFFER_SIZE ];
+ static bool key_table[SDLK_LAST];
+ static bool previous_key_state[SDLK_LAST];
+ static int char_buffer[ _CHAR_BUFFER_SIZE ];
static unsigned long char_buffer_front;
static unsigned long char_buffer_rear;
public:
static void clearKeyTable()
{
- memset(&key_table[0], 0, 256);
- memset(&previous_key_state[0], 0, 256);
+ memset(key_table, 0, sizeof(key_table));
+ memset(previous_key_state, 0, sizeof(previous_key_state));
}
static void sampleKeyboard();
+ static void keyPressed(int scancode);
+ static void keyReleased(int scancode);
- static bool getKeyPressed(unsigned char scanCode)
- {
- if (
- KeyboardInterface::getKeyState(scanCode) ==
true &&
- KeyboardInterface::getPrevKeyState(scanCode) ==
false)
- {
- return true;
- }
+ static bool getKeyPressed(int scanCode);
- return false;
+ static inline bool getKeyState(int scan_code)
+ {
+ return key_table[scan_code];
}
- static inline bool getKeyState( unsigned char scan_code )
+ static inline bool getPrevKeyState(int scan_code)
{
- if ( key_table[ scan_code ] & 0x80 )
- return true;
-
- return false;
+ return previous_key_state[scan_code];
}
- static inline bool getPrevKeyState( unsigned char scan_code )
- {
- if ( previous_key_state[ scan_code ] & 0x80 )
- return true;
-
- return false;
- }
-
- static inline void flushCharBuffer( void )
+ static inline void flushCharBuffer()
{
char_buffer_front = 0;
char_buffer_rear = 0;
}
- static inline bool getChar( char *c )
+ static inline bool getChar(int &c)
{
if ( char_buffer_front == char_buffer_rear )
return false;
char_buffer_front = ( char_buffer_front + 1 ) & _CHAR_BUFFER_MOD;
- *c = char_buffer[ char_buffer_front ];
+ c = char_buffer[ char_buffer_front ];
return true;
}
- static inline void putChar( char c )
+ static inline void putChar(int c)
{
char_buffer[ (char_buffer_rear + 1) & _CHAR_BUFFER_MOD ] = c;
char_buffer_rear = (char_buffer_rear + 1) & _CHAR_BUFFER_MOD;
}
- static inline void putChar( char c, int times )
+ static inline void putChar(int c, int times)
{
while( times != 0 )
{
Index: netpanzer/src/NetPanzer/Interfaces/MapInterface.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/MapInterface.cpp:1.4
netpanzer/src/NetPanzer/Interfaces/MapInterface.cpp:1.5
--- netpanzer/src/NetPanzer/Interfaces/MapInterface.cpp:1.4 Sat Sep 6
11:39:25 2003
+++ netpanzer/src/NetPanzer/Interfaces/MapInterface.cpp Mon Sep 8 11:32:04 2003
@@ -124,7 +124,7 @@
}
*/
-void MapInterface::generateMappingTable( void )
+void MapInterface::generateMappingTable()
{
unsigned short tile_count;
unsigned long map_size;
@@ -165,30 +165,27 @@
}
-void MapInterface::buildMiniMapSurface( void )
- {
- unsigned long map_x_size, x_index;
- unsigned long map_y_size, y_index;
- MapElementType map_value;
- unsigned char avg_color;
-
- map_x_size = main_map.getXsize();
- map_y_size = main_map.getYsize();
- mini_map_surface.create( map_x_size, map_y_size );
-
- for( y_index = 0; y_index < map_y_size; y_index++ )
- {
- for ( x_index = 0; x_index < map_x_size; x_index++ )
- {
- map_value = main_map.mapValue( x_index, y_index );
- avg_color = tile_set.getAverageTileColor( map_value );
- mini_map_surface._putPixel( x_index, y_index, (PIX) avg_color );
-
- } // ** for x_index
-
- } // ** for y_index
-
- }
+void MapInterface::buildMiniMapSurface()
+{
+ unsigned long map_x_size, x_index;
+ unsigned long map_y_size, y_index;
+ MapElementType map_value;
+ unsigned char avg_color;
+
+ map_x_size = main_map.getXsize();
+ map_y_size = main_map.getYsize();
+ mini_map_surface.create( map_x_size, map_y_size );
+
+ for( y_index = 0; y_index < map_y_size; y_index++ )
+ {
+ for ( x_index = 0; x_index < map_x_size; x_index++ )
+ {
+ map_value = main_map.mapValue( x_index, y_index );
+ avg_color = tile_set.getAverageTileColor( map_value );
+ mini_map_surface._putPixel( x_index, y_index, (PIX)
avg_color );
+ } // ** for x_index
+ } // ** for y_index
+}
unsigned char MapInterface::getMovementValue( PointXYi map_loc )
{
Index: netpanzer/src/NetPanzer/Interfaces/unix/NetworkClientUnix.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/unix/NetworkClientUnix.cpp:1.4
netpanzer/src/NetPanzer/Interfaces/unix/NetworkClientUnix.cpp:1.5
--- netpanzer/src/NetPanzer/Interfaces/unix/NetworkClientUnix.cpp:1.4 Sun Sep
7 14:45:12 2003
+++ netpanzer/src/NetPanzer/Interfaces/unix/NetworkClientUnix.cpp Mon Sep
8 11:32:05 2003
@@ -103,6 +103,14 @@
void NetworkClientUnix::sendMessage(NetMessage *message, size_t size, int
flags)
{
+ if ( connection_type == _connection_loop_back )
+ {
+ memmove( net_packet.data, (void *) message, size );
+ net_packet.packet_size = (unsigned short) size;
+ loop_back_recv_queue.enqueue( net_packet );
+ return;
+ }
+
if(!clientsocket)
return;
Index: netpanzer/src/NetPanzer/Views/Game/AreYouSureResignView.cpp
diff -u netpanzer/src/NetPanzer/Views/Game/AreYouSureResignView.cpp:1.6
netpanzer/src/NetPanzer/Views/Game/AreYouSureResignView.cpp:1.7
--- netpanzer/src/NetPanzer/Views/Game/AreYouSureResignView.cpp:1.6 Sat Sep
6 11:39:25 2003
+++ netpanzer/src/NetPanzer/Views/Game/AreYouSureResignView.cpp Mon Sep 8
11:32:05 2003
@@ -15,9 +15,8 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
-
#include <config.h>
+
#include "AreYouSureResignView.hpp"
#include "Desktop.hpp"
#include "DDHardSurface.hpp"
@@ -31,7 +30,6 @@
#include "VisualsView.hpp"
#include "InterfaceView.hpp"
-
//---------------------------------------------------------------------------
static void bYES()
{
@@ -49,7 +47,7 @@
//----------------------
// Swap to the menu resolution.
- GameManager::setVideoMode(iXY(640, 480));
+ GameManager::setVideoMode(iXY(640, 480), false);
GameManager::drawTextCenteredOnScreen("Loading Main View...",
Color::white);
Index: netpanzer/src/NetPanzer/Views/Game/ProgressView.cpp
diff -u netpanzer/src/NetPanzer/Views/Game/ProgressView.cpp:1.7
netpanzer/src/NetPanzer/Views/Game/ProgressView.cpp:1.8
--- netpanzer/src/NetPanzer/Views/Game/ProgressView.cpp:1.7 Sun Sep 7
16:49:03 2003
+++ netpanzer/src/NetPanzer/Views/Game/ProgressView.cpp Mon Sep 8 11:32:05 2003
@@ -202,7 +202,7 @@
{
if ( Desktop::getView("ProgressView")->getVisible() == false )
{
- GameManager::setVideoMode(iXY(640, 480));
+ GameManager::setVideoMode(iXY(640, 480), false);
GameManager::drawTextCenteredOnScreen("Sec...", Color::white);
Index: netpanzer/src/NetPanzer/Views/Game/WinnerMesgView.cpp
diff -u netpanzer/src/NetPanzer/Views/Game/WinnerMesgView.cpp:1.6
netpanzer/src/NetPanzer/Views/Game/WinnerMesgView.cpp:1.7
--- netpanzer/src/NetPanzer/Views/Game/WinnerMesgView.cpp:1.6 Sat Sep 6
11:39:25 2003
+++ netpanzer/src/NetPanzer/Views/Game/WinnerMesgView.cpp Mon Sep 8
11:32:05 2003
@@ -60,7 +60,7 @@
//----------------------
// Swap to the menu resolution.
- GameManager::setVideoMode(iXY(640, 480));
+ GameManager::setVideoMode(iXY(640, 480), false);
GameManager::drawTextCenteredOnScreen("Loading Main View...",
Color::white);
Index: netpanzer/src/UILib/SDL/SDLDraw.cpp
diff -u netpanzer/src/UILib/SDL/SDLDraw.cpp:1.7
netpanzer/src/UILib/SDL/SDLDraw.cpp:1.8
--- netpanzer/src/UILib/SDL/SDLDraw.cpp:1.7 Mon Sep 8 08:12:19 2003
+++ netpanzer/src/UILib/SDL/SDLDraw.cpp Mon Sep 8 11:32:05 2003
@@ -45,9 +45,10 @@
{
}
-bool SDLDraw::setVideoMode(DWORD width, DWORD height, DWORD bpp, BYTE
mode_flags)
+bool SDLDraw::setVideoMode(DWORD width, DWORD height, DWORD bpp, bool
fullscreen)
{
- Uint32 flags = 0 /* SDL_FULLSCREEN | SDL_DOUBLEBUF */;
+ Uint32 flags = 0;
+ flags |= fullscreen ? SDL_FULLSCREEN : 0;
FrontBuffer = SDL_SetVideoMode(width, height, bpp, flags);
if(FrontBuffer==NULL)
return false;
@@ -121,3 +122,9 @@
SDL_SetColors(FrontBuffer, c, 0, 256);
}
+
+bool SDLDraw::isFullScreen() const
+{
+ return FrontBuffer->flags & SDL_FULLSCREEN;
+}
+
Index: netpanzer/src/UILib/SDL/SDLDraw.hpp
diff -u netpanzer/src/UILib/SDL/SDLDraw.hpp:1.3
netpanzer/src/UILib/SDL/SDLDraw.hpp:1.4
--- netpanzer/src/UILib/SDL/SDLDraw.hpp:1.3 Sat Sep 6 07:04:15 2003
+++ netpanzer/src/UILib/SDL/SDLDraw.hpp Mon Sep 8 11:32:05 2003
@@ -36,7 +36,7 @@
bool initialize();
void shutdown();
- bool setVideoMode(DWORD width, DWORD height, DWORD bpp, BYTE
mode_flags);
+ bool setVideoMode(DWORD width, DWORD height, DWORD bpp, bool
fullscreen);
bool isDisplayModeAvailable(int width, int height, int bpp);
bool lockDoubleBuffer(BYTE **DoubleBuffer);
bool unlockDoubleBuffer();
@@ -45,6 +45,8 @@
void restoreAll();
bool copyDoubleBufferandFlip();
void setPalette(RGBColor *color);
+
+ virtual bool isFullScreen() const;
}; // end DirectDraw
#endif // end __UIDraw_hpp__
Index: netpanzer/src/UILib/UIDraw.hpp
diff -u netpanzer/src/UILib/UIDraw.hpp:1.6 netpanzer/src/UILib/UIDraw.hpp:1.7
--- netpanzer/src/UILib/UIDraw.hpp:1.6 Mon Sep 8 08:12:19 2003
+++ netpanzer/src/UILib/UIDraw.hpp Mon Sep 8 11:32:05 2003
@@ -21,12 +21,6 @@
#include "RGBColor.hpp"
-enum { VIDEO_MODE_WINDOWED = 0x01,
- VIDEO_MODE_TRIPLE_BUFFER = 0x02,
- VIDEO_MODE_DOUBLE_BUFFER = 0x04,
- VIDEO_MODE_AUTO_FBUFFER = 0x08,
- VIDEO_MODE_FORCE_MODE_SWITCH = 0x10, };
-
// DirectDraw class declarations
//---------------------------------------------------------------------------
class UIDraw
@@ -40,7 +34,7 @@
virtual bool initialize() = 0;
virtual void shutdown() = 0;
- virtual bool setVideoMode(DWORD width, DWORD height, DWORD bpp, BYTE
mode_flags) = 0;
+ virtual bool setVideoMode(DWORD width, DWORD height, DWORD bpp, bool
fullscreen) = 0;
virtual bool isDisplayModeAvailable(int width, int height, int bpp) = 0;
virtual bool lockDoubleBuffer(unsigned char **DoubleBuffer) = 0;
virtual bool unlockDoubleBuffer() = 0;
@@ -49,6 +43,8 @@
virtual void restoreAll()=0;
virtual bool copyDoubleBufferandFlip()=0;
virtual void setPalette(RGBColor *color)=0;
+
+ virtual bool isFullScreen() const = 0;
inline int getWidth() const
{ return curWidth; }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [netPanzer-CVS] netpanzer/src ChangeLog Lib/2D/Span.cpp Lib/2D/...,
Matthias Braun <=