diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index a23f8c2172..3c88e3e4e0 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -3057,6 +3057,7 @@ DEF_CONSOLE_CMD(ConMiscDebug) IConsoleHelp(" 4: MDF_ZONING_RS_TROPIC_ZONE"); IConsoleHelp(" 8: MDF_ZONING_RS_ANIMATED_TILE"); IConsoleHelp(" 10: MDF_NEWGRF_SG_SAVE_RAW"); + IConsoleHelp(" 20: MDF_NEWGRF_SG_DUMP_MORE_DETAIL"); return true; } diff --git a/src/debug_settings.h b/src/debug_settings.h index aff84db02f..3547cca2a6 100644 --- a/src/debug_settings.h +++ b/src/debug_settings.h @@ -47,6 +47,7 @@ enum MiscDebugFlags { MDF_ZONING_RS_TROPIC_ZONE, MDF_ZONING_RS_ANIMATED_TILE, MDF_NEWGRF_SG_SAVE_RAW, + MDF_NEWGRF_SG_DUMP_MORE_DETAIL, }; extern uint32 _misc_debug_flags; diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index 7eea531ce3..b34e0ef0c7 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -852,8 +852,15 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, int padding, uint print(); return; } - seprintf(this->buffer, lastof(this->buffer), "%*sDeterministic (%s, %s)%s [%u]", + char *p = this->buffer; + p += seprintf(p, lastof(this->buffer), "%*sDeterministic (%s, %s)%s [%u]", padding, "", _sg_scope_names[dsg->var_scope], _sg_size_names[dsg->size], extra_info, dsg->nfo_line); + if (HasBit(_misc_debug_flags, MDF_NEWGRF_SG_DUMP_MORE_DETAIL)) { + if (dsg->dsg_flags & DSGF_NO_DSE) p += seprintf(p, lastof(this->buffer), ", NO_DSE"); + if (dsg->dsg_flags & DSGF_DSE_RECURSIVE_DISABLE) p += seprintf(p, lastof(this->buffer), ", DSE_RD"); + if (dsg->dsg_flags & DSGF_VAR_TRACKING_PENDING) p += seprintf(p, lastof(this->buffer), ", VAR_PENDING"); + if (dsg->dsg_flags & DSGF_REQUIRES_VAR1C) p += seprintf(p, lastof(this->buffer), ", REQ_1C"); + } print(); emit_start(); padding += 2;