update quest opcode table; disassemble structures in data labels
This commit is contained in:
+18
-16
@@ -3582,32 +3582,34 @@ struct G_SendGuildCard_BB_6x06 {
|
||||
|
||||
// 6x07: Symbol chat
|
||||
|
||||
struct G_SymbolChat_6x07 {
|
||||
G_UnusedHeader header;
|
||||
struct SymbolChat {
|
||||
// TODO: How does this format differ across PSO versions? The GC version
|
||||
// treats some fields as unexpectedly large values (for example, face_spec
|
||||
// through unused2 are byteswapped as an le_uint32_t), so we should verify
|
||||
// that the order of these fields is the same on other versions.
|
||||
le_uint32_t client_id;
|
||||
// Bits: SSSCCCFF (S = sound, C = face color, F = face shape)
|
||||
uint8_t face_spec;
|
||||
// Bits: 000000DM (D = capture, M = mute sound)
|
||||
uint8_t flags;
|
||||
le_uint16_t unused;
|
||||
struct CornerObject {
|
||||
uint8_t type; // FF = no object in this slot
|
||||
// Bits: 000VHCCC (V = reverse vertical, H = reverse horizontal, C = color)
|
||||
uint8_t flags_color;
|
||||
} __packed__;
|
||||
parray<CornerObject, 4> corner_objects; // In reading order; top-left is first
|
||||
// Bits: ----------------------DMSSSCCCFF
|
||||
// S = sound, C = face color, F = face shape, D = capture, M = mute sound
|
||||
/* 00 */ le_uint32_t spec;
|
||||
// Corner objects are specified in reading order ([0] is the top-left one).
|
||||
// Bits (each entry): ---VHCCCZZZZZZZZ
|
||||
// V = reverse vertical, H = reverse horizontal, C = color, Z = object
|
||||
// If Z is all 1 bits (0xFF), no corner object is rendered.
|
||||
/* 04 */ parray<le_uint16_t, 4> corner_objects;
|
||||
struct FacePart {
|
||||
uint8_t type; // FF = no part in this slot
|
||||
uint8_t x;
|
||||
uint8_t y;
|
||||
// Bits: 000000VH (V = reverse vertical, H = reverse horizontal)
|
||||
// Bits: ------VH (V = reverse vertical, H = reverse horizontal)
|
||||
uint8_t flags;
|
||||
} __packed__;
|
||||
parray<FacePart, 12> face_parts;
|
||||
/* 0C */ parray<FacePart, 12> face_parts;
|
||||
/* 3C */
|
||||
} __packed__;
|
||||
|
||||
struct G_SymbolChat_6x07 {
|
||||
G_UnusedHeader header;
|
||||
le_uint32_t client_id;
|
||||
SymbolChat data;
|
||||
} __packed__;
|
||||
|
||||
// 6x08: Invalid subcommand
|
||||
|
||||
+2
-2
@@ -36,7 +36,7 @@ PlayerVisualConfig::PlayerVisualConfig() noexcept
|
||||
: unknown_a2(0),
|
||||
name_color(0),
|
||||
extra_model(0),
|
||||
name_color_checksum(0),
|
||||
unknown_a3(0),
|
||||
section_id(0),
|
||||
char_class(0),
|
||||
v2_flags(0),
|
||||
@@ -117,7 +117,7 @@ void PlayerDispDataBB::apply_preview(const PlayerDispDataBBPreview& pre) {
|
||||
void PlayerDispDataBB::apply_dressing_room(const PlayerDispDataBBPreview& pre) {
|
||||
this->visual.name_color = pre.visual.name_color;
|
||||
this->visual.extra_model = pre.visual.extra_model;
|
||||
this->visual.name_color_checksum = pre.visual.name_color_checksum;
|
||||
this->visual.unknown_a3 = pre.visual.unknown_a3;
|
||||
this->visual.section_id = pre.visual.section_id;
|
||||
this->visual.char_class = pre.visual.char_class;
|
||||
this->visual.v2_flags = pre.visual.v2_flags;
|
||||
|
||||
+6
-4
@@ -112,7 +112,9 @@ struct PlayerDispDataBB;
|
||||
|
||||
struct PlayerStats {
|
||||
/* 00 */ CharacterStats char_stats;
|
||||
/* 0E */ parray<uint8_t, 0x0A> unknown_a1;
|
||||
/* 0E */ le_uint16_t unknown_a1;
|
||||
/* 10 */ le_float unknown_a2;
|
||||
/* 14 */ le_float unknown_a3;
|
||||
/* 18 */ le_uint32_t level;
|
||||
/* 1C */ le_uint32_t experience;
|
||||
/* 20 */ le_uint32_t meseta;
|
||||
@@ -123,11 +125,11 @@ struct PlayerStats {
|
||||
|
||||
struct PlayerVisualConfig {
|
||||
/* 00 */ ptext<char, 0x10> name;
|
||||
/* 10 */ uint64_t unknown_a2;
|
||||
/* 18 */ le_uint32_t name_color;
|
||||
/* 10 */ le_uint64_t unknown_a2; // Note: This is probably not actually a 64-bit int.
|
||||
/* 18 */ le_uint32_t name_color; // RGBA
|
||||
/* 1C */ uint8_t extra_model;
|
||||
/* 1D */ parray<uint8_t, 0x0F> unused;
|
||||
/* 2C */ le_uint32_t name_color_checksum;
|
||||
/* 2C */ le_uint32_t unknown_a3;
|
||||
/* 30 */ uint8_t section_id;
|
||||
/* 31 */ uint8_t char_class;
|
||||
/* 32 */ uint8_t v2_flags;
|
||||
|
||||
+498
-307
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user