]> git.localhorst.tv Git - l2e.git/blobdiff - src/battle/Stats.cpp
added constructors for described types
[l2e.git] / src / battle / Stats.cpp
index ba15898f037bd8fe63ff0654dc04aed7a4ec94f2..a2a442ceea9bbea8f0e8a2a7ea12a284b4d67c76 100644 (file)
@@ -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;
 }
 
 }