Skip to content

Commit bb1c711

Browse files
committedAug 11, 2017
ServerEnvironment::step: modernize loops
Use various ranged-based for loops in ServerEnvironment::step Also set ServerObject::getBasePosition const to be compliant ServerEnvironment::deleteParticleSpawner: use a const iterator
1 parent a4048e4 commit bb1c711

File tree

2 files changed

+28
-69
lines changed

2 files changed

+28
-69
lines changed
 

‎src/serverenvironment.cpp

+27-68
Original file line numberDiff line numberDiff line change
@@ -1169,17 +1169,13 @@ void ServerEnvironment::step(float dtime)
11691169
*/
11701170
{
11711171
ScopeProfiler sp(g_profiler, "SEnv: handle players avg", SPT_AVG);
1172-
for (std::vector<RemotePlayer *>::iterator i = m_players.begin();
1173-
i != m_players.end(); ++i) {
1174-
RemotePlayer *player = dynamic_cast<RemotePlayer *>(*i);
1175-
assert(player);
1176-
1172+
for (RemotePlayer *player : m_players) {
11771173
// Ignore disconnected players
1178-
if(player->peer_id == 0)
1174+
if (player->peer_id == 0)
11791175
continue;
11801176

11811177
// Move
1182-
player->move(dtime, this, 100*BS);
1178+
player->move(dtime, this, 100 * BS);
11831179
}
11841180
}
11851181

@@ -1192,21 +1188,16 @@ void ServerEnvironment::step(float dtime)
11921188
Get player block positions
11931189
*/
11941190
std::vector<v3s16> players_blockpos;
1195-
for (std::vector<RemotePlayer *>::iterator i = m_players.begin();
1196-
i != m_players.end(); ++i) {
1197-
RemotePlayer *player = dynamic_cast<RemotePlayer *>(*i);
1198-
assert(player);
1199-
1191+
for (RemotePlayer *player: m_players) {
12001192
// Ignore disconnected players
12011193
if (player->peer_id == 0)
12021194
continue;
12031195

12041196
PlayerSAO *playersao = player->getPlayerSAO();
12051197
assert(playersao);
12061198

1207-
v3s16 blockpos = getNodeBlockPos(
1208-
floatToInt(playersao->getBasePosition(), BS));
1209-
players_blockpos.push_back(blockpos);
1199+
players_blockpos.push_back(
1200+
getNodeBlockPos(floatToInt(playersao->getBasePosition(), BS)));
12101201
}
12111202

12121203
/*
@@ -1226,16 +1217,9 @@ void ServerEnvironment::step(float dtime)
12261217
// Convert active objects that are no more in active blocks to static
12271218
deactivateFarObjects(false);
12281219

1229-
for(std::set<v3s16>::iterator
1230-
i = blocks_removed.begin();
1231-
i != blocks_removed.end(); ++i) {
1232-
v3s16 p = *i;
1233-
1234-
/* infostream<<"Server: Block " << PP(p)
1235-
<< " became inactive"<<std::endl; */
1236-
1220+
for (const v3s16 &p: blocks_removed) {
12371221
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
1238-
if(block==NULL)
1222+
if (!block)
12391223
continue;
12401224

12411225
// Set current time as timestamp (and let it set ChangedFlag)
@@ -1246,21 +1230,14 @@ void ServerEnvironment::step(float dtime)
12461230
Handle added blocks
12471231
*/
12481232

1249-
for(std::set<v3s16>::iterator
1250-
i = blocks_added.begin();
1251-
i != blocks_added.end(); ++i)
1252-
{
1253-
v3s16 p = *i;
1254-
1233+
for (const v3s16 &p: blocks_added) {
12551234
MapBlock *block = m_map->getBlockOrEmerge(p);
1256-
if(block==NULL){
1235+
if (!block) {
12571236
m_active_blocks.m_list.erase(p);
12581237
continue;
12591238
}
12601239

12611240
activateBlock(block);
1262-
/* infostream<<"Server: Block " << PP(p)
1263-
<< " became active"<<std::endl; */
12641241
}
12651242
}
12661243

@@ -1272,17 +1249,9 @@ void ServerEnvironment::step(float dtime)
12721249

12731250
float dtime = m_cache_nodetimer_interval;
12741251

1275-
for(std::set<v3s16>::iterator
1276-
i = m_active_blocks.m_list.begin();
1277-
i != m_active_blocks.m_list.end(); ++i)
1278-
{
1279-
v3s16 p = *i;
1280-
1281-
/*infostream<<"Server: Block ("<<p.X<<","<<p.Y<<","<<p.Z
1282-
<<") being handled"<<std::endl;*/
1283-
1252+
for (const v3s16 &p: m_active_blocks.m_list) {
12841253
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
1285-
if(block==NULL)
1254+
if (!block)
12861255
continue;
12871256

12881257
// Reset block usage timer
@@ -1297,26 +1266,25 @@ void ServerEnvironment::step(float dtime)
12971266
MOD_REASON_BLOCK_EXPIRED);
12981267

12991268
// Run node timers
1300-
std::vector<NodeTimer> elapsed_timers =
1301-
block->m_node_timers.step((float)dtime);
1269+
std::vector<NodeTimer> elapsed_timers = block->m_node_timers.step(dtime);
13021270
if (!elapsed_timers.empty()) {
13031271
MapNode n;
1304-
for (std::vector<NodeTimer>::iterator i = elapsed_timers.begin();
1305-
i != elapsed_timers.end(); ++i) {
1306-
n = block->getNodeNoEx(i->position);
1307-
p = i->position + block->getPosRelative();
1308-
if (m_script->node_on_timer(p, n, i->elapsed)) {
1272+
v3s16 p2;
1273+
for (const NodeTimer &elapsed_timer: elapsed_timers) {
1274+
n = block->getNodeNoEx(elapsed_timer.position);
1275+
p2 = elapsed_timer.position + block->getPosRelative();
1276+
if (m_script->node_on_timer(p2, n, elapsed_timer.elapsed)) {
13091277
block->setNodeTimer(NodeTimer(
1310-
i->timeout, 0, i->position));
1278+
elapsed_timer.timeout, 0, elapsed_timer.position));
13111279
}
13121280
}
13131281
}
13141282
}
13151283
}
13161284

13171285
if (m_active_block_modifier_interval.step(dtime, m_cache_abm_interval))
1318-
do{ // breakable
1319-
if(m_active_block_interval_overload_skip > 0){
1286+
do { // breakable
1287+
if (m_active_block_interval_overload_skip > 0) {
13201288
ScopeProfiler sp(g_profiler, "SEnv: ABM overload skips");
13211289
m_active_block_interval_overload_skip--;
13221290
break;
@@ -1327,17 +1295,9 @@ void ServerEnvironment::step(float dtime)
13271295
// Initialize handling of ActiveBlockModifiers
13281296
ABMHandler abmhandler(m_abms, m_cache_abm_interval, this, true);
13291297

1330-
for(std::set<v3s16>::iterator
1331-
i = m_active_blocks.m_list.begin();
1332-
i != m_active_blocks.m_list.end(); ++i)
1333-
{
1334-
v3s16 p = *i;
1335-
1336-
/*infostream<<"Server: Block ("<<p.X<<","<<p.Y<<","<<p.Z
1337-
<<") being handled"<<std::endl;*/
1338-
1298+
for (const v3s16 &p : m_active_blocks.m_list) {
13391299
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
1340-
if(block == NULL)
1300+
if (!block)
13411301
continue;
13421302

13431303
// Set current time as timestamp
@@ -1349,7 +1309,7 @@ void ServerEnvironment::step(float dtime)
13491309

13501310
u32 time_ms = timer.stop(true);
13511311
u32 max_time_ms = 200;
1352-
if(time_ms > max_time_ms){
1312+
if (time_ms > max_time_ms) {
13531313
warningstream<<"active block modifiers took "
13541314
<<time_ms<<"ms (longer than "
13551315
<<max_time_ms<<"ms)"<<std::endl;
@@ -1401,8 +1361,7 @@ void ServerEnvironment::step(float dtime)
14011361
/*
14021362
Manage active objects
14031363
*/
1404-
if(m_object_management_interval.step(dtime, 0.5))
1405-
{
1364+
if (m_object_management_interval.step(dtime, 0.5)) {
14061365
ScopeProfiler sp(g_profiler, "SEnv: remove removed objs avg /.5s", SPT_AVG);
14071366
/*
14081367
Remove objects that satisfy (m_removed && m_known_by_count==0)
@@ -1461,9 +1420,9 @@ u32 ServerEnvironment::addParticleSpawner(float exptime, u16 attached_id)
14611420
void ServerEnvironment::deleteParticleSpawner(u32 id, bool remove_from_object)
14621421
{
14631422
m_particle_spawners.erase(id);
1464-
std::unordered_map<u32, u16>::iterator it = m_particle_spawner_attachments.find(id);
1423+
const auto &it = m_particle_spawner_attachments.find(id);
14651424
if (it != m_particle_spawner_attachments.end()) {
1466-
u16 obj_id = (*it).second;
1425+
u16 obj_id = it->second;
14671426
ServerActiveObject *sao = getActiveObject(obj_id);
14681427
if (sao != NULL && remove_from_object) {
14691428
sao->detachParticleSpawner(id);

‎src/serverobject.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class ServerActiveObject : public ActiveObject
7878
/*
7979
Some simple getters/setters
8080
*/
81-
v3f getBasePosition(){ return m_base_position; }
81+
v3f getBasePosition() const { return m_base_position; }
8282
void setBasePosition(v3f pos){ m_base_position = pos; }
8383
ServerEnvironment* getEnv(){ return m_env; }
8484

0 commit comments

Comments
 (0)
Please sign in to comment.