+ /// The function that does the actual compiling when you
+ /// call ReadScript(const vector<ScriptToken *> &).
+ void ReadScript(const std::vector<ScriptToken *> &, common::Script *);
+ /// Compile a tokenized script.
+ /// Storage for the script will be allocated as neccessary.
+ char *ReadScript(const std::vector<ScriptToken *> &);
+ /// Reinterpret dest as a script code and return a
+ /// reference to that.
+ common::Script::Code &CreateScriptCode(common::Script::Command c, char *dest);
+ /// Write address to dest.
+ void ReadScriptAddress(const ScriptToken &t, char *dest);
+ /// Write integer to est.
+ void ReadScriptInteger(const ScriptToken &t, char *dest);
+ /// Write vector to dest.
+ void ReadScriptVector(const ScriptToken &t, char *dest);
+
+ /// Get a surface from given image path.
+ /// Load it if neccessary.
+ SDL_Surface *GetImage(const std::string &);
+
+ /// Check if a value can be linked right now or if linkage
+ /// must be deferred (with Postpone()).
+ bool CanLink(const Value &) const;
+ /// Defer linking of given object reference.
+ void Postpone(
+ char *object,
+ char *dest,
+ const std::string &identifier,
+ int type,
+ bool inlined = true,
+ bool aggregate = false);