mirror of https://github.com/OpenTTD/OpenTTD
(svn r25359) -Codechange: schedule jobs when tracking capacities of links
parent
3d0a0e8e48
commit
5c8ff0a251
|
@ -25,6 +25,7 @@
|
||||||
#include "industry.h"
|
#include "industry.h"
|
||||||
#include "core/random_func.hpp"
|
#include "core/random_func.hpp"
|
||||||
#include "linkgraph/linkgraph.h"
|
#include "linkgraph/linkgraph.h"
|
||||||
|
#include "linkgraph/linkgraphschedule.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
|
@ -94,6 +95,7 @@ Station::~Station()
|
||||||
if (lg != NULL) {
|
if (lg != NULL) {
|
||||||
lg->RemoveNode(this->goods[c].node);
|
lg->RemoveNode(this->goods[c].node);
|
||||||
if (lg->Size() == 0) {
|
if (lg->Size() == 0) {
|
||||||
|
LinkGraphSchedule::Instance()->Unqueue(lg);
|
||||||
delete lg;
|
delete lg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3397,6 +3397,7 @@ void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint c
|
||||||
if (ge2.link_graph == INVALID_LINK_GRAPH) {
|
if (ge2.link_graph == INVALID_LINK_GRAPH) {
|
||||||
if (LinkGraph::CanAllocateItem()) {
|
if (LinkGraph::CanAllocateItem()) {
|
||||||
lg = new LinkGraph(cargo);
|
lg = new LinkGraph(cargo);
|
||||||
|
LinkGraphSchedule::Instance()->Queue(lg);
|
||||||
ge2.link_graph = lg->index;
|
ge2.link_graph = lg->index;
|
||||||
ge2.node = lg->AddNode(st2);
|
ge2.node = lg->AddNode(st2);
|
||||||
} else {
|
} else {
|
||||||
|
@ -3418,9 +3419,11 @@ void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint c
|
||||||
if (ge1.link_graph != ge2.link_graph) {
|
if (ge1.link_graph != ge2.link_graph) {
|
||||||
LinkGraph *lg2 = LinkGraph::Get(ge2.link_graph);
|
LinkGraph *lg2 = LinkGraph::Get(ge2.link_graph);
|
||||||
if (lg->Size() < lg2->Size()) {
|
if (lg->Size() < lg2->Size()) {
|
||||||
|
LinkGraphSchedule::Instance()->Unqueue(lg);
|
||||||
lg2->Merge(lg); // Updates GoodsEntries of lg
|
lg2->Merge(lg); // Updates GoodsEntries of lg
|
||||||
lg = lg2;
|
lg = lg2;
|
||||||
} else {
|
} else {
|
||||||
|
LinkGraphSchedule::Instance()->Unqueue(lg2);
|
||||||
lg->Merge(lg2); // Updates GoodsEntries of lg2
|
lg->Merge(lg2); // Updates GoodsEntries of lg2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3541,6 +3544,7 @@ static uint UpdateStationWaiting(Station *st, CargoID type, uint amount, SourceT
|
||||||
if (ge.link_graph == INVALID_LINK_GRAPH) {
|
if (ge.link_graph == INVALID_LINK_GRAPH) {
|
||||||
if (LinkGraph::CanAllocateItem()) {
|
if (LinkGraph::CanAllocateItem()) {
|
||||||
lg = new LinkGraph(type);
|
lg = new LinkGraph(type);
|
||||||
|
LinkGraphSchedule::Instance()->Queue(lg);
|
||||||
ge.link_graph = lg->index;
|
ge.link_graph = lg->index;
|
||||||
ge.node = lg->AddNode(st);
|
ge.node = lg->AddNode(st);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue