Addded script functions for exporting, ExportTemplate package type

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@220 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-03-20 17:21:08 +00:00
parent 08ffa143be
commit 9052636ff9
18 changed files with 556 additions and 40 deletions
+20 -3
View File
@@ -62,7 +62,7 @@ class ScriptCollection : public ScriptValue {
return ScriptValue::getMember(name);
}
}
virtual ScriptValueP makeIterator() const {
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const {
return new_intrusive1<ScriptCollectionIterator<Collection> >(value);
}
virtual int itemCount() const { return (int)value->size(); }
@@ -113,6 +113,23 @@ class ScriptMap : public ScriptValue {
const Collection* value;
};
// ----------------------------------------------------------------------------- : Collections : from script
/// Script value containing a custom collection, returned from script functions
class ScriptCustomCollection : public ScriptValue {
public:
virtual ScriptType type() const { return SCRIPT_COLLECTION; }
virtual String typeName() const { return _TYPE_("collection"); }
virtual ScriptValueP getMember(const String& name) const;
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const;
virtual int itemCount() const { return (int)value.size(); }
/// Collections can be compared by comparing pointers
virtual const void* comparePointer() const { return &value; }
/// The collection
vector<ScriptValueP> value;
};
// ----------------------------------------------------------------------------- : Objects
/// Number of items in some collection like object, can be overloaded
@@ -159,9 +176,9 @@ class ScriptObject : public ScriptValue {
mark_dependency_member(value, name, dep);
return getMember(name);
}
virtual ScriptValueP makeIterator() const {
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const {
ScriptValueP it = make_iterator(*value);
return it ? it : ScriptValue::makeIterator();
return it ? it : ScriptValue::makeIterator(thisP);
}
virtual int itemCount() const {
int i = item_count(*value);