Merge pull request #167 from internet-trains/gs-rivers
Gamescript river construction
This commit is contained in:
@@ -385,7 +385,7 @@ static const Command _command_proc_table[] = {
|
|||||||
DEF_CMD(CmdMoneyCheatAdmin, CMD_SERVER_NS, CMDT_CHEAT ), // CMD_MONEY_CHEAT_ADMIN
|
DEF_CMD(CmdMoneyCheatAdmin, CMD_SERVER_NS, CMDT_CHEAT ), // CMD_MONEY_CHEAT_ADMIN
|
||||||
DEF_CMD(CmdChangeBankBalance, CMD_DEITY, CMDT_MONEY_MANAGEMENT ), // CMD_CHANGE_BANK_BALANCE
|
DEF_CMD(CmdChangeBankBalance, CMD_DEITY, CMDT_MONEY_MANAGEMENT ), // CMD_CHANGE_BANK_BALANCE
|
||||||
DEF_CMD(CmdCheatSetting, CMD_SERVER, CMDT_CHEAT ), // CMD_CHEAT_SETTING
|
DEF_CMD(CmdCheatSetting, CMD_SERVER, CMDT_CHEAT ), // CMD_CHEAT_SETTING
|
||||||
DEF_CMD(CmdBuildCanal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL
|
DEF_CMD(CmdBuildCanal, CMD_DEITY | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL
|
||||||
DEF_CMD(CmdCreateSubsidy, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_SUBSIDY
|
DEF_CMD(CmdCreateSubsidy, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_SUBSIDY
|
||||||
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
||||||
DEF_CMD(CmdCustomNewsItem, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CUSTOM_NEWS_ITEM
|
DEF_CMD(CmdCustomNewsItem, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CUSTOM_NEWS_ITEM
|
||||||
|
@@ -40,6 +40,7 @@ void SQAIMarine_Register(Squirrel *engine)
|
|||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildBuoy, "BuildBuoy", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildBuoy, "BuildBuoy", 2, ".i");
|
||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildLock, "BuildLock", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildLock, "BuildLock", 2, ".i");
|
||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildCanal, "BuildCanal", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildCanal, "BuildCanal", 2, ".i");
|
||||||
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildRiver, "BuildRiver", 2, ".i");
|
||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveWaterDepot, "RemoveWaterDepot", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveWaterDepot, "RemoveWaterDepot", 2, ".i");
|
||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveDock, "RemoveDock", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveDock, "RemoveDock", 2, ".i");
|
||||||
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveBuoy, "RemoveBuoy", 2, ".i");
|
SQAIMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveBuoy, "RemoveBuoy", 2, ".i");
|
||||||
|
@@ -40,6 +40,7 @@ void SQGSMarine_Register(Squirrel *engine)
|
|||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildBuoy, "BuildBuoy", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildBuoy, "BuildBuoy", 2, ".i");
|
||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildLock, "BuildLock", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildLock, "BuildLock", 2, ".i");
|
||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildCanal, "BuildCanal", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildCanal, "BuildCanal", 2, ".i");
|
||||||
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::BuildRiver, "BuildRiver", 2, ".i");
|
||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveWaterDepot, "RemoveWaterDepot", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveWaterDepot, "RemoveWaterDepot", 2, ".i");
|
||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveDock, "RemoveDock", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveDock, "RemoveDock", 2, ".i");
|
||||||
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveBuoy, "RemoveBuoy", 2, ".i");
|
SQGSMarine.DefSQStaticMethod(engine, &ScriptMarine::RemoveBuoy, "RemoveBuoy", 2, ".i");
|
||||||
|
@@ -116,6 +116,13 @@
|
|||||||
return ScriptObject::DoCommand(tile, tile, WATER_CLASS_CANAL, CMD_BUILD_CANAL);
|
return ScriptObject::DoCommand(tile, tile, WATER_CLASS_CANAL, CMD_BUILD_CANAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */ bool ScriptMarine::BuildRiver(TileIndex tile)
|
||||||
|
{
|
||||||
|
EnforcePrecondition(false, ::IsValidTile(tile));
|
||||||
|
|
||||||
|
return ScriptObject::DoCommand(tile, tile, WATER_CLASS_RIVER, CMD_BUILD_CANAL);
|
||||||
|
}
|
||||||
|
|
||||||
/* static */ bool ScriptMarine::RemoveWaterDepot(TileIndex tile)
|
/* static */ bool ScriptMarine::RemoveWaterDepot(TileIndex tile)
|
||||||
{
|
{
|
||||||
EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY);
|
EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY);
|
||||||
|
@@ -158,6 +158,18 @@ public:
|
|||||||
*/
|
*/
|
||||||
static bool BuildCanal(TileIndex tile);
|
static bool BuildCanal(TileIndex tile);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds a river on tile.
|
||||||
|
* @param tile The tile where the canal will be build.
|
||||||
|
* @pre ScriptMap::IsValidTile(tile).
|
||||||
|
* @exception ScriptError::ERR_AREA_NOT_CLEAR
|
||||||
|
* @exception ScriptError::ERR_LAND_SLOPED_WRONG
|
||||||
|
* @exception ScriptError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||||
|
* @exception ScriptError::ERR_ALREADY_BUILT
|
||||||
|
* @return Whether the river has been/can be build or not.
|
||||||
|
*/
|
||||||
|
static bool BuildRiver(TileIndex tile);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes a water depot.
|
* Removes a water depot.
|
||||||
* @param tile Any tile of the water depot.
|
* @param tile Any tile of the water depot.
|
||||||
|
@@ -455,7 +455,9 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||||||
if (_game_mode != GM_EDITOR) {
|
if (_game_mode != GM_EDITOR) {
|
||||||
if (HasBit(p2, 2)) return CMD_ERROR;
|
if (HasBit(p2, 2)) return CMD_ERROR;
|
||||||
if (wc == WATER_CLASS_RIVER) {
|
if (wc == WATER_CLASS_RIVER) {
|
||||||
if (!_settings_game.construction.enable_build_river) return CMD_ERROR;
|
if (!_settings_game.construction.enable_build_river && _current_company != OWNER_DEITY) {
|
||||||
|
return CMD_ERROR;
|
||||||
|
}
|
||||||
} else if (wc != WATER_CLASS_CANAL) {
|
} else if (wc != WATER_CLASS_CANAL) {
|
||||||
return CMD_ERROR;
|
return CMD_ERROR;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user