continuity/hex-patterns/basecharacterstatdata.hexpat

82 lines
1.9 KiB
Text
Raw Normal View History

2024-09-18 14:34:58 +00:00
#pragma once
#pragma pattern_limit 1500000
#include <std/sys.pat>
struct header {
u8 unk[3];
bool flag;
u8 unk2;
u32 amountOfItems;
};
struct AttributeStats{
u32 Strength;
u32 Dexterity;
u32 Intelligence;
u32 Vitality;
u32 Luck;
u32 Wisdom;
};
// Most likely values related to scaling other attributes, health etc.
struct ScalingValues {
float a;
float b;
u32 c;
u32 d;
u32 e;
u32 f;
u32 g;
u32 h;
u32 i;
u32 j;
u32 k;
u32 l;
u32 m;
u32 n;
u32 o;
u32 p;
u32 q;
u32 r;
u32 s;
};
enum CharacterJob : u32 {
NULL,
Swordsman = 1, /// 01
Mage, /// 02
Thief, /// 03
Scout, /// 04
Warrior, /// 05
Knight, /// 06
Priest, /// 07
Wizard, /// 08
Rogue, /// 09
Ninja, /// 10
Gunner, /// 11
Archer, /// 12
Berserker, /// 13
Pladin, /// 14
Saint, /// 15
Warlock, /// 16
Knave, /// 17
Assassin, /// 18
Gunslinger, /// 19
Ranger, /// 20
Juggernaut, /// 21
Temple_Knight, /// 22
Exorcist, /// 23
Necromancer, /// 24
Raider, /// 25
Nightstalker, /// 26
Sharpshooter, /// 27
Beast_Keeper, /// 28
};
struct BaseCharacterStat{
CharacterJob Id;
u8 unk[12];
AttributeStats stats;
padding[16];
ScalingValues scaleValues;
padding[428-40-16-sizeof(ScalingValues)];
};
std::print(std::format("{}",sizeof(BaseCharacterStat)));
std::assert(sizeof(BaseCharacterStat) == 428, "Struct isn't the right size");
header header @ 0x00;
BaseCharacterStat stats[header.amountOfItems] @ 0x09;