Have a basic map prototype gui working.
This commit is contained in:
		
							parent
							
								
									8b3573b01d
								
							
						
					
					
						commit
						a53f81715d
					
				
					 4 changed files with 60 additions and 3 deletions
				
			
		|  | @ -11,7 +11,8 @@ namespace guecs { | |||
| 
 | ||||
|   void UI::layout(std::string grid) { | ||||
|     $grid = grid; | ||||
|     $parser.parse($grid); | ||||
|     bool good = $parser.parse($grid); | ||||
|     dbc::check(good, "LEL parsing failed."); | ||||
| 
 | ||||
|     for(auto& [name, cell] : $parser.cells) { | ||||
|       auto ent = entity(name); | ||||
|  |  | |||
|  | @ -43,6 +43,7 @@ namespace gui { | |||
|     $level.world->set_the<Debug>({}); | ||||
| 
 | ||||
|     $main_ui.init(); | ||||
|     $map_ui.init(); | ||||
| 
 | ||||
|     $combat_ui.init(); | ||||
|     $status_ui.init(); | ||||
|  | @ -320,6 +321,7 @@ namespace gui { | |||
|   void FSM::render() { | ||||
|     if(in_state(State::MAPPING)) { | ||||
|       $window.clear(); | ||||
|       $map_ui.render($window); | ||||
|     } else if(in_state(State::NEXT_LEVEL)) { | ||||
|       $window.clear(); | ||||
|       $boss_fight_ui->render($window); | ||||
|  |  | |||
							
								
								
									
										51
									
								
								map_view.cpp
									
										
									
									
									
								
							
							
						
						
									
										51
									
								
								map_view.cpp
									
										
									
									
									
								
							|  | @ -1,6 +1,11 @@ | |||
| #include "map_view.hpp" | ||||
| #include <functional> | ||||
| #include <string> | ||||
| #include "dbc.hpp" | ||||
| #include "components.hpp" | ||||
| #include "rand.hpp" | ||||
| #include "animation.hpp" | ||||
| #include "rand.hpp" | ||||
| 
 | ||||
| namespace gui { | ||||
|   using namespace components; | ||||
|  | @ -8,13 +13,57 @@ namespace gui { | |||
|   MapViewUI::MapViewUI(GameLevel &level) : | ||||
|     $level(level) | ||||
|   { | ||||
|     $gui.position(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); | ||||
|     $gui.layout( | ||||
|         "[*%(100,900)left|*%(200,900)map_grid| _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[_              | _                 | _]" | ||||
|         "[bottom_status_left | bottom_status_right ]"); | ||||
| 
 | ||||
|     auto cell = $gui.cell_for($gui.entity("map_grid")); | ||||
|     $grid.position(cell.x, cell.y, cell.w, cell.h); | ||||
|     $grid.layout( | ||||
|         "[cell_11|cell_12|cell_13|cell_14|cell_15|cell_16|cell_17]" | ||||
|         "[cell_21|cell_22|cell_23|cell_24|cell_25|cell_26|cell_27]" | ||||
|         "[cell_31|cell_32|cell_33|cell_34|cell_35|cell_36|cell_37]" | ||||
|         "[cell_41|cell_42|cell_43|cell_44|cell_45|cell_46|cell_47]" | ||||
|         "[cell_51|cell_52|cell_53|cell_54|cell_55|cell_56|cell_57]"); | ||||
|   } | ||||
| 
 | ||||
|   void MapViewUI::update_level(GameLevel &level) { | ||||
|     $level = level; | ||||
|   } | ||||
| 
 | ||||
|   void MapViewUI::draw_map() { | ||||
|   void MapViewUI::init() { | ||||
|     $gui.world().set_the<guecs::Background>({$gui.$parser}); | ||||
| 
 | ||||
|     for(auto& [name, cell] : $gui.cells()) { | ||||
|       auto box = $gui.entity(name); | ||||
|       if(name != "map_grid") { | ||||
|         $gui.set<guecs::Rectangle>(box, {}); | ||||
|         $gui.set<guecs::Label>(box, {name}); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     $gui.init(); | ||||
| 
 | ||||
|     for(auto& [name, cell] : $grid.cells()) { | ||||
|       auto box = $grid.entity(name); | ||||
|       $grid.set<guecs::Rectangle>(box, {}); | ||||
|       $grid.set<guecs::Label>(box, {name}); | ||||
|     } | ||||
| 
 | ||||
|     $grid.init(); | ||||
|   } | ||||
| 
 | ||||
|   void MapViewUI::render(sf::RenderWindow &window) { | ||||
|     $gui.render(window); | ||||
|     $grid.render(window); | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -1,13 +1,18 @@ | |||
| #pragma once | ||||
| #include "levelmanager.hpp" | ||||
| #include "textures.hpp" | ||||
| #include "guecs.hpp" | ||||
| 
 | ||||
| namespace gui { | ||||
|   class MapViewUI { | ||||
|     public: | ||||
|       guecs::UI $gui; | ||||
|       guecs::UI $grid; | ||||
|       GameLevel $level; | ||||
| 
 | ||||
|       MapViewUI(GameLevel &level); | ||||
|       void draw_map(); | ||||
|       void init(); | ||||
|       void render(sf::RenderWindow &window); | ||||
|       void update_level(GameLevel &level); | ||||
|   }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Zed A. Shaw
						Zed A. Shaw