#
# Sprites are small drawings (somewhat like icons) which RoadMap will put
# on the screen in various roles.  Some move, some are stationary.
#
# Syntax of the sprite description:
# S <name>               Start a sprite.  The name is how RoadMap refers
#                           to the sprite.  These references are
#                           hard-coded into RoadMap.
# A <name>               Defines this sprite as an alias for another sprite.
#                        (An alias cannot itself have drawing directives).
# F <color> <thickness>  Start a new color plane.
# X <percent>            Optional scale factor, for resizing the entire sprite.
# L <x>,<y> ...          Defines a line.
# P <x>,<y> ...          Defines a (filled) polygon.
# C <x>,<y> <radius>     Defines a circle.
# D <x>,<y> <radius>     Defines a disk (i.e. a filled circle).
# B <x>,<y> <x>,<y>      Override the sprite's natural bounding box.
# T <x>,<y> <s> text...  Adds text to the sprite, of size 's'.  "text"
#                           can be ommitted, in cases where the sprite's
#                           text will be provided by a screen object
#                           definition.  Text strings are fixed, with
#                           no expansion of %-macros.
# TR                     If the sprite has text, supply a backing rectangle
#                           sized and positioned to match the text.
# TB                     If the sprite has text, supply a box outline around
#                           the text.
#
# The coordinates x and y are relative to the sprite's hot point.
# Positive x and y values are towards the south-east.
#
# The natural "direction" for the sprite is north (e.g., for an arrow).
#
# The bounding box of sprite is normally calculated internally,
# but can be overridden.  If a sprite has text associated with
# it, the text forms a second, separate, bounding box.  Currently
# these outlines are only used when sprite is referenced in
# "roadmap.screenobjects".  The bounding box can also be
# overridden there.
#
# We use aliases to separate a sprite's usage from its actual drawing. 
# This makes it easier to change the representation of a specific object.

S GPS
A BlueDart

S Friend
A GreenTriangle

S Selection
A CrossHair

S Direction
A RedArrow

S Destination
A RedDotCircle

S PointOfInterest
A SmallRedDot

S Waypoint
A DarkGreenDot

S Start
A GreenTrianglePointer

S RoutePoint
A Circle-Pointer

S SecondaryRoutePoint
A Small-Circle-Pointer

S PersonalLandmark
A 5PointStar

S TripLandmark
A GreenSquare

S Highlight
A YellowDot

S Kismet
A RedDisk

S Track
A PurpleChevron

S InactiveTrack
A SmallPurpleChevron

S BreadCrumb
A PurpleDot

S Departure
A DottedSquare

S Direction_Next
A BigGreenDart

S Direction_2nd
A BigYellowDart

S Direction_Dest
A BigRedDart

S ZoomIn
A CirclePlus

S ZoomOut
A CircleMinus

# The actual drawing sprites:

S BlueDart
F white 2
L 0,0 7,14 0,8 -7,14
F blue 1
P 0,1 6,13 0,10 -6,13
L 8,11 0,-3 -8,11

# same as "BlueDart", but with a bigger black
# outline for visibility on low-contrast displays

S OutlinedBlueDart
F white 2
L 0,0 7,14 0,8 -7,14
L 11,17 0,-3 -11,17 0,14 11,17
F blue 1
P 0,1 6,13 0,10 -6,13
F black 1
L 11,17 0,-3 -11,17 0,14 11,17

S GreenTriangle
F white 2
L 0,0 7,14 0,8 -7,14
F DarkGreen 2
L 0,1 6,13 0,10 -6,13 0,1

S PurpleTriangle
F Purple 1
P 0,-10 -9,5 9,5 0,-10

S CrossHair
F white 3
L 0,-10 0,-20
L 0,10 0,20
L 10,0 20,0
L -10,0 -20,0
C 0,0 15
F black 1
L 0,-10 0,-20
L 0,10 0,20
L 10,0 20,0
L -10,0 -20,0
C 0,0 15

