… | |
… | |
421 | if ($self->{sdx} || $self->{sdy}) { |
421 | if ($self->{sdx} || $self->{sdy}) { |
422 | my $diff = EV::time - ($self->{last_update} || $::LAST_REFRESH); |
422 | my $diff = EV::time - ($self->{last_update} || $::LAST_REFRESH); |
423 | my $spd = $::CONN->{stat}{DC::Protocol::CS_STAT_SPEED}; |
423 | my $spd = $::CONN->{stat}{DC::Protocol::CS_STAT_SPEED}; |
424 | |
424 | |
425 | # the minimum time for a single tile movement |
425 | # the minimum time for a single tile movement |
426 | my $mintime = DC::Protocol::TICK * DC::ceil 1 / ($spd * DC::Protocol::TICK); |
426 | my $mintime = DC::Protocol::TICK * DC::ceil 1 / ($spd * DC::Protocol::TICK || 1); |
427 | |
427 | |
428 | # jump if "impossibly high" speed |
428 | # jump if "impossibly high" speed |
429 | if ( |
429 | if ( |
430 | (max abs $self->{sdx}, abs $self->{sdy}) |
430 | (max abs $self->{sdx}, abs $self->{sdy}) |
431 | > $spd * $self->{tilesize} * $mintime * 1.1 |
431 | > $spd * $self->{tilesize} * $mintime * 1.1 |