OpenTTD Source  1.11.2
newgrf_debug_data.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6  */
7 
10 #include "../newgrf_house.h"
11 #include "../newgrf_engine.h"
12 #include "../newgrf_roadtype.h"
13 
14 /* Helper for filling property tables */
15 #define NIP(prop, base, variable, type, name) { name, [] (const void *b) -> const void * { return std::addressof(static_cast<const base *>(b)->variable); }, cpp_sizeof(base, variable), prop, type }
16 #define NIP_END() { nullptr, 0, 0, 0, 0 }
17 
18 /* Helper for filling callback tables */
19 #define NIC(cb_id, base, variable, bit) { #cb_id, [] (const void *b) -> const void * { return std::addressof(static_cast<const base *>(b)->variable); }, cpp_sizeof(base, variable), bit, cb_id }
20 #define NIC_END() { nullptr, 0, 0, 0, 0 }
21 
22 /* Helper for filling variable tables */
23 #define NIV(var, name) { name, var }
24 #define NIV_END() { nullptr, 0 }
25 
26 
27 /*** NewGRF Vehicles ***/
28 
29 #define NICV(cb_id, bit) NIC(cb_id, Engine, info.callback_mask, bit)
30 static const NICallback _nic_vehicles[] = {
45  NIC_END()
46 };
47 
48 
49 static const NIVariable _niv_vehicles[] = {
50  NIV(0x40, "position in consist and length"),
51  NIV(0x41, "position and length of chain of same vehicles"),
52  NIV(0x42, "transported cargo types"),
53  NIV(0x43, "player info"),
54  NIV(0x44, "aircraft info"),
55  NIV(0x45, "curvature info"),
56  NIV(0x46, "motion counter"),
57  NIV(0x47, "vehicle cargo info"),
58  NIV(0x48, "vehicle type info"),
59  NIV(0x49, "year of construction"),
60  NIV(0x4A, "current rail/road type info"),
61  NIV(0x4B, "long date of last service"),
62  NIV(0x4C, "current max speed"),
63  NIV(0x4D, "position in articulated vehicle"),
64  NIV(0x60, "count vehicle id occurrences"),
65  // 0x61 not useful, since it requires register 0x10F
66  NIV(0x62, "curvature/position difference to other vehicle"),
67  NIV(0x63, "tile compatibility wrt. track-type"),
68  NIV_END()
69 };
70 
71 class NIHVehicle : public NIHelper {
72  bool IsInspectable(uint index) const override { return Vehicle::Get(index)->GetGRF() != nullptr; }
73  uint GetParent(uint index) const override { const Vehicle *first = Vehicle::Get(index)->First(); return GetInspectWindowNumber(GetGrfSpecFeature(first->type), first->index); }
74  const void *GetInstance(uint index)const override { return Vehicle::Get(index); }
75  const void *GetSpec(uint index) const override { return Vehicle::Get(index)->GetEngine(); }
76  void SetStringParameters(uint index) const override { this->SetSimpleStringParameters(STR_VEHICLE_NAME, index); }
77  uint32 GetGRFID(uint index) const override { return Vehicle::Get(index)->GetGRFID(); }
78 
79  uint Resolve(uint index, uint var, uint param, bool *avail) const override
80  {
81  Vehicle *v = Vehicle::Get(index);
83  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
84  }
85 };
86 
87 static const NIFeature _nif_vehicle = {
88  nullptr,
89  _nic_vehicles,
90  _niv_vehicles,
91  new NIHVehicle(),
92 };
93 
94 
95 /*** NewGRF station (tiles) ***/
96 
97 #define NICS(cb_id, bit) NIC(cb_id, StationSpec, callback_mask, bit)
98 static const NICallback _nic_stations[] = {
106  NIC_END()
107 };
108 
109 static const NIVariable _niv_stations[] = {
110  NIV(0x40, "platform info and relative position"),
111  NIV(0x41, "platform info and relative position for individually built sections"),
112  NIV(0x42, "terrain and track type"),
113  NIV(0x43, "player info"),
114  NIV(0x44, "path signalling info"),
115  NIV(0x45, "rail continuation info"),
116  NIV(0x46, "platform info and relative position from middle"),
117  NIV(0x47, "platform info and relative position from middle for individually built sections"),
118  NIV(0x48, "bitmask of accepted cargoes"),
119  NIV(0x49, "platform info and relative position of same-direction section"),
120  NIV(0x4A, "current animation frame"),
121  NIV(0x60, "amount of cargo waiting"),
122  NIV(0x61, "time since last cargo pickup"),
123  NIV(0x62, "rating of cargo"),
124  NIV(0x63, "time spent on route"),
125  NIV(0x64, "information about last vehicle picking cargo up"),
126  NIV(0x65, "amount of cargo acceptance"),
127  NIV(0x66, "animation frame of nearby tile"),
128  NIV(0x67, "land info of nearby tiles"),
129  NIV(0x68, "station info of nearby tiles"),
130  NIV(0x69, "information about cargo accepted in the past"),
131  NIV(0x6A, "GRFID of nearby station tiles"),
132  NIV_END()
133 };
134 
135 class NIHStation : public NIHelper {
136  bool IsInspectable(uint index) const override { return GetStationSpec(index) != nullptr; }
137  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Station::GetByTile(index)->town->index); }
138  const void *GetInstance(uint index)const override { return nullptr; }
139  const void *GetSpec(uint index) const override { return GetStationSpec(index); }
140  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_STATION_NAME, GetStationIndex(index), index); }
141  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? GetStationSpec(index)->grf_prop.grffile->grfid : 0; }
142 
143  uint Resolve(uint index, uint var, uint param, bool *avail) const override
144  {
145  StationResolverObject ro(GetStationSpec(index), Station::GetByTile(index), index);
146  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
147  }
148 };
149 
150 static const NIFeature _nif_station = {
151  nullptr,
152  _nic_stations,
153  _niv_stations,
154  new NIHStation(),
155 };
156 
157 
158 /*** NewGRF house tiles ***/
159 
160 #define NICH(cb_id, bit) NIC(cb_id, HouseSpec, callback_mask, bit)
161 static const NICallback _nic_house[] = {
177  NIC_END()
178 };
179 
180 static const NIVariable _niv_house[] = {
181  NIV(0x40, "construction state of tile and pseudo-random value"),
182  NIV(0x41, "age of building in years"),
183  NIV(0x42, "town zone"),
184  NIV(0x43, "terrain type"),
185  NIV(0x44, "building counts"),
186  NIV(0x45, "town expansion bits"),
187  NIV(0x46, "current animation frame"),
188  NIV(0x47, "xy coordinate of the building"),
189  NIV(0x60, "other building counts (old house type)"),
190  NIV(0x61, "other building counts (new house type)"),
191  NIV(0x62, "land info of nearby tiles"),
192  NIV(0x63, "current animation frame of nearby house tile"),
193  NIV(0x64, "cargo acceptance history of nearby stations"),
194  NIV(0x65, "distance of nearest house matching a given criterion"),
195  NIV(0x66, "class and ID of nearby house tile"),
196  NIV(0x67, "GRFID of nearby house tile"),
197  NIV_END()
198 };
199 
200 class NIHHouse : public NIHelper {
201  bool IsInspectable(uint index) const override { return HouseSpec::Get(GetHouseType(index))->grf_prop.grffile != nullptr; }
202  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, GetTownIndex(index)); }
203  const void *GetInstance(uint index)const override { return nullptr; }
204  const void *GetSpec(uint index) const override { return HouseSpec::Get(GetHouseType(index)); }
205  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_TOWN_NAME, GetTownIndex(index), index); }
206  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? HouseSpec::Get(GetHouseType(index))->grf_prop.grffile->grfid : 0; }
207 
208  uint Resolve(uint index, uint var, uint param, bool *avail) const override
209  {
210  HouseResolverObject ro(GetHouseType(index), index, Town::GetByTile(index));
211  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
212  }
213 };
214 
215 static const NIFeature _nif_house = {
216  nullptr,
217  _nic_house,
218  _niv_house,
219  new NIHHouse(),
220 };
221 
222 
223 /*** NewGRF industry tiles ***/
224 
225 #define NICIT(cb_id, bit) NIC(cb_id, IndustryTileSpec, callback_mask, bit)
226 static const NICallback _nic_industrytiles[] = {
235  NIC_END()
236 };
237 
238 static const NIVariable _niv_industrytiles[] = {
239  NIV(0x40, "construction state of tile"),
240  NIV(0x41, "ground type"),
241  NIV(0x42, "current town zone in nearest town"),
242  NIV(0x43, "relative position"),
243  NIV(0x44, "animation frame"),
244  NIV(0x60, "land info of nearby tiles"),
245  NIV(0x61, "animation stage of nearby tiles"),
246  NIV(0x62, "get industry or airport tile ID at offset"),
247  NIV_END()
248 };
249 
250 class NIHIndustryTile : public NIHelper {
251  bool IsInspectable(uint index) const override { return GetIndustryTileSpec(GetIndustryGfx(index))->grf_prop.grffile != nullptr; }
252  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_INDUSTRIES, GetIndustryIndex(index)); }
253  const void *GetInstance(uint index)const override { return nullptr; }
254  const void *GetSpec(uint index) const override { return GetIndustryTileSpec(GetIndustryGfx(index)); }
255  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_INDUSTRY_NAME, GetIndustryIndex(index), index); }
256  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? GetIndustryTileSpec(GetIndustryGfx(index))->grf_prop.grffile->grfid : 0; }
257 
258  uint Resolve(uint index, uint var, uint param, bool *avail) const override
259  {
261  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
262  }
263 };
264 
265 static const NIFeature _nif_industrytile = {
266  nullptr,
267  _nic_industrytiles,
268  _niv_industrytiles,
269  new NIHIndustryTile(),
270 };
271 
272 
273 /*** NewGRF industries ***/
274 
275 static const NIProperty _nip_industries[] = {
276  NIP(0x25, Industry, produced_cargo[ 0], NIT_CARGO, "produced cargo 0"),
277  NIP(0x25, Industry, produced_cargo[ 1], NIT_CARGO, "produced cargo 1"),
278  NIP(0x25, Industry, produced_cargo[ 2], NIT_CARGO, "produced cargo 2"),
279  NIP(0x25, Industry, produced_cargo[ 3], NIT_CARGO, "produced cargo 3"),
280  NIP(0x25, Industry, produced_cargo[ 4], NIT_CARGO, "produced cargo 4"),
281  NIP(0x25, Industry, produced_cargo[ 5], NIT_CARGO, "produced cargo 5"),
282  NIP(0x25, Industry, produced_cargo[ 6], NIT_CARGO, "produced cargo 6"),
283  NIP(0x25, Industry, produced_cargo[ 7], NIT_CARGO, "produced cargo 7"),
284  NIP(0x25, Industry, produced_cargo[ 8], NIT_CARGO, "produced cargo 8"),
285  NIP(0x25, Industry, produced_cargo[ 9], NIT_CARGO, "produced cargo 9"),
286  NIP(0x25, Industry, produced_cargo[10], NIT_CARGO, "produced cargo 10"),
287  NIP(0x25, Industry, produced_cargo[11], NIT_CARGO, "produced cargo 11"),
288  NIP(0x25, Industry, produced_cargo[12], NIT_CARGO, "produced cargo 12"),
289  NIP(0x25, Industry, produced_cargo[13], NIT_CARGO, "produced cargo 13"),
290  NIP(0x25, Industry, produced_cargo[14], NIT_CARGO, "produced cargo 14"),
291  NIP(0x25, Industry, produced_cargo[15], NIT_CARGO, "produced cargo 15"),
292  NIP(0x26, Industry, accepts_cargo[ 0], NIT_CARGO, "accepted cargo 0"),
293  NIP(0x26, Industry, accepts_cargo[ 1], NIT_CARGO, "accepted cargo 1"),
294  NIP(0x26, Industry, accepts_cargo[ 2], NIT_CARGO, "accepted cargo 2"),
295  NIP(0x26, Industry, accepts_cargo[ 3], NIT_CARGO, "accepted cargo 3"),
296  NIP(0x26, Industry, accepts_cargo[ 4], NIT_CARGO, "accepted cargo 4"),
297  NIP(0x26, Industry, accepts_cargo[ 5], NIT_CARGO, "accepted cargo 5"),
298  NIP(0x26, Industry, accepts_cargo[ 6], NIT_CARGO, "accepted cargo 6"),
299  NIP(0x26, Industry, accepts_cargo[ 7], NIT_CARGO, "accepted cargo 7"),
300  NIP(0x26, Industry, accepts_cargo[ 8], NIT_CARGO, "accepted cargo 8"),
301  NIP(0x26, Industry, accepts_cargo[ 9], NIT_CARGO, "accepted cargo 9"),
302  NIP(0x26, Industry, accepts_cargo[10], NIT_CARGO, "accepted cargo 10"),
303  NIP(0x26, Industry, accepts_cargo[11], NIT_CARGO, "accepted cargo 11"),
304  NIP(0x26, Industry, accepts_cargo[12], NIT_CARGO, "accepted cargo 12"),
305  NIP(0x26, Industry, accepts_cargo[13], NIT_CARGO, "accepted cargo 13"),
306  NIP(0x26, Industry, accepts_cargo[14], NIT_CARGO, "accepted cargo 14"),
307  NIP(0x26, Industry, accepts_cargo[15], NIT_CARGO, "accepted cargo 15"),
308  NIP_END()
309 };
310 
311 #define NICI(cb_id, bit) NIC(cb_id, IndustrySpec, callback_mask, bit)
312 static const NICallback _nic_industries[] = {
326  NIC_END()
327 };
328 
329 static const NIVariable _niv_industries[] = {
330  NIV(0x40, "waiting cargo 0"),
331  NIV(0x41, "waiting cargo 1"),
332  NIV(0x42, "waiting cargo 2"),
333  NIV(0x43, "distance to closest dry/land tile"),
334  NIV(0x44, "layout number"),
335  NIV(0x45, "player info"),
336  NIV(0x46, "industry construction date"),
337  NIV(0x60, "get industry tile ID at offset"),
338  NIV(0x61, "get random tile bits at offset"),
339  NIV(0x62, "land info of nearby tiles"),
340  NIV(0x63, "animation stage of nearby tiles"),
341  NIV(0x64, "distance on nearest industry with given type"),
342  NIV(0x65, "get town zone and Manhattan distance of closest town"),
343  NIV(0x66, "get square of Euclidean distance of closes town"),
344  NIV(0x67, "count of industry and distance of closest instance"),
345  NIV(0x68, "count of industry and distance of closest instance with layout filter"),
346  NIV(0x69, "produced cargo waiting"),
347  NIV(0x6A, "cargo produced this month"),
348  NIV(0x6B, "cargo transported this month"),
349  NIV(0x6C, "cargo produced last month"),
350  NIV(0x6D, "cargo transported last month"),
351  NIV(0x6E, "date since cargo was delivered"),
352  NIV(0x6F, "waiting input cargo"),
353  NIV(0x70, "production rate"),
354  NIV(0x71, "percentage of cargo transported last month"),
355  NIV_END()
356 };
357 
358 class NIHIndustry : public NIHelper {
359  bool IsInspectable(uint index) const override { return GetIndustrySpec(Industry::Get(index)->type)->grf_prop.grffile != nullptr; }
360  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Industry::Get(index)->town->index); }
361  const void *GetInstance(uint index)const override { return Industry::Get(index); }
362  const void *GetSpec(uint index) const override { return GetIndustrySpec(Industry::Get(index)->type); }
363  void SetStringParameters(uint index) const override { this->SetSimpleStringParameters(STR_INDUSTRY_NAME, index); }
364  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? GetIndustrySpec(Industry::Get(index)->type)->grf_prop.grffile->grfid : 0; }
365 
366  uint Resolve(uint index, uint var, uint param, bool *avail) const override
367  {
368  Industry *i = Industry::Get(index);
370  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
371  }
372 
373  uint GetPSASize(uint index, uint32 grfid) const override { return cpp_lengthof(PersistentStorage, storage); }
374 
375  const int32 *GetPSAFirstPosition(uint index, uint32 grfid) const override
376  {
377  const Industry *i = (const Industry *)this->GetInstance(index);
378  if (i->psa == nullptr) return nullptr;
379  return (int32 *)(&i->psa->storage);
380  }
381 };
382 
383 static const NIFeature _nif_industry = {
384  _nip_industries,
385  _nic_industries,
386  _niv_industries,
387  new NIHIndustry(),
388 };
389 
390 
391 /*** NewGRF objects ***/
392 
393 #define NICO(cb_id, bit) NIC(cb_id, ObjectSpec, callback_mask, bit)
394 static const NICallback _nic_objects[] = {
402  NIC_END()
403 };
404 
405 static const NIVariable _niv_objects[] = {
406  NIV(0x40, "relative position"),
407  NIV(0x41, "tile information"),
408  NIV(0x42, "construction date"),
409  NIV(0x43, "animation counter"),
410  NIV(0x44, "object founder"),
411  NIV(0x45, "get town zone and Manhattan distance of closest town"),
412  NIV(0x46, "get square of Euclidean distance of closes town"),
413  NIV(0x47, "colour"),
414  NIV(0x48, "view"),
415  NIV(0x60, "get object ID at offset"),
416  NIV(0x61, "get random tile bits at offset"),
417  NIV(0x62, "land info of nearby tiles"),
418  NIV(0x63, "animation stage of nearby tiles"),
419  NIV(0x64, "distance on nearest object with given type"),
420  NIV_END()
421 };
422 
423 class NIHObject : public NIHelper {
424  bool IsInspectable(uint index) const override { return ObjectSpec::GetByTile(index)->grf_prop.grffile != nullptr; }
425  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Object::GetByTile(index)->town->index); }
426  const void *GetInstance(uint index)const override { return Object::GetByTile(index); }
427  const void *GetSpec(uint index) const override { return ObjectSpec::GetByTile(index); }
428  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT, INVALID_STRING_ID, index); }
429  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? ObjectSpec::GetByTile(index)->grf_prop.grffile->grfid : 0; }
430 
431  uint Resolve(uint index, uint var, uint param, bool *avail) const override
432  {
434  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
435  }
436 };
437 
438 static const NIFeature _nif_object = {
439  nullptr,
440  _nic_objects,
441  _niv_objects,
442  new NIHObject(),
443 };
444 
445 
446 /*** NewGRF rail types ***/
447 
448 static const NIVariable _niv_railtypes[] = {
449  NIV(0x40, "terrain type"),
450  NIV(0x41, "enhanced tunnels"),
451  NIV(0x42, "level crossing status"),
452  NIV(0x43, "construction date"),
453  NIV(0x44, "town zone"),
454  NIV_END()
455 };
456 
457 class NIHRailType : public NIHelper {
458  bool IsInspectable(uint index) const override { return true; }
459  uint GetParent(uint index) const override { return UINT32_MAX; }
460  const void *GetInstance(uint index)const override { return nullptr; }
461  const void *GetSpec(uint index) const override { return nullptr; }
462  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE, INVALID_STRING_ID, index); }
463  uint32 GetGRFID(uint index) const override { return 0; }
464 
465  uint Resolve(uint index, uint var, uint param, bool *avail) const override
466  {
467  /* There is no unique GRFFile for the tile. Multiple GRFs can define different parts of the railtype.
468  * However, currently the NewGRF Debug GUI does not display variables depending on the GRF (like 0x7F) anyway. */
469  RailTypeResolverObject ro(nullptr, index, TCX_NORMAL, RTSG_END);
470  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
471  }
472 };
473 
474 static const NIFeature _nif_railtype = {
475  nullptr,
476  nullptr,
477  _niv_railtypes,
478  new NIHRailType(),
479 };
480 
481 
482 /*** NewGRF airport tiles ***/
483 
484 #define NICAT(cb_id, bit) NIC(cb_id, AirportTileSpec, callback_mask, bit)
485 static const NICallback _nic_airporttiles[] = {
490  NIC_END()
491 };
492 
493 class NIHAirportTile : public NIHelper {
494  bool IsInspectable(uint index) const override { return AirportTileSpec::Get(GetAirportGfx(index))->grf_prop.grffile != nullptr; }
495  uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Station::GetByTile(index)->town->index); }
496  const void *GetInstance(uint index)const override { return nullptr; }
497  const void *GetSpec(uint index) const override { return AirportTileSpec::Get(GetAirportGfx(index)); }
498  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_STATION_NAME, GetStationIndex(index), index); }
499  uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? AirportTileSpec::Get(GetAirportGfx(index))->grf_prop.grffile->grfid : 0; }
500 
501  uint Resolve(uint index, uint var, uint param, bool *avail) const override
502  {
504  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
505  }
506 };
507 
508 static const NIFeature _nif_airporttile = {
509  nullptr,
510  _nic_airporttiles,
511  _niv_industrytiles, // Yes, they share this (at least now)
512  new NIHAirportTile(),
513 };
514 
515 
516 /*** NewGRF towns ***/
517 
518 static const NIVariable _niv_towns[] = {
519  NIV(0x40, "larger town effect on this town"),
520  NIV(0x41, "town index"),
521  NIV(0x82, "population"),
522  NIV(0x94, "zone radius 0"),
523  NIV(0x96, "zone radius 1"),
524  NIV(0x98, "zone radius 2"),
525  NIV(0x9A, "zone radius 3"),
526  NIV(0x9C, "zone radius 4"),
527  NIV(0xB6, "number of buildings"),
528  NIV_END()
529 };
530 
531 class NIHTown : public NIHelper {
532  bool IsInspectable(uint index) const override { return Town::IsValidID(index); }
533  uint GetParent(uint index) const override { return UINT32_MAX; }
534  const void *GetInstance(uint index)const override { return Town::Get(index); }
535  const void *GetSpec(uint index) const override { return nullptr; }
536  void SetStringParameters(uint index) const override { this->SetSimpleStringParameters(STR_TOWN_NAME, index); }
537  uint32 GetGRFID(uint index) const override { return 0; }
538  bool PSAWithParameter() const override { return true; }
539  uint GetPSASize(uint index, uint32 grfid) const override { return cpp_lengthof(PersistentStorage, storage); }
540 
541  uint Resolve(uint index, uint var, uint param, bool *avail) const override
542  {
543  TownResolverObject ro(nullptr, Town::Get(index), true);
544  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
545  }
546 
547  const int32 *GetPSAFirstPosition(uint index, uint32 grfid) const override
548  {
549  Town *t = Town::Get(index);
550 
551  std::list<PersistentStorage *>::iterator iter;
552  for (iter = t->psa_list.begin(); iter != t->psa_list.end(); iter++) {
553  if ((*iter)->grfid == grfid) return (int32 *)(&(*iter)->storage[0]);
554  }
555 
556  return nullptr;
557  }
558 };
559 
560 static const NIFeature _nif_town = {
561  nullptr,
562  nullptr,
563  _niv_towns,
564  new NIHTown(),
565 };
566 
567 /*** NewGRF road types ***/
568 
569 static const NIVariable _niv_roadtypes[] = {
570  NIV(0x40, "terrain type"),
571  NIV(0x41, "enhanced tunnels"),
572  NIV(0x42, "level crossing status"),
573  NIV(0x43, "construction date"),
574  NIV(0x44, "town zone"),
575  NIV_END()
576 };
577 
578 class NIHRoadType : public NIHelper {
579  bool IsInspectable(uint index) const override { return true; }
580  uint GetParent(uint index) const override { return UINT32_MAX; }
581  const void *GetInstance(uint index) const override { return nullptr; }
582  const void *GetSpec(uint index) const override { return nullptr; }
583  void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE, INVALID_STRING_ID, index); }
584  uint32 GetGRFID(uint index) const override { return 0; }
585 
586  uint Resolve(uint index, uint var, uint param, bool *avail) const override
587  {
588  /* There is no unique GRFFile for the tile. Multiple GRFs can define different parts of the railtype.
589  * However, currently the NewGRF Debug GUI does not display variables depending on the GRF (like 0x7F) anyway. */
590  RoadTypeResolverObject ro(nullptr, index, TCX_NORMAL, ROTSG_END);
591  return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, avail);
592  }
593 };
594 
595 static const NIFeature _nif_roadtype = {
596  nullptr,
597  nullptr,
598  _niv_roadtypes,
599  new NIHRoadType(),
600 };
601 
602 static const NIFeature _nif_tramtype = {
603  nullptr,
604  nullptr,
605  _niv_roadtypes,
606  new NIHRoadType(),
607 };
608 
610 static const NIFeature * const _nifeatures[] = {
611  &_nif_vehicle, // GSF_TRAINS
612  &_nif_vehicle, // GSF_ROADVEHICLES
613  &_nif_vehicle, // GSF_SHIPS
614  &_nif_vehicle, // GSF_AIRCRAFT
615  &_nif_station, // GSF_STATIONS
616  nullptr, // GSF_CANALS (no callbacks/action2 implemented)
617  nullptr, // GSF_BRIDGES (no callbacks/action2)
618  &_nif_house, // GSF_HOUSES
619  nullptr, // GSF_GLOBALVAR (has no "physical" objects)
620  &_nif_industrytile, // GSF_INDUSTRYTILES
621  &_nif_industry, // GSF_INDUSTRIES
622  nullptr, // GSF_CARGOES (has no "physical" objects)
623  nullptr, // GSF_SOUNDFX (has no "physical" objects)
624  nullptr, // GSF_AIRPORTS (feature not implemented)
625  nullptr, // GSF_SIGNALS (feature not implemented)
626  &_nif_object, // GSF_OBJECTS
627  &_nif_railtype, // GSF_RAILTYPES
628  &_nif_airporttile, // GSF_AIRPORTTILES
629  &_nif_roadtype, // GSF_ROADTYPES
630  &_nif_tramtype, // GSF_TRAMTYPES
631  &_nif_town, // GSF_FAKE_TOWNS
632 };
633 static_assert(lengthof(_nifeatures) == GSF_FAKE_END);
NIHHouse::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:201
ObjectResolverObject
A resolver object to be used with feature 0F spritegroups.
Definition: newgrf_object.h:123
CBID_OBJECT_COLOUR
@ CBID_OBJECT_COLOUR
Called to determine the colour of a town building.
Definition: newgrf_callbacks.h:266
VehicleResolverObject::WO_CACHED
@ WO_CACHED
Resolve wagon overrides using TrainCache::cached_override.
Definition: newgrf_engine.h:52
CBM_OBJ_ANIMATION_SPEED
@ CBM_OBJ_ANIMATION_SPEED
decides animation speed
Definition: newgrf_callbacks.h:384
IndustryTileResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_industrytiles.h:47
NIHTown::GetPSAFirstPosition
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
Definition: newgrf_debug_data.h:547
NIHRailType::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:460
CBM_IND_CARGO_SUFFIX
@ CBM_IND_CARGO_SUFFIX
cargo sub-type display
Definition: newgrf_callbacks.h:354
Pool::PoolItem<&_vehicle_pool >::Get
static Titem * Get(size_t index)
Returns Titem with given index.
Definition: pool_type.hpp:329
CBM_AIRT_ANIM_NEXT_FRAME
@ CBM_AIRT_ANIM_NEXT_FRAME
decides next animation frame
Definition: newgrf_callbacks.h:394
CBID_OBJECT_LAND_SLOPE_CHECK
@ CBID_OBJECT_LAND_SLOPE_CHECK
Callback done for each tile of an object to check the slope.
Definition: newgrf_callbacks.h:254
NIHTown::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:535
CBID_OBJECT_ANIMATION_NEXT_FRAME
@ CBID_OBJECT_ANIMATION_NEXT_FRAME
Determine the next animation frame for a house.
Definition: newgrf_callbacks.h:257
NIHHouse
Definition: newgrf_debug_data.h:200
NIHHouse::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:202
GetIndustryGfx
static IndustryGfx GetIndustryGfx(TileIndex t)
Get the industry graphics ID for the given industry tile.
Definition: industry_map.h:137
CBM_HOUSE_CARGO_ACCEPTANCE
@ CBM_HOUSE_CARGO_ACCEPTANCE
decides amount of cargo acceptance
Definition: newgrf_callbacks.h:319
RailTypeResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_railtype.h:44
NIHAirportTile::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:501
CBID_VEHICLE_START_STOP_CHECK
@ CBID_VEHICLE_START_STOP_CHECK
Called when the company (or AI) tries to start or stop a vehicle.
Definition: newgrf_callbacks.h:141
NIHObject::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:431
ObjectSpec::grf_prop
GRFFilePropsBase< 2 > grf_prop
Properties related the the grf file.
Definition: newgrf_object.h:60
NIHIndustryTile::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:256
NIHIndustryTile::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:258
CBM_NO_BIT
static const int CBM_NO_BIT
Mask to show no bit needs to be enabled for the callback.
Definition: newgrf_debug_gui.cpp:106
ObjectResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_object.h:131
CBID_VEHICLE_VISUAL_EFFECT
@ CBID_VEHICLE_VISUAL_EFFECT
Visual effects and wagon power.
Definition: newgrf_callbacks.h:30
NIHIndustry::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:362
NIHAirportTile
Definition: newgrf_debug_data.h:493
CBID_VEHICLE_ARTIC_ENGINE
@ CBID_VEHICLE_ARTIC_ENGINE
Builds articulated engines for trains and RVs.
Definition: newgrf_callbacks.h:51
CBID_HOUSE_ANIMATION_SPEED
@ CBID_HOUSE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
Definition: newgrf_callbacks.h:81
CBID_VEHICLE_CARGO_SUFFIX
@ CBID_VEHICLE_CARGO_SUFFIX
Determine the cargo "suffixes" for each refit possibility of a cargo.
Definition: newgrf_callbacks.h:60
CBM_OBJ_ANIMATION_NEXT_FRAME
@ CBM_OBJ_ANIMATION_NEXT_FRAME
decides next animation frame
Definition: newgrf_callbacks.h:383
CBID_INDUSTRY_PRODUCTION_CHANGE
@ CBID_INDUSTRY_PRODUCTION_CHANGE
Called on production changes, so it can be adjusted.
Definition: newgrf_callbacks.h:111
CBID_STATION_AVAILABILITY
@ CBID_STATION_AVAILABILITY
Determine whether a newstation should be made available to build.
Definition: newgrf_callbacks.h:39
CBID_VEHICLE_MODIFY_PROPERTY
@ CBID_VEHICLE_MODIFY_PROPERTY
Called to modify various vehicle properties.
Definition: newgrf_callbacks.h:159
CBID_INDTILE_CARGO_ACCEPTANCE
@ CBID_INDTILE_CARGO_ACCEPTANCE
Called to query the cargo acceptance of the industry tile.
Definition: newgrf_callbacks.h:117
NIHIndustry::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:364
NICallback
Representation of the available callbacks with information on when they actually apply.
Definition: newgrf_debug_gui.cpp:98
CBM_INDT_SHAPE_CHECK
@ CBM_INDT_SHAPE_CHECK
decides slope suitability
Definition: newgrf_callbacks.h:373
NIHVehicle::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:79
Pool::PoolItem::index
Tindex index
Index of this pool item.
Definition: pool_type.hpp:227
NIHRoadType::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:584
Object::GetByTile
static Object * GetByTile(TileIndex tile)
Get the object associated with a tile.
Definition: object_cmd.cpp:50
HouseResolverObject
Resolver object to be used for houses (feature 07 spritegroups).
Definition: newgrf_house.h:51
NIHRoadType::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:581
CBM_VEHICLE_SOUND_EFFECT
@ CBM_VEHICLE_SOUND_EFFECT
Vehicle uses custom sound effects.
Definition: newgrf_callbacks.h:296
NIHObject
Definition: newgrf_debug_data.h:423
CBID_HOUSE_WATCHED_CARGO_ACCEPTED
@ CBID_HOUSE_WATCHED_CARGO_ACCEPTED
Called when a cargo type specified in property 20 is accepted.
Definition: newgrf_callbacks.h:209
StationResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_station.h:60
NIHVehicle::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:77
CBID_INDUSTRY_PROBABILITY
@ CBID_INDUSTRY_PROBABILITY
Called to determine if the given industry type is available.
Definition: newgrf_callbacks.h:87
CBM_STATION_SLOPE_CHECK
@ CBM_STATION_SLOPE_CHECK
Check slope of new station tiles.
Definition: newgrf_callbacks.h:307
CBID_HOUSE_CUSTOM_NAME
@ CBID_HOUSE_CUSTOM_NAME
Called on the Get Tile Description for an house tile.
Definition: newgrf_callbacks.h:224
NIHRoadType::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:579
CBM_INDT_ACCEPT_CARGO
@ CBM_INDT_ACCEPT_CARGO
decides accepted types
Definition: newgrf_callbacks.h:372
NIHAirportTile::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:496
CBM_STATION_ANIMATION_NEXT_FRAME
@ CBM_STATION_ANIMATION_NEXT_FRAME
Use a custom next frame callback.
Definition: newgrf_callbacks.h:305
CBID_INDTILE_ANIM_START_STOP
@ CBID_INDTILE_ANIM_START_STOP
Called for periodically starting or stopping the animation.
Definition: newgrf_callbacks.h:99
NIHIndustry::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:363
CBID_INDTILE_DRAW_FOUNDATIONS
@ CBID_INDTILE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for industry tile.
Definition: newgrf_callbacks.h:135
NIHAirportTile::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:494
CBM_HOUSE_DESTRUCTION
@ CBM_HOUSE_DESTRUCTION
trigger destruction of building
Definition: newgrf_callbacks.h:321
CBM_VEHICLE_CARGO_SUFFIX
@ CBM_VEHICLE_CARGO_SUFFIX
Show suffix after cargo name.
Definition: newgrf_callbacks.h:294
Vehicle
Vehicle data structure.
Definition: vehicle_base.h:222
Industry
Defines the internal data of a functional industry.
Definition: industry.h:66
NIHIndustryTile::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:251
NIHStation::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:140
CBID_HOUSE_DRAW_FOUNDATIONS
@ CBID_HOUSE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for house tile.
Definition: newgrf_callbacks.h:227
CBID_INDUSTRY_OUTPUT_CARGO_TYPES
@ CBID_INDUSTRY_OUTPUT_CARGO_TYPES
Customize the output cargo types of a newly build industry.
Definition: newgrf_callbacks.h:221
CBID_INDTILE_ACCEPT_CARGO
@ CBID_INDTILE_ACCEPT_CARGO
Called to determine which cargoes an industry should accept.
Definition: newgrf_callbacks.h:120
NIHRailType::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:461
CBM_VEHICLE_ARTIC_ENGINE
@ CBM_VEHICLE_ARTIC_ENGINE
Add articulated engines (trains and road vehicles)
Definition: newgrf_callbacks.h:293
NIHelper
Helper class to wrap some functionality/queries in.
Definition: newgrf_debug_gui.cpp:115
CBID_INDUSTRY_SPECIAL_EFFECT
@ CBID_INDUSTRY_SPECIAL_EFFECT
Called to determine industry special effects.
Definition: newgrf_callbacks.h:174
NIHTown::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:533
CBM_INDT_AUTOSLOPE
@ CBM_INDT_AUTOSLOPE
decides allowance of autosloping
Definition: newgrf_callbacks.h:375
CBM_HOUSE_PRODUCE_CARGO
@ CBM_HOUSE_PRODUCE_CARGO
custom cargo production
Definition: newgrf_callbacks.h:323
GetTownIndex
static TownID GetTownIndex(TileIndex t)
Get the index of which town this house/street is attached to.
Definition: town_map.h:22
CBM_IND_FUND_MORE_TEXT
@ CBM_IND_FUND_MORE_TEXT
additional text in fund window
Definition: newgrf_callbacks.h:355
NIProperty
Representation of the data from a NewGRF property.
Definition: newgrf_debug_gui.cpp:85
CBM_HOUSE_CONSTRUCTION_STATE_CHANGE
@ CBM_HOUSE_CONSTRUCTION_STATE_CHANGE
change animation when construction state changes
Definition: newgrf_callbacks.h:317
NIHTown::PSAWithParameter
bool PSAWithParameter() const override
Used to decide if the PSA needs a parameter or not.
Definition: newgrf_debug_data.h:538
NIHRailType::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:459
VSG_SCOPE_SELF
@ VSG_SCOPE_SELF
Resolved object itself.
Definition: newgrf_spritegroup.h:103
NIHObject::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:424
NIHHouse::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:204
CBID_INDUSTRY_FUND_MORE_TEXT
@ CBID_INDUSTRY_FUND_MORE_TEXT
Called to determine more text in the fund industry window.
Definition: newgrf_callbacks.h:165
RoadTypeResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_roadtype.h:35
NIHTown::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:536
NIHObject::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:426
CBM_IND_PROBABILITY
@ CBM_IND_PROBABILITY
industry availability/probability callback
Definition: newgrf_callbacks.h:348
CBID_VEHICLE_ADDITIONAL_TEXT
@ CBID_VEHICLE_ADDITIONAL_TEXT
This callback is called from vehicle purchase lists.
Definition: newgrf_callbacks.h:93
NIHObject::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:425
NIHRoadType::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:582
CBM_VEHICLE_LENGTH
@ CBM_VEHICLE_LENGTH
Vehicle length (trains and road vehicles)
Definition: newgrf_callbacks.h:290
GetGrfSpecFeature
GrfSpecFeature GetGrfSpecFeature(TileIndex tile)
Get the GrfSpecFeature associated with the tile.
Definition: newgrf_debug_gui.cpp:768
GetHouseType
static HouseID GetHouseType(TileIndex t)
Get the type of this house, which is an index into the house spec array.
Definition: town_map.h:59
NIHRailType
Definition: newgrf_debug_data.h:457
CBID_INDUSTRY_LOCATION
@ CBID_INDUSTRY_LOCATION
Called to determine if the given industry can be built on specific area.
Definition: newgrf_callbacks.h:108
CBM_HOUSE_ANIMATION_NEXT_FRAME
@ CBM_HOUSE_ANIMATION_NEXT_FRAME
decides next animation frame
Definition: newgrf_callbacks.h:315
CBM_OBJ_FUND_MORE_TEXT
@ CBM_OBJ_FUND_MORE_TEXT
additional text in fund window
Definition: newgrf_callbacks.h:386
CBID_HOUSE_COLOUR
@ CBID_HOUSE_COLOUR
Called to determine the colour of a town building.
Definition: newgrf_callbacks.h:75
CBID_HOUSE_DESTRUCTION
@ CBID_HOUSE_DESTRUCTION
Called periodically to determine if a house should be destroyed.
Definition: newgrf_callbacks.h:84
NIHVehicle
Definition: newgrf_debug_data.h:71
CBM_VEHICLE_LOAD_AMOUNT
@ CBM_VEHICLE_LOAD_AMOUNT
Load amount.
Definition: newgrf_callbacks.h:291
GetAirportGfx
static StationGfx GetAirportGfx(TileIndex t)
Get the station graphics of this airport tile.
Definition: station_map.h:244
NIHIndustry::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:359
Industry::location
TileArea location
Location of the industry.
Definition: industry.h:67
CBID_STATION_LAND_SLOPE_CHECK
@ CBID_STATION_LAND_SLOPE_CHECK
Callback done for each tile of a station to check the slope.
Definition: newgrf_callbacks.h:212
NIHHouse::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:206
TownResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_town.h:47
NIHRailType::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:465
Industry::GetByTile
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
Definition: industry.h:144
GSF_FAKE_TOWNS
@ GSF_FAKE_TOWNS
Fake town GrfSpecFeature for NewGRF debugging (parent scope)
Definition: newgrf.h:89
NIHRoadType::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:580
NIHIndustry::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:366
CBM_STATION_ANIMATION_SPEED
@ CBM_STATION_ANIMATION_SPEED
Customize the animation speed of the station.
Definition: newgrf_callbacks.h:306
CBID_AIRPTILE_ANIM_NEXT_FRAME
@ CBID_AIRPTILE_ANIM_NEXT_FRAME
Called to determine airport tile next animation frame.
Definition: newgrf_callbacks.h:239
Industry::type
IndustryType type
type of industry.
Definition: industry.h:83
CBID_VEHICLE_SOUND_EFFECT
@ CBID_VEHICLE_SOUND_EFFECT
Called to play a special sound effect.
Definition: newgrf_callbacks.h:147
IndustryTileResolverObject
Resolver for industry tiles.
Definition: newgrf_industrytiles.h:39
CBID_VEHICLE_AUTOREPLACE_SELECTION
@ CBID_VEHICLE_AUTOREPLACE_SELECTION
Return the vehicles this given vehicle can be "upgraded" to.
Definition: newgrf_callbacks.h:150
IndustriesResolverObject
Resolver for industries.
Definition: newgrf_industries.h:42
CBM_IND_PRODUCTION_CHANGE
@ CBM_IND_PRODUCTION_CHANGE
controls random production change
Definition: newgrf_callbacks.h:352
Vehicle::engine_type
EngineID engine_type
The type of engine used for this vehicle.
Definition: vehicle_base.h:297
_nifeatures
static const NIFeature *const _nifeatures[]
Table with all NIFeatures.
Definition: newgrf_debug_data.h:610
TownResolverObject
Resolver of town properties.
Definition: newgrf_town.h:42
NIT_CARGO
@ NIT_CARGO
The property is a cargo.
Definition: newgrf_debug_gui.cpp:79
CBID_HOUSE_ALLOW_CONSTRUCTION
@ CBID_HOUSE_ALLOW_CONSTRUCTION
Determine whether the house can be built on the specified tile.
Definition: newgrf_callbacks.h:54
CBM_HOUSE_ACCEPT_CARGO
@ CBM_HOUSE_ACCEPT_CARGO
decides accepted types
Definition: newgrf_callbacks.h:322
CBID_INDUSTRY_MONTHLYPROD_CHANGE
@ CBID_INDUSTRY_MONTHLYPROD_CHANGE
Called monthly on production changes, so it can be adjusted more frequently.
Definition: newgrf_callbacks.h:153
PersistentStorage
Class for pooled persistent storage of data.
Definition: newgrf_storage.h:221
NIHAirportTile::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:497
CBID_HOUSE_CONSTRUCTION_STATE_CHANGE
@ CBID_HOUSE_CONSTRUCTION_STATE_CHANGE
Called whenever the construction state of a house changes.
Definition: newgrf_callbacks.h:69
CBM_INDT_DRAW_FOUNDATIONS
@ CBM_INDT_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
Definition: newgrf_callbacks.h:374
CBM_IND_LOCATION
@ CBM_IND_LOCATION
check industry construction on given area
Definition: newgrf_callbacks.h:351
CBM_IND_INPUT_CARGO_TYPES
@ CBM_IND_INPUT_CARGO_TYPES
customize the cargoes the industry requires
Definition: newgrf_callbacks.h:360
GSF_FAKE_END
@ GSF_FAKE_END
End of the fake features.
Definition: newgrf.h:90
CBID_INDUSTRY_INPUT_CARGO_TYPES
@ CBID_INDUSTRY_INPUT_CARGO_TYPES
Customize the input cargo types of a newly build industry.
Definition: newgrf_callbacks.h:218
AirportTileSpec::GetByTile
static const AirportTileSpec * GetByTile(TileIndex tile)
Retrieve airport tile spec for the given airport tile.
Definition: newgrf_airporttiles.cpp:49
NIHVehicle::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:75
CBM_OBJ_COLOUR
@ CBM_OBJ_COLOUR
decide the colour of the building
Definition: newgrf_callbacks.h:385
CBM_HOUSE_COLOUR
@ CBM_HOUSE_COLOUR
decide the colour of the building
Definition: newgrf_callbacks.h:318
CBM_HOUSE_ANIMATION_SPEED
@ CBM_HOUSE_ANIMATION_SPEED
decides animation speed
Definition: newgrf_callbacks.h:320
NIHRailType::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:463
NIFeature
Container for all information for a given feature.
Definition: newgrf_debug_gui.cpp:232
TCX_NORMAL
@ TCX_NORMAL
Nothing special.
Definition: newgrf_commons.h:25
NIHObject::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:428
NIHTown::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:541
CBID_HOUSE_ANIMATION_START_STOP
@ CBID_HOUSE_ANIMATION_START_STOP
Called for periodically starting or stopping the animation.
Definition: newgrf_callbacks.h:66
PersistentStorageArray::storage
TYPE storage[SIZE]
Memory to for the storage array.
Definition: newgrf_storage.h:67
CBM_IND_SPECIAL_EFFECT
@ CBM_IND_SPECIAL_EFFECT
control special effects
Definition: newgrf_callbacks.h:357
CBID_INDUSTRY_CARGO_SUFFIX
@ CBID_INDUSTRY_CARGO_SUFFIX
Called to determine text to display after cargo name.
Definition: newgrf_callbacks.h:162
NIHVehicle::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:76
NIHIndustryTile::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:254
CBM_STATION_AVAIL
@ CBM_STATION_AVAIL
Availability of station in construction window.
Definition: newgrf_callbacks.h:303
CBID_STATION_ANIM_NEXT_FRAME
@ CBID_STATION_ANIM_NEXT_FRAME
Called to determine station tile next animation frame.
Definition: newgrf_callbacks.h:188
CBID_HOUSE_CARGO_ACCEPTANCE
@ CBID_HOUSE_CARGO_ACCEPTANCE
Called to decide how much cargo a town building can accept.
Definition: newgrf_callbacks.h:78
CBID_STATION_TILE_LAYOUT
@ CBID_STATION_TILE_LAYOUT
Called when building a station to customize the tile layout.
Definition: newgrf_callbacks.h:96
NIHObject::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:429
NIHAirportTile::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:498
NIHStation
Definition: newgrf_debug_data.h:135
IndustryTileSpec::grf_prop
GRFFileProps grf_prop
properties related to the grf file
Definition: industrytype.h:172
GetInspectWindowNumber
static uint GetInspectWindowNumber(GrfSpecFeature feature, uint index)
Get the window number for the inspect window given a feature and index.
Definition: newgrf_debug_gui.cpp:67
CBM_HOUSE_ANIMATION_START_STOP
@ CBM_HOUSE_ANIMATION_START_STOP
periodically start/stop the animation
Definition: newgrf_callbacks.h:316
NIHelper::SetObjectAtStringParameters
void SetObjectAtStringParameters(StringID string, uint32 index, TileIndex tile) const
Helper to make setting the strings easier for objects at a specific tile.
Definition: newgrf_debug_gui.cpp:221
CBM_VEHICLE_REFIT_CAPACITY
@ CBM_VEHICLE_REFIT_CAPACITY
Cargo capacity after refit.
Definition: newgrf_callbacks.h:292
CBM_INDT_ANIM_NEXT_FRAME
@ CBM_INDT_ANIM_NEXT_FRAME
decides next animation frame
Definition: newgrf_callbacks.h:369
NIHStation::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:139
CBID_OBJECT_AUTOSLOPE
@ CBID_OBJECT_AUTOSLOPE
Called to determine if one can alter the ground below an object tile.
Definition: newgrf_callbacks.h:272
NIHRailType::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:462
HouseResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_house.h:59
NIHIndustry
Definition: newgrf_debug_data.h:358
NIHIndustryTile::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:255
NIHAirportTile::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:499
CBM_INDT_ANIM_SPEED
@ CBM_INDT_ANIM_SPEED
decides animation speed
Definition: newgrf_callbacks.h:370
NIHHouse::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:205
NIHIndustryTile
Definition: newgrf_debug_data.h:250
CBID_INDTILE_ANIM_NEXT_FRAME
@ CBID_INDTILE_ANIM_NEXT_FRAME
Called to determine industry tile next animation frame.
Definition: newgrf_callbacks.h:102
CBID_VEHICLE_COLOUR_MAPPING
@ CBID_VEHICLE_COLOUR_MAPPING
Called to determine if a specific colour map should be used for a vehicle instead of the default live...
Definition: newgrf_callbacks.h:126
CBM_IND_MONTHLYPROD_CHANGE
@ CBM_IND_MONTHLYPROD_CHANGE
controls monthly random production change
Definition: newgrf_callbacks.h:353
CBID_INDUSTRY_PROD_CHANGE_BUILD
@ CBID_INDUSTRY_PROD_CHANGE_BUILD
Called when industry is built to set initial production level.
Definition: newgrf_callbacks.h:278
NIHStation::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:137
NIHIndustry::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:360
RoadTypeResolverObject
Resolver object for road types.
Definition: newgrf_roadtype.h:30
CBID_INDUSTRY_REFUSE_CARGO
@ CBID_INDUSTRY_REFUSE_CARGO
Called to determine if the industry can still accept or refuse more cargo arrival.
Definition: newgrf_callbacks.h:180
CBM_OBJ_SLOPE_CHECK
@ CBM_OBJ_SLOPE_CHECK
decides slope suitability
Definition: newgrf_callbacks.h:382
CBM_AIRT_DRAW_FOUNDATIONS
@ CBM_AIRT_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
Definition: newgrf_callbacks.h:397
CBID_AIRPTILE_ANIM_START_STOP
@ CBID_AIRPTILE_ANIM_START_STOP
Called for periodically starting or stopping the animation.
Definition: newgrf_callbacks.h:236
NIHTown::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:534
NIHIndustry::GetPSAFirstPosition
const int32 * GetPSAFirstPosition(uint index, uint32 grfid) const override
Gets the first position of the array containing the persistent storage.
Definition: newgrf_debug_data.h:375
NIHHouse::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:208
CBID_AIRPTILE_DRAW_FOUNDATIONS
@ CBID_AIRPTILE_DRAW_FOUNDATIONS
Called to determine the type (if any) of foundation to draw for an airport tile.
Definition: newgrf_callbacks.h:233
CBM_VEHICLE_VISUAL_EFFECT
@ CBM_VEHICLE_VISUAL_EFFECT
Visual effects and wagon power (trains, road vehicles and ships)
Definition: newgrf_callbacks.h:289
NIHIndustry::GetPSASize
uint GetPSASize(uint index, uint32 grfid) const override
Allows to know the size of the persistent storage.
Definition: newgrf_debug_data.h:373
NIHIndustry::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:361
CBID_STATION_ANIM_START_STOP
@ CBID_STATION_ANIM_START_STOP
Called for periodically starting or stopping the animation.
Definition: newgrf_callbacks.h:185
GetIndustryTileSpec
const IndustryTileSpec * GetIndustryTileSpec(IndustryGfx gfx)
Accessor for array _industry_tile_specs.
Definition: industry_cmd.cpp:135
OrthogonalTileArea::tile
TileIndex tile
The base tile of the area.
Definition: tilearea_type.h:17
NIHVehicle::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:73
CBM_INDT_CARGO_ACCEPTANCE
@ CBM_INDT_CARGO_ACCEPTANCE
decides amount of cargo acceptance
Definition: newgrf_callbacks.h:371
CBM_OBJ_AUTOSLOPE
@ CBM_OBJ_AUTOSLOPE
decides allowance of autosloping
Definition: newgrf_callbacks.h:387
NIHStation::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:141
GetIndustryIndex
static IndustryID GetIndustryIndex(TileIndex t)
Get the industry ID of the given tile.
Definition: industry_map.h:63
CBM_HOUSE_DENY_DESTRUCTION
@ CBM_HOUSE_DENY_DESTRUCTION
conditional protection
Definition: newgrf_callbacks.h:324
ObjectSpec::GetByTile
static const ObjectSpec * GetByTile(TileIndex tile)
Get the specification associated with a tile.
Definition: newgrf_object.cpp:50
CBM_IND_REFUSE_CARGO
@ CBM_IND_REFUSE_CARGO
option out of accepting cargo
Definition: newgrf_callbacks.h:358
NIHHouse::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:203
IndustrySpec::grf_prop
GRFFileProps grf_prop
properties related to the grf file
Definition: industrytype.h:141
CBID_OBJECT_ANIMATION_START_STOP
@ CBID_OBJECT_ANIMATION_START_STOP
Called for periodically starting or stopping the animation.
Definition: newgrf_callbacks.h:260
GetStationIndex
static StationID GetStationIndex(TileIndex t)
Get StationID from a tile.
Definition: station_map.h:28
SpecializedStation< Station, false >::GetByTile
static Station * GetByTile(TileIndex tile)
Get the station belonging to a specific tile.
Definition: base_station_base.h:238
NIHRoadType::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:586
CBID_INDTILE_AUTOSLOPE
@ CBID_INDTILE_AUTOSLOPE
Called to determine if industry can alter the ground below industry tile.
Definition: newgrf_callbacks.h:177
NIHVehicle::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:74
VehicleResolverObject
Resolver for a vehicle (chain)
Definition: newgrf_engine.h:47
CBID_STATION_ANIMATION_SPEED
@ CBID_STATION_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
Definition: newgrf_callbacks.h:191
CBM_IND_WINDOW_MORE_TEXT
@ CBM_IND_WINDOW_MORE_TEXT
additional text in industry window
Definition: newgrf_callbacks.h:356
ScopeResolver::GetVariable
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const
Get a variable value.
Definition: newgrf_spritegroup.cpp:123
NIHIndustryTile::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:252
CBID_OBJECT_ANIMATION_SPEED
@ CBID_OBJECT_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
Definition: newgrf_callbacks.h:263
NIHTown::GetGRFID
uint32 GetGRFID(uint index) const override
Get the GRFID of the file that includes this item.
Definition: newgrf_debug_data.h:537
CBID_HOUSE_PRODUCE_CARGO
@ CBID_HOUSE_PRODUCE_CARGO
Called to determine how much cargo a town building produces.
Definition: newgrf_callbacks.h:129
lengthof
#define lengthof(x)
Return the length of an fixed size array.
Definition: stdafx.h:369
Town
Town data structure.
Definition: town.h:50
StationSpec::grf_prop
GRFFilePropsBase< NUM_CARGO+3 > grf_prop
Properties related the the grf file.
Definition: newgrf_station.h:124
CBID_VEHICLE_REFIT_CAPACITY
@ CBID_VEHICLE_REFIT_CAPACITY
Refit capacity, the passed vehicle needs to have its ->cargo_type set to the cargo we are refitting t...
Definition: newgrf_callbacks.h:48
CBID_INDUSTRY_DECIDE_COLOUR
@ CBID_INDUSTRY_DECIDE_COLOUR
Called to determine the colour of an industry.
Definition: newgrf_callbacks.h:215
IndustriesResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_industries.h:52
NIVariable
Representation on the NewGRF variables.
Definition: newgrf_debug_gui.cpp:109
NIHRoadType::SetStringParameters
void SetStringParameters(uint index) const override
Set the string parameters to write the right data for a STRINGn.
Definition: newgrf_debug_data.h:583
NIHVehicle::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:72
NIHRailType::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:458
CBID_VEHICLE_32DAY_CALLBACK
@ CBID_VEHICLE_32DAY_CALLBACK
Called for every vehicle every 32 days (not all on same date though).
Definition: newgrf_callbacks.h:144
CBM_HOUSE_AUTOSLOPE
@ CBM_HOUSE_AUTOSLOPE
decides allowance of autosloping
Definition: newgrf_callbacks.h:326
CBID_INDUSTRY_WINDOW_MORE_TEXT
@ CBID_INDUSTRY_WINDOW_MORE_TEXT
Called to determine more text in the industry window.
Definition: newgrf_callbacks.h:171
CBM_IND_DECIDE_COLOUR
@ CBM_IND_DECIDE_COLOUR
give a custom colour to newly build industries
Definition: newgrf_callbacks.h:359
CBID_VEHICLE_LOAD_AMOUNT
@ CBID_VEHICLE_LOAD_AMOUNT
Determine the amount of cargo to load per unit of time when using gradual loading.
Definition: newgrf_callbacks.h:36
StationResolverObject
Station resolver.
Definition: newgrf_station.h:50
CBID_VEHICLE_LENGTH
@ CBID_VEHICLE_LENGTH
Vehicle length, returns the amount of 1/8's the vehicle is shorter for trains and RVs.
Definition: newgrf_callbacks.h:33
AirportTileResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_airporttiles.h:51
GetIndustrySpec
const IndustrySpec * GetIndustrySpec(IndustryType thistype)
Accessor for array _industry_specs.
Definition: industry_cmd.cpp:121
CBM_IND_PROD_CHANGE_BUILD
@ CBM_IND_PROD_CHANGE_BUILD
initialise production level on construction
Definition: newgrf_callbacks.h:362
AirportTileResolverObject
Resolver for tiles of an airport.
Definition: newgrf_airporttiles.h:45
RailTypeResolverObject
Resolver object for rail types.
Definition: newgrf_railtype.h:39
CBM_VEHICLE_COLOUR_REMAP
@ CBM_VEHICLE_COLOUR_REMAP
Change colour mapping of vehicle.
Definition: newgrf_callbacks.h:295
NIHObject::GetSpec
const void * GetSpec(uint index) const override
Get (NewGRF) specs given an index.
Definition: newgrf_debug_data.h:427
Pool::PoolItem<&_town_pool >::IsValidID
static bool IsValidID(size_t index)
Tests whether given index can be used to get valid (non-nullptr) Titem.
Definition: pool_type.hpp:318
NIHTown::GetPSASize
uint GetPSASize(uint index, uint32 grfid) const override
Allows to know the size of the persistent storage.
Definition: newgrf_debug_data.h:539
CBM_HOUSE_DRAW_FOUNDATIONS
@ CBM_HOUSE_DRAW_FOUNDATIONS
decides if default foundations need to be drawn
Definition: newgrf_callbacks.h:325
NIHTown
Definition: newgrf_debug_data.h:531
BaseVehicle::type
VehicleType type
Type of vehicle.
Definition: vehicle_type.h:52
GRFFilePropsBase::grffile
const struct GRFFile * grffile
grf file that introduced this entity
Definition: newgrf_commons.h:320
CBM_STATION_SPRITE_LAYOUT
@ CBM_STATION_SPRITE_LAYOUT
Use callback to select a sprite layout to use.
Definition: newgrf_callbacks.h:304
CBID_AIRPTILE_ANIMATION_SPEED
@ CBID_AIRPTILE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
Definition: newgrf_callbacks.h:242
Industry::psa
PersistentStorage * psa
Persistent storage for NewGRF industries.
Definition: industry.h:105
CBID_INDTILE_ANIMATION_SPEED
@ CBID_INDTILE_ANIMATION_SPEED
Called to indicate how long the current animation frame should last.
Definition: newgrf_callbacks.h:105
AirportTileSpec::Get
static const AirportTileSpec * Get(StationGfx gfx)
Retrieve airport tile spec for the given airport tile.
Definition: newgrf_airporttiles.cpp:36
CBM_HOUSE_ALLOW_CONSTRUCTION
@ CBM_HOUSE_ALLOW_CONSTRUCTION
decide whether the house can be built on a given tile
Definition: newgrf_callbacks.h:314
AirportTileSpec::grf_prop
GRFFileProps grf_prop
properties related the the grf file
Definition: newgrf_airporttiles.h:72
NIHelper::SetSimpleStringParameters
void SetSimpleStringParameters(StringID string, uint32 index) const
Helper to make setting the strings easier.
Definition: newgrf_debug_gui.cpp:208
CBID_STATION_SPRITE_LAYOUT
@ CBID_STATION_SPRITE_LAYOUT
Choose a sprite layout to draw, instead of the standard 0-7 range.
Definition: newgrf_callbacks.h:42
CBID_HOUSE_DENY_DESTRUCTION
@ CBID_HOUSE_DENY_DESTRUCTION
Called to determine whether a town building can be destroyed.
Definition: newgrf_callbacks.h:194
CBID_HOUSE_ACCEPT_CARGO
@ CBID_HOUSE_ACCEPT_CARGO
Called to determine which cargoes a town building should accept.
Definition: newgrf_callbacks.h:114
cpp_lengthof
#define cpp_lengthof(base, variable)
Gets the length of an array variable within a class.
Definition: stdafx.h:401
VehicleResolverObject::GetScope
ScopeResolver * GetScope(VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0) override
Get a resolver for the scope.
Definition: newgrf_engine.cpp:350
NIHStation::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:138
HouseSpec::grf_prop
GRFFileProps grf_prop
Properties related the the grf file.
Definition: house.h:114
CBID_HOUSE_ANIMATION_NEXT_FRAME
@ CBID_HOUSE_ANIMATION_NEXT_FRAME
Determine the next animation frame for a house.
Definition: newgrf_callbacks.h:63
NIHIndustryTile::GetInstance
const void * GetInstance(uint index) const override
Get the instance given an index.
Definition: newgrf_debug_data.h:253
CBM_IND_OUTPUT_CARGO_TYPES
@ CBM_IND_OUTPUT_CARGO_TYPES
customize the cargoes the industry produces
Definition: newgrf_callbacks.h:361
NIHAirportTile::GetParent
uint GetParent(uint index) const override
Get the parent "window_number" of a given instance.
Definition: newgrf_debug_data.h:495
CBID_HOUSE_AUTOSLOPE
@ CBID_HOUSE_AUTOSLOPE
Called to determine if one can alter the ground below a house tile.
Definition: newgrf_callbacks.h:230
NIHStation::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:136
NIHTown::IsInspectable
bool IsInspectable(uint index) const override
Is the item with the given index inspectable?
Definition: newgrf_debug_data.h:532
INVALID_STRING_ID
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Definition: strings_type.h:17
NIHStation::Resolve
uint Resolve(uint index, uint var, uint param, bool *avail) const override
Resolve (action2) variable for a given index.
Definition: newgrf_debug_data.h:143
CBID_INDTILE_SHAPE_CHECK
@ CBID_INDTILE_SHAPE_CHECK
Called to determine if the given industry tile can be built on specific tile.
Definition: newgrf_callbacks.h:132
CBID_TRAIN_ALLOW_WAGON_ATTACH
@ CBID_TRAIN_ALLOW_WAGON_ATTACH
Determine whether a wagon can be attached to an already existing train.
Definition: newgrf_callbacks.h:72
CBID_OBJECT_FUND_MORE_TEXT
@ CBID_OBJECT_FUND_MORE_TEXT
Called to determine more text in the fund object window.
Definition: newgrf_callbacks.h:269
NIHRoadType
Definition: newgrf_debug_data.h:578
CBM_AIRT_ANIM_SPEED
@ CBM_AIRT_ANIM_SPEED
decides animation speed
Definition: newgrf_callbacks.h:395