void addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server=false, bool urgent=false);
void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false);
- void updateCameraOffset(v3s16 camera_offset){ m_mesh_update_thread.m_camera_offset = camera_offset; }
+ void updateCameraOffset(v3s16 camera_offset)
+ { m_mesh_update_thread.m_camera_offset = camera_offset; }
// Get event from queue. CE_NONE is returned if queue is empty.
ClientEvent getClientEvent();
u32 packet_size = data.getSize() + header_size;
SharedBuffer<u8> b(packet_size);
- writeU8(&b[0], TYPE_ORIGINAL);
-
- memcpy(&b[header_size], *data, data.getSize());
-
+ writeU8(&(b[0]), TYPE_ORIGINAL);
+ if (data.getSize() > 0) {
+ memcpy(&(b[header_size]), *data, data.getSize());
+ }
return b;
}
if(packetdata.getSize() < 1)
throw InvalidIncomingDataException("packetdata.getSize() < 1");
- u8 type = readU8(&packetdata[0]);
+ u8 type = readU8(&(packetdata[0]));
if(type == TYPE_CONTROL)
{
if(packetdata.getSize() < 2)
throw InvalidIncomingDataException("packetdata.getSize() < 2");
- u8 controltype = readU8(&packetdata[1]);
+ u8 controltype = readU8(&(packetdata[1]));
if( (controltype == CONTROLTYPE_ACK)
&& (peer_id <= MAX_UDP_PEERS))
}
else if(type == TYPE_ORIGINAL)
{
- if(packetdata.getSize() < ORIGINAL_HEADER_SIZE)
+ if(packetdata.getSize() <= ORIGINAL_HEADER_SIZE)
throw InvalidIncomingDataException
- ("packetdata.getSize() < ORIGINAL_HEADER_SIZE");
+ ("packetdata.getSize() <= ORIGINAL_HEADER_SIZE");
LOG(dout_con<<m_connection->getDesc()
<<"RETURNING TYPE_ORIGINAL to user"
<<std::endl);
// Get the inside packet out and return it
SharedBuffer<u8> payload(packetdata.getSize() - ORIGINAL_HEADER_SIZE);
- memcpy(*payload, &packetdata[ORIGINAL_HEADER_SIZE], payload.getSize());
+ memcpy(*payload, &(packetdata[ORIGINAL_HEADER_SIZE]), payload.getSize());
return payload;
}
else if(type == TYPE_SPLIT)
}
else {
infostream
- << "GUIEngine: execution of custom menu failed!"
+ << "GUIEngine: execution of custom menu: \""
+ << menuscript << "\" failed!"
<< std::endl
<< "\tfalling back to builtin menu"
<< std::endl;
if(nodemgr->get(map->getNode(p)).walkable == false)
continue;
// And the node above it has to be nonwalkable
- if(nodemgr->get(map->getNode(p+v3s16(0,1,0))).walkable == true)
+ if(nodemgr->get(map->getNode(p+v3s16(0,1,0))).walkable == true) {
continue;
+ }
if (!physics_override_sneak_glitch) {
if (nodemgr->get(map->getNode(p+v3s16(0,2,0))).walkable)
continue;
} else {
keyIsDown.unset(event.KeyInput);
}
+ return true;
}
if(event.EventType == irr::EET_MOUSE_INPUT_EVENT)
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();
#elif defined(__sun) || defined(sun)
- return processor_bind(P_LWPID, MAKE_LWPID_PTHREAD(tid),
+ return processor_bind(P_LWPID, MAKE_LWPID_PTHREAD(tid),
pnumber, NULL) == 0;
#elif defined(_AIX)
i != trylist.end(); i++)
{
const std::string &trypath = *i;
- if(!fs::PathExists(trypath) || !fs::PathExists(trypath + "/builtin")){
+ if(!fs::PathExists(trypath) || !fs::PathExists(trypath + DIR_DELIM + "builtin")){
dstream<<"WARNING: system-wide share not found at \""
<<trypath<<"\""<<std::endl;
continue;
break;
}
- path_user = std::string(getenv("HOME")) + "/." + PROJECT_NAME;
+ path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + PROJECT_NAME;
/*
OS X
*/
#elif defined(__APPLE__)
- // Code based on
- // http://stackoverflow.com/questions/516200/relative-paths-not-working-in-xcode-c
- CFBundleRef main_bundle = CFBundleGetMainBundle();
- CFURLRef resources_url = CFBundleCopyResourcesDirectoryURL(main_bundle);
- char path[PATH_MAX];
- if(CFURLGetFileSystemRepresentation(resources_url, TRUE, (UInt8 *)path, PATH_MAX))
+ // Code based on
+ // http://stackoverflow.com/questions/516200/relative-paths-not-working-in-xcode-c
+ CFBundleRef main_bundle = CFBundleGetMainBundle();
+ CFURLRef resources_url = CFBundleCopyResourcesDirectoryURL(main_bundle);
+ char path[PATH_MAX];
+ if(CFURLGetFileSystemRepresentation(resources_url, TRUE, (UInt8 *)path, PATH_MAX))
{
dstream<<"Bundle resource path: "<<path<<std::endl;
//chdir(path);
- path_share = std::string(path) + "/share";
+ path_share = std::string(path) + DIR_DELIM + "share";
}
else
- {
- // error!
+ {
+ // error!
dstream<<"WARNING: Could not determine bundle resource path"<<std::endl;
- }
- CFRelease(resources_url);
+ }
+ CFRelease(resources_url);
path_user = std::string(getenv("HOME")) + "/Library/Application Support/" + PROJECT_NAME;
#else // FreeBSD, and probably many other POSIX-like systems.
path_share = STATIC_SHAREDIR;
- path_user = std::string(getenv("HOME")) + "/." + PROJECT_NAME;
+ path_user = std::string(getenv("HOME")) + DIR_DELIM + "." + PROJECT_NAME;
#endif
#include <map>
#include <set>
#include "filesys.h"
+#include <cctype>
enum ValueType
{
u32 getFlagStr(std::string name, FlagDesc *flagdesc, u32 *flagmask)
{
std::string val = get(name);
- return (isdigit(val[0])) ? stoi(val) :
+ return (std::isdigit(val[0])) ? stoi(val) :
readFlagString(val, flagdesc, flagmask);
}
m_textureinfo_cache.push_back(ti);
m_name_to_id[name] = id;
- /*infostream<<"getTextureIdDirect(): "
- <<"Returning id="<<id<<" for name \""<<name<<"\""<<std::endl;*/
-
return id;
}
{
video::IImage *image = m_sourcecache.getOrLoad(part_of_name, m_device);
+ if (image != NULL) {
+ if (!driver->queryFeature(irr::video::EVDF_TEXTURE_NPOT)) {
+ core::dimension2d<u32> dim = image->getDimension();
+
+
+ if ((dim.Height %2 != 0) ||
+ (dim.Width %2 != 0)) {
+ errorstream << "TextureSource::generateImage "
+ << part_of_name << " size npot2 x=" << dim.Width
+ << " y=" << dim.Height << std::endl;
+ }
+ }
+ }
+
if(image == NULL)
{
if(part_of_name != ""){
}
T & operator[](unsigned int i) const
{
- //assert(i < m_size)
+ assert(i < m_size);
return data[i];
}
T * operator*() const