#ifndef __UIMENU_H_ #define __UIMENU_H_ enum MenuCodeEnum { MENU_CODE_NONE, MENU_CODE_UNSELECT_ITEM, MENU_CODE_INPUT_TYPE_CHANGED, MENU_CODE_INPUT_DEVICE_CHANGED, MENU_CODE_CANCEL_INPUT, MENU_CODE_START_GAME, MENU_CODE_MODIFY_ACCEPTED, MENU_CODE_BONUS_DONE, MENU_CODE_EXIT_APPLICATION, MENU_CODE_TO_OPTIONS_MENU, MENU_CODE_TO_CONTROLS_MENU, MENU_CODE_BACK_TO_CONTROLS_MENU, MENU_CODE_TO_PLAYER_1_CONTROLS, MENU_CODE_TO_PLAYER_2_CONTROLS, MENU_CODE_TO_PLAYER_3_CONTROLS, MENU_CODE_TO_PLAYER_4_CONTROLS, MENU_CODE_TO_MAIN_MENU, MENU_CODE_TOGGLE_FULLSCREEN, MENU_CODE_TO_SCREEN_SETTINGS, MENU_CODE_TO_SCREEN_RESIZE, MENU_CODE_MODE_CHANGED, MENU_CODE_TO_GAME_SETUP_MENU, MENU_CODE_TO_TEAM_SELECT_MENU, MENU_CODE_BACK_TEAM_SELECT_MENU, MENU_CODE_SOUND_VOLUME_CHANGED, MENU_CODE_MUSIC_VOLUME_CHANGED, MENU_CODE_TOURNAMENT_CHANGED, MENU_CODE_TO_MODE_SETTINGS_MENU, MENU_CODE_BACK_TO_GAME_SETUP_MENU, MENU_CODE_BACK_TO_GAME_SETUP_MENU_FROM_MODE_SETTINGS, MENU_CODE_EXIT_TOURNAMENT_YES, MENU_CODE_EXIT_TOURNAMENT_NO, MENU_CODE_TO_POWERUP_SELECTION_MENU, MENU_CODE_BACK_TO_OPTIONS_MENU, MENU_CODE_RESTORE_DEFAULT_POWERUP_WEIGHTS, MENU_CODE_TO_GRAPHICS_OPTIONS_MENU, MENU_CODE_TO_SOUND_OPTIONS_MENU, MENU_CODE_TO_GAMEPLAY_OPTIONS_MENU, MENU_CODE_TO_TEAM_OPTIONS_MENU, MENU_CODE_BACK_TO_GRAPHIC_OPTIONS_MENU, MENU_CODE_MENU_GRAPHICS_PACK_CHANGED, MENU_CODE_GAME_GRAPHICS_PACK_CHANGED, MENU_CODE_SOUND_PACK_CHANGED, MENU_CODE_TO_PROJECTILES_OPTIONS_MENU, MENU_CODE_TO_POWERUP_SETTINGS_MENU, MENU_CODE_POWERUP_RESET_YES, MENU_CODE_POWERUP_RESET_NO, MENU_CODE_TOUR_STOP_CONTINUE, MENU_CODE_EXIT_TOUR_YES, MENU_CODE_EXIT_TOUR_NO, MENU_CODE_RESET_STORED_POWERUPS, MENU_CODE_MAP_CHANGED, MENU_CODE_MAP_FILTER_EXIT, MENU_CODE_TO_MAP_FILTERS, MENU_CODE_TO_MAP_FILTER_EDIT, MENU_CODE_MAP_BROWSER_EXIT, MENU_CODE_TO_MAP_BROWSER_THUMBNAILS, MENU_CODE_SAVE_ALL_MAP_THUMBNAILS, MENU_CODE_BACK_TO_SCREEN_SETTINGS_MENU, MENU_CODE_SCREEN_FILTER_CHANGED, MENU_CODE_SCREEN_SETTINGS_CHANGED, MENU_CODE_GENERATE_THUMBS_RESET_YES, MENU_CODE_GENERATE_THUMBS_RESET_NO }; #include "uicontrol.h" #include "eyecandy.h" class UI_Menu { public: UI_Menu(); ~UI_Menu(); void AddControl(UI_Control * control, UI_Control * up, UI_Control * down, UI_Control * left, UI_Control * right); void AddNonControl(UI_Control * control); void SetHeadControl(UI_Control * control); void ResetMenu(); void SetCancelCode(MenuCodeEnum code) {cancelCode = code;} void Update(); void Draw(); void ClearEyeCandy() {eyeCandy.clean();} void ResetCurrentControl(); MenuCodeEnum SendInput(CPlayerInput * playerInput); void AddEyeCandy(CEyecandy * ec) {eyeCandy.add(ec);} void RememberCurrent(); void RestoreCurrent(); UI_Control * GetCurrentControl() {return current;} protected: void MoveNextControl(short iDirection); std::list controls; UI_Control * current; UI_Control * savedCurrent; MenuCodeEnum cancelCode; bool fModifyingItem; UI_Control * headControl; CEyecandyContainer eyeCandy; }; #endif //__UIMENU_H_