|
|
|
@ -1290,13 +1290,14 @@ static const NIVariable _niv_objects[] = {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class NIHObject : public NIHelper {
|
|
|
|
|
bool IsInspectable(uint index) const override { return ObjectSpec::GetByTile(index)->grf_prop.grffile != nullptr; }
|
|
|
|
|
bool IsInspectable(uint index) const override { return true; }
|
|
|
|
|
bool ShowExtraInfoOnly(uint index) const override { return ObjectSpec::GetByTile(index)->grf_prop.grffile == nullptr; }
|
|
|
|
|
bool ShowSpriteDumpButton(uint index) const override { return true; }
|
|
|
|
|
uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Object::GetByTile(index)->town->index); }
|
|
|
|
|
const void *GetInstance(uint index)const override { return Object::GetByTile(index); }
|
|
|
|
|
const void *GetSpec(uint index) const override { return ObjectSpec::GetByTile(index); }
|
|
|
|
|
void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT, INVALID_STRING_ID, index); }
|
|
|
|
|
uint32 GetGRFID(uint index) const override { return (this->IsInspectable(index)) ? ObjectSpec::GetByTile(index)->grf_prop.grffile->grfid : 0; }
|
|
|
|
|
uint32 GetGRFID(uint index) const override { return (!this->ShowExtraInfoOnly(index)) ? ObjectSpec::GetByTile(index)->grf_prop.grffile->grfid : 0; }
|
|
|
|
|
|
|
|
|
|
uint Resolve(uint index, uint var, uint param, GetVariableExtra *extra) const override
|
|
|
|
|
{
|
|
|
|
@ -1312,8 +1313,11 @@ class NIHObject : public NIHelper {
|
|
|
|
|
if (spec) {
|
|
|
|
|
ObjectID id = GetObjectIndex(index);
|
|
|
|
|
const Object *obj = Object::Get(id);
|
|
|
|
|
uint class_id = ObjectClass::Get(spec->cls_id)->global_id;
|
|
|
|
|
seprintf(buffer, lastof(buffer), " index: %u, type ID: %u, class ID: %c%c%c%c", id, GetObjectType(index), class_id >> 24, class_id >> 16, class_id >> 8, class_id);
|
|
|
|
|
char *b = buffer + seprintf(buffer, lastof(buffer), " index: %u, type ID: %u", id, GetObjectType(index));
|
|
|
|
|
if (spec->cls_id != INVALID_OBJECT_CLASS) {
|
|
|
|
|
uint class_id = ObjectClass::Get(spec->cls_id)->global_id;
|
|
|
|
|
b += seprintf(b, lastof(buffer), ", class ID: %c%c%c%c", class_id >> 24, class_id >> 16, class_id >> 8, class_id);
|
|
|
|
|
}
|
|
|
|
|
output.print(buffer);
|
|
|
|
|
seprintf(buffer, lastof(buffer), " view: %u, colour: %u, effective foundation: %u", obj->view, obj->colour, GetObjectEffectiveFoundationType(index));
|
|
|
|
|
output.print(buffer);
|
|
|
|
|