Skip to content

world/client/0x0102: Monstrosity data #5

@sruon

Description

@sruon

Opted to make an issue so you can double check on your end before including the information

struct mon_flags0_t
{
    uint8_t SpeciesFlag       : 1;  // 0x01
    uint8_t unknown_0_1    : 1;  // 0x02 (unused)
    uint8_t InstinctFlag        : 1;  // 0x04
    uint8_t Descriptor1Flag : 1;  // 0x08
    uint8_t Descriptor2Flag : 1;  // 0x10
    uint8_t unknown_1_1     : 1; // 0x20 (unused)
    uint8_t unknown_1_2     : 1; // 0x40 (unused)
    uint8_t unknown_1_3     : 1; // 0x80 (unused)
};

struct mon_data_t
{
    uint8_t           unknown00[6];       // 0x04-0x09
    mon_flags0_t Flags0;                   // 0x0A
    uint8_t           unknown01;          // 0x0B
    uint16_t         SpeciesIndex;        // 0x0C-0x0D
    uint16_t         unknown02;          // 0x0E-0x0F
    uint16_t         Slots[12];               // 0x10-0x27
    uint8_t           Descriptor1Index; // 0x28
    uint8_t           Descriptor2Index; // 0x29
    uint8_t           unused00[122];    // 0x2A onwards
};

Names are made-up but follow naming conventions I've seen in this repository.

mon_flags0_t

As far as I can tell, only one flag can be set at a time

  • SpeciesFlag set when player is changing species
  • InstinctFlag set when player is equipping or unequipping Instincts
  • Descriptor1Flag set when player changing name prefix in "Descriptor 1" menu
  • Descriptor2Flag set when player changing name prefix in "Descriptor 2" menu

SpeciesFlag set

SpeciesIndex will contain the ID of the Monstrosity species the player is changing to, a value that ranges from 1 to 511 (values above 256 are variants of base species)

InstinctFlag set

Slots will contain 12 entries, either set to 0 when the player is not modifying that slot, 65535 when the player is unequipping, or the actual Instinct ID when equipping. Known instinct IDs are between 3 and 799.

Descriptor1Flag / Descriptor2Flag set

Descriptor1Index will be either 0, indicating the player is disabling the display of a descriptor, or a value between 1 and 248 (that's likely in the DATs but I don't have POLUtils installed right now)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions