package FServer;
use strict;

sub new {
  my ($text, $font) = @_;
  if (!$font) { $font = "standard"; }
  my $self = {
	"text"	=> $text,
	"font"	=> $font
  };
  bless $self, 'FServer';
  return $self;
}

sub display {
  my ($object) = shift;
  open (FileIN, "fonts/".$object->{'font'}.".flf") || die $!;
  my @FileTable = <FileIN>;
  close(FileIN);
  my $FontHeight = substr($FileTable[0], 7,1);
  my %FontData = ();
  for (my $i=0; $i<@FileTable; $i++) {
    chomp($FileTable[$i]);
    if (index($FileTable[$i], "@@") != -1) {
      my $temp = $FontHeight-1;
      for (my $j=0;$j<=$FontHeight-2;$j++) {
        $FontData{substr($FileTable[$i], -1,1)}->[$j] = substr($FileTable[$i-$temp], 0, length($FileTable[$i-$temp])-1);
        $temp--;
      }
      $FontData{substr($FileTable[$i], -1,1)}->[$FontHeight-1] = substr($FileTable[$i], 0, length($FileTable[$i])-3);
    }
  }
  my $Result = "";
  for (my $k=0; $k<$FontHeight; $k++) {
    for (my $l=0;$l<=length($object->{'text'})-1;$l++){
      $FontData{substr($object->{'text'}, $l, 1)}->[$k] =~ tr/\$/ /;
      $Result .= $FontData{substr($object->{'text'}, $l, 1)}->[$k];
    }
    $Result .= "\n";
  }
  return $Result;
}
1;