mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
9c255850a5
See: #425
145 lines
7.5 KiB
HTML
145 lines
7.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<title>JGR's Patchpack - Additions to Script Specifications (AI and GameScript)</title>
|
|
<style type="text/css">
|
|
td li { white-space: nowrap; text-align: left; }
|
|
th { white-space: nowrap; text-align: center; }
|
|
td, th { border: 1px solid #CCCCCC; padding: 0px 5px; }
|
|
table { border-collapse: collapse; empty-cells: show; }
|
|
.code { font-family: "Courier New", Courier, mono; color: darkgreen; }
|
|
.methodtext{ margin-left: 3em; }
|
|
.indent { margin-left: 1em; margin-bottom: 0.5em; }
|
|
dt { font-weight: bold; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h2>Additions to AI/GS Script Specifications in JGR's Patchpack</h2>
|
|
<p>This document describes non-standard additions to the Official OpenTTD <a href="https://docs.openttd.org/ai-api/">AI</a> and <a href="https://docs.openttd.org/gs-api/">GS</a> Specifications which are present in this patchpack.
|
|
<p>These additions MAY also be present in other patchpacks. They MAY be removed or moved in future, if necessary.</p>
|
|
|
|
<p>Scripts which use any of these features SHOULD check whether the feature is present and if not, fallback to not using it and/or emitting a clear and end-user friendly error message.<br>
|
|
Testing for the presence of methods may be done using the "in" operator.</p>
|
|
|
|
<h3>Date: <a href="https://docs.openttd.org/gs-api/classGSDate.html">GSDate Class</a> and <a href="https://docs.openttd.org/ai-api/classAIDate.html">AIDate Class</a></h3>
|
|
<div class="indent">
|
|
<h4>Additional Static Public Member Functions:</h4>
|
|
<div class="indent">
|
|
<div class="code">static int32 GetDayLengthFactor ()</div>
|
|
<div class="methodtext">Get current day length factor.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool IsTimeShownInMinutes ()</div>
|
|
<div class="methodtext">Get whether time is shown in minutes in the game settings.</div>
|
|
<div class="methodtext">This ignores the "Use client time settings instead of savegame time settings" setting.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static int32 GetTicksPerMinute ()</div>
|
|
<div class="methodtext">Get the ticks per minutes in the game settings.</div>
|
|
<div class="methodtext">This ignores the "Use client time settings instead of savegame time settings" setting.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static DateTicksScaled GetCurrentScaledDateTicks ()</div>
|
|
<div class="methodtext">Get the current scaled date ticks.</div>
|
|
<div class="methodtext">This increments at the same rate regardless of the day length factor.</div>
|
|
<div class="methodtext">Changing the day length factor will also change this value.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static int32 GetHour (DateTicksScaled ticks)</div>
|
|
<div class="methodtext">Get the hour of the given scaled date ticks value.</div>
|
|
<div class="methodtext">This ignores the "Use client time settings instead of savegame time settings" setting.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static int32 GetMinute (DateTicksScaled ticks)</div>
|
|
<div class="methodtext">Get the minute of the given scaled date ticks value.</div>
|
|
<div class="methodtext">This ignores the "Use client time settings instead of savegame time settings" setting.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3>Marine: <a href="https://docs.openttd.org/gs-api/classGSMarine.html">GSMarine Class</a> and <a href="https://docs.openttd.org/ai-api/classAIMarine.html">AIMarine Class</a></h3>
|
|
<div class="indent">
|
|
<h4>Additional Static Public Member Functions:</h4>
|
|
<div class="indent">
|
|
<div class="code">static bool BuildRiver (TileIndex tile)</div>
|
|
<div class="methodtext">Builds a river on tile (subject to permissions/settings).</div>
|
|
<div class="methodtext">All other details are the same as BuildCanal.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3>Road: <a href="https://docs.openttd.org/gs-api/classGSRoad.html">GSRoad Class</a> and <a href="https://docs.openttd.org/ai-api/classAIRoad.html">AIRoad Class</a></h3>
|
|
<div class="indent">
|
|
<h4>Additional Static Public Member Functions:</h4>
|
|
<div class="indent">
|
|
<div class="code">static bool HasRoadTramType(TileIndex tile, RoadTramTypes road_tram_type)</div>
|
|
<div class="methodtext">Check if a tile has the given road tram type.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static RoadType GetRoadType(TileIndex tile, RoadTramTypes road_tram_type)</div>
|
|
<div class="methodtext">Get the RoadType that is used on a tile.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool IsCatenaryRoadType(RoadType roadtype)</div>
|
|
<div class="methodtext">Checks whether the given road type uses a catenary.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool IsNonLevelCrossingRoadType(RoadType roadtype)</div>
|
|
<div class="methodtext">Checks whether the given road type disallows level crossings.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool IsNoTownHousesRoadType(RoadType roadtype)</div>
|
|
<div class="methodtext">Checks whether the given road type cannot be used by towns to build houses.</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool IsTownBuildableRoadType(RoadType roadtype)</div>
|
|
<div class="methodtext">Checks whether the given road type is buildable by towns.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3>Company: <a href="https://docs.openttd.org/gs-api/classGSCompany.html">GSCompany Class</a> and <a href="https://docs.openttd.org/ai-api/classAICompany.html">AICompany Class</a></h3>
|
|
<div class="indent">
|
|
<h4>Additional Static Public Member Functions:</h4>
|
|
<div class="indent">
|
|
<div class="code">static bool GetAnnualExpenseValue (CompanyID company, uint32 year_offset, ExpensesType expenses_type)</div>
|
|
<div class="methodtext">Get the annual expense value for the given company.</div>
|
|
<div class="methodtext">year_offset is relative to the current year and must be either: 0, 1, or 2.</div>
|
|
</div>
|
|
<h4>Additional Enum Values:</h4>
|
|
<div class="indent">
|
|
|
|
<div class="code">ExpensesType</div>
|
|
<div>Additional value: <span class="code">EXPENSES_SHARING_COST</span></div>
|
|
<div class="methodtext">Infrastructure sharing costs.</div>
|
|
<div>Additional value: <span class="code">EXPENSES_SHARING_INC</span></div>
|
|
<div class="methodtext">Infrastructure sharing income.</div>
|
|
<div>ExpensesType is additionally available via AICompany.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h3>Inflation: GSInflation Class and AIInflation Class</h3>
|
|
<div class="indent">
|
|
<h4>Static Public Member Functions:</h4>
|
|
<div class="indent">
|
|
<div class="code">static int64 GetPriceFactor ()</div>
|
|
<div class="methodtext">Get the inflation factor for prices.</div>
|
|
<div class="methodtext">Returns the inflation factor as a fixed point value (16 bits).</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static int64 GetPaymentFactor ()</div>
|
|
<div class="methodtext">Get the inflation factor for payments.</div>
|
|
<div class="methodtext">Returns the inflation factor as a fixed point value (16 bits).</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool SetPriceFactor (int64 factor)</div>
|
|
<div class="methodtext">Set the inflation factor for prices (GS only).</div>
|
|
<div class="methodtext">The inflation factor is a fixed point value (16 bits).</div>
|
|
</div>
|
|
<div class="indent">
|
|
<div class="code">static bool SetPaymentFactor (int64 factor)</div>
|
|
<div class="methodtext">Set the inflation factor for payments (GS only).</div>
|
|
<div class="methodtext">The inflation factor is a fixed point value (16 bits).</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|