/* ==================== uiscreen_bmmore.h ==================== version 0.0.1 ==================== BlotchMaker map configuraion and generation screen. [complete version] CHANGELOG: ---------------------- 0.0.1 - August 7, 2003 - layout for final version is complete. some buttons do nothing, but everything is on the screen. TO-DO & EXPANSION LIST ---------------------- - program seg faults sometime on pressing done (?) - reverse left/right turn chances - scrolltrack - "randomizer" - "im feeling lucky" button - change window panes back to regular widgets - error: can't proceed with bad map - preset configs - save+load =============================================================== */ #ifndef UISCREEN_BMMORE_H #define UISCREEN_BMMORE_H #include #include "renderman.h" #include "pgminimap.h" #include "../core/pointerhub.h" #include "../map/blotchmaker.h" #include "paragui.h" #include "pgapplication.h" #include "pgbutton.h" #include "pglabel.h" //#include "pgslider.h" #include "pgscrollbar.h" #include "pgdropdown.h" #include "pgfont.h" #include "pgthemewidget.h" #include "pgeventobject.h" /** This is the front "splash" screen with basic game functions */ class UIScreen_BMMore: public PG_ThemeWidget, public PG_EventObject, public PointerHub { public: UIScreen_BMMore(PG_Widget* parent, const PG_Rect &r); virtual ~UIScreen_BMMore(); // events - buttons //PARAGUI_CALLBACK(handle_go_back); // buttons not in yet //PARAGUI_CALLBACK(handle_done); PARAGUI_CALLBACK(handle_regen_map); // events - sliders PARAGUI_CALLBACK(slide_slot_num); PARAGUI_CALLBACK(slide_turn0_chance); PARAGUI_CALLBACK(slide_turn1_chance); PARAGUI_CALLBACK(slide_turn2_chance); PARAGUI_CALLBACK(slide_turn3_chance); PARAGUI_CALLBACK(slide_tiles_per_blotch); PARAGUI_CALLBACK(slide_mode0_chance); PARAGUI_CALLBACK(slide_mode1_chance); PARAGUI_CALLBACK(slide_edge_grav); PARAGUI_CALLBACK(slide_step); PARAGUI_CALLBACK(slide_edge_det); PARAGUI_CALLBACK(slide_blank_chance); PARAGUI_CALLBACK(change_brush_type); PARAGUI_CALLBACK(change_obst_type); PARAGUI_CALLBACK(slide_map_size); PARAGUI_CALLBACK(slide_slot0_chance); PARAGUI_CALLBACK(slide_slot1_chance); PARAGUI_CALLBACK(slide_slot2_chance); PARAGUI_CALLBACK(slide_slot3_chance); PARAGUI_CALLBACK(slide_slot4_chance); PARAGUI_CALLBACK(slide_num_blotches); PARAGUI_CALLBACK(change_obst_init); protected: // the blotchmaker Blotchmaker* bm; // fonts //PG_Font* button_font // the map preview window PG_MiniMap* minimap; // interface buttons PG_Button* go_back; PG_Button* done; PG_Button* preview; PG_Button* randomize; PG_Button* save_map; PG_Button* load_map; PG_Button* save_bmconf; PG_Button* load_bmconf; // widget window panes PG_ThemeWidget* gspane; // for global settings PG_ThemeWidget* sopane; // for slot options // large labels PG_Label* blotchmaker_lab; PG_Label* global_settings_lab; PG_Label* slot_ops_lab; PG_Label* status_label; PG_Label* status_label2; PG_Label* status_label3; // global BM things PG_ScrollBar* map_size; // we are not making seperate X,Y values at this time PG_Label* map_size_lab; PG_Label* map_size_out; PG_ScrollBar* num_blotches; PG_Label* num_blotches_lab; PG_Label* num_blotches_out; PG_DropDown* obst_init; // map obstacle initializer PG_Label* obst_init_lab; PG_ScrollBar* slot0_chance; PG_Label* slot0_chance_lab; PG_Label* slot0_chance_out; PG_ScrollBar* slot1_chance; PG_Label* slot1_chance_lab; PG_Label* slot1_chance_out; PG_ScrollBar* slot2_chance; PG_Label* slot2_chance_lab; PG_Label* slot2_chance_out; PG_ScrollBar* slot3_chance; PG_Label* slot3_chance_lab; PG_Label* slot3_chance_out; PG_ScrollBar* slot4_chance; PG_Label* slot4_chance_lab; PG_Label* slot4_chance_out; /* TODO: homebase size TODO: homebase placement type (not implemented in blotchmaker yet) TODO: SetAxisPalette() ? - we'll ditch this later to implement a full player-join system in another screen */ // slot options PG_DropDown* obst_type; //PG_Button* obst_type; PG_Label* obst_type_lab; PG_DropDown* brush_type; PG_Label* brush_type_lab; PG_ScrollBar* slot_num; // this ought to be a widgetlist PG_Label* slot_num_lab; PG_Label* slot_num_out; PG_ScrollBar* mode0_chance; // chaotic PG_Label* mode0_chance_lab; PG_Label* mode0_chance_out; PG_ScrollBar* mode1_chance; // x_or PG_Label* mode1_chance_lab; PG_Label* mode1_chance_out; /* PG_ScrollBar* mode2_chance; // full PG_Label* mode2_chance_lab; PG_Label* mode2_chance_out; PG_ScrollBar* mode3_chance; // clear PG_Label* mode3_chance_lab; PG_Label* mode3_chance_out; */ PG_ScrollBar* turn0_chance; // forward PG_Label* turn0_chance_lab; PG_Label* turn0_chance_out; PG_ScrollBar* turn1_chance; // right PG_Label* turn1_chance_lab; PG_Label* turn1_chance_out; PG_ScrollBar* turn2_chance; // left PG_Label* turn2_chance_lab; PG_Label* turn2_chance_out; PG_ScrollBar* turn3_chance; // back PG_Label* turn3_chance_lab; PG_Label* turn3_chance_out; PG_ScrollBar* tiles_per_blotch; PG_Label* tiles_per_blotch_lab; PG_Label* tiles_per_blotch_out; PG_ScrollBar* edge_det; PG_Label* edge_det_lab; PG_Label* edge_det_out; PG_ScrollBar* blank_chance; PG_Label* blank_chance_lab; PG_Label* blank_chance_out; PG_ScrollBar* edge_grav; PG_Label* edge_grav_lab; PG_Label* edge_grav_out; PG_ScrollBar* step; PG_Label* step_lab; PG_Label* step_out; }; #endif