X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject_factory.cpp;h=8d78c9a2b6df3d7d925bb209861d5ed67d7c71d1;hb=84b2c7183da5b9a4d3edcb47ca60a1d5392b905f;hp=9ce2686a6c32a43b9f791a3d42492e2620c4875d;hpb=e3bb6e46812f108f093e9ad0751a945c34b18cd3;p=supertux.git diff --git a/src/object_factory.cpp b/src/object_factory.cpp index 9ce2686a6..8d78c9a2b 100644 --- a/src/object_factory.cpp +++ b/src/object_factory.cpp @@ -21,7 +21,9 @@ #include #include -#include "object_factory.h" +#include "lisp/lisp.hpp" +#include "lisp/parser.hpp" +#include "object_factory.hpp" Factories* object_factories = 0; @@ -37,3 +39,14 @@ GameObject* create_object(const std::string& name, const lisp::Lisp& reader) return i->second->create_object(reader); } +GameObject* create_object(const std::string& name, const Vector& pos) +{ + std::stringstream lisptext; + lisptext << "(" << name + << " (x " << pos.x << ")" + << " (y " << pos.y << "))"; + + lisp::Parser parser; + std::auto_ptr lisp (parser.parse(lisptext)); + return create_object(name, *lisp); +}