OpenTTD Source: src/saveload/linkgraph_sl.cpp File Reference

OpenTTD Source 12.0-beta1

Data Structures | Typedefs | Functions | Variables
linkgraph_sl.cpp File Reference
`#include "../stdafx.h"`
`#include "saveload.h"`
`#include "compat/linkgraph_sl_compat.h"`
`#include "../linkgraph/linkgraph.h"`
`#include "../linkgraph/linkgraphjob.h"`
`#include "../linkgraph/linkgraphschedule.h"`
`#include "../network/network.h"`
`#include "../settings_internal.h"`
`#include "../settings_table.h"`
`#include "../safeguards.h"`

Go to the source code of this file.

## Data Structures
class | SlLinkgraphEdge
class | SlLinkgraphNode
class | SlLinkgraphJobProxy
| Proxy to reuse LinkGraph to save/load a LinkGraphJob. More...
struct | LGRPChunkHandler
| All link graphs. More...
struct | LGRJChunkHandler
| All link graph jobs. More...
struct | LGRSChunkHandler
| Link graph schedule. More...

## Typedefs
typedef LinkGraph::BaseNode | Node
typedef LinkGraph::BaseEdge | Edge

## Functions
SaveLoadTable | GetLinkGraphDesc ()
| Get a SaveLoad array for a link graph. More...
SaveLoadTable | GetLinkGraphJobDesc ()
| Get a SaveLoad array for a link graph job. More...
SaveLoadTable | GetLinkGraphScheduleDesc ()
| Get a SaveLoad array for the link graph schedule. More...
void | AfterLoadLinkGraphs ()
| Spawn the threads for running link graph calculations. More...

## Variables
static uint16 | _num_nodes
static LinkGraph * | _linkgraph
| Contains the current linkgraph being saved/loaded.
static NodeID | _linkgraph_from
| Contains the current "from" node being saved/loaded.
static const LGRPChunkHandler | LGRP
static const LGRJChunkHandler | LGRJ
static const LGRSChunkHandler | LGRS
static const ChunkHandlerRef | linkgraph_chunk_handlers []
const ChunkHandlerTable | _linkgraph_chunk_handlers (linkgraph_chunk_handlers)

## Detailed Description

Code handling saving and loading of link graphs

Definition in file linkgraph_sl.cpp.

## Function Documentation

## ◆ AfterLoadLinkGraphs()

void AfterLoadLinkGraphs | ( |  | ) |

Spawn the threads for running link graph calculations.

Has to be done after loading as the cargo classes might have changed.

Definition at line 218 of file linkgraph_sl.cpp.

References _network_server, _networking, AfterLoad_LinkGraphPauseControl(), SpecializedStation< Station, false >::GetIfValid(), LinkGraphJob::Graph(), LinkGraphSchedule::instance, IsSavegameVersionBefore(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_job_pool >::Iterate(), LinkGraph::Size(), SLV_191, LinkGraphSchedule::SpawnAll(), and BaseStation::xy.

## ◆ GetLinkGraphDesc()

SaveLoadTable GetLinkGraphDesc | ( |  | ) |

Get a SaveLoad array for a link graph.

Returns
  SaveLoad array for link graph.

Definition at line 122 of file linkgraph_sl.cpp.

References SLE_VAR.

Referenced by SlLinkgraphJobProxy::GetDescription(), LGRPChunkHandler::Load(), and LGRPChunkHandler::Save().

## ◆ GetLinkGraphJobDesc()

SaveLoadTable GetLinkGraphJobDesc | ( |  | ) |

Get a SaveLoad array for a link graph job.

The settings struct is derived from the global settings saveload array. The exact entries are calculated when the function is called the first time. It's necessary to keep a copy of the settings for each link graph job so that you can change the settings while in-game and still not mess with current link graph runs. Of course the settings have to be saved and loaded, too, to avoid desyncs.

Returns
  Array of SaveLoad structs.

Definition at line 166 of file linkgraph_sl.cpp.

References SLE_VAR.

Referenced by LGRJChunkHandler::Load(), and LGRJChunkHandler::Save().

## ◆ GetLinkGraphScheduleDesc()

SaveLoadTable GetLinkGraphScheduleDesc | ( |  | ) |

Get a SaveLoad array for the link graph schedule.

Returns
  SaveLoad array for the link graph schedule.

Definition at line 205 of file linkgraph_sl.cpp.

References REF_LINK_GRAPH, REF_LINK_GRAPH_JOB, and SLE_REFLIST.

Referenced by LGRSChunkHandler::FixPointers(), LGRSChunkHandler::Load(), and LGRSChunkHandler::Save().

## Variable Documentation

## ◆ linkgraph_chunk_handlers

const ChunkHandlerRef linkgraph_chunk_handlers[]
| static

Initial value:
= {
LGRP,
LGRJ,
LGRS,
}

Definition at line 332 of file linkgraph_sl.cpp.