This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

Enhanced Server Listing

From BZFlagWiki
Jump to navigation Jump to search
This page contains the design document for an enhancement or feature. It is a work of collaborative development, and may not represent the final design. If you are not part of the development or design group, please post comments and suggestions on the talk page and not in the middle of the design.



Overview

This design document is for the enhancement of BZFlag's current server listing. These enhancements will include refactoring the current C++ code to make it easier to read, and more modular so that new features can easily be integrated in the future. New features will be also be added, such as the ability to filter the server list, sort the server list, and switch between a favorites and recent server list in addition to the regular server list.

Design

Proposed Changes

Here's a list of all the proposed changes to the current server listing:

  • Refactoring
    • Create a HUDServerList class which provides the HUD functionality for the ServerLists
    • Create a HUDServerInfo class which provides the HUD functionality for ServerItems
  • Sort Options
    • Sort by Domain Name
    • Sort by Server Name
    • Sort by Number of Players
    • Sort by Sever Ping
  • Filter Options
    • Master On/Off Switch for Filters
    • Filter Out Empty Servers
    • Filter Out Full Servers
    • Filter by Ricochet (On/Off/Either)
    • Filter by Jumping (On/Off/Either)
    • Filter by Super Flags (On/Off/Either)
    • Filter by Server Name (Including Wildcards)
  • Recent Servers List

Keyboard Accessibility

Place Holder

Milestones

1. Refactor and Comment Current ServerMenu Code

  • Move the HUD drawing code for ServerLists into a new HUDServerList class
  • Move the HUD drawing codde for ServerItems into a newe HUDServerInfo class

2. Implement Sorting Options on ServerLists

  • Display the HUDServerList with columns
  • Allow lists to be sorted by different information columns
  • Lists retain sorting when switching between favorites, recent, and normal

3. Implement Filtering Options

Links

Mock-ups

References