(svn r26461) [1.4] -Backport from trunk:
- Fix: Avoid division by 0 when scaling flow values [FS#5970] (r26448) - Feature: Draw links to match _settings_game.vehicle.road_side [FS#5961] (r26445) - Change: Use pkg-config for libpng as well (r26435, r26433, r26432) - Feature: Load button for heightmap list [FS#5953] (r26428)
This commit is contained in:
@@ -49,8 +49,10 @@ void FlowMapper::Run(LinkGraphJob &job) const
|
||||
FlowStatMap &flows = node.Flows();
|
||||
flows.FinalizeLocalConsumption(node.Station());
|
||||
if (this->scale) {
|
||||
/* Scale by time the graph has been running without being compressed. */
|
||||
uint runtime = job.JoinDate() - job.Settings().recalc_time - job.LastCompression();
|
||||
/* Scale by time the graph has been running without being compressed. Add 1 to avoid
|
||||
* division by 0 if spawn date == last compression date. This matches
|
||||
* LinkGraph::Monthly(). */
|
||||
uint runtime = job.JoinDate() - job.Settings().recalc_time - job.LastCompression() + 1;
|
||||
for (FlowStatMap::iterator i = flows.begin(); i != flows.end(); ++i) {
|
||||
i->second.ScaleToMonthly(runtime);
|
||||
}
|
||||
|
||||
@@ -220,11 +220,12 @@ void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &c
|
||||
|
||||
/* Move line a bit 90° against its dominant direction to prevent it from
|
||||
* being hidden below the grey line. */
|
||||
int side = _settings_game.vehicle.road_side ? 1 : -1;
|
||||
if (abs(pta.x - ptb.x) < abs(pta.y - ptb.y)) {
|
||||
int offset_x = (pta.y > ptb.y ? 1 : -1) * this->scale;
|
||||
int offset_x = (pta.y > ptb.y ? 1 : -1) * side * this->scale;
|
||||
GfxDrawLine(pta.x + offset_x, pta.y, ptb.x + offset_x, ptb.y, colour, this->scale, dash);
|
||||
} else {
|
||||
int offset_y = (pta.x < ptb.x ? 1 : -1) * this->scale;
|
||||
int offset_y = (pta.x < ptb.x ? 1 : -1) * side * this->scale;
|
||||
GfxDrawLine(pta.x, pta.y + offset_y, ptb.x, ptb.y + offset_y, colour, this->scale, dash);
|
||||
}
|
||||
|
||||
|
||||
@@ -4314,9 +4314,11 @@ void FlowStat::ReleaseShare(StationID st)
|
||||
/**
|
||||
* Scale all shares from link graph's runtime to monthly values.
|
||||
* @param runtime Time the link graph has been running without compression.
|
||||
* @pre runtime must be greater than 0 as we don't want infinite flow values.
|
||||
*/
|
||||
void FlowStat::ScaleToMonthly(uint runtime)
|
||||
{
|
||||
assert(runtime > 0);
|
||||
SharesMap new_shares;
|
||||
uint share = 0;
|
||||
for (SharesMap::iterator i = this->shares.begin(); i != this->shares.end(); ++i) {
|
||||
|
||||
@@ -23,4 +23,4 @@ enum StoryBookWidgets {
|
||||
WID_SB_NEXT_PAGE, ///< Next button.
|
||||
};
|
||||
|
||||
#endif /* WIDGETS_STORY_WIDGET_H */
|
||||
#endif /* WIDGETS_STORY_WIDGET_H */
|
||||
|
||||
Reference in New Issue
Block a user