add some Defaults
This commit is contained in:
parent
91d381a2e2
commit
9b78d7ed80
@ -5,7 +5,7 @@ use libpso::character::guildcard;
|
|||||||
pub const USERFLAG_NEWCHAR: u32 = 0x00000001;
|
pub const USERFLAG_NEWCHAR: u32 = 0x00000001;
|
||||||
pub const USERFLAG_DRESSINGROOM: u32 = 0x00000002;
|
pub const USERFLAG_DRESSINGROOM: u32 = 0x00000002;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
|
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Default)]
|
||||||
pub struct UserAccountId(pub u32);
|
pub struct UserAccountId(pub u32);
|
||||||
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
#[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
||||||
pub struct UserSettingsId(pub u32);
|
pub struct UserSettingsId(pub u32);
|
||||||
@ -59,6 +59,26 @@ pub struct UserAccountEntity {
|
|||||||
pub at_ship: bool,
|
pub at_ship: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for UserAccountEntity {
|
||||||
|
fn default() -> UserAccountEntity {
|
||||||
|
UserAccountEntity {
|
||||||
|
id: UserAccountId(0),
|
||||||
|
username: "".into(),
|
||||||
|
password: "".into(),
|
||||||
|
guildcard: 0xFFFFFFFF,
|
||||||
|
team_id: None,
|
||||||
|
banned_until: None,
|
||||||
|
muted_until: None,
|
||||||
|
created_at: chrono::Utc::now(),
|
||||||
|
flags: 0,
|
||||||
|
activated: false,
|
||||||
|
at_login: false,
|
||||||
|
at_character: false,
|
||||||
|
at_ship: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl UserAccountEntity {
|
impl UserAccountEntity {
|
||||||
pub fn is_currently_online(&self) -> bool {
|
pub fn is_currently_online(&self) -> bool {
|
||||||
self.at_login | self.at_character | self.at_ship
|
self.at_login | self.at_character | self.at_ship
|
||||||
|
@ -7,8 +7,9 @@ use libpso::character::character::{DEFAULT_PALETTE_CONFIG, DEFAULT_TECH_MENU};
|
|||||||
use crate::entity::item::tech::Technique;
|
use crate::entity::item::tech::Technique;
|
||||||
use crate::entity::account::UserAccountId;
|
use crate::entity::account::UserAccountId;
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, enum_utils::FromStr, derive_more::Display, Serialize, Deserialize)]
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, enum_utils::FromStr, derive_more::Display, Serialize, Deserialize, Default)]
|
||||||
pub enum CharacterClass {
|
pub enum CharacterClass {
|
||||||
|
#[default]
|
||||||
HUmar,
|
HUmar,
|
||||||
HUnewearl,
|
HUnewearl,
|
||||||
HUcast,
|
HUcast,
|
||||||
@ -90,8 +91,9 @@ impl CharacterClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, enum_utils::FromStr, derive_more::Display, Serialize, Deserialize)]
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, enum_utils::FromStr, derive_more::Display, Serialize, Deserialize, Default)]
|
||||||
pub enum SectionID {
|
pub enum SectionID {
|
||||||
|
#[default]
|
||||||
Viridia,
|
Viridia,
|
||||||
Greenill,
|
Greenill,
|
||||||
Skyly,
|
Skyly,
|
||||||
@ -163,13 +165,15 @@ pub struct CharacterTechniques {
|
|||||||
pub techs: HashMap<Technique, TechLevel>
|
pub techs: HashMap<Technique, TechLevel>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterTechniques {
|
impl Default for CharacterTechniques {
|
||||||
fn new() -> CharacterTechniques {
|
fn default() -> CharacterTechniques {
|
||||||
CharacterTechniques {
|
CharacterTechniques {
|
||||||
techs: HashMap::new(),
|
techs: HashMap::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CharacterTechniques {
|
||||||
pub fn set_tech(&mut self, tech: Technique, level: TechLevel) {
|
pub fn set_tech(&mut self, tech: Technique, level: TechLevel) {
|
||||||
self.techs.insert(tech, TechLevel(level.0 - 1));
|
self.techs.insert(tech, TechLevel(level.0 - 1));
|
||||||
}
|
}
|
||||||
@ -192,13 +196,15 @@ pub struct CharacterConfig {
|
|||||||
pub raw_data: [u8; 0xE8],
|
pub raw_data: [u8; 0xE8],
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterConfig {
|
impl Default for CharacterConfig {
|
||||||
fn new() -> CharacterConfig {
|
fn default() -> CharacterConfig {
|
||||||
CharacterConfig {
|
CharacterConfig {
|
||||||
raw_data: DEFAULT_PALETTE_CONFIG,
|
raw_data: DEFAULT_PALETTE_CONFIG,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CharacterConfig {
|
||||||
pub fn update(&mut self, new_config: &UpdateConfig) {
|
pub fn update(&mut self, new_config: &UpdateConfig) {
|
||||||
self.raw_data = new_config.config;
|
self.raw_data = new_config.config;
|
||||||
}
|
}
|
||||||
@ -213,13 +219,15 @@ pub struct CharacterInfoboard {
|
|||||||
pub board: [u16; 172],
|
pub board: [u16; 172],
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterInfoboard {
|
impl Default for CharacterInfoboard {
|
||||||
fn new() -> CharacterInfoboard {
|
fn default() -> CharacterInfoboard {
|
||||||
CharacterInfoboard {
|
CharacterInfoboard {
|
||||||
board: [0; 172]
|
board: [0; 172]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CharacterInfoboard {
|
||||||
pub fn as_bytes(&self) -> [u16; 172] {
|
pub fn as_bytes(&self) -> [u16; 172] {
|
||||||
self.board
|
self.board
|
||||||
}
|
}
|
||||||
@ -239,13 +247,15 @@ pub struct CharacterTechMenu {
|
|||||||
pub tech_menu: [u8; 40],
|
pub tech_menu: [u8; 40],
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterTechMenu {
|
impl Default for CharacterTechMenu {
|
||||||
fn new() -> CharacterTechMenu {
|
fn default() -> CharacterTechMenu {
|
||||||
CharacterTechMenu {
|
CharacterTechMenu {
|
||||||
tech_menu: DEFAULT_TECH_MENU,
|
tech_menu: DEFAULT_TECH_MENU,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CharacterTechMenu {
|
||||||
pub fn as_bytes(&self) -> [u8; 40] {
|
pub fn as_bytes(&self) -> [u8; 40] {
|
||||||
self.tech_menu
|
self.tech_menu
|
||||||
}
|
}
|
||||||
@ -262,7 +272,7 @@ pub struct CharacterMaterials {
|
|||||||
pub tp: u32,
|
pub tp: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Default)]
|
||||||
pub struct CharacterEntityId(pub u32);
|
pub struct CharacterEntityId(pub u32);
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -299,12 +309,12 @@ impl NewCharacterEntity {
|
|||||||
char_class: CharacterClass::HUmar,
|
char_class: CharacterClass::HUmar,
|
||||||
section_id: SectionID::Viridia,
|
section_id: SectionID::Viridia,
|
||||||
appearance: CharacterAppearance::default(),
|
appearance: CharacterAppearance::default(),
|
||||||
techs: CharacterTechniques::new(),
|
techs: CharacterTechniques::default(),
|
||||||
config: CharacterConfig::new(),
|
config: CharacterConfig::default(),
|
||||||
info_board: CharacterInfoboard::new(),
|
info_board: CharacterInfoboard::default(),
|
||||||
guildcard: CharacterGuildCard::default(),
|
guildcard: CharacterGuildCard::default(),
|
||||||
materials: CharacterMaterials::default(),
|
materials: CharacterMaterials::default(),
|
||||||
tech_menu: CharacterTechMenu::new(),
|
tech_menu: CharacterTechMenu::default(),
|
||||||
meseta: 0,
|
meseta: 0,
|
||||||
bank_meseta: 0,
|
bank_meseta: 0,
|
||||||
option_flags: 0,
|
option_flags: 0,
|
||||||
@ -312,7 +322,7 @@ impl NewCharacterEntity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone, Default)]
|
||||||
pub struct CharacterEntity {
|
pub struct CharacterEntity {
|
||||||
pub id: CharacterEntityId,
|
pub id: CharacterEntityId,
|
||||||
pub user_id: UserAccountId,
|
pub user_id: UserAccountId,
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#![feature(maybe_uninit_extra)]
|
#![feature(maybe_uninit_extra)]
|
||||||
#![feature(inline_const)]
|
#![feature(inline_const)]
|
||||||
#![feature(drain_filter)]
|
#![feature(drain_filter)]
|
||||||
|
#![feature(derive_default_enum)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user