X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FStats.cpp;h=59e4a819ee2acbdeac13c4cf3bd7008898b63eb5;hb=7b3710c47f24e64e0d01378a4564730bcb2f6ef2;hp=5a48b6672098f7d91c8657b5267fbb070b7f2581;hpb=1907ca03c5e865c4d398170042aa384c67ffff29;p=l2e.git diff --git a/src/common/Stats.cpp b/src/common/Stats.cpp index 5a48b66..59e4a81 100644 --- a/src/common/Stats.cpp +++ b/src/common/Stats.cpp @@ -1,10 +1,3 @@ -/* - * Stats.cpp - * - * Created on: Aug 19, 2012 - * Author: holy - */ - #include "Stats.h" #include "../loader/Interpreter.h" @@ -47,13 +40,17 @@ void Stats::CreateTypeDescription() { td.SetConstructor(&Construct); td.SetSize(sizeof(Stats)); - td.AddField("atp", FieldDescription(((char *)&s.attack) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("attack points")); - td.AddField("dfp", FieldDescription(((char *)&s.defense) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("defense points")); - td.AddField("str", FieldDescription(((char *)&s.strength) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("strength")); - td.AddField("agl", FieldDescription(((char *)&s.agility) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("agility")); - td.AddField("int", FieldDescription(((char *)&s.intelligence) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("intelligence")); - td.AddField("gut", FieldDescription(((char *)&s.gut) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("gut (ikari factor)")); - td.AddField("mgr", FieldDescription(((char *)&s.magicResistance) - ((char *)&s), Interpreter::NUMBER_ID).SetDescription("magic resistance")); + AddFields(td, s, 0); +} + +void Stats::AddFields(TypeDescription &td, const Stats &s, std::ptrdiff_t offset) { + td.AddField("atp", FieldDescription(((char *)&s.attack) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("attack points")); + td.AddField("dfp", FieldDescription(((char *)&s.defense) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("defense points")); + td.AddField("str", FieldDescription(((char *)&s.strength) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("strength")); + td.AddField("agl", FieldDescription(((char *)&s.agility) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("agility")); + td.AddField("int", FieldDescription(((char *)&s.intelligence) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("intelligence")); + td.AddField("gut", FieldDescription(((char *)&s.gut) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("gut (ikari factor)")); + td.AddField("mgr", FieldDescription(((char *)&s.magicResistance) - ((char *)&s) - offset, Interpreter::NUMBER_ID).SetDescription("magic resistance")); } void Stats::Construct(void *data) {