Translate from Stepmania's note score to SMO's note score(step type).

This commit is contained in:
Josh Allen
2007-08-19 20:41:21 +00:00
parent f8be4f8426
commit 7d98b7ed16
3 changed files with 49 additions and 2 deletions
+32
View File
@@ -270,6 +270,7 @@ void NetworkSyncManager::ReportScore(int playerID, int step, int score, int comb
m_packet.ClearPacket();
m_packet.Write1( NSCGSU );
step = TranslateStepType(step);
uint8_t ctr = (uint8_t) (playerID * 16 + step - ( TNS_HitMine - 1 ) );
m_packet.Write1( ctr );
@@ -740,6 +741,37 @@ void NetworkSyncManager::SendSMOnline( )
NetPlayerClient->SendPack( (char*)&m_packet.Data , m_packet.Position );
}
SMOStepType NetworkSyncManager::TranslateStepType(int score)
{
/* Translate from Stepmania's constantly changing TapNoteScore to SMO's
note scores */
switch(score)
{
case TNS_HitMine:
return SMOST_HITMINE;
case TNS_AvoidMine:
return SMOST_AVOIDMINE;
case TNS_Miss:
return SMOST_MISS;
case TNS_W5:
return SMOST_W5;
case TNS_W4:
return SMOST_W4;
case TNS_W3:
return SMOST_W3;
case TNS_W2:
return SMOST_W2;
case TNS_W1:
return SMOST_W1;
case HNS_LetGo+TapNoteScore_Invalid:
return SMOST_LETGO;
case HNS_Held+TapNoteScore_Invalid:
return SMOST_HELD;
default:
return SMOST_UNUSED;
}
}
//Packet functions
uint8_t PacketFunctions::Read1()
+16 -1
View File
@@ -33,6 +33,21 @@ enum NSCommand
NUM_NS_COMMANDS
};
enum SMOStepType
{
SMOST_UNUSED = 0,
SMOST_HITMINE, //1
SMOST_AVOIDMINE, //2
SMOST_MISS, //Miss
SMOST_W5, //Boo
SMOST_W4, //Good
SMOST_W3, //Great
SMOST_W2, //Perfect
SMOST_W1, //Marvelous
SMOST_LETGO, //Let Go
SMOST_HELD //OK
};
const NSCommand NSServerOffset = (NSCommand)128;
struct EndOfGame_PlayerData
@@ -160,7 +175,7 @@ private:
#if !defined(WITHOUT_NETWORKING)
void ProcessInput();
SMOStepType TranslateStepType(int score);
void StartUp();
int m_playerID; //these are currently unused, but need to stay
+1 -1
View File
@@ -589,7 +589,7 @@ void ScoreKeeperNormal::HandleHoldScore( const TapNote &tn )
PlayerNumber pn = m_pPlayerState->m_PlayerNumber;
NSMAN->ReportScore(
pn,
holdScore+TNS_W1,
holdScore+TapNoteScore_Invalid,
m_pPlayerStageStats->m_iScore,
m_pPlayerStageStats->m_iCurCombo,
tn.result.fTapNoteOffset );