Merge branch 'master' into unitxt
This commit is contained in:
commit
cf3a84c60d
@ -3,91 +3,6 @@
|
||||
// TODO: techniques to enum
|
||||
use psopacket::PSOPacketData;
|
||||
use crate::{PSOPacketData, PacketParseError};
|
||||
//use crate::PSOPacketData;
|
||||
|
||||
pub const DEFAULT_PALETTE_CONFIG: [u8; 0xE8] = [
|
||||
0, 0, 0, 0,
|
||||
1, 0, 0, 0,
|
||||
2, 0, 1, 0,
|
||||
2, 1, 1, 0,
|
||||
4, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 1, 0,
|
||||
1, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0
|
||||
];
|
||||
|
||||
pub const DEFAULT_TECH_MENU: [u8; 40] = [
|
||||
0x00, 0x00,
|
||||
0x06, 0x00,
|
||||
0x03, 0x00,
|
||||
0x01, 0x00,
|
||||
0x07, 0x00,
|
||||
0x04, 0x00,
|
||||
0x02, 0x00,
|
||||
0x08, 0x00,
|
||||
0x05, 0x00,
|
||||
0x09, 0x00,
|
||||
0x12, 0x00,
|
||||
0x0f, 0x00,
|
||||
0x10, 0x00,
|
||||
0x11, 0x00,
|
||||
0x0d, 0x00,
|
||||
0x0a, 0x00,
|
||||
0x0b, 0x00,
|
||||
0x0c, 0x00,
|
||||
0x0e, 0x00,
|
||||
0x00, 0x00,
|
||||
];
|
||||
|
||||
#[repr(u32)]
|
||||
#[derive(Copy, Clone, Hash, PartialEq, Eq)]
|
||||
@ -357,8 +272,8 @@ impl std::default::Default for Bank {
|
||||
#[derive(PSOPacketData, Copy, Clone)]
|
||||
pub struct KeyTeamConfig {
|
||||
pub _unknown: [u8; 0x114],
|
||||
pub key_config: [u8; 0x16C],
|
||||
pub joystick_config: [u8; 0x38],
|
||||
pub keyboard_config: [u8; 0x16C],
|
||||
pub gamepad_config: [u8; 0x38],
|
||||
pub guildcard: u32,
|
||||
pub team_id: u32,
|
||||
pub team_info: [u32; 2],
|
||||
@ -438,8 +353,8 @@ pub struct DBChar {
|
||||
#[derive(PSOPacketData, Copy, Clone)]
|
||||
pub struct DBOpts {
|
||||
pub blocked: [u32; 30],
|
||||
pub key_config: [u8; 0x16C],
|
||||
pub joystick_config: [u8; 0x38],
|
||||
pub keyboard_config: [u8; 0x16C],
|
||||
pub gamepad_config: [u8; 0x38],
|
||||
pub option_flags: u32,
|
||||
pub shortcuts: [u8; 0xA40],
|
||||
pub symbol_chats: [u8; 0x4E0],
|
||||
|
@ -1,53 +1,22 @@
|
||||
use crate::packet::ship::{GuildcardAccept};
|
||||
|
||||
|
||||
/*
|
||||
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,
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub struct BlockedGuildCard { // 264
|
||||
pub id: u32, // 4
|
||||
pub name: [u16; 0x18], // 48
|
||||
pub team: [u16; 0x10], // 32
|
||||
pub desc: [u16; 0x58], // 176
|
||||
pub reserved1: u8, // 1
|
||||
pub language: u8, // 1
|
||||
pub section_id: u8, // 1
|
||||
pub class: u8, // 1
|
||||
}
|
||||
|
||||
impl Default for BlockedGuildCard {
|
||||
fn default() -> BlockedGuildCard {
|
||||
BlockedGuildCard {
|
||||
guildcard: 0,
|
||||
id: 0,
|
||||
name: [0; 0x18],
|
||||
team: [0; 0x10],
|
||||
desc: [0; 0x58],
|
||||
@ -59,25 +28,41 @@ impl Default for BlockedGuildCard {
|
||||
}
|
||||
}
|
||||
|
||||
#[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 padding: u32,
|
||||
pub comment: [u16; 0x58],
|
||||
impl From<GuildCard> for BlockedGuildCard {
|
||||
fn from(g: GuildCard) -> BlockedGuildCard {
|
||||
BlockedGuildCard {
|
||||
id: g.id,
|
||||
name: g.name,
|
||||
team: g.team,
|
||||
desc: g.desc,
|
||||
reserved1: g.reserved1,
|
||||
language: g.language,
|
||||
section_id: g.section_id,
|
||||
class: g.class,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub struct GuildCard { // 444
|
||||
pub id: u32, // 4
|
||||
pub name: [u16; 0x18], // 48
|
||||
pub team: [u16; 0x10], // 32
|
||||
pub desc: [u16; 0x58], // 176
|
||||
pub reserved1: u8, // 1
|
||||
pub language: u8, // 1
|
||||
pub section_id: u8, // 1
|
||||
pub class: u8, // 1
|
||||
pub padding: u32, // 4
|
||||
pub comment: [u16; 0x58], // 176
|
||||
}
|
||||
|
||||
|
||||
impl Default for GuildCard {
|
||||
fn default() -> GuildCard {
|
||||
GuildCard {
|
||||
guildcard: 0,
|
||||
id: 0,
|
||||
name: [0; 0x18],
|
||||
team: [0; 0x10],
|
||||
desc: [0; 0x58],
|
||||
@ -91,13 +76,30 @@ impl Default for GuildCard {
|
||||
}
|
||||
}
|
||||
|
||||
#[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 From<&GuildcardAccept> for GuildCard {
|
||||
fn from(g: &GuildcardAccept) -> GuildCard {
|
||||
GuildCard {
|
||||
id: g.id,
|
||||
name: g.name,
|
||||
team: g.team,
|
||||
desc: g.desc,
|
||||
reserved1: g.one,
|
||||
language: g.language,
|
||||
section_id: g.section_id,
|
||||
class: g.class,
|
||||
padding: 0,
|
||||
comment: [0; 0x58],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[repr(C)]
|
||||
pub struct GuildCardData { // 54672 0xd590
|
||||
pub _unknown1: [u8; 0x114], // 276
|
||||
pub blocked: [BlockedGuildCard; 29], // 264 * 29 = 7656
|
||||
pub _unknown2: [u8; 0x78], // 120
|
||||
pub friends: [GuildCard; 105], // 444 * 105 = 46620
|
||||
}
|
||||
|
||||
impl Default for GuildCardData {
|
||||
@ -106,8 +108,7 @@ impl Default for GuildCardData {
|
||||
_unknown1: [0; 0x114],
|
||||
blocked: [BlockedGuildCard::default(); 29],
|
||||
_unknown2: [0; 0x78],
|
||||
friends: [GuildCard::default(); 104],
|
||||
_unknown3: [0; 0x1BC],
|
||||
friends: [GuildCard::default(); 105],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// TODO: deblobify all of this
|
||||
|
||||
const DEFAULT_KEY_CONFIG: [u8; 0x16C] = [
|
||||
pub const DEFAULT_KEYBOARD_CONFIG1: [u8; 0x16C] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00,
|
||||
@ -39,7 +39,128 @@ const DEFAULT_KEY_CONFIG: [u8; 0x16C] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00
|
||||
];
|
||||
const DEFAULT_JOYSTICK_CONFIG: [u8; 0x38] = [
|
||||
|
||||
pub const DEFAULT_KEYBOARD_CONFIG2: [u8; 364] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00
|
||||
];
|
||||
|
||||
pub const DEFAULT_KEYBOARD_CONFIG3: [u8; 364] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00
|
||||
];
|
||||
|
||||
pub const DEFAULT_KEYBOARD_CONFIG4: [u8; 364] = [
|
||||
0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00
|
||||
];
|
||||
|
||||
pub const DEFAULT_GAMEPAD_CONFIG: [u8; 0x38] = [
|
||||
0x00, 0x01, 0xff, 0xff, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00,
|
||||
0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00,
|
||||
@ -176,12 +297,96 @@ const DEFAULT_SYMBOLCHATS: [u8; 0x4E0] = [
|
||||
0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00
|
||||
];
|
||||
|
||||
pub const DEFAULT_PALETTE_CONFIG: [u8; 0xE8] = [
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x01, 0x00,
|
||||
0x02, 0x01, 0x01, 0x00,
|
||||
0x04, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
];
|
||||
|
||||
pub const DEFAULT_TECH_MENU: [u8; 40] = [
|
||||
0x00, 0x00,
|
||||
0x06, 0x00,
|
||||
0x03, 0x00,
|
||||
0x01, 0x00,
|
||||
0x07, 0x00,
|
||||
0x04, 0x00,
|
||||
0x02, 0x00,
|
||||
0x08, 0x00,
|
||||
0x05, 0x00,
|
||||
0x09, 0x00,
|
||||
0x12, 0x00,
|
||||
0x0f, 0x00,
|
||||
0x10, 0x00,
|
||||
0x11, 0x00,
|
||||
0x0d, 0x00,
|
||||
0x0a, 0x00,
|
||||
0x0b, 0x00,
|
||||
0x0c, 0x00,
|
||||
0x0e, 0x00,
|
||||
0x00, 0x00,
|
||||
];
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
#[repr(C)]
|
||||
pub struct UserSettings {
|
||||
pub blocked_users: [u32; 0x1E],
|
||||
pub key_config: [u8; 0x16C],
|
||||
pub joystick_config: [u8; 0x38],
|
||||
pub keyboard_config: [u8; 0x16C],
|
||||
pub gamepad_config: [u8; 0x38],
|
||||
pub option_flags: u32,
|
||||
pub shortcuts: [u8; 0xA40],
|
||||
pub symbol_chats: [u8; 0x4E0],
|
||||
@ -193,8 +398,8 @@ impl Default for UserSettings {
|
||||
fn default() -> UserSettings {
|
||||
UserSettings {
|
||||
blocked_users: [0; 0x1E],
|
||||
key_config: DEFAULT_KEY_CONFIG,
|
||||
joystick_config: DEFAULT_JOYSTICK_CONFIG,
|
||||
keyboard_config: DEFAULT_KEYBOARD_CONFIG1,
|
||||
gamepad_config: DEFAULT_GAMEPAD_CONFIG,
|
||||
option_flags: 0,
|
||||
shortcuts: [0; 0xA40],
|
||||
symbol_chats: DEFAULT_SYMBOLCHATS,
|
||||
|
@ -209,8 +209,8 @@ pub struct RequestSettings {
|
||||
#[pso_packet(0xE2)]
|
||||
pub struct SendKeyAndTeamSettings {
|
||||
unknown: [u8; 0x114],
|
||||
key_config: [u8; 0x16C],
|
||||
joystick_config: [u8; 0x38],
|
||||
keyboard_config: [u8; 0x16C],
|
||||
gamepad_config: [u8; 0x38],
|
||||
guildcard: u32,
|
||||
team_id: u32,
|
||||
//team_info: [u32; 2],
|
||||
@ -225,11 +225,11 @@ pub struct SendKeyAndTeamSettings {
|
||||
}
|
||||
|
||||
impl SendKeyAndTeamSettings {
|
||||
pub fn new(key_config: [u8; 0x16C], joystick_config: [u8; 0x38], guildcard: u32, team_id: u32) -> SendKeyAndTeamSettings {
|
||||
pub fn new(keyboard_config: [u8; 0x16C], gamepad_config: [u8; 0x38], guildcard: u32, team_id: u32) -> SendKeyAndTeamSettings {
|
||||
SendKeyAndTeamSettings {
|
||||
unknown: [0; 0x114],
|
||||
key_config: key_config,
|
||||
joystick_config: joystick_config,
|
||||
keyboard_config: keyboard_config,
|
||||
gamepad_config: gamepad_config,
|
||||
guildcard: guildcard,
|
||||
team_id: team_id,
|
||||
//team_info: [0; 2],
|
||||
@ -385,9 +385,9 @@ impl std::fmt::Debug for GuildcardDataChunk {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
||||
write!(f, "packet GuildcardDataChunk {{\n").unwrap();
|
||||
write!(f, " flag: {:?}\n", 0).unwrap();
|
||||
write!(f, " _unknown: {:X?}\n", self._unknown).unwrap();
|
||||
write!(f, " chunk: {:X?}\n", self.chunk).unwrap();
|
||||
write!(f, " buffer: [0..{:X}]\n", self.len).unwrap();
|
||||
write!(f, " _unknown: {:#X?}\n", self._unknown).unwrap();
|
||||
write!(f, " chunk: {:#X?}\n", self.chunk).unwrap();
|
||||
write!(f, " buffer: [0..{:#X}]\n", self.len).unwrap();
|
||||
write!(f, "}}")
|
||||
}
|
||||
}
|
||||
@ -549,17 +549,17 @@ mod tests {
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
|
||||
let mut key_config = [0u8; 0x16C];
|
||||
let mut joystick_config = [0u8; 0x38];
|
||||
let mut keyboard_config = [0u8; 0x16C];
|
||||
let mut gamepad_config = [0u8; 0x38];
|
||||
|
||||
rng.fill(&mut key_config[..]);
|
||||
rng.fill(&mut joystick_config[..]);
|
||||
let pkt = super::SendKeyAndTeamSettings::new(key_config, joystick_config, 123, 456);
|
||||
rng.fill(&mut keyboard_config[..]);
|
||||
rng.fill(&mut gamepad_config[..]);
|
||||
let pkt = super::SendKeyAndTeamSettings::new(keyboard_config, gamepad_config, 123, 456);
|
||||
let bytes = pkt.as_bytes();
|
||||
|
||||
assert!(bytes[2] == 0xe2);
|
||||
assert!(bytes[8 + 0x114] == key_config[0]);
|
||||
assert!(bytes[8 + 0x114 + 0x16C] == joystick_config[0]);
|
||||
assert!(bytes[8 + 0x114] == keyboard_config[0]);
|
||||
assert!(bytes[8 + 0x114 + 0x16C] == gamepad_config[0]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -635,3 +635,26 @@ impl std::default::Default for TradeSuccessful {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[pso_packet(0x4ED)]
|
||||
pub struct KeyboardConfig {
|
||||
pub keyboard_config: [u8; 364],
|
||||
}
|
||||
|
||||
#[pso_packet(0x5ED)]
|
||||
pub struct GamepadConfig {
|
||||
pub gamepad_config: [u8; 56],
|
||||
}
|
||||
|
||||
// same struct as libpso::packet::messages::GuildcardRecv
|
||||
#[pso_packet(0x4E8)]
|
||||
pub struct GuildcardAccept {
|
||||
id: u32,
|
||||
name: [u16; 0x18],
|
||||
team: [u16; 0x10],
|
||||
desc: [u16; 0x58],
|
||||
one: u8,
|
||||
language: u8,
|
||||
section_id: u8,
|
||||
class: u8,
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user