diff --git a/src/logic/ingame/mod.rs b/src/logic/ingame/mod.rs index ba49c54..937b9c0 100644 --- a/src/logic/ingame/mod.rs +++ b/src/logic/ingame/mod.rs @@ -63,7 +63,7 @@ impl Screen for InGameScreen { } - + // Only render shop in shop period, otherwise allow player movement if draw_handle.get_time() - game_core.last_state_change_time >= 0.05 && self.current_state == InGameState::BUYING{ diff --git a/src/logic/ingame/shop.rs b/src/logic/ingame/shop.rs index 1dc7cf9..ab42582 100644 --- a/src/logic/ingame/shop.rs +++ b/src/logic/ingame/shop.rs @@ -36,10 +36,13 @@ impl Shop { } } + // Creates all the items pub fn create_items(&mut self, screen_dimension: Vector2){ + // gets every item.. hacky let items = ShopItems::get_inital_items(); + // sets sizes any random number is just a number I think looks good let screen_width = screen_dimension.x as f32; let screen_height = screen_dimension.y as f32; @@ -54,11 +57,13 @@ impl Shop { for box_num in 0..4 { let x_pose = start_width + box_width * box_num as f32; + // adds an item struct to the item list item_vec.push(Item{ x_pose: (x_pose as i32), y_pose: (draw_height as i32), width: (box_width as i32), height: (box_height as i32), + // Crazy hacky but this gets the data from the enum cost: (ShopItems::get_cost(&items.get(box_num).unwrap())), level: (ShopItems::get_level(&items.get(box_num).unwrap())), name: (ShopItems::get_name(&items.get(box_num).unwrap())), @@ -74,7 +79,8 @@ impl Shop { pub fn render_shop( draw_handle: &mut RaylibDrawHandle, game_core: &mut GameCore, - inGameScreen: &mut InGameScreen) { + inGameScreen: &mut InGameScreen, + ) { @@ -83,22 +89,11 @@ pub fn render_shop( inGameScreen.current_state = InGameState::SWIMMING; } - // Get Screen dimemensions - let screen_width = draw_handle.get_screen_width() as f32; - let screen_height = draw_handle.get_screen_height() as f32; - - let box_height = screen_height * 0.15; - let box_width = screen_width * 0.1; - - let start_width = screen_width - (box_width * 4.0) - 40.0; - let draw_height = screen_height - 20.0 - box_height; - //draw_handle.draw_rectangle(start_index as i32, (screen_height - 20.0 - box_height) as i32, box_width as i32, box_height as i32, Color::BLACK); // Draws shop boxes - for box_num in 0..4 { - let x_pose = start_width + box_width * box_num as f32; - - draw_handle.draw_rectangle_lines(x_pose as i32, draw_height as i32, box_width as i32, box_height as i32, Color::BLACK); + for item in inGameScreen.shop.shop_items.iter() { + // Draws in accordance to the struct + draw_handle.draw_rectangle(item.x_pose, item.y_pose, item.width, item.height, Color::BLACK); }