Skip to content

Commit

Permalink
In Universe and Effect code flatten some lambdas used for logging.
Browse files Browse the repository at this point in the history
For review freeorion#1481.

This trades code clarity for an unnecessary iteration over a set.
  • Loading branch information
LGM-Doyle committed Apr 24, 2017
1 parent 9a09be9 commit b1195f6
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 65 deletions.
46 changes: 15 additions & 31 deletions universe/Effect.cpp
Expand Up @@ -366,14 +366,11 @@ void SetMeter::Execute(const TargetsCauses& targets_causes, AccountingMap* accou
const TargetsAndCause& targets_and_cause = targets_entry.second;
TargetSet targets = targets_and_cause.target_set;

DebugLogger(effects) << [&targets, this]() {
std::stringstream ss;
ss << "\n\nExecute SetMeter effect: \n" << Dump();
ss << "SetMeter execute targets before: ";
for (std::shared_ptr<UniverseObject> target : targets)
ss << " ... " << target->Dump();
return ss.str();
}();

DebugLogger(effects) << "\n\nExecute SetMeter effect: \n" << Dump();
DebugLogger(effects) << "SetMeter execute targets before: ";
for (std::shared_ptr<UniverseObject> target : targets)
DebugLogger(effects) << " ... " << target->Dump();

if (!accounting_map) {
// without accounting, can do default batch execute
Expand Down Expand Up @@ -419,14 +416,9 @@ void SetMeter::Execute(const TargetsCauses& targets_causes, AccountingMap* accou
}
}

DebugLogger(effects) << [&targets]() {
std::stringstream ss;
ss << "SetMeter execute targets after: ";
for (std::shared_ptr<UniverseObject> target : targets) {
ss << " ... " << target->Dump();
}
return ss.str();
}();
DebugLogger(effects) << "SetMeter execute targets after: ";
for (std::shared_ptr<UniverseObject> target : targets)
DebugLogger(effects) << " ... " << target->Dump();
}
}

Expand Down Expand Up @@ -590,24 +582,16 @@ void SetShipPartMeter::Execute(const TargetsCauses& targets_causes, AccountingMa
const TargetsAndCause& targets_and_cause = targets_entry.second;
TargetSet targets = targets_and_cause.target_set;

DebugLogger(effects) << [&targets, this]() {
std::stringstream ss;
ss << "\n\nExecute SetShipPartMeter effect: \n" << Dump();
ss << "SetShipPartMeter execute targets before: ";
for (std::shared_ptr<UniverseObject> target : targets)
ss << " ... " << target->Dump();
return ss.str();
}();
DebugLogger(effects) << "\n\nExecute SetShipPartMeter effect: \n" << Dump();
DebugLogger(effects) << "SetShipPartMeter execute targets before: ";
for (std::shared_ptr<UniverseObject> target : targets)
DebugLogger(effects) << " ... " << target->Dump();

Execute(source_context, targets);

DebugLogger(effects) << [&targets, this]() {
std::stringstream ss;
ss << "SetShipPartMeter execute targets after: ";
for (std::shared_ptr<UniverseObject> target : targets)
ss << " ... " << target->Dump();
return ss.str();
}();
DebugLogger(effects) << "SetShipPartMeter execute targets after: ";
for (std::shared_ptr<UniverseObject> target : targets)
DebugLogger(effects) << " ... " << target->Dump();
}
}

Expand Down
47 changes: 13 additions & 34 deletions universe/Universe.cpp
Expand Up @@ -691,14 +691,9 @@ void Universe::UpdateMeterEstimatesImpl(const std::vector<int>& objects_vec) {
}
}

DebugLogger(effects) << [&object_ptrs]() {
std::stringstream ss;
ss << "UpdateMeterEstimatesImpl after resetting meters objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs) {
ss << obj->Dump();
}
return ss.str();
}();
DebugLogger(effects) << "UpdateMeterEstimatesImpl after resetting meters objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs)
DebugLogger(effects) << obj->Dump();

// cache all activation and scoping condition results before applying Effects, since the application of
// these Effects may affect the activation and scoping evaluations
Expand All @@ -708,14 +703,9 @@ void Universe::UpdateMeterEstimatesImpl(const std::vector<int>& objects_vec) {
// Apply and record effect meter adjustments
ExecuteEffects(targets_causes, do_accounting, true, false, false, false);

DebugLogger(effects) << [&object_ptrs]() {
std::stringstream ss;
ss << "UpdateMeterEstimatesImpl after executing effects objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs) {
ss << obj->Dump();
}
return ss.str();
}();
DebugLogger(effects) << "UpdateMeterEstimatesImpl after executing effects objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs)
DebugLogger(effects) << obj->Dump();

// Apply known discrepancies between expected and calculated meter maxes at start of turn. This
// accounts for the unknown effects on the meter, and brings the estimate in line with the actual
Expand All @@ -740,7 +730,7 @@ void Universe::UpdateMeterEstimatesImpl(const std::vector<int>& objects_vec) {

if (meter) {
DebugLogger(effects) << "object " << obj_id << " has meter " << type
<< ": discrepancy: " << discrepancy << " and : " << meter->Dump();
<< ": discrepancy: " << discrepancy << " and : " << meter->Dump();

meter->AddToCurrent(discrepancy);

Expand All @@ -763,14 +753,9 @@ void Universe::UpdateMeterEstimatesImpl(const std::vector<int>& objects_vec) {
obj->ClampMeters();
}

DebugLogger(effects) << [&object_ptrs]() {
std::stringstream ss;
ss << "UpdateMeterEstimatesImpl after discrepancies and clamping objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs) {
ss << obj->Dump();
}
return ss.str();
}();
DebugLogger(effects) << "UpdateMeterEstimatesImpl after discrepancies and clamping objects:";
for (std::shared_ptr<UniverseObject> obj : object_ptrs)
DebugLogger(effects) << obj->Dump();

}

Expand Down Expand Up @@ -1057,15 +1042,9 @@ void Universe::GetEffectsAndTargets(Effect::TargetsCauses& targets_causes,
// transfer target objects from input vector to a set
Effect::TargetSet all_potential_targets = m_objects.FindObjects(target_objects);

DebugLogger(effects) << [&all_potential_targets]() {
std::stringstream ss;
ss << "target objects:";
for (std::shared_ptr<UniverseObject> obj : all_potential_targets) {
ss << obj->Dump();
}
return ss.str();
}();

DebugLogger(effects) << "target objects:";
for (std::shared_ptr<UniverseObject> obj : all_potential_targets)
DebugLogger(effects) << obj->Dump();

// caching space for each source object's results of finding matches for
// scope conditions. Index INVALID_OBJECT_ID stores results for
Expand Down

0 comments on commit b1195f6

Please sign in to comment.