removed RageNetwork*, added attract sequence

This commit is contained in:
Chris Danford
2003-01-08 23:43:54 +00:00
parent 8c4a024888
commit 2171a071dc
28 changed files with 519 additions and 979 deletions
+31 -6
View File
@@ -717,9 +717,34 @@ Caution=Toggle whether the Caution screen is shown.
SongGroup=Toggle whether the Select Group screen is shown.
WheelSections=If YES, songs are broken down into sections in the Select Music screen.
[ScreenNetworkWaiting]
ServerInfoX=320
ServerInfoY=120
PlayerListX=320
PlayerListY=280
HelpText=Press Up to join, Down to unjoin.::Wait for more players to enter the game before joining.
[ScreenUnlock]
SecondsToShow=10
NextScreen=ScreenHighScores
[ScreenHighScores]
SecondsToShow=10
NextScreen=ScreenMemoryCard
[ScreenMemoryCard]
SecondsToShow=10
NextScreen=ScreenWarning
[ScreenWarning]
SecondsToShow=10
NextScreen=ScreenCompany
[ScreenCompany]
SecondsToShow=10
NextScreen=ScreenAlbums
[ScreenAlbums]
SecondsToShow=10
NextScreen=ScreenLogo
[ScreenLogo]
SecondsToShow=20
NextScreen=ScreenDemonstration
[ScreenDemonstration]
SecondsToShow=30
NextScreen=ScreenUnlock
-155
View File
@@ -1,155 +0,0 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: RageNetworkClient
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Brendan Walker
Chris Danford
-----------------------------------------------------------------------------
*/
#include "RageNetworkClient.h"
#include "RageUtil.h"
#include "RageException.h"
#include "RageLog.h"
#include "RageTimer.h"
#include "RageException.h"
#include "GameState.h" // remove this dependency later
#include "RageNetworkPacket.h"
#include "SDL_net-1.2.4/include/SDL_net.h"
//#ifdef _DEBUG
//#pragma comment(lib, "SDL_net-1.2.4/lib/SDL_netd.lib")
//#else
#pragma comment(lib, "SDL_net-1.2.4/lib/SDL_net.lib")
//#endif
RageNetworkClient* CLIENT = NULL;
const int MAX_CLIENTS = 16;
/*
///////////////////////////////
//
// THIS IS UNTESTED SINCE THE CONVERSION TO SDL_net!!!!!
//
///////////////////////////////
*/
RageNetworkClient::RageNetworkClient()
{
m_priSock = 0;
m_priSockSet = NULL;
/* Don't do this; it'll fire up things we might not want. Let StepMania.cpp
* do the initial SDL config. */
// SDL_Init(0); // this may have already been init'd somewhere else
if( SDLNet_Init() < 0 )
RageException::Throw("SDLNet_Init: %s\n", SDLNet_GetError());
// allocate socket sets
m_priSockSet = SDLNet_AllocSocketSet(1);
if(!m_priSockSet)
RageException::Throw("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
}
RageNetworkClient::~RageNetworkClient()
{
Disconnect();
SDLNet_FreeSocketSet( m_priSockSet );
SDLNet_Quit();
}
void RageNetworkClient::Disconnect()
{
if( m_priSock == NULL )
return;
SDLNet_TCP_DelSocket( m_priSockSet, m_priSock );
SDLNet_TCP_Close( m_priSock );
m_priSock = NULL;
}
void RageNetworkClient::Connect(CString host, unsigned short port)
{
Disconnect();
char szHost[1024];
strcpy( szHost, host );
IPaddress ip;
if( SDLNet_ResolveHost(&ip,szHost,port)==-1 )
{
LOG->Warn("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
return;
}
m_priSock=SDLNet_TCP_Open(&ip);
if( !m_priSock )
{
LOG->Warn("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
return;
}
SDLNet_TCP_AddSocket( m_priSockSet, m_priSock );
return;
}
void RageNetworkClient::Update( float fDeltaTime )
{
// receive
int numready = SDLNet_CheckSockets(m_priSockSet, 0);
if(numready==-1)
{
// XXX sorry, this was really noisy ... - glenn
// LOG->Warn("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
}
else if( numready )
{
if( SDLNet_SocketReady(m_priSock) )
{
RageNetworkPacket packet;
SDLNet_TCP_Recv( m_priSock, &packet, sizeof(RageNetworkPacket) );
switch( packet.type )
{
case RageNetworkPacket::update_game:
this->m_NetGameState = packet.game;
break;
default:
LOG->Warn( "Invalid packet received with type '%d'", packet.type );
break;
}
}
}
}
void RageNetworkClient::SendMyPlayerState( NetPlayerState ps )
{
RageNetworkPacket packet;
packet.type = RageNetworkPacket::update_player;
packet.player = ps;
SendToServer( &packet );
}
void RageNetworkClient::Send( TCPsocket& socket, RageNetworkPacket* pPacket )
{
int result = SDLNet_TCP_Send(socket,pPacket,sizeof(RageNetworkPacket));
if( result<int(sizeof(RageNetworkPacket)) )
{
LOG->Warn("SDLNet_TCP_Send: %s\n", SDLNet_GetError());
// It may be good to disconnect sock because it is likely invalid now.
}
}
void RageNetworkClient::SendToServer( RageNetworkPacket* pPacket )
{
Send( m_priSock, pPacket );
}
-54
View File
@@ -1,54 +0,0 @@
#ifndef RAGENETWORKCLIENT_H
#define RAGENETWORKCLIENT_H
/*
-----------------------------------------------------------------------------
Class: RageNetworkClient
Desc: Network transport layer. Note that this currently has SM-specific
functionality. All SM stuff should be moved out eventually.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
struct _TCPsocket;
typedef struct _TCPsocket *TCPsocket;
struct _SDLNet_SocketSet;
typedef struct _SDLNet_SocketSet *SDLNet_SocketSet;
#include "NetGameState.h"
class RageNetworkPacket;
class RageNetworkClient
{
public:
RageNetworkClient();
~RageNetworkClient();
void Update( float fDeltaTime );
void Connect(CString ip, unsigned short port);
void Disconnect();
void SendMyPlayerState( NetPlayerState ps ); // calling this implies bReady = true
NetGameState m_NetGameState;
protected:
void SendToServer( RageNetworkPacket* pPacket );
void Send( TCPsocket& socket, RageNetworkPacket* pPacket );
TCPsocket m_priSock; // client: active socket. server: listen socket
SDLNet_SocketSet m_priSockSet;
};
extern RageNetworkClient* CLIENT; // global and accessable from anywhere in our program
#endif
-30
View File
@@ -1,30 +0,0 @@
#ifndef RAGENETWORKPACKET
#define RAGENETWORKPACKET
#include "NetGameState.h"
const int MAX_DATA_SIZE = sizeof(NetGameState);
class RageNetworkPacket
{
public:
RageNetworkPacket() { type=invalid; }
~RageNetworkPacket() {}
enum {
invalid,
update_player, // sent by clients
update_game, // sent by server
go_to_next_screen // sent by server
} type;
union
{
// char data[MAX_DATA_SIZE];
NetGameState game;
NetPlayerState player;
};
};
#endif
-205
View File
@@ -1,205 +0,0 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: RageNetworkServer
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Brendan Walker
Chris Danford
-----------------------------------------------------------------------------
*/
#include "RageNetworkServer.h"
#include "RageUtil.h"
#include "RageException.h"
#include "RageLog.h"
#include "RageException.h"
#include "RageNetworkPacket.h"
#include "SDL_net-1.2.4/include/SDL_net.h"
//#ifdef _DEBUG
//#pragma comment(lib, "SDL_net-1.2.4/lib/SDL_netd.lib")
//#else
#pragma comment(lib, "SDL_net-1.2.4/lib/SDL_net.lib")
//#endif
#ifdef _DEBUG
#pragma comment(lib, "SDL-1.2.5/lib/SDLmaind.lib")
#else
#pragma comment(lib, "SDL-1.2.5/lib/SDLmain.lib")
#endif
/* Pull in all of our SDL libraries here. */
#ifdef _DEBUG
#pragma comment(lib, "SDL-1.2.5/lib/SDLd.lib")
#pragma comment(lib, "SDL_image-1.2/SDL_imaged.lib")
#else
#pragma comment(lib, "SDL-1.2.5/lib/SDL.lib")
#pragma comment(lib, "SDL_image-1.2/SDL_image.lib")
#endif
RageNetworkServer* SERVER = NULL;
const int MAX_CLIENTS = 16;
/*
///////////////////////////////
//
// THIS IS UNTESTED SINCE THE CONVERSION TO SDL_net!!!!!
//
///////////////////////////////
*/
RageNetworkServer::RageNetworkServer()
{
m_listenSock = 0;
m_listenSockSet = NULL;
m_clientSocksSet = NULL;
/* Don't do this; it'll fire up things we might not want. Let StepMania.cpp
* do the initial SDL config. */
// SDL_Init(0); // this may have already been init'd somewhere else
if( SDLNet_Init() < 0 )
RageException::Throw("SDLNet_Init: %s\n", SDLNet_GetError());
// allocate socket sets
m_listenSockSet = SDLNet_AllocSocketSet(1);
if(!m_listenSockSet)
RageException::Throw("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
m_clientSocksSet = SDLNet_AllocSocketSet(MAX_CLIENTS);
if(!m_clientSocksSet)
RageException::Throw("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
}
RageNetworkServer::~RageNetworkServer()
{
StopListening();
DisconnectAllClients();
SDLNet_FreeSocketSet( m_listenSockSet );
SDLNet_FreeSocketSet( m_clientSocksSet );
SDLNet_Quit();
}
void RageNetworkServer::StopListening()
{
if( m_listenSock == NULL )
return;
SDLNet_TCP_DelSocket( m_listenSockSet, m_listenSock );
SDLNet_TCP_Close( m_listenSock );
m_listenSock = NULL;
}
void RageNetworkServer::DisconnectAllClients()
{
// I hope passing NULL to these is OK...
for( unsigned int i=0; i<m_clientSocks.size(); i++ )
{
SDLNet_TCP_DelSocket( m_clientSocksSet, m_clientSocks[i] );
SDLNet_TCP_Close( m_clientSocks[i] );
}
m_clientSocks.erase( m_clientSocks.begin(), m_clientSocks.end() );
}
void RageNetworkServer::Listen(unsigned short port)
{
StopListening();
IPaddress ip;
if( SDLNet_ResolveHost(&ip,NULL,port)==-1 )
RageException::Throw("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
m_listenSock=SDLNet_TCP_Open(&ip);
if( !m_listenSock )
RageException::Throw("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
SDLNet_TCP_AddSocket( m_listenSockSet, m_listenSock );
}
void RageNetworkServer::Update( float fDeltaTime )
{
// accept
if( m_listenSock )
{
TCPsocket new_sock = SDLNet_TCP_Accept( m_listenSock ) ;
if( new_sock != 0 )
{
m_clientSocks.push_back( new_sock );
SDLNet_TCP_AddSocket( m_clientSocksSet, new_sock );
LOG->Trace( "Accepting new client." );
m_NetGameState.num_players = m_clientSocks.size();
}
}
// receive
if( m_clientSocks.size() > 0 ) // there are some clients connected
{
int numready = SDLNet_CheckSockets(m_clientSocksSet, 0);
if(numready==-1)
{
// XXX sorry, this was really noisy ... - glenn
// LOG->Warn("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
}
else if( numready > 0 )
{
for( unsigned int i=0; i<m_clientSocks.size(); i++ )
{
if( SDLNet_SocketReady(m_clientSocks[i]) )
{
RageNetworkPacket packet;
SDLNet_TCP_Recv( m_clientSocks[i], &packet, sizeof(RageNetworkPacket) );
switch( packet.type )
{
case RageNetworkPacket::update_player:
m_NetGameState.player[i] = packet.player;
break;
default:
LOG->Warn( "Invalid packet received with type '%d'", packet.type );
break;
}
}
}
}
}
}
void RageNetworkServer::TellClientsNetGameState()
{
// tell everyone about the new names
RageNetworkPacket packet;
packet.type = RageNetworkPacket::update_game;
packet.game = m_NetGameState;
this->SendToClients( &packet );
}
void RageNetworkServer::Send( TCPsocket& socket, RageNetworkPacket* pPacket )
{
}
void RageNetworkServer::SendToClients( RageNetworkPacket* pPacket )
{
for( int i=m_clientSocks.size()-1; i>=0; i-- ) // iterate backwards in case we need to delete
{
int result = SDLNet_TCP_Send(m_clientSocks[i],pPacket,sizeof(RageNetworkPacket));
if( result<int(sizeof(RageNetworkPacket)) )
{
LOG->Warn("SDLNet_TCP_Send: %s\n", SDLNet_GetError());
LOG->Trace( "disconnecting %d", i );
SDLNet_TCP_DelSocket( m_clientSocksSet, m_clientSocks[i] );
SDLNet_TCP_Close( m_clientSocks[i] );
m_clientSocks.erase( m_clientSocks.begin() + i );
}
}
}
-57
View File
@@ -1,57 +0,0 @@
#ifndef RAGENETWORKSERVER_H
#define RAGENETWORKSERVER_H
/*
-----------------------------------------------------------------------------
Class: RageNetworkServer
Desc: Network transport layer. Note that this currently has SM-specific
functionality. All SM stuff should be moved out eventually.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
struct _TCPsocket;
typedef struct _TCPsocket *TCPsocket;
struct _SDLNet_SocketSet;
typedef struct _SDLNet_SocketSet *SDLNet_SocketSet;
#include "NetGameState.h"
class RageNetworkPacket;
class RageNetworkServer
{
public:
RageNetworkServer();
~RageNetworkServer();
void Update( float fDeltaTime );
void Listen(unsigned short port);
void StopListening();
void DisconnectAllClients();
void TellClientsNetGameState();
NetGameState m_NetGameState;
protected:
void Send( TCPsocket& socket, RageNetworkPacket* pPacket );
void SendToClients( RageNetworkPacket* pPacket );
TCPsocket m_listenSock;
SDLNet_SocketSet m_listenSockSet;
vector<TCPsocket> m_clientSocks;
SDLNet_SocketSet m_clientSocksSet;
};
extern RageNetworkServer* SERVER; // global and accessable from anywhere in our program
#endif
+12
View File
@@ -0,0 +1,12 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenAlbums
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenAlbums
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenAlbums : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Albums"; }; // used to loop up theme metrics
virtual CString GetElementName() { return "albums"; }; // used to loop up theme elements
};
+135
View File
@@ -0,0 +1,135 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenAttract
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
#include "ScreenManager.h"
#include "GameConstantsAndTypes.h"
#include "RageUtil.h"
#include "StepMania.h"
#include "PrefsManager.h"
#include "RageLog.h"
#include "SongManager.h"
#include "AnnouncerManager.h"
#include "GameState.h"
#include "GameManager.h"
#include "InputMapper.h"
#include "ThemeManager.h"
#include "SDL_Utils.h"
#include "RageSoundManager.h"
#define SECONDS_TO_SHOW THEME->GetMetricF("Screen"+this->GetMetricName(),"SecondsToShow")
#define NEXT_SCREEN THEME->GetMetric("Screen"+this->GetMetricName(),"NextScreen")
const ScreenMessage SM_BeginFadingOut = ScreenMessage(SM_User+2);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+3);
ScreenAttract::ScreenAttract()
{
LOG->Trace( "ScreenAttract::ScreenAttract()" );
m_bFirstUpdate = true;
//
// I think it's better to do all the initialization here rather than have it scattered
// about in all the global singleton classes
//
GAMESTATE->Reset();
PREFSMAN->ReadGamePrefsFromDisk();
INPUTMAPPER->ReadMappingsFromDisk();
GAMESTATE->m_bPlayersCanJoin = true;
if( !GAMEMAN->DoesNoteSkinExist( GAMEMAN->GetCurNoteSkin() ) )
{
CStringArray asNoteSkinNames;
GAMEMAN->GetNoteSkinNames( asNoteSkinNames );
GAMEMAN->SwitchNoteSkin( asNoteSkinNames[0] );
}
if( !THEME->DoesThemeExist( THEME->GetCurThemeName() ) )
{
CString sGameName = GAMESTATE->GetCurrentGameDef()->m_szName;
if( THEME->DoesThemeExist( sGameName ) )
THEME->SwitchTheme( sGameName );
else
THEME->SwitchTheme( "default" );
}
PREFSMAN->SaveGamePrefsToDisk();
}
ScreenAttract::~ScreenAttract()
{
LOG->Trace( "ScreenAttract::~ScreenAttract()" );
}
void ScreenAttract::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{
// LOG->Trace( "ScreenAttract::Input()" );
if( m_Fade.IsClosing() )
return;
Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
}
void ScreenAttract::Update( float fDelta )
{
// We have to do initialization in the first update because this->GetElementName() won't
// work until the object has been fully constructed.
if( m_bFirstUpdate )
{
m_Background.LoadFromAniDir( THEME->GetPathTo("BGAnimations",this->GetElementName()) );
this->AddChild( &m_Background );
m_Fade.SetClosed();
m_Fade.OpenWipingRight( SM_None );
this->AddChild( &m_Fade );
SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo(this->GetElementName()) );
m_soundStart.Load( THEME->GetPathTo("Sounds","menu start") );
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds",this->GetElementName() + " music") );
this->SendScreenMessage( SM_BeginFadingOut, SECONDS_TO_SHOW );
m_bFirstUpdate = false;
}
Screen::Update(fDelta);
}
void ScreenAttract::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )
{
case SM_BeginFadingOut:
m_Fade.CloseWipingRight( SM_GoToNextScreen );
break;
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
}
}
void ScreenAttract::MenuStart( PlayerNumber pn )
{
GAMESTATE->m_bSideIsJoined[pn] = true;
GAMESTATE->m_MasterPlayerNumber = pn;
GAMESTATE->m_bPlayersCanJoin = false;
SOUNDMAN->PlayOnce( THEME->GetPathTo("Sounds","insert coin") );
::Sleep( 1000 ); // do a little pause, like the arcade does
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
}
+47
View File
@@ -0,0 +1,47 @@
#ifndef ScreenAttract_H
#define ScreenAttract_H
/*
-----------------------------------------------------------------------------
Class: ScreenAttract
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "Screen.h"
#include "Sprite.h"
#include "BitmapText.h"
#include "TransitionFade.h"
#include "RandomSample.h"
#include "BGAnimation.h"
#include "RageTimer.h"
class ScreenAttract : public Screen
{
public:
ScreenAttract();
virtual ~ScreenAttract();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
virtual void Update( float fDelta );
virtual void HandleScreenMessage( const ScreenMessage SM );
private:
void MenuStart( PlayerNumber pn );
virtual CString GetMetricName() = 0; // used to loop up theme metrics
virtual CString GetElementName() = 0; // used to loop up theme elements
bool m_bFirstUpdate;
BGAnimation m_Background;
TransitionFade m_Fade;
RandomSample m_soundStart;
};
#endif
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenCompany
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenCompany : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Company"; }; // used to look up theme metrics
virtual CString GetElementName() { return "company"; }; // used to look up theme elements
};
+12
View File
@@ -0,0 +1,12 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenDemonstration
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenDemonstration
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenDemonstration : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Demonstration"; }; // used to look up theme metrics
virtual CString GetElementName() { return "demonstration"; }; // used to look up theme elements
};
+12
View File
@@ -0,0 +1,12 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenHighScores
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenHighScores
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenHighScores : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "HighScores"; }; // used to loop up theme metrics
virtual CString GetElementName() { return "high scores"; }; // used to loop up theme elements
};
+7 -23
View File
@@ -1,42 +1,26 @@
#ifndef SCREENHOWTOPLAY_H
#define SCREENHOWTOPLAY_H
/*
-----------------------------------------------------------------------------
Class: ScreenHowToPlay
Desc: A grid of options, and the selected option is drawn with a highlight rectangle.
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "Screen.h"
#include "Sprite.h"
#include "RandomSample.h"
#include "TransitionInvisible.h"
#include "MenuElements.h"
#include "ScreenAttract.h"
class ScreenHowToPlay : public Screen
class ScreenHowToPlay : public ScreenAttract
{
public:
ScreenHowToPlay();
virtual ~ScreenHowToPlay();
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
virtual void HandleScreenMessage( const ScreenMessage SM );
private:
virtual CString GetMetricName() { return "HowToPlay"; }; // used to look up theme metrics
virtual CString GetElementName() { return "how to play"; }; // used to look up theme elements
virtual void MenuBack( PlayerNumber pn );
virtual void MenuStart( PlayerNumber pn );
protected:
Sprite m_sprHowToPlay;
MenuElements m_Menu;
};
#endif
@@ -1,7 +1,7 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenHowToPlay
Class: ScreenInstructions
Desc: See header.
@@ -10,7 +10,7 @@
-----------------------------------------------------------------------------
*/
#include "ScreenHowToPlay.h"
#include "ScreenInstructions.h"
#include "RageTextureManager.h"
#include "RageUtil.h"
#include "RageSoundManager.h"
@@ -22,19 +22,19 @@
#include "PrefsManager.h"
#define HELP_TEXT THEME->GetMetric("ScreenHowToPlay","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenHowToPlay","TimerSeconds")
#define NEXT_SCREEN_ARCADE THEME->GetMetric("ScreenHowToPlay","NextScreenArcade")
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenHowToPlay","NextScreenOni")
#define HELP_TEXT THEME->GetMetric("ScreenInstructions","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenInstructions","TimerSeconds")
#define NEXT_SCREEN_ARCADE THEME->GetMetric("ScreenInstructions","NextScreenArcade")
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenInstructions","NextScreenOni")
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
ScreenHowToPlay::ScreenHowToPlay()
ScreenInstructions::ScreenInstructions()
{
LOG->Trace( "ScreenHowToPlay::ScreenHowToPlay()" );
LOG->Trace( "ScreenInstructions::ScreenInstructions()" );
m_Menu.Load(
THEME->GetPathTo("BGAnimations","How To Play"),
@@ -80,26 +80,26 @@ ScreenHowToPlay::ScreenHowToPlay()
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","how to play music") );
}
ScreenHowToPlay::~ScreenHowToPlay()
ScreenInstructions::~ScreenInstructions()
{
LOG->Trace( "ScreenHowToPlay::~ScreenHowToPlay()" );
LOG->Trace( "ScreenInstructions::~ScreenInstructions()" );
}
void ScreenHowToPlay::Update( float fDeltaTime )
void ScreenInstructions::Update( float fDeltaTime )
{
//LOG->Trace( "ScreenHowToPlay::Update(%f)", fDeltaTime );
//LOG->Trace( "ScreenInstructions::Update(%f)", fDeltaTime );
Screen::Update( fDeltaTime );
}
void ScreenHowToPlay::DrawPrimitives()
void ScreenInstructions::DrawPrimitives()
{
m_Menu.DrawBottomLayer();
m_Menu.DrawTopLayer();
Screen::DrawPrimitives(); // draw How To Play graphic on top of all the others!
}
void ScreenHowToPlay::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
void ScreenInstructions::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{
if( m_Menu.IsClosing() )
return;
@@ -108,7 +108,7 @@ void ScreenHowToPlay::Input( const DeviceInput& DeviceI, const InputEventType ty
Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
}
void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
void ScreenInstructions::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )
{
@@ -135,12 +135,12 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
}
}
void ScreenHowToPlay::MenuBack( PlayerNumber pn )
void ScreenInstructions::MenuBack( PlayerNumber pn )
{
m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
}
void ScreenHowToPlay::MenuStart( PlayerNumber pn )
void ScreenInstructions::MenuStart( PlayerNumber pn )
{
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
@@ -1,43 +1,42 @@
#ifndef ScreenInstructions_H
#define ScreenInstructions_H
/*
-----------------------------------------------------------------------------
Class: ScreenNetworkWaiting
Class: ScreenInstructions
Desc: See header.
Desc: A grid of options, and the selected option is drawn with a highlight rectangle.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "Screen.h"
#include "SongSelector.h"
#include "BitmapText.h"
#include "TransitionFade.h"
#include "RandomSample.h"
class ScreenNetworkWaiting : public Screen
#include "Screen.h"
#include "Sprite.h"
#include "RandomSample.h"
#include "TransitionInvisible.h"
#include "MenuElements.h"
class ScreenInstructions : public Screen
{
public:
ScreenNetworkWaiting();
virtual ~ScreenNetworkWaiting();
ScreenInstructions();
virtual ~ScreenInstructions();
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
virtual void HandleScreenMessage( const ScreenMessage SM );
virtual void MenuUp( PlayerNumber pn );
virtual void MenuDown( PlayerNumber pn );
private:
virtual void MenuBack( PlayerNumber pn );
virtual void MenuStart( PlayerNumber pn );
protected:
Sprite m_sprHowToPlay;
MenuElements m_Menu;
BitmapText m_textServerInfo;
BitmapText m_textPlayerList;
bool m_bReady;
float m_fUpdateTimer;
};
#endif
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenLogo
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenLogo : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Logo"; }; // used to look up theme metrics
virtual CString GetElementName() { return "logo"; }; // used to look up theme elements
};
+16 -3
View File
@@ -176,7 +176,6 @@ void ScreenManager::Input( const DeviceInput& DeviceI, const InputEventType type
#include "ScreenMachineOptions.h"
#include "ScreenMapControllers.h"
#include "ScreenMusicScroll.h"
#include "ScreenNetworkWaiting.h"
#include "ScreenPlayerOptions.h"
#include "ScreenSandbox.h"
#include "ScreenSelectCourse.h"
@@ -190,7 +189,14 @@ void ScreenManager::Input( const DeviceInput& DeviceI, const InputEventType type
#include "ScreenStage.h"
#include "ScreenTitleMenu.h"
#include "ScreenEz2SelectMusic.h"
#include "ScreenWarning.h"
#include "ScreenHighScores.h"
#include "ScreenMemoryCard.h"
#include "ScreenCompany.h"
#include "ScreenAlbums.h"
#include "ScreenLogo.h"
#include "ScreenUnlock.h"
#include "ScreenDemonstration.h"
#include "ScreenPrompt.h"
#include "ScreenTextEntry.h"
@@ -216,7 +222,6 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName )
else if( 0==stricmp(sClassName, "ScreenMapControllers") ) ret = new ScreenMapControllers;
else if( 0==stricmp(sClassName, "ScreenInputOptions") ) ret = new ScreenInputOptions;
else if( 0==stricmp(sClassName, "ScreenMusicScroll") ) ret = new ScreenMusicScroll;
else if( 0==stricmp(sClassName, "ScreenNetworkWaiting") ) ret = new ScreenNetworkWaiting;
else if( 0==stricmp(sClassName, "ScreenPlayerOptions") ) ret = new ScreenPlayerOptions;
else if( 0==stricmp(sClassName, "ScreenSandbox") ) ret = new ScreenSandbox;
else if( 0==stricmp(sClassName, "ScreenSelectCourse") ) ret = new ScreenSelectCourse;
@@ -230,6 +235,14 @@ Screen* ScreenManager::MakeNewScreen( CString sClassName )
else if( 0==stricmp(sClassName, "ScreenStage") ) ret = new ScreenStage;
else if( 0==stricmp(sClassName, "ScreenTitleMenu") ) ret = new ScreenTitleMenu;
else if( 0==stricmp(sClassName, "ScreenEz2SelectMusic") ) ret = new ScreenEz2SelectMusic;
else if( 0==stricmp(sClassName, "ScreenWarning") ) ret = new ScreenWarning;
else if( 0==stricmp(sClassName, "ScreenHighScores") ) ret = new ScreenHighScores;
else if( 0==stricmp(sClassName, "ScreenMemoryCard") ) ret = new ScreenMemoryCard;
else if( 0==stricmp(sClassName, "ScreenCompany") ) ret = new ScreenCompany;
else if( 0==stricmp(sClassName, "ScreenAlbums") ) ret = new ScreenAlbums;
else if( 0==stricmp(sClassName, "ScreenLogo") ) ret = new ScreenLogo;
else if( 0==stricmp(sClassName, "ScreenUnlock") ) ret = new ScreenUnlock;
else if( 0==stricmp(sClassName, "ScreenDemonstration") ) ret = new ScreenDemonstration;
else
RageException::Throw( "Invalid Screen class name '%s'", sClassName.GetString() );
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenMemoryCard
Desc: .
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenMemoryCard : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "MemoryCard"; }; // used to look up theme metrics
virtual CString GetElementName() { return "memory card"; }; // used to look up theme elements
};
-170
View File
@@ -1,170 +0,0 @@
#include "stdafx.h"
/*
-----------------------------------------------------------------------------
Class: ScreenNetworkWaiting
Desc: The main title screen and menu.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenNetworkWaiting.h"
#include "SongManager.h"
#include "ScreenManager.h"
#include "GameConstantsAndTypes.h"
#include "RageUtil.h"
#include "PrefsManager.h"
#include "GameManager.h"
#include "RageLog.h"
#include "GameState.h"
#include "RageSoundManager.h"
#include "ThemeManager.h"
#include "RageNetworkClient.h"
#include "NetGameState.h"
#include "InputMapper.h"
//
// Defines specific to ScreenNetworkWaiting
//
const int SERVER_WAIT_TIMEOUT_SECS = 60;
const float REFRESH_SECONDS = 0.2f;
#define SERVER_INFO_X THEME->GetMetricF("ScreenNetworkWaiting","ServerInfoX")
#define SERVER_INFO_Y THEME->GetMetricF("ScreenNetworkWaiting","ServerInfoY")
#define PLAYER_LIST_X THEME->GetMetricF("ScreenNetworkWaiting","PlayerListX")
#define PLAYER_LIST_Y THEME->GetMetricF("ScreenNetworkWaiting","PlayerListY")
#define HELP_TEXT THEME->GetMetric("ScreenNetworkWaiting","HelpText")
const ScreenMessage SM_ServerGoToNextScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+3);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+4);
ScreenNetworkWaiting::ScreenNetworkWaiting()
{
LOG->Trace( "ScreenNetworkWaiting::ScreenNetworkWaiting()" );
//
// I think it's better to do all the initialization here rather than have it scattered
// about in all the global singleton classes
//
GAMESTATE->Reset();
PREFSMAN->ReadGamePrefsFromDisk();
INPUTMAPPER->ReadMappingsFromDisk();
GAMESTATE->m_bPlayersCanJoin = true;
if( !GAMEMAN->DoesNoteSkinExist( GAMEMAN->GetCurNoteSkin() ) )
{
CStringArray asNoteSkinNames;
GAMEMAN->GetNoteSkinNames( asNoteSkinNames );
GAMEMAN->SwitchNoteSkin( asNoteSkinNames[0] );
}
if( !THEME->DoesThemeExist( THEME->GetCurThemeName() ) )
{
CString sGameName = GAMESTATE->GetCurrentGameDef()->m_szName;
if( THEME->DoesThemeExist( sGameName ) )
THEME->SwitchTheme( sGameName );
else
THEME->SwitchTheme( "default" );
}
PREFSMAN->SaveGamePrefsToDisk();
m_Menu.Load(
THEME->GetPathTo("BGAnimations","network waiting"),
THEME->GetPathTo("Graphics","network waiting top edge"),
HELP_TEXT, false, false, 99
);
this->AddChild( &m_Menu );
m_textServerInfo.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
m_textServerInfo.SetXY( SERVER_INFO_X, SERVER_INFO_Y );
m_textServerInfo.SetText( "Server Info" );
this->AddChild( &m_textServerInfo );
m_textPlayerList.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
m_textPlayerList.SetXY( PLAYER_LIST_X, PLAYER_LIST_Y );
this->AddChild( &m_textPlayerList );
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","network waiting music") );
m_Menu.TweenOnScreenFromBlack( SM_None );
m_bReady = false;
NetPlayerState ps = { "billy", 100, 100, m_bReady };
CLIENT->SendMyPlayerState( ps );
m_fUpdateTimer = REFRESH_SECONDS;
}
ScreenNetworkWaiting::~ScreenNetworkWaiting()
{
LOG->Trace( "ScreenNetworkWaiting::~ScreenNetworkWaiting()" );
}
void ScreenNetworkWaiting::Update( float fDeltaTime )
{
Screen::Update( fDeltaTime );
m_fUpdateTimer -= fDeltaTime;
if( m_fUpdateTimer < 0 )
{
CString s;
NetGameState& gns = CLIENT->m_NetGameState;
for( int i=0; i<gns.num_players; i++ )
{
s += gns.player[i].name;
s += gns.player[i].bReady ? " (Ready)" : " (Not Ready)";
s += '\n';
}
m_textPlayerList.SetText( s );
m_fUpdateTimer = REFRESH_SECONDS;
}
}
void ScreenNetworkWaiting::DrawPrimitives()
{
m_Menu.DrawBottomLayer();
Screen::DrawPrimitives();
m_Menu.DrawTopLayer();
}
void ScreenNetworkWaiting::Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI )
{
LOG->Trace( "ScreenNetworkWaiting::Input()" );
Screen::Input( DeviceI, type, GameI, MenuI, StyleI );
}
void ScreenNetworkWaiting::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )
{
case SM_ServerGoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenNetworkMenu" );
break;
}
}
void ScreenNetworkWaiting::MenuUp( PlayerNumber pn )
{
m_bReady = true;
NetPlayerState ps = { "billy", 100, 100, m_bReady };
CLIENT->SendMyPlayerState( ps );
}
void ScreenNetworkWaiting::MenuDown( PlayerNumber pn )
{
m_bReady = false;
NetPlayerState ps = { "billy", 100, 100, m_bReady };
CLIENT->SendMyPlayerState( ps );
}
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenUnlock
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenUnlock : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Unlock"; }; // used to look up theme metrics
virtual CString GetElementName() { return "unlock"; }; // used to look up theme elements
};
+26
View File
@@ -0,0 +1,26 @@
/*
-----------------------------------------------------------------------------
Class: ScreenWarning
Desc: Base class for all attraction screens.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ScreenAttract.h"
class ScreenWarning : public ScreenAttract
{
public:
private:
virtual CString GetMetricName() { return "Warning"; }; // used to look up theme metrics
virtual CString GetElementName() { return "warning"; }; // used to look up theme elements
};
+3 -36
View File
@@ -20,7 +20,6 @@
#include "RageInput.h"
#include "RageTimer.h"
#include "RageException.h"
#include "RageNetworkClient.h"
#include "RageMath.h"
#include "arch/arch.h"
@@ -74,11 +73,6 @@ HWND g_hWndMain = NULL;
#include <time.h>
// command line arguments
CString g_sSongPath = "";
CString g_sServerIP = "";
const int SM_PORT = 573; // "Ko" + "na" + "mitsu"
static void ChangeToDirOfExecutable(const char *argv0)
{
@@ -144,16 +138,6 @@ int main(int argc, char* argv[])
atexit(SDL_Quit); /* Clean up on exit */
/*
* Handle command line args.
* Only allow one command line arg so we can validate the number of
* parameters easier.
*/
if( argc > 1 )
g_sSongPath = argv[1];
if( argc > 2 )
g_sServerIP = argv[2];
SetUnhandledExceptionFilter(CrashHandler);
InitThreadData("Main thread");
VDCHECKPOINT;
@@ -202,7 +186,6 @@ int main(int argc, char* argv[])
ANNOUNCER = new AnnouncerManager;
INPUTFILTER = new InputFilter;
INPUTMAPPER = new InputMapper;
CLIENT = new RageNetworkClient;
INPUTQUEUE = new InputQueue;
SONGINDEX = new SongCacheIndex;
/* depends on SONGINDEX: */
@@ -237,23 +220,9 @@ int main(int argc, char* argv[])
FONT = new FontManager;
SCREENMAN = new ScreenManager;
/*
* Load initial screen depending on network mode
*/
if( g_sServerIP != "" )
{
// immediately try to connect to server
GAMESTATE->m_pCurSong = SONGMAN->GetSongFromDir( g_sSongPath );
if( GAMESTATE->m_pCurSong == NULL )
RageException::Throw( "The song '%s' is required to play this network game.", g_sSongPath.GetString() );
CLIENT->Connect( (const char*)g_sServerIP, SM_PORT );
SCREENMAN->SetNewScreen( "ScreenNetworkWaiting" );
}
else
{
// normal game
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
}
// normal game
SCREENMAN->SetNewScreen( "ScreenWarning" );
/* Run the main loop. */
GameLoop();
@@ -281,7 +250,6 @@ int main(int argc, char* argv[])
#endif
SAFE_DELETE( SCREENMAN );
SAFE_DELETE( CLIENT );
SAFE_DELETE( INPUTQUEUE );
SAFE_DELETE( INPUTMAPPER );
SAFE_DELETE( INPUTFILTER );
@@ -428,7 +396,6 @@ static void GameLoop()
TEXTUREMAN->Update( fDeltaTime );
SCREENMAN->Update( fDeltaTime );
CLIENT->Update( fDeltaTime );
SOUNDMAN->Update( fDeltaTime );
HandleInputEvents( fDeltaTime );
-40
View File
@@ -1,40 +0,0 @@
#include "stdafx.h"
#include "SDL.h"
#include "RageNetworkServer.h"
#include "RageLog.h"
const int SM_PORT = 573; // "Ko" + "na" + "mitsu"
int main(int argc, char* argv[])
{
SDL_Init(0); /* Fire up the SDL, but don't actually start any subsystems. */
LOG = new RageLog;
LOG->ShowConsole();
LOG->Trace( "smserver starting up..." );
SERVER = new RageNetworkServer;
SERVER->Listen( SM_PORT );
SDL_Event event;
while( 1 )
{
// process all queued events
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_KEYDOWN:
SERVER->DisconnectAllClients();
exit(1);
break;
}
}
SERVER->Update( 0.1f );
SERVER->TellClientsNetGameState();
::Sleep( 100 );
}
}
-134
View File
@@ -1,134 +0,0 @@
# Microsoft Developer Studio Project File - Name="smserver" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=smserver - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "smserver.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "smserver.mak" CFG="smserver - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "smserver - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "smserver - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "smserver - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "smserver - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "smserver - Win32 Release"
# Name "smserver - Win32 Debug"
# Begin Source File
SOURCE=.\NetGameState.h
# End Source File
# Begin Source File
SOURCE=.\RageException.cpp
# End Source File
# Begin Source File
SOURCE=.\RageException.h
# End Source File
# Begin Source File
SOURCE=.\RageLog.cpp
# End Source File
# Begin Source File
SOURCE=.\RageLog.h
# End Source File
# Begin Source File
SOURCE=.\RageNetworkPacket.h
# End Source File
# Begin Source File
SOURCE=.\RageNetworkServer.cpp
# End Source File
# Begin Source File
SOURCE=.\RageNetworkServer.h
# End Source File
# Begin Source File
SOURCE=.\RageUtil.cpp
# End Source File
# Begin Source File
SOURCE=.\RageUtil.h
# End Source File
# Begin Source File
SOURCE=.\smserver.cpp
# End Source File
# End Target
# End Project
-29
View File
@@ -1,29 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "smserver"=.\smserver.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################