forked from oerkki/voxelands
new multiplayer menu, pt2
This commit is contained in:
parent
b5895604f2
commit
c4405af431
|
@ -29,6 +29,7 @@
|
||||||
#include <IGUIEditBox.h>
|
#include <IGUIEditBox.h>
|
||||||
#include <IGUIButton.h>
|
#include <IGUIButton.h>
|
||||||
#include <IGUIStaticText.h>
|
#include <IGUIStaticText.h>
|
||||||
|
#include <IGUIListBox.h>
|
||||||
#include <IGUIFont.h>
|
#include <IGUIFont.h>
|
||||||
#include <IGUIScrollBar.h>
|
#include <IGUIScrollBar.h>
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
@ -48,6 +49,80 @@ GUIMultiplayerMenu::GUIMultiplayerMenu(
|
||||||
m_gamecallback(gamecallback)
|
m_gamecallback(gamecallback)
|
||||||
{
|
{
|
||||||
m_data.mmdata = data;
|
m_data.mmdata = data;
|
||||||
|
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"Voxelands Survival Server";
|
||||||
|
i.addr = L"servers.voxelands.com:30000";
|
||||||
|
i.mode = L"survival";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"Voxelands Adventure Server";
|
||||||
|
i.addr = L"servers.voxelands.com:30001";
|
||||||
|
i.mode = L"adventure";
|
||||||
|
i.is_favourite = true;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
m_data.favourites.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"Voxelands Creative Server";
|
||||||
|
i.addr = L"servers.voxelands.com:30002";
|
||||||
|
i.mode = L"creative";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"old public";
|
||||||
|
i.addr = L"106.187.103.195:30003";
|
||||||
|
i.mode = L"adventure";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"UK Voxelands Survival Server";
|
||||||
|
i.addr = L"uk.servers.voxelands.com:30000";
|
||||||
|
i.mode = L"survival";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"UK Voxelands Adventure Server";
|
||||||
|
i.addr = L"uk.servers.voxelands.com:30001";
|
||||||
|
i.mode = L"adventure";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"UK Voxelands Creative Server";
|
||||||
|
i.addr = L"uk.servers.voxelands.com:30002";
|
||||||
|
i.mode = L"creative";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ServerInfo i;
|
||||||
|
i.name = L"DE Holarse Linux-Gaming Voxelands-Server";
|
||||||
|
i.addr = L"holarse-linuxgaming.de:30000";
|
||||||
|
i.mode = L"survival";
|
||||||
|
i.is_favourite = false;
|
||||||
|
|
||||||
|
m_data.servers.push_back(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GUIMultiplayerMenu::~GUIMultiplayerMenu()
|
GUIMultiplayerMenu::~GUIMultiplayerMenu()
|
||||||
|
@ -151,14 +226,52 @@ void GUIMultiplayerMenu::regenerateGui(v2u32 screensize)
|
||||||
}
|
}
|
||||||
|
|
||||||
v2s32 topleft_content(250, 0);
|
v2s32 topleft_content(250, 0);
|
||||||
if (m_data.selected_tab == TAB_MP_CUSTOM) {
|
|
||||||
{
|
{
|
||||||
core::rect<s32> rect(0, 0, 550, 20);
|
core::rect<s32> rect(0, 0, 550, 20);
|
||||||
rect += topleft_content + v2s32(0, 20);
|
rect += topleft_content + v2s32(0, 10);
|
||||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Multi Player"), rect, false, true, this, -1);
|
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Multi Player"), rect, false, true, this, -1);
|
||||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_data.selected_tab == TAB_MP_CUSTOM) {
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 550, 20);
|
||||||
|
rect += topleft_content + v2s32(0, 30);
|
||||||
|
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Custom Connection"), rect, false, true, this, -1);
|
||||||
|
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||||
|
}
|
||||||
|
// Address + port
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 110, 20);
|
||||||
|
rect += topleft_content + v2s32(120, 60);
|
||||||
|
Environment->addStaticText(wgettext("Address/Port"), rect, false, true, this, -1);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
if (text_address == L"")
|
||||||
|
text_address = L"servers.voxelands.com";
|
||||||
|
core::rect<s32> rect(0, 0, 230, 30);
|
||||||
|
rect += topleft_content + v2s32(135, 90);
|
||||||
|
#if USE_FREETYPE
|
||||||
|
new gui::intlGUIEditBox(text_address.c_str(), true, Environment, this, GUI_ID_ADDRESS_INPUT, rect);
|
||||||
|
#else
|
||||||
|
Environment->addEditBox(text_address.c_str(), rect, false, this, GUI_ID_ADDRESS_INPUT);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 120, 30);
|
||||||
|
rect += topleft_content + v2s32(245, 125);
|
||||||
|
#if USE_FREETYPE
|
||||||
|
new gui::intlGUIEditBox(text_port.c_str(), true, Environment, this, GUI_ID_PORT_INPUT, rect);
|
||||||
|
#else
|
||||||
|
Environment->addEditBox(text_port.c_str(), rect, false, this, GUI_ID_PORT_INPUT);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 180, 30);
|
||||||
|
rect += topleft_content + v2s32(160, 160);
|
||||||
|
Environment->addButton(rect, this, GUI_ID_CONNECT_BUTTON, wgettext("Connect"));
|
||||||
|
}
|
||||||
|
}else if (m_data.selected_tab == TAB_MP_CONNECT) {
|
||||||
// Nickname + password
|
// Nickname + password
|
||||||
{
|
{
|
||||||
core::rect<s32> rect(0, 0, 110, 20);
|
core::rect<s32> rect(0, 0, 110, 20);
|
||||||
|
@ -186,41 +299,94 @@ void GUIMultiplayerMenu::regenerateGui(v2u32 screensize)
|
||||||
e->setPasswordBox(true);
|
e->setPasswordBox(true);
|
||||||
Environment->setFocus(e);
|
Environment->setFocus(e);
|
||||||
|
|
||||||
}
|
|
||||||
// Address + port
|
|
||||||
{
|
|
||||||
core::rect<s32> rect(0, 0, 110, 20);
|
|
||||||
rect += topleft_content + v2s32(120, 170);
|
|
||||||
Environment->addStaticText(wgettext("Address/Port"), rect, false, true, this, -1);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
if (text_address == L"")
|
|
||||||
text_address = L"servers.voxelands.com";
|
|
||||||
core::rect<s32> rect(0, 0, 230, 30);
|
|
||||||
rect += topleft_content + v2s32(135, 200);
|
|
||||||
#if USE_FREETYPE
|
|
||||||
new gui::intlGUIEditBox(text_address.c_str(), true, Environment, this, GUI_ID_ADDRESS_INPUT, rect);
|
|
||||||
#else
|
|
||||||
Environment->addEditBox(text_address.c_str(), rect, false, this, GUI_ID_ADDRESS_INPUT);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
{
|
|
||||||
core::rect<s32> rect(0, 0, 120, 30);
|
|
||||||
rect += topleft_content + v2s32(245, 240);
|
|
||||||
#if USE_FREETYPE
|
|
||||||
new gui::intlGUIEditBox(text_port.c_str(), true, Environment, this, GUI_ID_PORT_INPUT, rect);
|
|
||||||
#else
|
|
||||||
Environment->addEditBox(text_port.c_str(), rect, false, this, GUI_ID_PORT_INPUT);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
// Start game button
|
// Start game button
|
||||||
{
|
{
|
||||||
core::rect<s32> rect(0, 0, 180, 30);
|
core::rect<s32> rect(0, 0, 180, 30);
|
||||||
rect += topleft_content + v2s32(160, 290);
|
rect += topleft_content + v2s32(160, 160);
|
||||||
|
Environment->addButton(rect, this, GUI_ID_START_BUTTON, wgettext("Join Server"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
gui::IGUIListBox *box = NULL;
|
||||||
|
gui::IGUIStaticText *header = NULL;
|
||||||
|
std::vector<ServerInfo> *list = NULL;
|
||||||
|
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 550, 20);
|
||||||
|
rect += topleft_content + v2s32(0, 30);
|
||||||
|
header = Environment->addStaticText(L"", rect, false, true, this, -1);
|
||||||
|
header->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 350, 200);
|
||||||
|
rect += topleft_content + v2s32(100, 60);
|
||||||
|
box = Environment->addListBox(rect, this, GUI_ID_SERVER_LIST, true);
|
||||||
|
box->setItemHeight(25);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_data.selected_tab == TAB_MP_FAVOURITES) {
|
||||||
|
header->setText(wgettext("My Favourites"));
|
||||||
|
list = &m_data.favourites;
|
||||||
|
}else{
|
||||||
|
header->setText(wgettext("Server List"));
|
||||||
|
list = &m_data.servers;
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 180, 25);
|
||||||
|
rect += topleft_content + v2s32(270, 260);
|
||||||
|
Environment->addButton(rect, this, GUI_ID_REFRESH_BUTTON, wgettext("Get New List"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (std::vector<ServerInfo>::iterator i = list->begin(); i != list->end(); i++) {
|
||||||
|
box->addItem(i->name.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_data.selected_row > -1) {
|
||||||
|
ServerInfo info = list->at(m_data.selected_row);
|
||||||
|
if (info.name == L"") {
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
}else{
|
||||||
|
box->setSelected(m_data.selected_row);
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 550, 20);
|
||||||
|
rect += topleft_content + v2s32(0, 300);
|
||||||
|
gui::IGUIStaticText *t = Environment->addStaticText(info.name.c_str(), rect, false, true, this, -1);
|
||||||
|
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 350, 20);
|
||||||
|
rect += topleft_content + v2s32(100, 330);
|
||||||
|
gui::IGUIStaticText *t = Environment->addStaticText(info.addr.c_str(), rect, false, true, this, -1);
|
||||||
|
t->setTextAlignment(gui::EGUIA_UPPERLEFT, gui::EGUIA_UPPERLEFT);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 350, 20);
|
||||||
|
rect += topleft_content + v2s32(100, 350);
|
||||||
|
gui::IGUIStaticText *t = Environment->addStaticText(info.mode.c_str(), rect, false, true, this, -1);
|
||||||
|
t->setTextAlignment(gui::EGUIA_UPPERLEFT, gui::EGUIA_UPPERLEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info.is_favourite) {
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 180, 30);
|
||||||
|
rect += topleft_content + v2s32(80, 390);
|
||||||
|
Environment->addButton(rect, this, GUI_ID_REMFAV_BUTTON, wgettext("Remove from Favourites"));
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 180, 30);
|
||||||
|
rect += topleft_content + v2s32(80, 390);
|
||||||
|
Environment->addButton(rect, this, GUI_ID_ADDFAV_BUTTON, wgettext("Add to Favourites"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
core::rect<s32> rect(0, 0, 180, 30);
|
||||||
|
rect += topleft_content + v2s32(270, 390);
|
||||||
Environment->addButton(rect, this, GUI_ID_CONNECT_BUTTON, wgettext("Connect"));
|
Environment->addButton(rect, this, GUI_ID_CONNECT_BUTTON, wgettext("Connect"));
|
||||||
}
|
}
|
||||||
}else if (m_data.selected_tab == TAB_MP_FAVOURITES) {
|
}
|
||||||
}else{
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,6 +451,30 @@ bool GUIMultiplayerMenu::acceptInput()
|
||||||
if (e != NULL)
|
if (e != NULL)
|
||||||
m_data.mmdata->port = e->getText();
|
m_data.mmdata->port = e->getText();
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
gui::IGUIListBox *e = (gui::IGUIListBox*)getElementFromId(GUI_ID_SERVER_LIST);
|
||||||
|
if (e != NULL)
|
||||||
|
m_data.selected_row = e->getSelected();
|
||||||
|
if (m_data.selected_row > -1) {
|
||||||
|
if (m_data.selected_tab == TAB_MP_LIST) {
|
||||||
|
ServerInfo info = m_data.servers.at(m_data.selected_row);
|
||||||
|
if (info.name == L"")
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
WStrfnd sf(info.addr);
|
||||||
|
m_data.mmdata->address = sf.next(L":");
|
||||||
|
m_data.mmdata->port = sf.end();
|
||||||
|
}else if (m_data.selected_tab == TAB_MP_FAVOURITES) {
|
||||||
|
ServerInfo info = m_data.favourites.at(m_data.selected_row);
|
||||||
|
if (info.name == L"")
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
WStrfnd sf(info.addr);
|
||||||
|
m_data.mmdata->address = sf.next(L":");
|
||||||
|
m_data.mmdata->port = sf.end();
|
||||||
|
}else if (m_data.selected_tab != TAB_MP_CONNECT) {
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool GUIMultiplayerMenu::OnEvent(const SEvent& event)
|
bool GUIMultiplayerMenu::OnEvent(const SEvent& event)
|
||||||
|
@ -318,21 +508,90 @@ bool GUIMultiplayerMenu::OnEvent(const SEvent& event)
|
||||||
}
|
}
|
||||||
if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) {
|
if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) {
|
||||||
switch (event.GUIEvent.Caller->getID()) {
|
switch (event.GUIEvent.Caller->getID()) {
|
||||||
case GUI_ID_CONNECT_BUTTON: // Start game
|
case GUI_ID_START_BUTTON: // Start game
|
||||||
acceptInput();
|
acceptInput();
|
||||||
|
m_accepted = false;
|
||||||
m_gamecallback->startGame();
|
m_gamecallback->startGame();
|
||||||
quitMenu();
|
quitMenu();
|
||||||
return true;
|
return true;
|
||||||
|
case GUI_ID_CONNECT_BUTTON:
|
||||||
|
acceptInput();
|
||||||
|
m_data.selected_tab = TAB_MP_CONNECT;
|
||||||
|
regenerateGui(m_screensize);
|
||||||
|
return true;
|
||||||
|
case GUI_ID_REMFAV_BUTTON:
|
||||||
|
acceptInput();
|
||||||
|
if (m_data.selected_row > -1) {
|
||||||
|
if (m_data.selected_tab == TAB_MP_LIST) {
|
||||||
|
ServerInfo &info = m_data.servers.at(m_data.selected_row);
|
||||||
|
if (info.is_favourite) {
|
||||||
|
info.is_favourite = false;
|
||||||
|
for (
|
||||||
|
std::vector<ServerInfo>::iterator i = m_data.favourites.begin();
|
||||||
|
i != m_data.favourites.end();
|
||||||
|
i++
|
||||||
|
) {
|
||||||
|
if (
|
||||||
|
i->name == info.name
|
||||||
|
&& i->addr == info.addr
|
||||||
|
&& i->mode == info.mode
|
||||||
|
) {
|
||||||
|
m_data.favourites.erase(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if (m_data.selected_tab == TAB_MP_FAVOURITES) {
|
||||||
|
ServerInfo &info = m_data.favourites.at(m_data.selected_row);
|
||||||
|
if (info.is_favourite) {
|
||||||
|
m_data.favourites.erase(m_data.favourites.begin()+m_data.selected_row);
|
||||||
|
for (
|
||||||
|
std::vector<ServerInfo>::iterator i = m_data.servers.begin();
|
||||||
|
i != m_data.servers.end();
|
||||||
|
i++
|
||||||
|
) {
|
||||||
|
if (
|
||||||
|
i->name == info.name
|
||||||
|
&& i->addr == info.addr
|
||||||
|
&& i->mode == info.mode
|
||||||
|
) {
|
||||||
|
i->is_favourite = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
regenerateGui(m_screensize);
|
||||||
|
return true;
|
||||||
|
case GUI_ID_ADDFAV_BUTTON:
|
||||||
|
acceptInput();
|
||||||
|
if (m_data.selected_tab == TAB_MP_LIST && m_data.selected_row > -1) {
|
||||||
|
ServerInfo &info = m_data.servers.at(m_data.selected_row);
|
||||||
|
if (info.name != L"" && !info.is_favourite) {
|
||||||
|
info.is_favourite = true;
|
||||||
|
m_data.favourites.push_back(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
regenerateGui(m_screensize);
|
||||||
|
return true;
|
||||||
case GUI_ID_TAB_MP_LIST:
|
case GUI_ID_TAB_MP_LIST:
|
||||||
acceptInput();
|
acceptInput();
|
||||||
m_accepted = false;
|
m_accepted = false;
|
||||||
|
if (m_data.selected_tab != TAB_MP_LIST) {
|
||||||
m_data.selected_tab = TAB_MP_LIST;
|
m_data.selected_tab = TAB_MP_LIST;
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
}
|
||||||
regenerateGui(m_screensize);
|
regenerateGui(m_screensize);
|
||||||
return true;
|
return true;
|
||||||
case GUI_ID_TAB_MP_FAVOURITES:
|
case GUI_ID_TAB_MP_FAVOURITES:
|
||||||
acceptInput();
|
acceptInput();
|
||||||
m_accepted = false;
|
m_accepted = false;
|
||||||
|
if (m_data.selected_tab != TAB_MP_FAVOURITES) {
|
||||||
m_data.selected_tab = TAB_MP_FAVOURITES;
|
m_data.selected_tab = TAB_MP_FAVOURITES;
|
||||||
|
m_data.selected_row = -1;
|
||||||
|
}
|
||||||
regenerateGui(m_screensize);
|
regenerateGui(m_screensize);
|
||||||
return true;
|
return true;
|
||||||
case GUI_ID_TAB_MP_CUSTOM:
|
case GUI_ID_TAB_MP_CUSTOM:
|
||||||
|
@ -347,10 +606,6 @@ bool GUIMultiplayerMenu::OnEvent(const SEvent& event)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (event.GUIEvent.EventType == gui::EGET_SCROLL_BAR_CHANGED) {
|
|
||||||
//switch (event.GUIEvent.Caller->getID()) {
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
if (event.GUIEvent.EventType == gui::EGET_EDITBOX_ENTER) {
|
if (event.GUIEvent.EventType == gui::EGET_EDITBOX_ENTER) {
|
||||||
switch (event.GUIEvent.Caller->getID()) {
|
switch (event.GUIEvent.Caller->getID()) {
|
||||||
case GUI_ID_ADDRESS_INPUT:
|
case GUI_ID_ADDRESS_INPUT:
|
||||||
|
@ -363,6 +618,16 @@ bool GUIMultiplayerMenu::OnEvent(const SEvent& event)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
event.GUIEvent.EventType == gui::EGET_LISTBOX_CHANGED
|
||||||
|
|| event.GUIEvent.EventType == gui::EGET_LISTBOX_SELECTED_AGAIN
|
||||||
|
) {
|
||||||
|
if (event.GUIEvent.Caller->getID() == GUI_ID_SERVER_LIST) {
|
||||||
|
acceptInput();
|
||||||
|
regenerateGui(m_screensize);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Parent ? Parent->OnEvent(event) : false;
|
return Parent ? Parent->OnEvent(event) : false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,13 @@
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
GUI_ID_CONNECT_BUTTON = 101,
|
GUI_ID_START_BUTTON = 101,
|
||||||
// full list
|
GUI_ID_CONNECT_BUTTON,
|
||||||
// favourites
|
// full list/favourites
|
||||||
|
GUI_ID_SERVER_LIST,
|
||||||
|
GUI_ID_ADDFAV_BUTTON,
|
||||||
|
GUI_ID_REMFAV_BUTTON,
|
||||||
|
GUI_ID_REFRESH_BUTTON,
|
||||||
// custom connect
|
// custom connect
|
||||||
GUI_ID_NAME_INPUT,
|
GUI_ID_NAME_INPUT,
|
||||||
GUI_ID_PW_INPUT,
|
GUI_ID_PW_INPUT,
|
||||||
|
@ -54,7 +58,15 @@ enum
|
||||||
enum {
|
enum {
|
||||||
TAB_MP_LIST=0,
|
TAB_MP_LIST=0,
|
||||||
TAB_MP_FAVOURITES,
|
TAB_MP_FAVOURITES,
|
||||||
TAB_MP_CUSTOM
|
TAB_MP_CUSTOM,
|
||||||
|
TAB_MP_CONNECT
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ServerInfo {
|
||||||
|
std::wstring name;
|
||||||
|
std::wstring addr;
|
||||||
|
std::wstring mode;
|
||||||
|
bool is_favourite;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MultiplayerMenuData
|
struct MultiplayerMenuData
|
||||||
|
@ -62,14 +74,16 @@ struct MultiplayerMenuData
|
||||||
MultiplayerMenuData():
|
MultiplayerMenuData():
|
||||||
// Generic
|
// Generic
|
||||||
selected_tab(TAB_MP_LIST),
|
selected_tab(TAB_MP_LIST),
|
||||||
|
selected_row(-1),
|
||||||
mmdata(NULL)
|
mmdata(NULL)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
// These are in the native format of the gui elements
|
|
||||||
|
|
||||||
// Generic
|
// Generic
|
||||||
int selected_tab;
|
int selected_tab;
|
||||||
|
int selected_row;
|
||||||
// Options
|
// Options
|
||||||
|
std::vector<ServerInfo> servers;
|
||||||
|
std::vector<ServerInfo> favourites;
|
||||||
// server address/port/etc is stored in here
|
// server address/port/etc is stored in here
|
||||||
MainMenuData *mmdata;
|
MainMenuData *mmdata;
|
||||||
};
|
};
|
||||||
|
|
|
@ -120,6 +120,10 @@ public:
|
||||||
//std::cout<<"palautus=\""<<palautus<<"\""<<std::endl;
|
//std::cout<<"palautus=\""<<palautus<<"\""<<std::endl;
|
||||||
return palautus;
|
return palautus;
|
||||||
}
|
}
|
||||||
|
std::wstring end()
|
||||||
|
{
|
||||||
|
return tek.substr(p,tek.size()-p);
|
||||||
|
}
|
||||||
bool atend(){
|
bool atend(){
|
||||||
if(p>=tek.size()) return true;
|
if(p>=tek.size()) return true;
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue