Subversion Repositories Projects

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
550 rain-er 1
###############################################################################
2
#
3
# map.pl -  Map definition
4
#
5
## Copyright (C) 2009  Rainer Walther  (rainerwalther-mail@web.de)
6
#
7
# Creative Commons Lizenz mit den Zusaetzen (by, nc, sa)
8
#
9
# Es ist Ihnen gestattet: 
10
#     * das Werk vervielfältigen, verbreiten und öffentlich zugänglich machen
11
#     * Abwandlungen bzw. Bearbeitungen des Inhaltes anfertigen
12
# 
13
# Zu den folgenden Bedingungen:
14
#     * Namensnennung.
15
#       Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
16
#     * Keine kommerzielle Nutzung.
17
#       Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.
18
#     * Weitergabe unter gleichen Bedingungen.
19
#       Wenn Sie den lizenzierten Inhalt bearbeiten oder in anderer Weise umgestalten,
20
#       verändern oder als Grundlage für einen anderen Inhalt verwenden,
21
#       dürfen Sie den neu entstandenen Inhalt nur unter Verwendung von Lizenzbedingungen
22
#       weitergeben, die mit denen dieses Lizenzvertrages identisch oder vergleichbar sind.
23
# 
24
# Im Falle einer Verbreitung müssen Sie anderen die Lizenzbedingungen, unter welche dieses
25
# Werk fällt, mitteilen. Am Einfachsten ist es, einen Link auf diese Seite einzubinden.
26
# 
27
# Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie die Einwilligung
28
# des Rechteinhabers dazu erhalten.
29
# 
30
# Diese Lizenz lässt die Urheberpersönlichkeitsrechte unberührt.
31
# 
32
# Weitere Details zur Lizenzbestimmung gibt es hier:
33
#   Kurzform: http://creativecommons.org/licenses/by-nc-sa/3.0/de/
34
#   Komplett: http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode
35
#
36
###############################################################################
37
##
38
# 2009-03-06 0.0.1 rw created
39
# 2009-04-01 0.1.0 rw RC1
40
# 2009-04-18 0.1.1 rw Select default map, if configured map does not exist
41
# 2009-07-22 0.1.2 rw Offset_x and Offset_y for adjustment of map calibration
42
# 2009-08-15 0.1.3 rw Tracking Antenne Home position added
43
#                     Player home position added
44
#                     Read map definition from XML file
45
#
46
###############################################################################
47
 
48
$Version{'map/map.pl'} = "0.1.3 - 2009-08-15";
49
 
50
use XML::Simple;             # http://search.cpan.org/dist/XML-Simple-2.18/lib/XML/Simple.pm
51
 
52
%Maps =
53
    (
54
    Default => {
55
        'Name' => "Default",
56
        'Size_X' => '800',
57
        'Size_Y' => '600',
58
        'File' => 'default-800.gif',
59
 
60
        'P1_x' => '71',               # calibration P1, P2
61
        'P1_y' => '472',
62
        'P2_x' => '500',
63
        'P2_y' => '103',
64
        'P1_Lat' => '48.856253',
65
        'P1_Lon' => '2.3500000',
66
        'P2_Lat' => '54.090153',
67
        'P2_Lon' => '12.133249',
68
 
69
        # 'Offset_x' =>  5,             # Optional Pixel offset MK to right
70
        # 'Offset_y' =>  5,             # Optional pixel offset MK to top
71
 
72
        # 'Home_Lat' => '54.090153',    # Optional home position for player
73
        # 'Home_Lon' => '12.133249',    # Optional home position for player
74
 
75
 
76
        # 'Track_Lat' => '49.685333',   # Optional Tracking Antenna pos
77
        # 'Track_Lon' => '10.950134',   # Optional Tracking Antenna pos
78
        # 'Track_Alt' => '500',         # Optional Tracking Antenna altitude
79
        # 'Track_Bearing' =>  10,       # Optional Tracking antenne direction
80
 
81
        #  'Border' => [ 555, 430,       # airfield border
82
        #              516, 555,
83
        #              258, 555,
84
        #              100, 300,
85
        #              580, 260,
86
        #              530, 94,
87
        #              627, 130,
88
        #              735, 300,
89
        #              680, 400,
90
        #              757, 470,
91
        #              720, 515,
92
        #              575, 420,
93
        #            ],
94
        },
95
    );
96
 
97
 
98
#
99
# load additional Maps from XML files
100
#
101
my $MapDir = $Cfg->{'map'}->{'MapDir'} || "map";
102
if ( -d $MapDir )
103
    {
104
    opendir DIR, $MapDir;
105
    my @Files = readdir DIR;
106
    @Files = grep /\.xml$/, @Files;
107
    closedir DIR;
108
 
109
    foreach $Xml (@Files)
110
        {
111
        my $MapConfigFile = "$MapDir/$Xml";
112
        if ( -f $MapConfigFile )
113
            {
114
            my $XmlMap = XMLin($MapConfigFile);
115
 
116
            foreach $Location (keys %{$XmlMap})
117
                {
118
                foreach $Key (keys %{$XmlMap->{$Location}} )
119
                    {
120
                    my $Value = $XmlMap->{$Location}->{$Key};
121
                    if ( $Key =~ /Border/i )
122
                        {
123
                        $Value =~ s/\s//g;
124
                        my @Border = split ',', $Value;
125
                        @{$Maps{$Location}->{$Key}}  = @Border;
126
                        }
127
                    else
128
                        {
129
                        $Maps{$Location}->{$Key}  = $Value;
130
                        }
131
                    }
132
                }
133
            }
134
        }
135
    }
136
 
137
 
138
#
139
# Die verwendete Karte
140
#
141
my $MapDefault = $Cfg->{'map'}->{'MapDefault'};
142
if ( defined $Maps{$MapDefault} )
143
    {
144
    $Maps{'Current'} = $Maps{$MapDefault};
145
    }
146
else
147
    {
148
    $Maps{'Current'} = $Maps{'Default'};
149
    print "Map \"$MapDefault\" not found in map.pl. Using \"Default\" map\n";
150
    }
151
 
152
 
153
#
154
# Todo: Karte automatisch anhand der aktuellen GPS Position auswählen
155
#
156
 
157
1;
158
 
159
__END__