continuity/hex-patterns/basemagicdata.hexpat

112 lines
No EOL
2.2 KiB
Text

#pragma once
#pragma pattern_limit 1500000
#include <std/sys.pat>
enum SkillType: u32{
_0,
_1,
_2,
_3,
_4,
_5,
_6,
_7,
_8,
_9,
_10,
_11,
_12,
_13,
_14,
_15,
_16,
_17,
_18,
_19,
_20,
_21,
_22,
_23,
_24,
_25,
_26,
_27,
_28,
_29,
_30
};
struct header {
u8 unk[3];
bool flag;
u8 unk2;
u32 amountOfItems;
};
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
};
enum SkillSourceEntity : u32{
Player,
Pet,
Mob,
Debuff, //Most likely Debuff/Buff Types
};
enum SkillBuffType : u32{
None,
Positive,
Negative
};
struct MagicData{
u32 Id;
u8 unk[24];
u32 IsPassive;
SkillBuffType unk2;
SkillType skillType;
SkillSourceEntity unk3;
CharacterJob requiredJob;
u32 unk4[3];
char name[20];
char description[291+52];
padding[169];
u32 appliesToSkillId;
padding[8];
u32 minLevelOfApplicableSkill;
padding[20];
u32 unk5;
u32 requiredItemType;
u32 unk6;
u32 maxLevel;
padding[0x5244-4-24-4-4-1-7-4-12-20-255-12-2-283-12];
};
std::print(std::format("{}",0x5244));
std::print(std::format("{}",sizeof(MagicData)));
std::assert(sizeof(MagicData) == 0x5244, "Struct isn't the right size");
header header @ 0x00;
MagicData items[header.amountOfItems] @0x09;