wileymud-1.187b/
wileymud-1.187b/attic/
wileymud-1.187b/attic/bin/
wileymud-1.187b/attic/lib/
wileymud-1.187b/attic/lib/adm/
wileymud-1.187b/attic/lib/man/
wileymud-1.187b/attic/lib/new-wld/
wileymud-1.187b/attic/lib/new-wld/default/
wileymud-1.187b/attic/lib/old/
wileymud-1.187b/attic/lib/wld/
wileymud-1.187b/attic/public_html/
wileymud-1.187b/attic/public_html/gfx/
wileymud-1.187b/attic/src/bin/
wileymud-1.187b/attic/src/etc/
wileymud-1.187b/attic/src/libauth-4.0-p5/
wileymud-1.187b/attic/src/sedna/
wileymud-1.187b/backups/
wileymud-1.187b/bin/
wileymud-1.187b/docs/
wileymud-1.187b/etc/
wileymud-1.187b/lib/
wileymud-1.187b/lib/adm/
wileymud-1.187b/lib/boards/
wileymud-1.187b/lib/log/
wileymud-1.187b/lib/man/
wileymud-1.187b/lib/ply/
wileymud-1.187b/lib/ply/a/
wileymud-1.187b/lib/ply/b/
wileymud-1.187b/lib/ply/c/
wileymud-1.187b/lib/ply/d/
wileymud-1.187b/lib/ply/g/
wileymud-1.187b/lib/ply/k/
wileymud-1.187b/lib/ply/m/
wileymud-1.187b/lib/ply/s/
wileymud-1.187b/lib/ply/t/
wileymud-1.187b/public_html/gfx/
wileymud-1.187b/src/bin/
wileymud-1.187b/src/convert/attic/
wileymud-1.187b/src/convert/obj/
wileymud-1.187b/src/convert/perl/
wileymud-1.187b/src/convert/perl/MudConvert/
wileymud-1.187b/src/convert/perl/MudConvert/DUMP/
wileymud-1.187b/src/convert/perl/MudConvert/Report/
wileymud-1.187b/src/convert/perl/MudConvert/WileyMUD/
wileymud-1.187b/src/convert/perl/output/
wileymud-1.187b/src/convert/perl/output/DUMP/
wileymud-1.187b/src/convert/perl/output/Report/
wileymud-1.187b/src/convert/perl/output/WileyMUD/
wileymud-1.187b/src/etc/
wileymud-1.187b/src/etc/init.d/
wileymud-1.187b/src/etc/rc.d/
wileymud-1.187b/src/etc/rc.d/init.d/
wileymud-1.187b/src/lib/
wileymud-1.187b/src/lib/adm/
wileymud-1.187b/src/lib/boards/
wileymud-1.187b/src/lib/log/
wileymud-1.187b/src/lib/man/
wileymud-1.187b/src/lib/ply/
wileymud-1.187b/src/lib/ply/a/
wileymud-1.187b/src/lib/ply/b/
wileymud-1.187b/src/lib/ply/c/
wileymud-1.187b/src/lib/ply/d/
wileymud-1.187b/src/lib/ply/e/
wileymud-1.187b/src/lib/ply/f/
wileymud-1.187b/src/lib/ply/g/
wileymud-1.187b/src/lib/ply/h/
wileymud-1.187b/src/lib/ply/i/
wileymud-1.187b/src/lib/ply/j/
wileymud-1.187b/src/lib/ply/k/
wileymud-1.187b/src/lib/ply/l/
wileymud-1.187b/src/lib/ply/m/
wileymud-1.187b/src/lib/ply/n/
wileymud-1.187b/src/lib/ply/o/
wileymud-1.187b/src/lib/ply/p/
wileymud-1.187b/src/lib/ply/q/
wileymud-1.187b/src/lib/ply/r/
wileymud-1.187b/src/lib/ply/s/
wileymud-1.187b/src/lib/ply/t/
wileymud-1.187b/src/lib/ply/u/
wileymud-1.187b/src/lib/ply/v/
wileymud-1.187b/src/lib/ply/w/
wileymud-1.187b/src/lib/ply/x/
wileymud-1.187b/src/lib/ply/y/
wileymud-1.187b/src/lib/ply/z/
wileymud-1.187b/src/obj/
wileymud-1.187b/src/utils/
wileymud-1.187b/src/utils/mobmaker/
#!/usr/bin/perl -w

package MudConvert::WileyMUD::Output;

use strict;
use English;
use Data::Dumper;
use MudConvert::Utils			qw(	vnum_index_file report_error );
use MudConvert::WileyMUD::Constants	qw(	$sector_types $rev_sector_types
						$room_flags $rev_room_flags
						$zone_commands
						$exit_directions $rev_exit_directions
						$zone_reset_flags $rev_zone_reset_flags
					);
use MudConvert::API			qw(	flags_value
					);

