changeset 11062:41935eabf53f draft

(svn r15402) -Codechange: verify _current_company didn't change when executing a command
author smatz <smatz@openttd.org>
date Sat, 07 Feb 2009 18:09:30 +0000
parents a6d63fcd0fd9
children a0739544581b
files src/command.cpp
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/command.cpp
+++ b/src/command.cpp
@@ -501,6 +501,8 @@
 	StringID error_part1 = GB(cmd, 16, 16);
 	_additional_cash_required = 0;
 
+	CompanyID old_company = _current_company;
+
 	/** Spectator has no rights except for the (dedicated) server which
 	 * is/can be a spectator but as the server it can do anything */
 	if (_current_company == COMPANY_SPECTATOR && !_network_server) {
@@ -558,6 +560,7 @@
 		SetTownRatingTestMode(true);
 		res = proc(tile, flags, p1, p2, text);
 		SetTownRatingTestMode(false);
+		assert(cmd_id == CMD_COMPANY_CTRL || old_company == _current_company);
 		if (CmdFailed(res)) {
 			res.SetGlobalErrorMessage();
 			goto show_error;
@@ -595,6 +598,8 @@
 	 * use the construction one */
 	res2 = proc(tile, flags | DC_EXEC, p1, p2, text);
 
+	assert(cmd_id == CMD_COMPANY_CTRL || old_company == _current_company);
+
 	/* If notest is on, it means the result of the test can be different than
 	 *  the real command.. so ignore the test */
 	if (!notest && !((cmd & CMD_NO_TEST_IF_IN_NETWORK) && _networking)) {