Skip to content

Commit

Permalink
Add tile parameter for GSCompany.ChangeBankBalance to show text effec…
Browse files Browse the repository at this point in the history
…t if needed
  • Loading branch information
ldpl committed Jan 14, 2021
1 parent 86818e5 commit c79b917
Show file tree
Hide file tree
Showing 13 changed files with 79 additions and 4 deletions.
7 changes: 7 additions & 0 deletions bin/game/compat_1.10.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.2.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.3.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
8 changes: 8 additions & 0 deletions bin/game/compat_1.4.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

7 changes: 7 additions & 0 deletions bin/game/compat_1.5.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.6.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.7.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.8.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
7 changes: 7 additions & 0 deletions bin/game/compat_1.9.nut
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
8 changes: 7 additions & 1 deletion src/misc_cmd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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.
Expand All @@ -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. */
Expand Down
3 changes: 3 additions & 0 deletions src/script/api/game_changelog.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions src/script/api/script_company.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -226,17 +226,18 @@
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);
return ScriptObject::DoCommand(tile == INVALID_TILE ? 0 : tile , (uint32)(delta), company | expenses_type << 8 , CMD_CHANGE_BANK_BALANCE);
}

/* static */ bool ScriptCompany::BuildCompanyHQ(TileIndex tile)
Expand Down
3 changes: 2 additions & 1 deletion src/script/api/script_company.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ class ScriptCompany : public ScriptObject {
* @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.
Expand All @@ -250,7 +251,7 @@ class ScriptCompany : public ScriptObject {
* @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.
Expand Down

0 comments on commit c79b917

Please sign in to comment.