mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-12 13:37:00 -04:00
toCode should now never give an error, instead returning things like "<card>"
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1265 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
+11
-4
@@ -52,6 +52,14 @@ template <typename K, typename V> inline String type_name(const pair<K,V>& p) {
|
|||||||
return type_name(p.second); // for maps
|
return type_name(p.second); // for maps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Script code for an object, or anything else we can show
|
||||||
|
template <typename T> inline String to_code(const T& v) {
|
||||||
|
return format_string(_("<%s>"),type_name(v));
|
||||||
|
}
|
||||||
|
template <typename T> inline String to_code(const intrusive_ptr<T>& p) {
|
||||||
|
return type_name(*p.get());
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------- : Errors
|
// ----------------------------------------------------------------------------- : Errors
|
||||||
|
|
||||||
/// A delayed error message.
|
/// A delayed error message.
|
||||||
@@ -113,6 +121,7 @@ ScriptValueP to_script(int);
|
|||||||
class ScriptCollectionBase : public ScriptValue {
|
class ScriptCollectionBase : public ScriptValue {
|
||||||
public:
|
public:
|
||||||
virtual ScriptType type() const { return SCRIPT_COLLECTION; }
|
virtual ScriptType type() const { return SCRIPT_COLLECTION; }
|
||||||
|
virtual String typeName() const { return _TYPE_("collection"); }
|
||||||
virtual String toCode() const;
|
virtual String toCode() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -213,7 +222,6 @@ class ScriptMap : public ScriptValue {
|
|||||||
/// Script value containing a custom collection, returned from script functions
|
/// Script value containing a custom collection, returned from script functions
|
||||||
class ScriptCustomCollection : public ScriptCollectionBase {
|
class ScriptCustomCollection : public ScriptCollectionBase {
|
||||||
public:
|
public:
|
||||||
virtual String typeName() const { return _TYPE_("collection"); }
|
|
||||||
virtual ScriptValueP getMember(const String& name) const;
|
virtual ScriptValueP getMember(const String& name) const;
|
||||||
virtual ScriptValueP getIndex(int index) const;
|
virtual ScriptValueP getIndex(int index) const;
|
||||||
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const;
|
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const;
|
||||||
@@ -235,11 +243,9 @@ DECLARE_POINTER_TYPE(ScriptCustomCollection);
|
|||||||
// ----------------------------------------------------------------------------- : Collections : concatenation
|
// ----------------------------------------------------------------------------- : Collections : concatenation
|
||||||
|
|
||||||
/// Script value containing the concatenation of two collections
|
/// Script value containing the concatenation of two collections
|
||||||
class ScriptConcatCollection : public ScriptValue {
|
class ScriptConcatCollection : public ScriptCollectionBase {
|
||||||
public:
|
public:
|
||||||
inline ScriptConcatCollection(ScriptValueP a, ScriptValueP b) : a(a), b(b) {}
|
inline ScriptConcatCollection(ScriptValueP a, ScriptValueP b) : a(a), b(b) {}
|
||||||
virtual ScriptType type() const { return SCRIPT_COLLECTION; }
|
|
||||||
virtual String typeName() const { return _TYPE_("collection"); }
|
|
||||||
virtual ScriptValueP getMember(const String& name) const;
|
virtual ScriptValueP getMember(const String& name) const;
|
||||||
virtual ScriptValueP getIndex(int index) const;
|
virtual ScriptValueP getIndex(int index) const;
|
||||||
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const;
|
virtual ScriptValueP makeIterator(const ScriptValueP& thisP) const;
|
||||||
@@ -269,6 +275,7 @@ class ScriptObject : public ScriptValue {
|
|||||||
virtual operator int() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator int(); }
|
virtual operator int() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator int(); }
|
||||||
virtual operator bool() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator bool(); }
|
virtual operator bool() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator bool(); }
|
||||||
virtual operator AColor() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator AColor(); }
|
virtual operator AColor() const { ScriptValueP d = getDefault(); return d ? *d : ScriptValue::operator AColor(); }
|
||||||
|
virtual String toCode() const { ScriptValueP d = getDefault(); return d ? d->toCode() : to_code(*value); }
|
||||||
virtual GeneratedImageP toImage(const ScriptValueP& thisP) const {
|
virtual GeneratedImageP toImage(const ScriptValueP& thisP) const {
|
||||||
ScriptValueP d = getDefault(); return d ? d->toImage(d) : ScriptValue::toImage(thisP);
|
ScriptValueP d = getDefault(); return d ? d->toImage(d) : ScriptValue::toImage(thisP);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user