2004-12-24 00:59:56 +00:00
#!/usr/bin/perl
#
# This tools is kind of a hack to be able to maintain the credits list of
# ScummVM in a single central location. We then generate the various versions
# of the credits in other places from this source. In particular:
# - The AUTHORS file
# - The gui/credits.h header file
2011-05-13 12:30:56 +00:00
# - The Credits.rtf file used by the Mac OS X port
2004-12-24 00:59:56 +00:00
# - The credits.xml file, part of the DocBook manual
2009-05-23 20:21:17 +00:00
# - Finally, credits.xml, for use on the website (different format than the DocBook one)
2004-12-24 00:59:56 +00:00
#
# Initial version written by Fingolfin in December 2004.
#
use strict ;
use Text::Wrap ;
2004-12-25 16:03:36 +00:00
if ( $ Text:: Wrap:: VERSION < 2001.0929 ) {
die "Text::Wrap version >= 2001.0929 is required. You have $Text::Wrap::VERSION\n" ;
}
2004-12-24 00:59:56 +00:00
my $ mode = "" ;
my $ max_name_width ;
2005-12-19 02:23:01 +00:00
# Count the level in the section hierarchy, i.e. how deep we are currently nested
# in terms of 'sections'.
my $ section_level = 0 ;
# Count how many sections there have been on this level already
my @ section_count = ( 0 , 0 , 0 ) ;
2004-12-24 00:59:56 +00:00
if ( $# ARGV >= 0 ) {
2005-03-22 20:16:02 +00:00
$ mode = "TEXT" if ( $ ARGV [ 0 ] eq "--text" ) ; # AUTHORS file
2009-05-23 20:21:17 +00:00
$ mode = "XML-WEB" if ( $ ARGV [ 0 ] eq "--xml-website" ) ; # credits.xml (for use on the website)
2004-12-24 00:59:56 +00:00
$ mode = "CPP" if ( $ ARGV [ 0 ] eq "--cpp" ) ; # credits.h (for use by about.cpp)
2009-05-23 20:21:17 +00:00
$ mode = "XML-DOC" if ( $ ARGV [ 0 ] eq "--xml-docbook" ) ; # credits.xml (DocBook)
2005-03-22 20:16:02 +00:00
$ mode = "RTF" if ( $ ARGV [ 0 ] eq "--rtf" ) ; # Credits.rtf (Mac OS X About box)
2004-12-24 00:59:56 +00:00
}
if ( $ mode eq "" ) {
2009-05-23 20:21:17 +00:00
print STDERR "Usage: $0 [--text | --xml-website | --cpp | --xml-docbook | --rtf]\n" ;
print STDERR " Just pass --text / --xml-website / --cpp / --xml-docbook / --rtf as parameter, and credits.pl\n" ;
2004-12-24 00:59:56 +00:00
print STDERR " will print out the corresponding version of the credits to stdout.\n" ;
exit 1 ;
}
$ Text:: Wrap:: unexpand = 0 ;
if ( $ mode eq "TEXT" ) {
$ Text:: Wrap:: columns = 78 ;
2012-09-06 15:46:28 +00:00
$ max_name_width = 23 ; # The maximal width of a name.
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
$ Text:: Wrap:: columns = 48 ; # Approx.
}
# Convert HTML entities to ASCII for the plain text mode
2005-03-22 20:16:02 +00:00
sub html_entities_to_ascii {
2004-12-24 00:59:56 +00:00
my $ text = shift ;
2008-01-27 19:47:41 +00:00
2004-12-24 00:59:56 +00:00
# For now we hardcode these mappings
# á -> a
# é -> e
2011-02-08 22:28:32 +00:00
# ì -> i
2005-11-13 03:33:20 +00:00
# ó -> o
2004-12-24 00:59:56 +00:00
# ø -> o
# ö -> o / oe
2005-05-09 21:21:21 +00:00
# ä -> a
2013-03-04 08:54:02 +00:00
# ë -> e
2006-07-08 17:37:51 +00:00
# ü -> ue
2010-12-12 00:24:19 +00:00
# å -> aa
2004-12-24 00:59:56 +00:00
# & -> &
2005-01-03 23:51:16 +00:00
# ł -> l
2012-07-20 18:50:00 +00:00
# ś -> s
2009-10-30 03:27:27 +00:00
# Š -> S
2004-12-24 00:59:56 +00:00
$ text =~ s/á/a/g ;
$ text =~ s/é/e/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/ì/i/g ;
2005-11-13 03:33:20 +00:00
$ text =~ s/ó/o/g ;
2004-12-24 00:59:56 +00:00
$ text =~ s/ø/o/g ;
2005-01-03 23:51:16 +00:00
$ text =~ s/ł/l/g ;
2012-07-20 18:50:00 +00:00
$ text =~ s/ś/s/g ;
2009-10-30 03:27:27 +00:00
$ text =~ s/Š/S/g ;
2010-12-12 00:24:19 +00:00
$ text =~ s/å/aa/g ;
2004-12-24 00:59:56 +00:00
2005-05-09 21:21:21 +00:00
$ text =~ s/ä/a/g ;
2013-03-04 08:54:02 +00:00
$ text =~ s/ë/e/g ;
2006-07-08 17:37:51 +00:00
$ text =~ s/ü/ue/g ;
2010-02-10 17:08:07 +00:00
# HACK: Torbj*o*rn but G*oe*ffringmann and R*oe*ver and J*oe*rg
$ text =~ s/Torbjörn/Torbjorn/g ;
2005-01-03 22:47:14 +00:00
$ text =~ s/ö/oe/g ;
2004-12-24 00:59:56 +00:00
$ text =~ s/&/&/g ;
2008-01-27 19:47:41 +00:00
2004-12-24 00:59:56 +00:00
return $ text ;
}
2006-06-20 22:50:27 +00:00
# Convert HTML entities to C++ characters
sub html_entities_to_cpp {
my $ text = shift ;
2010-02-10 17:08:07 +00:00
# The numerical values are octal!
2006-06-20 22:50:27 +00:00
$ text =~ s/á/\\341/g ;
$ text =~ s/é/\\351/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/ì/\\354/g ;
2006-06-20 22:50:27 +00:00
$ text =~ s/ó/\\363/g ;
$ text =~ s/ø/\\370/g ;
$ text =~ s/ł/l/g ;
2012-07-20 18:50:00 +00:00
$ text =~ s/ś/s/g ;
2010-02-10 17:08:07 +00:00
$ text =~ s/Š/S/g ;
2010-12-12 00:24:19 +00:00
$ text =~ s/å/\\345/g ;
2006-06-20 22:50:27 +00:00
$ text =~ s/ä/\\344/g ;
2013-03-04 08:54:02 +00:00
$ text =~ s/ë/\\353/g ;
2006-06-20 22:50:27 +00:00
$ text =~ s/ö/\\366/g ;
$ text =~ s/ü/\\374/g ;
$ text =~ s/&/&/g ;
2008-01-27 19:47:41 +00:00
2006-06-20 22:50:27 +00:00
return $ text ;
}
2005-03-22 20:16:02 +00:00
# Convert HTML entities to RTF codes
2011-02-08 22:28:32 +00:00
# This is using the Mac OS Roman encoding
2005-03-22 20:16:02 +00:00
sub html_entities_to_rtf {
my $ text = shift ;
2008-01-27 19:47:41 +00:00
2005-03-22 20:16:02 +00:00
$ text =~ s/á/\\'87/g ;
$ text =~ s/é/\\'8e/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/ì/\\'93/g ;
2005-12-19 02:23:01 +00:00
$ text =~ s/ó/\\'97/g ;
2005-03-22 20:16:02 +00:00
$ text =~ s/ø/\\'bf/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/å/\\'8c/g ;
2010-02-10 17:08:07 +00:00
# The following numerical values are octal!
2005-03-22 20:16:02 +00:00
$ text =~ s/ł/\\uc0\\u322 /g ;
2010-02-10 17:08:07 +00:00
$ text =~ s/Š/\\uc0\\u540 /g ;
2005-05-09 21:21:21 +00:00
2010-02-10 17:08:07 +00:00
# Back to hex numbers
2005-05-09 21:21:21 +00:00
$ text =~ s/ä/\\'8a/g ;
2013-03-04 08:54:02 +00:00
$ text =~ s/ë/\\'eb/g ;
2005-03-22 20:16:02 +00:00
$ text =~ s/ö/\\'9a/g ;
2005-05-09 21:21:21 +00:00
$ text =~ s/ü/\\'9f/g ;
2005-03-22 20:16:02 +00:00
$ text =~ s/&/&/g ;
2008-01-27 19:47:41 +00:00
2005-03-22 20:16:02 +00:00
return $ text ;
}
2005-03-27 18:35:52 +00:00
# Convert HTML entities to TeX codes
sub html_entities_to_tex {
my $ text = shift ;
2008-01-27 19:47:41 +00:00
2005-03-27 18:35:52 +00:00
$ text =~ s/á/\\'a/g ;
$ text =~ s/é/\\'e/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/ì/\\`\\i/g ;
2005-12-19 02:23:01 +00:00
$ text =~ s/ó/\\'o/g ;
2005-03-27 18:35:52 +00:00
$ text =~ s/ø/{\\o}/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/å/\\aa /g ;
2005-05-09 21:21:21 +00:00
$ text =~ s/ł/{\\l}/g ;
2009-10-30 03:27:27 +00:00
$ text =~ s/Š/{\\v S}/g ;
2005-05-09 21:21:21 +00:00
$ text =~ s/ä/\\"a/g ;
2005-03-27 18:35:52 +00:00
$ text =~ s/ö/\\"o/g ;
2013-03-04 08:54:02 +00:00
$ text =~ s/ë/\\"e/g ;
2005-05-09 21:21:21 +00:00
$ text =~ s/ü/\\"u/g ;
2005-03-27 18:35:52 +00:00
$ text =~ s/&/\\&/g ;
2008-01-27 19:47:41 +00:00
2005-03-27 18:35:52 +00:00
return $ text ;
}
2008-01-27 19:47:41 +00:00
#
2005-12-19 02:23:01 +00:00
# Small reference of the RTF commands used here:
#
# \fs28 switches to 14 point font (28 = 2 * 14)
# \pard reset to default paragraph properties
#
# \ql left-aligned text
# \qr right-aligned text
# \qc centered text
# \qj justified text
#
# \b turn on bold
# \b0 turn off bold
#
# For more information: <http://latex2rtf.sourceforge.net/rtfspec.html>
#
2004-12-24 00:59:56 +00:00
sub begin_credits {
my $ title = shift ;
if ( $ mode eq "TEXT" ) {
2005-03-22 20:16:02 +00:00
#print html_entities_to_ascii($title)."\n";
} elsif ( $ mode eq "RTF" ) {
2005-03-23 16:19:05 +00:00
print '{\rtf1\mac\ansicpg10000' . "\n" ;
2005-03-22 20:16:02 +00:00
print '{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}' . "\n" ;
2005-12-19 02:23:01 +00:00
print '{\colortbl;\red255\green255\blue255;\red0\green128\blue0;\red128\green128\blue128;}' . "\n" ;
2005-03-22 20:16:02 +00:00
print '\vieww6920\viewh15480\viewkind0' . "\n" ;
print "\n" ;
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
print "// This file was generated by credits.pl. Do not edit by hand!\n" ;
print "static const char *credits[] = {\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2007-03-05 16:42:58 +00:00
print "<?xml version='1.0'?>\n" ;
2004-12-24 00:59:56 +00:00
print "<!-- This file was generated by credits.pl. Do not edit by hand! -->\n" ;
2007-03-05 16:42:58 +00:00
print "<!DOCTYPE appendix PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'\n" ;
print " 'http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'>\n" ;
print "<appendix id='credits'>\n" ;
2004-12-24 00:59:56 +00:00
print " <title>" . $ title . "</title>\n" ;
print " <informaltable frame='none'>\n" ;
print " <tgroup cols='3' align='left' colsep='0' rowsep='0'>\n" ;
print " <colspec colname='start' colwidth='0.5cm'/>\n" ;
print " <colspec colname='name' colwidth='4cm'/>\n" ;
print " <colspec colname='job'/>\n" ;
print " <tbody>\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
print "<?xml version='1.0'?>\n" ;
2004-12-24 00:59:56 +00:00
print "<!-- This file was generated by credits.pl. Do not edit by hand! -->\n" ;
2009-05-23 20:21:17 +00:00
print "<credits>\n" ;
2004-12-24 00:59:56 +00:00
}
}
sub end_credits {
if ( $ mode eq "TEXT" ) {
2005-03-22 20:16:02 +00:00
} elsif ( $ mode eq "RTF" ) {
print "}\n" ;
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
print "};\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2004-12-24 00:59:56 +00:00
print " </tbody>\n" ;
print " </tgroup>\n" ;
print " </informaltable>\n" ;
print "</appendix>\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
print "</credits>\n" ;
2004-12-24 00:59:56 +00:00
}
}
sub begin_section {
my $ title = shift ;
2005-12-19 02:23:01 +00:00
2004-12-24 00:59:56 +00:00
if ( $ mode eq "TEXT" ) {
2005-03-22 20:16:02 +00:00
$ title = html_entities_to_ascii ( $ title ) ;
2005-12-19 02:23:01 +00:00
if ( $ section_level >= 2 ) {
$ title . = ":"
}
2008-01-27 19:47:41 +00:00
2005-12-19 02:23:01 +00:00
print " " x $ section_level . $ title . "\n" ;
if ( $ section_level eq 0 ) {
print " " x $ section_level . "*" x ( length $ title ) . "\n" ;
} elsif ( $ section_level eq 1 ) {
print " " x $ section_level . "-" x ( length $ title ) . "\n" ;
}
2005-03-22 20:16:02 +00:00
} elsif ( $ mode eq "RTF" ) {
$ title = html_entities_to_rtf ( $ title ) ;
# Center text
print '\pard\qc' . "\n" ;
2005-12-19 02:23:01 +00:00
print '\f0\b' ;
if ( $ section_level eq 0 ) {
print '\fs40 ' ;
} elsif ( $ section_level eq 1 ) {
print '\fs32 ' ;
}
2008-01-27 19:47:41 +00:00
2005-12-19 02:23:01 +00:00
# Insert an empty line before this section header, *unless*
# this is the very first section header in the file.
if ( $ section_level > 0 || @ section_count [ 0 ] > 0 ) {
print "\\\n" ;
}
print '\cf2 ' . $ title . "\n" ;
2005-03-22 20:16:02 +00:00
print '\f1\b0\fs24 \cf0 \\' . "\n" ;
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
2005-12-19 02:23:01 +00:00
if ( $ section_level eq 0 ) {
2013-02-04 13:16:38 +00:00
# TODO: Would be nice to have a 'fat' or 'large' mode for
# headlines...
my $ ascii_title = html_entities_to_ascii ( $ title ) ;
$ title = html_entities_to_cpp ( $ title ) ;
if ( $ ascii_title ne $ title ) {
print '"A1""' . $ ascii_title . '",' . "\n" ;
}
print '"C1""' . $ title . '",' . "\n" ;
print '"",' . "\n" ;
2005-12-19 02:23:01 +00:00
} else {
2013-02-04 13:16:38 +00:00
my $ ascii_title = html_entities_to_ascii ( $ title ) ;
$ title = html_entities_to_cpp ( $ title ) ;
if ( $ ascii_title ne $ title ) {
print '"A1""' . $ ascii_title . '",' . "\n" ;
}
print '"C1""' . $ title . '",' . "\n" ;
2005-12-19 02:23:01 +00:00
}
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2004-12-24 00:59:56 +00:00
print " <row><entry namest='start' nameend='job'>" ;
print "<emphasis role='bold'>" . $ title . ":</emphasis>" ;
print "</entry></row>\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
2005-12-19 02:23:01 +00:00
if ( $ section_level eq 0 ) {
2009-05-23 20:21:17 +00:00
print "\t<section>\n" ;
print "\t\t<title>" . $ title . "</title>\n" ;
2005-12-19 02:23:01 +00:00
} elsif ( $ section_level eq 1 ) {
2009-05-23 20:21:17 +00:00
print "\t\t<subsection>\n" ;
print "\t\t\t<title>" . $ title . "</title>\n" ;
2005-12-19 02:23:01 +00:00
} else {
2009-05-23 20:21:17 +00:00
#print "\t\t\t<group>" . $title . "</group>\n";
#print "\t\t\t\t<name>" . $title . "</name>\n";
2005-12-19 02:23:01 +00:00
}
}
# Implicit start of person list on section level 2
if ( $ section_level >= 2 ) {
2009-05-23 20:21:17 +00:00
begin_persons ( $ title ) ;
2004-12-24 00:59:56 +00:00
}
2005-12-19 02:23:01 +00:00
@ section_count [ $ section_level ] + + ;
$ section_level + + ;
@ section_count [ $ section_level ] = 0 ;
2004-12-24 00:59:56 +00:00
}
sub end_section {
2005-12-19 02:23:01 +00:00
$ section_level - - ;
# Implicit end of person list on section level 2
if ( $ section_level >= 2 ) {
end_persons ( ) ;
}
2004-12-24 00:59:56 +00:00
if ( $ mode eq "TEXT" ) {
2005-12-19 02:23:01 +00:00
# nothing
2005-03-22 20:16:02 +00:00
} elsif ( $ mode eq "RTF" ) {
2005-12-19 02:23:01 +00:00
# nothing
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
2008-11-20 13:46:34 +00:00
print '"",' . "\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2004-12-24 00:59:56 +00:00
print " <row><entry namest='start' nameend='job'> </entry></row>\n\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
2005-12-19 02:23:01 +00:00
if ( $ section_level eq 0 ) {
2009-05-23 20:21:17 +00:00
print "\t</section>\n" ;
2005-12-19 02:23:01 +00:00
} elsif ( $ section_level eq 1 ) {
2009-05-23 20:21:17 +00:00
print "\t\t</subsection>\n" ;
} else {
#print "\t\t\t</group>\n";
2005-12-19 02:23:01 +00:00
}
}
}
sub begin_persons {
2009-05-23 20:21:17 +00:00
my $ title = shift ;
if ( $ mode eq "XML-WEB" ) {
print "\t\t\t<group>\n" ;
print "\t\t\t\t<name>" . $ title . "</name>\n" ;
#print "\t\t\t\t<persons>\n";
2005-12-19 02:23:01 +00:00
}
}
sub end_persons {
if ( $ mode eq "TEXT" ) {
print "\n" ;
} elsif ( $ mode eq "RTF" ) {
# nothing
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
#print "\t\t\t\t</persons>\n";
print "\t\t\t</group>\n" ;
2004-12-24 00:59:56 +00:00
}
}
sub add_person {
my $ name = shift ;
my $ nick = shift ;
my $ desc = shift ;
2005-12-19 02:23:01 +00:00
my $ tab ;
2008-01-27 19:47:41 +00:00
2004-12-24 00:59:56 +00:00
if ( $ mode eq "TEXT" ) {
2010-04-12 19:40:54 +00:00
my $ min_name_width = length $ desc > 0 ? $ max_name_width : 0 ;
2004-12-24 00:59:56 +00:00
$ name = $ nick if $ name eq "" ;
2005-03-22 20:16:02 +00:00
$ name = html_entities_to_ascii ( $ name ) ;
2012-09-06 15:44:52 +00:00
if ( length $ name > $ max_name_width ) {
print STDERR "Warning: max_name_width is too small (" . $ max_name_width . " < " . ( length $ name ) . " for \"" . $ name . "\")\n" ;
}
2005-03-22 20:16:02 +00:00
$ desc = html_entities_to_ascii ( $ desc ) ;
2008-01-27 19:47:41 +00:00
2005-12-19 02:23:01 +00:00
$ tab = " " x ( $ section_level * 2 + 1 ) ;
2010-04-12 19:40:54 +00:00
printf $ tab . "%-" . $ min_name_width . "." . $ max_name_width . "s" , $ name ;
2008-01-27 19:47:41 +00:00
2004-12-24 00:59:56 +00:00
# Print desc wrapped
2005-12-19 02:23:01 +00:00
if ( length $ desc > 0 ) {
my $ inner_indent = ( $ section_level * 2 + 1 ) + $ max_name_width + 3 ;
my $ multitab = " " x $ inner_indent ;
print " - " . substr ( wrap ( $ multitab , $ multitab , $ desc ) , $ inner_indent ) ;
}
print "\n" ;
2005-03-22 20:16:02 +00:00
} elsif ( $ mode eq "RTF" ) {
$ name = $ nick if $ name eq "" ;
$ name = html_entities_to_rtf ( $ name ) ;
2005-12-19 02:23:01 +00:00
# Center text
print '\pard\qc' . "\n" ;
# Activate 1.5 line spacing mode
print '\sl360\slmult1' ;
# The name
2005-03-22 20:16:02 +00:00
print $ name . "\\\n" ;
2005-12-19 02:23:01 +00:00
# Description using italics
if ( length $ desc > 0 ) {
$ desc = html_entities_to_rtf ( $ desc ) ;
print '\pard\qc' . "\n" ;
print "\\cf3\\i " . $ desc . "\\i0\\cf0\\\n" ;
}
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
$ name = $ nick if $ name eq "" ;
2013-02-04 13:16:38 +00:00
my $ ascii_name = html_entities_to_ascii ( $ name ) ;
2006-06-20 22:50:27 +00:00
$ name = html_entities_to_cpp ( $ name ) ;
2004-12-24 00:59:56 +00:00
2013-02-04 13:16:38 +00:00
if ( $ ascii_name ne $ name ) {
print '"A0""' . $ ascii_name . '",' . "\n" ;
}
2008-11-20 13:46:34 +00:00
print '"C0""' . $ name . '",' . "\n" ;
2004-12-24 00:59:56 +00:00
# Print desc wrapped
2005-12-19 02:23:01 +00:00
if ( length $ desc > 0 ) {
2013-02-04 13:16:38 +00:00
my $ ascii_desc = html_entities_to_ascii ( $ desc ) ;
2006-06-20 22:50:27 +00:00
$ desc = html_entities_to_cpp ( $ desc ) ;
2013-02-04 13:16:38 +00:00
if ( $ ascii_desc ne $ desc ) {
print '"A2""' . $ ascii_desc . '",' . "\n" ;
}
2008-11-20 13:46:34 +00:00
print '"C2""' . $ desc . '",' . "\n" ;
2005-12-19 02:23:01 +00:00
}
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2004-12-24 00:59:56 +00:00
$ name = $ nick if $ name eq "" ;
print " <row><entry namest='name'>" . $ name . "</entry>" ;
print "<entry>" . $ desc . "</entry></row>\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
2004-12-24 00:59:56 +00:00
$ name = "???" if $ name eq "" ;
2009-05-23 20:21:17 +00:00
print "\t\t\t\t<person>\n" ;
print "\t\t\t\t\t<name>" . $ name . "</name>\n" ;
print "\t\t\t\t\t<alias>" . $ nick . "</alias>\n" ;
print "\t\t\t\t\t<description>" . $ desc . "</description>\n" ;
print "\t\t\t\t</person>\n" ;
2004-12-24 00:59:56 +00:00
}
}
sub add_paragraph {
my $ text = shift ;
2005-12-19 02:23:01 +00:00
my $ tab ;
2008-01-27 19:47:41 +00:00
2004-12-24 00:59:56 +00:00
if ( $ mode eq "TEXT" ) {
2005-12-19 02:23:01 +00:00
$ tab = " " x ( $ section_level * 2 + 1 ) ;
2005-03-22 20:16:02 +00:00
print wrap ( $ tab , $ tab , html_entities_to_ascii ( $ text ) ) . "\n" ;
2004-12-24 00:59:56 +00:00
print "\n" ;
2005-03-22 20:16:02 +00:00
} elsif ( $ mode eq "RTF" ) {
2009-10-30 20:44:11 +00:00
$ text = html_entities_to_rtf ( $ text ) ;
2005-12-19 02:23:01 +00:00
# Center text
print '\pard\qc' . "\n" ;
2005-03-22 20:16:02 +00:00
print "\\\n" ;
2005-12-19 02:23:01 +00:00
print $ text . "\\\n" ;
2004-12-24 00:59:56 +00:00
} elsif ( $ mode eq "CPP" ) {
2009-10-30 20:30:28 +00:00
$ text = html_entities_to_ascii ( $ text ) ;
2008-11-20 13:46:34 +00:00
my $ line_start = '"C0""' ;
2004-12-24 00:59:56 +00:00
my $ line_end = '",' ;
2005-05-17 23:41:35 +00:00
print $ line_start . $ text . $ line_end . "\n" ;
2004-12-24 00:59:56 +00:00
print $ line_start . $ line_end . "\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-DOC" ) {
2004-12-24 00:59:56 +00:00
print " <row><entry namest='start' nameend='job'>" . $ text . "</entry></row>\n" ;
print " <row><entry namest='start' nameend='job'> </entry></row>\n\n" ;
2009-05-23 20:21:17 +00:00
} elsif ( $ mode eq "XML-WEB" ) {
print "\t\t<paragraph>" . $ text . "</paragraph>\n" ;
2004-12-24 00:59:56 +00:00
}
}
#
# Now follows the actual credits data! The format should be clear, I hope.
2005-05-23 22:20:35 +00:00
# Note that people are sorted by their last name in most cases; in the
# 'Team' section, they are first grouped by category (Engine; porter; misc).
2004-12-24 00:59:56 +00:00
#
begin_credits ( "Credits" ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "ScummVM Team" ) ;
begin_section ( "Project Leader" ) ;
begin_persons ( ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_persons ( ) ;
end_section ( ) ;
2010-10-18 21:35:15 +00:00
2011-10-08 18:23:48 +00:00
begin_section ( "PR Office" ) ;
begin_persons ( ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "Public Relations Officer, Project Administrator" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "Project Leader" ) ;
end_persons ( ) ;
end_section ( ) ;
2010-10-12 02:18:11 +00:00
2011-10-08 18:23:48 +00:00
begin_section ( "Core Team" ) ;
begin_persons ( ) ;
add_person ( "Willem Jan Palenstijn" , "wjp" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
add_person ( "Johannes Schickel" , "LordHoto" , "" ) ;
end_persons ( ) ;
2010-06-26 15:59:06 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Retired Project Leaders" ) ;
begin_persons ( ) ;
add_person ( "James Brown" , "ender" , "" ) ;
add_person ( "Vincent Hamm" , "yaz0r" , "ScummVM co-founder, Original Cruise/CinE author" ) ;
add_person ( "Max Horn" , "Fingolfin" , "" ) ;
add_person ( "Ludvig Strigeus" , "ludde" , "Original ScummVM and SimonVM author" ) ;
end_persons ( ) ;
2011-02-08 22:28:32 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Engine Teams" ) ;
begin_section ( "SCUMM" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "James Brown" , "ender" , "(retired)" ) ;
add_person ( "Jonathan Gray" , "khalek" , "(retired)" ) ;
add_person ( "Vincent Hamm" , "yaz0r" , "(retired)" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Travis Howell" , "Kirben" , "" ) ;
add_person ( "Paweł Kołodziejski" , "aquadran" , "Codecs, iMUSE, Smush, etc." ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Eugene Sandulenko" , "sev" , "FT INSANE, MM NES, MM C64, game detection, Herc/CGA" ) ;
add_person ( "Ludvig Strigeus" , "ludde" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "HE" ) ;
add_person ( "Jonathan Gray" , "khalek" , "(retired)" ) ;
add_person ( "Travis Howell" , "Kirben" , "" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "AGI" ) ;
add_person ( "Stuart George" , "darkfiber" , "" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Paweł Kołodziejski" , "aquadran" , "" ) ;
add_person ( "Walter van Niftrik" , "waltervn" , "(retired)" ) ;
add_person ( "Kari Salminen" , "Buddha^" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
add_person ( "David Symonds" , "dsymonds" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "AGOS" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Travis Howell" , "Kirben" , "" ) ;
add_person ( "Oliver Kiehl" , "olki" , "(retired)" ) ;
add_person ( "Ludvig Strigeus" , "ludde" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "CGE" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
end_section ( ) ;
begin_section ( "Cine" ) ;
add_person ( "Vincent Hamm" , "yaz0r" , "(retired)" ) ;
add_person ( "Paweł Kołodziejski" , "aquadran" , "" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Kari Salminen" , "Buddha^" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
2011-11-17 16:00:58 +00:00
begin_section ( "Composer" ) ;
add_person ( "Alyssa Milburn" , "fuzzie" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "CruisE" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Vincent Hamm" , "yaz0r" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "Draci" ) ;
add_person ( "Denis Kasak" , "dkasak13" , "" ) ;
add_person ( "Robert Špalek" , "spalek" , "" ) ;
end_section ( ) ;
begin_section ( "Drascula" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Paweł Kołodziejski" , "aquadran" , "" ) ;
end_section ( ) ;
begin_section ( "DreamWeb" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Bertrand Augereau" , "Tramb" , "" ) ;
2012-07-20 19:03:34 +00:00
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
2011-11-17 19:28:38 +00:00
add_person ( "Vladimir Menshakov" , "whoozle" , "(retired)" ) ;
2012-07-20 19:03:34 +00:00
add_person ( "Willem Jan Palenstijn" , "wjp" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Gob" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Sven Hesse" , "DrMcCoy" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "Groovie" ) ;
add_person ( "Henry Bush" , "spookypeanut" , "" ) ;
add_person ( "Scott Thomas" , "ST" , "" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "" ) ;
end_section ( ) ;
2013-02-27 21:27:48 +00:00
begin_section ( "Hopkins" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Hugo" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "Kyra" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "VQA Player" ) ;
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
add_person ( "Florian Kagerer" , "athrxx" , "" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Johannes Schickel" , "LordHoto" , "" ) ;
end_section ( ) ;
begin_section ( "Lastexpress" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "" ) ;
add_person ( "Julien Templier" , "littleboy" , "" ) ;
end_section ( ) ;
begin_section ( "Lure" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
end_section ( ) ;
begin_section ( "MADE" ) ;
add_person ( "Benjamin Haisch" , "john_doe" , "" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
end_section ( ) ;
begin_section ( "Mohawk" ) ;
add_person ( "Bastien Bouclet" , "bgk" , "" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Alyssa Milburn" , "fuzzie" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
add_person ( "David Turner" , "digitall" , "" ) ;
end_section ( ) ;
2013-08-20 21:14:54 +00:00
begin_section ( "Mortevielle" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2013-08-20 15:47:29 +00:00
begin_section ( "Neverhood" ) ;
add_person ( "Benjamin Haisch" , "john_doe" , "" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Parallaction" ) ;
add_person ( "" , "peres" , "" ) ;
end_section ( ) ;
2012-03-21 18:55:12 +00:00
begin_section ( "Pegasus" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Queen" ) ;
add_person ( "David Eriksson" , "twogood" , "(retired)" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Joost Peters" , "joostp" , "" ) ;
end_section ( ) ;
begin_section ( "SAGA" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
2012-01-31 19:32:17 +00:00
add_person ( "Daniel Balsom" , "DanielFox" , "Original engine reimplementation author (retired)" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Andrew Kurushin" , "ajax16384" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "SCI" ) ;
add_person ( "Greg Frieger" , "_FRG_" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Martin Kiewitz" , "m_kiewitz" , "" ) ;
add_person ( "Walter van Niftrik" , "waltervn" , "(retired)" ) ;
add_person ( "Willem Jan Palenstijn" , "wjp" , "" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "" ) ;
add_person ( "Lars Skovlund" , "lskovlun" , "" ) ;
end_section ( ) ;
begin_section ( "Sky" ) ;
add_person ( "Robert Göffringmann" , "lavosspawn" , "(retired)" ) ;
add_person ( "Oliver Kiehl" , "olki" , "(retired)" ) ;
add_person ( "Joost Peters" , "joostp" , "" ) ;
end_section ( ) ;
begin_section ( "Sword1" ) ;
add_person ( "Fabio Battaglia" , "Hkz" , "PSX version support" ) ;
add_person ( "Thierry Crozat" , "criezy" , "Mac version support" ) ;
add_person ( "Robert Göffringmann" , "lavosspawn" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "Sword2" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Fabio Battaglia" , "Hkz" , "PSX version support" ) ;
add_person ( "Jonathan Gray" , "khalek" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "Sword25" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "TeenAgent" ) ;
add_person ( "Robert Megone" , "sanguine" , "Help with callback rewriting" ) ;
2011-11-17 19:28:38 +00:00
add_person ( "Vladimir Menshakov" , "whoozle" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Tinsel" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "" ) ;
add_person ( "Fabio Battaglia" , "Hkz" , "PSX version support" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Sven Hesse" , "DrMcCoy" , "" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
add_person ( "Joost Peters" , "joostp" , "" ) ;
end_section ( ) ;
2013-01-02 15:35:19 +00:00
begin_section ( "Toltecs" ) ;
add_person ( "Benjamin Haisch" , "john_doe" , "" ) ;
add_person ( "Filippos Karapetis" , "[md5]" , "" ) ;
end_section ( ) ;
2012-09-25 21:07:43 +00:00
begin_section ( "Tony" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
add_person ( "Alyssa Milburn" , "fuzzie" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Toon" ) ;
add_person ( "Sylvain Dupont" , "SylvainTV" , "" ) ;
end_section ( ) ;
begin_section ( "Touché" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "TsAGE" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "" ) ;
add_person ( "Paul Gilbert" , "dreammaster" , "" ) ;
end_section ( ) ;
begin_section ( "Tucker" ) ;
2011-12-12 21:04:09 +00:00
add_person ( "Gregory Montoir" , "cyx" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2012-09-06 14:47:33 +00:00
begin_section ( "Wintermute" ) ;
add_person ( "Einar Johan T. Sømåen" , "somaen" , "" ) ;
end_section ( ) ;
2011-01-19 23:05:06 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Backend Teams" ) ;
begin_section ( "Android" ) ;
add_person ( "Andre Heider" , "dhewg" , "" ) ;
add_person ( "Angus Lees" , "Gus" , "" ) ;
end_section ( ) ;
begin_section ( "Dreamcast" ) ;
add_person ( "Marcus Comstedt" , "" , "" ) ;
end_section ( ) ;
begin_section ( "GPH Devices (GP2X, GP2XWiz & Caanoo)" ) ;
add_person ( "John Willis" , "DJWillis" , "" ) ;
end_section ( ) ;
begin_section ( "iPhone" ) ;
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
end_section ( ) ;
begin_section ( "LinuxMoto" ) ;
add_person ( "Lubomyr Lisen" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Maemo" ) ;
add_person ( "Frantisek Dufka" , "fanoush" , "(retired)" ) ;
add_person ( "Tarek Soliman" , "tsoliman" , "" ) ;
end_section ( ) ;
begin_section ( "Nintendo 64" ) ;
add_person ( "Fabio Battaglia" , "Hkz" , "" ) ;
end_section ( ) ;
begin_section ( "Nintendo DS" ) ;
add_person ( "Bertrand Augereau" , "Tramb" , "HQ software scaler" ) ;
add_person ( "Neil Millstone" , "agent-q" , "" ) ;
end_section ( ) ;
begin_section ( "OpenPandora" ) ;
add_person ( "John Willis" , "DJWillis" , "" ) ;
end_section ( ) ;
begin_section ( "PocketPC / WinCE" ) ;
add_person ( "Nicolas Bacca" , "arisme" , "(retired)" ) ;
add_person ( "Ismail Khatib" , "CeRiAl" , "" ) ;
add_person ( "Kostas Nakos" , "Jubanka" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "PlayStation 2" ) ;
add_person ( "Robert Göffringmann" , "lavosspawn" , "(retired)" ) ;
add_person ( "Max Lingua" , "sunmax" , "" ) ;
end_section ( ) ;
begin_section ( "PSP (PlayStation Portable)" ) ;
add_person ( "Yotam Barnoy" , "bluddy" , "" ) ;
add_person ( "Joost Peters" , "joostp" , "" ) ;
end_section ( ) ;
begin_section ( "SDL (Win/Linux/OS X/etc.)" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "Asm routines, GFX layers" ) ;
end_section ( ) ;
begin_section ( "SymbianOS" ) ;
add_person ( "Jurgen Braam" , "SumthinWicked" , "" ) ;
add_person ( "Lars Persson" , "AnotherGuest" , "" ) ;
end_section ( ) ;
2013-06-25 11:08:55 +00:00
begin_section ( "Tizen / BADA" ) ;
add_person ( "Chris Warren-Smith" , "" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "WebOS" ) ;
add_person ( "Klaus Reimer" , "kayahr" , "" ) ;
end_section ( ) ;
begin_section ( "Wii" ) ;
add_person ( "Andre Heider" , "dhewg" , "" ) ;
end_section ( ) ;
2010-06-24 22:37:30 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Other subsystems" ) ;
begin_section ( "Infrastructure" ) ;
add_person ( "Max Horn" , "Fingolfin" , "Backend & Engine APIs, file API, sound mixer, audiostreams, data structures, etc. (retired)" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
add_person ( "Johannes Schickel" , "LordHoto" , "" ) ;
end_section ( ) ;
begin_section ( "GUI" ) ;
add_person ( "Vicent Marti" , "tanoku" , "" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
add_person ( "Johannes Schickel" , "LordHoto" , "" ) ;
end_section ( ) ;
begin_section ( "Miscellaneous" ) ;
add_person ( "David Corrales-Lopez" , "david_corrales" , "Filesystem access improvements (GSoC 2007 task) (retired)" ) ;
add_person ( "Jerome Fisher" , "KingGuppy" , "MT-32 emulator" ) ;
add_person ( "Benjamin Haisch" , "john_doe" , "Heavily improved de-/encoder for DXA videos" ) ;
add_person ( "Jochen Hoenicke" , "hoenicke" , "Speaker & PCjr sound support, AdLib work (retired)" ) ;
2013-03-04 08:54:02 +00:00
add_person ( "Daniël ter Laan" , "NoiZe" , "Restoring original Drascula tracks, and writing convert_dxa.bat" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Chris Page" , "cp88" , "Return to launcher, savestate improvements, leak fixes, ... (GSoC 2008 task) (retired)" ) ;
add_person ( "Robin Watts" , "robinwatts" , "ARM assembly routines for nice speedups on several ports; improvements to the sound mixer" ) ;
end_section ( ) ;
2010-06-24 22:37:30 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Website (code)" ) ;
begin_persons ( ) ;
add_person ( "Fredrik Wendel" , "" , "(retired)" ) ;
end_persons ( ) ;
2010-06-24 22:37:30 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Website (maintenance)" ) ;
begin_persons ( ) ;
add_person ( "James Brown" , "Ender" , "IRC Logs maintainer" ) ;
add_person ( "Thierry Crozat" , "criezy" , "Wiki maintainer" ) ;
add_person ( "Andre Heider" , "dhewg" , "Buildbot maintainer" ) ;
add_person ( "Joost Peters" , "JoostP" , "Doxygen Project Documentation maintainer" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "Wiki maintainer" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "Forum, IRC channel, Screen Shots and Mailing list maintainer" ) ;
add_person ( "John Willis" , "DJWillis" , "" ) ;
end_persons ( ) ;
2010-07-12 15:50:48 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Website (content)" ) ;
add_paragraph ( "All active team members" ) ;
2011-01-19 23:05:06 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Documentation" ) ;
begin_persons ( ) ;
add_person ( "Thierry Crozat" , "criezy" , "Numerous contributions to documentation" ) ;
add_person ( "Joachim Eberhard" , "joachimeberhard" , "Numerous contributions to documentation (retired)" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "Wiki editor" ) ;
end_persons ( ) ;
2010-12-12 00:24:19 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Retired Team Members" ) ;
begin_persons ( ) ;
add_person ( "Chris Apers" , "chrilith " , "Former PalmOS porter" ) ;
add_person ( "Ralph Brorsen" , "painelf" , "Help with GUI implementation" ) ;
add_person ( "Jamieson Christian" , "jamieson630" , "iMUSE, MIDI, all things musical" ) ;
add_person ( "Felix Jakschitsch" , "yot" , "Zak256 reverse engineering" ) ;
add_person ( "Mutwin Kraus" , "mutle" , "Original MacOS porter" ) ;
add_person ( "Peter Moraliyski" , "ph0x" , "Port: GP32" ) ;
add_person ( "Jeremy Newman" , "laxdragon" , "Former webmaster" ) ;
add_person ( "Lionel Ulmer" , "bbrox" , "Port: X11" ) ;
add_person ( "Won Star" , "wonst719" , "Former GP32 porter" ) ;
end_persons ( ) ;
2011-01-22 16:46:32 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Other contributions" ) ;
begin_section ( "Packages" ) ;
begin_section ( "AmigaOS 4" ) ;
add_person ( "Hans-Jörg Frieden" , "" , "(retired)" ) ;
add_person ( "Hubert Maier" , "Raziel_AOne" , "" ) ;
add_person ( "Juha Niemimäki" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "Atari/FreeMiNT" ) ;
add_person ( "Keith Scroggins" , "KeithS" , "" ) ;
end_section ( ) ;
begin_section ( "BeOS" ) ;
add_person ( "Stefan Parviainen" , "" , "" ) ;
add_person ( "Luc Schrijvers" , "Begasus" , "" ) ;
end_section ( ) ;
begin_section ( "Debian GNU/Linux" ) ;
add_person ( "Tore Anderson" , "tore" , "(retired)" ) ;
add_person ( "David Weinehall" , "tao" , "" ) ;
end_section ( ) ;
begin_section ( "Fedora / RedHat" ) ;
add_person ( "Willem Jan Palenstijn" , "wjp" , "" ) ;
end_section ( ) ;
begin_section ( "Mac OS X" ) ;
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
end_section ( ) ;
begin_section ( "Mandriva" ) ;
add_person ( "Dominik Scherer" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "MorphOS" ) ;
add_person ( "Fabien Coeurjoly" , "fab1" , "" ) ;
add_person ( "Rüdiger Hanke" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "OS/2" ) ;
add_person ( "Paul Smedley" , "Creeping" , "" ) ;
end_section ( ) ;
begin_section ( "SlackWare" ) ;
add_person ( "Robert Kelsen" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Solaris x86" ) ;
add_person ( "Laurent Blume" , "laurent" , "" ) ;
end_section ( ) ;
begin_section ( "Solaris SPARC" ) ;
add_person ( "Markus Strangl" , "WooShell" , "" ) ;
end_section ( ) ;
begin_section ( "Win32" ) ;
add_person ( "Travis Howell" , "Kirben" , "" ) ;
end_section ( ) ;
begin_section ( "Win64" ) ;
add_person ( "Chris Gray" , "Psychoid" , "(retired)" ) ;
add_person ( "Johannes Schickel" , "LordHoto" , "" ) ;
end_section ( ) ;
2010-11-21 22:12:31 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Translations" ) ;
begin_persons ( ) ;
add_person ( "Thierry Crozat" , "criezy" , "Translation Lead" ) ;
end_persons ( ) ;
2012-03-11 13:20:42 +00:00
begin_section ( "Basque" ) ;
add_person ( "Mikel Iturbe Urretxa" , "" , "" ) ;
end_section ( ) ;
2012-12-13 23:47:39 +00:00
begin_section ( "Belarusian" ) ;
add_person ( "Ivan Lukyanov" , "" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Catalan" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "" ) ;
end_section ( ) ;
begin_section ( "Czech" ) ;
add_person ( "Zbynìk Schwarz" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Danish" ) ;
add_person ( "Steffen Nyeland" , "" , "" ) ;
end_section ( ) ;
2012-12-01 18:03:40 +00:00
begin_section ( "Finnish" ) ;
add_person ( "Toni Saarela" , "catnose" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "French" ) ;
add_person ( "Thierry Crozat" , "criezy" , "" ) ;
end_section ( ) ;
2012-08-27 10:42:29 +00:00
begin_section ( "Galician" ) ;
add_person ( "Santiago G. Sanz" , "sgsanz" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "German" ) ;
add_person ( "Simon Sawatzki" , "SimSaw" , "" ) ;
2012-10-08 19:30:24 +00:00
add_person ( "Lothar Serra Mari" , "Lothar93" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Hungarian" ) ;
add_person ( "Alex Bevilacqua" , "" , "" ) ;
add_person ( "George Kormendi" , "GoodOldGeorg" , "" ) ;
end_section ( ) ;
begin_section ( "Italian" ) ;
add_person ( "Matteo Angelino" , "Maff" , "" ) ;
end_section ( ) ;
begin_section ( "Norwegian (Bokmål)" ) ;
2012-07-04 00:27:39 +00:00
add_person ( "Einar Johan Sømåen" , "somaen" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Norwegian (Nynorsk)" ) ;
2012-07-04 00:27:39 +00:00
add_person ( "Einar Johan Sømåen" , "somaen" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Polish" ) ;
add_person ( "GrajPoPolsku.pl Team" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Brazilian Portuguese" ) ;
add_person ( "ScummBR Team" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Russian" ) ;
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
end_section ( ) ;
begin_section ( "Spanish" ) ;
add_person ( "Tomás Maidagan" , "" , "" ) ;
2011-10-15 23:01:36 +00:00
add_person ( "Jordi Vilalta Prat" , "jvprat" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Swedish" ) ;
add_person ( "Hampus Flink" , "" , "" ) ;
end_section ( ) ;
begin_section ( "Ukrainian" ) ;
add_person ( "Lubomyr Lisen" , "" , "" ) ;
end_section ( ) ;
2010-08-01 21:41:43 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Websites (design)" ) ;
begin_persons ( ) ;
add_person ( "Dobó Balázs" , "draven" , "Website design" ) ;
add_person ( "William Claydon" , "billwashere" , "Skins for doxygen, buildbot and wiki" ) ;
add_person ( "Yaroslav Fedevych" , "jafd" , "HTML/CSS for the website" ) ;
add_person ( "Jean Marc Gimenez" , "" , "ScummVM logo" ) ;
add_person ( "David Jensen" , "Tyst" , "SVG logo conversion" ) ;
add_person ( "" , "Raina" , "ScummVM forum buttons" ) ;
end_persons ( ) ;
2010-08-01 21:41:43 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Code contributions" ) ;
begin_persons ( ) ;
add_person ( "Ori Avtalion" , "salty-horse" , "Subtitle control options in the GUI; BASS GUI fixes" ) ;
add_person ( "Stuart Caie" , "" , "Decoders for Amiga and AtariST data files (AGOS engine)" ) ;
add_person ( "Paolo Costabel" , "" , "PSP port contributions" ) ;
add_person ( "Martin Doucha" , "next_ghost" , "CinE engine objectification" ) ;
add_person ( "Thomas Fach-Pedersen" , "madmoose" , "ProTracker module player, Smacker video decoder" ) ;
add_person ( "Tobias Gunkel" , "hennymcc" , "Sound support for C64 version of MM/Zak, Loom PCE support" ) ;
add_person ( "Janne Huttunen" , "" , "V3 actor mask support, Dig/FT SMUSH audio" ) ;
add_person ( "Kovács Endre János" , "" , "Several fixes for Simon1" ) ;
add_person ( "Jeroen Janssen" , "japj" , "Numerous readability and bugfix patches" ) ;
add_person ( "Andreas Karlsson" , "Sprawl" , "Initial port for SymbianOS" ) ;
add_person ( "Claudio Matsuoka" , "" , "Daily Linux builds" ) ;
add_person ( "Thomas Mayer" , "" , "PSP port contributions" ) ;
add_person ( "Sean Murray" , "lightcast" , "ScummVM tools GUI application (GSoC 2007 task)" ) ;
add_person ( "" , "n0p" , "Windows CE port aspect ratio correction scaler and right click input method" ) ;
add_person ( "Mikesch Nepomuk" , "mnepomuk" , "MI1 VGA floppy patches" ) ;
add_person ( "Nicolas Noble" , "pixels" , "Config file and ALSA support" ) ;
add_person ( "Tim Phillips" , "realmz" , "Initial MI1 CD music support" ) ;
add_person ( "" , "Quietust" , "Sound support for Amiga SCUMM V2/V3 games, MM NES support" ) ;
add_person ( "Robert Crossfield" , "segra" , "Improved support for Apple II/C64 versions of MM" ) ;
add_person ( "Andreas Röver" , "" , "Broken Sword I & II MPEG2 cutscene support" ) ;
add_person ( "Edward Rudd" , "urkle" , "Fixes for playing MP3 versions of MI1/Loom audio" ) ;
add_person ( "Daniel Schepler" , "dschepler" , "Final MI1 CD music support, initial Ogg Vorbis support" ) ;
add_person ( "André Souza" , "luke_br" , "SDL-based OpenGL renderer" ) ;
2012-01-28 10:19:39 +00:00
add_person ( "Tom Frost" , "TomFrost" , "WebOS port contributions" ) ;
2011-10-08 18:23:48 +00:00
end_persons ( ) ;
2011-03-22 08:45:00 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "FreeSCI Contributors" ) ;
begin_persons ( ) ;
add_person ( "Francois-R Boyer" , "" , "MT-32 information and mapping code" ) ;
add_person ( "Rainer Canavan" , "" , "IRIX MIDI driver and bug fixes" ) ;
add_person ( "Xiaojun Chen" , "" , "" ) ;
add_person ( "Paul David Doherty" , "" , "Game version information" ) ;
add_person ( "Vyacheslav Dikonov" , "" , "Config script improvements" ) ;
add_person ( "Ruediger Hanke" , "" , "Port to the MorphOS platform" ) ;
add_person ( "Matt Hargett" , "" , "Clean-ups, bugfixes, Hardcore QA, Win32" ) ;
add_person ( "Max Horn" , "" , "SetJump implementation" ) ;
add_person ( "Ravi I." , "" , "SCI0 sound resource specification" ) ;
add_person ( "Emmanuel Jeandel" , "" , "Bugfixes and bug reports" ) ;
add_person ( "Dmitry Jemerov" , "" , "Port to the Win32 platform, numerous bugfixes" ) ;
add_person ( "Chris Kehler" , "" , "Makefile enhancements" ) ;
add_person ( "Christopher T. Lansdown" , "" , "Original CVS maintainer, Alpha compatibility fixes" ) ;
add_person ( "Sergey Lapin" , "" , "Port of Carl's type 2 decompression code" ) ;
add_person ( "Rickard Lind" , "" , "MT-32->GM MIDI mapping magic, sound research" ) ;
add_person ( "Hubert Maier" , "" , "AmigaOS 4 port" ) ;
add_person ( "Johannes Manhave" , "" , "Document format translation" ) ;
add_person ( "Claudio Matsuoka" , "" , "CVS snapshots, daily builds, BeOS and cygwin ports" ) ;
add_person ( "Dark Minister" , "" , "SCI research (bytecode and parser)" ) ;
add_person ( "Carl Muckenhoupt" , "" , "Sources to the SCI resource viewer tools that started it all" ) ;
add_person ( "Anders Baden Nielsen" , "" , "PPC testing" ) ;
add_person ( "Walter van Niftrik" , "" , "Ports to the Dreamcast and GP32 platforms" ) ;
add_person ( "Rune Orsval" , "" , "Configuration file editor" ) ;
add_person ( "Solomon Peachy" , "" , "SDL ports and much of the sound subsystem" ) ;
add_person ( "Robey Pointer" , "" , "Bug tracking system hosting" ) ;
add_person ( "Magnus Reftel" , "" , "Heap implementation, Python class viewer, bugfixes" ) ;
add_person ( "Christoph Reichenbach" , "" , "UN*X code, VM/Graphics/Sound/other infrastructure" ) ;
add_person ( "George Reid" , "" , "FreeBSD package management" ) ;
add_person ( "Lars Skovlund" , "" , "Project maintenance, most documentation, bugfixes, SCI1 support" ) ;
add_person ( "Rink Springer" , "" , "Port to the DOS platform, several bug fixes" ) ;
add_person ( "Rainer De Temple" , "" , "SCI research" ) ;
add_person ( "Sean Terrell" , "" , "" ) ;
add_person ( "Hugues Valois" , "" , "Game selection menu" ) ;
add_person ( "Jordi Vilalta" , "" , "Numerous code and website clean-up patches" ) ;
add_person ( "Petr Vyhnak" , "" , "The DCL-INFLATE algorithm, many Win32 improvements" ) ;
add_person ( "Bas Zoetekouw" , "" , "Man pages, debian package management, CVS maintenance" ) ;
end_persons ( ) ;
add_paragraph ( "Special thanks to Prof. Dr. Gary Nutt " .
"for allowing the FreeSCI VM extension as a " .
"course project in his Advanced OS course." ) ;
add_paragraph ( "Special thanks to Bob Heitman and Corey Cole for their support of FreeSCI." ) ;
2010-06-24 22:37:30 +00:00
end_section ( ) ;
2005-12-19 02:23:01 +00:00
2011-10-08 18:23:48 +00:00
add_paragraph ( "And to all the contributors, users, and beta testers we've missed. Thanks!" ) ;
2005-12-19 02:23:01 +00:00
end_section ( ) ;
2009-07-30 20:46:43 +00:00
2011-10-08 18:23:48 +00:00
# HACK!
2012-09-06 15:46:28 +00:00
$ max_name_width = 17 ;
2011-10-08 18:23:48 +00:00
begin_section ( "Special thanks to" ) ;
begin_persons ( ) ;
2012-01-31 19:32:17 +00:00
add_person ( "Daniel Balsom" , "DanielFox" , "For the original Reinherit (SAGA) code" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Sander Buskens" , "" , "For his work on the initial reversing of Monkey2" ) ;
add_person ( "" , "Canadacow" , "For the original MT-32 emulator" ) ;
add_person ( "Kevin Carnes" , "" , "For Scumm16, the basis of ScummVM's older gfx codecs" ) ;
add_person ( "Curt Coder" , "" , "For the original TrollVM (preAGI) code" ) ;
add_person ( "Patrick Combet" , "Dorian Gray" , "For the original Gobliiins ADL player" ) ;
add_person ( "Ivan Dubrov" , "" , "For contributing the initial version of the Gobliiins engine" ) ;
add_person ( "Henrik Engqvist" , "qvist" , "For generously providing hosting for our buildbot, SVN repository, planet and doxygen sites as well as tons of HD space" ) ;
add_person ( "DOSBox Team" , "" , "For their awesome OPL2 and OPL3 emulator" ) ;
2012-09-06 15:45:44 +00:00
add_person ( "Yusuke Kamiyamane" , "" , "For contributing some GUI icons " ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Till Kresslein" , "Krest" , "For design of modern ScummVM GUI" ) ;
add_person ( "" , "Jezar" , "For his freeverb filter implementation" ) ;
add_person ( "Jim Leiterman" , "" , "Various info on his FM-TOWNS/Marty SCUMM ports" ) ;
add_person ( "" , "lloyd" , "For deep tech details about C64 Zak & MM" ) ;
add_person ( "Sarien Team" , "" , "Original AGI engine code" ) ;
add_person ( "Jimmi Thøgersen" , "" , "For ScummRev, and much obscure code/documentation" ) ;
add_person ( "" , "Tristan" , "For additional work on the original MT-32 emulator" ) ;
add_person ( "James Woodcock" , "" , "Soundtrack enhancements" ) ;
end_persons ( ) ;
add_paragraph (
"Tony Warriner and everyone at Revolution Software Ltd. for sharing " .
"with us the source of some of their brilliant games, allowing us to " .
"release Beneath a Steel Sky as freeware... and generally being " .
"supportive above and beyond the call of duty." ) ;
add_paragraph (
"John Passfield and Steve Stamatiadis for sharing the source of their " .
"classic title, Flight of the Amazon Queen and also being incredibly " .
"supportive." ) ;
add_paragraph (
"Joe Pearce from The Wyrmkeep Entertainment Co. for sharing the source " .
"of their famous title Inherit the Earth and always prompt replies to " .
"our questions." ) ;
add_paragraph (
"Aric Wilmunder, Ron Gilbert, David Fox, Vince Lee, and all those at " .
"LucasFilm/LucasArts who made SCUMM the insane mess to reimplement " .
"that it is today. Feel free to drop us a line and tell us what you " .
"think, guys!" ) ;
add_paragraph (
"Alan Bridgman, Simon Woodroffe and everyone at Adventure Soft for " .
"sharing the source code of some of their games with us." ) ;
add_paragraph (
"John Young, Colin Smythe and especially Terry Pratchett himself for " .
"sharing the source code of Discworld I & II with us." ) ;
add_paragraph (
"Emilio de Paz Aragón from Alcachofa Soft for sharing the source code " .
"of Drascula: The Vampire Strikes Back with us and his generosity with " .
"freewaring the game." ) ;
add_paragraph (
"David P. Gray from Gray Design Associates for sharing the source code " .
"of the Hugo trilogy." ) ;
add_paragraph (
"Broken Sword 2.5 team for providing sources of their engine and their great " .
"support." ) ;
2012-07-20 18:50:00 +00:00
add_paragraph (
"Neil Dodwell and David Dew from Creative Reality for providing the source " .
"of Dreamweb and for their tremendous support." ) ;
add_paragraph (
"Janusz Wiśniewski and Miroslaw Liminowicz from Laboratorium Komputerowe Avalon " .
2012-09-06 15:19:22 +00:00
"for providing full source code for Sołtys and letting us redistribute the game." ) ;
2012-07-20 18:50:00 +00:00
2012-09-06 14:53:01 +00:00
add_paragraph (
2012-09-06 15:19:22 +00:00
"Jan Nedoma for providing the sources to the Wintermute-engine, and for his " .
"support while porting the engine to ScummVM." ) ;
2012-07-20 18:50:00 +00:00
2012-03-21 18:55:12 +00:00
add_paragraph (
"Bob Bell, Michel Kripalani, Tommy Yune, from Presto Studios for " .
"providing the source code of The Journeyman Project: Pegasus Prime." ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2005-12-19 02:23:01 +00:00
2004-12-24 00:59:56 +00:00
end_credits ( ) ;