From: <lpa...@us...> - 2013-12-21 19:40:11
|
Revision: 9090 http://sourceforge.net/p/planeshift/code/9090 Author: lpancallo Date: 2013-12-21 19:40:08 +0000 (Sat, 21 Dec 2013) Log Message: ----------- Working version of item modifiers. Modified Paths: -------------- trunk/src/server/scripting.cpp trunk/src/server/scripting.h Modified: trunk/src/server/scripting.cpp =================================================================== --- trunk/src/server/scripting.cpp 2013-12-21 17:28:18 UTC (rev 9089) +++ trunk/src/server/scripting.cpp 2013-12-21 19:40:08 UTC (rev 9090) @@ -138,7 +138,7 @@ virtual ~AppliedOp() { } virtual bool Load(iDocumentNode* node) = 0; virtual void Run(MathEnvironment* env, gemActor* target, ActiveSpell* asp) = 0; - virtual const char * GetDescription() { + virtual const csString GetDescription() { return ""; } }; @@ -196,13 +196,13 @@ return Applied1::Load(node); } - const char* GetDescription() + const csString GetDescription() { csString descr = vital; MathEnvironment env; float val = value->Evaluate(&env); descr.AppendFmt(": %0.1f\n",val); - return descr.GetData(); + return descr; } void Run(MathEnvironment* env, gemActor* target, ActiveSpell* asp) @@ -309,13 +309,13 @@ return Applied1::Load(node); } - const char* GetDescription() + const csString GetDescription() { csString descr = statname; MathEnvironment env; int val = (int)value->Evaluate(&env); descr.AppendFmt(": %d\n",val); - return descr.GetData(); + return descr; } void Run(MathEnvironment* env, gemActor* target, ActiveSpell* asp) @@ -347,7 +347,8 @@ bool Load(iDocumentNode* node) { - psSkillInfo* info = cachemanager->GetSkillByName(node->GetAttributeValue("name")); + skillname = node->GetAttributeValue("name"); + psSkillInfo* info = cachemanager->GetSkillByName(skillname); if(!info) { Error2("Found <skill name=\"%s\">, but no such skill exists.", node->GetAttributeValue("name")); @@ -357,6 +358,15 @@ return Applied1::Load(node); } + const csString GetDescription() + { + csString descr = skillname; + MathEnvironment env; + int val = (int)value->Evaluate(&env); + descr.AppendFmt(": %d\n",val); + return descr; + } + void Run(MathEnvironment* env, gemActor* target, ActiveSpell* asp) { int val = (int) value->Evaluate(env); @@ -369,6 +379,7 @@ protected: PSSKILL skill; CacheManager* cachemanager; + csString skillname; /// < used for description }; //---------------------------------------------------------------------------- @@ -410,6 +421,15 @@ return Applied1::Load(node); } + const csString GetDescription() + { + csString descr = type; + MathEnvironment env; + int val = (int)value->Evaluate(&env); + descr.AppendFmt(": %d\n",val); + return descr; + } + void Run(MathEnvironment* env, gemActor* target, ActiveSpell* asp) { Multiplier* mod = NULL; @@ -1216,10 +1236,10 @@ return asp; } -const char* ApplicativeScript::GetDescription() +const csString ApplicativeScript::GetDescription() { - //if (!description.IsEmpty()) - // return description.GetData(); + if (!description.IsEmpty()) + return description; csPDelArray<AppliedOp>::Iterator it = ops.GetIterator(); while(it.HasNext()) @@ -1229,7 +1249,7 @@ } printf("ApplicativeScript::GetDescription() : %s\n",description.GetData()); - return description.GetData(); + return description; } //============================================================================ Modified: trunk/src/server/scripting.h =================================================================== --- trunk/src/server/scripting.h 2013-12-21 17:28:18 UTC (rev 9089) +++ trunk/src/server/scripting.h 2013-12-21 19:40:08 UTC (rev 9090) @@ -96,7 +96,7 @@ static ApplicativeScript* Create(EntityManager* entitymanager, CacheManager* cachemanager, iDocumentNode* top, SPELL_TYPE type, const char* name, const char* duration); ActiveSpell* Apply(MathEnvironment* env, bool registerCancelEvent = true); - const char* GetDescription(); + const csString GetDescription(); protected: ApplicativeScript(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |