/*
-Minetest-c55
-Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
+Minetest
+Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
#include <string>
#include <list>
#include "subgame.h"
+#include "serverlist.h"
+
class IGameCallback;
+enum {
+ SERVERLIST_FAVORITES,
+ SERVERLIST_PUBLIC,
+};
+
struct MainMenuData
{
// These are in the native format of the gui elements
// Generic
int selected_tab;
// Client options
+ std::string servername;
+ std::string serverdescription;
std::wstring address;
std::wstring port;
std::wstring name;
bool smooth_lighting;
bool clouds_3d;
bool opaque_water;
+ bool mip_map;
+ bool anisotropic_filter;
+ bool bilinear_filter;
+ bool trilinear_filter;
+ int enable_shaders;
+ bool preload_item_visuals;
+ bool enable_particles;
+ bool liquid_finite;
// Server options
bool creative_mode;
bool enable_damage;
+ bool enable_public;
int selected_world;
bool simple_singleplayer_mode;
// Actions
std::string create_world_gameid;
bool only_refresh;
+ int selected_serverlist;
+
std::vector<WorldSpec> worlds;
std::vector<SubgameSpec> games;
+ std::vector<ServerListSpec> servers;
MainMenuData():
// Generic
// Server opts
creative_mode(false),
enable_damage(false),
+ enable_public(false),
selected_world(0),
simple_singleplayer_mode(false),
// Actions
- only_refresh(false)
+ only_refresh(false),
+
+ selected_serverlist(SERVERLIST_FAVORITES)
{}
};
void createNewWorld(std::wstring name, std::string gameid);
void deleteWorld(const std::vector<std::string> &paths);
int getTab();
+ void displayMessageMenu(std::wstring msg);
private:
MainMenuData *m_data;
gui::IGUIElement* parent;
s32 id;
IMenuManager *menumgr;
-
+
bool m_is_regenerating;
v2s32 m_topleft_client;
v2s32 m_size_client;
v2s32 m_topleft_server;
v2s32 m_size_server;
+ void updateGuiServerList();
+ void serverListOnSelected();
+ ServerListSpec getServerListSpec(std::string address, std::string port);
};
#endif