ScreenNetEvaluation done... Waiting for server implementation.
This commit is contained in:
@@ -379,6 +379,14 @@ void NetworkSyncManager::StartRequest(short position)
|
|||||||
for (int i=0;i<2-players;i++)
|
for (int i=0;i<2-players;i++)
|
||||||
m_packet.WriteNT(""); //Write a NULL if no player
|
m_packet.WriteNT(""); //Write a NULL if no player
|
||||||
|
|
||||||
|
//This needs to be reset before ScreenEvaluation could possibly be called
|
||||||
|
for (int i=0; i< NETMAXPLAYERS; i++)
|
||||||
|
{
|
||||||
|
m_EvalPlayerData[i].grade=0;
|
||||||
|
m_EvalPlayerData[i].score=0;
|
||||||
|
for (int j=0;j<NETNUMTAPSCORES;j++)
|
||||||
|
m_EvalPlayerData[i].tapScores[j] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//Block until go is recieved.
|
//Block until go is recieved.
|
||||||
@@ -494,7 +502,14 @@ void NetworkSyncManager::ProcessInput()
|
|||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
|
int PlayersInPack = m_packet.Read1();
|
||||||
|
for (int i=0;i<PlayersInPack;i++)
|
||||||
|
m_EvalPlayerData[i].score = m_packet.Read4();
|
||||||
|
for (int i=0;i<PlayersInPack;i++)
|
||||||
|
m_EvalPlayerData[i].grade = m_packet.Read1();
|
||||||
|
for (int j=0;j<NETNUMTAPSCORES;j++)
|
||||||
|
for (int i=0;i<PlayersInPack;i++)
|
||||||
|
m_EvalPlayerData[i].tapScores[j] = m_packet.Read2();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5: //Scoreboard Update
|
case 5: //Scoreboard Update
|
||||||
|
|||||||
@@ -5,12 +5,19 @@
|
|||||||
|
|
||||||
#include "PlayerNumber.h"
|
#include "PlayerNumber.h"
|
||||||
|
|
||||||
|
|
||||||
class LoadingWindow;
|
class LoadingWindow;
|
||||||
|
|
||||||
#define NETMAXPLAYERS 32
|
#define NETMAXPLAYERS 32
|
||||||
const int NETPROTOCOLVERSION=1;
|
const int NETPROTOCOLVERSION=1;
|
||||||
const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets
|
const int NETMAXBUFFERSIZE=1020; //1024 - 4 bytes for EzSockets
|
||||||
|
const int NETNUMTAPSCORES=8;
|
||||||
|
|
||||||
|
struct EndOfGame_PlayerData
|
||||||
|
{
|
||||||
|
int score;
|
||||||
|
int grade;
|
||||||
|
int tapScores[NETNUMTAPSCORES]; //This will be a const soon enough
|
||||||
|
};
|
||||||
|
|
||||||
enum NSScoreBoardColumn
|
enum NSScoreBoardColumn
|
||||||
{
|
{
|
||||||
@@ -75,6 +82,9 @@ public:
|
|||||||
vector <int> m_ActivePlayer;
|
vector <int> m_ActivePlayer;
|
||||||
vector <CString> m_PlayerNames;
|
vector <CString> m_PlayerNames;
|
||||||
|
|
||||||
|
//Used for ScreenNetEvaluation
|
||||||
|
EndOfGame_PlayerData m_EvalPlayerData[NETMAXPLAYERS];
|
||||||
|
|
||||||
//Used togeather for
|
//Used togeather for
|
||||||
bool ChangedScoreboard(int Column); //If scoreboard changed since this function last called, then true.
|
bool ChangedScoreboard(int Column); //If scoreboard changed since this function last called, then true.
|
||||||
CString m_Scoreboard[NUM_NSSB_CATEGORIES];
|
CString m_Scoreboard[NUM_NSSB_CATEGORIES];
|
||||||
|
|||||||
@@ -1,6 +1,103 @@
|
|||||||
#include "ScreenNetEvaluation.h"
|
#include "ScreenNetEvaluation.h"
|
||||||
|
#include "ThemeManager.h"
|
||||||
|
#include "Gamestate.h"
|
||||||
|
|
||||||
|
const int NUM_SCORE_DIGITS = 9;
|
||||||
|
|
||||||
|
#define USERSBG_WIDTH THEME->GetMetricF("ScreenNetEvaluation","UsersBGWidth")
|
||||||
|
#define USERSBG_HEIGHT THEME->GetMetricF("ScreenNetEvaluation","UsersBGHeight")
|
||||||
|
#define USERSBG_COLOR THEME->GetMetricC("ScreenNetEvaluation","UsersBGColor")
|
||||||
|
|
||||||
|
#define USERDX THEME->GetMetricF("ScreenNetEvaluation","UserDX")
|
||||||
|
#define USERDY THEME->GetMetricF("ScreenNetEvaluation","UserDY")
|
||||||
|
|
||||||
ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName )
|
ScreenNetEvaluation::ScreenNetEvaluation (const CString & sClassName) : ScreenEvaluation( sClassName )
|
||||||
{
|
{
|
||||||
|
m_pActivePlayer = PLAYER_1;
|
||||||
|
|
||||||
|
FOREACH_PlayerNumber (pn)
|
||||||
|
if ( GAMESTATE->IsPlayerEnabled( pn ) )
|
||||||
|
m_pActivePlayer = pn;
|
||||||
|
|
||||||
|
int ShowSide;
|
||||||
|
|
||||||
|
if (m_pActivePlayer == PLAYER_1)
|
||||||
|
ShowSide = 2;
|
||||||
|
else
|
||||||
|
ShowSide = 1;
|
||||||
|
|
||||||
|
m_rectUsersBG.SetWidth( USERSBG_WIDTH );
|
||||||
|
m_rectUsersBG.SetHeight( USERSBG_HEIGHT );
|
||||||
|
m_rectUsersBG.SetDiffuse( USERSBG_COLOR );
|
||||||
|
m_rectUsersBG.SetName( "UsersBG" );
|
||||||
|
ON_COMMAND( m_rectUsersBG );
|
||||||
|
|
||||||
|
m_rectUsersBG.SetXY(
|
||||||
|
THEME->GetMetricF("ScreenNetEvaluation",ssprintf("UsersBG%dX",ShowSide)),
|
||||||
|
THEME->GetMetricF("ScreenNetEvaluation",ssprintf("UsersBG%dY",ShowSide)) );
|
||||||
|
|
||||||
|
this->AddChild( &m_rectUsersBG );
|
||||||
|
|
||||||
|
int cx = THEME->GetMetricF("ScreenNetEvaluation",ssprintf("User%dX",ShowSide));
|
||||||
|
int cy = THEME->GetMetricF("ScreenNetEvaluation",ssprintf("User%dY",ShowSide));
|
||||||
|
|
||||||
|
m_iActivePlayers = NSMAN->m_ActivePlayers;
|
||||||
|
m_iCurrentPlayer = 0;
|
||||||
|
|
||||||
|
for( int i=0; i<m_iActivePlayers; i++ )
|
||||||
|
{
|
||||||
|
if (NSMAN->m_PlayerNames[NSMAN->m_ActivePlayer[i]] == GAMESTATE->GetPlayerDisplayName(m_pActivePlayer) )
|
||||||
|
m_iCurrentPlayer = i;
|
||||||
|
|
||||||
|
m_textUsers[i].LoadFromFont( THEME->GetPathF(m_sName,"names") );
|
||||||
|
m_textUsers[i].SetName( "User" );
|
||||||
|
m_textUsers[i].SetShadowLength( 1 );
|
||||||
|
m_textUsers[i].SetXY( cx, cy );
|
||||||
|
m_textUsers[i].SetText( NSMAN->m_PlayerNames[NSMAN->m_ActivePlayer[i]] );
|
||||||
|
|
||||||
|
ON_COMMAND( m_textUsers[i] );
|
||||||
|
this->AddChild( &m_textUsers[i] );
|
||||||
|
cx+=USERDX;
|
||||||
|
cy+=USERDY;
|
||||||
|
}
|
||||||
|
|
||||||
|
COMMAND( m_textUsers[m_iCurrentPlayer], "Sel" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenNetEvaluation::MenuLeft( PlayerNumber pn, const InputEventType type )
|
||||||
|
{
|
||||||
|
MenuUp( pn, type );
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenNetEvaluation::MenuUp( PlayerNumber pn, const InputEventType type )
|
||||||
|
{
|
||||||
|
COMMAND( m_textUsers[m_iCurrentPlayer], "DeSel" );
|
||||||
|
m_iCurrentPlayer = (m_iCurrentPlayer + m_iActivePlayers - 1) % m_iActivePlayers;
|
||||||
|
COMMAND( m_textUsers[m_iCurrentPlayer], "Sel" );
|
||||||
|
UpdateStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenNetEvaluation::MenuRight( PlayerNumber pn, const InputEventType type )
|
||||||
|
{
|
||||||
|
MenuDown( pn, type );
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenNetEvaluation::MenuDown( PlayerNumber pn, const InputEventType type )
|
||||||
|
{
|
||||||
|
COMMAND( m_textUsers[m_iCurrentPlayer], "DeSel" );
|
||||||
|
m_iCurrentPlayer = (m_iCurrentPlayer + 1) % m_iActivePlayers;
|
||||||
|
COMMAND( m_textUsers[m_iCurrentPlayer], "Sel" );
|
||||||
|
UpdateStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenNetEvaluation::UpdateStats()
|
||||||
|
{
|
||||||
|
m_Grades[m_pActivePlayer].SetGrade( (PlayerNumber)m_pActivePlayer, (Grade)NSMAN->m_EvalPlayerData[m_iCurrentPlayer].grade );
|
||||||
|
m_Grades[m_pActivePlayer].Spin();
|
||||||
|
m_Grades[m_pActivePlayer].SettleImmediately();
|
||||||
|
|
||||||
|
m_textScore[m_pActivePlayer].SetText( ssprintf("%*.0i", NUM_SCORE_DIGITS, NSMAN->m_EvalPlayerData[m_iCurrentPlayer].score) );
|
||||||
|
|
||||||
|
for (int j=0;j<NETNUMTAPSCORES;j++)
|
||||||
|
m_textJudgeNumbers[j][m_pActivePlayer].SetText( ssprintf( "%d", NSMAN->m_EvalPlayerData[m_iCurrentPlayer].tapScores[j] ) );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,27 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "ScreenEvaluation.h"
|
#include "ScreenEvaluation.h"
|
||||||
|
#include "NetworkSyncManager.h"
|
||||||
|
#include "Quad.h"
|
||||||
|
#include "BitmapText.h"
|
||||||
|
|
||||||
class ScreenNetEvaluation: public ScreenEvaluation
|
class ScreenNetEvaluation: public ScreenEvaluation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ScreenNetEvaluation (const CString & sClassName);
|
ScreenNetEvaluation (const CString & sClassName);
|
||||||
|
protected:
|
||||||
|
virtual void MenuLeft( PlayerNumber pn, const InputEventType type );
|
||||||
|
virtual void MenuUp( PlayerNumber pn, const InputEventType type );
|
||||||
|
virtual void MenuRight( PlayerNumber pn, const InputEventType type );
|
||||||
|
virtual void MenuDown( PlayerNumber pn, const InputEventType type );
|
||||||
|
|
||||||
|
void UpdateStats( );
|
||||||
|
private:
|
||||||
|
Quad m_rectUsersBG;
|
||||||
|
|
||||||
|
BitmapText m_textUsers[NETMAXPLAYERS];
|
||||||
|
int m_iCurrentPlayer;
|
||||||
|
int m_iActivePlayers;
|
||||||
|
|
||||||
|
PlayerNumber m_pActivePlayer;
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user