Changeset - r26082:ed4b80b7fdde
[Not reviewed]
master
0 4 0
Tyler Trahan - 3 years ago 2021-11-28 14:16:42
tyler@tylertrahan.com
Fix: Don't try to rename OWNER_DEITY signs in-game (#9716)
4 files changed with 18 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/signs.cpp
Show inline comments
 
@@ -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;
 
}
src/signs_cmd.cpp
Show inline comments
 
@@ -79,7 +79,7 @@ CommandCost CmdRenameSign(TileIndex tile
 
{
 
	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()) {
src/signs_func.h
Show inline comments
 
@@ -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);
src/signs_gui.cpp
Show inline comments
 
@@ -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);
 
}
 

	
0 comments (0 inline, 0 general)