move block_selected
This commit is contained in:
		
							parent
							
								
									0b04701156
								
							
						
					
					
						commit
						07403fe815
					
				| @ -7,6 +7,35 @@ use crate::ship::character::{CharacterBytesBuilder, FullCharacterBytesBuilder}; | ||||
| use crate::ship::location::{ClientLocation, LobbyId, RoomId, RoomLobby, MAX_ROOMS}; | ||||
| use libpso::character::character; | ||||
| 
 | ||||
| // this function needs a better home
 | ||||
| pub fn block_selected(id: ClientId, | ||||
|                   pkt: &MenuSelect, | ||||
|                   clients: &mut HashMap<ClientId, ClientState>, | ||||
|                   level_table: &CharacterLevelTable) | ||||
|                   -> Result<Vec<SendShipPacket>, ShipError> { | ||||
|     let client = clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id))?; | ||||
|     client.block = pkt.item as u32; | ||||
| 
 | ||||
|     let (level, stats) = level_table.get_stats_from_exp(client.character.char_class, client.character.exp); | ||||
| 
 | ||||
|     let fc = FullCharacterBytesBuilder::new() | ||||
|         .character(&client.character) | ||||
|         .stats(&stats) | ||||
|         .level(level) | ||||
|         .inventory(&client.inventory) | ||||
|         .key_config(&client.settings.settings.key_config) | ||||
|         .joystick_config(&client.settings.settings.joystick_config) | ||||
|         .symbol_chat(&client.settings.settings.symbol_chats) | ||||
|         .tech_menu(&client.character.tech_menu.as_bytes()) | ||||
|         .build(); | ||||
| 
 | ||||
|     Ok(vec![ | ||||
|         SendShipPacket::FullCharacter(FullCharacter { | ||||
|             character: fc, | ||||
|         }), | ||||
|         SendShipPacket::CharDataRequest(CharDataRequest {}), | ||||
|     ]) | ||||
| } | ||||
| 
 | ||||
| pub fn send_player_to_lobby(id: ClientId, | ||||
|                             _pkt: &CharData, | ||||
|  | ||||
| @ -136,13 +136,13 @@ impl SendServerPacket for SendShipPacket { | ||||
| 
 | ||||
| pub struct ClientState { | ||||
|     pub user: UserAccountEntity, | ||||
|     settings: UserSettingsEntity, | ||||
|     pub settings: UserSettingsEntity, | ||||
|     pub character: CharacterEntity, | ||||
|     session: Session, | ||||
|     //guildcard: GuildCard,
 | ||||
|     inventory: items::ActiveInventory, | ||||
|     pub inventory: items::ActiveInventory, | ||||
|     //bank: Bank,
 | ||||
|     block: u32, | ||||
|     pub block: u32, | ||||
| } | ||||
| 
 | ||||
| impl ClientState { | ||||
| @ -183,31 +183,6 @@ impl<EG: EntityGateway> ShipServerState<EG> { | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fn block_selected(&mut self, id: ClientId, pkt: &MenuSelect) -> Result<Vec<SendShipPacket>, ShipError> { | ||||
|         let client = self.clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id))?; | ||||
|         client.block = pkt.item as u32; | ||||
| 
 | ||||
|         let (level, stats) = self.level_table.get_stats_from_exp(client.character.char_class, client.character.exp); | ||||
| 
 | ||||
|         let fc = FullCharacterBytesBuilder::new() | ||||
|             .character(&client.character) | ||||
|             .stats(&stats) | ||||
|             .level(level) | ||||
|             .inventory(&client.inventory) | ||||
|             .key_config(&client.settings.settings.key_config) | ||||
|             .joystick_config(&client.settings.settings.joystick_config) | ||||
|             .symbol_chat(&client.settings.settings.symbol_chats) | ||||
|             .tech_menu(&client.character.tech_menu.as_bytes()) | ||||
|             .build(); | ||||
| 
 | ||||
|         Ok(vec![ | ||||
|             SendShipPacket::FullCharacter(FullCharacter { | ||||
|                 character: fc, | ||||
|             }), | ||||
|             SendShipPacket::CharDataRequest(CharDataRequest {}), | ||||
|         ]) | ||||
|     } | ||||
| 
 | ||||
|     fn message(&mut self, id: ClientId, msg: &Message) -> Box<dyn Iterator<Item = (ClientId, SendShipPacket)> + Send> { | ||||
|         match &msg.msg { | ||||
|             GameMessage::RequestExp(request_exp) => { | ||||
| @ -268,7 +243,7 @@ impl<EG: EntityGateway> ServerState for ShipServerState<EG> { | ||||
|             }, | ||||
|             RecvShipPacket::MenuSelect(menuselect) => { | ||||
|                 match menuselect.menu { | ||||
|                     BLOCK_MENU_ID => Box::new(self.block_selected(id, menuselect)?.into_iter().map(move |pkt| (id, pkt))), | ||||
|                     BLOCK_MENU_ID => Box::new(handler::lobby::block_selected(id, menuselect, &mut self.clients, &self.level_table)?.into_iter().map(move |pkt| (id, pkt))), | ||||
|                     ROOM_MENU_ID => Box::new(handler::room::join_room(id, menuselect, &mut self.client_location, &mut self.clients, &self.level_table, &mut self.rooms)?.into_iter()), | ||||
|                     _ => unreachable!(), | ||||
|                 } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user