Skip to content

Latest commit

 

History

History
34 lines (31 loc) · 9.41 KB

match_man.cpp.md

File metadata and controls

34 lines (31 loc) · 9.41 KB

match_man.cpp: 26 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
0x6db500 471 MATCH_MAN::init thiscall(MATCH_MAN* this, CM3_MATCH_ENGINE* match, Staff* manager, Staff** squad, MATCH_PLAYER* players, char side, Club* club, Club* opponent, Fixture* fixture, char* out_count) ret 0x24, returns char selected count Sets up one side of a match, copies the manager's tactic into the match, picks or places the team and stores the substitutes allowed. high opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md, picker.c
0x6dbb10 37 MATCH_MAN::save_team_selection thiscall(MATCH_MAN* this) ret 0 Writes the side's selection record back to the tactics store, except for a human club's reserve team that its manager does not control. medium opus
0x6dbb80 78 MATCH_MAN::place_selected_players thiscall(MATCH_MAN* this) ret 0, returns char placed count Places the players of the stored team selection into the match, skipping injured, banned and away-on-international-duty players, and counts them. high opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md
0x6dbc50 2265 (+6 unwind) MATCH_MAN::pick_team thiscall(MATCH_MAN* this, Club* opponent, char mode (2 full pick, 1 reserves)) ret 8, returns char selected count Picks the computer side's starters and substitutes, stores them and the captain, then chooses the tactic, instructions and team mentality settings. high opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md, 2026-10-16-foreign-and-tactics-positions.md, picker.c
0x6ddab0 2060 MATCH_MAN::set_computer_instructions thiscall(MATCH_MAN* this) ret 0 Sets the computer side's team and player instructions from the manager's attributes, the players' skills and the club strengths. medium opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-14-columns-and-colours-inventory.md, 2026-10-15-assistant-pick-inventory.md
0x6df460 1091 MATCH_MAN::choose_mentality thiscall(MATCH_MAN* this) ret 0, returns char mentality code 1 to 5 Rates how the side stands against the opponent from strengths, score, time and league position, and returns a mentality code from 1 to 5. medium opus 2026-10-15-assistant-pick-inventory.md
0x6e0230 774 MATCH_MAN::choose_computer_tactic thiscall(MATCH_MAN* this, Staff** players, char count, uint flags, char mode) ret 0x10, returns nonzero when a tactic is set Scores the squad for each position and side, rates every stored preset tactic against those scores and copies the best one into the side. medium opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md, 2026-10-16-tactics-inventory.md
0x6e0d00 68 MATCH_MAN::place_player_in_team thiscall(MATCH_MAN* this, char squad_no, Staff* player, int slot) ret 0xc, returns 1 placed or 0 empty Checks the squad number and sets up the player's match record, or ends the game when the number is out of range. high opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md
0x6e0df0 167 match_man_compare_players_by_weighted_condition cdecl(MATCH_PLAYER** a, MATCH_PLAYER** b) ret 0, returns int Orders two match players for qsort by condition plus their match score, scaled by position, with empty slots last and keepers first. medium opus
0x6e0fe0 63 match_man_compare_players_by_condition cdecl(MATCH_PLAYER** a, MATCH_PLAYER** b) ret 0, returns int Orders two match players for qsort by condition plus their match score, with empty slots last and keepers first. medium opus
0x6e1090 687 MATCH_MAN::make_substitutions thiscall(MATCH_MAN* this, char fill_keeper_slot) ret 4 Re-picks the side during a match from players on the pitch and the bench, brings on substitutes, posts the events and chooses the captain again. high opus 2026-10-14-assistant-and-days-inventory.md
0x6e1940 86 MATCH_MAN::choose_captain thiscall(MATCH_MAN* this, Staff** players, char count) ret 8, returns Staff* Returns the player of the list with the best captain score, with the manager's judgement adding noise to each score. high opus 2026-10-15-assistant-pick-inventory.md, picker.c
0x6e1a40 37 MATCH_MAN::find_captain_slot thiscall(MATCH_MAN* this) ret 0, returns char slot or -1 Returns the slot of the active match player with the best captain score, for a new captain after a player leaves the pitch. high opus
0x6e1aa0 185 MATCH_MAN::reassign_positions thiscall(MATCH_MAN* this) ret 0 Lets the computer choose a tactic again when eleven players remain, then moves the outfield players to the best positions. medium opus 2026-10-14-assistant-and-days-inventory.md
0x6e1cd0 11 MATCH_MAN::find_match_player thiscall(MATCH_MAN* this, Staff* player) ret 4, returns MATCH_PLAYER* or 0 Returns the side's match player record that holds the given staff member, or null. high opus
0x6e1cf0 209 match_man_get_captain_score cdecl(Staff* player, MATCH_PLAYER* match_player (used instead of player when set), Club* club) ret 0, returns short Scores a player as a captain from contract status, time at the club and personality, returning -10000 for no player. high opus 2026-10-15-assistant-pick-inventory.md, picker.c
0x6e2000 1126 match_man_assign_players_to_positions cdecl(Staff** players, char n_players, short* pos_masks, char n_slots, char n_subs, Staff** out, uint flags, Club* club, MATCH_MAN* side or null, Staff* manager or null, int p11, uint8 (slot8)[8], uint8 slot1, uint tactic_flags, short* pos_masks2) ret 0, returns 1 done or 0 Assigns candidate players to lineup slots by role score, removes double picks and misplaced keepers, recurses for substitutes and swaps pairs that score better. high opus 2026-10-14-assistant-and-days-inventory.md, 2026-10-15-assistant-pick-inventory.md, picker.c
0x6e2f20 3784 match_man_score_player_for_role cdecl(Staff* player, Player* data, MATCH_PLAYER* rec or 0, ushort pos_mask, uint flags, Club* club, MATCH_MAN* side, Staff* manager, int threshold, uint64 slot8, uint slot1, uint tactic_flags, ushort pos_mask2, int holiday_record) ret 0, returns int Scores a player for one lineup role from position ratings, condition, form and status, returning -10000 when the player is rejected. high opus 2026-10-15-assistant-pick-inventory.md, picker.c
0x6e4920 1856 match_man_score_player_for_role_fragment_6e4920 none: address inside the instruction at 0x6e491f of 0x6e2f20 Holds no function. The address is the second byte of an FIDIV instruction in the body of match_man_score_player_for_role. high opus
0x6e4b20 1694 match_man_score_player_for_role_fragment_6e4b20 none: address inside the instruction at 0x6e4b1f of 0x6e2f20 Holds no function. The address is the second byte of an FILD instruction in the body of match_man_score_player_for_role. high opus
0x6e6340 2689 match_man_score_player_for_selection cdecl(Staff* player, ushort pos_mask, uint flags, Club* club, float threshold, Staff* viewer or null) ret 0, returns int Scores a player for a position outside a match from position ratings, condition, form, contract and reputation, returning -10000 for no player data. medium opus
0x6e6550 2496 match_man_score_player_for_selection_fragment_6e6550 none: address inside the instruction at 0x6e654f of 0x6e6340 Holds no function. The address is the second byte of a CMP instruction in the body of match_man_score_player_for_selection. high opus
0x6e6920 2254 match_man_score_player_for_selection_fragment_6e6920 none: false entry inside 0x6e6340 Holds no function. The address is a conditional jump in the middle of match_man_score_player_for_selection, which runs to its ret at 0x6e78a9. high opus
0x6e6f20 1797 match_man_score_player_for_selection_fragment_6e6f20 none: false entry inside 0x6e6340 Holds no function. The address is an FSUB instruction in the middle of match_man_score_player_for_selection. high opus
0x6e86d0 206 match_man_judge_player_ability cdecl(Staff* judge or null, Staff* player, Club* club, char kind (2 current ability, else potential), short reputation (-1 looks it up)) ret 0, returns short Estimates a player's current or potential ability as one staff member sees it, mixing reputation with noise that shrinks with the judge's skill. high opus
0x6e8910 827 match_man_apply_squad_restriction cdecl(Club* club, Staff* manager, char* rule, uint flags, char n_slots, char n_subs, char n_spare, Staff** lineup, Staff** bench, Staff** spare, Staff** out, short* pos_masks, short* pos_masks2, uint64* slot8, uint8* slot1, MATCH_MAN* side) ret 0 Swaps lineup players for eligible alternatives with the smallest score loss until the side meets a squad rule on foreign, non-EU or older players. medium opus 2026-10-15-assistant-pick-inventory.md