mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
Feature: Add tile parameter for GSCompany.ChangeBankBalance to show text effect if needed (#8573)
This commit is contained in:
parent
3345d54ad9
commit
4b42ecb0f6
@ -6,3 +6,10 @@
|
||||
*/
|
||||
|
||||
GSLog.Info("1.10 API compatibility in effect.");
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -28,3 +28,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -28,3 +28,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -20,3 +20,11 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
||||
|
@ -13,3 +13,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -13,3 +13,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -13,3 +13,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -13,3 +13,10 @@ GSBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -6,3 +6,10 @@
|
||||
*/
|
||||
|
||||
GSLog.Info("1.9 API compatibility in effect.");
|
||||
|
||||
/* 1.11 adds a tile parameter. */
|
||||
GSCompany._ChangeBankBalance <- GSCompany.ChangeBankBalance;
|
||||
GSCompany.ChangeBankBalance <- function(company, delta, expenses_type)
|
||||
{
|
||||
return GSCompany._ChangeBankBalance(company, delta, expenses_type, GSMap.TILE_INVALID);
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
#include "company_func.h"
|
||||
#include "company_gui.h"
|
||||
#include "company_base.h"
|
||||
#include "tile_map.h"
|
||||
#include "texteff.hpp"
|
||||
#include "core/backup_type.hpp"
|
||||
|
||||
#include "table/strings.h"
|
||||
@ -207,7 +209,7 @@ CommandCost CmdMoneyCheat(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
||||
|
||||
/**
|
||||
* Change the bank bank balance of a company by inserting or removing money without affecting the loan.
|
||||
* @param tile unused
|
||||
* @param tile tile to show text effect on (if not 0)
|
||||
* @param flags operation to perform
|
||||
* @param p1 the amount of money to receive (if positive), or spend (if negative)
|
||||
* @param p2 (bit 0-7) - the company ID.
|
||||
@ -230,6 +232,10 @@ CommandCost CmdChangeBankBalance(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
Backup<CompanyID> cur_company(_current_company, company, FILE_LINE);
|
||||
SubtractMoneyFromCompany(CommandCost(expenses_type, -delta));
|
||||
cur_company.Restore();
|
||||
|
||||
if (tile != 0) {
|
||||
ShowCostOrIncomeAnimation(TileX(tile) * TILE_SIZE, TileY(tile) * TILE_SIZE, GetTilePixelZ(tile), -delta);
|
||||
}
|
||||
}
|
||||
|
||||
/* This command doesn't cost anything for deity. */
|
||||
|
@ -35,6 +35,9 @@
|
||||
* \li GSStoryPage::MakeVehicleButtonReference
|
||||
* \li GSPriorityQueue
|
||||
*
|
||||
* Other changes:
|
||||
* \li GSCompany::ChangeBankBalance takes one extra parameter to refer to a location to show text effect on
|
||||
*
|
||||
* \b 1.10.0
|
||||
*
|
||||
* API additions:
|
||||
|
@ -226,17 +226,19 @@
|
||||
return GetLoanAmount() == loan;
|
||||
}
|
||||
|
||||
/* static */ bool ScriptCompany::ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type)
|
||||
/* static */ bool ScriptCompany::ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type, TileIndex tile)
|
||||
{
|
||||
EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY);
|
||||
EnforcePrecondition(false, expenses_type < (ExpensesType)::EXPENSES_END);
|
||||
EnforcePrecondition(false, (int64)delta >= INT32_MIN);
|
||||
EnforcePrecondition(false, (int64)delta <= INT32_MAX);
|
||||
EnforcePrecondition(false, tile == INVALID_TILE || ::IsValidTile(tile));
|
||||
|
||||
company = ResolveCompanyID(company);
|
||||
EnforcePrecondition(false, company != COMPANY_INVALID);
|
||||
|
||||
return ScriptObject::DoCommand(0, (uint32)(delta), company | expenses_type << 8 , CMD_CHANGE_BANK_BALANCE);
|
||||
/* Network commands only allow 0 to indicate invalid tiles, not INVALID_TILE */
|
||||
return ScriptObject::DoCommand(tile == INVALID_TILE ? 0 : tile , (uint32)(delta), company | expenses_type << 8 , CMD_CHANGE_BANK_BALANCE);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptCompany::BuildCompanyHQ(TileIndex tile)
|
||||
|
@ -242,6 +242,7 @@ public:
|
||||
* @param company The company to change the bank balance of.
|
||||
* @param delta Amount of money to give or take from the bank balance. A positive value adds money to the bank balance.
|
||||
* @param expenses_type The account in the finances window that will register the cost.
|
||||
* @param tile The tile to show text effect on or ScriptMap::TILE_INVALID
|
||||
* @return True, if the bank balance was changed.
|
||||
* @game @pre No ScriptCompanyMode active in scope.
|
||||
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
@ -250,7 +251,7 @@ public:
|
||||
* @note You need to create your own news message to inform about costs/gifts that you create using this command.
|
||||
* @api -ai
|
||||
*/
|
||||
static bool ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type);
|
||||
static bool ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type, TileIndex tile);
|
||||
|
||||
/**
|
||||
* Get the income of the company in the given quarter.
|
||||
|
Loading…
Reference in New Issue
Block a user