Modernize code: very last fixes (#6290)

Last modernization fixes
This commit is contained in:
Loïc Blot 2017-08-20 19:37:29 +02:00 committed by GitHub
parent c8d3d11339
commit ae9b5e0098
31 changed files with 428 additions and 523 deletions

@ -104,7 +104,9 @@ void CavesNoiseIntersection::generateCaves(MMVManip *vm,
c == biome->c_water) {
column_is_open = true;
continue;
} else if (c == biome->c_river_water) {
}
if (c == biome->c_river_water) {
column_is_open = true;
is_under_river = true;
continue;

@ -280,12 +280,11 @@ void RemoteClient::GetNextBlocks (
// Block is dummy if data doesn't exist.
// It means it has been not found from disk and not generated
if(block->isDummy())
{
if (block->isDummy()) {
surely_not_found_on_disk = true;
}
if(block->isGenerated() == false)
if (!block->isGenerated())
block_is_invalid = true;
/*
@ -295,9 +294,8 @@ void RemoteClient::GetNextBlocks (
Block is near ground level if night-time mesh
differs from day-time mesh.
*/
if(d >= d_opt)
{
if(block->getDayNightDiff() == false)
if (d >= d_opt) {
if (!block->getDayNightDiff())
continue;
}
@ -311,8 +309,7 @@ void RemoteClient::GetNextBlocks (
If block has been marked to not exist on disk (dummy)
and generating new ones is not wanted, skip block.
*/
if(generate == false && surely_not_found_on_disk == true)
{
if (!generate && surely_not_found_on_disk) {
// get next one.
continue;
}
@ -413,11 +410,8 @@ void RemoteClient::SetBlocksNotSent(std::map<v3s16, MapBlock*> &blocks)
m_nearest_unsent_d = 0;
m_nothing_to_send_pause_timer = 0;
for(std::map<v3s16, MapBlock*>::iterator
i = blocks.begin();
i != blocks.end(); ++i)
{
v3s16 p = i->first;
for (auto &block : blocks) {
v3s16 p = block.first;
m_blocks_modified.insert(p);
if(m_blocks_sending.find(p) != m_blocks_sending.end())
@ -609,10 +603,9 @@ ClientInterface::~ClientInterface()
{
MutexAutoLock clientslock(m_clients_mutex);
for (RemoteClientMap::iterator i = m_clients.begin();
i != m_clients.end(); ++i) {
for (auto &client_it : m_clients) {
// Delete client
delete i->second;
delete client_it.second;
}
}
}
@ -660,8 +653,8 @@ void ClientInterface::UpdatePlayerList()
if(!clients.empty())
infostream<<"Players:"<<std::endl;
for (std::vector<u16>::iterator i = clients.begin(); i != clients.end(); ++i) {
RemotePlayer *player = m_env->getPlayer(*i);
for (u16 i : clients) {
RemotePlayer *player = m_env->getPlayer(i);
if (player == NULL)
continue;
@ -670,12 +663,12 @@ void ClientInterface::UpdatePlayerList()
{
MutexAutoLock clientslock(m_clients_mutex);
RemoteClient* client = lockedGetClientNoEx(*i);
RemoteClient* client = lockedGetClientNoEx(i);
if (client)
client->PrintInfo(infostream);
}
m_clients_names.push_back(player->getName());
m_clients_names.emplace_back(player->getName());
}
}
}
@ -689,9 +682,8 @@ void ClientInterface::send(u16 peer_id, u8 channelnum,
void ClientInterface::sendToAll(NetworkPacket *pkt)
{
MutexAutoLock clientslock(m_clients_mutex);
for (RemoteClientMap::iterator i = m_clients.begin();
i != m_clients.end(); ++i) {
RemoteClient *client = i->second;
for (auto &client_it : m_clients) {
RemoteClient *client = client_it.second;
if (client->net_proto_version != 0) {
m_con->Send(client->peer_id,
@ -705,9 +697,8 @@ void ClientInterface::sendToAllCompat(NetworkPacket *pkt, NetworkPacket *legacyp
u16 min_proto_ver)
{
MutexAutoLock clientslock(m_clients_mutex);
for (std::unordered_map<u16, RemoteClient*>::iterator i = m_clients.begin();
i != m_clients.end(); ++i) {
RemoteClient *client = i->second;
for (auto &client_it : m_clients) {
RemoteClient *client = client_it.second;
NetworkPacket *pkt_to_send = nullptr;
if (client->net_proto_version >= min_proto_ver) {
@ -738,7 +729,7 @@ RemoteClient* ClientInterface::getClientNoEx(u16 peer_id, ClientState state_min)
if (n->second->getState() >= state_min)
return n->second;
else
return NULL;
}
@ -752,7 +743,7 @@ RemoteClient* ClientInterface::lockedGetClientNoEx(u16 peer_id, ClientState stat
if (n->second->getState() >= state_min)
return n->second;
else
return NULL;
}
@ -795,10 +786,8 @@ void ClientInterface::DeleteClient(u16 peer_id)
//TODO this should be done by client destructor!!!
RemoteClient *client = n->second;
// Handle objects
for (std::set<u16>::iterator i = client->m_known_objects.begin();
i != client->m_known_objects.end(); ++i) {
for (u16 id : client->m_known_objects) {
// Get object
u16 id = *i;
ServerActiveObject* obj = m_env->getActiveObject(id);
if(obj && obj->m_known_by_count > 0)

@ -274,8 +274,8 @@ struct MeshBufListList
void clear()
{
for (int l = 0; l < MAX_TILE_LAYERS; l++)
lists[l].clear();
for (auto &list : lists)
list.clear();
}
void add(scene::IMeshBuffer *buf, u8 layer)
@ -441,9 +441,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
}
// Render all layers in order
for (int layer = 0; layer < MAX_TILE_LAYERS; layer++) {
std::vector<MeshBufList> &lists = drawbufs.lists[layer];
for (auto &lists : drawbufs.lists) {
int timecheck_counter = 0;
for (MeshBufList &list : lists) {
timecheck_counter++;

@ -237,8 +237,8 @@ void Clouds::render()
switch(i)
{
case 0: // top
for(int j=0;j<4;j++){
v[j].Normal.set(0,1,0);
for (video::S3DVertex &vertex : v) {
vertex.Normal.set(0,1,0);
}
v[0].Pos.set(-rx, ry,-rz);
v[1].Pos.set(-rx, ry, rz);
@ -251,9 +251,9 @@ void Clouds::render()
if(grid[j])
continue;
}
for(int j=0;j<4;j++){
v[j].Color = c_side_1;
v[j].Normal.set(0,0,-1);
for (video::S3DVertex &vertex : v) {
vertex.Color = c_side_1;
vertex.Normal.set(0,0,-1);
}
v[0].Pos.set(-rx, ry,-rz);
v[1].Pos.set( rx, ry,-rz);
@ -266,9 +266,9 @@ void Clouds::render()
if(grid[j])
continue;
}
for(int j=0;j<4;j++){
v[j].Color = c_side_2;
v[j].Normal.set(1,0,0);
for (video::S3DVertex &vertex : v) {
vertex.Color = c_side_2;
vertex.Normal.set(1,0,0);
}
v[0].Pos.set( rx, ry,-rz);
v[1].Pos.set( rx, ry, rz);
@ -281,9 +281,9 @@ void Clouds::render()
if(grid[j])
continue;
}
for(int j=0;j<4;j++){
v[j].Color = c_side_1;
v[j].Normal.set(0,0,-1);
for (video::S3DVertex &vertex : v) {
vertex.Color = c_side_1;
vertex.Normal.set(0,0,-1);
}
v[0].Pos.set( rx, ry, rz);
v[1].Pos.set(-rx, ry, rz);
@ -296,9 +296,9 @@ void Clouds::render()
if(grid[j])
continue;
}
for(int j=0;j<4;j++){
v[j].Color = c_side_2;
v[j].Normal.set(-1,0,0);
for (video::S3DVertex &vertex : v) {
vertex.Color = c_side_2;
vertex.Normal.set(-1,0,0);
}
v[0].Pos.set(-rx, ry, rz);
v[1].Pos.set(-rx, ry,-rz);
@ -306,9 +306,9 @@ void Clouds::render()
v[3].Pos.set(-rx, 0, rz);
break;
case 5: // bottom
for(int j=0;j<4;j++){
v[j].Color = c_bottom;
v[j].Normal.set(0,-1,0);
for (video::S3DVertex &vertex : v) {
vertex.Color = c_bottom;
vertex.Normal.set(0,-1,0);
}
v[0].Pos.set( rx, 0, rz);
v[1].Pos.set(-rx, 0, rz);
@ -320,8 +320,8 @@ void Clouds::render()
v3f pos(p0.X, m_params.height * BS, p0.Y);
pos -= intToFloat(m_camera_offset, BS);
for(u16 i=0; i<4; i++)
v[i].Pos += pos;
for (video::S3DVertex &vertex : v)
vertex.Pos += pos;
u16 indices[] = {0,1,2,2,3,0};
driver->drawVertexPrimitiveList(v, 4, indices, 2,
video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT);

@ -245,9 +245,8 @@ LuaEntitySAO::~LuaEntitySAO()
m_env->getScriptIface()->luaentity_Remove(m_id);
}
for (std::unordered_set<u32>::iterator it = m_attached_particle_spawners.begin();
it != m_attached_particle_spawners.end(); ++it) {
m_env->deleteParticleSpawner(*it, false);
for (u32 attached_particle_spawner : m_attached_particle_spawners) {
m_env->deleteParticleSpawner(attached_particle_spawner, false);
}
}
@ -267,7 +266,7 @@ void LuaEntitySAO::addedToEnvironment(u32 dtime_s)
m_hp = m_prop.hp_max;
// Activate entity, supplying serialized state
m_env->getScriptIface()->
luaentity_Activate(m_id, m_init_state.c_str(), dtime_s);
luaentity_Activate(m_id, m_init_state, dtime_s);
} else {
m_prop.infotext = m_init_name;
}
@ -281,7 +280,7 @@ ServerActiveObject* LuaEntitySAO::create(ServerEnvironment *env, v3f pos,
s16 hp = 1;
v3f velocity;
float yaw = 0;
if(data != ""){
if (!data.empty()) {
std::istringstream is(data, std::ios::binary);
// read version
u8 version = readU8(is);
@ -791,10 +790,10 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, u16 peer_id
m_prop.visual = "upright_sprite";
m_prop.visual_size = v2f(1, 2);
m_prop.textures.clear();
m_prop.textures.push_back("player.png");
m_prop.textures.push_back("player_back.png");
m_prop.textures.emplace_back("player.png");
m_prop.textures.emplace_back("player_back.png");
m_prop.colors.clear();
m_prop.colors.push_back(video::SColor(255, 255, 255, 255));
m_prop.colors.emplace_back(255, 255, 255, 255);
m_prop.spritediv = v2s16(1,1);
// end of default appearance
m_prop.is_visible = true;
@ -843,9 +842,8 @@ void PlayerSAO::removingFromEnvironment()
ServerActiveObject::removingFromEnvironment();
if (m_player->getPlayerSAO() == this) {
unlinkPlayerSessionAndSave();
for (std::unordered_set<u32>::iterator it = m_attached_particle_spawners.begin();
it != m_attached_particle_spawners.end(); ++it) {
m_env->deleteParticleSpawner(*it, false);
for (u32 attached_particle_spawner : m_attached_particle_spawners) {
m_env->deleteParticleSpawner(attached_particle_spawner, false);
}
}
}
@ -897,7 +895,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
return os.str();
}
void PlayerSAO::getStaticData(std::string *) const
void PlayerSAO::getStaticData(std::string * result) const
{
FATAL_ERROR("Deprecated function");
}

@ -49,17 +49,17 @@ static u64 getHashForGrid(CraftHashType type, const std::vector<std::string> &gr
case CRAFT_HASH_TYPE_ITEM_NAMES: {
std::ostringstream os;
bool is_first = true;
for (size_t i = 0; i < grid_names.size(); i++) {
if (!grid_names[i].empty()) {
os << (is_first ? "" : "\n") << grid_names[i];
for (const std::string &grid_name : grid_names) {
if (!grid_name.empty()) {
os << (is_first ? "" : "\n") << grid_name;
is_first = false;
}
}
return getHashForString(os.str());
} case CRAFT_HASH_TYPE_COUNT: {
u64 cnt = 0;
for (size_t i = 0; i < grid_names.size(); i++)
if (!grid_names[i].empty())
for (const std::string &grid_name : grid_names)
if (!grid_name.empty())
cnt++;
return cnt;
} case CRAFT_HASH_TYPE_UNHASHED:
@ -150,10 +150,9 @@ static bool craftGetBounds(const std::vector<std::string> &items, unsigned int w
bool success = false;
unsigned int x = 0;
unsigned int y = 0;
for (std::vector<std::string>::size_type i = 0;
i < items.size(); i++) {
for (const std::string &item : items) {
// Is this an actual item?
if (!items[i].empty()) {
if (!item.empty()) {
if (!success) {
// This is the first nonempty item
min_x = max_x = x;
@ -726,13 +725,14 @@ u64 CraftDefinitionCooking::getHash(CraftHashType type) const
if (type == CRAFT_HASH_TYPE_ITEM_NAMES) {
return getHashForString(recipe_name);
}
if (type == CRAFT_HASH_TYPE_COUNT) {
return 1;
} else {
//illegal hash type for this CraftDefinition (pre-condition)
}
// illegal hash type for this CraftDefinition (pre-condition)
assert(false);
return 0;
}
}
void CraftDefinitionCooking::initHash(IGameDef *gamedef)
@ -821,11 +821,11 @@ u64 CraftDefinitionFuel::getHash(CraftHashType type) const
if (type == CRAFT_HASH_TYPE_COUNT) {
return 1;
} else {
//illegal hash type for this CraftDefinition (pre-condition)
}
// illegal hash type for this CraftDefinition (pre-condition)
assert(false);
return 0;
}
}
void CraftDefinitionFuel::initHash(IGameDef *gamedef)
@ -1059,9 +1059,8 @@ public:
{
for (int type = 0; type <= craft_hash_type_max; ++type) {
for (auto &it : m_craft_defs[type]) {
for (auto iit = it.second.begin();
iit != it.second.end(); ++iit) {
delete *iit;
for (auto &iit : it.second) {
delete iit;
}
it.second.clear();
}

@ -39,10 +39,6 @@ Environment::Environment(IGameDef *gamedef):
m_cache_nodetimer_interval = g_settings->getFloat("nodetimer_interval");
}
Environment::~Environment()
{
}
u32 Environment::getDayNightRatio()
{
MutexAutoLock lock(this->m_time_lock);
@ -103,9 +99,8 @@ void Environment::continueRaycast(RaycastState *state, PointedThing *result)
if (state->m_objects_pointable) {
std::vector<PointedThing> found;
getSelectedActiveObjects(state->m_shootline, found);
for (std::vector<PointedThing>::iterator pointed = found.begin();
pointed != found.end(); ++pointed) {
state->m_found.push(*pointed);
for (const PointedThing &pointed : found) {
state->m_found.push(pointed);
}
}
// Set search range

@ -48,7 +48,7 @@ class Environment
public:
// Environment will delete the map passed to the constructor
Environment(IGameDef *gamedef);
virtual ~Environment();
virtual ~Environment() = default;
DISABLE_CLASS_COPY(Environment);
/*

@ -46,8 +46,8 @@ FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) :
m_env(env)
{
for (unsigned int i = 0; i < FM_MaxMode; i++) {
m_default_size[i] = (FontMode) FONT_SIZE_UNSPECIFIED;
for (u32 &i : m_default_size) {
i = (FontMode) FONT_SIZE_UNSPECIFIED;
}
assert(m_settings != NULL); // pre-condition
@ -113,15 +113,13 @@ FontEngine::~FontEngine()
/******************************************************************************/
void FontEngine::cleanCache()
{
for ( unsigned int i = 0; i < FM_MaxMode; i++) {
for (auto &font_cache_it : m_font_cache) {
for (std::map<unsigned int, irr::gui::IGUIFont*>::iterator iter
= m_font_cache[i].begin();
iter != m_font_cache[i].end(); ++iter) {
iter->second->drop();
iter->second = NULL;
for (auto &font_it : font_cache_it) {
font_it.second->drop();
font_it.second = NULL;
}
m_font_cache[i].clear();
font_cache_it.clear();
}
}
@ -370,7 +368,7 @@ void FontEngine::initSimpleFont(unsigned int basesize, FontMode mode)
{
assert(mode == FM_Simple || mode == FM_SimpleMono); // pre-condition
std::string font_path = "";
std::string font_path;
if (mode == FM_Simple) {
font_path = m_settings->get("font_path");
} else {

@ -317,9 +317,7 @@ void GUIChatConsole::drawText()
if (y + line_height < 0)
continue;
for (u32 i = 0; i < line.fragments.size(); ++i)
{
const ChatFormattedFragment& fragment = line.fragments[i];
for (const ChatFormattedFragment &fragment : line.fragments) {
s32 x = (fragment.column + 1) * m_fontsize.X;
core::rect<s32> destrect(
x, y, x + m_fontsize.X * fragment.text.size(), y + m_fontsize.Y);
@ -327,7 +325,7 @@ void GUIChatConsole::drawText()
#if USE_FREETYPE
// Draw colored text if FreeType is enabled
irr::gui::CGUITTFont *tmp = static_cast<irr::gui::CGUITTFont*>(m_font);
irr::gui::CGUITTFont *tmp = dynamic_cast<irr::gui::CGUITTFont *>(m_font);
tmp->draw(
fragment.text,
destrect,
@ -411,8 +409,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
if(event.EventType == EET_KEY_INPUT_EVENT && event.KeyInput.PressedDown)
{
// Key input
if(KeyPress(event.KeyInput) == getKeySetting("keymap_console"))
{
if (KeyPress(event.KeyInput) == getKeySetting("keymap_console")) {
closeConsole();
// inhibit open so the_game doesn't reopen immediately
@ -420,8 +417,8 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
m_close_on_enter = false;
return true;
}
else if(event.KeyInput.Key == KEY_ESCAPE)
{
if (event.KeyInput.Key == KEY_ESCAPE) {
closeConsoleAtOnce();
m_close_on_enter = false;
// inhibit open so the_game doesn't reopen immediately

@ -60,9 +60,8 @@ void TextDestGuiEngine::gotText(const std::wstring &text)
/******************************************************************************/
MenuTextureSource::~MenuTextureSource()
{
for (std::set<std::string>::iterator it = m_to_delete.begin();
it != m_to_delete.end(); ++it) {
const char *tname = (*it).c_str();
for (const std::string &texture_to_delete : m_to_delete) {
const char *tname = texture_to_delete.c_str();
video::ITexture *texture = m_driver->getTexture(tname);
m_driver->removeTexture(texture);
}
@ -126,8 +125,8 @@ GUIEngine::GUIEngine(JoystickController *joystick,
m_kill(kill)
{
//initialize texture pointers
for (unsigned int i = 0; i < TEX_LAYER_MAX; i++) {
m_textures[i].texture = NULL;
for (image_definition &texture : m_textures) {
texture.texture = NULL;
}
// is deleted by guiformspec!
m_buttonhandler = new TextDestGuiEngine(this);
@ -299,9 +298,9 @@ GUIEngine::~GUIEngine()
m_irr_toplefttext->setText(L"");
//clean up texture pointers
for (unsigned int i = 0; i < TEX_LAYER_MAX; i++) {
if (m_textures[i].texture)
RenderingEngine::get_video_driver()->removeTexture(m_textures[i].texture);
for (image_definition &texture : m_textures) {
if (texture.texture)
RenderingEngine::get_video_driver()->removeTexture(texture.texture);
}
delete m_texture_source;
@ -502,7 +501,7 @@ bool GUIEngine::setTexture(texture_layer layer, std::string texturepath,
m_textures[layer].texture = NULL;
}
if ((texturepath == "") || !fs::PathExists(texturepath)) {
if (texturepath.empty() || !fs::PathExists(texturepath)) {
return false;
}
@ -510,7 +509,7 @@ bool GUIEngine::setTexture(texture_layer layer, std::string texturepath,
m_textures[layer].tile = tile_image;
m_textures[layer].minsize = minsize;
if (m_textures[layer].texture == NULL) {
if (!m_textures[layer].texture) {
return false;
}

@ -113,9 +113,8 @@ GUIFormSpecMenu::~GUIFormSpecMenu()
{
removeChildren();
for (u32 i = 0; i < m_tables.size(); ++i) {
GUITable *table = m_tables[i].second;
table->drop();
for (auto &table_it : m_tables) {
table_it.second->drop();
}
delete m_selected_item;
@ -161,29 +160,26 @@ void GUIFormSpecMenu::setInitialFocus()
}
// 1. first empty editbox
for (core::list<gui::IGUIElement*>::Iterator it = children.begin();
it != children.end(); ++it) {
if ((*it)->getType() == gui::EGUIET_EDIT_BOX
&& (*it)->getText()[0] == 0) {
Environment->setFocus(*it);
for (gui::IGUIElement *it : children) {
if (it->getType() == gui::EGUIET_EDIT_BOX
&& it->getText()[0] == 0) {
Environment->setFocus(it);
return;
}
}
// 2. first editbox
for (core::list<gui::IGUIElement*>::Iterator it = children.begin();
it != children.end(); ++it) {
if ((*it)->getType() == gui::EGUIET_EDIT_BOX) {
Environment->setFocus(*it);
for (gui::IGUIElement *it : children) {
if (it->getType() == gui::EGUIET_EDIT_BOX) {
Environment->setFocus(it);
return;
}
}
// 3. first table
for (core::list<gui::IGUIElement*>::Iterator it = children.begin();
it != children.end(); ++it) {
if ((*it)->getTypeName() == std::string("GUITable")) {
Environment->setFocus(*it);
for (gui::IGUIElement *it : children) {
if (it->getTypeName() == std::string("GUITable")) {
Environment->setFocus(it);
return;
}
}
@ -198,11 +194,10 @@ void GUIFormSpecMenu::setInitialFocus()
}
// 5. first focusable (not statictext, not tabheader)
for (core::list<gui::IGUIElement*>::Iterator it = children.begin();
it != children.end(); ++it) {
if ((*it)->getType() != gui::EGUIET_STATIC_TEXT &&
(*it)->getType() != gui::EGUIET_TAB_CONTROL) {
Environment->setFocus(*it);
for (gui::IGUIElement *it : children) {
if (it->getType() != gui::EGUIET_STATIC_TEXT &&
it->getType() != gui::EGUIET_TAB_CONTROL) {
Environment->setFocus(it);
return;
}
}
@ -216,18 +211,18 @@ void GUIFormSpecMenu::setInitialFocus()
GUITable* GUIFormSpecMenu::getTable(const std::string &tablename)
{
for (u32 i = 0; i < m_tables.size(); ++i) {
if (tablename == m_tables[i].first.fname)
return m_tables[i].second;
for (auto &table : m_tables) {
if (tablename == table.first.fname)
return table.second;
}
return 0;
}
std::vector<std::string>* GUIFormSpecMenu::getDropDownValues(const std::string &name)
{
for (u32 i = 0; i < m_dropdowns.size(); ++i) {
if (name == m_dropdowns[i].first.fname)
return &m_dropdowns[i].second;
for (auto &dropdown : m_dropdowns) {
if (name == dropdown.first.fname)
return &dropdown.second;
}
return NULL;
}
@ -300,7 +295,7 @@ void GUIFormSpecMenu::parseList(parserData* data, const std::string &element)
std::string listname = parts[1];
std::vector<std::string> v_pos = split(parts[2],',');
std::vector<std::string> v_geom = split(parts[3],',');
std::string startindex = "";
std::string startindex;
if (parts.size() == 5)
startindex = parts[4];
@ -323,7 +318,7 @@ void GUIFormSpecMenu::parseList(parserData* data, const std::string &element)
geom.Y = stoi(v_geom[1]);
s32 start_i = 0;
if(startindex != "")
if (!startindex.empty())
start_i = stoi(startindex);
if (geom.X < 0 || geom.Y < 0 || start_i < 0) {
@ -333,7 +328,7 @@ void GUIFormSpecMenu::parseList(parserData* data, const std::string &element)
if(!data->explicit_size)
warningstream<<"invalid use of list without a size[] element"<<std::endl;
m_inventorylists.push_back(ListDrawSpec(loc, listname, pos, geom, start_i));
m_inventorylists.emplace_back(loc, listname, pos, geom, start_i);
return;
}
errorstream<< "Invalid list element(" << parts.size() << "): '" << element << "'" << std::endl;
@ -359,17 +354,20 @@ void GUIFormSpecMenu::parseListRing(parserData* data, const std::string &element
else
loc.deSerialize(location);
m_inventory_rings.push_back(ListRingSpec(loc, listname));
m_inventory_rings.emplace_back(loc, listname);
return;
} else if ((element == "") && (m_inventorylists.size() > 1)) {
}
if (element.empty() && m_inventorylists.size() > 1) {
size_t siz = m_inventorylists.size();
// insert the last two inv list elements into the list ring
const ListDrawSpec &spa = m_inventorylists[siz - 2];
const ListDrawSpec &spb = m_inventorylists[siz - 1];
m_inventory_rings.push_back(ListRingSpec(spa.inventoryloc, spa.listname));
m_inventory_rings.push_back(ListRingSpec(spb.inventoryloc, spb.listname));
m_inventory_rings.emplace_back(spa.inventoryloc, spa.listname);
m_inventory_rings.emplace_back(spb.inventoryloc, spb.listname);
return;
}
errorstream<< "Invalid list ring element(" << parts.size() << ", "
<< m_inventorylists.size() << "): '" << element << "'" << std::endl;
}
@ -384,7 +382,7 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element
std::vector<std::string> v_pos = split(parts[0],',');
std::string name = parts[1];
std::string label = parts[2];
std::string selected = "";
std::string selected;
if (parts.size() >= 4)
selected = parts[3];
@ -423,7 +421,7 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element
Environment->setFocus(e);
}
m_checkboxes.push_back(std::pair<FieldSpec,gui::IGUICheckBox*>(spec,e));
m_checkboxes.emplace_back(spec,e);
m_fields.push_back(spec);
return;
}
@ -482,7 +480,7 @@ void GUIFormSpecMenu::parseScrollBar(parserData* data, const std::string &elemen
e->setSmallStep(10);
e->setLargeStep(100);
m_scrollbars.push_back(std::pair<FieldSpec,gui::IGUIScrollBar*>(spec,e));
m_scrollbars.emplace_back(spec,e);
m_fields.push_back(spec);
return;
}
@ -513,9 +511,11 @@ void GUIFormSpecMenu::parseImage(parserData* data, const std::string &element)
if (!data->explicit_size)
warningstream<<"invalid use of image without a size[] element"<<std::endl;
m_images.push_back(ImageDrawSpec(name, pos, geom));
m_images.emplace_back(name, pos, geom);
return;
} else if (parts.size() == 2) {
}
if (parts.size() == 2) {
std::vector<std::string> v_pos = split(parts[0],',');
std::string name = unescape_string(parts[1]);
@ -527,7 +527,7 @@ void GUIFormSpecMenu::parseImage(parserData* data, const std::string &element)
if (!data->explicit_size)
warningstream<<"invalid use of image without a size[] element"<<std::endl;
m_images.push_back(ImageDrawSpec(name, pos));
m_images.emplace_back(name, pos);
return;
}
errorstream<< "Invalid image element(" << parts.size() << "): '" << element << "'" << std::endl;
@ -557,7 +557,7 @@ void GUIFormSpecMenu::parseItemImage(parserData* data, const std::string &elemen
if(!data->explicit_size)
warningstream<<"invalid use of item_image without a size[] element"<<std::endl;
m_itemimages.push_back(ImageDrawSpec("", name, pos, geom));
m_itemimages.emplace_back("", name, pos, geom);
return;
}
errorstream<< "Invalid ItemImage element(" << parts.size() << "): '" << element << "'" << std::endl;
@ -649,7 +649,7 @@ void GUIFormSpecMenu::parseBackground(parserData* data, const std::string &eleme
pos.Y = stoi(v_pos[1]); //acts as offset
clip = true;
}
m_backgrounds.push_back(ImageDrawSpec(name, pos, geom, clip));
m_backgrounds.emplace_back(name, pos, geom, clip);
return;
}
@ -661,9 +661,9 @@ void GUIFormSpecMenu::parseTableOptions(parserData* data, const std::string &ele
std::vector<std::string> parts = split(element,';');
data->table_options.clear();
for (size_t i = 0; i < parts.size(); ++i) {
for (const std::string &part : parts) {
// Parse table option
std::string opt = unescape_string(parts[i]);
std::string opt = unescape_string(part);
data->table_options.push_back(GUITable::splitOption(opt));
}
}
@ -673,8 +673,8 @@ void GUIFormSpecMenu::parseTableColumns(parserData* data, const std::string &ele
std::vector<std::string> parts = split(element,';');
data->table_columns.clear();
for (size_t i = 0; i < parts.size(); ++i) {
std::vector<std::string> col_parts = split(parts[i],',');
for (const std::string &part : parts) {
std::vector<std::string> col_parts = split(part,',');
GUITable::TableColumn column;
// Parse column type
if (!col_parts.empty())
@ -699,7 +699,7 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element)
std::vector<std::string> v_geom = split(parts[1],',');
std::string name = parts[2];
std::vector<std::string> items = split(parts[3],',');
std::string str_initial_selection = "";
std::string str_initial_selection;
std::string str_transparent = "false";
if (parts.size() >= 5)
@ -727,8 +727,8 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element)
spec.ftype = f_Table;
for (unsigned int i = 0; i < items.size(); ++i) {
items[i] = unescape_enriched(unescape_string(items[i]));
for (std::string &item : items) {
item = unescape_enriched(unescape_string(item));
}
//now really show table
@ -745,11 +745,10 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element)
e->setDynamicData(data->table_dyndata[name]);
}
if ((str_initial_selection != "") &&
(str_initial_selection != "0"))
e->setSelected(stoi(str_initial_selection.c_str()));
if (!str_initial_selection.empty() && str_initial_selection != "0")
e->setSelected(stoi(str_initial_selection));
m_tables.push_back(std::pair<FieldSpec,GUITable*>(spec, e));
m_tables.emplace_back(spec, e);
m_fields.push_back(spec);
return;
}
@ -767,7 +766,7 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
std::vector<std::string> v_geom = split(parts[1],',');
std::string name = parts[2];
std::vector<std::string> items = split(parts[3],',');
std::string str_initial_selection = "";
std::string str_initial_selection;
std::string str_transparent = "false";
if (parts.size() >= 5)
@ -799,8 +798,8 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
spec.ftype = f_Table;
for (unsigned int i = 0; i < items.size(); ++i) {
items[i] = unescape_enriched(unescape_string(items[i]));
for (std::string &item : items) {
item = unescape_enriched(unescape_string(item));
}
//now really show list
@ -817,11 +816,10 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
e->setDynamicData(data->table_dyndata[name]);
}
if ((str_initial_selection != "") &&
(str_initial_selection != "0"))
e->setSelected(stoi(str_initial_selection.c_str()));
if (!str_initial_selection.empty() && str_initial_selection != "0")
e->setSelected(stoi(str_initial_selection));
m_tables.push_back(std::pair<FieldSpec,GUITable*>(spec, e));
m_tables.emplace_back(spec, e);
m_fields.push_back(spec);
return;
}
@ -839,7 +837,7 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element
std::vector<std::string> v_pos = split(parts[0],',');
std::string name = parts[2];
std::vector<std::string> items = split(parts[3],',');
std::string str_initial_selection = "";
std::string str_initial_selection;
str_initial_selection = parts[4];
MY_CHECKPOS("dropdown",0);
@ -870,21 +868,20 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element
Environment->setFocus(e);
}
for (unsigned int i=0; i < items.size(); i++) {
for (const std::string &item : items) {
e->addItem(unescape_enriched(unescape_string(
utf8_to_wide(items[i]))).c_str());
utf8_to_wide(item))).c_str());
}
if (str_initial_selection != "")
e->setSelected(stoi(str_initial_selection.c_str())-1);
if (!str_initial_selection.empty())
e->setSelected(stoi(str_initial_selection)-1);
m_fields.push_back(spec);
m_dropdowns.push_back(std::pair<FieldSpec,
std::vector<std::string> >(spec, std::vector<std::string>()));
m_dropdowns.emplace_back(spec, std::vector<std::string>());
std::vector<std::string> &values = m_dropdowns.back().second;
for (unsigned int i = 0; i < items.size(); i++) {
values.push_back(unescape_string(items[i]));
for (const std::string &item : items) {
values.push_back(unescape_string(item));
}
return;
@ -960,8 +957,8 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element
evt.EventType = EET_KEY_INPUT_EVENT;
evt.KeyInput.Key = KEY_END;
evt.KeyInput.Char = 0;
evt.KeyInput.Control = 0;
evt.KeyInput.Shift = 0;
evt.KeyInput.Control = false;
evt.KeyInput.Shift = false;
evt.KeyInput.PressedDown = true;
e->OnEvent(evt);
@ -1011,13 +1008,10 @@ void GUIFormSpecMenu::parseSimpleField(parserData* data,
258+m_fields.size()
);
if (name == "")
{
if (name.empty()) {
// spec field id to 0, this stops submit searching for a value that isn't there
addStaticText(Environment, spec.flabel.c_str(), rect, false, true, this, spec.fid);
}
else
{
} else {
spec.send = true;
gui::IGUIElement *e;
#if USE_FREETYPE && IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9
@ -1114,13 +1108,10 @@ void GUIFormSpecMenu::parseTextArea(parserData* data, std::vector<std::string>&
258+m_fields.size()
);
if (name == "")
{
if (name.empty()) {
// spec field id to 0, this stops submit searching for a value that isn't there
addStaticText(Environment, spec.flabel.c_str(), rect, false, true, this, spec.fid);
}
else
{
} else {
spec.send = true;
gui::IGUIEditBox *e;
@ -1278,10 +1269,10 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen
if(!data->explicit_size)
warningstream<<"invalid use of label without a size[] element"<<std::endl;
std::wstring label = L"";
std::wstring label;
for (unsigned int i=0; i < text.length(); i++) {
label += text[i];
for (wchar_t i : text) {
label += i;
label += L"\n";
}
@ -1326,7 +1317,7 @@ void GUIFormSpecMenu::parseImageButton(parserData* data, const std::string &elem
bool noclip = false;
bool drawborder = true;
std::string pressed_image_name = "";
std::string pressed_image_name;
if (parts.size() >= 7) {
if (parts[5] == "true")
@ -1362,7 +1353,7 @@ void GUIFormSpecMenu::parseImageButton(parserData* data, const std::string &elem
video::ITexture *texture = 0;
video::ITexture *pressed_texture = 0;
texture = m_tsrc->getTexture(image_name);
if (pressed_image_name != "")
if (!pressed_image_name.empty())
pressed_texture = m_tsrc->getTexture(pressed_image_name);
else
pressed_texture = texture;
@ -1444,9 +1435,9 @@ void GUIFormSpecMenu::parseTabHeader(parserData* data, const std::string &elemen
e->setNotClipped(true);
for (unsigned int i = 0; i < buttons.size(); i++) {
for (const std::string &button : buttons) {
e->addTab(unescape_enriched(unescape_string(
utf8_to_wide(buttons[i]))).c_str(), -1);
utf8_to_wide(button))).c_str(), -1);
}
if ((tab_index >= 0) &&
@ -1528,8 +1519,8 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string &
pos = padding + AbsoluteRect.UpperLeftCorner + pos_offset * spacing;
pos.X += stof(v_pos[0]) * (float) spacing.X;
pos.Y += stof(v_pos[1]) * (float) spacing.Y;
m_itemimages.push_back(ImageDrawSpec("", item_name, e, pos, geom));
m_static_texts.push_back(StaticTextSpec(utf8_to_wide(label), rect, e));
m_itemimages.emplace_back("", item_name, e, pos, geom);
m_static_texts.emplace_back(utf8_to_wide(label), rect, e);
return;
}
errorstream<< "Invalid ItemImagebutton element(" << parts.size() << "): '" << element << "'" << std::endl;
@ -1625,7 +1616,9 @@ void GUIFormSpecMenu::parseTooltip(parserData* data, const std::string &element)
m_tooltips[name] = TooltipSpec(unescape_string(parts[1]),
m_default_tooltip_bgcolor, m_default_tooltip_color);
return;
} else if (parts.size() == 4) {
}
if (parts.size() == 4) {
std::string name = parts[0];
video::SColor tmp_color1, tmp_color2;
if ( parseColorString(parts[2], tmp_color1, false) && parseColorString(parts[3], tmp_color2, false) ) {
@ -1640,7 +1633,7 @@ void GUIFormSpecMenu::parseTooltip(parserData* data, const std::string &element)
bool GUIFormSpecMenu::parseVersionDirect(const std::string &data)
{
//some prechecks
if (data == "")
if (data.empty())
return false;
std::vector<std::string> parts = split(data,'[');
@ -1663,7 +1656,7 @@ bool GUIFormSpecMenu::parseVersionDirect(const std::string &data)
bool GUIFormSpecMenu::parseSizeDirect(parserData* data, const std::string &element)
{
if (element == "")
if (element.empty())
return false;
std::vector<std::string> parts = split(element,'[');
@ -1757,7 +1750,7 @@ void GUIFormSpecMenu::parseAnchor(parserData *data, const std::string &element)
void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element)
{
//some prechecks
if (element == "")
if (element.empty())
return;
std::vector<std::string> parts = split(element,'[');
@ -1930,9 +1923,9 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
parserData mydata;
//preserve tables
for (u32 i = 0; i < m_tables.size(); ++i) {
std::string tablename = m_tables[i].first.fname;
GUITable *table = m_tables[i].second;
for (auto &m_table : m_tables) {
std::string tablename = m_table.first.fname;
GUITable *table = m_table.second;
mydata.table_dyndata[tablename] = table->getDynamicData();
}
@ -1945,10 +1938,9 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
if (focused_element && focused_element->getParent() == this) {
s32 focused_id = focused_element->getID();
if (focused_id > 257) {
for (u32 i=0; i<m_fields.size(); i++) {
if (m_fields[i].fid == focused_id) {
mydata.focused_fieldname =
m_fields[i].fname;
for (const GUIFormSpecMenu::FieldSpec &field : m_fields) {
if (field.fid == focused_id) {
mydata.focused_fieldname = field.fname;
break;
}
}
@ -1958,9 +1950,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
// Remove children
removeChildren();
for (u32 i = 0; i < m_tables.size(); ++i) {
GUITable *table = m_tables[i].second;
table->drop();
for (auto &table_it : m_tables) {
table_it.second->drop();
}
mydata.size= v2s32(100,100);
@ -2020,7 +2011,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
unsigned int i = 0;
/* try to read version from first element only */
if (elements.size() >= 1) {
if (!elements.empty()) {
if ( parseVersionDirect(elements[0]) ) {
i++;
}
@ -2171,7 +2162,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
// If there are fields without explicit size[], add a "Proceed"
// button and adjust size to fit all the fields.
if (m_fields.size() && !mydata.explicit_size) {
if (!m_fields.empty() && !mydata.explicit_size) {
mydata.rect = core::rect<s32>(
mydata.screensize.X/2 - 580/2,
mydata.screensize.Y/2 - 300/2,
@ -2257,10 +2248,7 @@ GUIFormSpecMenu::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const
{
core::rect<s32> imgrect(0,0,imgsize.X,imgsize.Y);
for(u32 i=0; i<m_inventorylists.size(); i++)
{
const ListDrawSpec &s = m_inventorylists[i];
for (const GUIFormSpecMenu::ListDrawSpec &s : m_inventorylists) {
for(s32 i=0; i<s.geom.X*s.geom.Y; i++) {
s32 item_i = i + s.start_item_i;
s32 x = (i%s.geom.X) * spacing.X;
@ -2367,7 +2355,7 @@ void GUIFormSpecMenu::drawList(const ListDrawSpec &s, int phase,
}
// Draw tooltip
std::wstring tooltip_text = L"";
std::wstring tooltip_text;
if (hovering && !m_selected_item) {
const std::string &desc = item.metadata.getString("description");
if (desc.empty())
@ -2442,9 +2430,7 @@ void GUIFormSpecMenu::drawMenu()
/*
Draw backgrounds
*/
for(u32 i=0; i<m_backgrounds.size(); i++)
{
const ImageDrawSpec &spec = m_backgrounds[i];
for (const GUIFormSpecMenu::ImageDrawSpec &spec : m_backgrounds) {
video::ITexture *texture = m_tsrc->getTexture(spec.name);
if (texture != 0) {
@ -2476,10 +2462,7 @@ void GUIFormSpecMenu::drawMenu()
/*
Draw Boxes
*/
for(u32 i=0; i<m_boxes.size(); i++)
{
const BoxDrawSpec &spec = m_boxes[i];
for (const GUIFormSpecMenu::BoxDrawSpec &spec : m_boxes) {
irr::video::SColor todraw = spec.color;
todraw.setAlpha(140);
@ -2498,9 +2481,7 @@ void GUIFormSpecMenu::drawMenu()
/*
Draw images
*/
for(u32 i=0; i<m_images.size(); i++)
{
const ImageDrawSpec &spec = m_images[i];
for (const GUIFormSpecMenu::ImageDrawSpec &spec : m_images) {
video::ITexture *texture = m_tsrc->getTexture(spec.name);
if (texture != 0) {
@ -2531,12 +2512,10 @@ void GUIFormSpecMenu::drawMenu()
/*
Draw item images
*/
for(u32 i=0; i<m_itemimages.size(); i++)
{
for (const GUIFormSpecMenu::ImageDrawSpec &spec : m_itemimages) {
if (m_client == 0)
break;
const ImageDrawSpec &spec = m_itemimages[i];
IItemDefManager *idef = m_client->idef();
ItemStack item;
item.deSerialize(spec.item_name, idef);
@ -2565,8 +2544,8 @@ void GUIFormSpecMenu::drawMenu()
bool item_hovered = false;
int start_phase = 0;
for (int phase = start_phase; phase <= 1; phase++) {
for (u32 i = 0; i < m_inventorylists.size(); i++) {
drawList(m_inventorylists[i], phase, item_hovered);
for (const GUIFormSpecMenu::ListDrawSpec &spec : m_inventorylists) {
drawList(spec, phase, item_hovered);
}
}
if (!item_hovered) {
@ -2583,8 +2562,7 @@ void GUIFormSpecMenu::drawMenu()
/*
Draw static text elements
*/
for (u32 i = 0; i < m_static_texts.size(); i++) {
const StaticTextSpec &spec = m_static_texts[i];
for (const GUIFormSpecMenu::StaticTextSpec &spec : m_static_texts) {
core::rect<s32> rect = spec.rect;
if (spec.parent_button && spec.parent_button->isPressed()) {
#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8)
@ -2625,16 +2603,15 @@ void GUIFormSpecMenu::drawMenu()
// Find and update the current tooltip
if (id != -1 && delta >= m_tooltip_show_delay) {
for (std::vector<FieldSpec>::iterator iter = m_fields.begin();
iter != m_fields.end(); ++iter) {
for (const FieldSpec &field : m_fields) {
if (iter->fid != id)
if (field.fid != id)
continue;
const std::wstring &text = m_tooltips[iter->fname].tooltip;
const std::wstring &text = m_tooltips[field.fname].tooltip;
if (!text.empty())
showTooltip(text, m_tooltips[iter->fname].color,
m_tooltips[iter->fname].bgcolor);
showTooltip(text, m_tooltips[field.fname].color,
m_tooltips[field.fname].bgcolor);
break;
}
@ -2707,12 +2684,11 @@ void GUIFormSpecMenu::updateSelectedItem()
// WARNING: BLACK MAGIC
// See if there is a stack suited for our current guess.
// If such stack does not exist, clear the guess.
if(m_selected_content_guess.name != "" &&
if (!m_selected_content_guess.name.empty() &&
selected.name == m_selected_content_guess.name &&
selected.count == m_selected_content_guess.count){
// Selected item fits the guess. Skip the black magic.
}
else if(m_selected_content_guess.name != ""){
} else if (!m_selected_content_guess.name.empty()) {
bool found = false;
for(u32 i=0; i<m_inventorylists.size() && !found; i++){
const ListDrawSpec &s = m_inventorylists[i];
@ -2749,9 +2725,7 @@ void GUIFormSpecMenu::updateSelectedItem()
// If craftresult is nonempty and nothing else is selected, select it now.
if(!m_selected_item)
{
for(u32 i=0; i<m_inventorylists.size(); i++)
{
const ListDrawSpec &s = m_inventorylists[i];
for (const GUIFormSpecMenu::ListDrawSpec &s : m_inventorylists) {
if(s.listname == "craftpreview")
{
Inventory *inv = m_invmgr->getInventory(s.inventoryloc);
@ -2853,8 +2827,7 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
current_keys_pending.key_escape = false;
}
for(unsigned int i=0; i<m_fields.size(); i++) {
const FieldSpec &s = m_fields[i];
for (const GUIFormSpecMenu::FieldSpec &s : m_fields) {
if(s.send) {
std::string name = s.fname;
if (s.ftype == f_Button) {
@ -2871,7 +2844,7 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
IGUIElement * element = getElementFromId(s.fid);
gui::IGUIComboBox *e = NULL;
if ((element) && (element->getType() == gui::EGUIET_COMBO_BOX)) {
e = static_cast<gui::IGUIComboBox*>(element);
e = dynamic_cast<gui::IGUIComboBox*>(element);
}
s32 selected = e->getSelected();
if (selected >= 0) {
@ -2888,7 +2861,7 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
IGUIElement * element = getElementFromId(s.fid);
gui::IGUITabControl *e = NULL;
if ((element) && (element->getType() == gui::EGUIET_TAB_CONTROL)) {
e = static_cast<gui::IGUITabControl*>(element);
e = dynamic_cast<gui::IGUITabControl*>(element);
}
if (e != 0) {
@ -2903,7 +2876,7 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
IGUIElement * element = getElementFromId(s.fid);
gui::IGUICheckBox *e = NULL;
if ((element) && (element->getType() == gui::EGUIET_CHECK_BOX)) {
e = static_cast<gui::IGUICheckBox*>(element);
e = dynamic_cast<gui::IGUICheckBox*>(element);
}
if (e != 0) {
@ -2919,7 +2892,7 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
IGUIElement * element = getElementFromId(s.fid);
gui::IGUIScrollBar *e = NULL;
if ((element) && (element->getType() == gui::EGUIET_SCROLL_BAR)) {
e = static_cast<gui::IGUIScrollBar*>(element);
e = dynamic_cast<gui::IGUIScrollBar*>(element);
}
if (e != 0) {
@ -3278,7 +3251,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
((m_client != NULL) && (kp == getKeySetting("keymap_inventory"))))) {
tryClose();
return true;
} else if (m_client != NULL && event.KeyInput.PressedDown &&
}
if (m_client != NULL && event.KeyInput.PressedDown &&
(kp == getKeySetting("keymap_screenshot"))) {
m_client->makeScreenshot();
}
@ -3687,8 +3662,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
if (event.GUIEvent.EventType == gui::EGET_TAB_CHANGED
&& isVisible()) {
// find the element that was clicked
for (unsigned int i=0; i<m_fields.size(); i++) {
FieldSpec &s = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
if ((s.ftype == f_TabHeader) &&
(s.fid == event.GUIEvent.Caller->getID())) {
s.send = true;
@ -3726,12 +3700,11 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
}
// find the element that was clicked
for (u32 i = 0; i < m_fields.size(); i++) {
FieldSpec &s = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
// if its a button, set the send field so
// lua knows which button was pressed
if (((s.ftype == f_Button) || (s.ftype == f_CheckBox)) &&
(s.fid == event.GUIEvent.Caller->getID())) {
if ((s.ftype == f_Button || s.ftype == f_CheckBox) &&
s.fid == event.GUIEvent.Caller->getID()) {
s.send = true;
if (s.is_exit) {
if (m_allowclose) {
@ -3741,16 +3714,16 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
m_text_dst->gotText(L"ExitButton");
}
return true;
} else {
}
acceptInput(quit_mode_no);
s.send = false;
return true;
}
} else if ((s.ftype == f_DropDown) &&
(s.fid == event.GUIEvent.Caller->getID())) {
// only send the changed dropdown
for (u32 i = 0; i < m_fields.size(); i++) {
FieldSpec &s2 = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s2 : m_fields) {
if (s2.ftype == f_DropDown) {
s2.send = false;
}
@ -3760,8 +3733,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
// revert configuration to make sure dropdowns are sent on
// regular button click
for (u32 i = 0; i < m_fields.size(); i++) {
FieldSpec &s2 = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s2 : m_fields) {
if (s2.ftype == f_DropDown) {
s2.send = true;
}
@ -3779,8 +3751,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
if (event.GUIEvent.EventType == gui::EGET_EDITBOX_ENTER) {
if (event.GUIEvent.Caller->getID() > 257) {
bool close_on_enter = true;
for (u32 i = 0; i < m_fields.size(); i++) {
FieldSpec &s = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
if (s.ftype == f_Unknown &&
s.fid == event.GUIEvent.Caller->getID()) {
current_field_enter_pending = s.fname;
@ -3810,8 +3781,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
int current_id = event.GUIEvent.Caller->getID();
if (current_id > 257) {
// find the element that was clicked
for (u32 i = 0; i < m_fields.size(); i++) {
FieldSpec &s = m_fields[i];
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
// if it's a table, set the send field
// so lua knows which table was changed
if ((s.ftype == f_Table) && (s.fid == current_id)) {
@ -3835,10 +3805,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
*/
std::string GUIFormSpecMenu::getNameByID(s32 id)
{
for(std::vector<FieldSpec>::iterator iter = m_fields.begin();
iter != m_fields.end(); ++iter) {
if (iter->fid == id) {
return iter->fname;
for (FieldSpec &spec : m_fields) {
if (spec.fid == id) {
return spec.fname;
}
}
return "";
@ -3851,10 +3820,9 @@ std::string GUIFormSpecMenu::getNameByID(s32 id)
*/
std::wstring GUIFormSpecMenu::getLabelByID(s32 id)
{
for(std::vector<FieldSpec>::iterator iter = m_fields.begin();
iter != m_fields.end(); ++iter) {
if (iter->fid == id) {
return iter->flabel;
for (FieldSpec &spec : m_fields) {
if (spec.fid == id) {
return spec.flabel;
}
}
return L"";

@ -53,7 +53,8 @@ typedef enum {
struct TextDest
{
virtual ~TextDest() {}
virtual ~TextDest() = default;
// This is deprecated I guess? -celeron55
virtual void gotText(const std::wstring &text) {}
virtual void gotText(const StringMap &fields) = 0;
@ -64,7 +65,7 @@ struct TextDest
class IFormSource
{
public:
virtual ~IFormSource(){}
virtual ~IFormSource() = default;
virtual std::string getForm() = 0;
// Fill in variables in field text
virtual std::string resolveText(const std::string &str) { return str; }
@ -74,10 +75,7 @@ class GUIFormSpecMenu : public GUIModalMenu
{
struct ItemSpec
{
ItemSpec() :
i(-1)
{
}
ItemSpec() = default;
ItemSpec(const InventoryLocation &a_inventoryloc,
const std::string &a_listname,
@ -92,14 +90,13 @@ class GUIFormSpecMenu : public GUIModalMenu
InventoryLocation inventoryloc;
std::string listname;
s32 i;
s32 i = -1;
};
struct ListDrawSpec
{
ListDrawSpec()
{
}
ListDrawSpec() = default;
ListDrawSpec(const InventoryLocation &a_inventoryloc,
const std::string &a_listname,
v2s32 a_pos, v2s32 a_geom, s32 a_start_item_i):
@ -120,9 +117,8 @@ class GUIFormSpecMenu : public GUIModalMenu
struct ListRingSpec
{
ListRingSpec()
{
}
ListRingSpec() = default;
ListRingSpec(const InventoryLocation &a_inventoryloc,
const std::string &a_listname):
inventoryloc(a_inventoryloc),
@ -201,9 +197,8 @@ class GUIFormSpecMenu : public GUIModalMenu
struct FieldSpec
{
FieldSpec()
{
}
FieldSpec() = default;
FieldSpec(const std::string &name, const std::wstring &label,
const std::wstring &default_text, int id) :
fname(name),
@ -241,7 +236,8 @@ class GUIFormSpecMenu : public GUIModalMenu
struct TooltipSpec
{
TooltipSpec() {}
TooltipSpec() = default;
TooltipSpec(const std::string &a_tooltip, irr::video::SColor a_bgcolor,
irr::video::SColor a_color):
tooltip(utf8_to_wide(a_tooltip)),
@ -552,9 +548,7 @@ public:
{
}
~FormspecFormSource()
{
}
~FormspecFormSource() = default;
void setForm(const std::string &formspec)
{

@ -85,18 +85,17 @@ GUIKeyChangeMenu::GUIKeyChangeMenu(gui::IGUIEnvironment* env,
GUIModalMenu(env, parent, id, menumgr)
{
init_keys();
for (size_t i = 0; i < key_settings.size(); i++)
key_used.push_back(key_settings.at(i)->key);
for (key_setting *ks : key_settings)
key_used.push_back(ks->key);
}
GUIKeyChangeMenu::~GUIKeyChangeMenu()
{
removeChildren();
for (std::vector<key_setting*>::iterator iter = key_settings.begin();
iter != key_settings.end(); ++iter) {
delete[] (*iter)->button_name;
delete (*iter);
for (key_setting *ks : key_settings) {
delete[] ks->button_name;
delete ks;
}
key_settings.clear();
}
@ -105,15 +104,12 @@ void GUIKeyChangeMenu::removeChildren()
{
const core::list<gui::IGUIElement*> &children = getChildren();
core::list<gui::IGUIElement*> children_copy;
for (core::list<gui::IGUIElement*>::ConstIterator i = children.begin(); i
!= children.end(); i++)
{
children_copy.push_back(*i);
for (gui::IGUIElement*i : children) {
children_copy.push_back(i);
}
for (core::list<gui::IGUIElement*>::Iterator i = children_copy.begin(); i
!= children_copy.end(); i++)
{
(*i)->remove();
for (gui::IGUIElement *i : children_copy) {
i->remove();
}
}
@ -238,11 +234,10 @@ void GUIKeyChangeMenu::drawMenu()
bool GUIKeyChangeMenu::acceptInput()
{
for(size_t i = 0; i < key_settings.size(); i++)
{
key_setting *k = key_settings.at(i);
for (key_setting *k : key_settings) {
g_settings->set(k->setting_name, k->key.sym());
}
{
gui::IGUIElement *e = getElementFromId(GUI_ID_CB_AUX1_DESCENDS);
if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
@ -265,11 +260,8 @@ bool GUIKeyChangeMenu::resetMenu()
{
if (activeKey >= 0)
{
for(size_t i = 0; i < key_settings.size(); i++)
{
key_setting *k = key_settings.at(i);
if(k->id == activeKey)
{
for (key_setting *k : key_settings) {
if (k->id == activeKey) {
const wchar_t *text = wgettext(k->key.name());
k->button->setText(text);
delete[] text;
@ -317,11 +309,9 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event)
// But go on
{
key_setting *k = NULL;
for(size_t i = 0; i < key_settings.size(); i++)
{
if(key_settings.at(i)->id == activeKey)
{
k = key_settings.at(i);
for (key_setting *ks : key_settings) {
if (ks->id == activeKey) {
k = ks;
break;
}
}
@ -337,11 +327,11 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event)
if(shift_went_down){
shift_down = true;
return false;
}else{
}
activeKey = -1;
return true;
}
}
} else if (event.EventType == EET_KEY_INPUT_EVENT && activeKey < 0
&& event.KeyInput.PressedDown
&& event.KeyInput.Key == irr::KEY_ESCAPE) {
@ -372,11 +362,10 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event)
return true;
default:
key_setting *k = NULL;
for(size_t i = 0; i < key_settings.size(); i++)
{
if(key_settings.at(i)->id == event.GUIEvent.Caller->getID())
{
k = key_settings.at(i);
for (key_setting *ks : key_settings) {
if (ks->id == event.GUIEvent.Caller->getID()) {
k = ks;
break;
}
}

@ -52,13 +52,12 @@ void GUIPasswordChange::removeChildren()
{
const core::list<gui::IGUIElement *> &children = getChildren();
core::list<gui::IGUIElement *> children_copy;
for (core::list<gui::IGUIElement *>::ConstIterator i = children.begin();
i != children.end(); i++) {
children_copy.push_back(*i);
for (gui::IGUIElement *i : children) {
children_copy.push_back(i);
}
for (core::list<gui::IGUIElement *>::Iterator i = children_copy.begin();
i != children_copy.end(); i++) {
(*i)->remove();
for (gui::IGUIElement *i : children_copy) {
i->remove();
}
}
void GUIPasswordChange::regenerateGui(v2u32 screensize)

@ -91,8 +91,8 @@ GUITable::GUITable(gui::IGUIEnvironment *env,
GUITable::~GUITable()
{
for (size_t i = 0; i < m_rows.size(); ++i)
delete[] m_rows[i].cells;
for (GUITable::Row &row : m_rows)
delete[] row.cells;
if (m_font)
m_font->drop();
@ -105,7 +105,7 @@ GUITable::Option GUITable::splitOption(const std::string &str)
size_t equal_pos = str.find('=');
if (equal_pos == std::string::npos)
return GUITable::Option(str, "");
else
return GUITable::Option(str.substr(0, equal_pos),
str.substr(equal_pos + 1));
}
@ -194,9 +194,9 @@ void GUITable::setTable(const TableOptions &options,
// Handle table options
video::SColor default_color(255, 255, 255, 255);
s32 opendepth = 0;
for (size_t k = 0; k < options.size(); ++k) {
const std::string &name = options[k].name;
const std::string &value = options[k].value;
for (const Option &option : options) {
const std::string &name = option.name;
const std::string &value = option.value;
if (name == "color")
parseColorString(value, m_color, false);
else if (name == "background")
@ -224,7 +224,7 @@ void GUITable::setTable(const TableOptions &options,
// Append empty strings to content if there is an incomplete row
s32 cellcount = rowcount * colcount;
while (content.size() < (u32) cellcount)
content.push_back("");
content.emplace_back("");
// Create temporary rows (for processing columns)
struct TempRow {
@ -289,9 +289,9 @@ void GUITable::setTable(const TableOptions &options,
width = myround(em * 1.5); // default indent width
}
for (size_t k = 0; k < columns[j].options.size(); ++k) {
const std::string &name = columns[j].options[k].name;
const std::string &value = columns[j].options[k].value;
for (const Option &option : columns[j].options) {
const std::string &name = option.name;
const std::string &value = option.value;
if (name == "padding")
padding = myround(stof(value) * em);
else if (name == "tooltip")
@ -404,7 +404,7 @@ void GUITable::setTable(const TableOptions &options,
for (s32 i = 0; i < rowcount; ++i) {
video::SColor cellcolor(255, 255, 255, 255);
if (parseColorString(content[i * colcount + j], cellcolor, true))
rows[i].colors.push_back(std::make_pair(cellcolor, j+span));
rows[i].colors.emplace_back(cellcolor, j+span);
}
}
else if (columntype == COLUMN_TYPE_INDENT ||
@ -481,8 +481,8 @@ void GUITable::setTable(const TableOptions &options,
void GUITable::clear()
{
// Clean up cells and rows
for (size_t i = 0; i < m_rows.size(); ++i)
delete[] m_rows[i].cells;
for (GUITable::Row &row : m_rows)
delete[] row.cells;
m_rows.clear();
m_visible_rows.clear();
@ -554,7 +554,9 @@ void GUITable::setSelected(s32 index)
s32 rowcount = m_rows.size();
if (rowcount == 0 || index < 0) {
return;
} else if (index >= rowcount) {
}
if (index >= rowcount) {
index = rowcount - 1;
}
@ -793,7 +795,8 @@ bool GUITable::OnEvent(const SEvent &event)
return true;
}
else if (event.KeyInput.PressedDown && (
if (event.KeyInput.PressedDown && (
event.KeyInput.Key == KEY_LEFT ||
event.KeyInput.Key == KEY_RIGHT)) {
// Open/close subtree via keyboard
@ -942,13 +945,12 @@ s32 GUITable::allocString(const std::string &text)
if (it == m_alloc_strings.end()) {
s32 id = m_strings.size();
std::wstring wtext = utf8_to_wide(text);
m_strings.push_back(core::stringw(wtext.c_str()));
m_strings.emplace_back(wtext.c_str());
m_alloc_strings.insert(std::make_pair(text, id));
return id;
}
else {
return it->second;
}
}
s32 GUITable::allocImage(const std::string &imagename)
@ -960,9 +962,8 @@ s32 GUITable::allocImage(const std::string &imagename)
m_alloc_images.insert(std::make_pair(imagename, id));
return id;
}
else {
return it->second;
}
}
void GUITable::allocationComplete()
@ -977,7 +978,7 @@ const GUITable::Row* GUITable::getRow(s32 i) const
{
if (i >= 0 && i < (s32) m_visible_rows.size())
return &m_rows[m_visible_rows[i]];
else
return NULL;
}
@ -1014,11 +1015,10 @@ s32 GUITable::getRowAt(s32 y, bool &really_hovering) const
really_hovering = true;
return i;
}
else if (i < 0)
if (i < 0)
return 0;
else
return rowcount - 1;
return rowcount - 1;
}
s32 GUITable::getCellAt(s32 x, s32 row_i) const
@ -1038,7 +1038,8 @@ s32 GUITable::getCellAt(s32 x, s32 row_i) const
if (rel_x >= cell->xmin && rel_x <= cell->xmax)
return pivot;
else if (rel_x < cell->xmin)
if (rel_x < cell->xmin)
jmax = pivot - 1;
else
jmin = pivot + 1;
@ -1048,7 +1049,7 @@ s32 GUITable::getCellAt(s32 x, s32 row_i) const
rel_x >= row->cells[jmin].xmin &&
rel_x <= row->cells[jmin].xmax)
return jmin;
else
return -1;
}

@ -24,7 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <sstream>
#include <list>
#include <map>
#include <errno.h>
#include <cerrno>
#include <mutex>
#include "threading/event.h"
#include "config.h"
@ -170,7 +170,8 @@ class CurlHandlePool
std::list<CURL*> handles;
public:
CurlHandlePool() {}
CurlHandlePool() = default;
~CurlHandlePool()
{
for (std::list<CURL*>::iterator it = handles.begin();
@ -272,7 +273,7 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_,
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS,
request.connect_timeout);
if (request.useragent != "")
if (!request.useragent.empty())
curl_easy_setopt(curl, CURLOPT_USERAGENT, request.useragent.c_str());
// Set up a write callback that writes to the
@ -308,13 +309,12 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_,
} else if (request.post_data.empty()) {
curl_easy_setopt(curl, CURLOPT_POST, 1);
std::string str;
for (StringMap::iterator it = request.post_fields.begin();
it != request.post_fields.end(); ++it) {
if (str != "")
for (auto &post_field : request.post_fields) {
if (!str.empty())
str += "&";
str += urlencode(it->first);
str += urlencode(post_field.first);
str += "=";
str += urlencode(it->second);
str += urlencode(post_field.second);
}
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,
str.size());
@ -330,9 +330,8 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_,
// modified until CURLOPT_POSTFIELDS is cleared
}
// Set additional HTTP headers
for (std::vector<std::string>::iterator it = request.extra_headers.begin();
it != request.extra_headers.end(); ++it) {
http_header = curl_slist_append(http_header, it->c_str());
for (const std::string &extra_header : request.extra_headers) {
http_header = curl_slist_append(http_header, extra_header.c_str());
}
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, http_header);
@ -708,8 +707,8 @@ protected:
}
// Call curl_multi_remove_handle and cleanup easy handles
for (size_t i = 0; i < m_all_ongoing.size(); ++i) {
delete m_all_ongoing[i];
for (HTTPFetchOngoing *i : m_all_ongoing) {
delete i;
}
m_all_ongoing.clear();

@ -32,11 +32,12 @@ struct ToolCapabilities;
struct ItemStack
{
ItemStack() {}
ItemStack() = default;
ItemStack(const std::string &name_, u16 count_,
u16 wear, IItemDefManager *itemdef);
~ItemStack() {}
~ItemStack() = default;
// Serialization
void serialize(std::ostream &os) const;
@ -132,11 +133,9 @@ struct ItemStack
wear += amount;
return true;
}
else
{
return false;
}
}
// If possible, adds newitem to this item.
// If cannot be added at all, returns the item back.

@ -135,7 +135,7 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
writeS16(os, stack_max);
writeU8(os, usable);
writeU8(os, liquids_pointable);
std::string tool_capabilities_s = "";
std::string tool_capabilities_s;
if(tool_capabilities){
std::ostringstream tmp_os(std::ios::binary);
tool_capabilities->serialize(tmp_os, protocol_version);
@ -143,10 +143,9 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
}
os << serializeString(tool_capabilities_s);
writeU16(os, groups.size());
for (ItemGroupList::const_iterator
i = groups.begin(); i != groups.end(); ++i){
os << serializeString(i->first);
writeS16(os, i->second);
for (const auto &group : groups) {
os << serializeString(group.first);
writeS16(os, group.second);
}
os << serializeString(node_placement_prediction);
os << serializeString(sound_place.name);
@ -244,7 +243,6 @@ class CItemDefManager: public IWritableItemDefManager
ClientCached():
inventory_texture(NULL),
wield_mesh(),
palette(NULL)
{}
};
@ -263,20 +261,15 @@ public:
{
#ifndef SERVER
const std::vector<ClientCached*> &values = m_clientcached.getValues();
for(std::vector<ClientCached*>::const_iterator
i = values.begin(); i != values.end(); ++i)
{
ClientCached *cc = *i;
for (ClientCached *cc : values) {
if (cc->wield_mesh.mesh)
cc->wield_mesh.mesh->drop();
delete cc;
}
#endif
for (std::map<std::string, ItemDefinition*>::iterator iter =
m_item_definitions.begin(); iter != m_item_definitions.end();
++iter) {
delete iter->second;
for (auto &item_definition : m_item_definitions) {
delete item_definition.second;
}
m_item_definitions.clear();
}
@ -302,15 +295,12 @@ public:
virtual void getAll(std::set<std::string> &result) const
{
result.clear();
for(std::map<std::string, ItemDefinition *>::const_iterator
it = m_item_definitions.begin();
it != m_item_definitions.end(); ++it) {
result.insert(it->first);
for (const auto &item_definition : m_item_definitions) {
result.insert(item_definition.first);
}
for (StringMap::const_iterator
it = m_aliases.begin();
it != m_aliases.end(); ++it) {
result.insert(it->first);
for (const auto &alias : m_aliases) {
result.insert(alias.first);
}
}
virtual bool isKnown(const std::string &name_) const
@ -346,7 +336,7 @@ public:
// Create an inventory texture
cc->inventory_texture = NULL;
if(def.inventory_image != "")
if (!def.inventory_image.empty())
cc->inventory_texture = tsrc->getTexture(def.inventory_image);
ItemStack item = ItemStack();
@ -371,13 +361,14 @@ public:
if (std::this_thread::get_id() == m_main_thread) {
return createClientCachedDirect(name, client);
} else {
}
// We're gonna ask the result to be put into here
static ResultQueue<std::string, ClientCached*, u8, u8> result_queue;
// Throw a request in
m_get_clientcached_queue.add(name, 0, 0, &result_queue);
try{
try {
while(true) {
// Wait result for a second
GetResult<std::string, ClientCached*, u8, u8>
@ -387,14 +378,12 @@ public:
return result.item;
}
}
}
catch(ItemNotFoundException &e)
{
errorstream<<"Waiting for clientcached " << name << " timed out."<<std::endl;
} catch(ItemNotFoundException &e) {
errorstream << "Waiting for clientcached " << name
<< " timed out." << std::endl;
return &m_dummy_clientcached;
}
}
}
// Get item inventory texture
virtual video::ITexture* getInventoryTexture(const std::string &name,
Client *client) const
@ -430,13 +419,12 @@ public:
// Look for direct color definition
const std::string &colorstring = stack.metadata.getString("color", 0);
video::SColor directcolor;
if ((colorstring != "")
&& parseColorString(colorstring, directcolor, true))
if (!colorstring.empty() && parseColorString(colorstring, directcolor, true))
return directcolor;
// See if there is a palette
Palette *palette = getPalette(stack.name, client);
const std::string &index = stack.metadata.getString("palette_index", 0);
if ((palette != NULL) && (index != ""))
if (palette && !index.empty())
return (*palette)[mystoi(index, 0, 255)];
// Fallback color
return get(stack.name).color;
@ -485,7 +473,7 @@ public:
{
verbosestream<<"ItemDefManager: registering \""<<def.name<<"\""<<std::endl;
// Ensure that the "" item (the hand) always has ToolCapabilities
if(def.name == "")
if (def.name.empty())
FATAL_ERROR_IF(!def.tool_capabilities, "Hand does not have ToolCapabilities");
if(m_item_definitions.count(def.name) == 0)

@ -1109,7 +1109,6 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) {
// of a mapblock, because we must consider all view angles.
// sqrt(1^2 + 1^2 + 1^2) = 1.732
float endoff = -BS * MAP_BLOCKSIZE * 1.732050807569;
v3s16 spn = cam_pos_nodes;
s16 bs2 = MAP_BLOCKSIZE / 2 + 1;
// to reduce the likelihood of falsely occluded blocks
// require at least two solid blocks
@ -1118,23 +1117,23 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) {
return (
// For the central point of the mapblock 'endoff' can be halved
isOccluded(spn, cpn,
isOccluded(cam_pos_nodes, cpn,
step, stepfac, startoff, endoff / 2.0f, needed_count) &&
isOccluded(spn, cpn + v3s16(bs2,bs2,bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(bs2,bs2,bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(bs2,bs2,-bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(bs2,bs2,-bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(bs2,-bs2,bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(bs2,-bs2,bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(bs2,-bs2,-bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(bs2,-bs2,-bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(-bs2,bs2,bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(-bs2,bs2,bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(-bs2,bs2,-bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(-bs2,bs2,-bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(-bs2,-bs2,bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(-bs2,-bs2,bs2),
step, stepfac, startoff, endoff, needed_count) &&
isOccluded(spn, cpn + v3s16(-bs2,-bs2,-bs2),
isOccluded(cam_pos_nodes, cpn + v3s16(-bs2,-bs2,-bs2),
step, stepfac, startoff, endoff, needed_count));
}

@ -1325,11 +1325,8 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, u32 daynight_rat
scene::IMeshBuffer *buf = m_mesh[daynight_diff.first.first]->
getMeshBuffer(daynight_diff.first.second);
video::S3DVertex *vertices = (video::S3DVertex *)buf->getVertices();
for (auto j = daynight_diff.second.begin();
j != daynight_diff.second.end(); ++j)
{
final_color_blend(&(vertices[j->first].Color),
j->second, day_color);
for (const auto &j : daynight_diff.second) {
final_color_blend(&(vertices[j.first].Color), j.second, day_color);
}
}
m_last_daynight_ratio = daynight_ratio;

@ -286,7 +286,7 @@ void DecoSimple::resolveNodeNames()
size_t DecoSimple::generate(MMVManip *vm, PcgRandom *pr, v3s16 p)
{
// Don't bother if there aren't any decorations to place
if (c_decos.size() == 0)
if (c_decos.empty())
return 0;
if (!canPlaceDecoration(vm, p))

@ -159,13 +159,13 @@ void NodeBox::deSerialize(std::istream &is)
}
else if (type == NODEBOX_CONNECTED)
{
#define READBOXES(box) do { \
#define READBOXES(box) { \
count = readU16(is); \
(box).reserve(count); \
while (count--) { \
v3f min = readV3F1000(is); \
v3f max = readV3F1000(is); \
(box).emplace_back(min, max); }; } while (0)
(box).emplace_back(min, max); }; }
u16 count;
@ -1958,7 +1958,7 @@ bool NodeResolver::getIdFromNrBacklog(content_t *result_out,
std::string name = m_nodenames[m_nodenames_idx++];
bool success = m_ndef->getId(name, c);
if (!success && node_alt != "") {
if (!success && !node_alt.empty()) {
name = node_alt;
success = m_ndef->getId(name, c);
}

@ -106,10 +106,6 @@ Particle::Particle(
updateVertices();
}
Particle::~Particle()
{
}
void Particle::OnRegisterSceneNode()
{
if (IsVisible)
@ -227,17 +223,16 @@ void Particle::updateVertices()
0, 0, 0, 0, m_color, tx0, ty0);
v3s16 camera_offset = m_env->getCameraOffset();
for(u16 i=0; i<4; i++)
{
for (video::S3DVertex &vertex : m_vertices) {
if (m_vertical) {
v3f ppos = m_player->getPosition()/BS;
m_vertices[i].Pos.rotateXZBy(atan2(ppos.Z-m_pos.Z, ppos.X-m_pos.X)/core::DEGTORAD+90);
vertex.Pos.rotateXZBy(atan2(ppos.Z-m_pos.Z, ppos.X-m_pos.X)/core::DEGTORAD+90);
} else {
m_vertices[i].Pos.rotateYZBy(m_player->getPitch());
m_vertices[i].Pos.rotateXZBy(m_player->getYaw());
vertex.Pos.rotateYZBy(m_player->getPitch());
vertex.Pos.rotateXZBy(m_player->getYaw());
}
m_box.addInternalPoint(m_vertices[i].Pos);
m_vertices[i].Pos += m_pos*BS - intToFloat(camera_offset, BS);
m_box.addInternalPoint(vertex.Pos);
vertex.Pos += m_pos*BS - intToFloat(camera_offset, BS);
}
}
@ -285,8 +280,6 @@ ParticleSpawner::ParticleSpawner(IGameDef *gamedef, LocalPlayer *player,
}
}
ParticleSpawner::~ParticleSpawner() {}
void ParticleSpawner::step(float dtime, ClientEnvironment* env)
{
m_time += dtime;

@ -53,7 +53,7 @@ class Particle : public scene::ISceneNode
u8 glow,
video::SColor color = video::SColor(0xFFFFFFFF)
);
~Particle();
~Particle() = default;
virtual const aabb3f &getBoundingBox() const
{
@ -133,7 +133,7 @@ class ParticleSpawner
const struct TileAnimationParams &anim, u8 glow,
ParticleManager* p_manager);
~ParticleSpawner();
~ParticleSpawner() = default;
void step(float dtime, ClientEnvironment *env);

@ -127,10 +127,10 @@ namespace porting
Signal handler (grabs Ctrl-C on POSIX systems)
*/
void signal_handler_init(void);
void signal_handler_init();
// Returns a pointer to a bool.
// When the bool is true, program should quit.
bool * signal_handler_killstatus(void);
bool * signal_handler_killstatus();
/*
Path of static data directory.
@ -326,7 +326,7 @@ inline const char *getPlatformName()
bool secure_rand_fill_buf(void *buf, size_t len);
// This attaches to the parents process console, or creates a new one if it doesnt exist.
void attachOrCreateConsole(void);
void attachOrCreateConsole();
} // namespace porting
#ifdef __ANDROID__

@ -731,7 +731,7 @@ int ModApiMapgen::l_set_mapgen_setting(lua_State *L)
const char *name = luaL_checkstring(L, 1);
const char *value = luaL_checkstring(L, 2);
bool override_meta = lua_isboolean(L, 3) ? lua_toboolean(L, 3) : false;
bool override_meta = lua_isboolean(L, 3) && lua_toboolean(L, 3);
if (!settingsmgr->setMapSetting(name, value, override_meta)) {
errorstream << "set_mapgen_setting: cannot set '"
@ -760,7 +760,7 @@ int ModApiMapgen::l_set_mapgen_setting_noiseparams(lua_State *L)
return 0;
}
bool override_meta = lua_isboolean(L, 3) ? lua_toboolean(L, 3) : false;
bool override_meta = lua_isboolean(L, 3) && lua_toboolean(L, 3);
if (!settingsmgr->setMapSettingNoiseParams(name, &np, override_meta)) {
errorstream << "set_mapgen_setting_noiseparams: cannot set '"
@ -786,7 +786,7 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L)
return 0;
}
bool set_default = lua_isboolean(L, 3) ? lua_toboolean(L, 3) : true;
bool set_default = !lua_isboolean(L, 3) || lua_toboolean(L, 3);
g_settings->setNoiseParams(name, np, set_default);

@ -345,7 +345,7 @@ ShaderInfo generate_shader(const std::string &name,
/*
Load shader programs
*/
void load_shaders(std::string name, SourceShaderCache *sourcecache,
void load_shaders(const std::string &name, SourceShaderCache *sourcecache,
video::E_DRIVER_TYPE drivertype, bool enable_shaders,
std::string &vertex_program, std::string &pixel_program,
std::string &geometry_program, bool &is_highlevel);
@ -821,7 +821,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
return shaderinfo;
}
void load_shaders(std::string name, SourceShaderCache *sourcecache,
void load_shaders(const std::string &name, SourceShaderCache *sourcecache,
video::E_DRIVER_TYPE drivertype, bool enable_shaders,
std::string &vertex_program, std::string &pixel_program,
std::string &geometry_program, bool &is_highlevel)

@ -19,11 +19,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "socket.h"
#include <stdio.h>
#include <cstdio>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <cstdlib>
#include <cstring>
#include <cerrno>
#include <sstream>
#include <iomanip>
#include "util/string.h"
@ -114,19 +114,19 @@ Address::Address(const IPv6AddressBytes *ipv6_bytes, u16 port)
// Equality (address family, address and port must be equal)
bool Address::operator==(const Address &address)
{
if(address.m_addr_family != m_addr_family || address.m_port != m_port)
if (address.m_addr_family != m_addr_family || address.m_port != m_port)
return false;
else if(m_addr_family == AF_INET)
{
if (m_addr_family == AF_INET) {
return m_address.ipv4.sin_addr.s_addr ==
address.m_address.ipv4.sin_addr.s_addr;
}
else if(m_addr_family == AF_INET6)
{
if (m_addr_family == AF_INET6) {
return memcmp(m_address.ipv6.sin6_addr.s6_addr,
address.m_address.ipv6.sin6_addr.s6_addr, 16) == 0;
}
else
return false;
}
@ -259,7 +259,9 @@ bool Address::isZero() const
{
if (m_addr_family == AF_INET) {
return m_address.ipv4.sin_addr.s_addr == 0;
} else if (m_addr_family == AF_INET6) {
}
if (m_addr_family == AF_INET6) {
static const char zero[16] = {0};
return memcmp(m_address.ipv6.sin6_addr.s6_addr,
zero, 16) == 0;
@ -316,7 +318,7 @@ UDPSocket::UDPSocket(bool ipv6)
bool UDPSocket::init(bool ipv6, bool noExceptions)
{
if (g_sockets_initialized == false) {
if (!g_sockets_initialized) {
dstream << "Sockets not initialized" << std::endl;
return false;
}
@ -335,11 +337,11 @@ bool UDPSocket::init(bool ipv6, bool noExceptions)
if (m_handle <= 0) {
if (noExceptions) {
return false;
} else {
}
throw SocketException(std::string("Failed to create socket: error ")
+ itos(LAST_SOCKET_ERR()));
}
}
setTimeoutMs(0);
@ -467,7 +469,7 @@ void UDPSocket::Send(const Address & destination, const void * data, int size)
int UDPSocket::Receive(Address & sender, void *data, int size)
{
// Return on timeout
if(WaitData(m_timeout_ms) == false)
if (!WaitData(m_timeout_ms))
return -1;
int received;
@ -556,14 +558,16 @@ bool UDPSocket::WaitData(int timeout_ms)
if (result == 0)
return false;
else if (result < 0 && (errno == EINTR || errno == EBADF)) {
if (result < 0 && (errno == EINTR || errno == EBADF)) {
// N.B. select() fails when sockets are destroyed on Connection's dtor
// with EBADF. Instead of doing tricky synchronization, allow this
// thread to exit but don't throw an exception.
return false;
} else if (result < 0) {
dstream << (int) m_handle << ": Select failed: "
<< strerror(errno) << std::endl;
}
if (result < 0) {
dstream << m_handle << ": Select failed: " << strerror(errno) << std::endl;
#ifdef _WIN32
int e = WSAGetLastError();
@ -576,7 +580,7 @@ bool UDPSocket::WaitData(int timeout_ms)
#endif
throw SocketException("Select failed");
} else if(FD_ISSET(m_handle, &readset) == false) {
} else if (!FD_ISSET(m_handle, &readset)) {
// No data
return false;
}

@ -353,9 +353,8 @@ public:
m_device = NULL;
for (auto &buffer : m_buffers) {
for (std::vector<SoundBuffer*>::iterator iter = buffer.second.begin();
iter != buffer.second.end(); ++iter) {
delete *iter;
for (SoundBuffer *sb : buffer.second) {
delete sb;
}
buffer.second.clear();
}

@ -376,7 +376,8 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client)
}
return;
}
else if (!def.inventory_image.empty()) {
if (!def.inventory_image.empty()) {
setExtruded(def.inventory_image, def.wield_scale, tsrc, 1);
m_colors.emplace_back();
return;