… | |
… | |
76 | callback => sub { $self->open_map_prop }, |
76 | callback => sub { $self->open_map_prop }, |
77 | accelerator => "<ctrl>P" |
77 | accelerator => "<ctrl>P" |
78 | }, |
78 | }, |
79 | "_Map Resize" => { |
79 | "_Map Resize" => { |
80 | callback => sub { $self->open_resize_map }, |
80 | callback => sub { $self->open_resize_map }, |
81 | accelerator => "<ctrl>R" |
|
|
82 | }, |
81 | }, |
83 | "Close" => { |
82 | "Close" => { |
84 | callback => sub { $self->destroy }, |
83 | callback => sub { $self->destroy }, |
85 | }, |
84 | }, |
86 | ] |
85 | ] |
… | |
… | |
149 | my $tool = $_->[1]; |
148 | my $tool = $_->[1]; |
150 | $men->{accel_group}->connect ($Gtk2::Gdk::Keysyms{$_->[0]}, [], 'visible', |
149 | $men->{accel_group}->connect ($Gtk2::Gdk::Keysyms{$_->[0]}, [], 'visible', |
151 | sub { $::MAINWIN->set_edit_tool ($tool) }); |
150 | sub { $::MAINWIN->set_edit_tool ($tool) }); |
152 | } |
151 | } |
153 | |
152 | |
|
|
153 | $men->{accel_group}->connect ($Gtk2::Gdk::Keysyms{'r'}, ['control-mask'], 'visible', |
|
|
154 | sub { $self->redo }); |
|
|
155 | |
154 | $self->add_accel_group ($men->{accel_group}); |
156 | $self->add_accel_group ($men->{accel_group}); |
155 | |
157 | |
156 | return $men->{widget}; |
158 | return $men->{widget}; |
157 | } |
159 | } |
158 | |
160 | |
… | |
… | |
290 | $X++ if $X < $x; |
292 | $X++ if $X < $x; |
291 | $X-- if $X > $x; |
293 | $X-- if $X > $x; |
292 | $Y++ if $Y < $y; |
294 | $Y++ if $Y < $y; |
293 | $Y-- if $Y > $y; |
295 | $Y-- if $Y > $y; |
294 | |
296 | |
|
|
297 | unless ($ea->only_on_click) { |
295 | $ea->edit ($map, $X, $Y, $self) |
298 | $ea->edit ($map, $X, $Y, $self) |
296 | if $X >= 0 and $Y >= 0 and $X < $map->{map}{width} and $Y < $map->{map}{height}; |
299 | if $X >= 0 and $Y >= 0 and $X < $map->{map}{width} and $Y < $map->{map}{height}; |
|
|
300 | } |
297 | } |
301 | } |
298 | |
302 | |
299 | @{$self->{draw_mode}}[0,1] = ($X, $Y); |
303 | @{$self->{draw_mode}}[0,1] = ($X, $Y); |
300 | |
304 | |
301 | 1 |
305 | 1 |
… | |
… | |
417 | |
421 | |
418 | $self->{mapkey} = $key; |
422 | $self->{mapkey} = $key; |
419 | |
423 | |
420 | if (ref $path) { |
424 | if (ref $path) { |
421 | $self->{map}->set_map ($path); |
425 | $self->{map}->set_map ($path); |
|
|
426 | $self->set_title ('<ram>'); |
422 | |
427 | |
423 | } else { |
428 | } else { |
424 | $self->{path} = $path; |
429 | $self->{path} = $path; |
425 | # print "OPENMAP $path\n"; |
430 | # print "OPENMAP $path\n"; |
426 | $self->{map}->set_map (my $m = new_from_file Crossfire::Map $path); |
431 | $self->{map}->set_map (my $m = new_from_file Crossfire::Map $path); |
|
|
432 | $self->set_title ("gce - map editor - $self->{path}"); |
427 | require Data::Dumper; |
433 | require Data::Dumper; |
428 | # print "FOO:" .Data::Dumper::Dumper ($m) . "\n"; |
434 | # print "FOO:" .Data::Dumper::Dumper ($m) . "\n"; |
429 | } |
435 | } |
430 | } |
436 | } |
431 | |
437 | |
… | |
… | |
433 | my ($self) = @_; |
439 | my ($self) = @_; |
434 | |
440 | |
435 | if ($self->{path}) { |
441 | if ($self->{path}) { |
436 | $self->{map}{map}->write_file ($self->{path}); |
442 | $self->{map}{map}->write_file ($self->{path}); |
437 | quick_msg ($self, "saved to $self->{path}"); |
443 | quick_msg ($self, "saved to $self->{path}"); |
|
|
444 | $self->set_title ("gce - map editor - $self->{path}"); |
438 | } else { |
445 | } else { |
439 | $self->save_map_as; |
446 | $self->save_map_as; |
440 | } |
447 | } |
441 | } |
448 | } |
442 | |
449 | |
… | |
… | |
450 | $::MAINWIN->{fc_last_folder} = $fc->get_current_folder; |
457 | $::MAINWIN->{fc_last_folder} = $fc->get_current_folder; |
451 | $::MAINWIN->{fc_last_folders}->{$self->{fc_last_folder}}++; |
458 | $::MAINWIN->{fc_last_folders}->{$self->{fc_last_folder}}++; |
452 | |
459 | |
453 | $self->{map}{map}->write_file ($self->{path} = $fc->get_filename); |
460 | $self->{map}{map}->write_file ($self->{path} = $fc->get_filename); |
454 | quick_msg ($self, "saved to $self->{path}"); |
461 | quick_msg ($self, "saved to $self->{path}"); |
|
|
462 | $self->set_title ("gce - map editor - $self->{path}"); |
455 | } |
463 | } |
456 | |
464 | |
457 | $fc->destroy; |
465 | $fc->destroy; |
458 | } |
466 | } |
459 | |
467 | |
… | |
… | |
590 | [qw/tile_path_2 Eastpath string/], |
598 | [qw/tile_path_2 Eastpath string/], |
591 | [qw/tile_path_3 Southpath string/], |
599 | [qw/tile_path_3 Southpath string/], |
592 | [qw/tile_path_4 Westpath string/], |
600 | [qw/tile_path_4 Westpath string/], |
593 | [qw/tile_path_5 Toppath string/], |
601 | [qw/tile_path_5 Toppath string/], |
594 | [qw/tile_path_6 Bottompath string/], |
602 | [qw/tile_path_6 Bottompath string/], |
|
|
603 | [qw/x x sep/], |
|
|
604 | ['x', 'For shop description look in the manual', 'button', sub { $::MAINWIN->show_help_window }], |
|
|
605 | [qw/shopmin Shopmin string/], |
|
|
606 | [qw/shopmax Shopmax string/], |
|
|
607 | [qw/shoprace Shoprace string/], |
|
|
608 | [qw/shopgreed Shopgreed string/], |
|
|
609 | [qw/shopitems Shopitems string/], |
595 | ) |
610 | ) |
596 | { |
611 | { |
597 | $self->_add_prop_entry ($t, $i++, @$_); |
612 | $self->_add_prop_entry ($t, $i++, @$_); |
598 | } |
613 | } |
599 | |
614 | |