%!PS-Adobe-3.0
%%Title: Diplomacy Map (pure map)
%%Creator: dpmap, using a map created with DPeye by Mario Huys (woelpad@yahoo.com)
%%DocumentPaperSizes: Letter
%%LanguageLevel: 2
%%Orientation: Landscape
%%Pages: (atend)
%%DocumentNeededResources: font Helvetica-Bold Courier Courier-Bold Times-Roman
%%EndComments
%%BeginDefaults
%%PageResources: font Helvetica-Bold Courier Courier-Bold Times-Roman
%%EndDefaults
% INFO
% 250 400 BER Berlin
% 396 217 CON Constantinople
% 133 344 LON London
% 367 344 MOS Moscow
% 104 217 PAR Paris
% 185 115 ROM Rome
% 315 115 VIE Vienna
% MAP
%%BeginSetup
/bd { bind def } bind def
/xd { exch def } bd
/ld { load def } bd
/ifloor { .001 add floor cvi } bd
/iceiling { .001 sub ceiling cvi } bd
/min { 2 copy gt { exch } if pop } bd
/max { 2 copy lt { exch } if pop } bd
/secure_atan { 2 copy 0 eq exch 0 eq and { pop pop 0 } { atan } ifelse } bd
/center { 3 2 roll add 2 div 3 1 roll add 2 div exch } bd
/a /arc ld
/c /curveto ld
/d /setdash ld
/f /fill ld
/h /show ld
/k /stroke ld
/l /lineto ld
/m /moveto ld
/n /newpath ld
/o /rotate ld
/p /closepath ld
/r /grestore ld
/s /gsave ld
/t /translate ld
/w /setlinewidth ld
/x /scale ld
/y /scalefont ld
/z /setfont ld
%%IncludeResource: font Helvetica-Bold
/MapNameFont /Helvetica-Bold findfont 14 y def
/Powers 20 dict def
%%IncludeResource: font Helvetica-Bold
/MapUnitLetterFont /Helvetica-Bold findfont 14 y def
%%IncludeResource: font Courier
/TextFixedFont /Courier findfont def
%%IncludeResource: font Courier-Bold
/TextHeadingFont /Courier-Bold findfont def
%%IncludeResource: font Times-Roman
/TextTitleFont /Times-Roman findfont def
/PageSetup {
612 0 t
90 o
/FinishReport { } def /InTextMode true def
Black
MovePhase
} bd
/ShowPage {
DrawAliases
DrawRemainingCenters
InTextMode { FinishReport } { r } ifelse
FrameMap
showpage
} bd
/MapForm <<
/FormType 1
/Matrix [ 2.1324 0 0 2.1324 22 25 ]
/BBox [ 0 0 221.35 204 ]
/FormDict 1 dict
/PaintProc {
dup /Matrix get exch /FormDict get begin
s
matrix invertmatrix concat
SeaBlue 22 25 472 435 rectfill
IncludeRays
IncludeCore
IncludeIslands
r
end
} bind
>> def
/DrawMap {
PageSetup
SwitchToMapMode
MapForm execform
/Centers << Centers { pop true } forall >> def
UNOWNED
} bd
/VisitSupplies {
1 dict begin
/s xd
/BER 250 380 s
/MOS 367 324 s
/CON 396 197 s
/VIE 315 95 s
/ROM 185 95 s
/PAR 104 197 s
/LON 133 324 s
end
} def
/VisitTerritories {
1 dict begin
/i xd
(BER) 250 400 i
(CON) 396 217 i
(LON) 133 344 i
(MOS) 367 344 i
(PAR) 104 217 i
(ROM) 185 115 i
(VIE) 315 115 i
end
} def
/DrawSupplies {
SwitchToMapMode
UNOWNEDCENTER
{ SupplyCenters 3 1 roll 4 3 roll supply } bind
VisitSupplies
} bd
/DrawAlias {
SwitchToMapMode
s
3 1 roll t
.7 .7 x
0 -14 t
MapNameFont z
dup stringwidth pop -2 div 0 neg m h
r
} bd
/DrawName {
pop pop pop
} bd
/DrawAliases {
NameTerritories
} bd
/NameTerritories {
SwitchToMapMode
s
{ DarkGreen 3 2 roll DrawAlias } bind
VisitTerritories
r
} bd
/VisitPowers {
1 dict begin
/p xd
/UNOWNED (?) /Brown /White p
/ENGLAND (E) /Blue /White p
/FRANCE (F) /Turquoise /Black p
/GERMANY (G) /Black /White p
/RUSSIA (R) /White /Black p
/TURKEY (T) /Yellow /Black p
/AUSTRIA (A) /Red /Black p
/ITALY (I) /Green /Black p
end
} def
/CreateTroop {
<<
/BBox 4 3 roll
/PaintProc 5 4 roll
6 5 roll {} forall
/FormType 1
/Matrix matrix
>>
} bd
/CreateTroops {
<< 3 1 roll Powers {
3 index 3 index CreateTroop 4 2 roll
} forall pop pop >>
} bd
/PaintFleet {
begin
.7 .7 x
0 8 t
-26 -7 m -26 -2 l -19 -2 l -19 -1 l % to bow
-22 -1 l -22 0 l -15 0 l -15 1 l % A turret
-18 1 l -18 2 l -10 2 l -10 0 l % B turret
-9 0 l -9 4 l -8 4 l -8 6 l % conn tower
-6 6 l -6 5 l -5 5 l -5 9 l % Infra struct
-3 9 l -3 14 l -2 14 l -2 9 l % funnel 1
0 9 l 0 5 l 1 5 l 1 8 l % funnel 2
3 8 l 3 13 l 4 13 l 4 8 l % mast 2
6 8 l 6 0 l 8 0 l 8 2 l % funnel 2
16 2 l 16 1 l 13 1 l 13 0 l % C turret
20 0 l 20 -1 l 17 -1 l 17 -2 l % D turret
23 -2 l 23 -3 l 25 -3 l 25 -5 l % stern
24 -5 l 24 -7 l p
s 2 w Contrast k r Paint f
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/FleetTroopBBox [
-18.9 0 18.2 16.1
] def
/PaintArmy {
begin
.7 .7 x
0 8 t
n 0 0 9 0 360 a p % wheel
2 w Contrast k
-20 7 m 10 7 l 10 3 l 14 3 l
14 1 l -16 1 l -16 3 l -20 3 l p % barrel
4 2 m 24 -8 l 26 -8 l 18 -8 l -2 2 l % carriage
s 2 w Contrast k r Paint f
n 0 0 9 0 360 a p % wheel
Paint f
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ArmyTroopBBox [
-14.7 -1.4 18.9 12.6
] def
/DrawFleet {
SwitchToMapMode
s t
FleetTroops Power get execform
r
} bd
/DrawArmy {
SwitchToMapMode
s t
ArmyTroops Power get execform
r
} bd
/DrawRemainingCenters {
SwitchToMapMode
UNOWNED
Centers {
{ load exec supply } { pop } ifelse
} forall
} bd
/PaintSupply {
begin
.7 .7 x
Paint
n 0 0 6 0 360 a f
end
} bd
/SupplyCenterBBox [
-4.2 -4.2 4.2 4.2
] def
/supply {
SwitchToMapMode
Centers exch false put
s t
Power get execform
r
} bd
/GetControlledPower {
1 index dup length string cvs 1 index dup length string cvs
1 index length dup 2 index length add 1 add string
dup 0 6 5 roll putinterval dup 2 index 124 put dup 3 2 roll 1 add 4 3 roll putinterval cvn
3 1 roll Powers 3 index known {
pop pop
} {
8 dict dup begin
exch Powers exch get /Paint get /Outer xd
Powers 2 index get { def } forall
end
dup ControlledFleetTroopBBox /PaintControlledFleet load CreateTroop FleetTroops 4 index 3 2 roll put
dup ControlledArmyTroopBBox /PaintControlledArmy load CreateTroop ArmyTroops 4 index 3 2 roll put
dup ControlledSupplyCenterBBox /PaintControlledSupply load CreateTroop SupplyCenters 4 index 3 2 roll put
Powers 2 index 3 2 roll put
[ /Power 3 index 4 3 roll {
ChangeController {
Power GetControlledPower exch
/ChangeController false def
} if pop
} bind /exec load /def load ] cvx 2 index xd
} ifelse
} bd
/PaintControlledFleet {
begin
.7 .7 x
0 8 t
-26 -7 m -26 -2 l -19 -2 l -19 -1 l % to bow
-22 -1 l -22 0 l -15 0 l -15 1 l % A turret
-18 1 l -18 2 l -10 2 l -10 0 l % B turret
-9 0 l -9 4 l -8 4 l -8 6 l % conn tower
-6 6 l -6 5 l -5 5 l -5 9 l % Infra struct
-3 9 l -3 14 l -2 14 l -2 9 l % funnel 1
0 9 l 0 5 l 1 5 l 1 8 l % funnel 2
3 8 l 3 13 l 4 13 l 4 8 l % mast 2
6 8 l 6 0 l 8 0 l 8 2 l % funnel 2
16 2 l 16 1 l 13 1 l 13 0 l % C turret
20 0 l 20 -1 l 17 -1 l 17 -2 l % D turret
23 -2 l 23 -3 l 25 -3 l 25 -5 l % stern
24 -5 l 24 -7 l p
s s 6 w Outer k r 2 w Contrast k r Paint f
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ControlledFleetTroopBBox [
-20.3 -1.4 19.6 17.5
] def
/PaintControlledArmy {
begin
.7 .7 x
0 8 t
n 0 0 9 0 360 a p % wheel
s 6 w Outer k r 2 w Contrast k
-20 7 m 10 7 l 10 3 l 14 3 l
14 1 l -16 1 l -16 3 l -20 3 l p % barrel
4 2 m 24 -8 l 26 -8 l 18 -8 l -2 2 l % carriage
s s 6 w Outer k r 2 w Contrast k r Paint f
n 0 0 9 0 360 a p % wheel
Paint f
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ControlledArmyTroopBBox [
-16.1 -2.8 20.3 14
] def
/PaintControlledSupply {
begin
.7 .7 x
Outer
n 0 0 10 0 360 a f
Contrast
n 0 0 8 0 360 a f
Paint
n 0 0 6 0 360 a f
end
} bd
/ControlledSupplyCenterBBox [
-7 -7 7 7
] def
/Controls {
/ChangeController true def
} bd
/SetArrowStateOk {
[] 0 d
} bd
/OkOrder {
/SetArrowState /SetArrowStateOk ld
} bd
/SetArrowStateFailed {
[4 6] 2 d
} bd
/FailedOrder {
/SetArrowState /SetArrowStateFailed ld
} bd
/MovePhase {
/ArrowColor /ArrowBlack ld
/ArrowBase 20 def
/TraceArrowHead /TraceSingleArrowHead ld
InTextMode not { ArrowColor } if
} bd
/RetreatPhase {
/ArrowColor /ArrowRed ld
/ArrowBase 39.8 def
/TraceArrowHead /TraceDoubleArrowHead ld
InTextMode not { ArrowColor } if
} bd
/ProposePhase {
/ArrowColor /ArrowWhite ld
/ArrowBase 39.8 def
/TraceArrowHead /TraceDoubleArrowHead ld
InTextMode not { ArrowColor } if
} bd
/TraceSingleArrowHead {
% draw the arrow head ...
n
dup -5 m
dup 20 add 0 l
dup 5 l
p
} bd
/TraceDoubleArrowHead {
% draw the double arrow head ...
n
dup -5 m
dup 19.8 add
dup -1 l
dup -5 l
dup 20 add 0 l
dup 5 l
1 l
dup 5 l
p
} bd
/PaintArrowMove {
s
3 index 3 index t
3 2 roll sub 3 1 roll exch sub exch
2 copy dup mul exch dup mul add sqrt 3 1 roll exch secure_atan
.7 .7 x
0 8 t
o
.7 div ArrowBase sub
% if base of arrow is long enough, shorten it enough
% to e.g. move arrow start beyond support circle
dup 14 gt {
14 14 0 t sub
} {
0 t 0
} ifelse
% if base is still too long, shorten it some more
% to make arrow head touch support circle
dup 14 gt {
14 sub
} {
pop 0
} ifelse
1 w
TraceArrowHead
k
% now the shaft ...
2 w
0 0 m
0 l
k
r
} bd
/PaintArrowCircle {
s
5 1 roll
3 index 3 index t
3 2 roll sub 3 1 roll exch sub exch
2 copy dup mul exch dup mul add sqrt 3 1 roll exch secure_atan
.7 .7 x
0 8 t
o
.7 div
1 index sub
% if base of arrow is long enough, shorten it enough
% to e.g. move arrow start beyond support circle
dup 14 gt {
14 14 0 t sub
} {
0 t 0
} ifelse
% draw the circle ...
1 w
n
2 copy add 0 4 3 roll 0 360 a
p k
% now the shaft ...
2 w
0 0 m
0 l
k
r
} bd
/ArrowMove {
SwitchToMapMode
s
SetArrowState
PaintArrowMove
r
} bd
/ArrowHold {
SwitchToMapMode
s
SetArrowState
24 PaintArrowCircle
r
} bd
/ArrowSupport {
SwitchToMapMode
s
SetArrowState
center
8 PaintArrowCircle
r
} bd
/ArrowConvoy {
SwitchToMapMode
s
SetArrowState
center
12 PaintArrowCircle
r
} bd
/ArrowRetreat {
RetreatPhase
ArrowMove
MovePhase
} bd
/ArrowPropose {
ProposePhase
ArrowMove
MovePhase
} bd
/BuildUnit {
SwitchToMapMode
s
t
ArrowWhite
.7 .7 x
0 8 t
6 w [ 3.14 6.28 ] 1.57 d
n
0 0 24 0 360 a
p k
r
} bd
/SlashUnit {
s
3 1 roll t
.7 .7 x
0 8 t
n
-21 -16 m
11 16 l
21 16 l
-11 -16 l
p
exec
r
} bd
/DestroyUnit {
SwitchToMapMode
{ ArrowRed f } SlashUnit
} bd
/DisbandUnit {
SwitchToMapMode
{ s ArrowWhite f r 1 w ArrowRed k } SlashUnit
} bd
/RemoveUnit {
SwitchToMapMode
{ ArrowWhite f } SlashUnit
} bd
/QueryUnit {
SwitchToMapMode
s
t
ArrowWhite
.7 .7 x
0 8 t
4 w
-12 4 m
-8 7 -4 7 0 4 c
4 1 8 1 12 4 c
-12 -4 m
-8 -1 -4 -1 0 -4 c
4 -7 8 -7 12 -4 c
k
r
} bd
/PaintArrowArrive {
s
t
.7 .7 x
0 8 t
180 rotate 54 ArrowBase add neg 0 t
40
1 w
TraceArrowHead
k
% now the shaft ...
2 w
0 0 m
0 l
k
-10 0 m -20 0 l
-30 0 m -40 0 l
k
r
} bd
/PaintArrowArriveFleet {
2 copy
PaintArrowArrive
SetArrowStateOk
exch 0 44 ArrowBase add add .7 mul add exch 10.08 add t
.8 .8 x
FleetTroops Power get execform
} bd
/PaintArrowArriveArmy {
2 copy
PaintArrowArrive
SetArrowStateOk
exch 0 44 ArrowBase add add .7 mul add exch 10.08 add t
.8 .8 x
ArmyTroops Power get execform
} bd
/PaintArrowDepart {
s
t
.7 .7 x
0 8 t
-54 0 t
40
2 w
0 0 m
0 l
-10 0 m -20 0 l
-30 0 m -40 0 l
k
r
} bd
/ArrowDepart {
SwitchToMapMode
s
SetArrowState
PaintArrowDepart
r
} bd
/ArrowArriveFleet {
SwitchToMapMode
s
SetArrowState
PaintArrowArriveFleet
r
} bd
/ArrowArriveArmy {
SwitchToMapMode
s
SetArrowState
PaintArrowArriveArmy
r
} bd
/ArrowSupportArrive {
2 copy exch 89.6 add exch ArrowSupport
} bd
/ArrowSupportDepart {
2 copy exch 61.6 sub exch ArrowSupport
} bd
/ArrowConvoyArrive {
2 copy exch 89.6 add exch ArrowConvoy
} bd
/ArrowConvoyDepart {
2 copy exch 61.6 sub exch ArrowConvoy
} bd
/ArrowRefugeFleet {
RetreatPhase
ArrowArriveFleet
MovePhase
} bd
/ArrowRefugeArmy {
RetreatPhase
ArrowArriveArmy
MovePhase
} bd
/ArrowFlee {
RetreatPhase
ArrowDepart
MovePhase
} bd
/FindUnit {
SwitchToMapMode
s
t
ArrowBlue
.7 .7 x
0 8 t
6 w [ 3.14 6.28 ] 1.57 d
n
0 0 24 0 360 a
p k
r
} bd
/FindArriveUnit {
SwitchToMapMode
s
exch 44.8 add exch 10.08 add t
.8 .8 x
0 0 FindUnit
r
} bd
/LoseUnit {
SwitchToMapMode
s
t
ArrowBlue
.7 .7 x
0 8 t
4 w
-12 4 m
-8 7 -4 7 0 4 c
4 1 8 1 12 4 c
-12 -4 m
-8 -1 -4 -1 0 -4 c
4 -7 8 -7 12 -4 c
k
r
} bd
/LoseArriveUnit {
SwitchToMapMode
s
exch 44.8 add exch 10.08 add t
.8 .8 x
0 0 LoseUnit
r
} bd
/SplitString {
7 dict begin
/nrChars xd
/indentLength xd
/objectString xd
/objectLast objectString length 1 sub def
% Short string?
objectLast nrChars lt {
false objectString
} {
% Look for a suitable place to split.
% First tracking backwards, if that doesn't work, look forward.
/splitIndex -1 def
nrChars -1 0 {
objectString 1 index get 32 eq {
/splitIndex xd exit
} if pop
} for splitIndex -1 eq {
nrChars 1 add 1 objectLast {
objectString 1 index get 32 eq {
/splitIndex xd exit
} if pop
} for
} if
splitIndex -1 eq splitIndex objectLast eq or {
false objectString
} {
% The first part.
objectString 0 splitIndex getinterval
% The second part.
objectString splitIndex 1 add objectLast splitIndex sub getinterval
% Add indentation if needed.
indentLength 0 gt {
dup length indentLength add string
0 1 indentLength 1 sub { 1 index exch 32 put } for
dup indentLength 4 3 roll putinterval
} if
% Add white space of the first part.
/nonSpaceIndex objectLast 1 add def
0 1 objectLast {
objectString 1 index get 32 ne {
/nonSpaceIndex xd exit
} if pop
} for
nonSpaceIndex 0 gt nonSpaceIndex splitIndex lt and {
dup length nonSpaceIndex add string
dup 0 objectString 0 nonSpaceIndex getinterval putinterval
dup nonSpaceIndex 4 3 roll putinterval
} if
exch true exch
} ifelse
} ifelse
end
} bd
/DrawLayoutBorders {
s
TextFixedFont 12 y z
r
} bd
/Owner <<
/Steps [
{ /Count 0 def /Y 159.36 def false true } bind
{
Count 10 ge { false true } {
63 SplitString
/Count Count 1 add def /Y Y 12 sub def
21.6 Y m h
true false
} ifelse
} bind
{
63 SplitString [ exch {
21.6 27.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
21.6 27.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 63 SplitString pop true false } bind
]
/Start {
TextFixedFont 12 y z
/StepIndex 0 def
/Step Steps 0 get def
/Finish { } def
} bind
/Write {
19 {
Step {
/StepIndex StepIndex 1 add def
/Step Steps StepIndex get def
} if { not { exit } if () } if
} loop
} bind
>> def
/OwnerReport {
SwitchToTextMode
Owner begin Start end
/FinishReport /FinishOwnerReport load def
} bd
/WriteOwner {
Owner begin Write end
} bd
/FinishOwnerReport {
Owner begin Finish end
} bd
/Adjustment <<
/Steps [
{ /Count 0 def /Y 171.36 def false true } bind
{
Count 11 ge { false true } {
39 SplitString
/Count Count 1 add def /Y Y 12 sub def
489.6 Y m h
true false
} ifelse
} bind
{
39 SplitString [ exch {
489.6 27.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
489.6 27.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 39 SplitString pop true false } bind
]
/Start {
TextHeadingFont 12 y z
489.6 171.36 moveto
(Adjustments) h
TextFixedFont 12 y z
/StepIndex 0 def
/Step Steps 0 get def
/Finish { } def
} bind
/Write {
19 {
Step {
/StepIndex StepIndex 1 add def
/Step Steps StepIndex get def
} if { not { exit } if () } if
} loop
} bind
>> def
/AdjustReport {
SwitchToTextMode
Adjustment begin Start end
/FinishReport /FinishAdjustReport load def
} bd
/WriteAdjust {
Adjustment begin Write end
} bd
/FinishAdjustReport {
Adjustment begin Finish end
} bd
/Retreat <<
/Steps [
{ /Count 0 def /Y 291.36 def false true } bind
{
Count 8 ge { false true } {
39 SplitString
/Count Count 1 add def /Y Y 12 sub def
489.6 Y m h
true false
} ifelse
} bind
{
39 SplitString [ exch {
489.6 183.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
489.6 183.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 39 SplitString pop true false } bind
]
/Start {
TextHeadingFont 12 y z
489.6 291.36 moveto
(Retreats) h
TextFixedFont 12 y z
/StepIndex 0 def
/Step Steps 0 get def
/Finish { } def
} bind
/Write {
17 {
Step {
/StepIndex StepIndex 1 add def
/Step Steps StepIndex get def
} if { not { exit } if () } if
} loop
} bind
>> def
/RetreatReport {
SwitchToTextMode
Retreat begin Start end
/FinishReport /FinishRetreatReport load def
} bd
/WriteRetreat {
Retreat begin Write end
} bd
/FinishRetreatReport {
Retreat begin Finish end
} bd
/Order <<
/Steps [
{ /Count 0 def /Y 531.36 def false true } bind
{
Count 18 ge { false true } {
39 SplitString
/Count Count 1 add def /Y Y 12 sub def
489.6 Y m h
true false
} ifelse
} bind
{
39 SplitString [ exch {
489.6 303.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
489.6 303.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 39 SplitString pop true false } bind
]
/Start {
TextFixedFont 12 y z
/StepIndex 0 def
/Step Steps 0 get def
/Finish { } def
} bind
/Write {
6 {
Step {
/StepIndex StepIndex 1 add def
/Step Steps StepIndex get def
} if { not { exit } if () } if
} loop
} bind
>> def
/OrderReport {
SwitchToTextMode
Order begin Start end
/FinishReport /FinishOrderReport load def
} bd
/WriteOrder {
Order begin Write end
} bd
/FinishOrderReport {
Order begin Finish end
} bd
/DrawTitle {
SwitchToTextMode
TextTitleFont 36 y z
(Diplomacy)
489.6 562.08 m h
TextTitleFont 24 y z
dup stringwidth pop dup 280.8 gt {
489.6 528 m
280.8 exch div dup 1 x exch
0 6.72 rmoveto h
1 exch div 1 x
} {
pop 489.6 534.72 m h
} ifelse
} bd
/SwitchToTextMode {
InTextMode {
FinishReport /FinishReport { } def
} {
r /InTextMode true def
} ifelse
} bd
/SwitchToMapMode {
InTextMode {
FinishReport /FinishReport { } def
/InTextMode false def
s
26.6 173.59 443.6 408.83 rectclip .9398 .9398 x 6.3 159.7 t
ArrowColor
OkOrder
} if
} bd
/FrameMap {
s
2 w LandBrown
23.6 170.59 m 473.2 170.59 l 473.2 585.41 l 23.6 585.41 l
p
s 8 w Black k r
clipsave clip k cliprestore
r
} bd
/IncludeRays {
s
/fk { k } bd
2.5 w [ 3 3 ] 1.5 d BorderBlack
ShapeRays
r
} bd
/IncludeCore {
s
/fk {
p
s SeaBlue f r
k
} bd
2.5 w [ 3 3 ] 1.5 d BorderBlack
ShapeCore
r
} bd
/IncludeIslands {
s
/fk {
p
s LandBrown f r
k
} bd
2.5 w BorderBlack
ShapeIslands
r
} bd
/VisitColors {
3 dict begin
/c xd /r xd /g xd
/BorderBlack .1 g
/MountainGrey .5 g
/IceGrey .9 g
/ArrowBlack 0 g
/ArrowWhite .9 g
/Black 0 g
/White .9 g
/LandBrown .8 .7 .4 r
/SeaBlue .1 .4 .6 r
/LandGreen 0 .4 0 r
/SeaWhite 1 1 1 r
/ArrowRed 1 0 0 r
/ArrowBlue .529 .808 .922 r
/Brown .6 .45 .2 r
/Blue 0 0 1 r
/Turquoise .2 .7 .7 r
/Yellow 1 1 0 r
/Red 1 0 0 r
/Green 0 .7 0 r
/DarkGreen 0 .4 0 r
end
} def
/ShapeRays {
250 250 m
250 400 l
250 250 m
367 344 l
250 250 m
396 217 l
250 250 m
315 115 l
250 250 m
185 115 l
250 250 m
104 217 l
250 250 m
133 344 l
fk
} bd
/ShapeCore {
285 250 m 250 250 35 0 360 a
fk
} bd
/ShapeIslands {
285 400 m 250 400 35 0 360 a
402 344 m 367 344 35 0 360 a
431 217 m 396 217 35 0 360 a
350 115 m 315 115 35 0 360 a
220 115 m 185 115 35 0 360 a
139 217 m 104 217 35 0 360 a
168 344 m 133 344 35 0 360 a
fk
} bd
{
currentdict end 3 1 roll [ exch /setgray load ] cvx def begin
}{
currentdict end 5 1 roll [ 4 1 roll /setrgbcolor load ] cvx def begin
}{
currentdict end 6 1 roll [ 5 1 roll /setcmykcolor load ] cvx def begin
} bind VisitColors
/ChangeController false def
s
MapUnitLetterFont z
{
exch load exch load
2 index [ exch n 0 0 m true charpath pathbbox 3 2 roll add -2 div 3 1 roll add -2 div exch ] 3 1 roll
4 dict begin /Contrast xd /Paint xd /Offset xd /Letter xd currentdict end
currentdict end 3 1 roll
Powers 2 index 3 2 roll put
[ /Power 2 index { ChangeController { Power GetControlledPower /ChangeController false def } if } bind /exec load /def load ] cvx def
begin
} VisitPowers
r
/FleetTroops FleetTroopBBox /PaintFleet load CreateTroops def
/ArmyTroops ArmyTroopBBox /PaintArmy load CreateTroops def
/SupplyCenters SupplyCenterBBox /PaintSupply load CreateTroops def
{ currentdict end 4 1 roll [ SupplyCenters 4 2 roll 4 index ] cvx def begin } bind
VisitSupplies
/UNOWNEDCENTER /UNOWNED ld
/ENGLANDCENTER /ENGLAND ld
/FRANCECENTER /FRANCE ld
/GERMANYCENTER /GERMANY ld
/RUSSIACENTER /RUSSIA ld
/TURKEYCENTER /TURKEY ld
/AUSTRIACENTER /AUSTRIA ld
/ITALYCENTER /ITALY ld
/Centers <<
{ pop pop true } bind
VisitSupplies
>> def
%%EndSetup
|