Files
@ r23033:8a2aa5b06604
Branch filter:
Location: cpp/openttd-patchpack/source/src/script/api/template/template_bridge.hpp.sq - annotation
r23033:8a2aa5b06604
2.4 KiB
text/plain
Fix: Only possible to build station next to competitors by using CTRL+click
Fix by checking only for stations owned by the current company when
inspecting if there are multiple adjoining stations to the one being built.
When building next to 2 or more owned stations we don't know which
station should be extended. For other companies' stations that's not a
problem since our station won't merge with theirs anyway.
Calling to BuildStationPart should never have another company's station
as a parameter to attach to unless the client is malicious, so just returning
a generic error in that case.
Fix by checking only for stations owned by the current company when
inspecting if there are multiple adjoining stations to the one being built.
When building next to 2 or more owned stations we don't know which
station should be extended. For other companies' stations that's not a
problem since our station won't merge with theirs anyway.
Calling to BuildStationPart should never have another company's station
as a parameter to attach to unless the client is malicious, so just returning
a generic error in that case.
r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 r18519:20a1d61386e6 | /* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
#include "../script_bridge.hpp"
namespace SQConvert {
/* Allow enums to be used as Squirrel parameters */
template <> inline ScriptBridge::ErrorMessages GetParam(ForceType<ScriptBridge::ErrorMessages>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptBridge::ErrorMessages)tmp; }
template <> inline int Return<ScriptBridge::ErrorMessages>(HSQUIRRELVM vm, ScriptBridge::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow ScriptBridge to be used as Squirrel parameter */
template <> inline ScriptBridge *GetParam(ForceType<ScriptBridge *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptBridge *)instance; }
template <> inline ScriptBridge &GetParam(ForceType<ScriptBridge &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptBridge *)instance; }
template <> inline const ScriptBridge *GetParam(ForceType<const ScriptBridge *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptBridge *)instance; }
template <> inline const ScriptBridge &GetParam(ForceType<const ScriptBridge &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptBridge *)instance; }
template <> inline int Return<ScriptBridge *>(HSQUIRRELVM vm, ScriptBridge *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "Bridge", res, NULL, DefSQDestructorCallback<ScriptBridge>, true); return 1; }
} // namespace SQConvert
|