82 lines
1.9 KiB
Text
82 lines
1.9 KiB
Text
|
#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;
|