1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-13 17:49:10 +00:00

Change: Compatibility layers for AI and GS map ScriptDate:: to ScriptDateEcomomy::

This commit is contained in:
Tyler Trahan
2023-12-14 18:09:23 -05:00
parent df03d60258
commit 7ca9bb35a3
29 changed files with 932 additions and 7 deletions

View File

@@ -186,13 +186,6 @@ AIEngine.GetMaxTractiveEffort <- function(engine_id)
return AIEngine._GetMaxTractiveEffort(engine_id);
}
AIEngine._GetDesignDate <- AIEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetDesignDate(engine_id);
}
AIEngine._GetVehicleType <- AIEngine.GetVehicleType;
AIEngine.GetVehicleType <- function(engine_id)
{
@@ -392,3 +385,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -144,3 +144,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -81,3 +81,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -19,3 +19,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -19,3 +19,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -33,3 +33,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -19,3 +19,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -19,3 +19,23 @@ AIRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -6,3 +6,23 @@
*/
AILog.Info("13 API compatibility in effect.");
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* For maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
AIDate <- AIDateEconomy;
AIBaseStation._GetConstructionDate <- AIBaseStation.GetConstructionDate;
AIBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
AIEngine._GetDesignDate <- AIScriptEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}

View File

@@ -26,3 +26,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -19,3 +19,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -48,3 +48,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -48,3 +48,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -40,3 +40,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -33,3 +33,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -33,3 +33,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -33,3 +33,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -33,3 +33,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -26,3 +26,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -19,3 +19,55 @@ GSRoad.HasRoadType <- function(tile, road_type)
}
return false;
}
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -6,3 +6,55 @@
*/
GSLog.Info("13 API compatibility in effect.");
/* 14 splits date into calendar and economy time. Economy time ticks at the usual rate, but calendar time can be sped up, slowed down, or frozen entirely.
* This may break some scripts, but for maximum compatibility, all ScriptDate calls go to TimerGameEcomomy. */
GSDate <- GSDateEconomy;
GSBaseStation._GetConstructionDate <- GSBaseStation.GetConstructionDate;
GSBaseStation.GetConstructionDate <- function(station_id)
{
if (!IsValidBaseStation(station_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::BaseStation::Get(station_id)->build_date.base();
}
GSClient._GetJoinDate <- GSClient.GetJoinDate;
GSClient.GetJoinDate <- function(client)
{
NetworkClientInfo *ci = FindClientInfo(client);
if (ci == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)ci->join_date.base();
}
GSEngine._GetDesignDate <- GSEngine.GetDesignDate;
GSEngine.GetDesignDate <- function(engine_id)
{
if (!IsValidEngine(engine_id)) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)::Engine::Get(engine_id)->intro_date.base();
}
GSIndustry._GetConstructionDate <- GSIndustry.GetConstructionDate;
GSIndustry.GetConstructionDate <- function(industry_id)
{
Industry *i = Industry::GetIfValid(industry_id);
if (i == nullptr) return ScriptDateEconomy::DATE_INVALID;
return (ScriptDateEconomy::Date)i->construction_date.base();
}
GSStoryPage._GetDate <- GSStoryPage.GetDate;
GSStoryPage.GetDate <- function(story_page_id)
{
EnforcePrecondition(ScriptDateEconomy::DATE_INVALID, IsValidStoryPage(story_page_id));
EnforceDeityMode(ScriptDateEconomy::DATE_INVALID);
return (ScriptDateEconomy::Date)StoryPage::Get(story_page_id)->date.base();
}
GSStoryPage._SetDate <- GSStoryPage.SetDate;
GSStoryPage.SetDate <- function(story_page_id, date)
{
EnforcePrecondition(false, IsValidStoryPage(story_page_id));
EnforceDeityMode(false);
return ScriptObject::Command<CMD_SET_STORY_PAGE_DATE>::Do(story_page_id, date);
}

View File

@@ -17,6 +17,10 @@
*
* This version is not yet released. The following changes are not set in stone yet.
*
* Major API changes:
* \li All AIDate:: functions are split into AIDateCalendar and AIDateEconomy classes and mirrored in both. The exception is AIDate::GetSystemTime, which only exists in AIDateEconomy.
* \li Compatibility layers for AIDate:: map all functions to AIDateEconomy to break the fewest number of scripts possible. We apologize for any broken scripts. :(
*
* API additions:
* \li GSIndustry::GetConstructionDate
* \li GSAsyncMode

View File

@@ -17,6 +17,10 @@
*
* This version is not yet released. The following changes are not set in stone yet.
*
* Major API changes:
* \li All GSDate:: functions are split into GSDateCalendar and GSDateEconomy classes and mirrored in both. The exception is GSDate::GetSystemTime, which only exists in GSDateEconomy.
* \li Compatibility layers for GSDate:: map all functions to GSDateEconomy to break the fewest number of scripts possible. We apologize for any broken scripts. :(
*
* API additions:
* \li GSIndustry::GetConstructionDate
* \li GSAsyncMode