S RedArrow
F red 1
P -5,-20 0,-35 5,-20
F black 1
L -5,-20 0,-35 5,-20 -5,-20

S RedDotCircle
F red 1
D 0,0 5
F black 1
C 0,0 5
C 0,0 7

S SmallRedDot
F red 1
D 0,0 3

S GreenTrianglePointer
F green 2
P 0,-9 -8,4 8,4 0,-9
F black 1
L 0,-9 -8,4 8,4 0,-9
L 1,-8 1,-16
L 1,-16 -1,-16
L -1,-16 -1,-8

S GreenDot
F green 1
D 0,0 5
F black 1
C 0,0 5

S DarkGreenDot
F darkgreen 1
D 0,0 5
F black 1
C 0,0 5

S GreenSquare
F black 1
L 5,5 5,-5 -5,-5 -5,5 5,5
F green 1
P 4,4 4,-4 -4,-4 -4,4 4,4

S PurpleChevron
F purple 2
L -4,6 0,-6 4,6

S SmallPurpleChevron
F purple 2
L -4,4 0,-4 4,4

S PurpleCross
F purple 2
L -4,0 4,0
L 0,-4 0,4

S PurpleDot
F purple 1
D 0,0 3

S 5PointStar
F darkred 1
L 0,-9 5,7
L 5,7 -8,-3
L -8,-3 8,-3
L 8,-3 -5,7
L -5,7 0,-9

S YellowDot
F yellow 1
D 0,0 5
F black 1
C 0,0 5

S RedDisk
F red 1
D 0,0 10

S Circle
F black 1
C 0,0 7

S Circle-Pointer
F green 1
D 0,0 7
F black 1
C 0,0 7
C 0,0 1
L 1,-7 1,-16
L 1,-16 -1,-16
L -1,-16 -1,-7

S Small-Circle-Pointer
F green 1
D 0,0 6
F black 1
C 0,0 6
L 1,-6 1,-16
L 1,-16 -1,-16
L -1,-16 -1,-6

S DottedSquare
F black 1
L 9,9 9,-9 -9,-9 -9,9 9,9
C 0,0 1


# These are very specific sprites we do not expect to change much.

S Compass
#F white 1
#D 0,0 13
F black 2
C 0,0 14
F white 1
C 0,0 15
F white 3
L -4,0 0,-13 4,0
L -4,0 0,13 4,0
F black 1
P -4,0 0,-13 4,0
F black 1
L -4,0 0,-13 4,0
L -4,0 0,13 4,0
L -17,0 -7,0
L 7,0 17,0
L 0,-13 0,-17
L 0,13 0,17

S Compass_fixed
A BigBlackDart

S BigBlackDart
F black 1
P -9,13 0,8 9,13 0,-13
F white 1
L 0,8 9,13 0,-13
L 0,8 -9,13 0,-13

S BigGreenDart
F green 1
P -9,13 0,8 9,13 0,-13
F black 2
L 0,8 9,13 0,-13
L 0,8 -9,13 0,-13

S BigYellowDart
F yellow 1
P -9,13 0,8 9,13 0,-13
F black 2
L 0,8 9,13 0,-13
L 0,8 -9,13 0,-13

S BigRedDart
F red 1
P -9,13 0,8 9,13 0,-13
F black 2
L 0,8 9,13 0,-13
L 0,8 -9,13 0,-13

S Download
#F white 1
#D 0,0 14
F white 1
C 0,0 9
F red 1
C 0,0 8
P -7,-6 -12,4 -2,4
P 7,6 12,-4 2,-4
F white 1
L -7,-6 -12,4
L -7,-6 -2,4
L 7,6 12,-4
L 7,6 2,-4
F black 2
C 0,0 14
F white 1
C 0,0 15


