mirror of https://github.com/OpenTTD/OpenTTD.git
Fix: Don't try to rename OWNER_DEITY signs in-game (#9716)
This commit is contained in:
parent
6953df7b5e
commit
802ca4e722
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include "stdafx.h"
|
||||
#include "landscape.h"
|
||||
#include "company_func.h"
|
||||
#include "signs_base.h"
|
||||
#include "signs_func.h"
|
||||
#include "strings_func.h"
|
||||
|
@ -61,3 +62,14 @@ void UpdateAllSignVirtCoords()
|
|||
si->UpdateVirtCoord();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the current company can rename a given sign.
|
||||
* @param *si The sign in question.
|
||||
* @return true if the sign can be renamed, else false.
|
||||
*/
|
||||
bool CompanyCanRenameSign(const Sign *si)
|
||||
{
|
||||
if (si->owner == OWNER_DEITY && _current_company != OWNER_DEITY && _game_mode != GM_EDITOR) return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ CommandCost CmdRenameSign(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||
{
|
||||
Sign *si = Sign::GetIfValid(p1);
|
||||
if (si == nullptr) return CMD_ERROR;
|
||||
if (si->owner == OWNER_DEITY && _current_company != OWNER_DEITY && _game_mode != GM_EDITOR) return CMD_ERROR;
|
||||
if (!CompanyCanRenameSign(si)) return CMD_ERROR;
|
||||
|
||||
/* Rename the signs when empty, otherwise remove it */
|
||||
if (!text.empty()) {
|
||||
|
|
|
@ -18,6 +18,7 @@ extern SignID _new_sign_id;
|
|||
|
||||
void UpdateAllSignVirtCoords();
|
||||
void PlaceProc_Sign(TileIndex tile);
|
||||
bool CompanyCanRenameSign(const Sign *si);
|
||||
|
||||
/* signs_gui.cpp */
|
||||
void ShowRenameSignWindow(const Sign *si);
|
||||
|
|
|
@ -565,10 +565,14 @@ static WindowDesc _query_sign_edit_desc(
|
|||
*/
|
||||
void HandleClickOnSign(const Sign *si)
|
||||
{
|
||||
/* If we can't rename the sign, don't even open the rename GUI. */
|
||||
if (!CompanyCanRenameSign(si)) return;
|
||||
|
||||
if (_ctrl_pressed && (si->owner == _local_company || (si->owner == OWNER_DEITY && _game_mode == GM_EDITOR))) {
|
||||
RenameSign(si->index, "");
|
||||
return;
|
||||
}
|
||||
|
||||
ShowRenameSignWindow(si);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue