summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Travel/Status/DE/DBWagenreihung/Wagon.pm27
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm b/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
index a9aa6a4..f5a14e2 100644
--- a/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
+++ b/lib/Travel/Status/DE/DBWagenreihung/Wagon.pm
@@ -68,14 +68,15 @@ sub attributes {
return @{ $self->{attributes} // [] };
}
+# See also:
+# https://de.wikipedia.org/wiki/UIC-Bauart-Bezeichnungssystem_f%C3%BCr_Reisezugwagen#Kennbuchstaben
+# https://www.deutsche-reisezugwagen.de/lexikon/erklarung-der-gattungszeichen/
sub parse_type {
my ($self) = @_;
my $type = $self->{type};
my @desc;
-# Thanks to <https://www.deutsche-reisezugwagen.de/lexikon/erklarung-der-gattungszeichen/>
-
if ( $type =~ m{^D} ) {
$self->{is_dosto} = 1;
push( @desc, 'Doppelstock' );
@@ -88,7 +89,7 @@ sub parse_type {
if ( $type =~ m{d} ) {
$self->{has_multipurpose} = 1;
- push( @desc, 'Mehrzweckraum' );
+ push( @desc, 'Mehrzweck' );
}
if ( $type =~ m{f} ) {
@@ -97,12 +98,11 @@ sub parse_type {
if ( $type =~ m{i} ) {
$self->{is_interregio} = 1;
- push( @desc, 'Interregiowagen' );
+ push( @desc, 'Interregio' );
}
- if ( $type =~ m{m} ) {
-
- # ?
+ if ( $type =~ m{mm} ) {
+ push( @desc, 'modernisiert' );
}
if ( $type =~ m{p} ) {
@@ -111,11 +111,22 @@ sub parse_type {
push( @desc, 'Großraum' );
}
+ if ( $type =~ m{s} ) {
+ push( @desc, 'Sonderabteil' );
+ }
+
if ( $type =~ m{v} ) {
$self->{has_ac} = 1;
$self->{has_compartments} = 1;
push( @desc, 'klimatisiert' );
- push( @desc, 'Abteilwagen' );
+ push( @desc, 'Abteil' );
+ }
+
+ if ( $type =~ m{w} ) {
+ $self->{has_ac} = 1;
+ $self->{has_compartments} = 1;
+ push( @desc, 'klimatisiert' );
+ push( @desc, 'Abteil' );
}
$self->{attributes} = \@desc;