… | |
… | |
320 | my $sym = $ev->{sym}; |
320 | my $sym = $ev->{sym}; |
321 | my $uni = $ev->{unicode}; |
321 | my $uni = $ev->{unicode}; |
322 | |
322 | |
323 | $mod &= DC::KMOD_CTRL | DC::KMOD_ALT | DC::KMOD_SHIFT; |
323 | $mod &= DC::KMOD_CTRL | DC::KMOD_ALT | DC::KMOD_SHIFT; |
324 | |
324 | |
|
|
325 | # ignore repeated keypresses |
|
|
326 | return if $self->{last_mod} == $mod && $self->{last_sym} == $sym; |
|
|
327 | $self->{last_mod} = $mod; |
|
|
328 | $self->{last_sym} = $sym; |
|
|
329 | |
325 | if ($::CONN && (my $dir = $DIR{(!!($mod & DC::KMOD_ALT)) . ",$sym"})) { |
330 | if ($::CONN && (my $dir = $DIR{(!!($mod & DC::KMOD_ALT)) . ",$sym"})) { |
326 | if ($mod & DC::KMOD_SHIFT) { |
331 | if ($mod & DC::KMOD_SHIFT) { |
327 | $self->{shft}++; |
332 | $self->{shft}++; |
328 | if ($dir->[0] != $self->{fire_dir}) { |
333 | if ($dir->[0] != $self->{fire_dir}) { |
329 | $::CONN->user_send ("fire $dir->[0]"); |
334 | $::CONN->user_send ("fire $dir->[0]"); |
… | |
… | |
347 | |
352 | |
348 | my $res = 0; |
353 | my $res = 0; |
349 | my $mod = $ev->{mod}; |
354 | my $mod = $ev->{mod}; |
350 | my $sym = $ev->{sym}; |
355 | my $sym = $ev->{sym}; |
351 | |
356 | |
|
|
357 | delete $self->{last_mod}; |
|
|
358 | delete $self->{last_sym}; |
|
|
359 | |
352 | if ($::CFG->{shift_fire_stop}) { |
360 | if ($::CFG->{shift_fire_stop}) { |
353 | if (!($mod & DC::KMOD_SHIFT) && delete $self->{shft}) { |
361 | if (!($mod & DC::KMOD_SHIFT) && delete $self->{shft}) { |
354 | $::CONN->user_send ("fire_stop"); |
362 | $::CONN->user_send ("fire_stop"); |
355 | delete $self->{fire_dir}; |
363 | delete $self->{fire_dir}; |
356 | $res = 1; |
364 | $res = 1; |
… | |
… | |
431 | |
439 | |
432 | glPushMatrix; |
440 | glPushMatrix; |
433 | glTranslate $sx0, $sy0; |
441 | glTranslate $sx0, $sy0; |
434 | glScale $::CFG->{map_scale}, $::CFG->{map_scale}; |
442 | glScale $::CFG->{map_scale}, $::CFG->{map_scale}; |
435 | |
443 | |
436 | $::MAP->draw ($dx, $dy, $sw, $sh, $self->{tilesize}); |
444 | $::MAP->draw ($dx, $dy, $sw, $sh, |
|
|
445 | $self->{tilesize}, |
|
|
446 | $::CONN->{player}{tag}, 0, 0); |
437 | |
447 | |
438 | glScale $self->{tilesize}, $self->{tilesize}; |
448 | glScale $self->{tilesize}, $self->{tilesize}; |
439 | |
449 | |
440 | if (my $tex = $self->{fow_texture}) { |
450 | if (my $tex = $self->{fow_texture}) { |
441 | glPushMatrix; |
451 | glPushMatrix; |