Fix crash when selecting room when list is empty
Fix graphical glitches when tweening
This commit is contained in:
@@ -174,12 +174,15 @@ void ScreenNetRoom::MenuStart( PlayerNumber pn )
|
|||||||
{
|
{
|
||||||
switch (m_SelectMode) {
|
switch (m_SelectMode) {
|
||||||
case SelectRooms:
|
case SelectRooms:
|
||||||
NSMAN->m_SMOnlinePacket.ClearPacket();
|
if ((m_iRoomPlace < m_RoomList.size())&&(m_iRoomPlace >= 0))
|
||||||
NSMAN->m_SMOnlinePacket.Write1( 1 );
|
{
|
||||||
NSMAN->m_SMOnlinePacket.Write1( 1 ); //Type (enter a room)
|
NSMAN->m_SMOnlinePacket.ClearPacket();
|
||||||
NSMAN->m_SMOnlinePacket.WriteNT( m_RoomList[m_iRoomPlace].GetText() );
|
NSMAN->m_SMOnlinePacket.Write1( 1 );
|
||||||
NSMAN->SendSMOnline( );
|
NSMAN->m_SMOnlinePacket.Write1( 1 ); //Type (enter a room)
|
||||||
ScreenNetSelectBase::MenuStart( pn );
|
NSMAN->m_SMOnlinePacket.WriteNT( m_RoomList[m_iRoomPlace].GetText() );
|
||||||
|
NSMAN->SendSMOnline( );
|
||||||
|
ScreenNetSelectBase::MenuStart( pn );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SelectMakeRoom:
|
case SelectMakeRoom:
|
||||||
VIRTUALKB.Reset(VKMODE_PROFILE); // allow all characters
|
VIRTUALKB.Reset(VKMODE_PROFILE); // allow all characters
|
||||||
@@ -275,8 +278,10 @@ void ScreenNetRoom::UpdateRoomsList()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this->AddChild( &m_RoomList[i] );
|
this->AddChild( &m_RoomList[i] );
|
||||||
if (cy > ROOMLOWERBOUND)
|
if (cy > ROOMLOWERBOUND) {
|
||||||
|
m_RoomList[i].StopTweening();
|
||||||
COMMAND(m_RoomList[i], "RoomsOff");
|
COMMAND(m_RoomList[i], "RoomsOff");
|
||||||
|
}
|
||||||
cx+=ROOMSPACEX;
|
cx+=ROOMSPACEX;
|
||||||
cy+=ROOMSPACEY;
|
cy+=ROOMSPACEY;
|
||||||
}
|
}
|
||||||
@@ -293,6 +298,7 @@ void ScreenNetRoom::CreateNewRoom( const CString& rName, const CString& rDesc )
|
|||||||
|
|
||||||
void ScreenNetRoom::ShiftRoomsUp() {
|
void ScreenNetRoom::ShiftRoomsUp() {
|
||||||
for (unsigned int x = 0; x < m_RoomList.size(); ++x) {
|
for (unsigned int x = 0; x < m_RoomList.size(); ++x) {
|
||||||
|
m_RoomList[x].StopTweening();
|
||||||
if ((m_RoomList[x].GetY()-ROOMSPACEY >= ROOMUPPERBOUND)&&(m_RoomList[x].GetY()-ROOMSPACEY < ROOMLOWERBOUND)) {
|
if ((m_RoomList[x].GetY()-ROOMSPACEY >= ROOMUPPERBOUND)&&(m_RoomList[x].GetY()-ROOMSPACEY < ROOMLOWERBOUND)) {
|
||||||
COMMAND(m_RoomList[x], "ShiftUp");
|
COMMAND(m_RoomList[x], "ShiftUp");
|
||||||
COMMAND(m_RoomList[x], "RoomsOn");
|
COMMAND(m_RoomList[x], "RoomsOn");
|
||||||
@@ -307,6 +313,7 @@ void ScreenNetRoom::ShiftRoomsDown()
|
|||||||
{
|
{
|
||||||
for( unsigned x = 0; x < m_RoomList.size(); ++x )
|
for( unsigned x = 0; x < m_RoomList.size(); ++x )
|
||||||
{
|
{
|
||||||
|
m_RoomList[x].StopTweening();
|
||||||
if ((m_RoomList[x].GetY()+ROOMSPACEY >= ROOMUPPERBOUND)&&(m_RoomList[x].GetY()+ROOMSPACEY < ROOMLOWERBOUND)) {
|
if ((m_RoomList[x].GetY()+ROOMSPACEY >= ROOMUPPERBOUND)&&(m_RoomList[x].GetY()+ROOMSPACEY < ROOMLOWERBOUND)) {
|
||||||
COMMAND(m_RoomList[x], "ShiftDown");
|
COMMAND(m_RoomList[x], "ShiftDown");
|
||||||
COMMAND(m_RoomList[x], "RoomsOn");
|
COMMAND(m_RoomList[x], "RoomsOn");
|
||||||
|
|||||||
Reference in New Issue
Block a user