# Duplicates a .mis as a .vbr, remaps textures to current mission

use Data::Dumper;
use Tk;

$mw = MainWindow->new();
$mw->withdraw;
my $misname = $mw->getOpenFile(
 -title            => 'Select mission file for import',
 -filetypes        => [['Mission Files', '*.mis']],
 -initialfile      => '*.mis',
 -defaultextension => 'mis',
 -initialdir       => '.',
);
$mw->destroy;
$delete1st=0;
$mw = MainWindow->new(-title=>'Delete first brush');
$mw->Label(-text=>'Delete first brush?')->pack();
$btnY=$mw->Button(-width=>'15',-text=>'Yes')->pack(-side=>'left');
$btnN=$mw->Button(-width=>'15',-text=>'No')->pack(-side=>'right');
$mw->bind($btnY,"<ButtonPress-1>",sub{
 $delete1st=1;
 $mw->destroy;
});
$mw->bind($btnN,"<ButtonPress-1>",sub{
 $delete1st=0;
 $mw->destroy;
});

MainLoop();

my $mis=Cowgen::Vbr->create($misname);

my $gf1=MetaBrush::Dummy->create();
my $mistextures = (Cowgen::Texture->create($mis->getTXT()))->{'textnum'};

my $srcbunch=Cowgen::Bunch->create('test');
$srcbunch->fromBin($mis,$gf1);
my $srcblist=$srcbunch->{'blist'};
my $srcolist=$srcbunch->{'olist'};

# If the lowest-timed brush is an air brush, delete it. The assumption is that it
# is just there to make the structure easier to design in DromEd.

if($delete1st==1){
=comment
 my $lowest=1; # why is 0 not a brush? must start with 1, for some reason
 my $time;
 for(my $i=1; $i<scalar(@$srcblist); $i++){
  Win32::MsgBox(Dumper(@$srcblist[$i]));
  #Win32::MsgBox("$i, @$srcblist[$i]->{time}, @$srcblist[$i]->{type}, @$srcblist[$i]->{x}, @$srcblist[$i]->{y}, @$srcblist[$i]->{z}");
  $time=@$srcblist[$i]->{time};
  if($time<@$srcblist[$lowest]->{time}){
   $lowest=$i;
  }
 }
 Win32::MsgBox("after: @$srcblist[$lowest]->{type}, @$srcblist[$lowest]->{x}, @$srcblist[$lowest]->{y}, @$srcblist[$lowest]->{z}");
 if(@$srcblist[$lowest]->{'type'}==air()){
  undef(@$srcblist[$lowest]);
 #}else{
 # Win32::MsgBox(Dumper(@$srcblist[$lowest]));
  Win32::MsgBox(air());
 # Win32::MsgBox($lowest);
 }
=cut
 undef(@$srcblist[0]);
}

foreach my $b (@$srcblist) {
 if(defined($b)){
  cloneBrush2($b,$bunch,$mistextures);
 }
}

$p={base=>-36};
foreach my $key (keys %{$srcolist->{objects}}) {
 my $o=$srcolist->{objects}{$key};
 if(defined($o)){
  $p->{rx}=derot($o->{rx});
  $p->{ry}=derot($o->{ry});
  $p->{rz}=derot($o->{rz});
  my $obj = $bunch->addObject( $o->{x},$o->{y},$o->{z}, $o->{w},$o->{l},$o->{h}, $p );
  $bunch->setProperty ($obj, "Editor->DesignNote", "[$o->{base}]");
 }
}
