add compile fixes etc
This commit is contained in:
parent
1a3d25c5ad
commit
6eb7b6efc5
|
@ -145,7 +145,6 @@ endif()
|
||||||
# Client sources
|
# Client sources
|
||||||
set(minetest_SRCS
|
set(minetest_SRCS
|
||||||
${common_SRCS}
|
${common_SRCS}
|
||||||
MyBillboardSceneNode.cpp
|
|
||||||
content_mapblock.cpp
|
content_mapblock.cpp
|
||||||
content_cao.cpp
|
content_cao.cpp
|
||||||
mapblock_mesh.cpp
|
mapblock_mesh.cpp
|
||||||
|
@ -247,26 +246,48 @@ if(MSVC)
|
||||||
else()
|
else()
|
||||||
# Probably GCC
|
# Probably GCC
|
||||||
|
|
||||||
if(WARN_ALL)
|
set(CFLAGS "-fwrapv -fno-fast-math")
|
||||||
set(RELEASE_WARNING_FLAGS "-Wall")
|
set(OPT_CFLAGS "-O3 -fomit-frame-pointer")
|
||||||
else()
|
|
||||||
set(RELEASE_WARNING_FLAGS "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wno-unused-but-set-variable" HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
|
||||||
if(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
|
||||||
set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-but-set-variable")
|
|
||||||
endif(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(CMAKE_OSX_ARCHITECTURES i386 CACHE STRING "do not build for 64-bit" FORCE)
|
set(CMAKE_OSX_ARCHITECTURES i386 CACHE STRING "do not build for 64-bit" FORCE)
|
||||||
set(ARCH i386)
|
set(ARCH i386)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
|
if(ENABLE_SSP)
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
|
CHECK_CXX_COMPILER_FLAG("-fstack-protector-strong" HAS_FSTACK_STRONG)
|
||||||
|
if(HAS_FSTACK_STRONG)
|
||||||
|
set(CFLAGS "${CFLAGS} -fstack-protector-strong")
|
||||||
|
else()
|
||||||
|
set(CFLAGS "${CFLAGS} -fstack-protector")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(ENABLE_SAFESTACK)
|
||||||
|
CHECK_CXX_COMPILER_FLAG("-fsanitize=safe-stack" HAS_SAFESTACK)
|
||||||
|
if(HAS_SAFESTACK)
|
||||||
|
set(CFLAGS "${CFLAGS} -fsanitize=safe-stack")
|
||||||
|
set(LDFLAGS "${LDFLAGS} -fsanitize=safe-stack -lrt")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(ENABLE_PIE)
|
||||||
|
set(CFLAGS "${CFLAGS} -fPIC -fPIE")
|
||||||
|
set(LDFLAGS "${LDFLAGS} -Wl,-pie")
|
||||||
|
endif()
|
||||||
|
if(CPU_OPTS)
|
||||||
|
set(OPT_CFLAGS "${OPT_CFLAGS} -march=${CPUTYPE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${OPT_CFLAGS} ${CFLAGS} ${CXXFLAGS} -Wall -DNDEBUG -pipe -fpermissive -Wno-write-strings")
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "${OPT_CFLAGS} ${CFLAGS} -Wall -DNDEBUG -pipe")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CFLAGS} ${CXXFLAGS} -Wall -O0 -g3 -ggdb -fpermissive -Wno-write-strings")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CFLAGS} -Wall -O0 -g3 -ggdb")
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE ${LDFLAGS})
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${LDFLAGS}")
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
|
||||||
|
|
||||||
if(USE_GPROF)
|
if(USE_GPROF)
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
|
||||||
|
|
|
@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <SAnimatedMesh.h>
|
#include <SAnimatedMesh.h>
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
#define MY_ETLM_READ_ONLY video::ETLM_READ_ONLY
|
||||||
|
|
||||||
Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control):
|
||||||
m_smgr(smgr),
|
m_smgr(smgr),
|
||||||
|
@ -820,7 +821,7 @@ scene::IAnimatedMesh* ExtrudedSpriteSceneNode::extrude(video::ITexture* texture)
|
||||||
{
|
{
|
||||||
// Texture is in the correct color format, we can pass it
|
// Texture is in the correct color format, we can pass it
|
||||||
// to extrudeARGB right away.
|
// to extrudeARGB right away.
|
||||||
void* data = texture->lock(true);
|
void* data = texture->lock(MY_ETLM_READ_ONLY);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
mesh = extrudeARGB(size.Width, size.Height, (u8*) data);
|
mesh = extrudeARGB(size.Width, size.Height, (u8*) data);
|
||||||
|
@ -830,7 +831,7 @@ scene::IAnimatedMesh* ExtrudedSpriteSceneNode::extrude(video::ITexture* texture)
|
||||||
{
|
{
|
||||||
video::IVideoDriver* driver = SceneManager->getVideoDriver();
|
video::IVideoDriver* driver = SceneManager->getVideoDriver();
|
||||||
|
|
||||||
video::IImage* img1 = driver->createImageFromData(format, size, texture->lock(true));
|
video::IImage* img1 = driver->createImageFromData(format, size, texture->lock(MY_ETLM_READ_ONLY));
|
||||||
if (img1 == NULL)
|
if (img1 == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
|
@ -903,8 +903,8 @@ void MobV2CAO::addToScene(scene::ISceneManager *smgr)
|
||||||
std::string texture_string = "[makealpha2:128,0,0;128,128,0:";
|
std::string texture_string = "[makealpha2:128,0,0;128,128,0:";
|
||||||
texture_string += m_texture_name;
|
texture_string += m_texture_name;
|
||||||
|
|
||||||
scene::MyBillboardSceneNode *bill = new scene::MyBillboardSceneNode(
|
scene::IBillboardSceneNode *bill = smgr->addBillboardSceneNode(
|
||||||
smgr->getRootSceneNode(), smgr, -1, v3f(0,0,0), v2f(1,1));
|
NULL, v2f(1, 1), v3f(0,0,0), -1);
|
||||||
bill->setMaterialTexture(0, g_texturesource->getTextureRaw(texture_string));
|
bill->setMaterialTexture(0, g_texturesource->getTextureRaw(texture_string));
|
||||||
bill->setMaterialFlag(video::EMF_LIGHTING, false);
|
bill->setMaterialFlag(video::EMF_LIGHTING, false);
|
||||||
bill->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
|
bill->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
|
||||||
|
@ -918,17 +918,11 @@ void MobV2CAO::addToScene(scene::ISceneManager *smgr)
|
||||||
const float txs = txp*32;
|
const float txs = txp*32;
|
||||||
const float typ = 1./240;
|
const float typ = 1./240;
|
||||||
const float tys = typ*48;
|
const float tys = typ*48;
|
||||||
bill->setTCoords(0, v2f(txs*1, tys*1));
|
setBillboardTextureMatrix(bill, txs, tys, 0, 0);
|
||||||
bill->setTCoords(1, v2f(txs*1, tys*0));
|
|
||||||
bill->setTCoords(2, v2f(txs*0, tys*0));
|
|
||||||
bill->setTCoords(3, v2f(txs*0, tys*1));
|
|
||||||
} else if(m_sprite_type == "simple"){
|
} else if(m_sprite_type == "simple"){
|
||||||
const float txs = 1.0;
|
const float txs = 1.0;
|
||||||
const float tys = 1.0 / m_simple_anim_frames;
|
const float tys = 1.0 / m_simple_anim_frames;
|
||||||
bill->setTCoords(0, v2f(txs*1, tys*1));
|
setBillboardTextureMatrix(bill, txs, tys, 0, 0);
|
||||||
bill->setTCoords(1, v2f(txs*1, tys*0));
|
|
||||||
bill->setTCoords(2, v2f(txs*0, tys*0));
|
|
||||||
bill->setTCoords(3, v2f(txs*0, tys*1));
|
|
||||||
} else {
|
} else {
|
||||||
infostream<<"MobV2CAO: Unknown sprite type \""<<m_sprite_type<<"\""
|
infostream<<"MobV2CAO: Unknown sprite type \""<<m_sprite_type<<"\""
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
|
@ -944,7 +938,7 @@ void MobV2CAO::removeFromScene()
|
||||||
if(m_node == NULL)
|
if(m_node == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_node->drop();
|
//m_node->drop();
|
||||||
m_node->remove();
|
m_node->remove();
|
||||||
m_node = NULL;
|
m_node = NULL;
|
||||||
}
|
}
|
||||||
|
@ -992,7 +986,7 @@ void MobV2CAO::updateNodePos()
|
||||||
|
|
||||||
void MobV2CAO::step(float dtime, ClientEnvironment *env)
|
void MobV2CAO::step(float dtime, ClientEnvironment *env)
|
||||||
{
|
{
|
||||||
scene::MyBillboardSceneNode *bill = m_node;
|
scene::IBillboardSceneNode *bill = m_node;
|
||||||
if(!bill)
|
if(!bill)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1045,10 +1039,7 @@ void MobV2CAO::step(float dtime, ClientEnvironment *env)
|
||||||
const float txs = txp*32;
|
const float txs = txp*32;
|
||||||
const float typ = 1./240;
|
const float typ = 1./240;
|
||||||
const float tys = typ*48;
|
const float tys = typ*48;
|
||||||
bill->setTCoords(0, v2f(txs*(1+col), tys*(1+row)));
|
setBillboardTextureMatrix(bill, txs, tys, col, row);
|
||||||
bill->setTCoords(1, v2f(txs*(1+col), tys*(0+row)));
|
|
||||||
bill->setTCoords(2, v2f(txs*(0+col), tys*(0+row)));
|
|
||||||
bill->setTCoords(3, v2f(txs*(0+col), tys*(1+row)));
|
|
||||||
} else if(m_sprite_type == "simple"){
|
} else if(m_sprite_type == "simple"){
|
||||||
m_walk_timer += dtime;
|
m_walk_timer += dtime;
|
||||||
if(m_walk_timer >= m_simple_anim_frametime){
|
if(m_walk_timer >= m_simple_anim_frametime){
|
||||||
|
@ -1059,10 +1050,7 @@ void MobV2CAO::step(float dtime, ClientEnvironment *env)
|
||||||
int row = m_walk_frame;
|
int row = m_walk_frame;
|
||||||
const float txs = 1.0;
|
const float txs = 1.0;
|
||||||
const float tys = 1.0 / m_simple_anim_frames;
|
const float tys = 1.0 / m_simple_anim_frames;
|
||||||
bill->setTCoords(0, v2f(txs*(1+col), tys*(1+row)));
|
setBillboardTextureMatrix(bill, txs, tys, col, row);
|
||||||
bill->setTCoords(1, v2f(txs*(1+col), tys*(0+row)));
|
|
||||||
bill->setTCoords(2, v2f(txs*(0+col), tys*(0+row)));
|
|
||||||
bill->setTCoords(3, v2f(txs*(0+col), tys*(1+row)));
|
|
||||||
} else {
|
} else {
|
||||||
infostream<<"MobV2CAO::step(): Unknown sprite type \""
|
infostream<<"MobV2CAO::step(): Unknown sprite type \""
|
||||||
<<m_sprite_type<<"\""<<std::endl;
|
<<m_sprite_type<<"\""<<std::endl;
|
||||||
|
|
|
@ -24,7 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "content_object.h"
|
#include "content_object.h"
|
||||||
#include "utility.h" // For IntervalLimiter
|
#include "utility.h" // For IntervalLimiter
|
||||||
class Settings;
|
class Settings;
|
||||||
#include "MyBillboardSceneNode.h"
|
//#include "MyBillboardSceneNode.h"
|
||||||
|
#include <IBillboardSceneNode.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SmoothTranslator
|
SmoothTranslator
|
||||||
|
@ -304,6 +305,15 @@ private:
|
||||||
SmoothTranslator pos_translator;
|
SmoothTranslator pos_translator;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void setBillboardTextureMatrix(scene::IBillboardSceneNode *bill,
|
||||||
|
float txs, float tys, int col, int row)
|
||||||
|
{
|
||||||
|
video::SMaterial& material = bill->getMaterial(0);
|
||||||
|
core::matrix4& matrix = material.getTextureMatrix(0);
|
||||||
|
matrix.setTextureTranslate(txs*col, tys*row);
|
||||||
|
matrix.setTextureScale(txs, tys);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
MobV2CAO
|
MobV2CAO
|
||||||
*/
|
*/
|
||||||
|
@ -348,7 +358,7 @@ private:
|
||||||
|
|
||||||
IntervalLimiter m_attack_interval;
|
IntervalLimiter m_attack_interval;
|
||||||
core::aabbox3d<f32> m_selection_box;
|
core::aabbox3d<f32> m_selection_box;
|
||||||
scene::MyBillboardSceneNode *m_node;
|
scene::IBillboardSceneNode *m_node;
|
||||||
v3f m_position;
|
v3f m_position;
|
||||||
std::string m_texture_name;
|
std::string m_texture_name;
|
||||||
float m_yaw;
|
float m_yaw;
|
||||||
|
|
|
@ -555,7 +555,7 @@ InventoryItem * InventoryList::takeItem(u32 i, u32 count)
|
||||||
return item2;
|
return item2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InventoryList::decrementMaterials(u16 count)
|
void InventoryList::decrementMaterials(u16 count)
|
||||||
|
|
|
@ -1365,8 +1365,10 @@ int main(int argc, char *argv[])
|
||||||
// Resolution selection
|
// Resolution selection
|
||||||
|
|
||||||
bool fullscreen = false;
|
bool fullscreen = false;
|
||||||
u16 screenW = g_settings->getU16("screenW");
|
u16 screenW = 640;
|
||||||
u16 screenH = g_settings->getU16("screenH");
|
u16 screenH = 480;
|
||||||
|
if(g_settings->exists("screenW")) screenW = g_settings->getU16("screenW");
|
||||||
|
if(g_settings->exists("screenH")) screenH = g_settings->getU16("screenH");
|
||||||
|
|
||||||
// Determine driver
|
// Determine driver
|
||||||
|
|
||||||
|
|
12
src/map.cpp
12
src/map.cpp
|
@ -3102,15 +3102,15 @@ bool ServerMap::loadSectorMeta(v2s16 p2d)
|
||||||
}
|
}
|
||||||
catch(InvalidFilenameException &e)
|
catch(InvalidFilenameException &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
catch(FileNotGoodException &e)
|
catch(FileNotGoodException &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
catch(std::exception &e)
|
catch(std::exception &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -3481,15 +3481,15 @@ MapBlock* ServerMap::loadBlock(v3s16 blockpos)
|
||||||
}
|
}
|
||||||
catch(InvalidFilenameException &e)
|
catch(InvalidFilenameException &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
catch(FileNotGoodException &e)
|
catch(FileNotGoodException &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
catch(std::exception &e)
|
catch(std::exception &e)
|
||||||
{
|
{
|
||||||
return false;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -902,7 +902,7 @@ inline bool is_yes(const std::string &s)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline s32 stoi(const std::string &s, s32 min, s32 max)
|
inline s32 mystoi(const std::string &s, s32 min, s32 max)
|
||||||
{
|
{
|
||||||
s32 i = atoi(s.c_str());
|
s32 i = atoi(s.c_str());
|
||||||
if(i < min)
|
if(i < min)
|
||||||
|
@ -914,19 +914,19 @@ inline s32 stoi(const std::string &s, s32 min, s32 max)
|
||||||
|
|
||||||
|
|
||||||
// MSVC2010 includes it's own versions of these
|
// MSVC2010 includes it's own versions of these
|
||||||
#if !defined(_MSC_VER) || _MSC_VER < 1600
|
//#if !defined(_MSC_VER) || _MSC_VER < 1600
|
||||||
|
|
||||||
inline s32 stoi(std::string s)
|
inline s32 mystoi(std::string s)
|
||||||
{
|
{
|
||||||
return atoi(s.c_str());
|
return atoi(s.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
inline s32 stoi(std::wstring s)
|
inline s32 mystoi(std::wstring s)
|
||||||
{
|
{
|
||||||
return atoi(wide_to_narrow(s).c_str());
|
return atoi(wide_to_narrow(s).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float stof(std::string s)
|
inline float mystof(std::string s)
|
||||||
{
|
{
|
||||||
float f;
|
float f;
|
||||||
std::istringstream ss(s);
|
std::istringstream ss(s);
|
||||||
|
@ -934,7 +934,10 @@ inline float stof(std::string s)
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
|
#define stoi mystoi
|
||||||
|
#define stof mystof
|
||||||
|
|
||||||
inline std::string itos(s32 i)
|
inline std::string itos(s32 i)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue