forked from oerkki/voxelands
widen main menu so longer translations fit
This commit is contained in:
parent
18c31365d8
commit
d82e8db4c2
|
@ -377,7 +377,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
Calculate new sizes and positions
|
||||
*/
|
||||
|
||||
v2s32 size(600, 500);
|
||||
v2s32 size(800, 500);
|
||||
|
||||
core::rect<s32> rect(
|
||||
screensize.X/2 - size.X/2,
|
||||
|
@ -389,38 +389,44 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
DesiredRect = rect;
|
||||
recalculateAbsolutePosition(false);
|
||||
|
||||
// Character Creator button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 40);
|
||||
rect += v2s32(25, 200);
|
||||
Environment->addButton(rect, this, GUI_ID_CHARACTER_CREATOR, wgettext("Character Creator"));
|
||||
}
|
||||
// Single Player button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 150, 30);
|
||||
rect += v2s32(25, 200);
|
||||
core::rect<s32> rect(0, 0, 200, 40);
|
||||
rect += v2s32(25, 260);
|
||||
Environment->addButton(rect, this, GUI_ID_TAB_SINGLEPLAYER, wgettext("Single Player"));
|
||||
}
|
||||
// Multi Player button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 150, 30);
|
||||
rect += v2s32(25, 240);
|
||||
core::rect<s32> rect(0, 0, 200, 40);
|
||||
rect += v2s32(25, 305);
|
||||
Environment->addButton(rect, this, GUI_ID_TAB_MULTIPLAYER, wgettext("Multi Player"));
|
||||
}
|
||||
// Settings button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += v2s32(35, 280);
|
||||
core::rect<s32> rect(0, 0, 180, 40);
|
||||
rect += v2s32(35, 350);
|
||||
Environment->addButton(rect, this, GUI_ID_TAB_SETTINGS, wgettext("Settings"));
|
||||
}
|
||||
// Credits button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += v2s32(35, 320);
|
||||
core::rect<s32> rect(0, 0, 180, 40);
|
||||
rect += v2s32(35, 395);
|
||||
Environment->addButton(rect, this, GUI_ID_TAB_CREDITS, wgettext("Credits"));
|
||||
}
|
||||
// Quit button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += v2s32(35, 360);
|
||||
core::rect<s32> rect(0, 0, 180, 40);
|
||||
rect += v2s32(35, 440);
|
||||
Environment->addButton(rect, this, GUI_ID_TAB_QUIT, wgettext("Quit"));
|
||||
}
|
||||
|
||||
v2s32 topleft_content(200, 0);
|
||||
v2s32 topleft_content(250, 0);
|
||||
v2s32 size_content = size - v2s32(300, 0);
|
||||
|
||||
//v2s32 size = rect.getSize();
|
||||
|
@ -450,7 +456,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
if (m_data->selected_tab == TAB_MULTIPLAYER) {
|
||||
changeCtype("");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Multi Player"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
|
@ -459,25 +465,25 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Nickname + password
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 110, 20);
|
||||
rect += topleft_content + v2s32(70, 60);
|
||||
rect += topleft_content + v2s32(120, 60);
|
||||
Environment->addStaticText(wgettext("Name/Password"), rect, false, true, this, -1);
|
||||
}
|
||||
changeCtype("C");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 230, 30);
|
||||
rect += topleft_content + v2s32(85, 90);
|
||||
rect += topleft_content + v2s32(135, 90);
|
||||
gui::IGUIElement *e =
|
||||
Environment->addEditBox(text_name.c_str(), rect, false, this, GUI_ID_NAME_INPUT);
|
||||
if(text_name == L"")
|
||||
if (text_name == L"")
|
||||
Environment->setFocus(e);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 230, 30);
|
||||
rect += topleft_content + v2s32(85, 125);
|
||||
rect += topleft_content + v2s32(135, 125);
|
||||
gui::IGUIEditBox *e =
|
||||
Environment->addEditBox(L"", rect, false, this, 264);
|
||||
e->setPasswordBox(true);
|
||||
if(text_name != L"" && text_address != L"")
|
||||
if (text_name != L"" && text_address != L"")
|
||||
Environment->setFocus(e);
|
||||
|
||||
}
|
||||
|
@ -485,100 +491,99 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Address + port
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 110, 20);
|
||||
rect += topleft_content + v2s32(70, 170);
|
||||
Environment->addStaticText(wgettext("Address/Port"),
|
||||
rect, false, true, this, -1);
|
||||
rect += topleft_content + v2s32(120, 170);
|
||||
Environment->addStaticText(wgettext("Address/Port"), rect, false, true, this, -1);
|
||||
}
|
||||
changeCtype("C");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 230, 30);
|
||||
rect += topleft_content + v2s32(85, 200);
|
||||
rect += topleft_content + v2s32(135, 200);
|
||||
gui::IGUIElement *e =
|
||||
Environment->addEditBox(text_address.c_str(), rect, false, this, GUI_ID_ADDRESS_INPUT);
|
||||
if(text_name != L"" && text_address == L"")
|
||||
if (text_name != L"" && text_address == L"")
|
||||
Environment->setFocus(e);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 120, 30);
|
||||
rect += topleft_content + v2s32(195, 240);
|
||||
rect += topleft_content + v2s32(245, 240);
|
||||
Environment->addEditBox(text_port.c_str(), rect, false, this, GUI_ID_PORT_INPUT);
|
||||
}
|
||||
changeCtype("");
|
||||
// Start game button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 180, 30);
|
||||
rect += topleft_content + v2s32(110, 290);
|
||||
rect += topleft_content + v2s32(160, 290);
|
||||
Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, wgettext("Connect"));
|
||||
}
|
||||
}else if (m_data->selected_tab == TAB_SETTINGS) {
|
||||
changeCtype("");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Settings"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 60);
|
||||
rect += topleft_content + v2s32(80, 60);
|
||||
Environment->addCheckBox(fancy_trees, rect, this, GUI_ID_FANCYTREE_CB, wgettext("Fancy trees"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 90);
|
||||
rect += topleft_content + v2s32(80, 90);
|
||||
Environment->addCheckBox(smooth_lighting, rect, this, GUI_ID_SMOOTH_LIGHTING_CB, wgettext("Smooth Lighting"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 120);
|
||||
rect += topleft_content + v2s32(80, 120);
|
||||
Environment->addCheckBox(clouds_3d, rect, this, GUI_ID_3D_CLOUDS_CB, wgettext("3D Clouds"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 150);
|
||||
rect += topleft_content + v2s32(80, 150);
|
||||
Environment->addCheckBox(opaque_water, rect, this, GUI_ID_OPAQUE_WATER_CB, wgettext("Opaque water"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 60);
|
||||
rect += topleft_content + v2s32(290, 60);
|
||||
Environment->addCheckBox(fullscreen, rect, this, GUI_ID_FULLSCREEN_CB, wgettext("Fullscreen"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 90);
|
||||
rect += topleft_content + v2s32(290, 90);
|
||||
Environment->addCheckBox(particles, rect, this, GUI_ID_PARTICLES_CB, wgettext("Particles"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 120);
|
||||
rect += topleft_content + v2s32(290, 120);
|
||||
Environment->addCheckBox(mipmap, rect, this, GUI_ID_MIPMAP_CB, wgettext("Mip-Mapping"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 150);
|
||||
rect += topleft_content + v2s32(290, 150);
|
||||
Environment->addCheckBox(bilinear, rect, this, GUI_ID_BILINEAR_CB, wgettext("Bi-Linear Filtering"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 180);
|
||||
rect += topleft_content + v2s32(290, 180);
|
||||
Environment->addCheckBox(trilinear, rect, this, GUI_ID_TRILINEAR_CB, wgettext("Tri-Linear Filtering"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(200, 210);
|
||||
rect += topleft_content + v2s32(290, 210);
|
||||
Environment->addCheckBox(anisotropic, rect, this, GUI_ID_ANISOTROPIC_CB, wgettext("Anisotropic Filtering"));
|
||||
}
|
||||
|
||||
// Key change button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += topleft_content + v2s32(140, 280);
|
||||
rect += topleft_content + v2s32(210, 280);
|
||||
Environment->addButton(rect, this, GUI_ID_CHANGE_KEYS_BUTTON, wgettext("Change keys"));
|
||||
}
|
||||
}else if (m_data->selected_tab == TAB_SINGLEPLAYER) {
|
||||
changeCtype("");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Single Player"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
|
@ -587,7 +592,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Server parameters
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(100, 60);
|
||||
rect += topleft_content + v2s32(175, 60);
|
||||
gui::IGUIComboBox *c = Environment->addComboBox(rect, this, GUI_ID_GAME_MODE_COMBO);
|
||||
u32 cm = c->addItem(wgettext("Creative Mode"),GUI_ID_GAME_MODE_CREATIVE);
|
||||
u32 am = c->addItem(wgettext("Adventure Mode"),GUI_ID_GAME_MODE_ADVENTURE);
|
||||
|
@ -602,26 +607,26 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
}
|
||||
// Advanced settings button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += topleft_content + v2s32(40, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(90, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_GAME_SETTINGS_ADV, wgettext("Advanced Settings"));
|
||||
}
|
||||
// Map options button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += topleft_content + v2s32(200, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(290, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_MAP_OPTIONS_BUTTON, wgettext("Map Options"));
|
||||
}
|
||||
// Start game button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 180, 30);
|
||||
rect += topleft_content + v2s32(110, 170);
|
||||
rect += topleft_content + v2s32(185, 170);
|
||||
Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, wgettext("Start Game"));
|
||||
}
|
||||
}else if (m_data->selected_tab == TAB_SINGLEPLAYER_ADVANCED) {
|
||||
changeCtype("");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Single Player"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
|
@ -630,39 +635,40 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Server parameters
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(100, 60);
|
||||
rect += topleft_content + v2s32(175, 60);
|
||||
gui::IGUIComboBox *c = Environment->addComboBox(rect, this, GUI_ID_GAME_MODE_COMBO);
|
||||
u32 cm = c->addItem(wgettext("Creative Mode"),GUI_ID_GAME_MODE_CREATIVE);
|
||||
u32 am = c->addItem(wgettext("Adventure Mode"),GUI_ID_GAME_MODE_ADVENTURE);
|
||||
u32 sm = c->addItem(wgettext("Survival Mode"),GUI_ID_GAME_MODE_SURVIVAL);
|
||||
if (game_mode == L"creative") {
|
||||
c->setSelected(cm);
|
||||
}else if (game_mode == L"adventure") {
|
||||
c->setSelected(am);
|
||||
}else if (game_mode == L"survival") {
|
||||
c->setSelected(sm);
|
||||
}else{
|
||||
c->setSelected(am);
|
||||
}
|
||||
}
|
||||
// Basic settings button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 150, 30);
|
||||
rect += topleft_content + v2s32(40, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(90, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_GAME_SETTINGS_BASIC, wgettext("Hide Advanced Settings"));
|
||||
}
|
||||
// Map options button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 130, 30);
|
||||
rect += topleft_content + v2s32(200, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(290, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_MAP_OPTIONS_BUTTON, wgettext("Map Options"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 100, 20);
|
||||
core::rect<s32> rect(0, 0, 125, 20);
|
||||
rect += topleft_content + v2s32(40, 160);
|
||||
Environment->addStaticText(wgettext("Creatures"), rect, false, true, this, -1);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Creatures"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_LOWERRIGHT, gui::EGUIA_UPPERLEFT);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 240, 30);
|
||||
rect += topleft_content + v2s32(120, 155);
|
||||
rect += topleft_content + v2s32(170, 155);
|
||||
gui::IGUIComboBox *c = Environment->addComboBox(rect, this, GUI_ID_MOBS_COMBO);
|
||||
u32 pm = c->addItem(wgettext("Passive"),GUI_ID_MOBS_PASSIVE);
|
||||
u32 am = c->addItem(wgettext("Passive & Aggressive"),GUI_ID_MOBS_AGGRESSIVE);
|
||||
|
@ -677,49 +683,49 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 200);
|
||||
rect += topleft_content + v2s32(70, 200);
|
||||
Environment->addCheckBox(enable_damage, rect, this, GUI_ID_DAMAGE_CB, wgettext("Player Damage"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(50, 230);
|
||||
rect += topleft_content + v2s32(80, 230);
|
||||
Environment->addCheckBox(suffocation, rect, this, GUI_ID_SUFFOCATE_CB, wgettext("Suffocation/Drowning"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(50, 260);
|
||||
rect += topleft_content + v2s32(80, 260);
|
||||
Environment->addCheckBox(hunger, rect, this, GUI_ID_HUNGER_CB, wgettext("Hunger"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(40, 290);
|
||||
rect += topleft_content + v2s32(70, 290);
|
||||
Environment->addCheckBox(tool_wear, rect, this, GUI_ID_TOOL_WEAR_CB, wgettext("Tool Wear"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(220, 200);
|
||||
rect += topleft_content + v2s32(300, 200);
|
||||
Environment->addCheckBox(infinite_inventory, rect, this, GUI_ID_INFINITE_INV_CB, wgettext("Infinite Inventory"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(230, 230);
|
||||
rect += topleft_content + v2s32(310, 230);
|
||||
Environment->addCheckBox(initial_inventory, rect, this, GUI_ID_INITIAL_INV_CB, wgettext("Initial Inventory"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(220, 260);
|
||||
rect += topleft_content + v2s32(300, 260);
|
||||
Environment->addCheckBox(droppable_inventory, rect, this, GUI_ID_DROPPABLE_INV_CB, wgettext("Droppable Inventory"));
|
||||
}
|
||||
// Start game button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 180, 30);
|
||||
rect += topleft_content + v2s32(110, 340);
|
||||
rect += topleft_content + v2s32(185, 340);
|
||||
Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, wgettext("Start Game"));
|
||||
}
|
||||
}else if (m_data->selected_tab == TAB_SINGLEPLAYER_MAP) {
|
||||
changeCtype("");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Single Player"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
|
@ -728,7 +734,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Server parameters
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(100, 60);
|
||||
rect += topleft_content + v2s32(175, 60);
|
||||
gui::IGUIComboBox *c = Environment->addComboBox(rect, this, GUI_ID_GAME_MODE_COMBO);
|
||||
u32 cm = c->addItem(wgettext("Creative Mode"),GUI_ID_GAME_MODE_CREATIVE);
|
||||
u32 am = c->addItem(wgettext("Adventure Mode"),GUI_ID_GAME_MODE_ADVENTURE);
|
||||
|
@ -743,37 +749,37 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
}
|
||||
// Advanced settings button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 150, 30);
|
||||
rect += topleft_content + v2s32(40, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(90, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_GAME_SETTINGS_ADV, wgettext("Advanced Settings"));
|
||||
}
|
||||
// Basic settings button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 150, 30);
|
||||
rect += topleft_content + v2s32(200, 100);
|
||||
core::rect<s32> rect(0, 0, 170, 30);
|
||||
rect += topleft_content + v2s32(290, 100);
|
||||
Environment->addButton(rect, this, GUI_ID_GAME_SETTINGS_BASIC, wgettext("Hide Map Options"));
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(100, 130);
|
||||
rect += topleft_content + v2s32(150, 130);
|
||||
Environment->addCheckBox(delete_map, rect, this, GUI_ID_MAP_DELETE_CB, wgettext("Create New Map"));
|
||||
}
|
||||
if (delete_map) {
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 300, 20);
|
||||
rect += topleft_content + v2s32(70, 160);
|
||||
rect += topleft_content + v2s32(120, 160);
|
||||
Environment->addStaticText(wgettext("Warning! Your old map will be deleted!"),
|
||||
rect, false, true, this, -1);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 110, 20);
|
||||
rect += topleft_content + v2s32(40, 195);
|
||||
Environment->addStaticText(wgettext("Map Type"),
|
||||
rect, false, true, this, -1);
|
||||
core::rect<s32> rect(0, 0, 120, 20);
|
||||
rect += topleft_content + v2s32(45, 195);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Map Type"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_LOWERRIGHT, gui::EGUIA_UPPERLEFT);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 240, 30);
|
||||
rect += topleft_content + v2s32(120, 190);
|
||||
rect += topleft_content + v2s32(170, 190);
|
||||
gui::IGUIComboBox *c = Environment->addComboBox(rect, this, GUI_ID_MAP_TYPE_COMBO);
|
||||
u32 m1 = c->addItem(wgettext("Flat"),GUI_ID_MAP_TYPE_FLAT);
|
||||
u32 m2 = c->addItem(wgettext("Flatter"),GUI_ID_MAP_TYPE_FLATTER);
|
||||
|
@ -803,20 +809,20 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(70, 230);
|
||||
rect += topleft_content + v2s32(150, 230);
|
||||
Environment->addCheckBox(use_fixed_seed, rect, this, GUI_ID_MAP_SEED_CB, wgettext("Use Fixed Seed"));
|
||||
}
|
||||
if (use_fixed_seed) {
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 110, 20);
|
||||
rect += topleft_content + v2s32(70, 265);
|
||||
Environment->addStaticText(wgettext("Map Seed"),
|
||||
rect, false, true, this, -1);
|
||||
core::rect<s32> rect(0, 0, 120, 20);
|
||||
rect += topleft_content + v2s32(65, 265);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Map Seed"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_LOWERRIGHT, gui::EGUIA_UPPERLEFT);
|
||||
}
|
||||
changeCtype("C");
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 190, 30);
|
||||
rect += topleft_content + v2s32(140, 260);
|
||||
rect += topleft_content + v2s32(190, 260);
|
||||
Environment->addEditBox(fixed_seed.c_str(), rect, false, this, GUI_ID_MAP_SEED_INPUT);
|
||||
}
|
||||
changeCtype("");
|
||||
|
@ -824,12 +830,12 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
}else{
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 200, 30);
|
||||
rect += topleft_content + v2s32(100, 160);
|
||||
rect += topleft_content + v2s32(150, 160);
|
||||
Environment->addCheckBox(clear_map, rect, this, GUI_ID_MAP_CLEAR_CB, wgettext("Clear Map"));
|
||||
}
|
||||
if (clear_map) {
|
||||
core::rect<s32> rect(0, 0, 300, 40);
|
||||
rect += topleft_content + v2s32(70, 190);
|
||||
rect += topleft_content + v2s32(120, 190);
|
||||
Environment->addStaticText(wgettext("Warning! This will delete all construction from your map!"),
|
||||
rect, false, true, this, -1);
|
||||
}
|
||||
|
@ -837,19 +843,19 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
|
|||
// Start game button
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 180, 30);
|
||||
rect += topleft_content + v2s32(110, 310);
|
||||
rect += topleft_content + v2s32(185, 310);
|
||||
Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, wgettext("Start Game"));
|
||||
}
|
||||
}else if(m_data->selected_tab == TAB_CREDITS) {
|
||||
// CREDITS
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 20);
|
||||
core::rect<s32> rect(0, 0, 550, 20);
|
||||
rect += topleft_content + v2s32(0, 20);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(wgettext("Credits"), rect, false, true, this, -1);
|
||||
t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_UPPERLEFT);
|
||||
}
|
||||
{
|
||||
core::rect<s32> rect(0, 0, 400, 350);
|
||||
core::rect<s32> rect(0, 0, 550, 350);
|
||||
rect += topleft_content + v2s32(0, 50);
|
||||
gui::IGUIStaticText *t = Environment->addStaticText(
|
||||
wgettext(
|
||||
|
@ -886,11 +892,11 @@ void GUIMainMenu::drawMenu()
|
|||
core::rect<s32> left(
|
||||
AbsoluteRect.UpperLeftCorner.X,
|
||||
AbsoluteRect.UpperLeftCorner.Y,
|
||||
AbsoluteRect.LowerRightCorner.X-400,
|
||||
AbsoluteRect.LowerRightCorner.X-550,
|
||||
AbsoluteRect.LowerRightCorner.Y
|
||||
);
|
||||
core::rect<s32> right(
|
||||
AbsoluteRect.UpperLeftCorner.X+200,
|
||||
AbsoluteRect.UpperLeftCorner.X+250,
|
||||
AbsoluteRect.UpperLeftCorner.Y,
|
||||
AbsoluteRect.LowerRightCorner.X,
|
||||
AbsoluteRect.LowerRightCorner.Y
|
||||
|
@ -901,9 +907,9 @@ void GUIMainMenu::drawMenu()
|
|||
if (texture != 0) {
|
||||
const core::dimension2d<u32>& img_origsize = texture->getOriginalSize();
|
||||
core::rect<s32> logo(
|
||||
AbsoluteRect.UpperLeftCorner.X,
|
||||
AbsoluteRect.UpperLeftCorner.X+25,
|
||||
AbsoluteRect.UpperLeftCorner.Y,
|
||||
AbsoluteRect.UpperLeftCorner.X+200,
|
||||
AbsoluteRect.UpperLeftCorner.X+225,
|
||||
AbsoluteRect.UpperLeftCorner.Y+200
|
||||
);
|
||||
const video::SColor color(255,255,255,255);
|
||||
|
|
|
@ -75,6 +75,7 @@ enum {
|
|||
GUI_ID_MAP_TYPE_MOUNTAINS,
|
||||
GUI_ID_MAP_TYPE_CRAZY,
|
||||
GUI_ID_MAP_TYPE_CRAZYHILLS,
|
||||
GUI_ID_CHARACTER_CREATOR,
|
||||
GUI_ID_TAB_SINGLEPLAYER,
|
||||
GUI_ID_TAB_MULTIPLAYER,
|
||||
GUI_ID_TAB_SETTINGS,
|
||||
|
@ -116,7 +117,8 @@ struct MainMenuData
|
|||
clear_map(false),
|
||||
use_fixed_seed(false),
|
||||
fixed_seed(L""),
|
||||
map_type("default")
|
||||
map_type("default"),
|
||||
character_creator(false)
|
||||
{}
|
||||
|
||||
// These are in the native format of the gui elements
|
||||
|
@ -155,6 +157,8 @@ struct MainMenuData
|
|||
bool use_fixed_seed;
|
||||
std::wstring fixed_seed;
|
||||
std:: string map_type;
|
||||
// go to character creator, not the game
|
||||
bool character_creator;
|
||||
};
|
||||
|
||||
class GUIMainMenu : public GUIModalMenu
|
||||
|
|
147
src/main.cpp
147
src/main.cpp
|
@ -748,28 +748,16 @@ int main(int argc, char *argv[])
|
|||
|
||||
bool ret = cmd_args.parseCommandLine(argc, argv, allowed_options);
|
||||
|
||||
if(ret == false || cmd_args.getFlag("help"))
|
||||
{
|
||||
if (ret == false || cmd_args.getFlag("help")) {
|
||||
dstream<<"Allowed options:"<<std::endl;
|
||||
for(core::map<std::string, ValueSpec>::Iterator
|
||||
i = allowed_options.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
{
|
||||
for (core::map<std::string, ValueSpec>::Iterator i = allowed_options.getIterator(); i.atEnd() == false; i++) {
|
||||
dstream<<" --"<<i.getNode()->getKey();
|
||||
if(i.getNode()->getValue().type == VALUETYPE_FLAG)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
if(i.getNode()->getValue().type != VALUETYPE_FLAG)
|
||||
dstream<<" <value>";
|
||||
}
|
||||
dstream<<std::endl;
|
||||
|
||||
if(i.getNode()->getValue().help != NULL)
|
||||
{
|
||||
dstream<<" "<<i.getNode()->getValue().help
|
||||
<<std::endl;
|
||||
}
|
||||
if (i.getNode()->getValue().help != NULL)
|
||||
dstream<<" "<<i.getNode()->getValue().help<<std::endl;
|
||||
}
|
||||
|
||||
return cmd_args.getFlag("help") ? 0 : 1;
|
||||
|
@ -781,11 +769,11 @@ int main(int argc, char *argv[])
|
|||
|
||||
bool disable_stderr = false;
|
||||
#ifdef _WIN32
|
||||
if(cmd_args.getFlag("dstream-on-stderr") == false)
|
||||
if (cmd_args.getFlag("dstream-on-stderr") == false)
|
||||
disable_stderr = true;
|
||||
#endif
|
||||
|
||||
if(cmd_args.getFlag("info-on-stderr"))
|
||||
if (cmd_args.getFlag("info-on-stderr"))
|
||||
log_add_output(&main_stderr_log_out, LMT_INFO);
|
||||
|
||||
porting::signal_handler_init();
|
||||
|
@ -841,19 +829,15 @@ int main(int argc, char *argv[])
|
|||
// Path of configuration file in use
|
||||
std::string configpath = "";
|
||||
|
||||
if(cmd_args.exists("config"))
|
||||
{
|
||||
if (cmd_args.exists("config")) {
|
||||
bool r = g_settings->readConfigFile(cmd_args.get("config").c_str());
|
||||
if(r == false)
|
||||
{
|
||||
if (r == false) {
|
||||
errorstream<<"Could not read configuration from \""
|
||||
<<cmd_args.get("config")<<"\""<<std::endl;
|
||||
return 1;
|
||||
}
|
||||
configpath = cmd_args.get("config");
|
||||
}
|
||||
else
|
||||
{
|
||||
}else{
|
||||
core::array<std::string> filenames;
|
||||
filenames.push_back(porting::path_userdata +
|
||||
DIR_DELIM + "voxelands.conf");
|
||||
|
@ -862,18 +846,16 @@ int main(int argc, char *argv[])
|
|||
DIR_DELIM + ".." + DIR_DELIM + "voxelands.conf");
|
||||
#endif
|
||||
|
||||
for(u32 i=0; i<filenames.size(); i++)
|
||||
{
|
||||
for (u32 i=0; i<filenames.size(); i++) {
|
||||
bool r = g_settings->readConfigFile(filenames[i].c_str());
|
||||
if(r)
|
||||
{
|
||||
if (r) {
|
||||
configpath = filenames[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If no path found, use the first one (menu creates the file)
|
||||
if(configpath == "")
|
||||
if (configpath == "")
|
||||
configpath = filenames[0];
|
||||
}
|
||||
|
||||
|
@ -904,11 +886,11 @@ int main(int argc, char *argv[])
|
|||
Run unit tests
|
||||
*/
|
||||
|
||||
if((ENABLE_TESTS && cmd_args.getFlag("disable-unittests") == false)
|
||||
|| cmd_args.getFlag("enable-unittests") == true)
|
||||
{
|
||||
if (
|
||||
(ENABLE_TESTS && cmd_args.getFlag("disable-unittests") == false)
|
||||
|| cmd_args.getFlag("enable-unittests") == true
|
||||
)
|
||||
run_tests();
|
||||
}
|
||||
|
||||
/*for(s16 y=-100; y<100; y++)
|
||||
for(s16 x=-100; x<100; x++)
|
||||
|
@ -923,23 +905,24 @@ int main(int argc, char *argv[])
|
|||
|
||||
// Port
|
||||
u16 port = 30000;
|
||||
if(cmd_args.exists("port"))
|
||||
if (cmd_args.exists("port")) {
|
||||
port = cmd_args.getU16("port");
|
||||
else if(g_settings->exists("port"))
|
||||
}else if (g_settings->exists("port")) {
|
||||
port = g_settings->getU16("port");
|
||||
if(port == 0)
|
||||
}
|
||||
if (port == 0)
|
||||
port = 30000;
|
||||
|
||||
// Map directory
|
||||
std::string map_dir = porting::path_userdata+DIR_DELIM+"world";
|
||||
if(cmd_args.exists("map-dir"))
|
||||
if (cmd_args.exists("map-dir")) {
|
||||
map_dir = cmd_args.get("map-dir");
|
||||
else if(g_settings->exists("map-dir"))
|
||||
}else if (g_settings->exists("map-dir")) {
|
||||
map_dir = g_settings->get("map-dir");
|
||||
}
|
||||
|
||||
// Run dedicated server if asked to
|
||||
if(cmd_args.getFlag("server"))
|
||||
{
|
||||
if (cmd_args.getFlag("server")) {
|
||||
DSTACK("Dedicated server branch");
|
||||
|
||||
// Create time getter
|
||||
|
@ -963,12 +946,9 @@ int main(int argc, char *argv[])
|
|||
// Address to connect to
|
||||
std::string address = "";
|
||||
|
||||
if(cmd_args.exists("address"))
|
||||
{
|
||||
if (cmd_args.exists("address")) {
|
||||
address = cmd_args.get("address");
|
||||
}
|
||||
else
|
||||
{
|
||||
}else{
|
||||
address = g_settings->get("address");
|
||||
}
|
||||
|
||||
|
@ -996,20 +976,19 @@ int main(int argc, char *argv[])
|
|||
|
||||
std::string driverstring = g_settings->get("video_driver");
|
||||
|
||||
if(driverstring == "null")
|
||||
if (driverstring == "null") {
|
||||
driverType = video::EDT_NULL;
|
||||
else if(driverstring == "software")
|
||||
}else if (driverstring == "software") {
|
||||
driverType = video::EDT_SOFTWARE;
|
||||
else if(driverstring == "burningsvideo")
|
||||
}else if (driverstring == "burningsvideo") {
|
||||
driverType = video::EDT_BURNINGSVIDEO;
|
||||
else if(driverstring == "direct3d8")
|
||||
}else if (driverstring == "direct3d8") {
|
||||
driverType = video::EDT_DIRECT3D8;
|
||||
else if(driverstring == "direct3d9")
|
||||
}else if (driverstring == "direct3d9") {
|
||||
driverType = video::EDT_DIRECT3D9;
|
||||
else if(driverstring == "opengl")
|
||||
}else if (driverstring == "opengl") {
|
||||
driverType = video::EDT_OPENGL;
|
||||
else
|
||||
{
|
||||
}else{
|
||||
errorstream<<"WARNING: Invalid video_driver specified; defaulting "
|
||||
"to opengl"<<std::endl;
|
||||
driverType = video::EDT_OPENGL;
|
||||
|
@ -1074,8 +1053,7 @@ int main(int argc, char *argv[])
|
|||
/*
|
||||
Speed tests (done after irrlicht is loaded to get timer)
|
||||
*/
|
||||
if(cmd_args.getFlag("speedtests"))
|
||||
{
|
||||
if (cmd_args.getFlag("speedtests")) {
|
||||
dstream<<"Running speed tests"<<std::endl;
|
||||
SpeedTests();
|
||||
return 0;
|
||||
|
@ -1086,21 +1064,22 @@ int main(int argc, char *argv[])
|
|||
bool random_input = g_settings->getBool("random_input")
|
||||
|| cmd_args.getFlag("random-input");
|
||||
InputHandler *input = NULL;
|
||||
if(random_input)
|
||||
if (random_input) {
|
||||
input = new RandomInputHandler();
|
||||
else
|
||||
}else{
|
||||
input = new RealInputHandler(device, &receiver);
|
||||
}
|
||||
|
||||
scene::ISceneManager* smgr = device->getSceneManager();
|
||||
|
||||
guienv = device->getGUIEnvironment();
|
||||
gui::IGUISkin* skin = guienv->getSkin();
|
||||
gui::IGUIFont* font = guienv->getFont(getTexturePath("fontlucida.png").c_str());
|
||||
if(font)
|
||||
if (font) {
|
||||
skin->setFont(font);
|
||||
else
|
||||
errorstream<<"WARNING: Font file was not found."
|
||||
" Using default font."<<std::endl;
|
||||
}else{
|
||||
errorstream<<"WARNING: Font file was not found. Using default font."<<std::endl;
|
||||
}
|
||||
// If font was not found, this will get us one
|
||||
font = skin->getFont();
|
||||
assert(font);
|
||||
|
@ -1146,15 +1125,16 @@ int main(int argc, char *argv[])
|
|||
// The password entered during the menu screen,
|
||||
std::string password;
|
||||
|
||||
// if there's no chardef then put the player directly into the character creator
|
||||
bool character_creator = !g_settings->exists("character_definition");
|
||||
|
||||
/*
|
||||
Menu-game loop
|
||||
*/
|
||||
while(device->run() && kill == false)
|
||||
{
|
||||
while (device->run() && kill == false) {
|
||||
|
||||
// This is used for catching disconnects
|
||||
try
|
||||
{
|
||||
try{
|
||||
|
||||
/*
|
||||
Clear everything from the GUIEnvironment
|
||||
|
@ -1166,16 +1146,14 @@ int main(int argc, char *argv[])
|
|||
custom gui elements directly on the screen.
|
||||
Otherwise they won't be automatically drawn.
|
||||
*/
|
||||
guiroot = guienv->addStaticText(L"",
|
||||
core::rect<s32>(0, 0, 10000, 10000));
|
||||
guiroot = guienv->addStaticText(L"",core::rect<s32>(0, 0, 10000, 10000));
|
||||
|
||||
/*
|
||||
Out-of-game menu loop.
|
||||
|
||||
Loop quits when menu returns proper parameters.
|
||||
break out immediately if we should be in the character creator
|
||||
*/
|
||||
while(kill == false)
|
||||
{
|
||||
while (kill == false && character_creator == false) {
|
||||
// Cursor can be non-visible when coming from the game
|
||||
device->getCursorControl()->setVisible(true);
|
||||
// Some stuff are left to scene manager when coming from the game
|
||||
|
@ -1223,8 +1201,7 @@ int main(int argc, char *argv[])
|
|||
&g_menumgr, &menudata, g_gamecallback);
|
||||
menu->allowFocusRemoval(true);
|
||||
|
||||
if(error_message != L"")
|
||||
{
|
||||
if (error_message != L"") {
|
||||
errorstream<<"error_message = "
|
||||
<<wide_to_narrow(error_message)<<std::endl;
|
||||
|
||||
|
@ -1239,9 +1216,8 @@ int main(int argc, char *argv[])
|
|||
|
||||
infostream<<"Created main menu"<<std::endl;
|
||||
|
||||
while(device->run() && kill == false)
|
||||
{
|
||||
if(menu->getStatus() == true)
|
||||
while (device->run() && kill == false) {
|
||||
if (menu->getStatus() == true)
|
||||
break;
|
||||
|
||||
//driver->beginScene(true, true, video::SColor(255,0,0,0));
|
||||
|
@ -1259,13 +1235,18 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
// Break out of menu-game loop to shut down cleanly
|
||||
if(device->run() == false || kill == true)
|
||||
if (device->run() == false || kill == true)
|
||||
break;
|
||||
|
||||
infostream<<"Dropping main menu"<<std::endl;
|
||||
|
||||
menu->drop();
|
||||
|
||||
character_creator = menudata.character_creator;
|
||||
|
||||
if (character_creator)
|
||||
break;
|
||||
|
||||
// Delete map if requested
|
||||
if (menudata.delete_map) {
|
||||
bool r = fs::RecursiveDeleteContent(map_dir);
|
||||
|
@ -1293,7 +1274,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
address = wide_to_narrow(menudata.address);
|
||||
int newport = mywstoi(menudata.port);
|
||||
if(newport != 0)
|
||||
if (newport != 0)
|
||||
port = newport;
|
||||
g_settings->set("new_style_leaves", itos(menudata.fancy_trees));
|
||||
g_settings->set("smooth_lighting", itos(menudata.smooth_lighting));
|
||||
|
@ -1320,7 +1301,7 @@ int main(int argc, char *argv[])
|
|||
g_settings->set("address", address);
|
||||
g_settings->set("port", itos(port));
|
||||
// Update configuration file
|
||||
if(configpath != "")
|
||||
if (configpath != "")
|
||||
g_settings->updateConfigFile(configpath.c_str());
|
||||
|
||||
// Continue to game
|
||||
|
@ -1328,9 +1309,13 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
// Break out of menu-game loop to shut down cleanly
|
||||
if(device->run() == false)
|
||||
if (device->run() == false)
|
||||
break;
|
||||
|
||||
if (character_creator) {
|
||||
character_creator = false;
|
||||
continue;
|
||||
}
|
||||
// Initialize mapnode again to enable changed graphics settings
|
||||
init_mapnode(driver);
|
||||
|
||||
|
|
Loading…
Reference in New Issue