newgrf_debug_gui.cpp File Reference

GUIs for debugging NewGRFs. More...

#include "stdafx.h"
#include <stdarg.h>
#include "window_gui.h"
#include "window_func.h"
#include "fileio_func.h"
#include "spritecache.h"
#include "string_func.h"
#include "strings_func.h"
#include "textbuf_gui.h"
#include "engine_base.h"
#include "industry.h"
#include "object_base.h"
#include "station_base.h"
#include "town.h"
#include "vehicle_base.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 "table/strings.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...

Enumerations

enum  NIType { NIT_INT, NIT_CARGO }
 

The type of a property to show.

More...
enum  NewGRFInspectWidgets { NIW_CAPTION, NIW_PARENT, NIW_MAINPANEL, NIW_SCROLLBAR }
 

Widget numbers of settings window.

More...
enum  SpriteAlignerWidgets {
  SAW_CAPTION, SAW_PREVIOUS, SAW_GOTO, SAW_NEXT,
  SAW_UP, SAW_LEFT, SAW_RIGHT, SAW_DOWN,
  SAW_SPRITE, SAW_OFFSETS, SAW_PICKER, SAW_LIST,
  SAW_SCROLLBAR
}
 

Widgets we want (some) influence over.

More...

Functions

static uint GetFeatureIndex (uint window_number)
 Get the feature index related to the window number.
static uint GetInspectWindowNumber (GrfSpecFeature feature, uint index)
 Get the window number for the inspect window given a feature and index.
static GrfSpecFeature GetFeatureNum (uint window_number)
 Get the feature number related to the window number.
static const NIFeatureGetFeature (uint window_number)
 Get the NIFeature related to the window number.
static const NIHelperGetFeatureHelper (uint window_number)
 Get the NIHelper related to the window number.
void ShowNewGRFInspectWindow (GrfSpecFeature feature, uint index)
 Show the inspect window for a given feature and index.
void DeleteNewGRFInspectWindow (GrfSpecFeature feature, uint index)
 Delete inspect window for a given feature and index.
bool IsNewGRFInspectable (GrfSpecFeature feature, uint index)
 Can we inspect the data given a certain feature and index.
GrfSpecFeature GetGrfSpecFeature (TileIndex tile)
 Get the GrfSpecFeature associated with the tile.
GrfSpecFeature GetGrfSpecFeature (VehicleType type)
 Get the GrfSpecFeature associated with the vehicle.
void ShowSpriteAlignerWindow ()
 Show the window for aligning sprites.

Variables

NewGrfDebugSpritePicker _newgrf_debug_sprite_picker = { SPM_NONE, NULL, 0, SmallVector<SpriteID, 256>() }
static const int CBM_NO_BIT = UINT8_MAX
 Mask to show no bit needs to be enabled for the callback.
static const NWidgetPart _nested_newgrf_inspect_widgets []
static const WindowDesc _newgrf_inspect_desc (WDP_AUTO, 400, 300, WC_NEWGRF_INSPECT, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_newgrf_inspect_widgets, lengthof(_nested_newgrf_inspect_widgets))
static const NWidgetPart _nested_sprite_aligner_widgets []
static const WindowDesc _sprite_aligner_desc (WDP_AUTO, 400, 300, WC_SPRITE_ALIGNER, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_sprite_aligner_widgets, lengthof(_nested_sprite_aligner_widgets))

Detailed Description

GUIs for debugging NewGRFs.

Definition in file newgrf_debug_gui.cpp.


Enumeration Type Documentation

Widget numbers of settings window.

Enumerator:
NIW_CAPTION 

The caption bar ofcourse.

NIW_PARENT 

Inspect the parent.

NIW_MAINPANEL 

Panel widget containing the actual data.

NIW_SCROLLBAR 

Scrollbar.

Definition at line 242 of file newgrf_debug_gui.cpp.

enum NIType

The type of a property to show.

This is used to provide an appropriate represenation in the GUI.

Enumerator:
NIT_INT 

The property is a simple integer.

NIT_CARGO 

The property is a cargo.

Definition at line 67 of file newgrf_debug_gui.cpp.

Widgets we want (some) influence over.

Enumerator:
SAW_CAPTION 

Caption of the window.

SAW_PREVIOUS 

Skip to the previous sprite.

SAW_GOTO 

Go to a given sprite.

SAW_NEXT 

Skip to the next sprite.

SAW_UP 

Move the sprite up.

SAW_LEFT 

Move the sprite to the left.

SAW_RIGHT 

Move the sprite to the right.

SAW_DOWN 

Move the sprite down.

SAW_SPRITE 

The actual sprite.

SAW_OFFSETS 

The sprite offsets.

SAW_PICKER 

Sprite picker.

SAW_LIST 

Queried sprite list.

SAW_SCROLLBAR 

Scrollbar for sprite list.

Definition at line 587 of file newgrf_debug_gui.cpp.


Function Documentation

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.

Parameters:
feature The feature we want to delete the window for.
index The index/identifier of the feature to delete.

Definition at line 514 of file newgrf_debug_gui.cpp.

References DeleteWindowById(), FindWindowById(), GetInspectWindowNumber(), GSF_INVALID, and Window::ReInit().

