First of all, when a favorite is created, the user isn't just marking the map as a favorite. They're marking the map for a given game mode as a favorite. So, I created a GameModeMap class that is the instance of a Map for a specific GameMode. This also has a property of IsFavorite to mark that specific instance as a favorite. This collection is instantiated dynamically when the MapLoader runs.
Convert the "game type" (or "game mode") drop down to a "game filter" drop down. Each item has an "action" or function that will return a list of available GameModeMaps for the filter. The first item is a "favorite filter". All others are simply filters for each possible game mode.
Convert the "map list" to a "game mode map list". It now lists GameModeMap instances.
When right clicking on an item in the new "game mode map list", the user has the option to "Add Favorite" for that map. When right-clicking a map that is already a favorite, this option will be "Remove Favorite".
When viewing the "Favorite Maps" option in the new "game filter" drop down, all listed Maps will be in the form "MapName - GameModeName".
If a user is viewing the Favorite Maps filter and removes the LAST map from that list as a favorite, the "game filter" drop down will immediately jump to the first filter in the list that does have a map (typically Battle).
Toggling a favorite is also available from the MapPreviewBox
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.
A couple of things done here: