make quick tech menu not all foie
This commit is contained in:
		
							parent
							
								
									ff2ae85299
								
							
						
					
					
						commit
						37b19ef3ad
					
				| @ -2,7 +2,7 @@ use std::convert::{From, Into, TryFrom, TryInto}; | ||||
| use std::collections::HashMap; | ||||
| 
 | ||||
| use libpso::packet::ship::{UpdateConfig, WriteInfoboard}; | ||||
| use libpso::character::character::{Character}; | ||||
| use libpso::character::character::{Character, FullCharacter}; | ||||
| use crate::entity::item::tech::Technique; | ||||
| use crate::entity::account::UserAccountId; | ||||
| 
 | ||||
| @ -229,6 +229,23 @@ pub struct CharacterGuildCard { | ||||
|     pub description: String, | ||||
| } | ||||
| 
 | ||||
| #[derive(Clone)] | ||||
| pub struct CharacterTechMenu { | ||||
|     pub tech_menu: [u8; 40], | ||||
| } | ||||
| 
 | ||||
| impl CharacterTechMenu { | ||||
|     fn new() -> CharacterTechMenu { | ||||
|         CharacterTechMenu { | ||||
|             tech_menu: FullCharacter::default().tech_menu, | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     pub fn as_bytes(&self) -> [u8; 40] { | ||||
|         self.tech_menu | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] | ||||
| pub struct CharacterEntityId(pub u32); | ||||
| @ -249,6 +266,8 @@ pub struct NewCharacterEntity { | ||||
|     pub config: CharacterConfig, | ||||
|     pub info_board: CharacterInfoboard, | ||||
|     pub guildcard: CharacterGuildCard, | ||||
| 
 | ||||
|     pub tech_menu: CharacterTechMenu, | ||||
| } | ||||
| 
 | ||||
| impl NewCharacterEntity { | ||||
| @ -265,6 +284,7 @@ impl NewCharacterEntity { | ||||
|             config: CharacterConfig::new(), | ||||
|             info_board: CharacterInfoboard::new(), | ||||
|             guildcard: CharacterGuildCard::default(), | ||||
|             tech_menu: CharacterTechMenu::new(), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -286,4 +306,6 @@ pub struct CharacterEntity { | ||||
|     pub config: CharacterConfig, | ||||
|     pub info_board: CharacterInfoboard, | ||||
|     pub guildcard: CharacterGuildCard, | ||||
| 
 | ||||
|     pub tech_menu: CharacterTechMenu, | ||||
| } | ||||
|  | ||||
| @ -123,6 +123,7 @@ impl EntityGateway for InMemoryGateway { | ||||
|             config: character.config, | ||||
|             info_board: character.info_board, | ||||
|             guildcard: character.guildcard, | ||||
|             tech_menu: character.tech_menu, | ||||
|         }; | ||||
|         characters.insert(new_character.id, new_character.clone()); | ||||
|         Some(new_character) | ||||
|  | ||||
| @ -83,6 +83,7 @@ pub struct FullCharacterBytesBuilder<'a> { | ||||
|     key_config: Option<&'a [u8; 0x16C]>, | ||||
|     joystick_config: Option<&'a [u8; 0x38]>, | ||||
|     symbol_chat: Option<&'a [u8; 1248]>, | ||||
|     tech_menu: Option<&'a [u8; 40]>, | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -96,6 +97,7 @@ impl<'a> FullCharacterBytesBuilder<'a> { | ||||
|             key_config: None, | ||||
|             joystick_config: None, | ||||
|             symbol_chat: None, | ||||
|             tech_menu: None, | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @ -148,6 +150,13 @@ impl<'a> FullCharacterBytesBuilder<'a> { | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     pub fn tech_menu(self, tech_menu: &'a [u8; 40]) -> FullCharacterBytesBuilder<'a> { | ||||
|         FullCharacterBytesBuilder { | ||||
|             tech_menu: Some(tech_menu), | ||||
|             ..self | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     pub fn build(self) -> character::FullCharacter { | ||||
|         let character = self.character.unwrap(); | ||||
| @ -157,6 +166,7 @@ impl<'a> FullCharacterBytesBuilder<'a> { | ||||
|         let key_config = self.key_config.unwrap(); | ||||
|         let joystick_config = self.joystick_config.unwrap(); | ||||
|         let symbol_chat = self.symbol_chat.unwrap(); | ||||
|         let tech_menu = self.tech_menu.unwrap(); | ||||
| 
 | ||||
|         character::FullCharacter { | ||||
|             character: CharacterBytesBuilder::new() | ||||
| @ -176,6 +186,7 @@ impl<'a> FullCharacterBytesBuilder<'a> { | ||||
|             }, | ||||
|             info_board: character.info_board.as_bytes(), | ||||
|             symbol_chats: *symbol_chat, | ||||
|             tech_menu: *tech_menu, | ||||
|             ..character::FullCharacter::default() | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -221,6 +221,7 @@ impl<EG: EntityGateway> ShipServerState<EG> { | ||||
|             .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![ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user