UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cp_market.h File Reference

Header for single player market stuff. More...

Go to the source code of this file.

Data Structures

struct  market_s
 

Typedefs

typedef struct market_s market_t
 

Functions

bool BS_AircraftIsOnMarket (const aircraft_t *aircraft)
 Checks whether a given aircraft should appear on the market. More...
 
int BS_GetAircraftOnMarket (const aircraft_t *aircraft)
 Get the number of aircraft of the given type on the market. More...
 
int BS_GetAircraftSellingPrice (const aircraft_t *aircraft)
 Get the price for an aircraft that you want to sell on the market. More...
 
int BS_GetAircraftBuyingPrice (const aircraft_t *aircraft)
 Get the price for an aircraft that you want to buy on the market. More...
 
bool BS_BuyAircraft (const aircraft_t *aircraftTemplate, base_t *base)
 Buys an aircraft. More...
 
bool BS_SellAircraft (aircraft_t *aircraft)
 Sells the given aircraft with all the equipment. More...
 
bool BS_IsOnMarket (const objDef_t *item)
 Check if an item is on market. More...
 
int BS_GetItemOnMarket (const objDef_t *od)
 Get the number of items of the given type on the market. More...
 
void BS_AddItemToMarket (const objDef_t *od, int amount)
 Internal function to add items to the market. More...
 
int BS_GetItemSellingPrice (const objDef_t *od)
 Get the price for an item that you want to sell on the market. More...
 
int BS_GetItemBuyingPrice (const objDef_t *od)
 Get the price for an item that you want to buy on the market. More...
 
bool BS_BuyItem (const objDef_t *od, base_t *base, int count)
 Buys items from the market. More...
 
bool BS_SellItem (const objDef_t *od, base_t *base, int count)
 Sells items from the market. More...
 
bool BS_BuyUGV (const ugv_t *ugv, base_t *base)
 Buys the given UGV. More...
 
bool BS_SellUGV (Employee *robot)
 Sells the given UGV with all the equipment. More...
 
void BS_InitMarket (const struct campaign_s *campaign)
 
void CP_CampaignRunMarket (struct campaign_s *campaign)
 make number of items change every day. More...
 

Detailed Description

Header for single player market stuff.

Definition in file cp_market.h.

Typedef Documentation

typedef struct market_s market_t

market structure

Function Documentation

void BS_AddItemToMarket ( const objDef_t od,
int  amount 
)

Internal function to add items to the market.

Parameters
[in]odObject definition (the item itself)
[in]amountNon-negative number of items to add

Definition at line 63 of file cp_market.cpp.

References BS_GetMarket, objDef_s::idx, and market_s::numItems.

Referenced by BS_ProcessCraftItemSale(), BS_SellItem(), BS_SellUGV(), and CP_CampaignRunMarket().

bool BS_AircraftIsOnMarket ( const aircraft_t aircraft)

Checks whether a given aircraft should appear on the market.

Parameters
aircraftThe aircraft to check
Returns
true if the aircraft should appear on the market

Definition at line 111 of file cp_market.cpp.

References AIR_IsUFO, and aircraft_s::price.

Referenced by BS_FillMarket_f(), and BS_GetAircraftOnMarket().

bool BS_BuyAircraft ( const aircraft_t aircraftTemplate,
base_t base 
)

Buys an aircraft.

Parameters
[in]aircraftTemplateThe aircraft template to buy
[out]baseBase to buy at
Returns
true if the aircraft could get bought, false otherwise

Definition at line 236 of file cp_market.cpp.

References AIR_NewAircraft(), BS_GetAircraftBuyingPrice(), BS_GetAircraftOnMarket(), BS_RemoveAircraftFromMarket(), ccs, cgi, CP_UpdateCredits(), ccs_s::credits, and ERR_DROP.

Referenced by BS_Buy_f().

bool BS_BuyItem ( const objDef_t od,
base_t base,
int  count 
)

Buys items from the market.

Parameters
[in]odpointer to the item (Object Definition record)
[out]baseBase to buy at
[in]countNumber of items to buy
Returns
true if the ugv could get bought, false otherwise

Definition at line 381 of file cp_market.cpp.

