Debug: Show callback ID names in sprite dump
This commit is contained in:
@@ -413,4 +413,6 @@ enum AirportTileCallbackMask {
|
|||||||
static const uint CALLBACK_FAILED = 0xFFFF; ///< Result of a failed callback.
|
static const uint CALLBACK_FAILED = 0xFFFF; ///< Result of a failed callback.
|
||||||
static const uint CALLBACK_HOUSEPRODCARGO_END = 0x20FF; ///< Sentinel indicating that the loop for CBID_HOUSE_PRODUCE_CARGO has ended
|
static const uint CALLBACK_HOUSEPRODCARGO_END = 0x20FF; ///< Sentinel indicating that the loop for CBID_HOUSE_PRODUCE_CARGO has ended
|
||||||
|
|
||||||
|
const char *GetNewGRFCallbackName(CallbackID cbid);
|
||||||
|
|
||||||
#endif /* NEWGRF_CALLBACKS_H */
|
#endif /* NEWGRF_CALLBACKS_H */
|
||||||
|
@@ -1496,3 +1496,90 @@ void ShowSpriteAlignerWindow()
|
|||||||
{
|
{
|
||||||
AllocateWindowDescFront<SpriteAlignerWindow>(&_sprite_aligner_desc, 0);
|
AllocateWindowDescFront<SpriteAlignerWindow>(&_sprite_aligner_desc, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *GetNewGRFCallbackName(CallbackID cbid)
|
||||||
|
{
|
||||||
|
#define CBID(c) case c: return #c;
|
||||||
|
switch (cbid) {
|
||||||
|
CBID(CBID_RANDOM_TRIGGER)
|
||||||
|
CBID(CBID_VEHICLE_VISUAL_EFFECT)
|
||||||
|
CBID(CBID_VEHICLE_LENGTH)
|
||||||
|
CBID(CBID_VEHICLE_LOAD_AMOUNT)
|
||||||
|
CBID(CBID_STATION_AVAILABILITY)
|
||||||
|
CBID(CBID_STATION_SPRITE_LAYOUT)
|
||||||
|
CBID(CBID_VEHICLE_REFIT_CAPACITY)
|
||||||
|
CBID(CBID_VEHICLE_ARTIC_ENGINE)
|
||||||
|
CBID(CBID_HOUSE_ALLOW_CONSTRUCTION)
|
||||||
|
CBID(CBID_GENERIC_AI_PURCHASE_SELECTION)
|
||||||
|
CBID(CBID_VEHICLE_CARGO_SUFFIX)
|
||||||
|
CBID(CBID_HOUSE_ANIMATION_NEXT_FRAME)
|
||||||
|
CBID(CBID_HOUSE_ANIMATION_START_STOP)
|
||||||
|
CBID(CBID_HOUSE_CONSTRUCTION_STATE_CHANGE)
|
||||||
|
CBID(CBID_TRAIN_ALLOW_WAGON_ATTACH)
|
||||||
|
CBID(CBID_HOUSE_COLOUR)
|
||||||
|
CBID(CBID_HOUSE_CARGO_ACCEPTANCE)
|
||||||
|
CBID(CBID_HOUSE_ANIMATION_SPEED)
|
||||||
|
CBID(CBID_HOUSE_DESTRUCTION)
|
||||||
|
CBID(CBID_INDUSTRY_PROBABILITY)
|
||||||
|
CBID(CBID_VEHICLE_ADDITIONAL_TEXT)
|
||||||
|
CBID(CBID_STATION_TILE_LAYOUT)
|
||||||
|
CBID(CBID_INDTILE_ANIM_START_STOP)
|
||||||
|
CBID(CBID_INDTILE_ANIM_NEXT_FRAME)
|
||||||
|
CBID(CBID_INDTILE_ANIMATION_SPEED)
|
||||||
|
CBID(CBID_INDUSTRY_LOCATION)
|
||||||
|
CBID(CBID_INDUSTRY_PRODUCTION_CHANGE)
|
||||||
|
CBID(CBID_HOUSE_ACCEPT_CARGO)
|
||||||
|
CBID(CBID_INDTILE_CARGO_ACCEPTANCE)
|
||||||
|
CBID(CBID_INDTILE_ACCEPT_CARGO)
|
||||||
|
CBID(CBID_VEHICLE_COLOUR_MAPPING)
|
||||||
|
CBID(CBID_HOUSE_PRODUCE_CARGO)
|
||||||
|
CBID(CBID_INDTILE_SHAPE_CHECK)
|
||||||
|
CBID(CBID_INDTILE_DRAW_FOUNDATIONS)
|
||||||
|
CBID(CBID_VEHICLE_START_STOP_CHECK)
|
||||||
|
CBID(CBID_VEHICLE_32DAY_CALLBACK)
|
||||||
|
CBID(CBID_VEHICLE_SOUND_EFFECT)
|
||||||
|
CBID(CBID_VEHICLE_AUTOREPLACE_SELECTION)
|
||||||
|
CBID(CBID_INDUSTRY_MONTHLYPROD_CHANGE)
|
||||||
|
CBID(CBID_VEHICLE_MODIFY_PROPERTY)
|
||||||
|
CBID(CBID_INDUSTRY_CARGO_SUFFIX)
|
||||||
|
CBID(CBID_INDUSTRY_FUND_MORE_TEXT)
|
||||||
|
CBID(CBID_CARGO_PROFIT_CALC)
|
||||||
|
CBID(CBID_INDUSTRY_WINDOW_MORE_TEXT)
|
||||||
|
CBID(CBID_INDUSTRY_SPECIAL_EFFECT)
|
||||||
|
CBID(CBID_INDTILE_AUTOSLOPE)
|
||||||
|
CBID(CBID_INDUSTRY_REFUSE_CARGO)
|
||||||
|
CBID(CBID_STATION_ANIM_START_STOP)
|
||||||
|
CBID(CBID_STATION_ANIM_NEXT_FRAME)
|
||||||
|
CBID(CBID_STATION_ANIMATION_SPEED)
|
||||||
|
CBID(CBID_HOUSE_DENY_DESTRUCTION)
|
||||||
|
CBID(CBID_SOUNDS_AMBIENT_EFFECT)
|
||||||
|
CBID(CBID_CARGO_STATION_RATING_CALC)
|
||||||
|
CBID(CBID_NEW_SIGNALS_SPRITE_DRAW)
|
||||||
|
CBID(CBID_CANALS_SPRITE_OFFSET)
|
||||||
|
CBID(CBID_HOUSE_WATCHED_CARGO_ACCEPTED)
|
||||||
|
CBID(CBID_STATION_LAND_SLOPE_CHECK)
|
||||||
|
CBID(CBID_INDUSTRY_DECIDE_COLOUR)
|
||||||
|
CBID(CBID_INDUSTRY_INPUT_CARGO_TYPES)
|
||||||
|
CBID(CBID_INDUSTRY_OUTPUT_CARGO_TYPES)
|
||||||
|
CBID(CBID_HOUSE_CUSTOM_NAME)
|
||||||
|
CBID(CBID_HOUSE_DRAW_FOUNDATIONS)
|
||||||
|
CBID(CBID_HOUSE_AUTOSLOPE)
|
||||||
|
CBID(CBID_AIRPTILE_DRAW_FOUNDATIONS)
|
||||||
|
CBID(CBID_AIRPTILE_ANIM_START_STOP)
|
||||||
|
CBID(CBID_AIRPTILE_ANIM_NEXT_FRAME)
|
||||||
|
CBID(CBID_AIRPTILE_ANIMATION_SPEED)
|
||||||
|
CBID(CBID_AIRPORT_ADDITIONAL_TEXT)
|
||||||
|
CBID(CBID_AIRPORT_LAYOUT_NAME)
|
||||||
|
CBID(CBID_OBJECT_LAND_SLOPE_CHECK)
|
||||||
|
CBID(CBID_OBJECT_ANIMATION_NEXT_FRAME)
|
||||||
|
CBID(CBID_OBJECT_ANIMATION_START_STOP)
|
||||||
|
CBID(CBID_OBJECT_ANIMATION_SPEED)
|
||||||
|
CBID(CBID_OBJECT_COLOUR)
|
||||||
|
CBID(CBID_OBJECT_FUND_MORE_TEXT)
|
||||||
|
CBID(CBID_OBJECT_AUTOSLOPE)
|
||||||
|
CBID(CBID_VEHICLE_REFIT_COST)
|
||||||
|
CBID(CBID_INDUSTRY_PROD_CHANGE_BUILD)
|
||||||
|
CBID(CBID_VEHICLE_SPAWN_VISUAL_EFFECT)
|
||||||
|
default: return nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -889,6 +889,15 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, int padding, uint
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_callback_group = false;
|
||||||
|
if (adjusts->size() == 1 && !dsg->calculated_result) {
|
||||||
|
const DeterministicSpriteGroupAdjust &adjust = (*adjusts)[0];
|
||||||
|
if (adjust.variable == 0xC && (adjust.operation == DSGA_OP_ADD || adjust.operation == DSGA_OP_RST)
|
||||||
|
&& adjust.shift_num == 0 && (adjust.and_mask & 0xFF) == 0xFF && adjust.type == DSGA_TYPE_NONE) {
|
||||||
|
is_callback_group = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (padding == 0 && !dsg->calculated_result && default_group != nullptr) {
|
if (padding == 0 && !dsg->calculated_result && default_group != nullptr) {
|
||||||
this->top_default_group = default_group;
|
this->top_default_group = default_group;
|
||||||
}
|
}
|
||||||
@@ -932,7 +941,14 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, int padding, uint
|
|||||||
print();
|
print();
|
||||||
} else {
|
} else {
|
||||||
for (const auto &range : (*ranges)) {
|
for (const auto &range : (*ranges)) {
|
||||||
seprintf(this->buffer, lastof(this->buffer), "%*srange: %X -> %X", padding, "", range.low, range.high);
|
char *p = this->buffer;
|
||||||
|
p += seprintf(p, lastof(this->buffer), "%*srange: %X -> %X", padding, "", range.low, range.high);
|
||||||
|
if (range.low == range.high && is_callback_group) {
|
||||||
|
const char *cb_name = GetNewGRFCallbackName((CallbackID)range.low);
|
||||||
|
if (cb_name != nullptr) {
|
||||||
|
p += seprintf(p, lastof(this->buffer), " (%s)", cb_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
print();
|
print();
|
||||||
this->DumpSpriteGroup(range.group, padding + 2, 0);
|
this->DumpSpriteGroup(range.group, padding + 2, 0);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user