Debug: Show tile info on separate lines in vehicle debug window

pull/171/head
Jonathan G Rennison 4 years ago
parent 1f5de8b82c
commit 002e99ac34

@ -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);

@ -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);

@ -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;
}

@ -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;
};
/**

Loading…
Cancel
Save