DPjudge Map Files
about the DPjudge | the DPPD | common questions
File hundred.ps
 
%!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


 
The DPjudge is copyright © 1995-2024 by Manus Hand. All rights reserved.