Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
magicseteditor
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
magicseteditor
Commits
effea43c
Commit
effea43c
authored
Mar 10, 2012
by
twanvl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* ignore defaultness when comparing ScriptDefault
* added some utility functions for working with ScriptDefaults
parent
b0b05166
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
11 deletions
+23
-11
src/script/to_value.hpp
src/script/to_value.hpp
+20
-11
src/script/value.cpp
src/script/value.cpp
+3
-0
No files found.
src/script/to_value.hpp
View file @
effea43c
...
...
@@ -106,20 +106,22 @@ inline ScriptValueP delay_error(const ScriptError& error) {
/// A script value that is in a specially marked 'default' state.
class
ScriptDefault
:
public
ScriptValue
{
public:
inline
ScriptDefault
(
ScriptValueP
const
&
value
)
:
value
(
value
)
{}
inline
ScriptDefault
(
ScriptValueP
const
&
un_default
)
:
un_default
(
un_default
)
{}
virtual
ScriptType
type
()
const
{
return
value
->
type
();
}
virtual
String
typeName
()
const
{
return
value
->
typeName
();
}
virtual
String
toString
()
const
{
return
value
->
toString
();
}
virtual
String
toCode
()
const
{
return
_
(
"mark_default("
)
+
value
->
toCode
()
+
_
(
")"
);
}
virtual
double
toDouble
()
const
{
return
value
->
toDouble
();
}
virtual
int
toInt
()
const
{
return
value
->
toInt
();
}
virtual
bool
toBool
()
const
{
return
value
->
toBool
();
}
virtual
AColor
toColor
()
const
{
return
value
->
toColor
();
}
virtual
GeneratedImageP
toImage
()
const
{
return
value
->
toImage
();
}
virtual
ScriptType
type
()
const
{
return
un_default
->
type
();
}
virtual
String
typeName
()
const
{
return
un_default
->
typeName
();
}
virtual
String
toString
()
const
{
return
un_default
->
toString
();
}
virtual
String
toCode
()
const
{
return
_
(
"mark_default("
)
+
un_default
->
toCode
()
+
_
(
")"
);
}
virtual
double
toDouble
()
const
{
return
un_default
->
toDouble
();
}
virtual
int
toInt
()
const
{
return
un_default
->
toInt
();
}
virtual
bool
toBool
()
const
{
return
un_default
->
toBool
();
}
virtual
AColor
toColor
()
const
{
return
un_default
->
toColor
();
}
virtual
GeneratedImageP
toImage
()
const
{
return
un_default
->
toImage
();
}
// ignore defaultness for comparison
virtual
CompareWhat
compareAs
(
String
&
compare_str
,
void
const
*&
compare_ptr
)
const
{
return
un_default
->
compareAs
(
compare_str
,
compare_ptr
);
}
/// The actual value
ScriptValueP
value
;
ScriptValueP
un_default
;
};
inline
ScriptDefault
const
*
is_default
(
ScriptValue
const
*
x
)
{
return
dynamic_cast
<
ScriptDefault
const
*>
(
x
);
...
...
@@ -127,6 +129,13 @@ inline ScriptDefault const* is_default(ScriptValue const* x) {
inline
ScriptDefault
const
*
is_default
(
ScriptValueP
const
&
x
)
{
return
is_default
(
x
.
get
());
}
inline
ScriptValueP
make_default
(
ScriptValueP
const
&
x
)
{
return
intrusive
(
new
ScriptDefault
(
x
));
}
inline
ScriptValueP
with_defaultness_of
(
ScriptValueP
const
&
of
,
ScriptValueP
const
&
x
)
{
return
is_default
(
of
)
?
make_default
(
x
)
:
x
;
}
extern
ScriptValueP
script_default_nil
;
// ----------------------------------------------------------------------------- : File names
...
...
src/script/value.cpp
View file @
effea43c
...
...
@@ -388,6 +388,9 @@ class ScriptNil : public ScriptValue {
/// The preallocated nil value
ScriptValueP
script_nil
(
new
ScriptNil
);
/// Preallocated nil value marked as default
ScriptValueP
script_default_nil
(
new
ScriptDefault
(
script_nil
));
// ----------------------------------------------------------------------------- : Collection base
String
ScriptCollectionBase
::
toCode
()
const
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment