Rework partial GameModeMap and GameLobby codes
- Unified duplicated codes in
GameModeandMap. For example,MultiplayerOnlyis a setting that can be either defined inGameModeandMap. Now, the duplicated codes are merged. Priority:Map>GameMode. ForceRandomStartLocationssetting can also be turned on with co-op missions (IsCoop)Forced Random Teamshas been renamed toForced No Teamsin UI and source codes, because the original meaning seems wrong.- Fix a bug where the team mapping (in player extra options panel) breaks the team setting with co-op missions (
IsCoop) - Support specifying non sequential locations by specifying
AllowedStartingLocations. For example, in a co-op mission based on a 4P map, the players might be positioned in 1 and 3 instead of 1 and 2, while MaxPlayers=2. The AIs are provided in co-op related settings instead of regular AI players. - Also contains and closes https://github.com/CnCNet/xna-cncnet-client/pull/519, supporting randomized game mode
Note: I can't separate the features, refactors, and bug fixes as separate PRs, because: (a) they rely on one others, and (b) we don't merge PRs in time -- so it will be much painful maintaining many PRs that depend on one others.
Nightly build for this pull request:
- artifacts.zip This comment is automatic and is meant to allow guests to get latest automatic builds without registering. It is updated on every successful build.
@SadPencil Please, resolve the conflict with develop.
@SadPencil Please, resolve the conflict with
develop.
Thanks for the remind. Updated.
Note that I can't separate Fix a bug where the team mapping (in player extra options panel) breaks the team setting with co-op missions (IsCoop) into a standalone PR. It requires a deep refactor (e.g., this PR) to fix this bug.
