%!PS-Adobe-3.0
%%Title: Diplomacy Map (Hundred)
%%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
% 405 563 ALS Alsace
% 216 659 ANG Anglia
% 233 552 ANJ Anjou
% 248 420 ARA Aragon
% 205 443 ARA/NC Aragon (north coast)
% 270 409 ARA/SC Aragon (south coast)
% 87 503 ATL Atlantic
% 117 592 BCH Bristol Channel
% 159 517 BIS Bay of Biscay
% 206 550 BRT Brittany
% 286 607 CAL Calais
% 375 531 CAN Cantons
% 161 398 CAS Castile
% 334 538 CHA Charolais
% 331 503 DAU Dauphine
% 195 634 DEV Devon
% 339 576 DIJ Dijon
% 278 636 DOV Strait of Dover
% 182 595 ECH English Channel
% 318 623 FLA Flanders
% 347 672 FRI Friesland
% 227 470 GUY Guyenne
% 337 647 HOL Holland
% 127 670 IRI Irish Sea
% 285 488 LIM Limousin
% 228 636 LON London
% 369 564 LOR Lorraine
% 363 614 LUX Luxembourg
% 349 415 MED Mediterranean
% 94 782 MIN Minch
% 247 586 NMD Normandy
% 247 769 NTH North Sea
% 194 690 NUM Northumbria
% 207 706 NUM/EC Northumbria (east coast)
% 175 702 NUM/WC Northumbria (west coast)
% 282 536 ORL Orleanais
% 85 677 PAL The Pale
% 293 573 PAR Paris
% 250 495 POI Poitou
% 351 467 PRO Provence
% 393 489 SAV Savoy
% 164 743 SCO Scotland
% 273 452 TOU Toulouse
% 170 652 WAL Wales
% 295 682 WAS The Wash
% 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.3765 0 0 2.3765 68.82 355.14 ]
/BBox [ 0 0 148.2 204 ]
/FormDict 1 dict
/PaintProc {
dup /Matrix get exch /FormDict get begin
s
matrix invertmatrix concat
SeaBlue clippath fill
IncludeIsland
IncludeInternalBorders
IncludeConnections
r
end
} bind
>> def
/DrawMap {
PageSetup
SwitchToMapMode
MapForm execform
/Centers << Centers { pop true } forall >> def
UNOWNED
} bd
/VisitSupplies {
1 dict begin
/s xd
/HOL 342 631 s
/FLA 318 607 s
/GUY 217 453 s
/BRT 217 529 s
/CAL 277 593 s
/CAN 399 524 s
/DAU 318 486 s
/DIJ 318 576 s
/LON 214 628 s
/LUX 345 602 s
/NMD 251 567 s
/ORL 270 520 s
/PAR 308 556 s
/DEV 195 618 s
/SCO 186 720 s
/TOU 286 435 s
/CAS 161 381 s
end
} def
/VisitTerritories {
5 dict begin
/b xd
/g xd
/w xd
/l xd
/c xd
(HOL) 337 647 c
(ANG) 216 659 c
(FLA) 318 623 c
(GUY) 227 470 c
(BRT) 206 550 c
(CAL) 286 607 c
(FRI) 347 672 c
(CAS) 161 398 c
(LON) 228 636 c
(NMD) 247 586 c
(DEV) 195 634 c
(PRO) 351 467 c
(SAV) 393 489 c
(SCO) 164 743 c
(TOU) 273 452 c
(WAL) 170 652 c
(PAL) 85 677 c
(CAN) 375 531 l
(DAU) 331 503 l
(DIJ) 339 576 l
(LIM) 285 488 l
(LUX) 363 614 l
(ORL) 282 536 l
(PAR) 293 573 l
(POI) 250 495 l
(LOR) 369 564 l
(ANJ) 233 552 l
(CHA) 334 538 l
(ALS) 405 563 l
(BIS) 159 517 w
(BCH) 117 592 w
(DOV) 278 636 w
(ECH) 182 595 w
(IRI) 127 670 w
(MED) 349 415 w
(MIN) 94 782 w
(NTH) 247 769 w
(WAS) 295 682 w
(ATL) 87 503 w
(ARA) 248 420 g
(NUM) 194 690 g
(NUM/WC) 175 702 b
(NUM/EC) 207 706 b
(ARA/NC) 205 443 b
(ARA/SC) 270 409 b
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
{ DarkGreen 3 2 roll DrawAlias } bind
{ White 3 2 roll DrawAlias } bind
{ DarkGreen 3 2 roll DrawAlias } bind
{ pop pop pop } bind
VisitTerritories
r
} bd
/VisitPowers {
1 dict begin
/p xd
/UNOWNED (?) /Brown /White p
/BURGUNDY (B) /Maroon /White p
/ENGLAND (E) /Blue /White p
/FRANCE (F) /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
s
.5 .5 x
-35 -16 t
12 3 m 12 9 l 9 12 l 6 13 l 6 17 l % bow
9 17 l 9 23 l 2 22 l 7 16 l 6 16 l
1 22 l % bowsprit
6 27 l 12 37 l 15 45 l % front sail
19 44 l 19 48 l 16 48 l 15 49 l 19 49 l
19 55 l 20 55 l 20 49 l 24 49 l 23 48 l
20 48 l 20 44 l % front mast
24 43 l 24 34 l 27 29 l 33 29 l 33 32 l
25 32 l 28 39 l 31 51 l % mid sail left
35 50 l 35 54 l 30 54 l 29 55 l 35 55 l
35 63 l 36 63 l 36 56 l 36 55 l 42 55 l
41 54 l 36 54 l 36 50 l % mid mast
41 49 l 41 32 l 36 32 l 36 29 l 39 29 l
41 43 l % mid sail right
45 43 l 45 47 l 41 47 l 41 48 l 45 48 l
45 55 l 46 55 l 46 48 l 51 48 l 50 47 l
46 47 l 46 43 l % rear mast
48 43 l 49 28 l 51 28 l 51 31 l 54 33 l
54 23 l 57 26 l 57 22 l 56 21 l % rear sail and flag
56 15 l 59 12 l 59 7 l 57 4 l 55 3 l p % bow
s 4 w Contrast k r Paint f
r
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/FleetTroopBBox [
-12.6 .35 9.1 22.75
] def
/PaintArmy {
begin
.7 .7 x
0 8 t
s
.1667 .1667 x
-90 -46 t
39 3 m 37 8 l 32 12 l 32 25 l 27 38 l 34 46 l 34 54 l 26 63 l 16 59 l 16 52 l
19 41 l 13 28 l 12 37 l 6 49 l 5 60 l 1 69 l 7 78 l 8 90 l 12 93 l 19 91 l
30 80 l 38 86 l 45 97 l 50 123 l 58 133 l 65 135 l 67 146 l 75 153 l 69 160 l 57 159 l
72 169 l 84 166 l 84 158 l 78 150 l 82 148 l 82 144 l 88 141 l 82 135 l 79 131 l 80 126 l 82 122 l
90 118 l 93 129 l 106 136 l 104 142 l 116 137 l 123 136 l 129 132 l 139 127 l 144 124 l 141 115 l
134 111 l 126 115 l 119 115 l 129 106 l 133 94 l 133 84 l 136 78 l 135 71 l 155 61 l 157 55 l
149 34 l 137 25 l 130 25 l 131 33 l 134 36 l 148 47 l 145 54 l 132 56 l 125 39 l 120 17 l 127 11 l
132 3 l 118 3 l 117 12 l 111 18 l 115 49 l 100 49 l 96 42 l 77 48 l 69 48 l 63 36 l 76 22 l
81 9 l 76 5 l 70 10 l 71 18 l 53 31 l 55 42 l 41 37 l 37 23 l 43 12 l 49 7 l 49 3 l p
s 12 w Contrast k r Paint f
r
0 6 t
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ArmyTroopBBox [
-11.08 -.12 8.52 20.65
] 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
s
.5 .5 x
-35 -16 t
12 3 m 12 9 l 9 12 l 6 13 l 6 17 l % bow
9 17 l 9 23 l 2 22 l 7 16 l 6 16 l
1 22 l % bowsprit
6 27 l 12 37 l 15 45 l % front sail
19 44 l 19 48 l 16 48 l 15 49 l 19 49 l
19 55 l 20 55 l 20 49 l 24 49 l 23 48 l
20 48 l 20 44 l % front mast
24 43 l 24 34 l 27 29 l 33 29 l 33 32 l
25 32 l 28 39 l 31 51 l % mid sail left
35 50 l 35 54 l 30 54 l 29 55 l 35 55 l
35 63 l 36 63 l 36 56 l 36 55 l 42 55 l
41 54 l 36 54 l 36 50 l % mid mast
41 49 l 41 32 l 36 32 l 36 29 l 39 29 l
41 43 l % mid sail right
45 43 l 45 47 l 41 47 l 41 48 l 45 48 l
45 55 l 46 55 l 46 48 l 51 48 l 50 47 l
46 47 l 46 43 l % rear mast
48 43 l 49 28 l 51 28 l 51 31 l 54 33 l
54 23 l 57 26 l 57 22 l 56 21 l % rear sail and flag
56 15 l 59 12 l 59 7 l 57 4 l 55 3 l p % bow
s s 12 w Outer k r 4 w Contrast k r Paint f
r
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ControlledFleetTroopBBox [
-14 -1.05 10.5 24.15
] def
/PaintControlledArmy {
begin
.7 .7 x
0 8 t
s
.1667 .1667 x
-90 -46 t
39 3 m 37 8 l 32 12 l 32 25 l 27 38 l 34 46 l 34 54 l 26 63 l 16 59 l 16 52 l
19 41 l 13 28 l 12 37 l 6 49 l 5 60 l 1 69 l 7 78 l 8 90 l 12 93 l 19 91 l
30 80 l 38 86 l 45 97 l 50 123 l 58 133 l 65 135 l 67 146 l 75 153 l 69 160 l 57 159 l
72 169 l 84 166 l 84 158 l 78 150 l 82 148 l 82 144 l 88 141 l 82 135 l 79 131 l 80 126 l 82 122 l
90 118 l 93 129 l 106 136 l 104 142 l 116 137 l 123 136 l 129 132 l 139 127 l 144 124 l 141 115 l
134 111 l 126 115 l 119 115 l 129 106 l 133 94 l 133 84 l 136 78 l 135 71 l 155 61 l 157 55 l
149 34 l 137 25 l 130 25 l 131 33 l 134 36 l 148 47 l 145 54 l 132 56 l 125 39 l 120 17 l 127 11 l
132 3 l 118 3 l 117 12 l 111 18 l 115 49 l 100 49 l 96 42 l 77 48 l 69 48 l 63 36 l 76 22 l
81 9 l 76 5 l 70 10 l 71 18 l 53 31 l 55 42 l 41 37 l 37 23 l 43 12 l 49 7 l 49 3 l p
s s 36 w Outer k r 12 w Contrast k r Paint f
r
0 6 t
Offset aload pop m
MapUnitLetterFont z
Contrast Letter h
end
} bd
/ControlledArmyTroopBBox [
-12.48 -1.52 9.92 22.05
] 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
/Adjustment <<
/Steps [
{ /Count 0 def /Y 147.36 def false true } bind
{
Count 4 ge { false true } {
50 SplitString
/Count Count 1 add def /Y Y 12 sub def
410.4 Y m h
true false
} ifelse
} bind
{
50 SplitString [ exch {
410.4 87.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
410.4 87.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 50 SplitString pop true false } bind
]
/Start {
TextHeadingFont 12 y z
410.4 147.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 243.36 def false true } bind
{
Count 6 ge { false true } {
50 SplitString
/Count Count 1 add def /Y Y 12 sub def
410.4 Y m h
true false
} ifelse
} bind
{
50 SplitString [ exch {
410.4 159.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
410.4 159.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 50 SplitString pop true false } bind
]
/Start {
TextHeadingFont 12 y z
410.4 243.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 519.36 def false true } bind
{
Count 21 ge { false true } {
50 SplitString
/Count Count 1 add def /Y Y 12 sub def
410.4 Y m h
true false
} ifelse
} bind
{
50 SplitString [ exch {
410.4 255.36 m h
} /exec load ] cvx /Finish xd
true true
} bind
{
/Count 1 def /Finish {
410.4 255.36 m (... \() h
Count dup 1 add log iceiling string cvs h
( more\)) h
} bd false true
} bind
{ /Count Count 1 add def 50 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)
410.4 562.08 m h
TextTitleFont 24 y z
dup stringwidth pop dup 360 gt {
410.4 528 m
360 exch div dup 1 x exch
0 6.72 rmoveto h
1 exch div 1 x
} {
pop 410.4 534.72 m h
} ifelse
} bd
/Owner <<
/Steps [
{ /Count 0 def /Y 75.36 def false true } bind
{
Count 3 ge { false true } {
104 SplitString
/Count Count 1 add def /Y Y 12 sub def
21.6 Y m h
true false
} ifelse
} bind
{
104 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 104 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
/SwitchToTextMode {
InTextMode {
FinishReport /FinishReport { } def
} {
r /InTextMode true def
} ifelse
} bd
/SwitchToMapMode {
InTextMode {
FinishReport /FinishReport { } def
/InTextMode false def
s
1.0314 1.0314 x -42.47 -271.75 t ClipMap
ArrowColor
OkOrder
} if
} bd
/FrameMap {
s
/fk {
p
s 7.76 w Black k r
clipsave clip k cliprestore
} bd
1.0314 1.0314 x -42.47 -271.75 t
1.94 w LandBrown
OutlineChartBlue
r
} bd
/ClipMap {
/fk { p } bd
OutlineChartBlue
clip n
} bd
/IncludeIsland {
s
/fk {
p
s LandBrown f r
k
} bd
1 w BorderBlack
OutlineChartBrown
r
} bd
/IncludeInternalBorders {
s
/fk { k } bd
1 w [ 6 2 ] 3 d BorderBlack
OutlineChartBlack
r
} bd
/IncludeConnections {
s
/fk { k } bd
3 w Red
OutlineChartRed
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
/Maroon .8 0 0 r
/Blue 0 0 1 r
/Green 0 .7 0 r
/DarkGreen 0 .4 0 r
/Red 1 0 0 r
end
} def
/OutlineChartBlue {
68.82 839.94 m
68.82 355.14 l
421.02 355.14 l
421.02 457.68 l
421.02 579.66 l
413.52 592.74 l
384.72 572.04 l
381.78 578.52 l
381.78 622.26 l
365.88 655.56 l
365.88 675.36 l
356.34 678.48 l
356.34 839.94 l
68.82 839.94 l
fk
} bd
/OutlineChartBrown {
375.42 462.9 m
370.14 461.82 l
357.42 448.32 l
341.46 448.32 l
329.82 455.58 l
323.46 452.46 l
308.58 456.66 l
293.76 449.34 l
292.68 434.76 l
294.84 428.52 l
293.76 421.2 l
273.6 406.62 l
249.24 400.38 l
248.16 386.82 l
230.1 375.36 l
224.1 365.04 l
96.72 366.36 l
84.84 373.32 l
95.4 381.66 l
106.02 395.16 l
106.02 408.72 l
110.28 417.06 l
121.92 430.56 l
124.08 445.2 l
164.34 445.2 l
174.96 434.76 l
188.76 434.76 l
199.38 437.88 l
199.38 451.44 l
209.94 457.68 l
217.38 479.52 l
214.2 485.82 l
215.28 501.42 l
222.72 497.28 l
215.28 506.64 l
215.28 518.1 l
203.58 524.34 l
198.3 531.66 l
198.3 539.94 l
191.94 541.02 l
190.86 548.28 l
179.22 549.36 l
165.42 554.52 l
157.98 554.52 l
154.8 559.74 l
157.98 561.84 l
154.8 564.96 l
153.78 569.16 l
145.26 569.16 l
168.6 576.42 l
185.58 579.54 l
206.76 576.42 l
201.48 593.1 l
212.1 594.12 l
212.1 589.98 l
216.36 587.88 l
235.44 587.88 l
244.98 589.98 l
239.64 591 l
241.8 596.22 l
265.14 603.48 l
268.32 620.16 l
286.32 626.4 l
303.3 632.7 l
310.74 632.7 l
307.56 633.72 l
322.38 640.98 l
312.84 643.08 l
311.76 646.2 l
319.2 652.44 l
324.54 666 l
330.9 663.9 l
327.72 660.78 l
328.74 655.56 l
335.1 655.56 l
334.08 658.74 l
338.28 661.86 l
334.08 670.2 l
336.18 675.36 l
356.34 678.48 l
365.88 675.36 l
365.88 655.56 l
381.78 622.26 l
381.78 578.52 l
384.72 572.04 l
413.52 592.74 l
421.02 579.66 l
421.02 457.68 l
375.42 462.9 l
fk
233.28 688.92 m
223.74 701.4 l
214.2 704.52 l
206.76 720.18 l
186.66 734.76 l
177.12 733.74 l
177.12 737.88 l
186.66 738.9 l
183.48 745.2 l
201.48 766.02 l
199.38 772.26 l
172.86 774.36 l
159.06 768.06 l
153.78 773.28 l
163.32 776.4 l
156.96 779.52 l
174.96 787.86 l
177.12 793.08 l
142.08 788.94 l
133.62 782.7 l
136.8 778.5 l
128.28 773.28 l
127.26 764.94 l
132.54 767.04 l
131.46 761.82 l
126.18 751.44 l
119.82 750.36 l
129.36 746.22 l
134.64 749.34 l
130.44 735.78 l
132.54 730.56 l
127.26 719.16 l
130.44 720.18 l
138.9 734.76 l
143.16 734.76 l
146.34 735.78 l
144.24 728.52 l
148.44 723.3 l
142.08 711.84 l
138.9 710.82 l
142.08 704.52 l
145.26 709.74 l
151.62 705.6 l
155.88 709.74 l
173.88 711.84 l
170.7 707.7 l
167.52 701.4 l
173.88 691.02 l
182.4 695.16 l
179.22 686.82 l
181.32 686.82 l
179.22 680.58 l
181.32 680.58 l
177.12 675.36 l
165.42 676.44 l
148.44 662.88 l
157.98 666 l
159.06 659.76 l
161.16 658.74 l
157.98 650.4 l
137.82 642.06 l
139.98 636.84 l
151.62 638.94 l
159.06 634.74 l
163.32 637.86 l
172.86 631.62 l
186.66 640.98 l
179.22 628.5 l
159.06 627.48 l
131.46 601.44 l
139.98 601.44 l
149.52 608.7 l
167.52 606.66 l
171.78 616.02 l
187.2 607.14 l
211.02 618.06 l
209.94 622.26 l
219.54 620.16 l
244.98 620.16 l
266.16 628.5 l
262.98 630.6 l
248.16 631.62 l
248.16 635.82 l
251.34 635.82 l
250.26 640.98 l
258.78 638.94 l
257.7 644.16 l
264.06 646.2 l
267.24 654.54 l
261.96 666 l
244.98 664.98 l
240.72 662.88 l
235.44 662.88 l
241.8 673.32 l
229.08 681.66 l
230.1 685.8 l
237.54 683.7 l
236.46 686.82 l
233.28 688.92 l
fk
68.82 702.54 m
76.92 704.34 l
82.8 708.36 l
88.62 708.84 l
90.9 707.46 l
93.6 701.16 l
91.8 698.46 l
94.5 693.96 l
98.52 690.84 l
104.82 687.24 l
103.5 681.36 l
103.5 672.84 l
103.92 667.44 l
101.7 662.46 l
97.2 658.44 l
93.6 652.56 l
90.9 650.34 l
86.4 650.76 l
82.8 650.34 l
80.1 649.86 l
76.92 651.24 l
73.32 653.46 l
71.52 653.94 l
68.82 654.84 l
68.82 702.54 l
fk
} bd
/OutlineChartBlack {
84.84 355.14 m
84.84 373.32 l
fk
159.06 839.94 m
160.14 790.98 l
fk
103.02 687.66 m
138.9 710.82 l
fk
93 631.56 m
137.82 642.06 l
fk
99.9 562.56 m
145.26 569.16 l
fk
384.72 572.04 m
396.66 548.28 l
fk
214.2 704.52 m
197.22 653.52 l
202.56 647.28 l
209.94 622.26 l
fk
177.12 675.36 m
186.66 664.98 l
181.32 652.44 l
186.66 640.98 l
fk
197.22 653.52 m
181.32 652.44 l
fk
202.56 647.28 m
232.26 643.08 l
248.16 635.82 l
fk
173.88 711.84 m
206.76 720.18 l
fk
249.24 400.38 m
199.38 437.88 l
fk
421.02 520.2 m
407.22 522.24 l
399.84 511.86 l
391.32 521.22 l
387.12 522.24 l
382.86 514.98 l
362.7 510.78 l
363.78 496.2 l
fk
168.6 576.42 m
139.98 601.44 l
fk
235.44 587.88 m
219.54 620.16 l
fk
319.2 652.44 m
267.24 654.54 l
fk
215.28 518.1 m
230.1 521.22 l
248.16 527.46 l
252.42 550.38 l
248.4 558.96 l
242.52 567.96 l
228.6 570.24 l
211.02 570.18 l
206.76 576.42 l
fk
252.42 550.38 m
259.8 551.4 l
257.7 569.16 l
270.42 585.78 l
265.14 603.48 l
fk
259.8 551.4 m
281.04 563.94 l
296.94 553.5 l
301.2 532.68 l
315 522.24 l
322.2 545.46 l
324.54 563.94 l
293.76 593.1 l
270.42 585.78 l
fk
293.76 593.1 m
312.84 601.44 l
308.58 610.8 l
296.94 611.82 l
292.68 618.06 l
286.32 619.14 l
286.32 626.4 l
fk
315 522.24 m
311.76 511.86 l
267.24 510.78 l
248.16 527.46 l
fk
230.1 521.22 m
237.54 486.84 l
252.42 476.4 l
250.26 463.92 l
251.34 439.98 l
241.8 435.78 l
199.38 451.44 l
fk
250.26 463.92 m
270.42 475.38 l
267.24 510.78 l
fk
251.34 439.98 m
264.06 431.64 l
294.84 428.52 l
fk
270.42 475.38 m
296.94 464.94 l
310.74 456.66 l
fk
311.76 511.86 m
303.3 487.86 l
296.94 464.94 l
fk
303.3 487.86 m
323.46 477.48 l
363.78 496.2 l
fk
362.7 510.78 m
358.44 520.2 l
353.16 522.24 l
346.8 518.1 l
341.46 516 l
317.22 528.36 l
fk
363.78 496.2 m
359.52 488.94 l
362.7 488.94 l
362.7 479.52 l
366.96 471.24 l
375.42 472.26 l
375.42 462.9 l
fk
346.8 518.1 m
353.22 522.06 l
363.78 546.24 l
346.8 558.72 l
359.52 584.76 l
381.78 578.52 l
fk
363.78 546.24 m
396.66 548.28 l
fk
312.84 601.44 m
325.56 603.48 l
328.74 597.24 l
353.16 593.1 l
359.52 584.76 l
fk
325.56 603.48 m
338.28 620.16 l
337.26 630.6 l
323.46 634.74 l
310.74 632.7 l
fk
338.28 620.16 m
355.26 642.06 l
349.98 658.74 l
338.28 661.86 l
fk
355.26 642.06 m
365.88 655.56 l
fk
114.3 421.26 m
90.9 650.76 l
fk
221.82 569.76 m
219.12 563.46 l
218.22 555.36 l
211.92 548.16 l
219.12 539.16 l
225.9 534.66 l
233.52 533.34 l
250.2 537.36 l
fk
228.6 693.96 m
281.7 730.44 l
356.82 738.54 l
fk
396 547.26 m
421.02 536.94 l
fk
349.62 519.84 m
348.72 533.76 l
348.72 544.56 l
345.12 547.26 l
339.72 551.34 l
335.7 554.46 l
323.1 556.26 l
fk
} bd
/OutlineChartRed {
243.9 626.4 m
272.52 610.8 l
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
/BURGUNDYCENTER /BURGUNDY ld
/ENGLANDCENTER /ENGLAND ld
/FRANCECENTER /FRANCE ld
/Centers <<
{ pop pop true } bind
VisitSupplies
>> def
%%EndSetup
|