-/*
- * TargetingMode.cpp
- *
- * Created on: Sep 9, 2012
- * Author: holy
- */
-
#include "TargetingMode.h"
+#include "../loader/Interpreter.h"
#include "../loader/TypeDescription.h"
using loader::FieldDescription;
+using loader::Interpreter;
using loader::TypeDescription;
namespace common {
void TargetingMode::CreateTypeDescription() {
TargetingMode t;
- TypeDescription &td(TypeDescription::CreateOrGet("TargetingMode"));
+ TypeDescription &td(TypeDescription::Create(TYPE_ID, "TargetingMode"));
+ td.SetDescription("Specifies how selection of a target (e.g. for a spell) is performed.");
+ td.SetConstructor(&Construct);
td.SetSize(sizeof(TargetingMode));
- // TODO: fields
+ td.AddField("faction", FieldDescription(((char *)&t.ally) - ((char *)&t), Interpreter::BOOLEAN_ID).SetDescription("targetted faction; true for ally, false for enemy"));
+ td.AddField("mode", FieldDescription(((char *)&t.mode) - ((char *)&t), Interpreter::NUMBER_ID).SetDescription("attack mode; 0 = all, 1 = multiple, 2 = single"));
+}
+
+void TargetingMode::Construct(void *data) {
+ new (data) TargetingMode;
}
}