]> git.localhorst.tv Git - l2e.git/blobdiff - src/common/Capsule.cpp
implemented capsule/class selection
[l2e.git] / src / common / Capsule.cpp
index 8fa1ca92e030ea5722aa94affce1c668aa7d0de3..008514776fb259d581e505d5b1223a10dcc9df30 100644 (file)
@@ -23,6 +23,8 @@ Capsule::Capsule()
 : name("")
 , alignment("")
 
+, alignmentSprite(0)
+
 , maxHealth(0)
 
 , level(1)
@@ -33,7 +35,7 @@ Capsule::Capsule()
 
 , classes(0)
 , numClasses(0)
-, curClass(0)
+, curClass(-1)
 , maxClass(0) {
 
 }
@@ -78,6 +80,25 @@ int Capsule::NextLevel() const {
        }
 }
 
+void Capsule::UpgradeClass() {
+       ++maxClass;
+       ++curClass;
+}
+
+void Capsule::NextClass() {
+       ++curClass;
+       if (curClass >= maxClass) {
+               curClass = 0;
+       }
+}
+
+void Capsule::PreviousClass() {
+       --curClass;
+       if (curClass < 0) {
+               curClass = maxClass - 1;
+       }
+}
+
 
 Sprite *Capsule::BattleSprite() {
        return GetClass().battleSprite;
@@ -136,6 +157,9 @@ void Capsule::CreateTypeDescription() {
        td.AddField("name", FieldDescription(((char *)&c.name) - ((char *)&c), Interpreter::STRING_ID).SetReferenced());
        td.AddField("alignment", FieldDescription(((char *)&c.alignment) - ((char *)&c), Interpreter::STRING_ID).SetReferenced());
 
+       td.AddField("alignmentCursor", FieldDescription(((char *)&c.alignmentCursor) - ((char *)&c), Interpreter::VECTOR_ID));
+       td.AddField("alignmentSprite", FieldDescription(((char *)&c.alignmentSprite) - ((char *)&c), Sprite::TYPE_ID).SetReferenced());
+
        td.AddField("maxHealth", FieldDescription(((char *)&c.maxHealth) - ((char *)&c), Interpreter::NUMBER_ID));
 
        td.AddField("stats", FieldDescription(((char *)&c.stats) - ((char *)&c), Stats::TYPE_ID));