mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r15172) -Feature: Allow a grf to customize house name via callback 0x14D, during Tile Inquiry process
This commit is contained in:
parent
61ee8ca42a
commit
cef4103137
@ -208,6 +208,9 @@ enum CallbackID {
|
|||||||
|
|
||||||
/** Customize the output cargo types of a newly build industry. */
|
/** Customize the output cargo types of a newly build industry. */
|
||||||
CBID_INDUSTRY_OUTPUT_CARGO_TYPES = 0x14C, // 8 bit callback
|
CBID_INDUSTRY_OUTPUT_CARGO_TYPES = 0x14C, // 8 bit callback
|
||||||
|
|
||||||
|
/** Called on the Get Tile Description for an house tile. */
|
||||||
|
CBID_HOUSE_CUSTOM_NAME = 0x14D, // 15 bit callback
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -251,6 +254,7 @@ enum HouseCallbackMask {
|
|||||||
CBM_HOUSE_ACCEPT_CARGO = 8,
|
CBM_HOUSE_ACCEPT_CARGO = 8,
|
||||||
CBM_HOUSE_PRODUCE_CARGO = 9,
|
CBM_HOUSE_PRODUCE_CARGO = 9,
|
||||||
CBM_HOUSE_DENY_DESTRUCTION = 10,
|
CBM_HOUSE_DENY_DESTRUCTION = 10,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "newgrf_house.h"
|
#include "newgrf_house.h"
|
||||||
#include "newgrf_commons.h"
|
#include "newgrf_commons.h"
|
||||||
#include "newgrf_townname.h"
|
#include "newgrf_townname.h"
|
||||||
|
#include "newgrf_text.h"
|
||||||
#include "autoslope.h"
|
#include "autoslope.h"
|
||||||
#include "waypoint.h"
|
#include "waypoint.h"
|
||||||
#include "transparency.h"
|
#include "transparency.h"
|
||||||
@ -628,10 +629,21 @@ static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
|
|||||||
|
|
||||||
static void GetTileDesc_Town(TileIndex tile, TileDesc *td)
|
static void GetTileDesc_Town(TileIndex tile, TileDesc *td)
|
||||||
{
|
{
|
||||||
const HouseSpec *hs = GetHouseSpecs(GetHouseType(tile));
|
const HouseID house = GetHouseType(tile);
|
||||||
|
const HouseSpec *hs = GetHouseSpecs(house);
|
||||||
|
bool house_completed = IsHouseCompleted(tile);
|
||||||
|
|
||||||
td->str = hs->building_name;
|
td->str = hs->building_name;
|
||||||
if (!IsHouseCompleted(tile)) {
|
|
||||||
|
uint16 callback_res = GetHouseCallback(CBID_HOUSE_CUSTOM_NAME, house_completed ? 1 : 0, 0, house, GetTownByTile(tile), tile);
|
||||||
|
if (callback_res != CALLBACK_FAILED) {
|
||||||
|
StringID new_name = GetGRFStringID(hs->grffile->grfid, 0xD000 + callback_res);
|
||||||
|
if (new_name != STR_NULL && new_name != STR_UNDEFINED) {
|
||||||
|
td->str = new_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!house_completed) {
|
||||||
SetDParamX(td->dparam, 0, td->str);
|
SetDParamX(td->dparam, 0, td->str);
|
||||||
td->str = STR_2058_UNDER_CONSTRUCTION;
|
td->str = STR_2058_UNDER_CONSTRUCTION;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user