our ($dump_dir, $dump_zone_file, $dump_world_file) = (undef,undef,undef);

use base 'Exporter';

our @EXPORT_OK = qw( dump_game dump_zones dump_rooms dump_mobs dump_objects dump_shops );

sub dump_game {
  my $cfg = shift;
  my $data = shift;
  my $results = {};

  $dump_dir = $cfg->{'destination-dir'}."/WileyMUD";
  if( !(mkdir $dump_dir) ) {
    #system("echo rm -rf ".$cfg->{'destination-dir'}.'/WileyMUD' $cfg->{'destination-dir'}.'/WileyMUD.old');
    #system("echo mv ".$cfg->{'destination-dir'}.'/WileyMUD'." ".$cfg->{'destination-dir'}.'/WileyMUD.old');
    printf STDERR "FATAL: Cannot create output directory (%s) for WileyMUD!\n", $dump_dir;
    #return undef;
  }
  $dump_zone_file = "$dump_dir/tinyworld.zon";
  $dump_world_file = "$dump_dir/tinyworld.wld";

  $results->{Zones}	= dump_zones($cfg, $data);
  $results->{Rooms}	= dump_rooms($cfg, $data);
  $results->{Mobs}	= dump_mobs($cfg, $data);
  $results->{Objects}	= dump_objects($cfg, $data);
  $results->{Shops}	= dump_shops($cfg, $data);

  return $results;
}

sub dump_zones {
  my $cfg = shift;
  my $data = shift;

  my $zone_data = $data->{'Zones'};

  if( !(open DUMP, ">$dump_zone_file") ) {
    printf STDERR "FATAL: Cannot create output ZONE file (%s) for WileyMUD!\n", $dump_zone_file;
    return undef;
  }
  foreach my $vnum (sort { $a <=> $b } keys %{ $zone_data }) {
    printf DUMP "#%d\n",	$vnum;
    printf DUMP "%s~\n",	$zone_data->{$vnum}->{'Name'};
    printf DUMP "%d %d %d\n",	$zone_data->{$vnum}->{'Top'},
				$zone_data->{$vnum}->{'Time'},
				$rev_zone_reset_flags->{$zone_data->{$vnum}->{'Mode'}};
    foreach my $reset (sort { $a->{'Number'} <=> $b->{'Number'} } @{ $zone_data->{$vnum}->{'Resets'} }) {
      #printf STDERR Dumper($reset);
      printf DUMP "%s",		$reset->{'Command'};
      printf DUMP " %s",	join(" ", @{ $reset->{'Args'} })
        if (defined $reset->{'Args'}) and scalar(@{ $reset->{'Args'} }) > 0;
      printf DUMP " * %s",	$reset->{'Comment'}
        if (defined $reset->{'Comment'});
      printf DUMP "\n";
    }
    printf DUMP "%s\n\n",	"S";
  }
  printf DUMP "%s\n",		"\$~";
  close DUMP;

  return undef;
}

sub dump_rooms {
  my $cfg = shift;
  my $data = shift;

  my $room_data = $data->{'Rooms'};

  if( !(open DUMP, ">$dump_world_file") ) {
    printf STDERR "FATAL: Cannot create output WORLD file (%s) for WileyMUD!\n", $dump_world_file;
    return undef;
  }
  foreach my $vnum (sort { $a <=> $b } keys %{ $room_data }) {
    printf DUMP "#%d\n",	$vnum;
    printf DUMP "%s~\n",	$room_data->{$vnum}->{'Name'};
    printf DUMP "%s~\n",	$room_data->{$vnum}->{'Description'};
    printf DUMP "%d %d %d\n",	$room_data->{$vnum}->{'Zone'},
				flags_value($room_data->{$vnum}->{'Flags'}, $rev_room_flags),
				$rev_sector_types->{$room_data->{$vnum}->{'Sector'}};

    foreach my $reset (sort { $a->{'Number'} <=> $b->{'Number'} } @{ $room_data->{$vnum}->{'Resets'} }) {
      #printf STDERR Dumper($reset);
      printf DUMP "%s",		$reset->{'Command'};
      printf DUMP " %s",	join(" ", @{ $reset->{'Args'} })
        if (defined $reset->{'Args'}) and scalar(@{ $reset->{'Args'} }) > 0;
      printf DUMP " * %s",	$reset->{'Comment'}
        if (defined $reset->{'Comment'});
      printf DUMP "\n";
    }
    printf DUMP "%s\n\n",	"S";
  }
  printf DUMP "%s\n",		"\$~";
  close DUMP;

  return undef;
}

sub dump_mobs {
  my $cfg = shift;
  my $data = shift;

  return undef;
}

sub dump_objects {
  my $cfg = shift;
  my $data = shift;

  return undef;
}

sub dump_shops {
  my $cfg = shift;
  my $data = shift;

  return undef;
}

1;