References B_AddToStorage(), BS_GetItemBuyingPrice(), BS_GetItemOnMarket(), BS_IsOnMarket(), BS_RemoveItemFromMarket(), CAP_GetFreeCapacity(), CAP_ITEMS, ccs, cgi, CP_UpdateCredits(), ccs_s::credits, ERR_DROP, and objDef_s::size.

Referenced by BS_Buy_f().

bool BS_BuyUGV ( const ugv_t ugv,
base_t base 
)

Buys the given UGV.

Parameters
[in]ugvThe ugv template of the UGV to buy
[out]baseBase to buy at
Returns
true if the ugv could get bought, false otherwise
Todo:
Implement this correctly once we have UGV

Definition at line 307 of file cp_market.cpp.

References B_AddToStorage(), BS_GetItemOnMarket(), BS_RemoveItemFromMarket(), CAP_GetFreeCapacity(), CAP_ITEMS, ccs, cgi, CP_UpdateCredits(), ccs_s::credits, E_CountUnhiredRobotsByType(), E_HireRobot(), ERR_DROP, ugv_s::id, INVSH_GetItemByID(), ugv_s::price, objDef_s::size, UGV_SIZE, and ugv_s::weapon.

Referenced by BS_Buy_f().

int BS_GetAircraftBuyingPrice ( const aircraft_t aircraft)

Get the price for an aircraft that you want to buy on the market.

Parameters
[in]aircraftThe aircraft to buy
Returns
The price of the aircraft

Definition at line 210 of file cp_market.cpp.

References AIR_IsUFO, market_s::askAircraft, BS_GetMarket, cgi, aircraft_s::id, and type.

Referenced by BS_Buy_f(), BS_BuyAircraft(), and BS_FillMarket_f().

int BS_GetAircraftOnMarket ( const aircraft_t aircraft)

Get the number of aircraft of the given type on the market.

Parameters
[in]aircraftThe aircraft to search the market for
Returns
The amount of aircraft for the given type

Definition at line 126 of file cp_market.cpp.

References BS_AircraftIsOnMarket(), BS_GetMarket, cgi, aircraft_s::id, market_s::numAircraft, and type.

Referenced by BS_BuyAircraft(), and BS_FillMarket_f().

int BS_GetAircraftSellingPrice ( const aircraft_t aircraft)

Get the price for an aircraft that you want to sell on the market.

Parameters
[in]aircraftThe aircraft to sell
Returns
The price of the aircraft

Definition at line 169 of file cp_market.cpp.

References AIR_IsUFO, AIR_STATS_DAMAGE, aircraftSlot_s::ammo, market_s::bidAircraft, BS_GetItemSellingPrice(), BS_GetMarket, cgi, aircraft_s::damage, aircraft_s::electronics, i, aircraft_s::id, aircraftSlot_s::item, aircraft_s::maxElectronics, aircraft_s::maxWeapons, aircraft_s::shield, aircraft_s::stats, aircraft_s::tpl, type, and aircraft_s::weapons.

Referenced by BS_FillMarket_f(), and BS_SellAircraft().

int BS_GetItemBuyingPrice ( const objDef_t od)

Get the price for an item that you want to buy on the market.

Parameters
[in]odThe item to buy
Returns
The price of the item

Definition at line 100 of file cp_market.cpp.

References market_s::askItems, BS_GetMarket, and objDef_s::idx.

Referenced by BS_Buy_f(), BS_BuyItem(), and BS_FillMarket_f().

int BS_GetItemOnMarket ( const objDef_t od)

Get the number of items of the given type on the market.

Parameters
[in]odthe item (objDef) to search the market for
Returns
The amount of items for the given type

Definition at line 52 of file cp_market.cpp.

References BS_GetMarket, BS_IsOnMarket(), objDef_s::idx, and market_s::numItems.

Referenced by BS_Buy_f(), BS_BuyItem(), BS_BuyUGV(), and BS_FillMarket_f().

int BS_GetItemSellingPrice ( const objDef_t od)

Get the price for an item that you want to sell on the market.

Parameters
[in]odThe item to sell
Returns
The price of the item

Definition at line 89 of file cp_market.cpp.

References market_s::bidItems, BS_GetMarket, and objDef_s::idx.

Referenced by B_SellOrAddItems(), BS_FillMarket_f(), BS_GetAircraftSellingPrice(), BS_ProcessCraftItemSale(), and BS_SellItem().

