Sélectionner une révision Git
-
hieda_kyuko@hpr a rédigéhieda_kyuko@hpr a rédigé
FrameUtils.pm 3,52 Kio
package FrameUtils;
use strict;
use warnings;
use Data::Printer;
BEGIN
{
unshift @INC, '.';
}
use App::TimeUtils;
use App::MasterUtils;
sub get_syubetsu
{
my $master = $_[0];
my $rosen_id = $_[1];
my $index = $_[2];
my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
my @syubetsus = @{ $rosen->{'syubetsu'} };
if ($index >= scalar @syubetsus) { die "Index error"; }
return $syubetsus[$index]->{'name'};
}
sub get_destination
{
my $master = $_[0];
my $rosen_id = $_[1];
my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
my @jikoku = @{ $_[2] };
my $offset = $_[3];
my $is_down = $_[4];
return (MasterUtils::sta_from_index $master, $rosen_id, $is_down
? scalar $offset + @jikoku - 1
: $rosen->{'eki_num'} - $offset - @jikoku)
->{'ekimei'};
}
sub hassya_hyou
{
my $master = $_[0];
my $eki = $_[1];
my @rosens = MasterUtils::get_routes $master, $eki;
my %sta_info = %{ MasterUtils::sta_from_id $master, $eki };
my sub process_ressya_list
{
my $rosen_id = $_[0];
my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
my @ressyas = @{ $_[1] };
my @sorted_ressyas = ();
my $is_down = $_[3];
my $target_absolute = MasterUtils::get_eki_position $master, $rosen_id, $_[2];
my $target_relative = $is_down
? $target_absolute
: $rosen->{'eki_num'} - $target_absolute - 1;
foreach my $ressya (@ressyas)
{
my @jikoku = @{ $ressya->{'jikoku'} };
my $pos = 0;
while ($pos != $target_relative) { shift @jikoku; $pos++; }
if (!defined $jikoku[0]) { next; }
my $ts = $jikoku[0];