Pull RoomInfoDisplay out of RoomWheel
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
#include "ScreenTextEntry.h"
|
#include "ScreenTextEntry.h"
|
||||||
#include "LocalizedString.h"
|
#include "LocalizedString.h"
|
||||||
#include "NetworkSyncManager.h"
|
#include "NetworkSyncManager.h"
|
||||||
|
#include "ScreenManager.h"
|
||||||
|
|
||||||
AutoScreenMessage( SM_BackFromRoomName )
|
AutoScreenMessage( SM_BackFromRoomName )
|
||||||
|
|
||||||
@@ -29,9 +30,6 @@ void RoomWheel::Load( RString sType )
|
|||||||
m_offset = 0;
|
m_offset = 0;
|
||||||
LOG->Trace( "RoomWheel::Load('%s')", sType.c_str() );
|
LOG->Trace( "RoomWheel::Load('%s')", sType.c_str() );
|
||||||
|
|
||||||
m_roomInfo.Load("RoomInfoDisplay");
|
|
||||||
this->AddChild(&m_roomInfo);
|
|
||||||
|
|
||||||
AddPerminateItem( new RoomWheelData(TYPE_GENERIC, "Create Room", "Create a new game room", THEME->GetMetricC( m_sName, "CreateRoomColor")) );
|
AddPerminateItem( new RoomWheelData(TYPE_GENERIC, "Create Room", "Create a new game room", THEME->GetMetricC( m_sName, "CreateRoomColor")) );
|
||||||
|
|
||||||
BuildWheelItemsData( m_CurWheelItemData );
|
BuildWheelItemsData( m_CurWheelItemData );
|
||||||
@@ -140,7 +138,8 @@ void RoomWheel::RemoveItem( int index )
|
|||||||
static LocalizedString ENTER_ROOM_NAME( "RoomWheel", "Enter room name" );
|
static LocalizedString ENTER_ROOM_NAME( "RoomWheel", "Enter room name" );
|
||||||
bool RoomWheel::Select()
|
bool RoomWheel::Select()
|
||||||
{
|
{
|
||||||
m_roomInfo.RetractInfoBox();
|
SCREENMAN->PostMessageToTopScreen( SM_RoomInfoRetract, 0 );
|
||||||
|
|
||||||
if( m_iSelection > 0 )
|
if( m_iSelection > 0 )
|
||||||
return WheelBase::Select();
|
return WheelBase::Select();
|
||||||
else if( m_iSelection == 0 )
|
else if( m_iSelection == 0 )
|
||||||
@@ -167,10 +166,10 @@ void RoomWheel::Move(int n)
|
|||||||
{
|
{
|
||||||
const RoomWheelData* data = GetItem(m_iSelection-m_offset);
|
const RoomWheelData* data = GetItem(m_iSelection-m_offset);
|
||||||
if (data != NULL)
|
if (data != NULL)
|
||||||
m_roomInfo.SetRoom( data );
|
SCREENMAN->PostMessageToTopScreen( SM_RoomInfoDeploy, 0 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_roomInfo.RetractInfoBox();
|
SCREENMAN->PostMessageToTopScreen( SM_RoomInfoRetract, 0 );
|
||||||
|
|
||||||
WheelBase::Move(n);
|
WheelBase::Move(n);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
#include "WheelItemBase.h"
|
#include "WheelItemBase.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
|
|
||||||
|
AutoScreenMessage( SM_RoomInfoRetract )
|
||||||
|
AutoScreenMessage( SM_RoomInfoDeploy )
|
||||||
|
|
||||||
struct RoomWheelData : public WheelItemBaseData
|
struct RoomWheelData : public WheelItemBaseData
|
||||||
{
|
{
|
||||||
RoomWheelData() : m_iFlags(0) { WheelItemBaseData::WheelItemBaseData(); }
|
RoomWheelData() : m_iFlags(0) { WheelItemBaseData::WheelItemBaseData(); }
|
||||||
@@ -99,15 +102,13 @@ public:
|
|||||||
inline RoomWheelData* GetItem(unsigned int i) { return (RoomWheelData*)WheelBase::GetItem(i + m_offset); }
|
inline RoomWheelData* GetItem(unsigned int i) { return (RoomWheelData*)WheelBase::GetItem(i + m_offset); }
|
||||||
void AddPerminateItem(RoomWheelData* itemdata);
|
void AddPerminateItem(RoomWheelData* itemdata);
|
||||||
int GetCurrentIndex() const { return m_iSelection; }
|
int GetCurrentIndex() const { return m_iSelection; }
|
||||||
inline void SetRoomInfo( const RoomInfo& info) { m_roomInfo.SetRoomInfo(info); }
|
int GetPerminateOffset() const { return m_offset; }
|
||||||
void AddItem( WheelItemBaseData* itemdata );
|
void AddItem( WheelItemBaseData* itemdata );
|
||||||
void RemoveItem( int index );
|
void RemoveItem( int index );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual WheelItemBase *MakeItem();
|
virtual WheelItemBase *MakeItem();
|
||||||
int m_offset;
|
int m_offset;
|
||||||
|
|
||||||
RoomInfoDisplay m_roomInfo;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -59,12 +59,14 @@ void ScreenNetRoom::Init()
|
|||||||
m_RoomWheel.SetName( "RoomWheel" );
|
m_RoomWheel.SetName( "RoomWheel" );
|
||||||
m_RoomWheel.BeginScreen();
|
m_RoomWheel.BeginScreen();
|
||||||
SET_XY( m_RoomWheel );
|
SET_XY( m_RoomWheel );
|
||||||
ON_COMMAND( m_RoomWheel );
|
|
||||||
m_RoomWheel.SetDrawOrder(1);
|
|
||||||
this->AddChild( &m_RoomWheel );
|
this->AddChild( &m_RoomWheel );
|
||||||
this->MoveToHead( &m_RoomWheel );
|
|
||||||
ON_COMMAND( m_RoomWheel );
|
ON_COMMAND( m_RoomWheel );
|
||||||
|
|
||||||
|
m_roomInfo.Load("RoomInfoDisplay");
|
||||||
|
m_roomInfo.SetDrawOrder(1);
|
||||||
|
this->AddChild( &m_roomInfo );
|
||||||
|
|
||||||
|
this->SortByDrawOrder();
|
||||||
NSMAN->ReportNSSOnOff(7);
|
NSMAN->ReportNSSOnOff(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,7 +160,7 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
for (int i = 0; i < info.numPlayers; i++)
|
for (int i = 0; i < info.numPlayers; i++)
|
||||||
info.players[i] = NSMAN->m_SMOnlinePacket.ReadNT();
|
info.players[i] = NSMAN->m_SMOnlinePacket.ReadNT();
|
||||||
|
|
||||||
m_RoomWheel.SetRoomInfo(info);
|
m_roomInfo.SetRoomInfo(info);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,6 +188,18 @@ void ScreenNetRoom::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
CreateNewRoom( m_newRoomName, m_newRoomDesc, m_newRoomPass);
|
CreateNewRoom( m_newRoomName, m_newRoomDesc, m_newRoomPass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( SM == SM_RoomInfoRetract )
|
||||||
|
{
|
||||||
|
m_roomInfo.RetractInfoBox();
|
||||||
|
}
|
||||||
|
else if ( SM == SM_RoomInfoDeploy )
|
||||||
|
{
|
||||||
|
int i = m_RoomWheel.GetCurrentIndex() - m_RoomWheel.GetPerminateOffset();
|
||||||
|
const RoomWheelData* data = m_RoomWheel.GetItem(i);
|
||||||
|
if (data != NULL)
|
||||||
|
m_roomInfo.SetRoom(data);
|
||||||
|
}
|
||||||
|
|
||||||
ScreenNetSelectBase::HandleScreenMessage( SM );
|
ScreenNetSelectBase::HandleScreenMessage( SM );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ private:
|
|||||||
RString m_newRoomName, m_newRoomDesc, m_newRoomPass;
|
RString m_newRoomName, m_newRoomDesc, m_newRoomPass;
|
||||||
|
|
||||||
RoomWheel m_RoomWheel;
|
RoomWheel m_RoomWheel;
|
||||||
|
RoomInfoDisplay m_roomInfo;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user