Fix
This commit is contained in:
parent
9251e980f8
commit
b05a829924
|
@ -47,7 +47,6 @@ gtags.files
|
||||||
## Configuration/log files
|
## Configuration/log files
|
||||||
minetest.conf
|
minetest.conf
|
||||||
debug.txt
|
debug.txt
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
## Doxygen files
|
## Doxygen files
|
||||||
doc/Doxyfile
|
doc/Doxyfile
|
||||||
|
@ -81,8 +80,6 @@ build/android/Debug
|
||||||
build/android/deps
|
build/android/deps
|
||||||
build/android/gen
|
build/android/gen
|
||||||
build/android/jni/src
|
build/android/jni/src
|
||||||
## Need for WVersionManager
|
|
||||||
##build/android/libs
|
|
||||||
build/android/obj
|
build/android/obj
|
||||||
build/android/path.cfg
|
build/android/path.cfg
|
||||||
build/android/and_env
|
build/android/and_env
|
||||||
|
|
|
@ -611,7 +611,6 @@ curl_binary:
|
||||||
tar -xzf curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz || exit 1;\
|
tar -xzf curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz || exit 1;\
|
||||||
mv curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android curl-${CURL_VERSION_BINARY};\
|
mv curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android curl-${CURL_VERSION_BINARY};\
|
||||||
rm curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz; \
|
rm curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz; \
|
||||||
\
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$(GMP_TIMESTAMP) : gmp_download
|
$(GMP_TIMESTAMP) : gmp_download
|
||||||
|
|
|
@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "mapgen_v5.h"
|
#include "mapgen_v5.h"
|
||||||
#include "mapgen_v6.h"
|
#include "mapgen_v6.h"
|
||||||
#include "mapgen_v7.h"
|
#include "mapgen_v7.h"
|
||||||
#include "mapgen_fractal.h"
|
|
||||||
#include "cavegen.h"
|
#include "cavegen.h"
|
||||||
|
|
||||||
NoiseParams nparams_caveliquids(0, 1, v3f(150.0, 150.0, 150.0), 776, 3, 0.6, 2.0);
|
NoiseParams nparams_caveliquids(0, 1, v3f(150.0, 150.0, 150.0), 776, 3, 0.6, 2.0);
|
||||||
|
|
|
@ -27,7 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
class MapgenV5;
|
class MapgenV5;
|
||||||
class MapgenV6;
|
class MapgenV6;
|
||||||
class MapgenV7;
|
class MapgenV7;
|
||||||
class MapgenFractal;
|
|
||||||
|
|
||||||
class CaveV5 {
|
class CaveV5 {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -34,10 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "fontengine.h"
|
#include "fontengine.h"
|
||||||
#include "clientlauncher.h"
|
#include "clientlauncher.h"
|
||||||
|
|
||||||
#ifdef ANDROID
|
|
||||||
#include "porting_android.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* mainmenumanager.h
|
/* mainmenumanager.h
|
||||||
*/
|
*/
|
||||||
gui::IGUIEnvironment *guienv = NULL;
|
gui::IGUIEnvironment *guienv = NULL;
|
||||||
|
@ -71,11 +67,8 @@ u32 getTime(TimePrecision prec) {
|
||||||
|
|
||||||
ClientLauncher::~ClientLauncher()
|
ClientLauncher::~ClientLauncher()
|
||||||
{
|
{
|
||||||
if (receiver) {
|
if (receiver)
|
||||||
if (device)
|
|
||||||
device->setEventReceiver(NULL);
|
|
||||||
delete receiver;
|
delete receiver;
|
||||||
}
|
|
||||||
|
|
||||||
if (input)
|
if (input)
|
||||||
delete input;
|
delete input;
|
||||||
|
@ -83,10 +76,8 @@ ClientLauncher::~ClientLauncher()
|
||||||
if (g_fontengine)
|
if (g_fontengine)
|
||||||
delete g_fontengine;
|
delete g_fontengine;
|
||||||
|
|
||||||
if (device) {
|
if (device)
|
||||||
device->closeDevice();
|
|
||||||
device->drop();
|
device->drop();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,10 +187,6 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
|
||||||
device->setWindowCaption((utf8_to_wide(PROJECT_NAME_C) + L" [" + text + L"]").c_str());
|
device->setWindowCaption((utf8_to_wide(PROJECT_NAME_C) + L" [" + text + L"]").c_str());
|
||||||
delete[] text;
|
delete[] text;
|
||||||
|
|
||||||
#ifdef ANDROID
|
|
||||||
porting::handleAndroidActivityEvents();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
try { // This is used for catching disconnects
|
try { // This is used for catching disconnects
|
||||||
|
|
||||||
guienv->clear();
|
guienv->clear();
|
||||||
|
|
|
@ -337,7 +337,7 @@ void set_default_settings(Settings *settings)
|
||||||
settings->setDefault("enable_particles", "false");
|
settings->setDefault("enable_particles", "false");
|
||||||
settings->setDefault("video_driver", "ogles1");
|
settings->setDefault("video_driver", "ogles1");
|
||||||
settings->setDefault("touchtarget", "true");
|
settings->setDefault("touchtarget", "true");
|
||||||
settings->setDefault("TMPFolder","/sdcard/Android/data/net.MultiCraft.Official/tmp/");
|
settings->setDefault("TMPFolder","/sdcard/tmp/");
|
||||||
settings->setDefault("touchscreen_threshold","20");
|
settings->setDefault("touchscreen_threshold","20");
|
||||||
settings->setDefault("smooth_lighting", "false");
|
settings->setDefault("smooth_lighting", "false");
|
||||||
settings->setDefault("emergequeue_limit_diskonly", "8");
|
settings->setDefault("emergequeue_limit_diskonly", "8");
|
||||||
|
@ -348,7 +348,7 @@ void set_default_settings(Settings *settings)
|
||||||
settings->setDefault("viewing_range_nodes_min", "5");
|
settings->setDefault("viewing_range_nodes_min", "5");
|
||||||
settings->setDefault("enable_node_highlighting", "true");
|
settings->setDefault("enable_node_highlighting", "true");
|
||||||
settings->setDefault("inventory_image_hack", "true");
|
settings->setDefault("inventory_image_hack", "true");
|
||||||
settings->setDefault("minimap_double_scan_height", "false");
|
//settings->setDefault("minimap_double_scan_height", "false");
|
||||||
settings->setDefault("mouse_sensitivity", "0.05");
|
settings->setDefault("mouse_sensitivity", "0.05");
|
||||||
settings->setDefault("enable_3d_clouds", "false");
|
settings->setDefault("enable_3d_clouds", "false");
|
||||||
settings->setDefault("wanted_fps", "20");
|
settings->setDefault("wanted_fps", "20");
|
||||||
|
@ -363,6 +363,7 @@ void set_default_settings(Settings *settings)
|
||||||
else if (x_inches < 4.5) {
|
else if (x_inches < 4.5) {
|
||||||
settings->setDefault("hud_scaling", "0.7");
|
settings->setDefault("hud_scaling", "0.7");
|
||||||
}
|
}
|
||||||
|
settings->setDefault("gui_scaling", "1.1");
|
||||||
settings->setDefault("curl_verify_cert","false");
|
settings->setDefault("curl_verify_cert","false");
|
||||||
#else
|
#else
|
||||||
settings->setDefault("screen_dpi", "72");
|
settings->setDefault("screen_dpi", "72");
|
||||||
|
|
119
src/game.cpp
119
src/game.cpp
|
@ -68,10 +68,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "touchscreengui.h"
|
#include "touchscreengui.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ANDROID
|
|
||||||
#include "porting_android.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern Settings *g_settings;
|
extern Settings *g_settings;
|
||||||
extern Profiler *g_profiler;
|
extern Profiler *g_profiler;
|
||||||
|
|
||||||
|
@ -282,11 +278,11 @@ public:
|
||||||
Check if a node is pointable
|
Check if a node is pointable
|
||||||
*/
|
*/
|
||||||
inline bool isPointableNode(const MapNode &n,
|
inline bool isPointableNode(const MapNode &n,
|
||||||
Client *client, bool liquids_pointable)
|
Client *client, bool liquids_pointable)
|
||||||
{
|
{
|
||||||
const ContentFeatures &features = client->getNodeDefManager()->get(n);
|
const ContentFeatures &features = client->getNodeDefManager()->get(n);
|
||||||
return features.pointable ||
|
return features.pointable ||
|
||||||
(liquids_pointable && features.isLiquid());
|
(liquids_pointable && features.isLiquid());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -321,8 +317,8 @@ PointedThing getPointedThing(Client *client, v3f player_position,
|
||||||
|
|
||||||
v3f pos = selected_object->getPosition();
|
v3f pos = selected_object->getPosition();
|
||||||
hilightboxes.push_back(aabb3f(
|
hilightboxes.push_back(aabb3f(
|
||||||
selection_box->MinEdge + pos - intToFloat(camera_offset, BS),
|
selection_box->MinEdge + pos - intToFloat(camera_offset, BS),
|
||||||
selection_box->MaxEdge + pos - intToFloat(camera_offset, BS)));
|
selection_box->MaxEdge + pos - intToFloat(camera_offset, BS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
mindistance = (selected_object->getPosition() - camera_position).getLength();
|
mindistance = (selected_object->getPosition() - camera_position).getLength();
|
||||||
|
@ -905,8 +901,8 @@ bool nodePlacementPrediction(Client &client,
|
||||||
|
|
||||||
if (prediction != "" && !nodedef->get(node).rightclickable) {
|
if (prediction != "" && !nodedef->get(node).rightclickable) {
|
||||||
verbosestream << "Node placement prediction for "
|
verbosestream << "Node placement prediction for "
|
||||||
<< playeritem_def.name << " is "
|
<< playeritem_def.name << " is "
|
||||||
<< prediction << std::endl;
|
<< prediction << std::endl;
|
||||||
v3s16 p = neighbourpos;
|
v3s16 p = neighbourpos;
|
||||||
|
|
||||||
// Place inside node itself if buildable_to
|
// Place inside node itself if buildable_to
|
||||||
|
@ -928,9 +924,9 @@ bool nodePlacementPrediction(Client &client,
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
errorstream << "Node placement prediction failed for "
|
errorstream << "Node placement prediction failed for "
|
||||||
<< playeritem_def.name << " (places "
|
<< playeritem_def.name << " (places "
|
||||||
<< prediction
|
<< prediction
|
||||||
<< ") - Name not known" << std::endl;
|
<< ") - Name not known" << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1003,9 +999,9 @@ bool nodePlacementPrediction(Client &client,
|
||||||
}
|
}
|
||||||
} catch (InvalidPositionException &e) {
|
} catch (InvalidPositionException &e) {
|
||||||
errorstream << "Node placement prediction failed for "
|
errorstream << "Node placement prediction failed for "
|
||||||
<< playeritem_def.name << " (places "
|
<< playeritem_def.name << " (places "
|
||||||
<< prediction
|
<< prediction
|
||||||
<< ") - Position not loaded" << std::endl;
|
<< ") - Position not loaded" << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1020,7 +1016,7 @@ static inline void create_formspec_menu(GUIFormSpecMenu **cur_formspec,
|
||||||
|
|
||||||
if (*cur_formspec == 0) {
|
if (*cur_formspec == 0) {
|
||||||
*cur_formspec = new GUIFormSpecMenu(device, guiroot, -1, &g_menumgr,
|
*cur_formspec = new GUIFormSpecMenu(device, guiroot, -1, &g_menumgr,
|
||||||
invmgr, gamedef, tsrc, fs_src, txt_dest, client);
|
invmgr, gamedef, tsrc, fs_src, txt_dest, client);
|
||||||
(*cur_formspec)->doPause = false;
|
(*cur_formspec)->doPause = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1204,13 +1200,14 @@ static void updateChat(Client &client, f32 dtime, bool show_debug,
|
||||||
|
|
||||||
// first pass to calculate height of text to be set
|
// first pass to calculate height of text to be set
|
||||||
s32 width = std::min(g_fontengine->getTextWidth(recent_chat) + 10,
|
s32 width = std::min(g_fontengine->getTextWidth(recent_chat) + 10,
|
||||||
porting::getWindowSize().X - 20);
|
porting::getWindowSize().X - 20);
|
||||||
core::rect<s32> rect(10, chat_y, width, chat_y + porting::getWindowSize().Y);
|
core::rect<s32> rect(10, chat_y, width, chat_y + porting::getWindowSize().Y);
|
||||||
guitext_chat->setRelativePosition(rect);
|
guitext_chat->setRelativePosition(rect);
|
||||||
|
|
||||||
//now use real height of text and adjust rect according to this size
|
//now use real height of text and adjust rect according to this size
|
||||||
rect = core::rect<s32>(10, chat_y, width,
|
rect = core::rect<s32>(10, chat_y, width,
|
||||||
chat_y + guitext_chat->getTextHeight());
|
chat_y + guitext_chat->getTextHeight());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
guitext_chat->setRelativePosition(rect);
|
guitext_chat->setRelativePosition(rect);
|
||||||
|
@ -1591,7 +1588,7 @@ private:
|
||||||
GUIChatConsole *gui_chat_console; // Free using ->Drop()
|
GUIChatConsole *gui_chat_console; // Free using ->Drop()
|
||||||
MapDrawControl *draw_control;
|
MapDrawControl *draw_control;
|
||||||
Camera *camera;
|
Camera *camera;
|
||||||
Clouds *clouds; // Free using ->Drop()
|
Clouds *clouds; // Free using ->Drop()
|
||||||
Sky *sky; // Free using ->Drop()
|
Sky *sky; // Free using ->Drop()
|
||||||
Inventory *local_inventory;
|
Inventory *local_inventory;
|
||||||
Hud *hud;
|
Hud *hud;
|
||||||
|
@ -1624,7 +1621,7 @@ private:
|
||||||
gui::IGUIStaticText *guitext2; // Second line of debug text
|
gui::IGUIStaticText *guitext2; // Second line of debug text
|
||||||
gui::IGUIStaticText *guitext_info; // At the middle of the screen
|
gui::IGUIStaticText *guitext_info; // At the middle of the screen
|
||||||
gui::IGUIStaticText *guitext_status;
|
gui::IGUIStaticText *guitext_status;
|
||||||
gui::IGUIStaticText *guitext_chat; // Chat text
|
gui::IGUIStaticText *guitext_chat; // Chat text
|
||||||
gui::IGUIStaticText *guitext_profiler; // Profiler text
|
gui::IGUIStaticText *guitext_profiler; // Profiler text
|
||||||
|
|
||||||
std::wstring infotext;
|
std::wstring infotext;
|
||||||
|
@ -1829,10 +1826,6 @@ void Game::run()
|
||||||
|
|
||||||
while (device->run() && !(*kill || g_gamecallback->shutdown_requested)) {
|
while (device->run() && !(*kill || g_gamecallback->shutdown_requested)) {
|
||||||
|
|
||||||
#ifdef ANDROID
|
|
||||||
porting::handleAndroidActivityEvents();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Must be called immediately after a device->run() call because it
|
/* Must be called immediately after a device->run() call because it
|
||||||
* uses device->getTimer()->getTime()
|
* uses device->getTimer()->getTime()
|
||||||
*/
|
*/
|
||||||
|
@ -2018,7 +2011,7 @@ bool Game::createSingleplayerServer(const std::string map_dir,
|
||||||
}
|
}
|
||||||
|
|
||||||
server = new Server(map_dir, gamespec, simple_singleplayer_mode,
|
server = new Server(map_dir, gamespec, simple_singleplayer_mode,
|
||||||
bind_addr.isIPv6());
|
bind_addr.isIPv6());
|
||||||
|
|
||||||
server->start(bind_addr);
|
server->start(bind_addr);
|
||||||
|
|
||||||
|
@ -2081,7 +2074,7 @@ bool Game::createClient(const std::string &playername,
|
||||||
/* Skybox
|
/* Skybox
|
||||||
*/
|
*/
|
||||||
sky = new Sky(smgr->getRootSceneNode(), smgr, -1, texture_src);
|
sky = new Sky(smgr->getRootSceneNode(), smgr, -1, texture_src);
|
||||||
skybox = NULL; // This is used/set later on in the main run loop
|
skybox = NULL; // This is used/set later on in the main run loop
|
||||||
|
|
||||||
local_inventory = new Inventory(itemdef_manager);
|
local_inventory = new Inventory(itemdef_manager);
|
||||||
|
|
||||||
|
@ -2199,7 +2192,7 @@ bool Game::connectToServer(const std::string &playername,
|
||||||
const std::string &password, std::string *address, u16 port,
|
const std::string &password, std::string *address, u16 port,
|
||||||
bool *connect_ok, bool *aborted)
|
bool *connect_ok, bool *aborted)
|
||||||
{
|
{
|
||||||
*connect_ok = false; // Let's not be overly optimistic
|
*connect_ok = false; // Let's not be overly optimistic
|
||||||
*aborted = false;
|
*aborted = false;
|
||||||
bool local_server_mode = false;
|
bool local_server_mode = false;
|
||||||
|
|
||||||
|
@ -2244,7 +2237,7 @@ bool Game::connectToServer(const std::string &playername,
|
||||||
if (!client)
|
if (!client)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
gamedef = client; // Client acts as our GameDef
|
gamedef = client; // Client acts as our GameDef
|
||||||
|
|
||||||
infostream << "Connecting to server at ";
|
infostream << "Connecting to server at ";
|
||||||
connect_address.print(&infostream);
|
connect_address.print(&infostream);
|
||||||
|
@ -2419,6 +2412,7 @@ inline void Game::updateInteractTimers(GameRunData *runData, f32 dtime)
|
||||||
runData->time_from_last_punch += dtime;
|
runData->time_from_last_punch += dtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* returns false if game should exit, otherwise true
|
/* returns false if game should exit, otherwise true
|
||||||
*/
|
*/
|
||||||
inline bool Game::checkConnection()
|
inline bool Game::checkConnection()
|
||||||
|
@ -2452,13 +2446,13 @@ inline bool Game::handleCallbacks()
|
||||||
|
|
||||||
if (g_gamecallback->changevolume_requested) {
|
if (g_gamecallback->changevolume_requested) {
|
||||||
(new GUIVolumeChange(guienv, guiroot, -1,
|
(new GUIVolumeChange(guienv, guiroot, -1,
|
||||||
&g_menumgr, client))->drop();
|
&g_menumgr, client))->drop();
|
||||||
g_gamecallback->changevolume_requested = false;
|
g_gamecallback->changevolume_requested = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_gamecallback->keyconfig_requested) {
|
if (g_gamecallback->keyconfig_requested) {
|
||||||
(new GUIKeyChangeMenu(guienv, guiroot, -1,
|
(new GUIKeyChangeMenu(guienv, guiroot, -1,
|
||||||
&g_menumgr))->drop();
|
&g_menumgr))->drop();
|
||||||
g_gamecallback->keyconfig_requested = false;
|
g_gamecallback->keyconfig_requested = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2637,7 +2631,6 @@ void Game::processKeyboardInput(VolatileRunFlags *flags,
|
||||||
|
|
||||||
if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_DROP])) {
|
if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_DROP])) {
|
||||||
dropSelectedItem();
|
dropSelectedItem();
|
||||||
// Add WoW-style autorun by toggling continuous forward.
|
|
||||||
} else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_AUTORUN])) {
|
} else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_AUTORUN])) {
|
||||||
toggleAutorun(statustext_time);
|
toggleAutorun(statustext_time);
|
||||||
} else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_INVENTORY])) {
|
} else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_INVENTORY])) {
|
||||||
|
@ -2701,7 +2694,7 @@ void Game::processKeyboardInput(VolatileRunFlags *flags,
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
dstream << "Printing debug stacks:" << std::endl;
|
dstream << "Printing debug stacks:" << std::endl;
|
||||||
dstream << "-----------------------------------------"
|
dstream << "-----------------------------------------"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
debug_stacks_print();
|
debug_stacks_print();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2730,7 +2723,7 @@ void Game::processItemSelection(u16 *new_playeritem)
|
||||||
|
|
||||||
s32 wheel = input->getMouseWheel();
|
s32 wheel = input->getMouseWheel();
|
||||||
u16 max_item = MYMIN(PLAYER_INVENTORY_SIZE - 1,
|
u16 max_item = MYMIN(PLAYER_INVENTORY_SIZE - 1,
|
||||||
player->hud_hotbar_itemcount - 1);
|
player->hud_hotbar_itemcount - 1);
|
||||||
|
|
||||||
if (wheel < 0)
|
if (wheel < 0)
|
||||||
*new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0;
|
*new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0;
|
||||||
|
@ -3008,7 +3001,7 @@ void Game::toggleProfiler(float *statustext_time, u32 *profiler_current_page,
|
||||||
if (*profiler_current_page != 0) {
|
if (*profiler_current_page != 0) {
|
||||||
std::wstringstream sstr;
|
std::wstringstream sstr;
|
||||||
sstr << "Profiler shown (page " << *profiler_current_page
|
sstr << "Profiler shown (page " << *profiler_current_page
|
||||||
<< " of " << profiler_max_page << ")";
|
<< " of " << profiler_max_page << ")";
|
||||||
statustext = sstr.str();
|
statustext = sstr.str();
|
||||||
} else {
|
} else {
|
||||||
statustext = L"Profiler hidden";
|
statustext = L"Profiler hidden";
|
||||||
|
@ -3175,7 +3168,7 @@ inline void Game::step(f32 *dtime)
|
||||||
bool can_be_and_is_paused =
|
bool can_be_and_is_paused =
|
||||||
(simple_singleplayer_mode && g_menumgr.pausesGame());
|
(simple_singleplayer_mode && g_menumgr.pausesGame());
|
||||||
|
|
||||||
if (can_be_and_is_paused) { // This is for a singleplayer server
|
if (can_be_and_is_paused) { // This is for a singleplayer server
|
||||||
*dtime = 0; // No time passes
|
*dtime = 0; // No time passes
|
||||||
} else {
|
} else {
|
||||||
if (server != NULL) {
|
if (server != NULL) {
|
||||||
|
@ -3218,7 +3211,7 @@ void Game::processClientEvents(CameraOrientation *cam, float *damage_flash)
|
||||||
show_deathscreen(¤t_formspec, client, gamedef, texture_src,
|
show_deathscreen(¤t_formspec, client, gamedef, texture_src,
|
||||||
device, client);
|
device, client);
|
||||||
|
|
||||||
// chat_backend->addMessage(L"", L"You died.");
|
chat_backend->addMessage(L"", L"You died.");
|
||||||
|
|
||||||
/* Handle visualization */
|
/* Handle visualization */
|
||||||
*damage_flash = 0;
|
*damage_flash = 0;
|
||||||
|
@ -3232,7 +3225,7 @@ void Game::processClientEvents(CameraOrientation *cam, float *damage_flash)
|
||||||
new TextDestPlayerInventory(client, *(event.show_formspec.formname));
|
new TextDestPlayerInventory(client, *(event.show_formspec.formname));
|
||||||
|
|
||||||
create_formspec_menu(¤t_formspec, client, gamedef,
|
create_formspec_menu(¤t_formspec, client, gamedef,
|
||||||
texture_src, device, fs_src, txt_dst, client);
|
texture_src, device, fs_src, txt_dst, client);
|
||||||
|
|
||||||
delete(event.show_formspec.formspec);
|
delete(event.show_formspec.formspec);
|
||||||
delete(event.show_formspec.formname);
|
delete(event.show_formspec.formname);
|
||||||
|
@ -3437,7 +3430,7 @@ void Game::updateCamera(VolatileRunFlags *flags, u32 busy_time,
|
||||||
|
|
||||||
tool_reload_ratio = MYMIN(tool_reload_ratio, 1.0);
|
tool_reload_ratio = MYMIN(tool_reload_ratio, 1.0);
|
||||||
camera->update(player, dtime, busy_time / 1000.0f, tool_reload_ratio,
|
camera->update(player, dtime, busy_time / 1000.0f, tool_reload_ratio,
|
||||||
client->getEnv());
|
client->getEnv());
|
||||||
camera->step(dtime);
|
camera->step(dtime);
|
||||||
|
|
||||||
v3f camera_position = camera->getPosition();
|
v3f camera_position = camera->getPosition();
|
||||||
|
@ -3467,13 +3460,13 @@ void Game::updateSound(f32 dtime)
|
||||||
// Update sound listener
|
// Update sound listener
|
||||||
v3s16 camera_offset = camera->getOffset();
|
v3s16 camera_offset = camera->getOffset();
|
||||||
sound->updateListener(camera->getCameraNode()->getPosition() + intToFloat(camera_offset, BS),
|
sound->updateListener(camera->getCameraNode()->getPosition() + intToFloat(camera_offset, BS),
|
||||||
v3f(0, 0, 0), // velocity
|
v3f(0, 0, 0), // velocity
|
||||||
camera->getDirection(),
|
camera->getDirection(),
|
||||||
camera->getCameraNode()->getUpVector());
|
camera->getCameraNode()->getUpVector());
|
||||||
sound->setListenerGain(g_settings->getFloat("sound_volume"));
|
sound->setListenerGain(g_settings->getFloat("sound_volume"));
|
||||||
|
|
||||||
|
|
||||||
// Update sound maker
|
// Update sound maker
|
||||||
soundmaker->step(dtime);
|
soundmaker->step(dtime);
|
||||||
|
|
||||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||||
|
@ -3526,7 +3519,7 @@ void Game::processPlayerInteraction(std::vector<aabb3f> &highlight_boxes,
|
||||||
camera_position + camera_direction * BS * (d + 1));
|
camera_position + camera_direction * BS * (d + 1));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// prevent player pointing anything in front-view
|
// prevent player pointing anything in front-view
|
||||||
if (camera->getCameraMode() == CAMERA_MODE_THIRD_FRONT)
|
if (camera->getCameraMode() == CAMERA_MODE_THIRD_FRONT)
|
||||||
shootline = core::line3d<f32>(0, 0, 0, 0, 0, 0);
|
shootline = core::line3d<f32>(0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
@ -3572,7 +3565,7 @@ void Game::processPlayerInteraction(std::vector<aabb3f> &highlight_boxes,
|
||||||
if (runData->digging) {
|
if (runData->digging) {
|
||||||
if (input->getLeftReleased()) {
|
if (input->getLeftReleased()) {
|
||||||
infostream << "Left button released"
|
infostream << "Left button released"
|
||||||
<< " (stopped digging)" << std::endl;
|
<< " (stopped digging)" << std::endl;
|
||||||
runData->digging = false;
|
runData->digging = false;
|
||||||
} else if (pointed != runData->pointed_old) {
|
} else if (pointed != runData->pointed_old) {
|
||||||
if (pointed.type == POINTEDTHING_NODE
|
if (pointed.type == POINTEDTHING_NODE
|
||||||
|
@ -3583,7 +3576,7 @@ void Game::processPlayerInteraction(std::vector<aabb3f> &highlight_boxes,
|
||||||
// Don't reset.
|
// Don't reset.
|
||||||
} else {
|
} else {
|
||||||
infostream << "Pointing away from node"
|
infostream << "Pointing away from node"
|
||||||
<< " (stopped digging)" << std::endl;
|
<< " (stopped digging)" << std::endl;
|
||||||
runData->digging = false;
|
runData->digging = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3710,7 +3703,7 @@ void Game::handlePointingAtNode(GameRunData *runData,
|
||||||
TextDest *txt_dst = new TextDestNodeMetadata(nodepos, client);
|
TextDest *txt_dst = new TextDestNodeMetadata(nodepos, client);
|
||||||
|
|
||||||
create_formspec_menu(¤t_formspec, client, gamedef,
|
create_formspec_menu(¤t_formspec, client, gamedef,
|
||||||
texture_src, device, fs_src, txt_dst, client);
|
texture_src, device, fs_src, txt_dst, client);
|
||||||
|
|
||||||
current_formspec->setFormSpec(meta->getString("formspec"), inventoryloc);
|
current_formspec->setFormSpec(meta->getString("formspec"), inventoryloc);
|
||||||
} else {
|
} else {
|
||||||
|
@ -3959,7 +3952,7 @@ void Game::updateFrame(std::vector<aabb3f> &highlight_boxes,
|
||||||
direct_brightness = client->getEnv().getClientMap()
|
direct_brightness = client->getEnv().getClientMap()
|
||||||
.getBackgroundBrightness(MYMIN(runData->fog_range * 1.2, 60 * BS),
|
.getBackgroundBrightness(MYMIN(runData->fog_range * 1.2, 60 * BS),
|
||||||
daynight_ratio, (int)(old_brightness * 255.5), &sunlight_seen)
|
daynight_ratio, (int)(old_brightness * 255.5), &sunlight_seen)
|
||||||
/ 255.0;
|
/ 255.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
float time_of_day = runData->time_of_day;
|
float time_of_day = runData->time_of_day;
|
||||||
|
@ -3998,7 +3991,7 @@ void Game::updateFrame(std::vector<aabb3f> &highlight_boxes,
|
||||||
clouds->setVisible(true);
|
clouds->setVisible(true);
|
||||||
clouds->step(dtime);
|
clouds->step(dtime);
|
||||||
clouds->update(v2f(player_position.X, player_position.Z),
|
clouds->update(v2f(player_position.X, player_position.Z),
|
||||||
sky->getCloudColor());
|
sky->getCloudColor());
|
||||||
} else {
|
} else {
|
||||||
clouds->setVisible(false);
|
clouds->setVisible(false);
|
||||||
}
|
}
|
||||||
|
@ -4210,7 +4203,7 @@ void Game::updateGui(float *statustext_time, const RunStats &stats,
|
||||||
|
|
||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
os << std::fixed
|
os << std::fixed
|
||||||
<< "MultiCraft " << g_version_hash
|
<< PROJECT_NAME_C " " << g_version_hash
|
||||||
<< " FPS = " << fps
|
<< " FPS = " << fps
|
||||||
<< " (R: range_all=" << draw_control->range_all << ")"
|
<< " (R: range_all=" << draw_control->range_all << ")"
|
||||||
<< std::setprecision(0)
|
<< std::setprecision(0)
|
||||||
|
@ -4226,13 +4219,21 @@ void Game::updateGui(float *statustext_time, const RunStats &stats,
|
||||||
guitext->setVisible(true);
|
guitext->setVisible(true);
|
||||||
} else if (flags.show_hud || flags.show_chat) {
|
} else if (flags.show_hud || flags.show_chat) {
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
guitext->setVisible(false);
|
u16 fps = 1.0 / stats.dtime_jitter.avg;
|
||||||
|
std::ostringstream os(std::ios_base::binary);
|
||||||
|
os << std::setprecision(1) << std::fixed
|
||||||
|
<< "FPS = " << fps
|
||||||
|
<< " (" << (player_position.X / BS)
|
||||||
|
<< ", " << (player_position.Y / BS)
|
||||||
|
<< ", " << (player_position.Z / BS)
|
||||||
|
<< ")";
|
||||||
|
guitext->setText(utf8_to_wide(os.str()).c_str());
|
||||||
|
guitext->setVisible(true);
|
||||||
#else
|
#else
|
||||||
std::ostringstream os(std::ios_base::binary);
|
std::ostringstream os(std::ios_base::binary);
|
||||||
os << PROJECT_NAME_C " " << g_version_hash;
|
os << PROJECT_NAME_C " " << g_version_hash;
|
||||||
guitext->setText(utf8_to_wide(os.str()).c_str());
|
guitext->setText(utf8_to_wide(os.str()).c_str());
|
||||||
guitext->setVisible(true);
|
guitext->setVisible(true);
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
guitext->setVisible(false);
|
guitext->setVisible(false);
|
||||||
}
|
}
|
||||||
|
@ -4420,20 +4421,20 @@ void Game::extendedResourceCleanup()
|
||||||
// Extended resource accounting
|
// Extended resource accounting
|
||||||
infostream << "Irrlicht resources after cleanup:" << std::endl;
|
infostream << "Irrlicht resources after cleanup:" << std::endl;
|
||||||
infostream << "\tRemaining meshes : "
|
infostream << "\tRemaining meshes : "
|
||||||
<< device->getSceneManager()->getMeshCache()->getMeshCount() << std::endl;
|
<< device->getSceneManager()->getMeshCache()->getMeshCount() << std::endl;
|
||||||
infostream << "\tRemaining textures : "
|
infostream << "\tRemaining textures : "
|
||||||
<< driver->getTextureCount() << std::endl;
|
<< driver->getTextureCount() << std::endl;
|
||||||
|
|
||||||
for (unsigned int i = 0; i < driver->getTextureCount(); i++) {
|
for (unsigned int i = 0; i < driver->getTextureCount(); i++) {
|
||||||
irr::video::ITexture *texture = driver->getTextureByIndex(i);
|
irr::video::ITexture *texture = driver->getTextureByIndex(i);
|
||||||
infostream << "\t\t" << i << ":" << texture->getName().getPath().c_str()
|
infostream << "\t\t" << i << ":" << texture->getName().getPath().c_str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearTextureNameCache();
|
clearTextureNameCache();
|
||||||
infostream << "\tRemaining materials: "
|
infostream << "\tRemaining materials: "
|
||||||
<< driver-> getMaterialRendererCount()
|
<< driver-> getMaterialRendererCount()
|
||||||
<< " (note: irrlicht doesn't support removing renderers)" << std::endl;
|
<< " (note: irrlicht doesn't support removing renderers)" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4481,7 +4482,7 @@ void the_game(bool *kill,
|
||||||
} catch (SerializationError &e) {
|
} catch (SerializationError &e) {
|
||||||
error_message = std::string("A serialization error occurred:\n")
|
error_message = std::string("A serialization error occurred:\n")
|
||||||
+ e.what() + "\n\nThe server is probably "
|
+ e.what() + "\n\nThe server is probably "
|
||||||
" running a different version of MultiCraft.";
|
" running a different version of " PROJECT_NAME_C ".";
|
||||||
errorstream << error_message << std::endl;
|
errorstream << error_message << std::endl;
|
||||||
} catch (ServerError &e) {
|
} catch (ServerError &e) {
|
||||||
error_message = e.what();
|
error_message = e.what();
|
||||||
|
@ -4490,4 +4491,4 @@ void the_game(bool *kill,
|
||||||
error_message = e.what() + strgettext("\nCheck debug.txt for details.");
|
error_message = e.what() + strgettext("\nCheck debug.txt for details.");
|
||||||
errorstream << "ModError: " << error_message << std::endl;
|
errorstream << "ModError: " << error_message << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,6 @@ GUIEngine::GUIEngine( irr::IrrlichtDevice* dev,
|
||||||
m_sound_manager = &dummySoundManager;
|
m_sound_manager = &dummySoundManager;
|
||||||
|
|
||||||
//create topleft header
|
//create topleft header
|
||||||
std::wstring t = narrow_to_wide(std::string(""));
|
|
||||||
//std::wstring t = utf8_to_wide(std::string(PROJECT_NAME_C " ") +
|
//std::wstring t = utf8_to_wide(std::string(PROJECT_NAME_C " ") +
|
||||||
//g_version_hash);
|
//g_version_hash);
|
||||||
|
|
||||||
|
|
|
@ -2963,7 +2963,7 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event)
|
||||||
else if (event.TouchInput.touchedCount == 2) {
|
else if (event.TouchInput.touchedCount == 2) {
|
||||||
dont_send_event = true;
|
dont_send_event = true;
|
||||||
}
|
}
|
||||||
else if (event.TouchInput.touchedCount > 2) {
|
else if (event.TouchInput.touchedCount > 4) {
|
||||||
errorstream
|
errorstream
|
||||||
<< "GUIFormSpecMenu::preprocessEvent to many multitouch events "
|
<< "GUIFormSpecMenu::preprocessEvent to many multitouch events "
|
||||||
<< event.TouchInput.touchedCount << " ignoring them" << std::endl;
|
<< event.TouchInput.touchedCount << " ignoring them" << std::endl;
|
||||||
|
|
|
@ -137,6 +137,9 @@ public:
|
||||||
virtual void exitToOS()
|
virtual void exitToOS()
|
||||||
{
|
{
|
||||||
shutdown_requested = true;
|
shutdown_requested = true;
|
||||||
|
#ifndef __ANDROID__
|
||||||
|
device->closeDevice();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void disconnect()
|
virtual void disconnect()
|
||||||
|
|
|
@ -23,8 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
#include "mapgen.h"
|
#include "mapgen.h"
|
||||||
|
|
||||||
#define BIOMEGEN_BASE_V7 -192
|
|
||||||
|
|
||||||
/////////////////// Mapgen V7 flags
|
/////////////////// Mapgen V7 flags
|
||||||
#define MGV7_MOUNTAINS 0x01
|
#define MGV7_MOUNTAINS 0x01
|
||||||
#define MGV7_RIDGES 0x02
|
#define MGV7_RIDGES 0x02
|
||||||
|
|
|
@ -4,11 +4,7 @@ Copyright (C) 2010-2015 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
<<<<<<< HEAD
|
|
||||||
the Free Software Foundation; either version 3.0 of the License, or
|
the Free Software Foundation; either version 3.0 of the License, or
|
||||||
=======
|
|
||||||
the Free Software Foundation; either version 2.1 of the License, or
|
|
||||||
>>>>>>> 900db310638531a8b9fb1a587f75a02a15ae0c24
|
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
|
|
|
@ -230,3 +230,4 @@ std::string NodeMetadata::resolveString(const std::string &str,
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,3 +98,4 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -339,7 +339,7 @@ std::vector<v3s16> pathfinder::get_Path(ServerEnvironment* env,
|
||||||
#ifdef PATHFINDER_DEBUG
|
#ifdef PATHFINDER_DEBUG
|
||||||
print_pathlen();
|
print_pathlen();
|
||||||
#endif
|
#endif
|
||||||
//ERROR_TARGET << "failed to update cost map"<< std::endl;
|
ERROR_TARGET << "failed to update cost map"<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -86,17 +86,6 @@ android_app* app_global;
|
||||||
JNIEnv* jnienv;
|
JNIEnv* jnienv;
|
||||||
jclass nativeActivity;
|
jclass nativeActivity;
|
||||||
|
|
||||||
void handleAndroidActivityEvents()
|
|
||||||
{
|
|
||||||
int ident;
|
|
||||||
int events;
|
|
||||||
struct android_poll_source *source;
|
|
||||||
|
|
||||||
while ( (ident = ALooper_pollOnce(0, NULL, &events, (void**)&source)) >= 0)
|
|
||||||
if (source)
|
|
||||||
source->process(porting::app_global, source);
|
|
||||||
}
|
|
||||||
|
|
||||||
jclass findClass(std::string classname)
|
jclass findClass(std::string classname)
|
||||||
{
|
{
|
||||||
if (jnienv == 0) {
|
if (jnienv == 0) {
|
||||||
|
@ -172,48 +161,7 @@ void cleanupAndroid()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
JavaVM *jvm = app_global->activity->vm;
|
JavaVM *jvm = app_global->activity->vm;
|
||||||
if (jvm)
|
jvm->DetachCurrentThread();
|
||||||
jvm->DetachCurrentThread();
|
|
||||||
ANativeActivity_finish(app_global->activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::string javaStringToUTF8(jstring js)
|
|
||||||
{
|
|
||||||
std::string str;
|
|
||||||
// Get string as a UTF-8 c-string
|
|
||||||
const char *c_str = jnienv->GetStringUTFChars(js, NULL);
|
|
||||||
// Save it
|
|
||||||
str = c_str;
|
|
||||||
// And free the c-string
|
|
||||||
jnienv->ReleaseStringUTFChars(js, c_str);
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calls static method if obj is NULL
|
|
||||||
static std::string getAndroidPath(jclass cls, jobject obj, jclass cls_File,
|
|
||||||
jmethodID mt_getAbsPath, const char *getter)
|
|
||||||
{
|
|
||||||
// Get getter method
|
|
||||||
jmethodID mt_getter;
|
|
||||||
if (obj)
|
|
||||||
mt_getter = jnienv->GetMethodID(cls, getter,
|
|
||||||
"()Ljava/io/File;");
|
|
||||||
else
|
|
||||||
mt_getter = jnienv->GetStaticMethodID(cls, getter,
|
|
||||||
"()Ljava/io/File;");
|
|
||||||
|
|
||||||
// Call getter
|
|
||||||
jobject ob_file;
|
|
||||||
if (obj)
|
|
||||||
ob_file = jnienv->CallObjectMethod(obj, mt_getter);
|
|
||||||
else
|
|
||||||
ob_file = jnienv->CallStaticObjectMethod(cls, mt_getter);
|
|
||||||
|
|
||||||
// Call getAbsolutePath
|
|
||||||
jstring js_path = (jstring) jnienv->CallObjectMethod(ob_file,
|
|
||||||
mt_getAbsPath);
|
|
||||||
|
|
||||||
return javaStringToUTF8(js_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string javaStringToUTF8(jstring js)
|
static std::string javaStringToUTF8(jstring js)
|
||||||
|
|
|
@ -76,7 +76,6 @@ int getInputDialogState();
|
||||||
*/
|
*/
|
||||||
std::string getInputDialogValue();
|
std::string getInputDialogValue();
|
||||||
|
|
||||||
void handleAndroidActivityEvents();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1246,11 +1246,6 @@ void Server::setTimeOfDay(u32 time)
|
||||||
m_time_of_day_send_timer = 0;
|
m_time_of_day_send_timer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 Server::getTimeOfDay()
|
|
||||||
{
|
|
||||||
return m_env->getTimeOfDay();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Server::onMapEditEvent(MapEditEvent *event)
|
void Server::onMapEditEvent(MapEditEvent *event)
|
||||||
{
|
{
|
||||||
if(m_ignore_map_edit_events)
|
if(m_ignore_map_edit_events)
|
||||||
|
|
|
@ -225,7 +225,6 @@ public:
|
||||||
// Both setter and getter need no envlock,
|
// Both setter and getter need no envlock,
|
||||||
// can be called freely from threads
|
// can be called freely from threads
|
||||||
void setTimeOfDay(u32 time);
|
void setTimeOfDay(u32 time);
|
||||||
inline u32 getTimeOfDay();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Shall be called with the environment locked.
|
Shall be called with the environment locked.
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct SubgameSpec
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// main config
|
// multicraft.conf
|
||||||
bool getGameMinetestConfig(const std::string &game_path, Settings &conf);
|
bool getGameMinetestConfig(const std::string &game_path, Settings &conf);
|
||||||
// game.conf
|
// game.conf
|
||||||
bool getGameConfig(const std::string &game_path, Settings &conf);
|
bool getGameConfig(const std::string &game_path, Settings &conf);
|
||||||
|
|
|
@ -25,14 +25,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
#include "threading/event.h"
|
#include "threading/event.h"
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
#ifndef WIN32_LEAN_AND_MEAN
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#endif
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if __cplusplus < 201103L
|
#if __cplusplus < 201103L
|
||||||
Event::Event()
|
Event::Event()
|
||||||
{
|
{
|
||||||
|
@ -92,4 +84,3 @@ void Event::signal()
|
||||||
pthread_mutex_unlock(&mutex);
|
pthread_mutex_unlock(&mutex);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,10 @@ DEALINGS IN THE SOFTWARE.
|
||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
#include "threading/mutex.h"
|
#include "threading/mutex.h"
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
#include <windef.h>
|
#ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
#else
|
#else
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -66,4 +69,3 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ const char *touchgui_button_imagenames[] = {
|
||||||
"fly_btn.png",
|
"fly_btn.png",
|
||||||
"noclip_btn.png",
|
"noclip_btn.png",
|
||||||
#endif
|
#endif
|
||||||
"minimap_btn.png",
|
// "minimap_btn.png",
|
||||||
"debug_btn.png",
|
"debug_btn.png",
|
||||||
"chat_btn.png",
|
"chat_btn.png",
|
||||||
// "camera_btn.png",
|
// "camera_btn.png",
|
||||||
|
@ -98,9 +98,9 @@ static irr::EKEY_CODE id2keycode(touch_gui_button_id id)
|
||||||
key = "fast";
|
key = "fast";
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case minimap_id:
|
/* case minimap_id:
|
||||||
key = "minimap";
|
key = "minimap";
|
||||||
break;
|
break;*/
|
||||||
case debug_id:
|
case debug_id:
|
||||||
key = "toggle_debug";
|
key = "toggle_debug";
|
||||||
break;
|
break;
|
||||||
|
@ -298,13 +298,13 @@ void TouchScreenGUI::init(ISimpleTextureSource* tsrc, float density)
|
||||||
m_screensize.Y - (button_size*3.25)),
|
m_screensize.Y - (button_size*3.25)),
|
||||||
L"fast", false, SLOW_BUTTON_REPEAT);
|
L"fast", false, SLOW_BUTTON_REPEAT);
|
||||||
#endif
|
#endif
|
||||||
/* init minimap button */
|
/* init minimap button
|
||||||
initButton(minimap_id,
|
initButton(minimap_id,
|
||||||
rect<s32>(m_screensize.X - (0.75*button_size),
|
rect<s32>(m_screensize.X - (0.75*button_size),
|
||||||
m_screensize.Y - (4*button_size),
|
m_screensize.Y - (4*button_size),
|
||||||
m_screensize.X,
|
m_screensize.X,
|
||||||
m_screensize.Y - (button_size*3.25)),
|
m_screensize.Y - (button_size*3.25)),
|
||||||
L"minimap", false, SLOW_BUTTON_REPEAT);
|
L"minimap", false, SLOW_BUTTON_REPEAT);*/
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
/* init debug button */
|
/* init debug button */
|
||||||
initButton(debug_id,
|
initButton(debug_id,
|
||||||
|
@ -327,10 +327,11 @@ void TouchScreenGUI::init(ISimpleTextureSource* tsrc, float density)
|
||||||
|
|
||||||
/* init rangeselect button */
|
/* init rangeselect button */
|
||||||
initButton(range_id,
|
initButton(range_id,
|
||||||
rect<s32>(0, 0,
|
/*rect<s32>(m_screensize.X - (0.75*button_size), 0,
|
||||||
0.75*button_size, 0.75*button_size),*/
|
m_screensize.X, 0.75*button_size),*/
|
||||||
/*rect<s32>(0.78 * button_size, 0,
|
|
||||||
1.5 * button_size, 0.75*button_size+0.03),*/
|
rect<s32>(m_screensize.X - (1.5*button_size), 0,
|
||||||
|
m_screensize.X - (0.75*button_size), 0.75*button_size),
|
||||||
L"far", false, SLOW_BUTTON_REPEAT);
|
L"far", false, SLOW_BUTTON_REPEAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ typedef enum {
|
||||||
noclip_id,
|
noclip_id,
|
||||||
fast_id,
|
fast_id,
|
||||||
#endif
|
#endif
|
||||||
minimap_id,
|
// minimap_id,
|
||||||
debug_id,
|
debug_id,
|
||||||
chat_id,
|
chat_id,
|
||||||
// camera_id,
|
// camera_id,
|
||||||
|
@ -94,7 +94,6 @@ private:
|
||||||
std::map<int,rect<s32> > m_hud_rects;
|
std::map<int,rect<s32> > m_hud_rects;
|
||||||
std::map<int,irr::EKEY_CODE> m_hud_ids;
|
std::map<int,irr::EKEY_CODE> m_hud_ids;
|
||||||
bool m_visible; // is the gui visible
|
bool m_visible; // is the gui visible
|
||||||
|
|
||||||
rect<s32> controlpadarea;
|
rect<s32> controlpadarea;
|
||||||
|
|
||||||
/* value in degree */
|
/* value in degree */
|
||||||
|
|
Loading…
Reference in New Issue