12 #include "../stdafx.h" 
   13 #include "../linkgraph/linkgraph.h" 
   14 #include "../linkgraph/linkgraphjob.h" 
   15 #include "../linkgraph/linkgraphschedule.h" 
   16 #include "../settings_internal.h" 
   19 #include "../safeguards.h" 
   24 const SettingDesc *GetSettingDescription(uint index);
 
   26 static uint16 _num_nodes;
 
   34   static const SaveLoad link_graph_desc[] = {
 
   40   return link_graph_desc;
 
   55   static const char *prefix = 
"linkgraph.";
 
   58   if (saveloads.
Length() == 0) {
 
   59     size_t offset_gamesettings = cpp_offsetof(
GameSettings, linkgraph);
 
   60     size_t offset_component = cpp_offsetof(
LinkGraphJob, settings);
 
   62     size_t prefixlen = strlen(prefix);
 
   65     const SettingDesc *desc = GetSettingDescription(setting);
 
   66     while (desc->
save.
cmd != SL_END) {
 
   67       if (desc->
desc.
name != NULL && strncmp(desc->
desc.
name, prefix, prefixlen) == 0) {
 
   69         char *&address = 
reinterpret_cast<char *&
>(sl.
address);
 
   70         address -= offset_gamesettings;
 
   71         address += offset_component;
 
   72         *(saveloads.
Append()) = sl;
 
   74       desc = GetSettingDescription(++setting);
 
   85       *(saveloads.
Append()) = job_desc[i++];
 
   86     } 
while (saveloads[saveloads.
Length() - 1].cmd != SL_END);
 
   98   static const SaveLoad schedule_desc[] = {
 
  103   return schedule_desc;
 
  127        SLE_VAR(
Edge, last_unrestricted_update, SLE_INT32),
 
  139   uint size = lg.
Size();
 
  140   for (NodeID from = 0; from < size; ++from) {
 
  145       for (NodeID to = 0; to < size; ++to) {
 
  150       for (NodeID to = from; to != INVALID_NODE; to = lg.
edges[from][to].next_edge) {
 
  164   _num_nodes = lgj->
Size();
 
  175   _num_nodes = lg->
Size();
 
  193     lg->
Init(_num_nodes);
 
  234     FOR_ALL_LINK_GRAPHS(lg) {
 
  235       for (NodeID node_id = 0; node_id < lg->
Size(); ++node_id) {
 
  241     FOR_ALL_LINK_GRAPH_JOBS(lgj) {
 
  243       for (NodeID node_id = 0; node_id < lg->
Size(); ++node_id) {
 
  258   FOR_ALL_LINK_GRAPHS(lg) {
 
  259     SlSetArrayIndex(lg->
index);
 
  270   FOR_ALL_LINK_GRAPH_JOBS(lgj) {
 
  271     SlSetArrayIndex(lgj->
index);
 
  292 extern const ChunkHandler _linkgraph_chunk_handlers[] = {