X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FStats.cpp;h=a2a442ceea9bbea8f0e8a2a7ea12a284b4d67c76;hb=b02da898c7c8a08141df4e797774a61cf5e0163f;hp=ba15898f037bd8fe63ff0654dc04aed7a4ec94f2;hpb=9d5e525f2bd9035e9add815e287313d09c1bf0fd;p=l2e.git diff --git a/src/battle/Stats.cpp b/src/battle/Stats.cpp index ba15898..a2a442c 100644 --- a/src/battle/Stats.cpp +++ b/src/battle/Stats.cpp @@ -7,6 +7,11 @@ #include "Stats.h" +#include "../loader/TypeDescription.h" + +using loader::FieldDescription; +using loader::TypeDescription; + namespace battle { Stats::Stats() @@ -15,8 +20,8 @@ Stats::Stats() , strength(0) , agility(0) , intelligence(0) -, gut(0) -, magicResistance(0) { +, magicResistance(0) +, gut(0) { } @@ -26,9 +31,32 @@ Stats::Stats(Uint16 attack, Uint16 defense, Uint16 strength, Uint16 agility, Uin , strength(strength) , agility(agility) , intelligence(intelligence) -, gut(gut) -, magicResistance(magicResistance) { +, magicResistance(magicResistance) +, gut(gut) { + +} + + +void Stats::CreateTypeDescription() { + Stats s; + + int numberId(TypeDescription::GetTypeId("Number")); + + TypeDescription &td(TypeDescription::CreateOrGet("Stats")); + td.SetConstructor(&Construct); + td.SetSize(sizeof(Stats)); + + td.AddField("atp", FieldDescription(((char *)&s.attack) - ((char *)&s), numberId, false)); + td.AddField("dfp", FieldDescription(((char *)&s.defense) - ((char *)&s), numberId, false)); + td.AddField("str", FieldDescription(((char *)&s.strength) - ((char *)&s), numberId, false)); + td.AddField("agl", FieldDescription(((char *)&s.agility) - ((char *)&s), numberId, false)); + td.AddField("int", FieldDescription(((char *)&s.intelligence) - ((char *)&s), numberId, false)); + td.AddField("gut", FieldDescription(((char *)&s.gut) - ((char *)&s), numberId, false)); + td.AddField("mgr", FieldDescription(((char *)&s.magicResistance) - ((char *)&s), numberId, false)); +} +void Stats::Construct(void *data) { + new (data) Stats; } }