OpenTTD Source
20241121-master-g67a0fccfad
|
GUIs for debugging NewGRFs. More...
#include "stdafx.h"
#include "core/backup_type.hpp"
#include "core/geometry_func.hpp"
#include "window_gui.h"
#include "window_func.h"
#include "random_access_file_type.h"
#include "spritecache.h"
#include "string_func.h"
#include "strings_func.h"
#include "textbuf_gui.h"
#include "vehicle_gui.h"
#include "zoom_func.h"
#include "engine_base.h"
#include "industry.h"
#include "object_base.h"
#include "station_base.h"
#include "town.h"
#include "vehicle_base.h"
#include "train.h"
#include "roadveh.h"
#include "newgrf_act5.h"
#include "newgrf_airport.h"
#include "newgrf_airporttiles.h"
#include "newgrf_debug.h"
#include "newgrf_object.h"
#include "newgrf_spritegroup.h"
#include "newgrf_station.h"
#include "newgrf_town.h"
#include "newgrf_railtype.h"
#include "newgrf_industries.h"
#include "newgrf_industrytiles.h"
#include "widgets/newgrf_debug_widget.h"
#include "table/strings.h"
#include "safeguards.h"
#include "table/newgrf_debug_data.h"
Go to the source code of this file.
Data Structures | |
struct | NIProperty |
Representation of the data from a NewGRF property. More... | |
struct | NICallback |
Representation of the available callbacks with information on when they actually apply. More... | |
struct | NIVariable |
Representation on the NewGRF variables. More... | |
class | NIHelper |
Helper class to wrap some functionality/queries in. More... | |
struct | NIFeature |
Container for all information for a given feature. More... | |
struct | NewGRFInspectWindow |
Window used for inspecting NewGRFs. More... | |
struct | SpriteAlignerWindow |
Window used for aligning sprites. More... | |
Typedefs | |
typedef const void * | NIOffsetProc(const void *b) |
Enumerations | |
enum | NIType { NIT_INT , NIT_CARGO } |
The type of a property to show. More... | |
Functions | |
static uint | GetFeatureIndex (uint window_number) |
Get the feature index related to the window number. More... | |
static uint | GetInspectWindowNumber (GrfSpecFeature feature, uint index) |
Get the window number for the inspect window given a feature and index. More... | |
static GrfSpecFeature | GetFeatureNum (uint window_number) |
Get the feature number related to the window number. More... | |
static const NIFeature * | GetFeature (uint window_number) |
Get the NIFeature related to the window number. More... | |
static const NIHelper * | GetFeatureHelper (uint window_number) |
Get the NIHelper related to the window number. More... | |
void | ShowNewGRFInspectWindow (GrfSpecFeature feature, uint index, const uint32_t grfid) |
Show the inspect window for a given feature and index. More... | |
void | InvalidateNewGRFInspectWindow (GrfSpecFeature feature, uint index) |
Invalidate the inspect window for a given feature and index. More... | |
void | DeleteNewGRFInspectWindow (GrfSpecFeature feature, uint index) |
Delete inspect window for a given feature and index. More... | |
bool | IsNewGRFInspectable (GrfSpecFeature feature, uint index) |
Can we inspect the data given a certain feature and index. More... | |
GrfSpecFeature | GetGrfSpecFeature (TileIndex tile) |
Get the GrfSpecFeature associated with the tile. More... | |
GrfSpecFeature | GetGrfSpecFeature (VehicleType type) |
Get the GrfSpecFeature associated with the vehicle. More... | |
void | ShowSpriteAlignerWindow () |
Show the window for aligning sprites. | |
Variables | |
NewGrfDebugSpritePicker | _newgrf_debug_sprite_picker = { SPM_NONE, nullptr, std::vector<SpriteID>() } |
The sprite picker. | |
static const int | CBM_NO_BIT = UINT8_MAX |
Mask to show no bit needs to be enabled for the callback. | |
static constexpr NWidgetPart | _nested_newgrf_inspect_chain_widgets [] |
static constexpr NWidgetPart | _nested_newgrf_inspect_widgets [] |
static WindowDesc | _newgrf_inspect_chain_desc (WDP_AUTO, "newgrf_inspect_chain", 400, 300, WC_NEWGRF_INSPECT, WC_NONE, 0, _nested_newgrf_inspect_chain_widgets) |
static WindowDesc | _newgrf_inspect_desc (WDP_AUTO, "newgrf_inspect", 400, 300, WC_NEWGRF_INSPECT, WC_NONE, 0, _nested_newgrf_inspect_widgets) |
static constexpr NWidgetPart | _nested_sprite_aligner_widgets [] |
static WindowDesc | _sprite_aligner_desc (WDP_AUTO, "sprite_aligner", 400, 300, WC_SPRITE_ALIGNER, WC_NONE, 0, _nested_sprite_aligner_widgets) |
GUIs for debugging NewGRFs.
Definition in file newgrf_debug_gui.cpp.
enum NIType |
The type of a property to show.
This is used to provide an appropriate representation in the GUI.
Enumerator | |
---|---|
NIT_INT | The property is a simple integer. |
NIT_CARGO | The property is a cargo. |
Definition at line 80 of file newgrf_debug_gui.cpp.
void DeleteNewGRFInspectWindow | ( | GrfSpecFeature | feature, |
uint | index | ||
) |
Delete inspect window for a given feature and index.
The index is normally an in-game location/identifier, such as a TileIndex or an IndustryID depending on the feature we want to inspect.
feature | The feature we want to delete the window for. |
index | The index/identifier of the feature to delete. |
Definition at line 729 of file newgrf_debug_gui.cpp.
References CloseWindowById(), GetInspectWindowNumber(), GSF_INVALID, InvalidateWindowData(), WC_LAND_INFO, and WC_NEWGRF_INSPECT.
Referenced by ReallyClearObjectTile(), and Town::~Town().
|
inlinestatic |
Get the NIFeature related to the window number.
window_number | The window to get the NIFeature for. |
Definition at line 249 of file newgrf_debug_gui.cpp.
References _nifeatures, GetFeatureNum(), and GSF_FAKE_END.
Referenced by NewGRFInspectWindow::DrawMainPanelWidget(), GetFeatureHelper(), and IsNewGRFInspectable().
|
inlinestatic |
Get the NIHelper related to the window number.
window_number | The window to get the NIHelper for. |
Definition at line 261 of file newgrf_debug_gui.cpp.
References GetFeature(), and NIFeature::helper.
|
inlinestatic |
Get the feature index related to the window number.
window_number | The window to get the feature index from. |
Definition at line 58 of file newgrf_debug_gui.cpp.
References GB().
|
inlinestatic |
Get the feature number related to the window number.
window_number | The window to get the feature number for. |
Definition at line 239 of file newgrf_debug_gui.cpp.
References GB().
Referenced by NewGRFInspectWindow::DrawMainPanelWidget(), GetFeature(), and NewGRFInspectWindow::HasChainIndex().
GrfSpecFeature GetGrfSpecFeature | ( | TileIndex | tile | ) |
Get the GrfSpecFeature associated with the tile.
tile | The tile to get the feature from. |
Definition at line 763 of file newgrf_debug_gui.cpp.
References GetTileType(), GSF_INVALID, and MP_RAILWAY.
Referenced by NIHVehicle::GetParent(), LandInfoWindow::IsNewGRFInspectable(), VehicleViewWindow::IsNewGRFInspectable(), LandInfoWindow::ShowNewGRFInspectWindow(), and VehicleViewWindow::ShowNewGRFInspectWindow().
GrfSpecFeature GetGrfSpecFeature | ( | VehicleType | type | ) |
Get the GrfSpecFeature associated with the vehicle.
type | The vehicle type to get the feature from. |
Definition at line 789 of file newgrf_debug_gui.cpp.
References VEH_TRAIN.
|
inlinestatic |
Get the window number for the inspect window given a feature and index.
feature | The feature we want to inspect. |
index | The index/identifier of the feature to inspect. |
Definition at line 70 of file newgrf_debug_gui.cpp.
Referenced by DeleteNewGRFInspectWindow(), NIHVehicle::GetParent(), NIHStation::GetParent(), NIHHouse::GetParent(), NIHIndustryTile::GetParent(), NIHIndustry::GetParent(), NIHObject::GetParent(), NIHAirportTile::GetParent(), NIHAirport::GetParent(), NIHRoadStop::GetParent(), InvalidateNewGRFInspectWindow(), IsNewGRFInspectable(), and ShowNewGRFInspectWindow().
void InvalidateNewGRFInspectWindow | ( | GrfSpecFeature | feature, |
uint | index | ||
) |
Invalidate the inspect window for a given feature and index.
The index is normally an in-game location/identifier, such as a TileIndex or an IndustryID depending on the feature we want to inspect.
feature | The feature we want to invalidate the window for. |
index | The index/identifier of the feature to invalidate. |
Definition at line 713 of file newgrf_debug_gui.cpp.
References GetInspectWindowNumber(), GSF_INVALID, InvalidateWindowData(), and WC_NEWGRF_INSPECT.
bool IsNewGRFInspectable | ( | GrfSpecFeature | feature, |
uint | index | ||
) |
Can we inspect the data given a certain feature and index.
The index is normally an in-game location/identifier, such as a TileIndex or an IndustryID depending on the feature we want to inspect.
feature | The feature we want to inspect. |
index | The index/identifier of the feature to inspect. |
Definition at line 751 of file newgrf_debug_gui.cpp.
References GetFeature(), GetInspectWindowNumber(), NIFeature::helper, and NIHelper::IsInspectable().
Referenced by IndustryViewWindow::IsNewGRFInspectable(), LandInfoWindow::IsNewGRFInspectable(), VehicleViewWindow::IsNewGRFInspectable(), and ShowNewGRFInspectWindow().
void ShowNewGRFInspectWindow | ( | GrfSpecFeature | feature, |
uint | index, | ||
const uint32_t | grfid | ||
) |
Show the inspect window for a given feature and index.
The index is normally an in-game location/identifier, such as a TileIndex or an IndustryID depending on the feature we want to inspect.
feature | The feature we want to inspect. |
index | The index/identifier of the feature to inspect. |
grfid | GRFID of the item opening this window, or 0 if not opened by other window. |
Definition at line 695 of file newgrf_debug_gui.cpp.
References GetInspectWindowNumber(), and IsNewGRFInspectable().
|
staticconstexpr |
Definition at line 630 of file newgrf_debug_gui.cpp.
|
staticconstexpr |
Definition at line 654 of file newgrf_debug_gui.cpp.