diff --git a/src/scope_info.cpp b/src/scope_info.cpp index 5f5da7bb71..c4ef35b9d5 100644 --- a/src/scope_info.cpp +++ b/src/scope_info.cpp @@ -60,7 +60,7 @@ const char *scope_dumper::VehicleInfo(const Vehicle *v) char *b = this->buffer; const char *last = lastof(this->buffer); auto dump_flags = [&](const Vehicle *u) { - b = u->DumpVehicleFlags(b, last); + b = u->DumpVehicleFlags(b, last, true); }; if (v) { b += seprintf(b, last, "veh: %u: (", v->index); diff --git a/src/table/newgrf_debug_data.h b/src/table/newgrf_debug_data.h index 13e0f5c518..de2df90c06 100644 --- a/src/table/newgrf_debug_data.h +++ b/src/table/newgrf_debug_data.h @@ -94,8 +94,20 @@ class NIHVehicle : public NIHelper { print(buffer); char *b = buffer; b += seprintf(b, lastof(buffer), " Flags: "); - b = v->DumpVehicleFlags(b, lastof(buffer)); + b = v->DumpVehicleFlags(b, lastof(buffer), false); print(buffer); + + b = buffer + seprintf(buffer, lastof(buffer), " "); + b = DumpTileInfo(b, lastof(buffer), v->tile); + if (buffer[2] == 't') buffer[2] = 'T'; + print(buffer); + + TileIndex vtile = TileVirtXY(v->x_pos, v->y_pos); + if (v->tile != vtile) { + seprintf(buffer, lastof(buffer), " VirtXYTile: %X (%u x %u)", vtile, TileX(vtile), TileY(vtile)); + print(buffer); + } + if (v->IsPrimaryVehicle()) { seprintf(buffer, lastof(buffer), " Order indices: real: %u, implicit: %u, tt: %u", v->cur_real_order_index, v->cur_implicit_order_index, v->cur_timetable_order_index); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index ee3480b5eb..14e32a7755 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -3711,7 +3711,7 @@ void Vehicle::RemoveFromShared() if (HasBit(this->vehicle_flags, VF_TIMETABLE_SEPARATION)) ClrBit(this->vehicle_flags, VF_TIMETABLE_STARTED); } -char *Vehicle::DumpVehicleFlags(char *b, const char *last) const +char *Vehicle::DumpVehicleFlags(char *b, const char *last, bool include_tile) const { auto dump = [&](char c, bool flag) { if (flag) b += seprintf(b, last, "%c", c); @@ -3793,11 +3793,13 @@ char *Vehicle::DumpVehicleFlags(char *b, const char *last) const const RoadVehicle *r = RoadVehicle::From(this); b += seprintf(b, last, ", rvs:%X, rvf:%X", r->state, r->frame); } - b += seprintf(b, last, ", ["); - b = DumpTileInfo(b, last, this->tile); - b += seprintf(b, last, "]"); - TileIndex vtile = TileVirtXY(this->x_pos, this->y_pos); - if (this->tile != vtile) b += seprintf(b, last, ", VirtXYTile: %X (%u x %u)", vtile, TileX(vtile), TileY(vtile)); + if (include_tile) { + b += seprintf(b, last, ", ["); + b = DumpTileInfo(b, last, this->tile); + b += seprintf(b, last, "]"); + TileIndex vtile = TileVirtXY(this->x_pos, this->y_pos); + if (this->tile != vtile) b += seprintf(b, last, ", VirtXYTile: %X (%u x %u)", vtile, TileX(vtile), TileY(vtile)); + } if (this->cargo_payment) b += seprintf(b, last, ", CP"); return b; } diff --git a/src/vehicle_base.h b/src/vehicle_base.h index bb79ea02a7..4acefb6f41 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -1087,7 +1087,7 @@ public: this->sprite_seq_bounds = this->sprite_seq.GetBounds(); } - char *DumpVehicleFlags(char *b, const char *last) const; + char *DumpVehicleFlags(char *b, const char *last, bool include_tile) const; }; /**