diff --git a/stepmania/Docs/SMLanProtocol.txt b/stepmania/Docs/SMLanProtocol.txt index 430c5b7dd0..6b9998027d 100644 --- a/stepmania/Docs/SMLanProtocol.txt +++ b/stepmania/Docs/SMLanProtocol.txt @@ -188,7 +188,8 @@ NOTE: Server responces always add 128, thus a server responce for no operation Desc: This introduces the server. Payload: Size Description - 1 Server protocol version + 1 Server protocol version //NOTE: if protocol version is 128+, then this + server is an SMOnline server NT Server Name 003: Allow Start @@ -370,6 +371,9 @@ Server SMOnline packets: If Room Title Update: NT Room Title NT Room Description + 1 Type of room: + 0: Chat room + 1: Game room If Room List Update: 1 Number of rooms diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index b1bcf161bb..796269343e 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -706,6 +706,7 @@ Fallback=ScreenSelectCourse DefaultSort=ENDLESS [ScreenNetRoom] +MusicSelectScreen=ScreenSMOnlineSelectMusic TitleBGColor=0.5,0.0,0.5,1.0 TitleBGWidth=100 TitleBGHeight=40 @@ -740,6 +741,10 @@ PrevScreen=ScreenTitleMenu NextScreen=ScreenStage Fallback=ScreenNetSelectMusic +[ScreenSMOnlineSelectMusic] +PrevScreen=ScreenNetRoom +Class=ScreenNetSelectMusic +Fallback=ScreenNetSelectMusic [ScreenNetSelectMusic] ChatInputBoxY=SCREEN_CENTER_Y+90 diff --git a/stepmania/src/ScreenNetRoom.cpp b/stepmania/src/ScreenNetRoom.cpp index 295aad9be8..a713cde8c6 100644 --- a/stepmania/src/ScreenNetRoom.cpp +++ b/stepmania/src/ScreenNetRoom.cpp @@ -94,6 +94,12 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM ) { case 0: //Room title Change m_textTitle.SetText( NSMAN->m_SMOnlinePacket.ReadNT() + '\n' + NSMAN->m_SMOnlinePacket.ReadNT() ); + if ( NSMAN->m_SMOnlinePacket.Read1() != 0 ) + { + CString SMOnlineSelectScreen; + THEME->GetMetric( m_sName, "MusicSelectScreen", SMOnlineSelectScreen ); + SCREENMAN->SetNewScreen( SMOnlineSelectScreen ); + } case 1: //Rooms list change { int numRooms = NSMAN->m_SMOnlinePacket.Read1();