X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FStats.cpp;h=a2a442ceea9bbea8f0e8a2a7ea12a284b4d67c76;hb=b02da898c7c8a08141df4e797774a61cf5e0163f;hp=c35a14ad339e54c34490e2771a94c451df4d7082;hpb=d5959073b2c413ba1bd6f3d14bc8bcf59304e488;p=l2e.git diff --git a/src/battle/Stats.cpp b/src/battle/Stats.cpp index c35a14a..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() @@ -31,4 +36,27 @@ Stats::Stats(Uint16 attack, Uint16 defense, Uint16 strength, Uint16 agility, Uin } + +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; +} + }