mirror of
https://github.com/holub/mame
synced 2025-07-23 02:01:08 +03:00
emu/rendlay.cpp: Added parameter animation and state masks.
Components may have multiple bounds and/or color child elements with state attributes, allowing for piecewise linear position/size/colour animation. Components may have a statemask attribute, allowing for things like using external images to draw a multi-segment LED/VFD display without requiring dozens of outputs for the individual lines or thousands of images for all possible states. (Texture caching still never releases anything, so MAME can still exceed the maximum number of textures, but that’s a separate issue.) Image components with alpha now blend over previously drawn components. Layouts have been changed to use yes/no for inputraw to match what's used for flipx/flipy. External layouts with 1/0 will still work, but complay.py will complain.
This commit is contained in:
parent
523b1f11cf
commit
6adc508015
@ -398,19 +398,59 @@ Child elements of the ``element`` element instantiate components, which are
|
||||
drawn in reading order from first to last (components draw on top of components
|
||||
that come before them). All components support a few common features:
|
||||
|
||||
* Each component may have a ``state`` attribute. If present, the component will
|
||||
only be drawn when the element’s state matches its value (if absent, the
|
||||
component will always be drawn). If present, the ``state`` attribute must be
|
||||
a non-negative integer.
|
||||
* Components may be conditionally drawn depending on the element’s state by
|
||||
supplying ``state`` and/or ``statemask`` attributes. If present, these
|
||||
attributes must be non-negative integers. If only the ``state`` attribute is
|
||||
present, the component will only be drawn when the element’s state matches its
|
||||
value. If only the ``statemask`` attribute is present, the component will
|
||||
only be drawn when all the bits that are set in its value are set in the
|
||||
element’s state.
|
||||
|
||||
If both the ``state`` and ``statemask`` attributes are present, the component
|
||||
will only be drawn when the bits in the element’s state corresponding to the
|
||||
bits that are set in the ``statemask`` attribute’s value match the value of the
|
||||
corresponding bits in the ``state`` attribute’s value.
|
||||
|
||||
(The component will always be drawn if neither ``state`` nor ``statemask``
|
||||
attributes are present, or if the ``statemask`` attribute’s value is zero.)
|
||||
* Each component may have a ``bounds`` child element specifying its position and
|
||||
size (see :ref:`layout-concepts-coordinates`). If no such element is present,
|
||||
the bounds default to a unit square (width and height of 1.0) with the top
|
||||
left corner at (0,0).
|
||||
|
||||
A component’s position and/or size may be animated according to the element’s
|
||||
state by supplying multiple ``bounds`` child elements with ``state``
|
||||
attributes. The ``state`` attribute of each ``bounds`` child element must be
|
||||
a non-negative integer. The ``state`` attributes must not be equal for any
|
||||
two ``bounds`` elements within a component.
|
||||
|
||||
If the element’s state is lower than the ``state`` value of any ``bounds``
|
||||
child element, the position/size specified by the ``bounds`` child element
|
||||
with the lowest ``state`` value will be used. If the element’s state is
|
||||
higher than the ``state`` value of any ``bounds`` child element, the
|
||||
position/size specified by the ``bounds`` child element with the highest
|
||||
``state`` value will be used. If the element’s state is between the ``state``
|
||||
values of two ``bounds`` child elements, the position/size will be
|
||||
interpolated linearly.
|
||||
* Each component may have a ``color`` child element specifying an RGBA colour
|
||||
(see :ref:`layout-concepts-colours` for details). This can be used to control
|
||||
the colour of geometric, algorithmically drawn, or textual components. It is
|
||||
ignored for ``image`` components. If no such element is present, the colour
|
||||
defaults to opaque white.
|
||||
the colour of geometric, algorithmically drawn, or textual components. For
|
||||
``image`` components, the colour of the image pixels is multiplied by the
|
||||
specified colour. If no such element is present, the colour defaults to
|
||||
opaque white.
|
||||
|
||||
A component’s color may be animated according to the element’s state by
|
||||
supplying multiple ``color`` child elements with ``state`` attributes. The
|
||||
``state`` attributes must not be equal for any two ``color`` elements within a
|
||||
component.
|
||||
|
||||
If the element’s state is lower than the ``state`` value of any ``color``
|
||||
child element, the colour specified by the ``color`` child element with the
|
||||
lowest ``state`` value will be used. If the element’s state is higher than
|
||||
the ``state`` value of any ``color`` child element, the colour specified by
|
||||
the ``color`` child element with the highest ``state`` value will be used. If
|
||||
the element’s state is between the ``state`` values of two ``color`` child
|
||||
elements, the RGBA colour components will be interpolated linearly.
|
||||
|
||||
The following components are supported:
|
||||
|
||||
@ -523,7 +563,6 @@ An example element that draws a static left-aligned text string::
|
||||
<text string="CPU" align="1"><color red="1.0" green="1.0" blue="1.0" /></text>
|
||||
</element>
|
||||
|
||||
|
||||
An example element that displays a circular LED where the intensity depends on
|
||||
the state of an active-high output::
|
||||
|
||||
@ -543,6 +582,51 @@ An example element for a button that gives visual feedback when clicked::
|
||||
<text string="RESET"><bounds x="0.1" y="0.4" width="0.8" height="0.2" /><color red="1.0" green="1.0" blue="1.0" /></text>
|
||||
</element>
|
||||
|
||||
An example of an element that draws a seven-segment LED display using external
|
||||
segment images::
|
||||
|
||||
<element name="digit_a" defstate="0">
|
||||
<image file="a_off.png" />
|
||||
<image file="a_a.png" statemask="0x01" />
|
||||
<image file="a_b.png" statemask="0x02" />
|
||||
<image file="a_c.png" statemask="0x04" />
|
||||
<image file="a_d.png" statemask="0x08" />
|
||||
<image file="a_e.png" statemask="0x10" />
|
||||
<image file="a_f.png" statemask="0x20" />
|
||||
<image file="a_g.png" statemask="0x40" />
|
||||
<image file="a_dp.png" statemask="0x80" />
|
||||
</element>
|
||||
|
||||
An example of a bar graph that grows vertically and changes colour from green,
|
||||
through yellow, to red as the state increases::
|
||||
|
||||
<element name="pedal">
|
||||
<rect>
|
||||
<bounds state="0x000" left="0.0" top="0.9" right="1.0" bottom="1.0" />
|
||||
<bounds state="0x610" left="0.0" top="0.0" right="1.0" bottom="1.0" />
|
||||
<color state="0x000" red="0.0" green="1.0" blue="0.0" />
|
||||
<color state="0x184" red="1.0" green="1.0" blue="0.0" />
|
||||
<color state="0x610" red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
An example of a bar graph that grows horizontally to the left or right and
|
||||
changes colour from green, through yellow, to red as the state changes from the
|
||||
neutral position::
|
||||
|
||||
<element name="wheel">
|
||||
<rect>
|
||||
<bounds state="0x800" left="0.475" top="0.0" right="0.525" bottom="1.0" />
|
||||
<bounds state="0x280" left="0.0" top="0.0" right="0.525" bottom="1.0" />
|
||||
<bounds state="0xd80" left="0.475" top="0.0" right="1.0" bottom="1.0" />
|
||||
<color state="0x800" red="0.0" green="1.0" blue="0.0" />
|
||||
<color state="0x3e0" red="1.0" green="1.0" blue="0.0" />
|
||||
<color state="0x280" red="1.0" green="0.0" blue="0.0" />
|
||||
<color state="0xc20" red="1.0" green="1.0" blue="0.0" />
|
||||
<color state="0xd80" red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
|
||||
.. _layout-parts-views:
|
||||
|
||||
|
@ -219,10 +219,6 @@ class LayoutChecker(Minifyer):
|
||||
self.variable_scopes[-1][attrs['name']] = False
|
||||
|
||||
def checkBounds(self, attrs):
|
||||
if self.have_bounds[-1]:
|
||||
self.handleError('Duplicate element bounds')
|
||||
else:
|
||||
self.have_bounds[-1] = True
|
||||
left = self.checkFloatAttribute('bounds', attrs, 'left', 0.0)
|
||||
top = self.checkFloatAttribute('bounds', attrs, 'top', 0.0)
|
||||
right = self.checkFloatAttribute('bounds', attrs, 'right', 1.0)
|
||||
@ -258,9 +254,15 @@ class LayoutChecker(Minifyer):
|
||||
if self.checkIntAttribute('orientation', attrs, 'rotate', 0) not in self.ORIENTATIONS:
|
||||
self.handleError('Element orientation attribute rotate "%s" is unsupported' % (attrs['rotate'], ))
|
||||
for name in ('swapxy', 'flipx', 'flipy'):
|
||||
if attrs.get(name, 'no') not in self.YESNO:
|
||||
if (attrs.get(name, 'no') not in self.YESNO) and (not self.VARPATTERN.match(attrs['yesno'])):
|
||||
self.handleError('Element orientation attribute %s "%s" is not "yes" or "no"' % (name, attrs[name]))
|
||||
|
||||
def checkColor(self, attrs):
|
||||
self.checkColorChannel(attrs, 'red')
|
||||
self.checkColorChannel(attrs, 'green')
|
||||
self.checkColorChannel(attrs, 'blue')
|
||||
self.checkColorChannel(attrs, 'alpha')
|
||||
|
||||
def checkColorChannel(self, attrs, name):
|
||||
channel = self.checkFloatAttribute('color', attrs, name, None)
|
||||
if (channel is not None) and ((0.0 > channel) or (1.0 < channel)):
|
||||
@ -268,7 +270,7 @@ class LayoutChecker(Minifyer):
|
||||
|
||||
def checkTag(self, tag, element, attr):
|
||||
if '' == tag:
|
||||
self.handleError('Element %s attribute %s is empty', (element, attr))
|
||||
self.handleError('Element %s attribute %s is empty' % (element, attr))
|
||||
else:
|
||||
if tag.find('^') >= 0:
|
||||
self.handleError('Element %s attribute %s "%s" contains parent device reference' % (element, attr, tag))
|
||||
@ -278,12 +280,22 @@ class LayoutChecker(Minifyer):
|
||||
self.handleError('Element %s attribute %s "%s" contains double separator' % (element, attr, tag))
|
||||
|
||||
def checkComponent(self, name, attrs):
|
||||
state = self.checkIntAttribute(name, attrs, 'state', None)
|
||||
if (state is not None) and (0 > state):
|
||||
statemask = self.checkIntAttribute(name, attrs, 'statemask', None)
|
||||
stateval = self.checkIntAttribute(name, attrs, 'state', None)
|
||||
if stateval is not None:
|
||||
if 0 > stateval:
|
||||
self.handleError('Element %s attribute state "%s" is negative' % (name, attrs['state']))
|
||||
if (statemask is not None) and (stateval & ~statemask):
|
||||
self.handleError('Element %s attribute state "%s" has bits set that are clear in attribute statemask "%s"' % (name, attrs['state'], attrs['statemask']))
|
||||
self.handlers.append((self.componentStartHandler, self.componentEndHandler))
|
||||
self.have_bounds.append(False)
|
||||
self.have_color.append(False)
|
||||
self.have_bounds.append({ })
|
||||
self.have_color.append({ })
|
||||
|
||||
def startObject(self):
|
||||
self.handlers.append((self.objectStartHandler, self.objectEndHandler))
|
||||
self.have_bounds.append(None)
|
||||
self.have_orientation.append(False)
|
||||
self.have_color.append(None)
|
||||
|
||||
def rootStartHandler(self, name, attrs):
|
||||
if 'mamelayout' != name:
|
||||
@ -337,7 +349,7 @@ class LayoutChecker(Minifyer):
|
||||
self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler))
|
||||
self.variable_scopes.append({ })
|
||||
self.repeat_depth.append(0)
|
||||
self.have_bounds.append(False)
|
||||
self.have_bounds.append(None)
|
||||
elif ('view' == name) and (not self.repeat_depth[-1]):
|
||||
self.current_collections = { }
|
||||
if 'name' not in attrs:
|
||||
@ -350,7 +362,7 @@ class LayoutChecker(Minifyer):
|
||||
self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler))
|
||||
self.variable_scopes.append({ })
|
||||
self.repeat_depth.append(0)
|
||||
self.have_bounds.append(False)
|
||||
self.have_bounds.append(None)
|
||||
elif 'repeat' == name:
|
||||
if 'count' not in attrs:
|
||||
self.handleError('Element repeat missing attribute count')
|
||||
@ -433,16 +445,25 @@ class LayoutChecker(Minifyer):
|
||||
|
||||
def componentStartHandler(self, name, attrs):
|
||||
if 'bounds' == name:
|
||||
state = self.checkIntAttribute(name, attrs, 'state', 0)
|
||||
if state is not None:
|
||||
if 0 > state:
|
||||
self.handleError('Element bounds attribute state "%s" is negative' % (attrs['state'], ))
|
||||
if state in self.have_bounds[-1]:
|
||||
self.handleError('Duplicate bounds for state %d (previous %s)' % (state, self.have_bounds[-1][state]))
|
||||
else:
|
||||
self.have_bounds[-1][state] = self.formatLocation()
|
||||
self.checkBounds(attrs)
|
||||
elif 'color' == name:
|
||||
if self.have_color[-1]:
|
||||
self.handleError('Duplicate color element')
|
||||
state = self.checkIntAttribute(name, attrs, 'state', 0)
|
||||
if state is not None:
|
||||
if 0 > state:
|
||||
self.handleError('Element color attribute state "%s" is negative' % (attrs['state'], ))
|
||||
if state in self.have_color[-1]:
|
||||
self.handleError('Duplicate color for state %d (previous %s)' % (state, self.have_color[-1][state]))
|
||||
else:
|
||||
self.have_color[-1] = True
|
||||
self.checkColorChannel(attrs, 'red')
|
||||
self.checkColorChannel(attrs, 'green')
|
||||
self.checkColorChannel(attrs, 'blue')
|
||||
self.checkColorChannel(attrs, 'alpha')
|
||||
self.have_color[-1][state] = self.formatLocation()
|
||||
self.checkColor(attrs)
|
||||
self.ignored_depth = 1
|
||||
|
||||
def componentEndHandler(self, name):
|
||||
@ -464,25 +485,21 @@ class LayoutChecker(Minifyer):
|
||||
self.checkTag(attrs['inputtag'], name, 'inputtag')
|
||||
elif 'inputmask' in attrs:
|
||||
self.handleError('Element %s has inputmask attribute without inputtag attribute' % (name, ))
|
||||
inputraw = self.checkIntAttribute(name, attrs, 'inputraw', None)
|
||||
if (inputraw is not None):
|
||||
inputraw = None
|
||||
if 'inputraw' in attrs:
|
||||
if (attrs['inputraw'] not in self.YESNO) and (not self.VARPATTERN.match(attrs['inputraw'])):
|
||||
self.handleError('Element %s attribute inputraw "%s" is not "yes" or "no"' % (name, attrs['inputraw']))
|
||||
else:
|
||||
inputraw = 'yes' == attrs['inputraw']
|
||||
if 'inputmask' not in attrs:
|
||||
self.handleError('Element %s has inputraw attribute without inputmask attribute' % (name, ))
|
||||
if 'inputtag' not in attrs:
|
||||
self.handleError('Element %s has inputraw attribute without inputtag attribute' % (name, ))
|
||||
if ((0 > inputraw) or (1 < inputraw)):
|
||||
self.handleError('Element %s attribute inputraw "%s" not in valid range 0-1' % (name, attrs['inputraw']))
|
||||
inputmask = self.checkIntAttribute(name, attrs, 'inputmask', None)
|
||||
if (inputmask is not None) and (0 == inputmask):
|
||||
if (inputraw is None) or (0 == inputraw):
|
||||
self.handleError('Element %s attribute inputmask "%s" is zero' % (name, attrs['inputmask']))
|
||||
if ('element' != name) and not self.has_legacy_object:
|
||||
self.has_legacy_object = True
|
||||
if self.has_collection:
|
||||
self.handleError('Layout contains collection as well as legacy backdrop elements')
|
||||
self.handlers.append((self.objectStartHandler, self.objectEndHandler))
|
||||
self.have_bounds.append(False)
|
||||
self.have_orientation.append(False)
|
||||
self.startObject();
|
||||
elif 'screen' == name:
|
||||
if 'index' in attrs:
|
||||
index = self.checkIntAttribute(name, attrs, 'index', None)
|
||||
@ -495,9 +512,7 @@ class LayoutChecker(Minifyer):
|
||||
self.checkTag(tag, name, 'tag')
|
||||
if self.BADTAGPATTERN.search(tag):
|
||||
self.handleError('Element screen attribute tag "%s" contains invalid characters' % (tag, ))
|
||||
self.handlers.append((self.objectStartHandler, self.objectEndHandler))
|
||||
self.have_bounds.append(False)
|
||||
self.have_orientation.append(False)
|
||||
self.startObject();
|
||||
elif 'group' == name:
|
||||
if 'ref' not in attrs:
|
||||
self.handleError('Element group missing attribute ref')
|
||||
@ -510,9 +525,7 @@ class LayoutChecker(Minifyer):
|
||||
self.current_collections[n] = l
|
||||
else:
|
||||
self.handleError('Element group instantiates collection with duplicate name "%s" from %s (previous %s)' % (n, l, self.current_collections[n]))
|
||||
self.handlers.append((self.objectStartHandler, self.objectEndHandler))
|
||||
self.have_bounds.append(False)
|
||||
self.have_orientation.append(False)
|
||||
self.startObject();
|
||||
elif 'repeat' == name:
|
||||
if 'count' not in attrs:
|
||||
self.handleError('Element repeat missing attribute count')
|
||||
@ -532,16 +545,16 @@ class LayoutChecker(Minifyer):
|
||||
self.handleError('Element collection has duplicate name (previous %s)' % (self.current_collections[attrs['name']], ))
|
||||
if attrs.get('visible', 'yes') not in self.YESNO:
|
||||
self.handleError('Element collection attribute visible "%s" is not "yes" or "no"' % (attrs['visible'], ))
|
||||
if not self.has_collection:
|
||||
self.has_collection = True
|
||||
if self.has_legacy_object:
|
||||
self.handleError('Layout contains collection as well as legacy backdrop elements')
|
||||
self.variable_scopes.append({ })
|
||||
self.collection_depth += 1
|
||||
elif 'param' == name:
|
||||
self.checkParameter(attrs)
|
||||
self.ignored_depth = 1
|
||||
elif 'bounds' == name:
|
||||
if self.have_bounds[-1] is not None:
|
||||
self.handleError('Duplicate element bounds (previous %s)' % (self.have_bounds[-1], ))
|
||||
else:
|
||||
self.have_bounds[-1] = self.formatLocation()
|
||||
self.checkBounds(attrs)
|
||||
if self.repeat_depth[-1]:
|
||||
self.handleError('Element bounds inside repeat')
|
||||
@ -566,14 +579,25 @@ class LayoutChecker(Minifyer):
|
||||
|
||||
def objectStartHandler(self, name, attrs):
|
||||
if 'bounds' == name:
|
||||
if self.have_bounds[-1] is not None:
|
||||
self.handleError('Duplicate element bounds (previous %s)' % (self.have_bounds[-1], ))
|
||||
else:
|
||||
self.have_bounds[-1] = self.formatLocation()
|
||||
self.checkBounds(attrs)
|
||||
elif 'orientation' == name:
|
||||
self.checkOrientation(attrs)
|
||||
if 'color' == name:
|
||||
if self.have_color[-1] is not None:
|
||||
self.handleError('Duplicate element color (previous %s)' % (self.have_color[-1], ))
|
||||
else:
|
||||
self.have_color[-1] = self.formatLocation()
|
||||
self.checkColor(attrs)
|
||||
self.ignored_depth = 1
|
||||
|
||||
def objectEndHandler(self, name):
|
||||
self.have_bounds.pop()
|
||||
self.have_orientation.pop()
|
||||
self.have_color.pop()
|
||||
self.handlers.pop()
|
||||
|
||||
def setDocumentLocator(self, locator):
|
||||
@ -586,8 +610,6 @@ class LayoutChecker(Minifyer):
|
||||
self.variable_scopes = [ ]
|
||||
self.repeat_depth = [ ]
|
||||
self.collection_depth = 0
|
||||
self.has_collection = False
|
||||
self.has_legacy_object = False
|
||||
self.have_bounds = [ ]
|
||||
self.have_orientation = [ ]
|
||||
self.have_color = [ ]
|
||||
@ -609,8 +631,6 @@ class LayoutChecker(Minifyer):
|
||||
del self.variable_scopes
|
||||
del self.repeat_depth
|
||||
del self.collection_depth
|
||||
del self.has_collection
|
||||
del self.has_legacy_object
|
||||
del self.have_bounds
|
||||
del self.have_orientation
|
||||
del self.have_color
|
||||
|
@ -2511,15 +2511,13 @@ void render_target::add_container_primitives(render_primitive_list &list, const
|
||||
|
||||
void render_target::add_element_primitives(render_primitive_list &list, const object_transform &xform, layout_element &element, int state, int blendmode)
|
||||
{
|
||||
// if we're out of range, bail
|
||||
if (state > element.maxstate())
|
||||
return;
|
||||
// limit state range to non-negative values
|
||||
if (state < 0)
|
||||
state = 0;
|
||||
|
||||
// get a pointer to the relevant texture
|
||||
render_texture *texture = element.state_texture(state);
|
||||
if (texture != nullptr)
|
||||
if (texture)
|
||||
{
|
||||
render_primitive *prim = list.alloc(render_primitive::QUAD);
|
||||
|
||||
|
@ -579,7 +579,6 @@ public:
|
||||
// getters
|
||||
running_machine &machine() const { return m_machine; }
|
||||
int default_state() const { return m_defstate; }
|
||||
int maxstate() const { return m_maxstate; }
|
||||
render_texture *state_texture(int state);
|
||||
|
||||
private:
|
||||
@ -603,17 +602,22 @@ private:
|
||||
void normalize_bounds(float xoffs, float yoffs, float xscale, float yscale);
|
||||
|
||||
// getters
|
||||
int state() const { return m_state; }
|
||||
virtual int maxstate() const { return m_state; }
|
||||
const render_bounds &bounds() const { return m_bounds; }
|
||||
const render_color &color() const { return m_color; }
|
||||
int statemask() const { return m_statemask; }
|
||||
int stateval() const { return m_stateval; }
|
||||
std::pair<int, bool> statewrap() const;
|
||||
render_bounds overall_bounds() const;
|
||||
render_bounds bounds(int state) const;
|
||||
render_color color(int state) const;
|
||||
|
||||
// operations
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) = 0;
|
||||
|
||||
protected:
|
||||
// helpers
|
||||
void draw_text(render_font &font, bitmap_argb32 &dest, const rectangle &bounds, const char *str, int align);
|
||||
// helper
|
||||
virtual int maxstate() const { return -1; }
|
||||
|
||||
// drawing helpers
|
||||
void draw_text(render_font &font, bitmap_argb32 &dest, const rectangle &bounds, const char *str, int align, const render_color &color);
|
||||
void draw_segment_horizontal_caps(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, int caps, rgb_t color);
|
||||
void draw_segment_horizontal(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, rgb_t color);
|
||||
void draw_segment_vertical_caps(bitmap_argb32 &dest, int miny, int maxy, int midx, int width, int caps, rgb_t color);
|
||||
@ -625,10 +629,27 @@ private:
|
||||
void apply_skew(bitmap_argb32 &dest, int skewwidth);
|
||||
|
||||
private:
|
||||
struct bounds_step
|
||||
{
|
||||
int state;
|
||||
render_bounds bounds;
|
||||
render_bounds delta;
|
||||
};
|
||||
using bounds_vector = std::vector<bounds_step>;
|
||||
|
||||
struct color_step
|
||||
{
|
||||
int state;
|
||||
render_color color;
|
||||
render_color delta;
|
||||
};
|
||||
using color_vector = std::vector<color_step>;
|
||||
|
||||
// internal state
|
||||
int m_state; // state where this component is visible (-1 means all states)
|
||||
render_bounds m_bounds; // bounds of the element
|
||||
render_color m_color; // color of the element
|
||||
int const m_statemask; // bits of state used to control visibility
|
||||
int const m_stateval; // masked state value to make component visible
|
||||
bounds_vector m_bounds; // bounds of the element
|
||||
color_vector m_color; // color of the element
|
||||
};
|
||||
|
||||
// component implementations
|
||||
@ -677,8 +698,9 @@ private:
|
||||
// internal state
|
||||
running_machine & m_machine; // reference to the owning machine
|
||||
std::vector<component::ptr> m_complist; // list of components
|
||||
int m_defstate; // default state of this element
|
||||
int m_maxstate; // maximum state value for all components
|
||||
int const m_defstate; // default state of this element
|
||||
int m_statemask; // mask to apply to state values
|
||||
bool m_foldhigh; // whether we need to fold state values above the mask range
|
||||
std::vector<texture> m_elemtex; // array of element textures used for managing the scaled bitmaps
|
||||
};
|
||||
|
||||
|
@ -9,12 +9,14 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "render.h"
|
||||
#include "rendlay.h"
|
||||
|
||||
#include "emuopts.h"
|
||||
#include "render.h"
|
||||
#include "rendfont.h"
|
||||
#include "rendlay.h"
|
||||
#include "rendutil.h"
|
||||
#include "video/rgbutil.h"
|
||||
|
||||
#include "vecstream.h"
|
||||
#include "xmlfile.h"
|
||||
|
||||
@ -938,12 +940,10 @@ layout_element::make_component_map const layout_element::s_make_component{
|
||||
|
||||
layout_element::layout_element(environment &env, util::xml::data_node const &elemnode, const char *dirname)
|
||||
: m_machine(env.machine())
|
||||
, m_defstate(0)
|
||||
, m_maxstate(0)
|
||||
, m_defstate(env.get_attribute_int(elemnode, "defstate", -1))
|
||||
, m_statemask(0)
|
||||
, m_foldhigh(false)
|
||||
{
|
||||
// get the default state
|
||||
m_defstate = env.get_attribute_int(elemnode, "defstate", -1);
|
||||
|
||||
// parse components in order
|
||||
bool first = true;
|
||||
render_bounds bounds = { 0.0, 0.0, 0.0, 0.0 };
|
||||
@ -958,13 +958,15 @@ layout_element::layout_element(environment &env, util::xml::data_node const &ele
|
||||
|
||||
// accumulate bounds
|
||||
if (first)
|
||||
bounds = newcomp.bounds();
|
||||
bounds = newcomp.overall_bounds();
|
||||
else
|
||||
union_render_bounds(bounds, newcomp.bounds());
|
||||
union_render_bounds(bounds, newcomp.overall_bounds());
|
||||
first = false;
|
||||
|
||||
// determine the maximum state
|
||||
m_maxstate = std::max(m_maxstate, newcomp.maxstate());
|
||||
std::pair<int, bool> const wrap(newcomp.statewrap());
|
||||
m_statemask |= wrap.first;
|
||||
m_foldhigh = m_foldhigh || wrap.second;
|
||||
}
|
||||
|
||||
if (!m_complist.empty())
|
||||
@ -972,8 +974,8 @@ layout_element::layout_element(environment &env, util::xml::data_node const &ele
|
||||
// determine the scale/offset for normalization
|
||||
float xoffs = bounds.x0;
|
||||
float yoffs = bounds.y0;
|
||||
float xscale = 1.0f / (bounds.x1 - bounds.x0);
|
||||
float yscale = 1.0f / (bounds.y1 - bounds.y0);
|
||||
float xscale = 1.0F / (bounds.x1 - bounds.x0);
|
||||
float yscale = 1.0F / (bounds.y1 - bounds.y0);
|
||||
|
||||
// normalize all the component bounds
|
||||
for (component::ptr const &curcomp : m_complist)
|
||||
@ -981,7 +983,7 @@ layout_element::layout_element(environment &env, util::xml::data_node const &ele
|
||||
}
|
||||
|
||||
// allocate an array of element textures for the states
|
||||
m_elemtex.resize(m_maxstate + 1);
|
||||
m_elemtex.resize((m_statemask + 1) << (m_foldhigh ? 1 : 0));
|
||||
}
|
||||
|
||||
|
||||
@ -1005,7 +1007,7 @@ layout_element::~layout_element()
|
||||
|
||||
layout_group::layout_group(util::xml::data_node const &groupnode)
|
||||
: m_groupnode(groupnode)
|
||||
, m_bounds{ 0.0f, 0.0f, 0.0f, 0.0f }
|
||||
, m_bounds{ 0.0F, 0.0F, 0.0F, 0.0F }
|
||||
, m_bounds_resolved(false)
|
||||
{
|
||||
}
|
||||
@ -1284,8 +1286,12 @@ void layout_group::resolve_bounds(
|
||||
|
||||
render_texture *layout_element::state_texture(int state)
|
||||
{
|
||||
assert(state <= m_maxstate);
|
||||
if (m_elemtex[state].m_texture == nullptr)
|
||||
if (m_foldhigh && (state & ~m_statemask))
|
||||
state = (state & m_statemask) | (((m_statemask << 1) | 1) & ~m_statemask);
|
||||
else
|
||||
state &= m_statemask;
|
||||
assert(m_elemtex.size() > state);
|
||||
if (!m_elemtex[state].m_texture)
|
||||
{
|
||||
m_elemtex[state].m_element = this;
|
||||
m_elemtex[state].m_state = state;
|
||||
@ -1303,22 +1309,25 @@ render_texture *layout_element::state_texture(int state)
|
||||
|
||||
void layout_element::element_scale(bitmap_argb32 &dest, bitmap_argb32 &source, const rectangle &sbounds, void *param)
|
||||
{
|
||||
texture *elemtex = (texture *)param;
|
||||
texture const &elemtex(*reinterpret_cast<texture const *>(param));
|
||||
|
||||
// iterate over components that are part of the current state
|
||||
for (auto &curcomp : elemtex->m_element->m_complist)
|
||||
if (curcomp->state() == -1 || curcomp->state() == elemtex->m_state)
|
||||
for (auto const &curcomp : elemtex.m_element->m_complist)
|
||||
{
|
||||
if ((elemtex.m_state & curcomp->statemask()) == curcomp->stateval())
|
||||
{
|
||||
// get the local scaled bounds
|
||||
render_bounds const compbounds(curcomp->bounds(elemtex.m_state));
|
||||
rectangle bounds(
|
||||
render_round_nearest(curcomp->bounds().x0 * dest.width()),
|
||||
render_round_nearest(curcomp->bounds().x1 * dest.width()),
|
||||
render_round_nearest(curcomp->bounds().y0 * dest.height()),
|
||||
render_round_nearest(curcomp->bounds().y1 * dest.height()));
|
||||
render_round_nearest(compbounds.x0 * dest.width()),
|
||||
render_round_nearest(compbounds.x1 * dest.width()),
|
||||
render_round_nearest(compbounds.y0 * dest.height()),
|
||||
render_round_nearest(compbounds.y1 * dest.height()));
|
||||
bounds &= dest.cliprect();
|
||||
|
||||
// based on the component type, add to the texture
|
||||
curcomp->draw(elemtex->m_element->machine(), dest, bounds, elemtex->m_state);
|
||||
curcomp->draw(elemtex.m_element->machine(), dest, bounds, elemtex.m_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1330,13 +1339,10 @@ public:
|
||||
// construction/destruction
|
||||
image_component(environment &env, util::xml::data_node const &compnode, const char *dirname)
|
||||
: component(env, compnode, dirname)
|
||||
, m_hasalpha(false)
|
||||
, m_dirname(dirname ? dirname : "")
|
||||
, m_imagefile(env.get_attribute_string(compnode, "file", ""))
|
||||
, m_alphafile(env.get_attribute_string(compnode, "alphafile", ""))
|
||||
{
|
||||
if (dirname != nullptr)
|
||||
m_dirname = dirname;
|
||||
m_imagefile = env.get_attribute_string(compnode, "file", "");
|
||||
m_alphafile = env.get_attribute_string(compnode, "alphafile", "");
|
||||
m_file = std::make_unique<emu_file>(env.machine().options().art_path(), OPEN_FLAG_READ);
|
||||
}
|
||||
|
||||
protected:
|
||||
@ -1344,19 +1350,56 @@ protected:
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
if (!m_bitmap.valid())
|
||||
load_bitmap();
|
||||
load_bitmap(machine);
|
||||
|
||||
render_color const c(color(state));
|
||||
if (m_hasalpha || (1.0F > c.a))
|
||||
{
|
||||
bitmap_argb32 tempbitmap(dest.width(), dest.height());
|
||||
render_resample_argb_bitmap_hq(tempbitmap, m_bitmap, c);
|
||||
for (s32 y0 = 0, y1 = bounds.top(); bounds.bottom() >= y1; ++y0, ++y1)
|
||||
{
|
||||
u32 const *src(&tempbitmap.pix(y0, 0));
|
||||
u32 *dst(&dest.pix(y1, bounds.left()));
|
||||
for (s32 x1 = bounds.left(); bounds.right() >= x1; ++x1, ++src, ++dst)
|
||||
{
|
||||
rgb_t const a(*src);
|
||||
u32 const aa(a.a());
|
||||
if (aa)
|
||||
{
|
||||
rgb_t const b(*dst);
|
||||
u32 const ba(b.a());
|
||||
if (ba)
|
||||
{
|
||||
u32 const ca((aa * 255) + (ba * (255 - aa)));
|
||||
*dst = rgb_t(
|
||||
u8(ca / 255),
|
||||
u8(((a.r() * aa * 255) + (b.r() * ba * (255 - aa))) / ca),
|
||||
u8(((a.g() * aa * 255) + (b.g() * ba * (255 - aa))) / ca),
|
||||
u8(((a.b() * aa * 255) + (b.b() * ba * (255 - aa))) / ca));
|
||||
}
|
||||
else
|
||||
{
|
||||
*dst = *src;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bitmap_argb32 destsub(dest, bounds);
|
||||
render_resample_argb_bitmap_hq(destsub, m_bitmap, color());
|
||||
render_resample_argb_bitmap_hq(destsub, m_bitmap, c);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
// internal helpers
|
||||
void load_bitmap()
|
||||
void load_bitmap(running_machine &machine)
|
||||
{
|
||||
assert(m_file != nullptr);
|
||||
emu_file file(machine.options().art_path(), OPEN_FLAG_READ);
|
||||
|
||||
ru_imgformat const format = render_detect_image(*m_file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
ru_imgformat const format = render_detect_image(file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
switch (format)
|
||||
{
|
||||
case RENDUTIL_IMGFORMAT_ERROR:
|
||||
@ -1364,18 +1407,18 @@ private:
|
||||
|
||||
case RENDUTIL_IMGFORMAT_PNG:
|
||||
// load the basic bitmap
|
||||
m_hasalpha = render_load_png(m_bitmap, *m_file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
m_hasalpha = render_load_png(m_bitmap, file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
break;
|
||||
|
||||
default:
|
||||
// try JPG
|
||||
render_load_jpeg(m_bitmap, *m_file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
render_load_jpeg(m_bitmap, file, m_dirname.c_str(), m_imagefile.c_str());
|
||||
break;
|
||||
}
|
||||
|
||||
// load the alpha bitmap if specified
|
||||
if (m_bitmap.valid() && !m_alphafile.empty())
|
||||
render_load_png(m_bitmap, *m_file, m_dirname.c_str(), m_alphafile.c_str(), true);
|
||||
render_load_png(m_bitmap, file, m_dirname.c_str(), m_alphafile.c_str(), true);
|
||||
|
||||
// if we can't load the bitmap, allocate a dummy one and report an error
|
||||
if (!m_bitmap.valid())
|
||||
@ -1397,11 +1440,10 @@ private:
|
||||
|
||||
// internal state
|
||||
bitmap_argb32 m_bitmap; // source bitmap for images
|
||||
std::string m_dirname; // directory name of image file (for lazy loading)
|
||||
std::unique_ptr<emu_file> m_file; // file object for reading image/alpha files
|
||||
std::string m_imagefile; // name of the image file (for lazy loading)
|
||||
std::string m_alphafile; // name of the alpha file (for lazy loading)
|
||||
bool m_hasalpha; // is there any alpha component present?
|
||||
std::string const m_dirname; // directory name of image file (for lazy loading)
|
||||
std::string const m_imagefile; // name of the image file (for lazy loading)
|
||||
std::string const m_alphafile; // name of the alpha file (for lazy loading)
|
||||
bool m_hasalpha = false; // is there any alpha component present?
|
||||
};
|
||||
|
||||
|
||||
@ -1420,10 +1462,11 @@ protected:
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
// compute premultiplied colors
|
||||
u32 const r = color().r * color().a * 255.0f;
|
||||
u32 const g = color().g * color().a * 255.0f;
|
||||
u32 const b = color().b * color().a * 255.0f;
|
||||
u32 const inva = (1.0f - color().a) * 255.0f;
|
||||
render_color const c = color(state);
|
||||
u32 const r = c.r * c.a * 255.0f;
|
||||
u32 const g = c.g * c.a * 255.0f;
|
||||
u32 const b = c.b * c.a * 255.0f;
|
||||
u32 const inva = (1.0f - c.a) * 255.0f;
|
||||
|
||||
// iterate over X and Y
|
||||
for (u32 y = bounds.top(); y <= bounds.bottom(); y++)
|
||||
@ -1466,10 +1509,11 @@ protected:
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
// compute premultiplied colors
|
||||
u32 const r = color().r * color().a * 255.0f;
|
||||
u32 const g = color().g * color().a * 255.0f;
|
||||
u32 const b = color().b * color().a * 255.0f;
|
||||
u32 const inva = (1.0f - color().a) * 255.0f;
|
||||
render_color const c(color(state));
|
||||
u32 const r = c.r * c.a * 255.0f;
|
||||
u32 const g = c.g * c.a * 255.0f;
|
||||
u32 const b = c.b * c.a * 255.0f;
|
||||
u32 const inva = (1.0f - c.a) * 255.0f;
|
||||
|
||||
// find the center
|
||||
float const xcenter = float(bounds.xcenter());
|
||||
@ -1481,7 +1525,7 @@ protected:
|
||||
// iterate over y
|
||||
for (u32 y = bounds.top(); y <= bounds.bottom(); y++)
|
||||
{
|
||||
float ycoord = ycenter - ((float)y + 0.5f);
|
||||
float ycoord = ycenter - (float(y) + 0.5f);
|
||||
float xval = xradius * sqrtf(1.0f - (ycoord * ycoord) * ooyradius2);
|
||||
|
||||
// compute left/right coordinates
|
||||
@ -1529,7 +1573,7 @@ protected:
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
render_font *font = machine.render().font_alloc("default");
|
||||
draw_text(*font, dest, bounds, m_string.c_str(), m_textalign);
|
||||
draw_text(*font, dest, bounds, m_string.c_str(), m_textalign, color(state));
|
||||
machine.render().font_free(font);
|
||||
}
|
||||
|
||||
@ -1556,14 +1600,14 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
const rgb_t onpen = rgb_t(0xff,0xff,0xff,0xff);
|
||||
const rgb_t offpen = rgb_t(0x20,0xff,0xff,0xff);
|
||||
rgb_t const onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
rgb_t const offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
|
||||
// sizes for computation
|
||||
int bmwidth = 250;
|
||||
int bmheight = 400;
|
||||
int segwidth = 40;
|
||||
int skewwidth = 40;
|
||||
int const bmwidth = 250;
|
||||
int const bmheight = 400;
|
||||
int const segwidth = 40;
|
||||
int const skewwidth = 40;
|
||||
|
||||
// allocate a temporary bitmap for drawing
|
||||
bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight);
|
||||
@ -1597,7 +1641,7 @@ protected:
|
||||
draw_segment_decimal(tempbitmap, bmwidth + segwidth/2, bmheight - segwidth/2, segwidth, BIT(state, 7) ? onpen : offpen);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -1618,15 +1662,15 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
const rgb_t onpen = rgb_t(0xff,0xff,0xff,0xff);
|
||||
const rgb_t offpen = rgb_t(0x20,0xff,0xff,0xff);
|
||||
const rgb_t backpen = rgb_t(0x00,0x00,0x00,0x00);
|
||||
rgb_t const onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
rgb_t const offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
rgb_t const backpen = rgb_t(0x00, 0x00, 0x00, 0x00);
|
||||
|
||||
// sizes for computation
|
||||
int bmwidth = 250;
|
||||
int bmheight = 400;
|
||||
int segwidth = 40;
|
||||
int skewwidth = 40;
|
||||
int const bmwidth = 250;
|
||||
int const bmheight = 400;
|
||||
int const segwidth = 40;
|
||||
int const skewwidth = 40;
|
||||
|
||||
// allocate a temporary bitmap for drawing
|
||||
bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight);
|
||||
@ -1665,7 +1709,7 @@ protected:
|
||||
apply_skew(tempbitmap, 40);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -1686,14 +1730,14 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
const rgb_t onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
const rgb_t offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
rgb_t const onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
rgb_t const offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
|
||||
// sizes for computation
|
||||
int bmwidth = 250;
|
||||
int bmheight = 400;
|
||||
int segwidth = 40;
|
||||
int skewwidth = 40;
|
||||
int const bmwidth = 250;
|
||||
int const bmheight = 400;
|
||||
int const segwidth = 40;
|
||||
int const skewwidth = 40;
|
||||
|
||||
// allocate a temporary bitmap for drawing
|
||||
bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight);
|
||||
@ -1777,7 +1821,7 @@ protected:
|
||||
apply_skew(tempbitmap, 40);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -1899,7 +1943,7 @@ protected:
|
||||
apply_skew(tempbitmap, 40);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -1920,14 +1964,14 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
const rgb_t onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
const rgb_t offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
rgb_t const onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
rgb_t const offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
|
||||
// sizes for computation
|
||||
int bmwidth = 250;
|
||||
int bmheight = 400;
|
||||
int segwidth = 40;
|
||||
int skewwidth = 40;
|
||||
int const bmwidth = 250;
|
||||
int const bmheight = 400;
|
||||
int const segwidth = 40;
|
||||
int const skewwidth = 40;
|
||||
|
||||
// allocate a temporary bitmap for drawing, adding some extra space for the tail
|
||||
bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight + segwidth);
|
||||
@ -2017,10 +2061,12 @@ protected:
|
||||
segwidth/2, (state & (1 << 15)) ? onpen : offpen);
|
||||
|
||||
// decimal point
|
||||
draw_segment_decimal(tempbitmap, bmwidth + segwidth/2, bmheight - segwidth/2, segwidth, (state & (1 << 14)) ? onpen : offpen);
|
||||
draw_segment_decimal(tempbitmap,
|
||||
bmwidth + segwidth/2, bmheight - segwidth/2,
|
||||
segwidth, (state & (1 << 14)) ? onpen : offpen);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -2041,14 +2087,14 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
const rgb_t onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
const rgb_t offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
rgb_t const onpen = rgb_t(0xff, 0xff, 0xff, 0xff);
|
||||
rgb_t const offpen = rgb_t(0x20, 0xff, 0xff, 0xff);
|
||||
|
||||
// sizes for computation
|
||||
int bmwidth = 250;
|
||||
int bmheight = 400;
|
||||
int segwidth = 40;
|
||||
int skewwidth = 40;
|
||||
int const bmwidth = 250;
|
||||
int const bmheight = 400;
|
||||
int const segwidth = 40;
|
||||
int const skewwidth = 40;
|
||||
|
||||
// allocate a temporary bitmap for drawing
|
||||
bitmap_argb32 tempbitmap(bmwidth + skewwidth, bmheight + segwidth);
|
||||
@ -2138,20 +2184,21 @@ protected:
|
||||
bmheight/2 + segwidth/2 + segwidth/3, bmheight - segwidth - segwidth/3,
|
||||
segwidth, (state & (1 << 15)) ? onpen : offpen);
|
||||
|
||||
// comma tail
|
||||
draw_segment_diagonal_1(tempbitmap,
|
||||
bmwidth - (segwidth/2), bmwidth + segwidth,
|
||||
bmheight - (segwidth), bmheight + segwidth*1.5,
|
||||
segwidth/2, (state & (1 << 17)) ? onpen : offpen);
|
||||
|
||||
// decimal point (draw last for priority)
|
||||
draw_segment_decimal(tempbitmap, bmwidth + segwidth/2, bmheight - segwidth/2, segwidth, (state & (1 << 16)) ? onpen : offpen);
|
||||
|
||||
// apply skew
|
||||
apply_skew(tempbitmap, 40);
|
||||
|
||||
// comma tail
|
||||
draw_segment_diagonal_1(tempbitmap,
|
||||
bmwidth - (segwidth/2), bmwidth + segwidth, bmheight - (segwidth), bmheight + segwidth*1.5,
|
||||
segwidth/2, (state & (1 << 17)) ? onpen : offpen);
|
||||
|
||||
// decimal point (draw last for priority)
|
||||
draw_segment_decimal(tempbitmap,
|
||||
bmwidth + segwidth/2, bmheight - segwidth/2,
|
||||
segwidth, (state & (1 << 16)) ? onpen : offpen);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
};
|
||||
|
||||
@ -2188,7 +2235,7 @@ protected:
|
||||
draw_segment_decimal(tempbitmap, ((dotwidth / 2) + (i * dotwidth)), bmheight / 2, dotwidth, BIT(state, i) ? onpen : offpen);
|
||||
|
||||
// resample to the target size
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color());
|
||||
render_resample_argb_bitmap_hq(dest, tempbitmap, color(state));
|
||||
}
|
||||
|
||||
private:
|
||||
@ -2216,9 +2263,8 @@ protected:
|
||||
|
||||
virtual void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state) override
|
||||
{
|
||||
render_font *font = machine.render().font_alloc("default");
|
||||
std::string temp = string_format("%0*d", m_digits, state);
|
||||
draw_text(*font, dest, bounds, temp.c_str(), m_textalign);
|
||||
render_font *const font = machine.render().font_alloc("default");
|
||||
draw_text(*font, dest, bounds, string_format("%0*d", m_digits, state).c_str(), m_textalign, color(state));
|
||||
machine.render().font_free(font);
|
||||
}
|
||||
|
||||
@ -2307,10 +2353,11 @@ protected:
|
||||
int use_state = (state + m_stateoffset) % max_state_used;
|
||||
|
||||
// compute premultiplied colors
|
||||
u32 r = color().r * 255.0f;
|
||||
u32 g = color().g * 255.0f;
|
||||
u32 b = color().b * 255.0f;
|
||||
u32 a = color().a * 255.0f;
|
||||
render_color const c(color(state));
|
||||
u32 const r = c.r * 255.0f;
|
||||
u32 const g = c.g * 255.0f;
|
||||
u32 const b = c.b * 255.0f;
|
||||
u32 const a = c.a * 255.0f;
|
||||
|
||||
// get the width of the string
|
||||
render_font *font = machine.render().font_alloc("default");
|
||||
@ -2367,7 +2414,7 @@ protected:
|
||||
|
||||
if (m_bitmap[fruit].valid())
|
||||
{
|
||||
render_resample_argb_bitmap_hq(tempbitmap2, m_bitmap[fruit], color());
|
||||
render_resample_argb_bitmap_hq(tempbitmap2, m_bitmap[fruit], c);
|
||||
|
||||
for (int y = 0; y < ourheight/num_shown; y++)
|
||||
{
|
||||
@ -2468,10 +2515,11 @@ private:
|
||||
int use_state = (state + m_stateoffset) % max_state_used;
|
||||
|
||||
// compute premultiplied colors
|
||||
u32 r = color().r * 255.0f;
|
||||
u32 g = color().g * 255.0f;
|
||||
u32 b = color().b * 255.0f;
|
||||
u32 a = color().a * 255.0f;
|
||||
render_color const c(color(state));
|
||||
u32 const r = c.r * 255.0f;
|
||||
u32 const g = c.g * 255.0f;
|
||||
u32 const b = c.b * 255.0f;
|
||||
u32 const a = c.a * 255.0f;
|
||||
|
||||
// get the width of the string
|
||||
render_font *font = machine.render().font_alloc("default");
|
||||
@ -2526,7 +2574,7 @@ private:
|
||||
|
||||
if (m_bitmap[fruit].valid())
|
||||
{
|
||||
render_resample_argb_bitmap_hq(tempbitmap2, m_bitmap[fruit], color());
|
||||
render_resample_argb_bitmap_hq(tempbitmap2, m_bitmap[fruit], c);
|
||||
|
||||
for (int y = 0; y < dest.height(); y++)
|
||||
{
|
||||
@ -2736,10 +2784,206 @@ layout_element::texture &layout_element::texture::operator=(texture &&that)
|
||||
//-------------------------------------------------
|
||||
|
||||
layout_element::component::component(environment &env, util::xml::data_node const &compnode, const char *dirname)
|
||||
: m_state(env.get_attribute_int(compnode, "state", -1))
|
||||
, m_color(env.parse_color(compnode.get_child("color")))
|
||||
: m_statemask(env.get_attribute_int(compnode, "statemask", env.get_attribute_string(compnode, "state", "")[0] ? ~0 : 0))
|
||||
, m_stateval(env.get_attribute_int(compnode, "state", m_statemask) & m_statemask)
|
||||
{
|
||||
env.parse_bounds(compnode.get_child("bounds"), m_bounds);
|
||||
for (util::xml::data_node const *child = compnode.get_first_child(); child; child = child->get_next_sibling())
|
||||
{
|
||||
if (!strcmp(child->get_name(), "bounds"))
|
||||
{
|
||||
int const state(env.get_attribute_int(*child, "state", 0));
|
||||
auto const pos(
|
||||
std::lower_bound(
|
||||
m_bounds.begin(),
|
||||
m_bounds.end(),
|
||||
state,
|
||||
[] (bounds_step const &lhs, int rhs) { return lhs.state < rhs; }));
|
||||
if ((m_bounds.end() != pos) && (state == pos->state))
|
||||
{
|
||||
throw layout_syntax_error(
|
||||
util::string_format(
|
||||
"%s component has duplicate bounds for state %d",
|
||||
compnode.get_name(),
|
||||
state));
|
||||
}
|
||||
bounds_step &ins(*m_bounds.emplace(pos, bounds_step{ state, { 0.0F, 0.0F, 0.0F, 0.0F }, { 0.0F, 0.0F, 0.0F, 0.0F } }));
|
||||
env.parse_bounds(child, ins.bounds);
|
||||
}
|
||||
else if (!strcmp(child->get_name(), "color"))
|
||||
{
|
||||
int const state(env.get_attribute_int(*child, "state", 0));
|
||||
auto const pos(
|
||||
std::lower_bound(
|
||||
m_color.begin(),
|
||||
m_color.end(),
|
||||
state,
|
||||
[] (color_step const &lhs, int rhs) { return lhs.state < rhs; }));
|
||||
if ((m_color.end() != pos) && (state == pos->state))
|
||||
{
|
||||
throw layout_syntax_error(
|
||||
util::string_format(
|
||||
"%s component has duplicate color for state %d",
|
||||
compnode.get_name(),
|
||||
state));
|
||||
}
|
||||
m_color.emplace(pos, color_step{ state, env.parse_color(child), { 0.0F, 0.0F, 0.0F, 0.0F } });
|
||||
}
|
||||
}
|
||||
if (m_bounds.empty())
|
||||
{
|
||||
m_bounds.emplace_back(bounds_step{ 0, { 0.0F, 0.0F, 1.0F, 1.0F }, { 0.0F, 0.0F, 0.0F, 0.0F } });
|
||||
}
|
||||
else
|
||||
{
|
||||
auto i(m_bounds.begin());
|
||||
auto j(i);
|
||||
while (m_bounds.end() != ++j)
|
||||
{
|
||||
assert(j->state > i->state);
|
||||
|
||||
i->delta.x0 = (j->bounds.x0 - i->bounds.x0) / (j->state - i->state);
|
||||
i->delta.x1 = (j->bounds.x1 - i->bounds.x1) / (j->state - i->state);
|
||||
i->delta.y0 = (j->bounds.y0 - i->bounds.y0) / (j->state - i->state);
|
||||
i->delta.y1 = (j->bounds.y1 - i->bounds.y1) / (j->state - i->state);
|
||||
|
||||
i = j;
|
||||
}
|
||||
}
|
||||
if (m_color.empty())
|
||||
{
|
||||
m_color.emplace_back(color_step{ 0, { 1.0F, 1.0F, 1.0F, 1.0F }, { 0.0F, 0.0F, 0.0F, 0.0F } });
|
||||
}
|
||||
else
|
||||
{
|
||||
auto i(m_color.begin());
|
||||
auto j(i);
|
||||
while (m_color.end() != ++j)
|
||||
{
|
||||
assert(j->state > i->state);
|
||||
|
||||
i->delta.a = (j->color.a - i->color.a) / (j->state - i->state);
|
||||
i->delta.r = (j->color.r - i->color.r) / (j->state - i->state);
|
||||
i->delta.g = (j->color.g - i->color.g) / (j->state - i->state);
|
||||
i->delta.b = (j->color.b - i->color.b) / (j->state - i->state);
|
||||
|
||||
i = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// statewrap - get state wraparound requirements
|
||||
//-------------------------------------------------
|
||||
|
||||
std::pair<int, bool> layout_element::component::statewrap() const
|
||||
{
|
||||
int result(0);
|
||||
bool fold;
|
||||
auto const adjustmask =
|
||||
[&result, &fold] (int val, int mask)
|
||||
{
|
||||
assert(!(val & ~mask));
|
||||
auto const splatright =
|
||||
[] (int x)
|
||||
{
|
||||
for (unsigned shift = 1; (sizeof(x) * 4) >= shift; shift <<= 1)
|
||||
x |= (x >> shift);
|
||||
return x;
|
||||
};
|
||||
int const unfolded(splatright(mask));
|
||||
int const folded(splatright(~mask | splatright(val)));
|
||||
if (unsigned(folded) < unsigned(unfolded))
|
||||
{
|
||||
result |= folded;
|
||||
fold = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result |= unfolded;
|
||||
}
|
||||
};
|
||||
adjustmask(stateval(), statemask());
|
||||
int max(maxstate());
|
||||
if (m_bounds.size() > 1U)
|
||||
max = (std::max)(max, m_bounds.back().state);
|
||||
if (m_color.size() > 1U)
|
||||
max = (std::max)(max, m_color.back().state);
|
||||
if (0 <= max)
|
||||
adjustmask(max, ~0);
|
||||
return std::make_pair(result, fold);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// overall_bounds - maximum bounds for all states
|
||||
//-------------------------------------------------
|
||||
|
||||
render_bounds layout_element::component::overall_bounds() const
|
||||
{
|
||||
auto i(m_bounds.begin());
|
||||
render_bounds result(i->bounds);
|
||||
while (m_bounds.end() != ++i)
|
||||
union_render_bounds(result, i->bounds);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// bounds - bounds for a given state
|
||||
//-------------------------------------------------
|
||||
|
||||
render_bounds layout_element::component::bounds(int state) const
|
||||
{
|
||||
auto pos(
|
||||
std::lower_bound(
|
||||
m_bounds.begin(),
|
||||
m_bounds.end(),
|
||||
state,
|
||||
[] (bounds_step const &lhs, int rhs) { return lhs.state < rhs; }));
|
||||
if (m_bounds.begin() == pos)
|
||||
{
|
||||
return pos->bounds;
|
||||
}
|
||||
else
|
||||
{
|
||||
--pos;
|
||||
render_bounds result(pos->bounds);
|
||||
result.x0 += pos->delta.x0 * (state - pos->state);
|
||||
result.x1 += pos->delta.x1 * (state - pos->state);
|
||||
result.y0 += pos->delta.y0 * (state - pos->state);
|
||||
result.y1 += pos->delta.y1 * (state - pos->state);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// color - color for a given state
|
||||
//-------------------------------------------------
|
||||
|
||||
render_color layout_element::component::color(int state) const
|
||||
{
|
||||
auto pos(
|
||||
std::lower_bound(
|
||||
m_color.begin(),
|
||||
m_color.end(),
|
||||
state,
|
||||
[] (color_step const &lhs, int rhs) { return lhs.state < rhs; }));
|
||||
if (m_color.begin() == pos)
|
||||
{
|
||||
return pos->color;
|
||||
}
|
||||
else
|
||||
{
|
||||
--pos;
|
||||
render_color result(pos->color);
|
||||
result.a += pos->delta.a * (state - pos->state);
|
||||
result.r += pos->delta.r * (state - pos->state);
|
||||
result.g += pos->delta.g * (state - pos->state);
|
||||
result.b += pos->delta.b * (state - pos->state);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2749,10 +2993,27 @@ layout_element::component::component(environment &env, util::xml::data_node cons
|
||||
|
||||
void layout_element::component::normalize_bounds(float xoffs, float yoffs, float xscale, float yscale)
|
||||
{
|
||||
m_bounds.x0 = (m_bounds.x0 - xoffs) * xscale;
|
||||
m_bounds.x1 = (m_bounds.x1 - xoffs) * xscale;
|
||||
m_bounds.y0 = (m_bounds.y0 - yoffs) * yscale;
|
||||
m_bounds.y1 = (m_bounds.y1 - yoffs) * yscale;
|
||||
auto i(m_bounds.begin());
|
||||
i->bounds.x0 = (i->bounds.x0 - xoffs) * xscale;
|
||||
i->bounds.x1 = (i->bounds.x1 - xoffs) * xscale;
|
||||
i->bounds.y0 = (i->bounds.y0 - yoffs) * yscale;
|
||||
i->bounds.y1 = (i->bounds.y1 - yoffs) * yscale;
|
||||
|
||||
auto j(i);
|
||||
while (m_bounds.end() != ++j)
|
||||
{
|
||||
j->bounds.x0 = (j->bounds.x0 - xoffs) * xscale;
|
||||
j->bounds.x1 = (j->bounds.x1 - xoffs) * xscale;
|
||||
j->bounds.y0 = (j->bounds.y0 - yoffs) * yscale;
|
||||
j->bounds.y1 = (j->bounds.y1 - yoffs) * yscale;
|
||||
|
||||
i->delta.x0 = (j->bounds.x0 - i->bounds.x0) / (j->state - i->state);
|
||||
i->delta.x1 = (j->bounds.x1 - i->bounds.x1) / (j->state - i->state);
|
||||
i->delta.y0 = (j->bounds.y0 - i->bounds.y0) / (j->state - i->state);
|
||||
i->delta.y1 = (j->bounds.y1 - i->bounds.y1) / (j->state - i->state);
|
||||
|
||||
i = j;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2760,13 +3021,19 @@ void layout_element::component::normalize_bounds(float xoffs, float yoffs, float
|
||||
// draw_text - draw text in the specified color
|
||||
//-------------------------------------------------
|
||||
|
||||
void layout_element::component::draw_text(render_font &font, bitmap_argb32 &dest, const rectangle &bounds, const char *str, int align)
|
||||
void layout_element::component::draw_text(
|
||||
render_font &font,
|
||||
bitmap_argb32 &dest,
|
||||
const rectangle &bounds,
|
||||
const char *str,
|
||||
int align,
|
||||
const render_color &color)
|
||||
{
|
||||
// compute premultiplied colors
|
||||
u32 r = color().r * 255.0f;
|
||||
u32 g = color().g * 255.0f;
|
||||
u32 b = color().b * 255.0f;
|
||||
u32 a = color().a * 255.0f;
|
||||
u32 const r(color.r * 255.0f);
|
||||
u32 const g(color.g * 255.0f);
|
||||
u32 const b(color.b * 255.0f);
|
||||
u32 const a(color.a * 255.0f);
|
||||
|
||||
// get the width of the string
|
||||
float aspect = 1.0f;
|
||||
|
@ -9,12 +9,13 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "render.h"
|
||||
#include "rendutil.h"
|
||||
|
||||
#include "png.h"
|
||||
|
||||
#include "jpeglib.h"
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
FUNCTION PROTOTYPES
|
||||
***************************************************************************/
|
||||
|
@ -242,104 +242,104 @@ license:CC0
|
||||
<element ref="brown" blend="add"><bounds x="9.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown" blend="add"><bounds x="13.25" y="8.35" width="1" height="1.3" /></element>
|
||||
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="5.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="9.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="13.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="5.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="9.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="13.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="5.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="9.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="13.25" y="4.85" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="5.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="9.25" y="8.35" width="1" height="1.3" /></element>
|
||||
<element ref="brown_nb" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="13.25" y="8.35" width="1" height="1.3" /></element>
|
||||
|
||||
<!-- boris overlay -->
|
||||
<element ref="text_boris01" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris02" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris03" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris04" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="0.5" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris05" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris01" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris02" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris03" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris04" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="0.5" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris05" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
|
||||
<element ref="text_boris06a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="4.25" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_boris06b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="4.95" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_boris07" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris08" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris09" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris10" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="4.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris06a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="4.25" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_boris06b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="4.95" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_boris07" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris08" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris09" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris10" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="4.5" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_boris11" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris12" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris13" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris14" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris15" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris11" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris12" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris13" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris14" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris15" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_boris16" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris17" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris18" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris19" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris20" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris16" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_boris17" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris18" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_boris19" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_boris20" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
|
||||
<!-- morphy overlay -->
|
||||
<element ref="text_morphy01" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy02" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy03" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy04" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy05" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy01" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy02" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy03" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy04" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="1.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy05" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
|
||||
<element ref="text_morphy06a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="4.25" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_morphy06b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="4.95" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_morphy07" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy08" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy09" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy10" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="4.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy06a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="4.25" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_morphy06b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="4.95" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_morphy07" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy08" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy09" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy10" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="4.5" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_morphy11" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy12" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy13" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy14" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy15" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy11" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy12" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy13" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy14" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy15" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_morphy16" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy17" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_morphy18" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_morphy19" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy20" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy16" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_morphy17" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_morphy18" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="11.0" width="3.3" height="1.7" /></element>
|
||||
<element ref="text_morphy19" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_morphy20" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
|
||||
<!-- steinitz overlay -->
|
||||
<element ref="red_s3" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="16.15" y="7.15" width="3.2" height="2.7" /></element>
|
||||
<element ref="brown_s3" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="16.3" y="7.3" width="2.9" height="2.4" /></element>
|
||||
<element ref="red_s3" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="16.15" y="7.15" width="3.2" height="2.7" /></element>
|
||||
<element ref="brown_s3" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="16.3" y="7.3" width="2.9" height="2.4" /></element>
|
||||
|
||||
<element ref="green_s3" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="0.15" y="10.65" width="3.2" height="2.7" /></element>
|
||||
<element ref="brown_s3" inputtag="IN.6" inputmask="0x0f" inputraw="1"><bounds x="0.3" y="10.8" width="2.9" height="2.4" /></element>
|
||||
<element ref="green_s3" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="0.15" y="10.65" width="3.2" height="2.7" /></element>
|
||||
<element ref="brown_s3" inputtag="IN.6" inputmask="0x0f" inputraw="yes"><bounds x="0.3" y="10.8" width="2.9" height="2.4" /></element>
|
||||
|
||||
<element ref="text_steinitz01a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="0.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz01b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="1.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz02" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz03" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz04a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="0.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz04b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="1.5" width="3.3" height="1.1" /></element>
|
||||
<element ref="text_steinitz05" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz01a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="0.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz01b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="1.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz02" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz03" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="0.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz04a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="0.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz04b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="1.5" width="3.3" height="1.1" /></element>
|
||||
<element ref="text_steinitz05" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="0.7" width="3.3" height="1.3" /></element>
|
||||
|
||||
<element ref="text_steinitz06a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="3.75" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_steinitz06b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.9" y="4.45" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_steinitz06c" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="5.4" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz07" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz08" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz09" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz10a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="4.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz10b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="5.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz06a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="3.75" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_steinitz06b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.9" y="4.45" width="2.8" height="0.8" /></element>
|
||||
<element ref="text_steinitz06c" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="5.4" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz07" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz08" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz09" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="3.6" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz10a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="4.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz10b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="5.0" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_steinitz11a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="7.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz11b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="8.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz12" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz13" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz14" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz15" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz11a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="7.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz11b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="8.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz12" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz13" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz14" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="7.1" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz15" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="8.0" width="3.3" height="0.8" /></element>
|
||||
|
||||
<element ref="text_steinitz16" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="0.1" y="11.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz17a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz17b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="4.1" y="12.0" width="3.3" height="1.1" /></element>
|
||||
<element ref="text_steinitz18a" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="10.25" width="3.3" height="1.5" /></element>
|
||||
<element ref="text_steinitz18b" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="10.8" width="3.3" height="1.5" /></element>
|
||||
<element ref="text_steinitz18c" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="8.1" y="12.2" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz19" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz20" inputtag="IN.6" inputmask="0x0f" inputraw="1" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz16" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="0.1" y="11.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz17a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="11.0" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz17b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="4.1" y="12.0" width="3.3" height="1.1" /></element>
|
||||
<element ref="text_steinitz18a" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="10.25" width="3.3" height="1.5" /></element>
|
||||
<element ref="text_steinitz18b" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="10.8" width="3.3" height="1.5" /></element>
|
||||
<element ref="text_steinitz18c" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="8.1" y="12.2" width="3.3" height="0.8" /></element>
|
||||
<element ref="text_steinitz19" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="12.1" y="11.2" width="3.3" height="1.3" /></element>
|
||||
<element ref="text_steinitz20" inputtag="IN.6" inputmask="0x0f" inputraw="yes" blend="add"><bounds x="16.1" y="11.5" width="3.3" height="0.8" /></element>
|
||||
|
||||
<!-- input highlights -->
|
||||
<element ref="hl" inputtag="IN.3" inputmask="0x08"><bounds x="0" y="0" width="3.5" height="3" /><color alpha="0.22" /></element>
|
||||
|
@ -65,10 +65,10 @@ license:CC0
|
||||
<element ref="text_q"><bounds x="8" y="0" width="10" height="2" /></element>
|
||||
<element ref="text_ans"><bounds x="8" y="3" width="10" height="2" /></element>
|
||||
<element ref="text_act"><bounds x="8" y="6" width="10" height="2" /></element>
|
||||
<element ref="nothing" inputtag="IN.1" inputmask="0x00" inputraw="1"><bounds x="14" y="-1" width="4" height="10" /></element>
|
||||
<element ref="switch_qa" inputtag="IN.1" inputmask="0x1f" inputraw="1"><bounds x="15" y="0" width="2" height="2" /></element>
|
||||
<element ref="switch_qa" inputtag="IN.2" inputmask="0x1f" inputraw="1"><bounds x="15" y="3" width="2" height="2" /></element>
|
||||
<element ref="switch_act" inputtag="IN.3" inputmask="0x0f" inputraw="1"><bounds x="15" y="6" width="2" height="2" /></element>
|
||||
<element ref="nothing" inputtag="IN.1" inputmask="0x00" inputraw="yes"><bounds x="14" y="-1" width="4" height="10" /></element>
|
||||
<element ref="switch_qa" inputtag="IN.1" inputmask="0x1f" inputraw="yes"><bounds x="15" y="0" width="2" height="2" /></element>
|
||||
<element ref="switch_qa" inputtag="IN.2" inputmask="0x1f" inputraw="yes"><bounds x="15" y="3" width="2" height="2" /></element>
|
||||
<element ref="switch_act" inputtag="IN.3" inputmask="0x0f" inputraw="yes"><bounds x="15" y="6" width="2" height="2" /></element>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -467,8 +467,8 @@ license:CC0
|
||||
<element ref="brown" blend="add"><bounds x="0" y="-1.2" width="88" height="18.5" /></element>
|
||||
<element ref="bmask" blend="multiply"><bounds x="0" y="-1.2" width="88" height="18.5" /></element>
|
||||
|
||||
<element ref="switch" inputtag="IN.0" inputmask="0x0c" inputraw="1"><bounds x="22.5" y="2.3" width="3.5" height="11.4" /></element>
|
||||
<element ref="switch" inputtag="IN.1" inputmask="0x03" inputraw="1"><bounds x="30.5" y="2.3" width="3.5" height="11.4" /></element>
|
||||
<element ref="switch" inputtag="IN.0" inputmask="0x0c" inputraw="yes"><bounds x="22.5" y="2.3" width="3.5" height="11.4" /></element>
|
||||
<element ref="switch" inputtag="IN.1" inputmask="0x03" inputraw="yes"><bounds x="30.5" y="2.3" width="3.5" height="11.4" /></element>
|
||||
<element ref="but_dw" inputtag="RESET" inputmask="0x01"><bounds x="15.5" y="10.3" width="2.7" height="2.7" /></element>
|
||||
|
||||
<element ref="but_dw" inputtag="IN.4" inputmask="0x02"><bounds x="40.5" y="3" width="2.7" height="2.7" /></element>
|
||||
|
@ -119,17 +119,17 @@ license:CC0
|
||||
<element ref="text_b2"><bounds x="5.125" y="6.7" width="1.75" height="0.25" /></element>
|
||||
<element ref="text_b3"><bounds x="6.2375" y="6.7" width="1.9" height="0.25" /></element>
|
||||
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x00" inputraw="1"><bounds x="6.25" y="4.9" width="1.2" height="0.5" /></element>
|
||||
<element ref="switch" inputtag="IN.1" inputmask="0x0f" inputraw="1"><bounds x="6.3" y="4.925" width="1" height="0.25" /></element>
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x00" inputraw="yes"><bounds x="6.25" y="4.9" width="1.2" height="0.5" /></element>
|
||||
<element ref="switch" inputtag="IN.1" inputmask="0x0f" inputraw="yes"><bounds x="6.3" y="4.925" width="1" height="0.25" /></element>
|
||||
<element ref="text_s1"><bounds x="5.15" y="4.925" width="1.5" height="0.25" /></element>
|
||||
<element ref="text_ro"><bounds x="5.825" y="4.875" width="0.35" height="0.35" /></element>
|
||||
<element ref="nothing" inputtag="IN.1" inputmask="0x0f" inputraw="1"><bounds x="5.8" y="4.85" width="0.4" height="0.4" /></element>
|
||||
<element ref="nothing" inputtag="IN.1" inputmask="0x0f" inputraw="yes"><bounds x="5.8" y="4.85" width="0.4" height="0.4" /></element>
|
||||
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x00" inputraw="1"><bounds x="6.25" y="7.2" width="1.2" height="0.5" /></element>
|
||||
<element ref="switch" inputtag="IN.2" inputmask="0x07" inputraw="1"><bounds x="6.3" y="7.275" width="1" height="0.25" /></element>
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x00" inputraw="yes"><bounds x="6.25" y="7.2" width="1.2" height="0.5" /></element>
|
||||
<element ref="switch" inputtag="IN.2" inputmask="0x07" inputraw="yes"><bounds x="6.3" y="7.275" width="1" height="0.25" /></element>
|
||||
<element ref="text_s2"><bounds x="5.15" y="7.275" width="1.5" height="0.25" /></element>
|
||||
<element ref="text_rg"><bounds x="5.825" y="7.225" width="0.35" height="0.35" /></element>
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x07" inputraw="1"><bounds x="5.8" y="7.2" width="0.4" height="0.4" /></element>
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x07" inputraw="yes"><bounds x="5.8" y="7.2" width="0.4" height="0.4" /></element>
|
||||
|
||||
<!-- main buttons and leds -->
|
||||
|
||||
|
@ -138,10 +138,10 @@ license:CC0
|
||||
|
||||
<element ref="text_dif"><bounds x="21.2" y="6.6" width="7.6" height="0.75" /></element>
|
||||
<element ref="static_black"><bounds x="23.5" y="7.5" width="3.0" height="0.7" /></element>
|
||||
<element ref="switch1" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="23.4" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch2" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="24.166" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch3" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="24.933" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch4" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="25.7" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch1" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="23.4" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch2" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="24.166" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch3" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="24.933" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="switch4" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="25.7" y="7.4" width="0.9" height="0.9" /></element>
|
||||
<element ref="text_1"><bounds x="23.4" y="8.3" width="0.9" height="0.75" /></element>
|
||||
<element ref="text_2"><bounds x="24.166" y="8.3" width="0.9" height="0.75" /></element>
|
||||
<element ref="text_3"><bounds x="24.933" y="8.3" width="0.9" height="0.75" /></element>
|
||||
|
@ -18,7 +18,7 @@ license:CC0
|
||||
<repeat count="22">
|
||||
<param name="n" start="0" increment="1" />
|
||||
<param name="x" start="0" increment="19" />
|
||||
<element name="vfd0" ref="vfd0">
|
||||
<element name="vfd~n~" ref="vfd0">
|
||||
<bounds x="~x~" y="0" width="18" height="23" />
|
||||
</element>
|
||||
</repeat>
|
||||
|
@ -159,16 +159,16 @@ license:CC0
|
||||
<element ref="text_ry"><bounds x="9.825" y="9.17" width="0.35" height="0.35" /></element>
|
||||
<element ref="text_ro"><bounds x="9.825" y="9.57" width="0.35" height="0.35" /></element>
|
||||
<element ref="text_ro"><bounds x="9.825" y="9.97" width="0.35" height="0.35" /></element>
|
||||
<element ref="nothing" inputtag="FAKE" inputmask="0x02" inputraw="1"><bounds x="9.805" y="8.75" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.4" inputmask="0x01" inputraw="1"><bounds x="9.805" y="9.15" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x08" inputraw="1"><bounds x="9.805" y="9.55" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x07" inputraw="1"><bounds x="9.805" y="9.95" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="FAKE" inputmask="0x02" inputraw="yes"><bounds x="9.805" y="8.75" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.4" inputmask="0x01" inputraw="yes"><bounds x="9.805" y="9.15" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x08" inputraw="yes"><bounds x="9.805" y="9.55" width="0.39" height="0.39" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x07" inputraw="yes"><bounds x="9.805" y="9.95" width="0.39" height="0.39" /></element>
|
||||
|
||||
<element ref="nothing" inputtag="FAKE" inputmask="0x00" inputraw="1"><bounds x="10.2" y="8.7" width="1.1" height="1.8" /></element>
|
||||
<element ref="switch_music" inputtag="FAKE" inputmask="0x02" inputraw="1"><bounds x="10.25" y="8.8" width="1" height="0.29" /></element>
|
||||
<element ref="switch_speed" inputtag="IN.4" inputmask="0x01" inputraw="1"><bounds x="10.25" y="9.2" width="1" height="0.29" /></element>
|
||||
<element ref="switch_skill" inputtag="IN.3" inputmask="0x08" inputraw="1"><bounds x="10.25" y="9.6" width="1" height="0.29" /></element>
|
||||
<element ref="switch_game" inputtag="IN.3" inputmask="0x07" inputraw="1"><bounds x="10.25" y="10.0" width="1" height="0.29" /></element>
|
||||
<element ref="nothing" inputtag="FAKE" inputmask="0x00" inputraw="yes"><bounds x="10.2" y="8.7" width="1.1" height="1.8" /></element>
|
||||
<element ref="switch_music" inputtag="FAKE" inputmask="0x02" inputraw="yes"><bounds x="10.25" y="8.8" width="1" height="0.29" /></element>
|
||||
<element ref="switch_speed" inputtag="IN.4" inputmask="0x01" inputraw="yes"><bounds x="10.25" y="9.2" width="1" height="0.29" /></element>
|
||||
<element ref="switch_skill" inputtag="IN.3" inputmask="0x08" inputraw="yes"><bounds x="10.25" y="9.6" width="1" height="0.29" /></element>
|
||||
<element ref="switch_game" inputtag="IN.3" inputmask="0x07" inputraw="yes"><bounds x="10.25" y="10.0" width="1" height="0.29" /></element>
|
||||
|
||||
<element ref="button" inputtag="FAKE" inputmask="0x01"><bounds x="8.0" y="11" width="0.5" height="0.5" /></element>
|
||||
<element ref="button" inputtag="IN.2" inputmask="0x01"><bounds x="9.75" y="11.9" width="0.5" height="0.5" /></element>
|
||||
|
@ -150,8 +150,8 @@ license:CC0
|
||||
<element ref="text_2p"><bounds x="1" y="102.1" width="4" height="2" /></element>
|
||||
|
||||
<element ref="static_black2"><bounds x="1" y="95.6" width="4" height="6" /></element>
|
||||
<element ref="switch1" inputtag="IN.2" inputmask="0x08" inputraw="1"><bounds x="0.8" y="95.4" width="4.4" height="3.4" /></element>
|
||||
<element ref="switch2" inputtag="IN.2" inputmask="0x08" inputraw="1"><bounds x="0.8" y="98.4" width="4.4" height="3.4" /></element>
|
||||
<element ref="switch1" inputtag="IN.2" inputmask="0x08" inputraw="yes"><bounds x="0.8" y="95.4" width="4.4" height="3.4" /></element>
|
||||
<element ref="switch2" inputtag="IN.2" inputmask="0x08" inputraw="yes"><bounds x="0.8" y="98.4" width="4.4" height="3.4" /></element>
|
||||
<repeat count="12">
|
||||
<param name="y" start="95.75" increment="0.5" />
|
||||
<element ref="static_black2"><bounds x="1.01" y="~y~" width="3.98" height="0.2" /></element>
|
||||
|
@ -164,8 +164,8 @@ license:CC0
|
||||
<!-- 2nd model has slightly different labels for SW/WS -->
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x04"><bounds x="10" y="20" width="3.7" height="3.7" /><color alpha="0.08" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x01"><bounds x="15" y="20" width="3.7" height="3.7" /><color alpha="0.08" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="1"><bounds x="10.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="1"><bounds x="15.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="yes"><bounds x="10.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="yes"><bounds x="15.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
|
||||
<element ref="text_ba"><bounds x="0.5" y="10.1" width="1.3" height="1.8" /></element>
|
||||
<element ref="text_bb"><bounds x="5.5" y="10.1" width="1.3" height="1.8" /></element>
|
||||
|
@ -230,7 +230,7 @@ license:CC0
|
||||
</repeat>
|
||||
|
||||
<!-- power led at A1 -->
|
||||
<element ref="ledg" inputtag="IN.5" inputmask="0x01" inputraw="1"><bounds x="0.2" y="78.3" width="1.5" height="1.5" /></element>
|
||||
<element ref="ledg" inputtag="IN.5" inputmask="0x01" inputraw="yes"><bounds x="0.2" y="78.3" width="1.5" height="1.5" /></element>
|
||||
|
||||
<!-- pieces -->
|
||||
<repeat count="8">
|
||||
|
@ -293,12 +293,12 @@ license:CC0
|
||||
<bounds x="0" y="0" width="10" height="81" />
|
||||
|
||||
<!-- can click here to change board type -->
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
|
||||
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="80" width="10" height="1" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
|
||||
|
||||
<!-- board -->
|
||||
@ -348,8 +348,8 @@ license:CC0
|
||||
<element name="piece_ui14" ref="piece"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x1000"><bounds x="1" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x2000"><bounds x="5" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask2" blend="multiply"><bounds x="1" y="48" width="8" height="4" /></element>
|
||||
|
||||
<!-- hand -->
|
||||
|
@ -293,12 +293,12 @@ license:CC0
|
||||
<bounds x="0" y="0" width="10" height="81" />
|
||||
|
||||
<!-- can click here to change board type -->
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
|
||||
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="80" width="10" height="1" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
|
||||
|
||||
<!-- board -->
|
||||
@ -357,8 +357,8 @@ license:CC0
|
||||
<element name="piece_ui14" ref="piece"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x1000"><bounds x="1" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x2000"><bounds x="5" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask2" blend="multiply"><bounds x="1" y="48" width="8" height="4" /></element>
|
||||
|
||||
<!-- undo -->
|
||||
|
@ -230,7 +230,7 @@ license:CC0
|
||||
</repeat>
|
||||
|
||||
<!-- power led at A1 -->
|
||||
<element ref="ledg" inputtag="IN.5" inputmask="0x01" inputraw="1"><bounds x="0.2" y="78.3" width="1.5" height="1.5" /></element>
|
||||
<element ref="ledg" inputtag="IN.5" inputmask="0x01" inputraw="yes"><bounds x="0.2" y="78.3" width="1.5" height="1.5" /></element>
|
||||
|
||||
<!-- pieces -->
|
||||
<repeat count="8">
|
||||
@ -540,8 +540,8 @@ license:CC0
|
||||
<!-- 2nd model has slightly different labels for SW/WS -->
|
||||
<element ref="nothing" inputtag="IN.2" inputmask="0x04"><bounds x="10" y="20" width="3.7" height="3.7" /><color alpha="0.08" /></element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x01"><bounds x="15" y="20" width="3.7" height="3.7" /><color alpha="0.08" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="1"><bounds x="10.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="1"><bounds x="15.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="yes"><bounds x="10.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
<element ref="bmask" inputtag="IN.4" inputmask="0x20" inputraw="yes"><bounds x="15.6" y="22.15" width="1.2" height="1.2" /></element>
|
||||
|
||||
<element ref="text_ba"><bounds x="0.5" y="10.1" width="1.3" height="1.8" /></element>
|
||||
<element ref="text_bb"><bounds x="5.5" y="10.1" width="1.3" height="1.8" /></element>
|
||||
|
@ -293,12 +293,12 @@ license:CC0
|
||||
<bounds x="0" y="0" width="10" height="81" />
|
||||
|
||||
<!-- can click here to change board type -->
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
|
||||
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="80" width="10" height="1" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
|
||||
|
||||
<!-- board -->
|
||||
@ -348,8 +348,8 @@ license:CC0
|
||||
<element name="piece_ui14" ref="piece"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x1000"><bounds x="1" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x2000"><bounds x="5" y="48" width="4" height="4" /><color alpha="0.25" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="1"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="1" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask1" inputtag="FAKE" inputmask="1" inputraw="yes"><bounds x="5" y="48" width="4" height="4" /></element>
|
||||
<element ref="wmask2" blend="multiply"><bounds x="1" y="48" width="8" height="4" /></element>
|
||||
|
||||
<!-- hand -->
|
||||
|
@ -190,10 +190,10 @@ license:CC0
|
||||
<repeat count="4">
|
||||
<param name="x1" start="8.3" increment="20" />
|
||||
<param name="x2" start="18.3" increment="20" />
|
||||
<element ref="hidew" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="~x1~" y="~y1~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hidew" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="~x2~" y="~y2~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hideb" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="~x1~" y="~y2~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hideb" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="~x2~" y="~y1~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hidew" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="~x1~" y="~y1~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hidew" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="~x2~" y="~y2~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hideb" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="~x1~" y="~y2~" width="1.5" height="1.5" /></element>
|
||||
<element ref="hideb" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="~x2~" y="~y1~" width="1.5" height="1.5" /></element>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
@ -273,12 +273,12 @@ license:CC0
|
||||
<bounds x="0" y="0" width="10" height="80" />
|
||||
|
||||
<!-- can click here to change board type -->
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
<element ref="hlub" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="1.5" width="10" height="5" /></element>
|
||||
|
||||
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
|
||||
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="1"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit1" inputtag="FAKE" inputmask="0x01" inputraw="yes"><bounds x="0" y="2" width="10" height="2" /></element>
|
||||
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
|
||||
|
||||
<!-- board -->
|
||||
|
@ -40,8 +40,8 @@ license:CC0
|
||||
<collection name="Paddle State">
|
||||
<!-- show live paddle position -->
|
||||
<element ref="text_p1" blend="add"><bounds x="10.75" y="0.1" width="5" height="0.75" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="PADDLE" inputmask="0x00" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> <!-- block clickable input -->
|
||||
<element ref="text_p2" blend="add" inputtag="PADDLE" inputmask="0xff" inputraw="1"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="PADDLE" inputmask="0x00" inputraw="yes"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element> <!-- block clickable input -->
|
||||
<element ref="text_p2" blend="add" inputtag="PADDLE" inputmask="0xff" inputraw="yes"><bounds x="15.95" y="0.1" width="2" height="0.75" /></element>
|
||||
</collection>
|
||||
</view>
|
||||
|
||||
|
@ -235,8 +235,8 @@ license:CC0
|
||||
</repeat>
|
||||
|
||||
<!-- backlight -->
|
||||
<element ref="nothing" blend="add" inputtag="LIGHT" inputmask="0x00" inputraw="1"><bounds x="0" y="0" width="101" height="114" /></element>
|
||||
<element ref="cb_light" blend="multiply" inputtag="LIGHT" inputmask="0x01" inputraw="1"><bounds x="0" y="0" width="101" height="114" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="LIGHT" inputmask="0x00" inputraw="yes"><bounds x="0" y="0" width="101" height="114" /></element>
|
||||
<element ref="cb_light" blend="multiply" inputtag="LIGHT" inputmask="0x01" inputraw="yes"><bounds x="0" y="0" width="101" height="114" /></element>
|
||||
|
||||
<!-- mask edges -->
|
||||
<element ref="blackb"><bounds x="0" y="0" width="101" height="2" /></element>
|
||||
|
@ -599,15 +599,15 @@ license:CC0
|
||||
<bounds left="-19" right="116" top="-0.5" bottom="88.5" />
|
||||
|
||||
<!-- block buttons -->
|
||||
<element ref="hlb" inputtag="IN.1" inputmask="0x00" inputraw="1"><bounds x="88" y="16" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.2" inputmask="0x00" inputraw="1"><bounds x="88" y="26" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.5" inputmask="0x00" inputraw="1"><bounds x="88" y="56" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.1" inputmask="0x00" inputraw="yes"><bounds x="88" y="16" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.2" inputmask="0x00" inputraw="yes"><bounds x="88" y="26" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.5" inputmask="0x00" inputraw="yes"><bounds x="88" y="56" width="6" height="4" /></element>
|
||||
|
||||
<element ref="hlb" inputtag="IN.1" inputmask="0x00" inputraw="1"><bounds x="97" y="16" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.2" inputmask="0x00" inputraw="1"><bounds x="97" y="26" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.4" inputmask="0x00" inputraw="1"><bounds x="97" y="46" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.5" inputmask="0x00" inputraw="1"><bounds x="97" y="56" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.6" inputmask="0x00" inputraw="1"><bounds x="97" y="66" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.1" inputmask="0x00" inputraw="yes"><bounds x="97" y="16" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.2" inputmask="0x00" inputraw="yes"><bounds x="97" y="26" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.4" inputmask="0x00" inputraw="yes"><bounds x="97" y="46" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.5" inputmask="0x00" inputraw="yes"><bounds x="97" y="56" width="6" height="4" /></element>
|
||||
<element ref="hlb" inputtag="IN.6" inputmask="0x00" inputraw="yes"><bounds x="97" y="66" width="6" height="4" /></element>
|
||||
|
||||
<group ref="default"><bounds left="-19" right="116" top="-0.5" bottom="88.5" /></group>
|
||||
|
||||
|
@ -102,10 +102,10 @@ license:CC0
|
||||
|
||||
<element ref="text_game"><bounds x="85" y="115" width="8" height="2.5" /></element>
|
||||
<element ref="text_sw"><bounds x="93" y="115" width="2.5" height="2.5" /></element>
|
||||
<element ref="switch_game" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="93" y="115" width="4" height="2.5" /></element>
|
||||
<element ref="switch_game" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="93" y="115" width="4" height="2.5" /></element>
|
||||
|
||||
<element ref="text_skill"><bounds x="110" y="115" width="8" height="2.5" /></element>
|
||||
<element ref="text_sw"><bounds x="118" y="115" width="2.5" height="2.5" /></element>
|
||||
<element ref="switch_skill" inputtag="IN.1" inputmask="0x07" inputraw="1"><bounds x="118" y="115" width="4" height="2.5" /></element>
|
||||
<element ref="switch_skill" inputtag="IN.1" inputmask="0x07" inputraw="yes"><bounds x="118" y="115" width="4" height="2.5" /></element>
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -218,67 +218,67 @@ license:CC0
|
||||
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x80"><bounds x="18.333" y="12.333" width="4.666" height="4.666" /></element>
|
||||
|
||||
<element ref="black"><bounds x="9" y="22.5" width="14" height="45" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="1"><bounds x="-1" y="-1" width="34" height="69" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="yes"><bounds x="-1" y="-1" width="34" height="69" /></element>
|
||||
|
||||
<!-- button labels (upper) -->
|
||||
<element ref="text_b01e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="9" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="12.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b15e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="16.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b01e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="9" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="12.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b15e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="16.1" width="6" height="2.6" /></element>
|
||||
|
||||
<element ref="text_b01d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="4.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="5.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="13" width="6" height="1.4" /></element>
|
||||
<element ref="text_b15d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b01d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="4.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="5.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="13" width="6" height="1.4" /></element>
|
||||
<element ref="text_b15d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="17" width="6" height="1.4" /></element>
|
||||
|
||||
<!-- button labels (lower) -->
|
||||
<element ref="text_b21e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="42" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="45.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="46.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b21e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="42" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="45.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="46.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
|
||||
<element ref="text_b21d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="41.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="42.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="46" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b21d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="41.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="42.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="46" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
|
||||
<element ref="text_r9" blend="add"><bounds x="16.5" y="26" width="6" height="1.4" /></element>
|
||||
<element ref="text_r8" blend="add"><bounds x="16.5" y="30" width="6" height="1.4" /></element>
|
||||
@ -309,31 +309,31 @@ license:CC0
|
||||
<element ref="blackd"><bounds x="18.15" y="33.85" width="1.8" height="1.8" /></element>
|
||||
<element ref="white"><bounds x="18.7" y="34.4" width="0.7" height="0.7" /></element>
|
||||
|
||||
<element ref="text_b31e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="24.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="26.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="27.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="61.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="62.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
<element ref="text_b31e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="24.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="26.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="27.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="61.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="62.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
|
||||
<element ref="text_b31d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="25.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="26.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="60.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="62.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="63.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d4" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="64.6" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
<element ref="text_b31d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="25.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="26.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="60.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="62.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="63.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d4" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="64.6" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
|
||||
<!-- switches -->
|
||||
<element ref="text_lcd1"><bounds x="46" y="57" width="5" height="1.4" /></element>
|
||||
<element ref="text_lcd2"><bounds x="46" y="65.5" width="5" height="1.4" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x02" inputraw="1"><bounds x="46" y="57" width="5" height="10" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x02" inputraw="yes"><bounds x="46" y="57" width="5" height="10" /></element>
|
||||
|
||||
<element ref="text_sound1"><bounds x="52" y="57" width="5" height="1.4" /></element>
|
||||
<element ref="text_sound2"><bounds x="52" y="65.5" width="5" height="1.4" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x01" inputraw="1"><bounds x="52" y="57" width="5" height="10" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x01" inputraw="yes"><bounds x="52" y="57" width="5" height="10" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
@ -404,8 +404,8 @@ license:CC0
|
||||
|
||||
<group name="display">
|
||||
<screen index="0" blend="alpha"><bounds x="0" y="0" width="100" height="114.65" /></screen>
|
||||
<element ref="nothing" blend="add" inputtag="IN.7" inputmask="0x00" inputraw="1"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.7" inputmask="0x02" inputraw="1"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.7" inputmask="0x00" inputraw="yes"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.7" inputmask="0x02" inputraw="yes"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_cb" blend="multiply"><bounds x="0" y="0" width="100" height="95.9" /></element>
|
||||
</group>
|
||||
|
||||
|
@ -532,67 +532,67 @@ license:CC0
|
||||
<element ref="hlc" blend="add" inputtag="IN.8" inputmask="0x80"><bounds x="18.333" y="12.333" width="4.666" height="4.666" /></element>
|
||||
|
||||
<element ref="black"><bounds x="9" y="22.5" width="14" height="45" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="1"><bounds x="-1" y="-1" width="34" height="69" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.0" inputmask="0x00" inputraw="yes"><bounds x="-1" y="-1" width="34" height="69" /></element>
|
||||
|
||||
<!-- button labels (upper) -->
|
||||
<element ref="text_b01e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="9" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="12.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b15e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="16.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b01e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0ce" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="9" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="12.1" width="6" height="2.6" /></element>
|
||||
<element ref="text_b15e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="16.1" width="6" height="2.6" /></element>
|
||||
|
||||
<element ref="text_b01d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="4.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="5.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="13" width="6" height="1.4" /></element>
|
||||
<element ref="text_b15d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="26" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b01d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b02d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="5" width="6" height="1.4" /></element>
|
||||
<element ref="text_b03d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b04d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="12.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="13.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b0cd" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="0" y="17" width="6" height="1.4" /></element>
|
||||
<element ref="text_b11d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="1" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="4.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b12d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="5.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="8.4" width="6" height="1.4" /></element>
|
||||
<element ref="text_b13d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="9.7" width="6" height="1.4" /></element>
|
||||
<element ref="text_b14d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="13" width="6" height="1.4" /></element>
|
||||
<element ref="text_b15d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="26" y="17" width="6" height="1.4" /></element>
|
||||
|
||||
<!-- button labels (lower) -->
|
||||
<element ref="text_b21e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="42" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="45.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="46.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b21e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="42" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="45.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="46.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ae2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
|
||||
<element ref="text_b21d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="41.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="42.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="46" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b21d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="26" width="10" height="1.4" /></element>
|
||||
<element ref="text_b22d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="30" width="10" height="1.4" /></element>
|
||||
<element ref="text_b23d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="34" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="37.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b24d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="38.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="41.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b25d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="42.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b26d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="46" width="10" height="1.4" /></element>
|
||||
<element ref="text_b27d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="50" width="10" height="1.4" /></element>
|
||||
<element ref="text_b28d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="54" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="57.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b29d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="58.7" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="61.4" width="10" height="1.4" /></element>
|
||||
<element ref="text_b2ad2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="9.8" y="62.7" width="10" height="1.4" /></element>
|
||||
|
||||
<element ref="text_r9" blend="add"><bounds x="16.5" y="26" width="6" height="1.4" /></element>
|
||||
<element ref="text_r8" blend="add"><bounds x="16.5" y="30" width="6" height="1.4" /></element>
|
||||
@ -623,31 +623,31 @@ license:CC0
|
||||
<element ref="blackd"><bounds x="18.15" y="33.85" width="1.8" height="1.8" /></element>
|
||||
<element ref="white"><bounds x="18.7" y="34.4" width="0.7" height="0.7" /></element>
|
||||
|
||||
<element ref="text_b31e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="24.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="26.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="27.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="61.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="62.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
<element ref="text_b31e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="24.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="26.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31e3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="27.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="61.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32e2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="62.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34e" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
|
||||
<element ref="text_b31d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="25.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="26.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="60.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="62.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="63.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d4" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="20" y="64.6" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="1"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
<element ref="text_b31d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="25.4" width="2" height="1.4" /></element>
|
||||
<element ref="text_b31d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="26.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d1" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="60.7" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d2" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="62.0" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d3" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="63.3" width="2" height="1.4" /></element>
|
||||
<element ref="text_b32d4" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="20" y="64.6" width="2" height="1.4" /></element>
|
||||
<element ref="text_b33d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="26" width="3" height="1.4" /></element>
|
||||
<element ref="text_b34d" blend="add" inputtag="IN.6" inputmask="0x04" inputraw="yes"><bounds x="17.6" y="62" width="3" height="1.4" /></element>
|
||||
|
||||
<!-- switches -->
|
||||
<element ref="text_lcd1"><bounds x="46" y="57" width="5" height="1.4" /></element>
|
||||
<element ref="text_lcd2"><bounds x="46" y="65.5" width="5" height="1.4" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x02" inputraw="1"><bounds x="46" y="57" width="5" height="10" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x02" inputraw="yes"><bounds x="46" y="57" width="5" height="10" /></element>
|
||||
|
||||
<element ref="text_sound1"><bounds x="52" y="57" width="5" height="1.4" /></element>
|
||||
<element ref="text_sound2"><bounds x="52" y="65.5" width="5" height="1.4" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x01" inputraw="1"><bounds x="52" y="57" width="5" height="10" /></element>
|
||||
<element ref="switch" inputtag="IN.7" inputmask="0x01" inputraw="yes"><bounds x="52" y="57" width="5" height="10" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
@ -718,8 +718,8 @@ license:CC0
|
||||
|
||||
<group name="display">
|
||||
<screen index="0" blend="alpha"><bounds x="0" y="0" width="100" height="114.65" /></screen>
|
||||
<element ref="nothing" blend="add" inputtag="IN.7" inputmask="0x00" inputraw="1"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.7" inputmask="0x02" inputraw="1"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.7" inputmask="0x00" inputraw="yes"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.7" inputmask="0x02" inputraw="yes"><bounds x="0" y="0" width="100" height="114.65" /></element>
|
||||
<element ref="lcd_cb" blend="multiply"><bounds x="0" y="0" width="100" height="95.9" /></element>
|
||||
</group>
|
||||
|
||||
|
@ -206,8 +206,8 @@ license:CC0
|
||||
<group name="lcd1">
|
||||
<bounds x="-1" y="3" width="18" height="8" />
|
||||
<screen index="0" blend="alpha"><bounds x="0" y="4" width="15.8" height="6" /></screen>
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="1"><bounds x="-1" y="3" width="18" height="8" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.4" inputmask="0x02" inputraw="1"><bounds x="-1" y="3" width="18" height="8" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="yes"><bounds x="-1" y="3" width="18" height="8" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.4" inputmask="0x02" inputraw="yes"><bounds x="-1" y="3" width="18" height="8" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
@ -262,8 +262,8 @@ license:CC0
|
||||
<screen index="1" blend="alpha"><bounds x="9.8" y="10" width="106" height="108" /></screen>
|
||||
<element ref="lcd_cb" blend="multiply"><bounds x="1.5" y="2.9" width="122.6" height="122.1" /></element>
|
||||
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="1"><bounds x="6.2" y="7.6" width="113.3" height="112.8" /></element>
|
||||
<element ref="lcd2m" blend="multiply" inputtag="IN.4" inputmask="0x04" inputraw="1"><bounds x="6.2" y="7.6" width="113.3" height="112.8" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="yes"><bounds x="6.2" y="7.6" width="113.3" height="112.8" /></element>
|
||||
<element ref="lcd2m" blend="multiply" inputtag="IN.4" inputmask="0x04" inputraw="yes"><bounds x="6.2" y="7.6" width="113.3" height="112.8" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
@ -275,8 +275,8 @@ license:CC0
|
||||
|
||||
<element ref="brown"><bounds x="-2" y="12" width="52" height="6" /></element>
|
||||
|
||||
<element ref="switch" inputtag="IN.4" inputmask="0x02" inputraw="1"><bounds x="30.0" y="5.5" width="1.2" height="2.4" /></element>
|
||||
<element ref="switch" inputtag="IN.4" inputmask="0x01" inputraw="1"><bounds x="34.4" y="5.5" width="1.2" height="2.4" /></element>
|
||||
<element ref="switch" inputtag="IN.4" inputmask="0x02" inputraw="yes"><bounds x="30.0" y="5.5" width="1.2" height="2.4" /></element>
|
||||
<element ref="switch" inputtag="IN.4" inputmask="0x01" inputraw="yes"><bounds x="34.4" y="5.5" width="1.2" height="2.4" /></element>
|
||||
<element ref="switch" inputtag="IN.3" inputmask="0x01"><bounds x="38.8" y="5.5" width="1.2" height="2.4" /><orientation rotate="180" /></element>
|
||||
<element ref="text_u1"><bounds x="28.0" y="8.2" width="5.2" height="0.9" /></element>
|
||||
<element ref="text_u2"><bounds x="32.4" y="8.2" width="5.2" height="0.9" /></element>
|
||||
@ -376,8 +376,8 @@ license:CC0
|
||||
<element ref="text_a~i~"><bounds x="~x~" y="17.2" width="1.5" height="0.9" /></element>
|
||||
</repeat>
|
||||
|
||||
<element ref="switch2" inputtag="IN.6" inputmask="0x01" inputraw="1"><bounds x="36" y="24" width="4" height="5" /></element>
|
||||
<element ref="switch2" inputtag="IN.4" inputmask="0x04" inputraw="1"><bounds x="42" y="24" width="4" height="5" /></element>
|
||||
<element ref="switch2" inputtag="IN.6" inputmask="0x01" inputraw="yes"><bounds x="36" y="24" width="4" height="5" /></element>
|
||||
<element ref="switch2" inputtag="IN.4" inputmask="0x04" inputraw="yes"><bounds x="42" y="24" width="4" height="5" /></element>
|
||||
|
||||
<element ref="text_cu1"><bounds x="35" y="21.9" width="6" height="0.9" /></element>
|
||||
<element ref="text_cu2"><bounds x="35" y="22.9" width="6" height="0.9" /></element>
|
||||
|
@ -90,8 +90,8 @@ license:CC0
|
||||
<bounds left="8" right="52" top="1" bottom="39" />
|
||||
|
||||
<screen index="0" blend="alpha"><bounds x="10" y="4" width="15.8" height="6" /></screen>
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="1"><bounds x="9" y="3" width="18" height="8" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.4" inputmask="0x02" inputraw="1"><bounds x="9" y="3" width="18" height="8" /></element>
|
||||
<element ref="nothing" blend="add" inputtag="IN.4" inputmask="0x00" inputraw="yes"><bounds x="9" y="3" width="18" height="8" /></element>
|
||||
<element ref="lcd_bg" blend="multiply" inputtag="IN.4" inputmask="0x02" inputraw="yes"><bounds x="9" y="3" width="18" height="8" /></element>
|
||||
|
||||
<element ref="button" inputtag="IN.0" inputmask="0x04"><bounds x="28" y="4" width="5" height="6" /></element>
|
||||
<element ref="text_l1"><bounds x="28" y="2.2" width="5" height="1.8" /></element>
|
||||
|
@ -198,10 +198,10 @@ license:CC0
|
||||
<element ref="text_game">
|
||||
<bounds x="68" y="93" width="20" height="4" />
|
||||
</element>
|
||||
<element ref="nothing" inputtag="IN.0" inputmask="0x00" inputraw="1">
|
||||
<element ref="nothing" inputtag="IN.0" inputmask="0x00" inputraw="yes">
|
||||
<bounds x="73.9" y="97.9" width="3.2" height="4.2" />
|
||||
</element>
|
||||
<element ref="switch_game" inputtag="IN.0" inputmask="0x07" inputraw="1">
|
||||
<element ref="switch_game" inputtag="IN.0" inputmask="0x07" inputraw="yes">
|
||||
<bounds x="74" y="98" width="3" height="4" />
|
||||
</element>
|
||||
<element ref="text_lg">
|
||||
@ -220,10 +220,10 @@ license:CC0
|
||||
<element ref="text_skill">
|
||||
<bounds x="112" y="93" width="30" height="4" />
|
||||
</element>
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x00" inputraw="1">
|
||||
<element ref="nothing" inputtag="IN.3" inputmask="0x00" inputraw="yes">
|
||||
<bounds x="122.9" y="97.9" width="3.2" height="4.2" />
|
||||
</element>
|
||||
<element ref="switch_skill" inputtag="IN.3" inputmask="0x0f" inputraw="1">
|
||||
<element ref="switch_skill" inputtag="IN.3" inputmask="0x0f" inputraw="yes">
|
||||
<bounds x="123" y="98" width="3" height="4" />
|
||||
</element>
|
||||
<element ref="text_lb">
|
||||
|
@ -94,7 +94,7 @@ license:CC0
|
||||
<screen index="0">
|
||||
<bounds x="0" y="0" width="640" height="480" />
|
||||
</screen>
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="1">
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="yes">
|
||||
<bounds x="574" y="414" width="64" height="64" />
|
||||
<color alpha="0.6" />
|
||||
</element>
|
||||
@ -103,7 +103,7 @@ license:CC0
|
||||
<screen index="0">
|
||||
<bounds x="0" y="0" width="640" height="480" />
|
||||
</screen>
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="1">
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="yes">
|
||||
<bounds x="2" y="414" width="64" height="64" />
|
||||
<color alpha="0.6" />
|
||||
</element>
|
||||
@ -112,7 +112,7 @@ license:CC0
|
||||
<screen index="0">
|
||||
<bounds x="0" y="0" width="640" height="480" />
|
||||
</screen>
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="1">
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="yes">
|
||||
<bounds x="648" y="414" width="64" height="64" />
|
||||
<color alpha="0.65" />
|
||||
</element>
|
||||
@ -121,7 +121,7 @@ license:CC0
|
||||
<screen index="0">
|
||||
<bounds x="0" y="0" width="640" height="480" />
|
||||
</screen>
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="1">
|
||||
<element ref="shifter" inputtag="GEAR" inputmask="0x0f" inputraw="yes">
|
||||
<bounds x="-72" y="414" width="64" height="64" />
|
||||
<color alpha="0.65" />
|
||||
</element>
|
||||
|
@ -212,10 +212,10 @@ license:CC0
|
||||
<element ref="text_s3"><bounds x="-3.9" y="32.15" width="3.5" height="0.9" /></element>
|
||||
|
||||
<element ref="static_black2"><bounds x="-6.5" y="29.125" width="0.5" height="4.5" /></element>
|
||||
<element ref="nothing" inputtag="IN.6" inputmask="0x00" inputraw="1"><bounds x="-7.25" y="29.125" width="2" height="4.5" /></element>
|
||||
<element ref="switch0" inputtag="IN.6" inputmask="0x03" inputraw="1"><bounds x="-7" y="29.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.6" inputmask="0x03" inputraw="1"><bounds x="-7" y="30.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.6" inputmask="0x03" inputraw="1"><bounds x="-7" y="32.125" width="1.5" height="1" /></element>
|
||||
<element ref="nothing" inputtag="IN.6" inputmask="0x00" inputraw="yes"><bounds x="-7.25" y="29.125" width="2" height="4.5" /></element>
|
||||
<element ref="switch0" inputtag="IN.6" inputmask="0x03" inputraw="yes"><bounds x="-7" y="29.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.6" inputmask="0x03" inputraw="yes"><bounds x="-7" y="30.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.6" inputmask="0x03" inputraw="yes"><bounds x="-7" y="32.125" width="1.5" height="1" /></element>
|
||||
|
||||
<element ref="static_black"><bounds x="-6.25" y="30.00" width="2" height="0.25" /></element>
|
||||
<element ref="static_black"><bounds x="-6.25" y="31.25" width="2" height="0.25" /></element>
|
||||
@ -245,20 +245,20 @@ license:CC0
|
||||
<element ref="text_4"><bounds x="50.25" y="34.65" width="1" height="0.9" /></element>
|
||||
|
||||
<element ref="static_black2"><bounds x="53" y="16.875" width="0.5" height="7" /></element>
|
||||
<element ref="nothing" inputtag="IN.0" inputmask="0x00" inputraw="1"><bounds x="52.25" y="16.875" width="2" height="7" /></element>
|
||||
<element ref="switch0" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="17.375" width="1.5" height="1" /></element>
|
||||
<element ref="switch8" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="18.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch4" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="19.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="21.125" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="22.375" width="1.5" height="1" /></element>
|
||||
<element ref="nothing" inputtag="IN.0" inputmask="0x00" inputraw="yes"><bounds x="52.25" y="16.875" width="2" height="7" /></element>
|
||||
<element ref="switch0" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="17.375" width="1.5" height="1" /></element>
|
||||
<element ref="switch8" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="18.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch4" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="19.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="21.125" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.0" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="22.375" width="1.5" height="1" /></element>
|
||||
|
||||
<element ref="static_black2"><bounds x="53" y="29.125" width="0.5" height="7" /></element>
|
||||
<element ref="nothing" inputtag="IN.4" inputmask="0x00" inputraw="1"><bounds x="52.25" y="29.125" width="2" height="7" /></element>
|
||||
<element ref="switch0" inputtag="IN.4" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="29.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.4" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="30.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch4" inputtag="IN.4" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="32.125" width="1.5" height="1" /></element>
|
||||
<element ref="switch8" inputtag="IN.4" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="33.375" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.4" inputmask="0x0f" inputraw="1"><bounds x="52.5" y="34.625" width="1.5" height="1" /></element>
|
||||
<element ref="nothing" inputtag="IN.4" inputmask="0x00" inputraw="yes"><bounds x="52.25" y="29.125" width="2" height="7" /></element>
|
||||
<element ref="switch0" inputtag="IN.4" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="29.625" width="1.5" height="1" /></element>
|
||||
<element ref="switch2" inputtag="IN.4" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="30.875" width="1.5" height="1" /></element>
|
||||
<element ref="switch4" inputtag="IN.4" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="32.125" width="1.5" height="1" /></element>
|
||||
<element ref="switch8" inputtag="IN.4" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="33.375" width="1.5" height="1" /></element>
|
||||
<element ref="switch1" inputtag="IN.4" inputmask="0x0f" inputraw="yes"><bounds x="52.5" y="34.625" width="1.5" height="1" /></element>
|
||||
|
||||
<element ref="static_black"><bounds x="51.25" y="17.75" width="2" height="0.25" /></element>
|
||||
<element ref="static_black"><bounds x="51.25" y="19.00" width="2" height="0.25" /></element>
|
||||
|
@ -199,9 +199,9 @@ license:CC0
|
||||
<element ref="disk_black"><bounds x="8.5" y="18.9" width="0.5" height="0.5" /></element>
|
||||
<element ref="static_black"><bounds x="7.8" y="18.9" width="1.0" height="0.5" /></element>
|
||||
|
||||
<element ref="switch1" inputtag="IN.2" inputmask="0x07" inputraw="1"><bounds x="7.55" y="18.85" width="0.6" height="0.6" /></element>
|
||||
<element ref="switch2" inputtag="IN.2" inputmask="0x07" inputraw="1"><bounds x="8.00" y="18.85" width="0.6" height="0.6" /></element>
|
||||
<element ref="switch3" inputtag="IN.2" inputmask="0x07" inputraw="1"><bounds x="8.45" y="18.85" width="0.6" height="0.6" /></element>
|
||||
<element ref="switch1" inputtag="IN.2" inputmask="0x07" inputraw="yes"><bounds x="7.55" y="18.85" width="0.6" height="0.6" /></element>
|
||||
<element ref="switch2" inputtag="IN.2" inputmask="0x07" inputraw="yes"><bounds x="8.00" y="18.85" width="0.6" height="0.6" /></element>
|
||||
<element ref="switch3" inputtag="IN.2" inputmask="0x07" inputraw="yes"><bounds x="8.45" y="18.85" width="0.6" height="0.6" /></element>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -218,7 +218,7 @@ license:CC0
|
||||
<element ref="hl" inputtag="IN.2" inputmask="0x01"><bounds x="93.5" y="106.25" width="7" height="7" /><color alpha="0.2" /></element>
|
||||
<element ref="hl" inputtag="IN.3" inputmask="0x08"><bounds x="86.5" y="123" width="7" height="7" /><color alpha="0.2" /></element>
|
||||
|
||||
<element ref="switch_mode" inputtag="IN.5" inputmask="0x03" inputraw="1"><bounds x="56.5" y="140" width="7" height="7" /></element>
|
||||
<element ref="switch_mode" inputtag="IN.5" inputmask="0x03" inputraw="yes"><bounds x="56.5" y="140" width="7" height="7" /></element>
|
||||
<element ref="text_mode"><bounds x="45" y="148" width="30" height="4" /></element>
|
||||
|
||||
</view>
|
||||
|
Loading…
Reference in New Issue
Block a user