Skip to content

Latest commit

 

History

History
132 lines (129 loc) · 32.6 KB

contract_manager.cpp.md

File metadata and controls

132 lines (129 loc) · 32.6 KB

contract_manager.cpp: 124 functions

Function map of cm0102.exe 3.9.68. Generated from the Bosman Edition repo. Do not edit by hand: report a wrong name as an issue.

AI agents named each function from its code, and a review checked every medium and low name. Treat a medium or low name as a hint and read the code before you rely on it. "Cited in" lists research docs of the Bosman Edition repo that name the address.

Address Size Name Convention Purpose Confidence Model Cited in
0x4c6d40 6 contract_manager_static_date_ae1048_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1048 and registers its empty destructor stub with atexit. high opus 2026-10-16-sweep-europe.md
0x4c6d60 1 contract_manager_static_date_ae1048_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1048, since Date has no destructor work to do. high opus
0x4c6d70 6 contract_manager_static_date_ae1030_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1030 and registers its empty destructor stub with atexit. high opus
0x4c6d90 1 contract_manager_static_date_ae1030_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1030, since Date has no destructor work to do. high opus
0x4c6da0 6 contract_manager_static_date_ae1058_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1058 and registers its empty destructor stub with atexit. high opus
0x4c6dc0 1 contract_manager_static_date_ae1058_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1058, since Date has no destructor work to do. high opus
0x4c6dd0 6 contract_manager_static_date_ae1010_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1010 and registers its empty destructor stub with atexit. high opus
0x4c6df0 1 contract_manager_static_date_ae1010_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1010, since Date has no destructor work to do. high opus
0x4c6e00 6 contract_manager_static_date_ae1060_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1060 and registers its empty destructor stub with atexit. high opus
0x4c6e20 1 contract_manager_static_date_ae1060_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1060, since Date has no destructor work to do. high opus
0x4c6e30 6 contract_manager_static_date_ae1040_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1040 and registers its empty destructor stub with atexit. high opus
0x4c6e50 1 contract_manager_static_date_ae1040_dtor cdecl(void) ret 0 Empty atexit destructor for the global Date at 0xae1040, since Date has no destructor work to do. high opus
0x4c6e60 6 contract_manager_static_date_ae1090_init cdecl(void) ret 0 Static initialiser that constructs the global Date at 0xae1090 and registers its empty destructor stub with atexit. high opus
0x4c6e80 1 contract_manager_static_date_ae1090_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1090, since Date has a trivial destructor. high opus
0x4c6e90 6 contract_manager_static_date_ae1068_init cdecl(void) ret 0 Constructs the static Date at 0xae1068 and registers its empty destructor 0x4c6eb0 with the C runtime atexit list. high opus
0x4c6eb0 1 contract_manager_static_date_ae1068_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1068, since Date has a trivial destructor. high opus
0x4c6ec0 6 contract_manager_static_date_ae1008_init cdecl(void) ret 0 Constructs the static Date at 0xae1008 and registers its empty destructor 0x4c6ee0 with the C runtime atexit list. high opus
0x4c6ee0 1 contract_manager_static_date_ae1008_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1008, since Date has a trivial destructor. high opus
0x4c6ef0 6 contract_manager_static_date_ae1020_init cdecl(void) ret 0 Constructs the static Date at 0xae1020 and registers its empty destructor 0x4c6f10 with the C runtime atexit list. high opus
0x4c6f10 1 contract_manager_static_date_ae1020_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1020, since Date has a trivial destructor. high opus
0x4c6f20 6 contract_manager_static_date_ae1070_init cdecl(void) ret 0 Constructs the static Date at 0xae1070 and registers its empty destructor 0x4c6f40 with the C runtime atexit list. high opus
0x4c6f40 1 contract_manager_static_date_ae1070_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1070, since Date has a trivial destructor. high opus
0x4c6f50 6 contract_manager_static_date_ae1018_init cdecl(void) ret 0 Constructs the static Date at 0xae1018 and registers its empty destructor 0x4c6f70 with the C runtime atexit list. high opus
0x4c6f70 1 contract_manager_static_date_ae1018_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1018, since Date has a trivial destructor. high opus
0x4c6f80 6 contract_manager_static_date_ae1038_init cdecl(void) ret 0 Constructs the static Date at 0xae1038 and registers its empty destructor 0x4c6fa0 with the C runtime atexit list. high opus
0x4c6fa0 1 contract_manager_static_date_ae1038_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1038, since Date has a trivial destructor. high opus
0x4c6fb0 6 contract_manager_static_date_ae1028_init cdecl(void) ret 0 Constructs the static Date at 0xae1028 and registers its empty destructor 0x4c6fd0 with the C runtime atexit list. high opus
0x4c6fd0 1 contract_manager_static_date_ae1028_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1028, since Date has a trivial destructor. high opus
0x4c6fe0 6 contract_manager_static_date_ae1078_init cdecl(void) ret 0 Constructs the static Date at 0xae1078 and registers its empty destructor 0x4c7000 with the C runtime atexit list. high opus
0x4c7000 1 contract_manager_static_date_ae1078_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1078, since Date has a trivial destructor. high opus
0x4c7010 6 contract_manager_static_date_ae1088_init cdecl(void) ret 0 Constructs the static Date at 0xae1088 and registers its empty destructor 0x4c7030 with the C runtime atexit list. high opus
0x4c7030 1 contract_manager_static_date_ae1088_dtor cdecl(void) ret 0 Serves as the empty atexit destructor for the static Date at 0xae1088, since Date has a trivial destructor. high opus
0x4c7040 304 (+16 unwind) CONTRACT_MANAGER::CONTRACT_MANAGER thiscall(CONTRACT_MANAGER *this, int save_handle) ret 4, returns this Waits for the CM01/02 CD, zeroes the fifteen manager fields, sets sixteen static contract Dates from day offsets and loads saved contracts when given a handle. high opus 2026-10-14-game-creation-inventory.md
0x4c74f0 40 CONTRACT_MANAGER::~CONTRACT_MANAGER thiscall(CONTRACT_MANAGER *this) ret 0 Frees the three malloc buffers at fields 0, 3 and 10 and destroys and deletes the two linked lists at fields 13 and 14. high opus 2026-10-16-sweep-europe.md
0x4c7560 305 (+3 unwind) CONTRACT_MANAGER::initialise_all_staff_contracts thiscall(CONTRACT_MANAGER *this) ret 0 Allocates the staff contract array, values every staff member and builds a contract for each staff member whose job takes one. high opus 2026-10-14-game-creation-inventory.md
0x4c7950 28 CONTRACT_MANAGER::add_staff_contract thiscall(CONTRACT_MANAGER *this, Staff *staff, int value) ret 8 Takes a free staff contract slot, links the staff index table entry to it and builds the contract from the given value. high opus
0x4c79a0 87 CONTRACT_MANAGER::get_free_staff_contract_space thiscall(CONTRACT_MANAGER *this, int append_only) ret 4, returns slot index or -1 Returns a staff contract slot index, reusing an empty slot unless told to append, and grows the array by 200 slots when full. high opus
0x4c7ac0 2637 (+10 unwind) CONTRACT_MANAGER::daily_update thiscall(CONTRACT_MANAGER *this, const Date *today, char mode, char run_staff_pass) ret 0xc Runs the daily contract pass over every staff member for expiries, renewals, releases, moves and news, then compacts the decision-date list and processes due decisions. high opus 2026-10-14-game-creation-inventory.md
0x4c9f60 171 CONTRACT_MANAGER::add_talks_record thiscall(CONTRACT_MANAGER *this, Staff **player, Staff **manager, Club **club, char flag) ret 0x10 Adds a dated player, club and manager record to the sorted talks list at this+0x28 unless the same key is already there. medium opus
0x4ca1c0 81 CONTRACT_MANAGER::remove_talks_records thiscall(CONTRACT_MANAGER *this, Staff *player, int *manager_or_null, int *club_or_null) ret 0xc Removes every talks record for a player that also matches the optional manager and club keys, then sorts the list again. medium opus
0x4ca2a0 32 CONTRACT_MANAGER::find_talks_record thiscall(CONTRACT_MANAGER *this, Staff *player, int *manager, int *club) ret 0xc, returns record or NULL Binary-searches the talks list at this+0x28 for a player, club and manager key and returns the record. medium opus
0x4ca300 116 CONTRACT_MANAGER::get_current_contract_offers thiscall(CONTRACT_MANAGER *this, Club *club, void **out_offers) ret 8, returns count Copies every open contract offer made by a club into a new buffer and returns the offer count. high opus
0x4ca470 256 contract_manager_get_deserved_squad_status stdcall(Staff *staff, STAFF_CONTRACT *contract) ret 8, returns char squad status Returns the squad status a player believes he deserves from his age, ambition, reputation, current status and happiness. medium opus
0x4ca6d0 800 CONTRACT_MANAGER::update_after_match thiscall(CONTRACT_MANAGER *this, Fixture *match, MatchSquads *squads) ret 8 After a match, pays appearance and goal bonuses and adjusts each squad player's happiness and form morale from rating and selection. high opus
0x4cb0a0 143 contract_manager_raise_match_morale stdcall(Staff *player, Club *club, STAFF_CONTRACT *contract) ret 0xc Raises a player's contract form morale after a good game, caps it by his unrest flags and clears those flags when he is happy. medium opus
0x4cb250 546 contract_manager_lower_match_morale stdcall(Staff *player, Club *club, STAFF_CONTRACT *contract) ret 0xc Lowers a player's contract form morale after a poor game or omission, and may flag him as unsettled when the transfer window is open. medium opus
0x4cb960 17 staff_is_not_board_member stdcall(Staff *staff) ret 4, returns bool Returns false when the staff member holds a board job (codes 1 to 4) at a club, and true otherwise. medium opus
0x4cb990 115 staff_can_take_job stdcall(char job, Staff *staff) ret 8, returns bool Returns whether a staff member is suitable for a given job code from his age, current job and player or non-player data. medium opus
0x4cbb20 25 is_contract_staff_job stdcall(char job) ret 4, returns bool Returns true for the job codes whose holders take a staff contract from the contract manager. medium opus
0x4cbb60 184 CONTRACT_MANAGER::get_squad_placement thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8, returns char 0 to 4 Returns the placement of a player at a club: 1 reserves, 2 first team, 3 linked B side, 4 main club with a linked side, 0 none. high sonnet
0x4cbd20 353 CONTRACT_MANAGER::toggle_squad_placement thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club, Club **out_new_club) ret 0xc, returns bool Moves a player between a club's first team and reserves, or between the club and its linked side, updating squad slots. high sonnet
0x4cc0b0 27 CONTRACT_MANAGER::move_to_first_team thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8, returns bool Moves a player up to the first team or the main club when he is in the reserves or on the linked B side, and returns false otherwise. medium opus
0x4cc0f0 27 CONTRACT_MANAGER::move_to_reserves thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8, returns bool Moves a player down to the reserves or the linked B side when he is in the first team of a club, and returns false otherwise. medium opus
0x4cc130 144 CONTRACT_MANAGER::get_squad_flags_for_club thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8, returns byte Returns the squad flags a club screen shows for a player, using the loan contract reserve bit when he is on loan elsewhere. medium opus
0x4cc2d0 4 contract_manager_get_player_morale stdcall(Staff *staff) ret 4, returns char Returns the morale value of a staff member's player record. high opus
0x4cc2e0 54 contract_manager_write_morale_text stdcall(Staff *staff, char *out_text, int unused) ret 0xc Writes the morale word, from Very Low to Superb, for a player's morale value into a text buffer. high opus 2026-10-14-columns-and-colours-inventory.md, columns.c
0x4cc3a0 74 contract_manager_write_morale_comparison_text stdcall(Staff *a, Staff *b, char *out_text, int unused) ret 0x10, returns char difference Compares the morale of two players, writes Same, Marginal, Better or Superior into a buffer and returns the difference. high opus 2026-10-16-comparison-screen-inventory.md
0x4cc490 265 (+4 unwind) CONTRACT_MANAGER::add_contract_offer thiscall(CONTRACT_MANAGER *this, STAFF_CONTRACT *terms, int transfer_slot, int value, char flag, int unused, int schedule_decision, int agreed) ret 0x1c Adds a contract offer to the offer list or updates the existing offer for the same player and club, then links the transfer slot. high opus
0x4cc810 109 STAFF_CONTRACT::operator= thiscall(STAFF_CONTRACT *this, const STAFF_CONTRACT *src) ret 4, returns this Copies every field of one 0x50-byte staff contract into another, keeping the bit fields at +0x35 and +0x4f. high opus
0x4cc930 61 CONTRACT_MANAGER::schedule_decision_for_transfer thiscall(CONTRACT_MANAGER *this, TransferOffer *offer) ret 4, returns bool Marks the matching contract offer as live and schedules the player's decision once a transfer fee is agreed. medium opus
0x4cc9e0 28 CONTRACT_MANAGER::find_contract_offer thiscall(CONTRACT_MANAGER *this, int staff_id, int club_id) ret 8, returns offer or NULL Returns the contract offer for a given staff id and club id from the offer list. high opus 2026-10-16-sweep-rulebooks.md
0x4cca30 25 CONTRACT_MANAGER::find_agreed_contract_offer thiscall(CONTRACT_MANAGER *this, int staff_id) ret 4, returns offer or NULL Returns the contract offer for a staff id whose offer state is agreed. medium opus
0x4cca70 69 CONTRACT_MANAGER::remove_contract_offer thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8 Removes the contract offer for a staff member and club from the offer list and lowers the staff offer count. high opus
0x4ccb30 67 CONTRACT_MANAGER::remove_contract_offer_for_transfer thiscall(CONTRACT_MANAGER *this, Staff *staff, int transfer_slot) ret 8 Removes the contract offer for a staff member that is linked to a given transfer slot and lowers the staff offer count. high opus
0x4ccbf0 56 CONTRACT_MANAGER::remove_pending_offers_for_staff thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Removes every pending contract offer of a staff member from the offer list and clears the matching transfer manager flag. medium opus
0x4ccca0 187 CONTRACT_MANAGER::schedule_loan_end thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8 Marks a staff member's loan contract as ending and posts the recall or termination news when a human club is involved. high opus
0x4cced0 109 CONTRACT_MANAGER::trigger_non_promotion_clauses thiscall(CONTRACT_MANAGER *this, Club *club, Comp *league) ret 8 Triggers the non-promotion clause of every player in the squads of a club and its linked club and posts the clause news. high opus
0x4cd030 85 CONTRACT_MANAGER::trigger_relegation_clauses thiscall(CONTRACT_MANAGER *this, Club *club, Comp *league) ret 8 Triggers the relegation clause of every player in the squads of a relegated club and its linked club and sends the news. high opus
0x4cd120 95 CONTRACT_MANAGER::reset_division_clauses thiscall(CONTRACT_MANAGER *this, Club *club, int clear_numbers) ret 8 Clears the pending relegation and non-promotion clause flags of a club's players and optionally clears their squad numbers first. medium opus
0x4cd230 387 (+2 unwind) CONTRACT_MANAGER::schedule_offer_decision thiscall(CONTRACT_MANAGER *this, int staff_id, int offer_slot) ret 8 Finds or adds a staff member's type 3 decision date and sets the day and time slice when he answers his offers. medium opus
0x4cd6d0 225 CONTRACT_MANAGER::add_decision_date thiscall(CONTRACT_MANAGER *this, Staff *staff, const Date *date, char time_slice, char type) ret 0x10 Appends a decision date entry for a staff member, growing the list by 100 and adding earlier reminder entries for type 2. high opus
0x4cd9c0 64 CONTRACT_MANAGER::process_due_decision_dates thiscall(CONTRACT_MANAGER *this, const Date *date, char time_slice) ret 8 Consumes the decision date entries that are due by the given date and slice and resolves contract offers for type 3 entries. high sonnet
0x4cda70 732 (+1 unwind) contract_manager_offer_contract stdcall(Staff *staff, Club *club, CONTRACT *out_terms, int offer_slot, double wage_factor, char mode) ret 0x1c, returns 1 when terms were made Builds the contract a club would offer a staff member within its wage budget and either returns the terms or submits the offer. medium opus
0x4ce450 46 (+1 unwind) contract_manager_lowest_wage_demand stdcall(Staff *staff, Club *club) ret 8, returns int wage Returns the lower of the staff member's wage demands for squad status 1 and 2 at a club, capped at 10,000,000. medium opus
0x4ce4e0 1157 (+8 unwind) CONTRACT_MANAGER::resolve_contract_offers thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Lets a staff member choose the best of his pending contract offers, accepts it and rejects or holds back the others. medium opus
0x4cf4a0 77 CONTRACT_MANAGER::resubmit_held_offers thiscall(CONTRACT_MANAGER *this, int staff_id) ret 4, returns count Resubmits every held-back contract offer for a staff member as a live offer and removes it from the held list. medium opus
0x4cf560 25 CONTRACT_MANAGER::remove_held_offers thiscall(CONTRACT_MANAGER *this, int staff_id) ret 4 Removes every held-back contract offer of a staff member from the held offer list. medium opus
0x4cf5a0 24 CONTRACT_MANAGER::get_contract thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Returns the main contract record of a staff member, or null when the staff id is out of range or has no contract. high opus 2026-10-15-assistant-pick-inventory.md, 2026-10-15-contract-clauses.md, 2026-10-16-comparison-screen-inventory.md
0x4cf5f0 91 CONTRACT_MANAGER::get_contract_for_club thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8 Returns the main or loan contract of a staff member that belongs to the given club or to its linked club. medium opus
0x4cf6d0 24 CONTRACT_MANAGER::get_loan_contract thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Returns the loan contract record of a staff member, or null when the staff member has no loan contract. high opus 2026-10-15-assistant-pick-inventory.md, 2026-10-16-comparison-screen-inventory.md
0x4cf720 897 CONTRACT_MANAGER::sign_contract thiscall(CONTRACT_MANAGER *this, CONTRACT *terms, char job) ret 8, returns 1 on success Places a staff member in the club job and stores the 0x50-byte contract as his main contract, reusing a free slot or growing the array. high opus
0x4d01e0 500 (+1 unwind) CONTRACT_MANAGER::sign_loan_contract thiscall(CONTRACT_MANAGER *this, CONTRACT *terms) ret 4 Moves a staff member into the loan club's squad and stores the contract as his loan contract. high opus
0x4d07e0 290 CONTRACT_MANAGER::end_loan thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Ends a staff member's loan, frees the loan contract, takes him out of the loan club and returns him to his parent club. high opus
0x4d0b50 39 CONTRACT_MANAGER::remove_contract thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Frees a staff member's main contract slot and recalculates the wage bill of the club that held it. high opus
0x4d0bd0 22 CONTRACT_MANAGER::remove_loan_contract thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4 Frees a staff member's loan contract slot when he has one. high opus
0x4d0c20 23 CONTRACT_MANAGER::get_wage thiscall(CONTRACT_MANAGER *this, Staff *staff) ret 4, returns int Returns the weekly wage of a staff member's main contract, or 0 when he has no contract. high opus
0x4d0c60 714 contract_manager_calc_player_value stdcall(Staff *staff, Club *club, char ignore_contract, short mode, int unused) ret 0x14 Calculates the transfer value of a player from reputation, position, age and nation, then reduces it for the contract time left. high opus
0x4d1600 3131 contract_manager_calc_asking_price stdcall(Club *selling_club, Club *buying_club, Staff *player, ushort *reason_flags, char adjust, int flag) ret 0x18, returns int fee Calculates the fee a club asks for one of its players, from his value, squad status, morale and finances, capped at any release fee. high opus 2026-10-14-columns-and-colours-inventory.md
0x4d2070 2362 contract_manager_calc_asking_price_false_entry false entry inside contract_manager_calc_asking_price, ret 0x18 Misread entry point in the middle of contract_manager_calc_asking_price, which Ghidra could not decode as a function. high opus
0x4d42d0 116 contract_manager_get_human_asking_price stdcall(Club *buying_club, int arg2, Staff *player) ret 0xc, returns int fee Returns the asking price for a player of a human club, blending the stored value with the calculated price by squad status. medium opus
0x4d4320 87 contract_manager_get_human_asking_price_fragment_4d4320 false entry inside contract_manager_get_human_asking_price, ret 0xc Misread entry point inside contract_manager_get_human_asking_price, starting in the middle of an instruction. high opus
0x4d4420 75 contract_manager_get_human_asking_price_fragment_4d4420 false entry inside contract_manager_get_human_asking_price, ret 0xc Misread entry point at the call to the asking price calculation in the tail of contract_manager_get_human_asking_price. high opus
0x4d44e0 111 contract_manager_get_offer_job stdcall(Staff *staff) ret 4, returns char job code Picks the job code a new contract offer names for a staff member, from his club and nation jobs and his ratings. medium opus
0x4d45f0 28 (+2 unwind) contract_manager_season_end_month stdcall(Club *club) ret 4, returns char month Returns the month index ten days after the end of the season of the club's nation. medium opus
0x4d4660 169 CONTRACT_MANAGER::will_negotiate_offer thiscall(CONTRACT_MANAGER *this, CONTRACT *offer) ret 4, returns 1 or 0 Decides whether a staff member will discuss a new contract with his own club, refusing when listed, unsettled, wanting to leave or unhappy. high opus
0x4d4830 121 CONTRACT_MANAGER::prefill_offer_from_pending thiscall(CONTRACT_MANAGER *this, CONTRACT *offer) ret 4 Copies the bonuses and clauses of a staff member's pending offer from the same club into a new offer and adjusts the wage to match. medium opus
0x4d49a0 475 (+2 unwind) contract_manager_post_offer_response_news stdcall(CONTRACT_OFFER *offer, int renewal_flag) ret 8 Queues news item 3000 with the staff, club, offer state and terms of an answered contract offer and picks the clubs that receive it. medium opus
0x4d4fb0 1619 (+3 unwind) contract_manager_write_offer_response_news_text stdcall(NewsItem *item, int arg2, int arg3) ret 0xc Writes the headline and story text for a staff member accepting or rejecting a contract or trial offer. high opus 2026-10-14-widescreen-inventory.md
0x4d64e0 59 (+1 unwind) CONTRACT_MANAGER::post_offer_cancelled_no_space_news thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8 Posts the contract offer cancelled news item, type 0xbc4, to a club with a human manager, with staff, names and club slots. high opus
0x4d65c0 147 CONTRACT_MANAGER::write_offer_cancelled_no_space_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a club's contract offer to a player was cancelled for lack of squad space. high opus
0x4d6790 183 (+2 unwind) CONTRACT_MANAGER::post_contract_expiry_news thiscall(CONTRACT_MANAGER *this, StaffContract *contract, char period_code, int bosman_flag, int notify_interested) ret 0x10 Posts the contract expiry warning news item, type 0xbbd, to the club and optionally to other clubs that shortlist the player. high opus
0x4d6a00 276 CONTRACT_MANAGER::write_contract_expiry_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player or staff contract expires in twelve months down to next week. high opus
0x4d6d70 104 (+1 unwind) CONTRACT_MANAGER::post_bosman_departure_news thiscall(CONTRACT_MANAGER *this, StaffContract *contract, Club **dest_club_or_null) ret 8 Posts the news item, type 0xbbe, that a player leaves his club under the Bosman ruling, with the destination club or minus one. high opus
0x4d6ee0 235 CONTRACT_MANAGER::write_bosman_departure_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player leaves his club at the end of his contract under the Bosman ruling. high opus
0x4d71b0 455 (+2 unwind) CONTRACT_MANAGER::post_transfer_listed_news thiscall(CONTRACT_MANAGER *this, Staff *player, Club *club) ret 8 Posts the transfer listed news item, type 0xbea, with asking price and up to three interested clubs, to candidate buying clubs. high opus
0x4d7770 1133 (+1 unwind) CONTRACT_MANAGER::write_transfer_listed_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player is put on the transfer list, with reasons, fee and interested clubs. high opus
0x4d8610 279 (+1 unwind) CONTRACT_MANAGER::handle_transfer_request thiscall(CONTRACT_MANAGER *this, StaffContract *contract) ret 4 Handles a player's transfer request, listing him at a computer club or posting the transfer request news to a human manager. high opus
0x4d8990 793 CONTRACT_MANAGER::write_transfer_request_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player or his agent requests a transfer, with his reasons and the answer. high opus
0x4d9460 108 (+1 unwind) CONTRACT_MANAGER::post_transfer_request_withdrawn_news thiscall(CONTRACT_MANAGER *this, StaffContract *contract, int reason) ret 8 Posts the news item, type 0xbc0, that a player withdraws his transfer request, with the reason code in slot 6. high opus
0x4d95e0 198 CONTRACT_MANAGER::write_transfer_request_withdrawn_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player withdraws his transfer request and is happy to stay. high opus
0x4d9840 172 (+1 unwind) CONTRACT_MANAGER::post_seeks_assurances_news thiscall(CONTRACT_MANAGER *this, StaffContract *contract) ret 4 Posts the news item, type 0xbc1, that a player seeks assurances about his future, unless a transfer or offer is open. high opus
0x4d9a90 303 CONTRACT_MANAGER::write_seeks_assurances_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player seeks assurances, by squad role and transfer or loan list status. high opus
0x4d9f80 156 (+1 unwind) CONTRACT_MANAGER::post_wants_new_contract_news thiscall(CONTRACT_MANAGER *this, StaffContract *contract) ret 4 Posts the news item, type 0xbc2, that a player wants a new contract, with squad status and wage slots, unless a transfer is open. high opus
0x4da190 312 (+1 unwind) CONTRACT_MANAGER::write_wants_new_contract_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player or his agent asks for a better contract, by squad status. high opus
0x4da590 361 (+2 unwind) CONTRACT_MANAGER::post_contract_end_news thiscall(CONTRACT_MANAGER *this, Staff *staff, char end_kind, int notify_wide) ret 0xc Posts the news item, type 0xbb9, that a staff contract, trial or loan ends, to the club, the loan club and interested clubs. high opus
0x4daa00 325 CONTRACT_MANAGER::write_contract_end_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a staff member leaves after his contract, trial or loan ends. high opus
0x4dade0 59 (+1 unwind) CONTRACT_MANAGER::post_trial_cancelled_news thiscall(CONTRACT_MANAGER *this, Staff *staff, Club *club) ret 8 Posts the trial cancelled news item, type 0xbbc, to a club with a human manager, with staff, names and club slots. high opus
0x4daec0 159 CONTRACT_MANAGER::write_trial_cancelled_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a player's proposed trial was cancelled because the club has no space. high opus
0x4db0b0 180 (+1 unwind) CONTRACT_MANAGER::post_loan_recall_news thiscall(CONTRACT_MANAGER *this, Staff *player, Club *acting_club) ret 8 Posts the news item, type 0xfb8, that a loan is recalled or terminated, and sends it to the club on the other side. high opus
0x4db2e0 244 CONTRACT_MANAGER::write_loan_recall_news_text thiscall(CONTRACT_MANAGER *this, NewsItem *item, int full_text, Text *out) ret 0xc Writes the headline or body of the news that a club recalls a player from loan or terminates his loan. high opus
0x4db5c0 1059 (+6 unwind) CONTRACT_MANAGER::load_from_disk thiscall(CONTRACT_MANAGER *this, void *save_file) ret 4 Reads contract.dat from the save game into the manager, rebuilding squad status offers, staff contracts, decision dates and offers. high opus
0x4dc3a0 438 CONTRACT_MANAGER::save_to_disk thiscall(CONTRACT_MANAGER *this, void *save_file) ret 4 Writes the contract manager state to contract.dat in the save game, sorting decision dates first, and reports any write error. high opus
0x4dc910 39 compare_decision_dates cdecl(const DecisionDate *a, const DecisionDate *b) ret 0, returns int Orders two 14 byte decision date entries by date and then by the time slice byte, for qsort. high opus
0x4dc970 29 compare_talks_records cdecl(const int *a, const int *b) ret 0, returns int Orders two talks records by their three integer keys, player, manager and club, with a null record first. high opus