add character/guildcard structs
This commit is contained in:
		
							parent
							
								
									a37856ddcf
								
							
						
					
					
						commit
						419db62ad5
					
				
							
								
								
									
										104
									
								
								src/character/character.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								src/character/character.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					// TODO: ch_class to CharacterClass enum
 | 
				
			||||||
 | 
					// TODO: section_id to SectionId enum
 | 
				
			||||||
 | 
					// TODO: techniques to enum?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Default)]
 | 
				
			||||||
 | 
					pub struct Character {
 | 
				
			||||||
 | 
					    pub atp: u16,
 | 
				
			||||||
 | 
					    pub mst: u16,
 | 
				
			||||||
 | 
					    pub evp: u16,
 | 
				
			||||||
 | 
					    pub hp: u16,
 | 
				
			||||||
 | 
					    pub dfp: u16,
 | 
				
			||||||
 | 
					    pub ata: u16,
 | 
				
			||||||
 | 
					    pub lck: u16,
 | 
				
			||||||
 | 
					    pub _unknown1: u16,
 | 
				
			||||||
 | 
					    pub _unknown2: [u32; 2],
 | 
				
			||||||
 | 
					    pub level: u32,
 | 
				
			||||||
 | 
					    pub exp: u32,
 | 
				
			||||||
 | 
					    pub meseta: u32,
 | 
				
			||||||
 | 
					    pub guildcard: [u8; 16],
 | 
				
			||||||
 | 
					    pub _unknown3: [u32; 2],
 | 
				
			||||||
 | 
					    pub name_color: u32,
 | 
				
			||||||
 | 
					    pub model: u8,
 | 
				
			||||||
 | 
					    pub _unused: [u8; 11],
 | 
				
			||||||
 | 
					    pub play_time: u32,
 | 
				
			||||||
 | 
					    pub name_color_checksum: u32,
 | 
				
			||||||
 | 
					    pub section_id: u8,
 | 
				
			||||||
 | 
					    pub ch_class: u8,
 | 
				
			||||||
 | 
					    pub v2flags: u8,
 | 
				
			||||||
 | 
					    pub version: u8,
 | 
				
			||||||
 | 
					    pub v1flags: u8,
 | 
				
			||||||
 | 
					    pub costume: u16,
 | 
				
			||||||
 | 
					    pub skin: u16,
 | 
				
			||||||
 | 
					    pub face: u16,
 | 
				
			||||||
 | 
					    pub head: u16,
 | 
				
			||||||
 | 
					    pub hair: u16,
 | 
				
			||||||
 | 
					    pub hair_r: u16,
 | 
				
			||||||
 | 
					    pub hair_g: u16,
 | 
				
			||||||
 | 
					    pub hair_b: u16,
 | 
				
			||||||
 | 
					    pub prop_x: f32,
 | 
				
			||||||
 | 
					    pub prop_y: f32,
 | 
				
			||||||
 | 
					    pub name: [u16; 16],
 | 
				
			||||||
 | 
					    //pub config: [u8; 0xE8],
 | 
				
			||||||
 | 
					    pub techniques: [u8; 0x14],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Character {
 | 
				
			||||||
 | 
					    pub fn as_select_screen(self) -> SelectScreenCharacter {
 | 
				
			||||||
 | 
					        SelectScreenCharacter {
 | 
				
			||||||
 | 
					            exp: self.exp,
 | 
				
			||||||
 | 
					            level: self.level,
 | 
				
			||||||
 | 
					            guildcard: self.guildcard,
 | 
				
			||||||
 | 
					            _unknown: self._unknown3,
 | 
				
			||||||
 | 
					            name_color: self.name_color,
 | 
				
			||||||
 | 
					            model: self.model,
 | 
				
			||||||
 | 
					            _unused: [0; 15],
 | 
				
			||||||
 | 
					            name_color_checksum: self.name_color_checksum,
 | 
				
			||||||
 | 
					            section_id: self.section_id,
 | 
				
			||||||
 | 
					            ch_class: self.ch_class,
 | 
				
			||||||
 | 
					            v2flags: self.v2flags,
 | 
				
			||||||
 | 
					            version: self.version,
 | 
				
			||||||
 | 
					            v1flags: self.v1flags,
 | 
				
			||||||
 | 
					            costume: self.costume,
 | 
				
			||||||
 | 
					            skin: self.skin,
 | 
				
			||||||
 | 
					            face: self.face,
 | 
				
			||||||
 | 
					            head: self.head,
 | 
				
			||||||
 | 
					            hair: self.hair,
 | 
				
			||||||
 | 
					            hair_r: self.hair_r,
 | 
				
			||||||
 | 
					            hair_g: self.hair_g,
 | 
				
			||||||
 | 
					            hair_b: self.hair_b,
 | 
				
			||||||
 | 
					            prop_x: self.prop_x,
 | 
				
			||||||
 | 
					            prop_y: self.prop_y,
 | 
				
			||||||
 | 
					            name: self.name,
 | 
				
			||||||
 | 
					            play_time: self.play_time,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub struct SelectScreenCharacter {
 | 
				
			||||||
 | 
					    pub exp: u32,
 | 
				
			||||||
 | 
					    pub level: u32,
 | 
				
			||||||
 | 
					    pub guildcard: [u8; 16],
 | 
				
			||||||
 | 
					    pub _unknown: [u32; 2],
 | 
				
			||||||
 | 
					    pub name_color: u32,
 | 
				
			||||||
 | 
					    pub model: u8,
 | 
				
			||||||
 | 
					    pub _unused: [u8; 15],
 | 
				
			||||||
 | 
					    pub name_color_checksum: u32,
 | 
				
			||||||
 | 
					    pub section_id: u8,
 | 
				
			||||||
 | 
					    pub ch_class: u8,
 | 
				
			||||||
 | 
					    pub v2flags: u8,
 | 
				
			||||||
 | 
					    pub version: u8,
 | 
				
			||||||
 | 
					    pub v1flags: u8,
 | 
				
			||||||
 | 
					    pub costume: u16,
 | 
				
			||||||
 | 
					    pub skin: u16,
 | 
				
			||||||
 | 
					    pub face: u16,
 | 
				
			||||||
 | 
					    pub head: u16,
 | 
				
			||||||
 | 
					    pub hair: u16,
 | 
				
			||||||
 | 
					    pub hair_r: u16,
 | 
				
			||||||
 | 
					    pub hair_g: u16,
 | 
				
			||||||
 | 
					    pub hair_b: u16,
 | 
				
			||||||
 | 
					    pub prop_x: f32,
 | 
				
			||||||
 | 
					    pub prop_y: f32,
 | 
				
			||||||
 | 
					    pub name: [u16; 16],
 | 
				
			||||||
 | 
					    pub play_time: u32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										114
									
								
								src/character/guildcard.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								src/character/guildcard.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,114 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					typedef struct bb_guildcard_data {
 | 
				
			||||||
 | 
					    uint8_t unk1[0x0114];
 | 
				
			||||||
 | 
					    struct {
 | 
				
			||||||
 | 
					        uint32_t guildcard;
 | 
				
			||||||
 | 
					        uint16_t name[0x18];
 | 
				
			||||||
 | 
					        uint16_t team[0x10];
 | 
				
			||||||
 | 
					        uint16_t desc[0x58];
 | 
				
			||||||
 | 
					        uint8_t reserved1;
 | 
				
			||||||
 | 
					        uint8_t language;
 | 
				
			||||||
 | 
					        uint8_t section;
 | 
				
			||||||
 | 
					        uint8_t ch_class;
 | 
				
			||||||
 | 
					    } blocked[29];
 | 
				
			||||||
 | 
					    uint8_t unk2[0x78];
 | 
				
			||||||
 | 
					    struct {
 | 
				
			||||||
 | 
					        uint32_t guildcard;
 | 
				
			||||||
 | 
					        uint16_t name[0x18];
 | 
				
			||||||
 | 
					        uint16_t team[0x10];
 | 
				
			||||||
 | 
					        uint16_t desc[0x58];
 | 
				
			||||||
 | 
					        uint8_t reserved1;
 | 
				
			||||||
 | 
					        uint8_t language;
 | 
				
			||||||
 | 
					        uint8_t section;
 | 
				
			||||||
 | 
					        uint8_t ch_class;
 | 
				
			||||||
 | 
					        uint32_t padding;
 | 
				
			||||||
 | 
					        uint16_t comment[0x58];
 | 
				
			||||||
 | 
					    } entries[104];
 | 
				
			||||||
 | 
					    uint8_t unk3[0x01BC];
 | 
				
			||||||
 | 
					} bb_gc_data_t;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Copy, Clone)]
 | 
				
			||||||
 | 
					pub struct BlockedGuildCard {
 | 
				
			||||||
 | 
					    pub guildcard: u32,
 | 
				
			||||||
 | 
					    pub name: [u16; 0x18],
 | 
				
			||||||
 | 
					    pub team: [u16; 0x10],
 | 
				
			||||||
 | 
					    pub desc: [u16; 0x58],
 | 
				
			||||||
 | 
					    pub reserved1: u8,
 | 
				
			||||||
 | 
					    pub language: u8,
 | 
				
			||||||
 | 
					    pub section_id: u8,
 | 
				
			||||||
 | 
					    pub class: u8,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Default for BlockedGuildCard {
 | 
				
			||||||
 | 
					    fn default() -> BlockedGuildCard {
 | 
				
			||||||
 | 
					        BlockedGuildCard {
 | 
				
			||||||
 | 
					            guildcard: 0,
 | 
				
			||||||
 | 
					            name: [0; 0x18],
 | 
				
			||||||
 | 
					            team: [0; 0x10],
 | 
				
			||||||
 | 
					            desc: [0; 0x58],
 | 
				
			||||||
 | 
					            reserved1: 0,
 | 
				
			||||||
 | 
					            language: 0,
 | 
				
			||||||
 | 
					            section_id: 0,
 | 
				
			||||||
 | 
					            class: 0,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Copy, Clone)]
 | 
				
			||||||
 | 
					pub struct GuildCard {
 | 
				
			||||||
 | 
					    pub guildcard: u32,
 | 
				
			||||||
 | 
					    pub name: [u16; 0x18],
 | 
				
			||||||
 | 
					    pub team: [u16; 0x10],
 | 
				
			||||||
 | 
					    pub desc: [u16; 0x58],
 | 
				
			||||||
 | 
					    pub reserved1: u8,
 | 
				
			||||||
 | 
					    pub language: u8,
 | 
				
			||||||
 | 
					    pub section_id: u8,
 | 
				
			||||||
 | 
					    pub class: u8,
 | 
				
			||||||
 | 
					    pub paddding: u32,
 | 
				
			||||||
 | 
					    pub comment: [u16; 0x58],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Default for GuildCard {
 | 
				
			||||||
 | 
					    fn default() -> GuildCard {
 | 
				
			||||||
 | 
					        GuildCard {
 | 
				
			||||||
 | 
					            guildcard: 0,
 | 
				
			||||||
 | 
					            name: [0; 0x18],
 | 
				
			||||||
 | 
					            team: [0; 0x10],
 | 
				
			||||||
 | 
					            desc: [0; 0x58],
 | 
				
			||||||
 | 
					            reserved1: 0,
 | 
				
			||||||
 | 
					            language: 0,
 | 
				
			||||||
 | 
					            section_id: 0,
 | 
				
			||||||
 | 
					            class: 0,
 | 
				
			||||||
 | 
					            paddding: 0,
 | 
				
			||||||
 | 
					            comment: [0; 0x58],
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Copy, Clone)]
 | 
				
			||||||
 | 
					pub struct GuildCardData {
 | 
				
			||||||
 | 
					    pub _unknown1: [u8; 0x114],
 | 
				
			||||||
 | 
					    pub blocked: [BlockedGuildCard; 29],
 | 
				
			||||||
 | 
					    pub _unknown2: [u8; 0x78],
 | 
				
			||||||
 | 
					    pub friends: [GuildCard; 104],
 | 
				
			||||||
 | 
					    pub _unknown3: [u8; 0x1BC],
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Default for GuildCardData {
 | 
				
			||||||
 | 
					    fn default() -> GuildCardData {
 | 
				
			||||||
 | 
					        GuildCardData {
 | 
				
			||||||
 | 
					            _unknown1: [0; 0x114],
 | 
				
			||||||
 | 
					            blocked: [BlockedGuildCard::default(); 29],
 | 
				
			||||||
 | 
					            _unknown2: [0; 0x78],
 | 
				
			||||||
 | 
					            friends: [GuildCard::default(); 104],
 | 
				
			||||||
 | 
					            _unknown3: [0; 0x1BC],
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user