Referenced by CmdRemoveSingleRail(), DoClearTownHouseHelper(), ReallyClearObjectTile(), RemoveAirport(), RemoveFromRailBaseStation(), RemoveRailStation(), Town::~Town(), and Vehicle::~Vehicle().

static const NIFeature* GetFeature ( uint  window_number  )  [inline, static]

Get the NIFeature related to the window number.

Parameters:
window_number The window to get the NIFeature for.
Returns:
the NIFeature, or NULL is there isn't one.

Definition at line 223 of file newgrf_debug_gui.cpp.

References _nifeatures, GetFeatureNum(), and GSF_FAKE_END.

Referenced by GetFeatureHelper(), and IsNewGRFInspectable().

static const NIHelper* GetFeatureHelper ( uint  window_number  )  [inline, static]

Get the NIHelper related to the window number.

Parameters:
window_number The window to get the NIHelper for.
Precondition:
GetFeature(window_number) != NULL
Returns:
the NIHelper

Definition at line 235 of file newgrf_debug_gui.cpp.

References GetFeature(), and NIFeature::helper.

Referenced by NewGRFInspectWindow::SetStringParameters().

static uint GetFeatureIndex ( uint  window_number  )  [inline, static]

Get the feature index related to the window number.

Parameters:
window_number The window to get the feature index from.
Returns:
the feature index

Definition at line 45 of file newgrf_debug_gui.cpp.

References GB().

Referenced by NewGRFInspectWindow::SetStringParameters().

static GrfSpecFeature GetFeatureNum ( uint  window_number  )  [inline, static]

Get the feature number related to the window number.

Parameters:
window_number The window to get the feature number for.
Returns:
The feature number.

Definition at line 213 of file newgrf_debug_gui.cpp.

References GB().

Referenced by GetFeature().

GrfSpecFeature GetGrfSpecFeature ( VehicleType  type  ) 

Get the GrfSpecFeature associated with the vehicle.

Parameters:
type The vehicle type to get the feature from.
Returns:
the GrfSpecFeature.

Definition at line 571 of file newgrf_debug_gui.cpp.

References GSF_INVALID, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

GrfSpecFeature GetGrfSpecFeature ( TileIndex  tile  ) 
static uint GetInspectWindowNumber ( GrfSpecFeature  feature,
uint  index 
) [inline, static]

Get the window number for the inspect window given a feature and index.

Parameters:
feature The feature we want to inspect.
index The index/identifier of the feature to inspect.
Returns:
the InspectWindow (Window)Number

Definition at line 57 of file newgrf_debug_gui.cpp.

Referenced by DeleteNewGRFInspectWindow(), NIHAirportTile::GetParent(), NIHObject::GetParent(), NIHIndustry::GetParent(), NIHIndustryTile::GetParent(), NIHHouse::GetParent(), NIHStation::GetParent(), NIHVehicle::GetParent(), IsNewGRFInspectable(), and ShowNewGRFInspectWindow().

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.

Parameters:
feature The feature we want to inspect.
index The index/identifier of the feature to inspect.
Returns:
true if there is something to show.

Definition at line 535 of file newgrf_debug_gui.cpp.

References GetFeature(), GetInspectWindowNumber(), NIFeature::helper, and NIHelper::IsInspectable().

Referenced by VehicleViewWindow::IsNewGRFInspectable(), and ShowNewGRFInspectWindow().

void ShowNewGRFInspectWindow ( GrfSpecFeature  feature,
uint  index 
)

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.

Parameters:
feature The feature we want to inspect.
index The index/identifier of the feature to inspect.

Definition at line 498 of file newgrf_debug_gui.cpp.

References GetInspectWindowNumber(), and IsNewGRFInspectable().

Referenced by VehicleViewWindow::ShowNewGRFInspectWindow().


Variable Documentation

const NWidgetPart _nested_newgrf_inspect_widgets[] [static]
Initial value:
 {
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_CLOSEBOX, COLOUR_GREY),
    NWidget(WWT_CAPTION, COLOUR_GREY, NIW_CAPTION), SetDataTip(STR_NEWGRF_INSPECT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
    NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, NIW_PARENT), SetDataTip(STR_NEWGRF_INSPECT_PARENT_BUTTON, STR_NEWGRF_INSPECT_PARENT_TOOLTIP),
    NWidget(WWT_SHADEBOX, COLOUR_GREY),
    NWidget(WWT_STICKYBOX, COLOUR_GREY),
  EndContainer(),
  NWidget(NWID_HORIZONTAL),
    NWidget(WWT_PANEL, COLOUR_GREY, NIW_MAINPANEL), SetMinimalSize(300, 0), SetScrollbar(NIW_SCROLLBAR), EndContainer(),
    NWidget(NWID_VERTICAL),
      NWidget(NWID_VSCROLLBAR, COLOUR_GREY, NIW_SCROLLBAR),
      NWidget(WWT_RESIZEBOX, COLOUR_GREY),
    EndContainer(),
  EndContainer(),
}

Definition at line 466 of file newgrf_debug_gui.cpp.

const int CBM_NO_BIT = UINT8_MAX [static]

Mask to show no bit needs to be enabled for the callback.

Definition at line 94 of file newgrf_debug_gui.cpp.


Generated on Sun Jan 23 01:49:17 2011 for OpenTTD by  doxygen 1.6.1