This commit is contained in:
aozhiwei 2023-03-04 08:25:44 +08:00
parent 968587770e
commit ea27f62b4a
2 changed files with 32 additions and 2 deletions

View File

@ -2,6 +2,35 @@
#include "lispenv.h" #include "lispenv.h"
class SkillScope : public a8::lisp::GlobalScope
{
public:
void Init()
{
RegisterCProc
(
"${skillNumber.speed}",
[this] (const a8::lisp::List& params) -> std::shared_ptr<a8::lisp::Value>
{
a8::lisp::Atom result;
return std::make_shared<a8::lisp::Value>(result);
});
}
float Eval(std::shared_ptr<a8::lisp::Value> expr,
Creature* c,
const mt::Skill* skill_meta)
{
}
struct {
Creature* c = nullptr;
const mt::Skill* skill_meta = nullptr;
} context_;
};
void LispEnv::Init() void LispEnv::Init()
{ {
@ -21,5 +50,5 @@ float LispEnv::EvalSkillNumberExpr(std::shared_ptr<a8::lisp::Value> expr,
Creature* c, Creature* c,
const mt::Skill* skill_meta) const mt::Skill* skill_meta)
{ {
return skill_env_->Eval(expr, c, skill_meta);
} }

View File

@ -4,6 +4,7 @@
#include <a8/lisp.h> #include <a8/lisp.h>
class Creature; class Creature;
class SkillScope;
class LispEnv : public a8::Singleton<LispEnv> class LispEnv : public a8::Singleton<LispEnv>
{ {
@ -23,5 +24,5 @@ class LispEnv : public a8::Singleton<LispEnv>
private: private:
std::shared_ptr<a8::lisp::GlobalScope> skill_env_; std::shared_ptr<SkillScope> skill_env_;
}; };