void BS_InitMarket ( const struct campaign_s campaign)
bool BS_IsOnMarket ( const objDef_t item)

Check if an item is on market.

Parameters
[in]itemPointer to the item to check
Note
this function doesn't check if the item is available on market (buyable > 0)

Definition at line 41 of file cp_market.cpp.

References objDef_s::isVirtual, and objDef_s::notOnMarket.

Referenced by BS_Buy_f(), BS_BuyItem(), BS_FillMarket_f(), BS_GetItemOnMarket(), BS_SaveXML(), BS_SellItem(), BS_ShowInfo_f(), and CP_ItemsSanityCheck().

bool BS_SellAircraft ( aircraft_t aircraft)

Sells the given aircraft with all the equipment.

Parameters
aircraftThe aircraft to sell
Returns
true if the aircraft could get sold, false otherwise

Definition at line 264 of file cp_market.cpp.

References AIR_DeleteAircraft(), AIR_GetTeamSize(), AIR_IsAircraftInBase(), aircraftSlot_s::ammo, BS_AddAircraftToMarket(), BS_GetAircraftSellingPrice(), BS_ProcessCraftItemSale(), ccs, CP_UpdateCredits(), ccs_s::credits, aircraft_s::electronics, aircraftSlot_s::item, aircraft_s::maxElectronics, aircraft_s::maxWeapons, aircraft_s::shield, and aircraft_s::weapons.

Referenced by BS_Buy_f().

bool BS_SellItem ( const objDef_t od,
base_t base,
int  count 
)

Sells items from the market.

Parameters
[in]odpointer to the item (Object Definition record)
[out]baseBase to sell at
[in]countNumber of items to sell
Returns
true if the ugv could get sold, false otherwise

Definition at line 413 of file cp_market.cpp.

References B_AddToStorage(), B_ItemInBase(), BS_AddItemToMarket(), BS_GetItemSellingPrice(), BS_IsOnMarket(), ccs, cgi, CP_UpdateCredits(), ccs_s::credits, and ERR_DROP.

Referenced by B_SellOrAddItems(), and BS_Buy_f().

bool BS_SellUGV ( Employee robot)

Sells the given UGV with all the equipment.

Parameters
robotThe employee record of the UGV to sell
Returns
true if the ugv could get sold, false otherwise
Todo:
Implement this correctly once we have UGV
Todo:
message - Couldn't fire employee.

Definition at line 343 of file cp_market.cpp.

References B_AddToStorage(), Employee::baseHired, BS_AddItemToMarket(), ccs, cgi, Employee::chr, CP_UpdateCredits(), ccs_s::credits, DEBUG_CLIENT, ERR_DROP, Employee::getUGV(), ugv_s::id, INVSH_GetItemByID(), ugv_s::price, character_s::ucn, Employee::unhire(), and ugv_s::weapon.

Referenced by BS_Buy_f().

void CP_CampaignRunMarket ( campaign_t campaign)

make number of items change every day.

See also
CP_CampaignRun
daily called
Note
This function makes items number on market slowly reach the asymptotic number of items defined in equipment.ufo If an item has just been researched, it's not available on market until RESEARCH_LIMIT_DELAY days is reached.

< Number of days to reach the asymptotic number of items

< Numbers of days after end of research to wait in order to have items added on market

Definition at line 578 of file cp_market.cpp.

References AIR_GetAircraft(), campaign_s::asymptoticMarketDef, BS_AddAircraftToMarket(), BS_AddItemToMarket(), BS_GetMarket, BS_RemoveAircraftFromMarket(), BS_RemoveItemFromMarket(), ccs, cgi, cgame_import_s::Com_DropShipTypeToShortName(), cgame_import_s::csi, market_s::currentEvolutionAircraft, market_s::currentEvolutionItems, ccs_s::date, date_s::day, i, int(), INVSH_GetItemByIDX(), campaign_s::marketDef, market_s::numAircraft, equipDef_s::numAircraft, market_s::numItems, equipDef_s::numItems, csi_s::numODs, technology_s::researchedDate, RS_GetTechForItem(), RS_IsResearched_ptr(), aircraft_s::tech, and type.

Referenced by CP_CampaignRun(), and TEST_F().