# GPS Indication symbols:
S Reception_na
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
F white 1
P -10,-5 -3,-12 0,-5 -2,-3
P 5,0 12,3 5,10 2,3
P 5,-10 10,-5 0,5 -5,0
F black 1
L -10,-5 -3,-12 0,-5 -2,-3 -10,-5
L 5,0 12,3 5,10 2,3 5,0
L 5,-10 10,-5 0,5 -5,0 5,-10
L -7,1 -6,3 -3,6 -1,7
L -10,1 -9,3 -3,9 -1,10
L -13,1 -12,3 -3,12 -1,13
F DarkRed 2
L -9,-9 9,9
L 9,-9 -9,9

S reception_none
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
F red 1
P -10,-5 -3,-12 0,-5 -2,-3
P 5,0 12,3 5,10 2,3
P 5,-10 10,-5 0,5 -5,0
F black 1
L -10,-5 -3,-12 0,-5 -2,-3 -10,-5
L 5,0 12,3 5,10 2,3 5,0
L 5,-10 10,-5 0,5 -5,0 5,-10
L -7,1 -6,3 -3,6 -1,7
L -10,1 -9,3 -3,9 -1,10
L -13,1 -12,3 -3,12 -1,13
F white 1
TR
F black 1
TB
F black 2
T 0,20 10

S reception_poor
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
F yellow 1
P -10,-5 -3,-12 0,-5 -2,-3
P 5,0 12,3 5,10 2,3
P 5,-10 10,-5 0,5 -5,0
F black 1
L -10,-5 -3,-12 0,-5 -2,-3 -10,-5
L 5,0 12,3 5,10 2,3 5,0
L 5,-10 10,-5 0,5 -5,0 5,-10
L -7,1 -6,3 -3,6 -1,7
L -10,1 -9,3 -3,9 -1,10
L -13,1 -12,3 -3,12 -1,13
F white 1
TR
F black 1
TB
F black 2
T 0,20 10

S reception_good
#F green 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
#F white 1
F green 1
P 10,-5 3,-12 0,-5 2,-3
P -5,0 -12,3 -5,10 -2,3
P -5,-10 -10,-5 0,5 5,0
F black 1
L 10,-5 3,-12 0,-5 2,-3 10,-5
L -5,0 -12,3 -5,10 -2,3 -5,0
L -5,-10 -10,-5 0,5 5,0 -5,-10
L 7,1 6,3 3,6 1,7
L 10,1 9,3 3,9 1,10
L 13,1 12,3 3,12 1,13 
F white 1
TR
F black 1
TB
F black 2
T 0,20 10

# Red X
S X
F DarkRed 4
L 4,4 20,20
L 20,4 4,20

S CirclePlus
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
F black 1
P -2,2 -2,12 2,12 2,2 12,2 12,-2 2,-2 2,-12 -2,-12 -2,-2 -12,-2 -12,2
F white 1
L -3,3 -3,12 3,12 3,3 12,3 12,-3 3,-3 3,-12 -3,-12 -3,-3 -12,-3 -12,3 -3,3

S CircleMinus
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
F black 1
P 12,2 12,-2 -12,-2 -12,2
F white 1
L 12,3 12,-3 -12,-3 -12,3 12,3

S Menu
#F white 1
#D 0,0 15
F black 2
C 0,0 15
F white 1
C 0,0 16
P -5,-8 6,-8 2,8 -9,8 -5,-8
P 6,-8 5,7 8,7  6,-8
F black 1
L -5,-8 6,-8 2,8 -9,8 -5,-8
L 5,7 8,7  6,-8
L -3,-5 3,-5
L -3,-3 2,-3
L -4,-1 2,-1
L -5,1 1,1
L -5,3 1,3
# uncomment to add a text label
# T 0,25 18 Menu

# an empty textbox, which can be used as a screenobject
S TextBox
F white 1
TR
F black 1
TB
F black 2
T 0,0 20

# an empty textbox, which can be used as a screenobject
S InfoBox
F lightgreen 1
TR
F black 1
TB
F darkgreen 2
T 0,0 20

