… | |
… | |
255 | my $map = $self->{map} ||= []; |
255 | my $map = $self->{map} ||= []; |
256 | |
256 | |
257 | $self->{mapx} += $dx; |
257 | $self->{mapx} += $dx; |
258 | $self->{mapy} += $dy; |
258 | $self->{mapy} += $dy; |
259 | |
259 | |
260 | if ($dx > 0) { |
260 | if ($dy < 0) { |
261 | unshift @$_, ([]) x $dx for @$map; |
261 | unshift @$_, ([]) x -$dy for @$map; |
262 | } elsif ($dx < 0) { |
262 | } elsif ($dy > 0) { |
263 | splice @$_, 0, -$dx, () for @$map; |
263 | splice @$_, 0, $dy, () for @$map; |
264 | } |
264 | } |
265 | |
265 | |
266 | if ($dy > 0) { |
266 | if ($dx < 0) { |
267 | unshift @$map, ([]) x $dy; |
267 | unshift @$map, ([]) x -$dx; |
268 | } elsif ($dy < 0) { |
268 | } elsif ($dx > 0) { |
269 | splice @$map, 0, -$dy, (); |
269 | splice @$map, 0, $dx, (); |
270 | } |
270 | } |
271 | |
271 | |
272 | $self->map_scroll ($dx, $dy); |
272 | $self->map_scroll ($dx, $dy); |
273 | } |
273 | } |
274 | |
274 | |
… | |
… | |
352 | =cut |
352 | =cut |
353 | |
353 | |
354 | sub send { |
354 | sub send { |
355 | my ($self, $data) = @_; |
355 | my ($self, $data) = @_; |
356 | |
356 | |
|
|
357 | print "SEND<$data>\n";#d# |
|
|
358 | |
357 | $data = pack "na*", length $data, $data; |
359 | $data = pack "na*", length $data, $data; |
358 | |
360 | |
359 | syswrite $self->{fh}, $data; |
361 | syswrite $self->{fh}, $data; |
360 | } |
362 | } |
361 | |
363 | |