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
2019-10-09 00:23:31 +00:00
# - The credits.yaml, alternative version for use on the website
2021-03-14 16:42:00 +00:00
# - The credits.rst file used by the manual
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 ;
2019-10-09 00:23:31 +00:00
# Variables used for yaml output
my $ person_started = 0 ;
my $ group_started = 0 ;
my $ group_indent = "" ;
my $ paragraph_started = 0 ;
my $ indent = "" ;
2005-12-19 02:23:01 +00:00
# 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
2004-12-24 00:59:56 +00:00
$ mode = "CPP" if ( $ ARGV [ 0 ] eq "--cpp" ) ; # credits.h (for use by about.cpp)
2005-03-22 20:16:02 +00:00
$ mode = "RTF" if ( $ ARGV [ 0 ] eq "--rtf" ) ; # Credits.rtf (Mac OS X About box)
2019-04-17 21:06:17 +00:00
$ mode = "STRONGHELP" if ( $ ARGV [ 0 ] eq "--stronghelp" ) ; # AUTHORS (RISC OS StrongHelp manual)
2020-09-05 01:20:49 +00:00
$ mode = "YAML" if ( $ ARGV [ 0 ] eq "--yaml" ) ; # YAML (Simple format, used in the Website)
2021-03-14 16:42:00 +00:00
$ mode = "RST" if ( $ ARGV [ 0 ] eq "--rst" ) ; # Restructured text (used in the manual)
2004-12-24 00:59:56 +00:00
}
if ( $ mode eq "" ) {
2021-03-14 16:42:00 +00:00
print STDERR "Usage: $0 [--text | --cpp | --rtf | --stronghelp | --yaml | --rst]\n" ;
print STDERR " Just pass --text / --cpp / --rtf / --stronghelp / --yaml / --rst 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 ;
2020-08-18 14:13:39 +00:00
$ max_name_width = 30 ; # 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
2020-08-18 14:13:39 +00:00
$ text =~ s/Á/A/g ;
2004-12-24 00:59:56 +00:00
$ text =~ s/á/a/g ;
$ text =~ s/é/e/g ;
2013-10-30 21:56:16 +00:00
$ text =~ s/í/i/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 ;
2018-11-15 06:31:19 +00:00
$ text =~ s/ú/u/g ;
$ text =~ s/ą/a/g ;
$ text =~ s/Ł/L/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 ;
2018-11-15 06:31:19 +00:00
$ text =~ s/Ľ/L/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 ;
2013-10-30 21:56:16 +00:00
$ text =~ s/ñ/n/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 ;
}
2021-03-14 16:42:00 +00:00
# Convert HTML entities to UTF-8 for Restructured Text output
sub html_entities_to_utf8 {
my $ text = shift ;
$ text =~ s/Á/\xC3\x81/g ;
$ text =~ s/á/\xC3\xA1/g ;
$ text =~ s/é/\xC3\xA9/g ;
$ text =~ s/í/\xC3\xAD/g ;
$ text =~ s/ì/\xC3\xAC/g ;
$ text =~ s/ó/\xC3\xB3/g ;
$ text =~ s/ø/\xC3\xB8/g ;
$ text =~ s/ú/\xC3\xBA/g ;
$ text =~ s/ą/\xC4\x85/g ;
$ text =~ s/Ł/\xC5\x81/g ;
$ text =~ s/ł/\xC5\x82/g ;
$ text =~ s/ś/\xC5\x9B/g ;
$ text =~ s/Ľ/\xC4\xBD/g ;
$ text =~ s/Š/\xC5\xA0/g ;
$ text =~ s/å/\xC3\xA5/g ;
$ text =~ s/ñ/\xC3\xB1/g ;
$ text =~ s/ä/\xC3\xA4/g ;
$ text =~ s/ë/\xC3\xAB/g ;
$ text =~ s/ü/\xC3\xBC/g ;
$ text =~ s/ö/\xC3\xB6/g ;
$ text =~ s/&/&/g ;
return $ text ;
}
2019-04-17 21:06:17 +00:00
# Convert HTML entities to ISO/IEC 8859-1 for the StrongHelp manual
sub html_entities_to_iso8859_1 {
my $ text = shift ;
2020-08-18 14:13:39 +00:00
$ text =~ s/Á/\xC1/g ;
2019-04-17 21:06:17 +00:00
$ text =~ s/á/\xE1/g ;
$ text =~ s/é/\xE9/g ;
$ text =~ s/í/\xED/g ;
$ text =~ s/ì/\xEC/g ;
$ text =~ s/ó/\xF3/g ;
$ text =~ s/ø/\xF8/g ;
$ text =~ s/ú/\xFA/g ;
$ text =~ s/ą/a/g ;
$ text =~ s/Ł/L/g ;
$ text =~ s/ł/l/g ;
$ text =~ s/ś/s/g ;
$ text =~ s/Ľ/L/g ;
$ text =~ s/Š/S/g ;
$ text =~ s/å/\xE5/g ;
$ text =~ s/ñ/\xF1/g ;
$ text =~ s/ä/\xE4/g ;
$ text =~ s/ë/\xEB/g ;
$ text =~ s/ü/\xFC/g ;
$ text =~ s/ö/\xF6/g ;
$ text =~ s/&/&/g ;
return $ text ;
}
2006-06-20 22:50:27 +00:00
# Convert HTML entities to C++ characters
sub html_entities_to_cpp {
my $ text = shift ;
2021-04-18 00:30:38 +00:00
$ text =~ s/Á/\\303\\201/g ;
$ text =~ s/á/\\303\\241/g ;
$ text =~ s/é/\\303\\251/g ;
$ text =~ s/í/\\303\\255/g ;
$ text =~ s/ì/\\303\\254/g ;
$ text =~ s/ó/\\303\\263/g ;
$ text =~ s/ø/\\303\\270/g ;
$ text =~ s/ú/\\303\\272/g ;
$ text =~ s/ą/\\304\\205/g ;
$ text =~ s/Ł/\\305\\201/g ;
$ text =~ s/ł/\\305\\202/g ;
$ text =~ s/ś/\\305\\233/g ;
$ text =~ s/Ľ/\\304\\275/g ;
$ text =~ s/Š/\\305\\240/g ;
$ text =~ s/å/\\303\\245/g ;
$ text =~ s/ñ/\\303\\261/g ;
$ text =~ s/ä/\\303\\244/g ;
$ text =~ s/ë/\\303\\253/g ;
$ text =~ s/ü/\\303\\274/g ;
$ text =~ s/ö/\\303\\266/g ;
2006-06-20 22:50:27 +00:00
$ 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
2020-08-18 14:13:39 +00:00
$ text =~ s/Á/\\'c1/g ;
2005-03-22 20:16:02 +00:00
$ text =~ s/á/\\'87/g ;
$ text =~ s/é/\\'8e/g ;
2013-10-30 21:56:16 +00:00
$ text =~ s/í/\\'92/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 ;
2018-11-15 06:31:19 +00:00
$ text =~ s/ú/\\'9c/g ;
2011-02-08 22:28:32 +00:00
$ text =~ s/å/\\'8c/g ;
2018-05-29 02:04:34 +00:00
# The following numerical values are decimal!
2018-11-15 06:31:19 +00:00
$ text =~ s/ą/\\uc0\\u261 /g ;
$ text =~ s/Ł/\\uc0\\u321 /g ;
2005-03-22 20:16:02 +00:00
$ text =~ s/ł/\\uc0\\u322 /g ;
2018-05-29 02:04:34 +00:00
$ text =~ s/ś/\\uc0\\u347 /g ;
2018-11-15 06:31:19 +00:00
$ text =~ s/Ľ/\\uc0\\u317 /g ;
2018-05-29 02:04:34 +00:00
$ text =~ s/Š/\\uc0\\u352 /g ;
2005-05-09 21:21:21 +00:00
2010-02-10 17:08:07 +00:00
# Back to hex numbers
2013-10-30 21:56:16 +00:00
$ text =~ s/ñ/\\'96/g ;
2005-05-09 21:21:21 +00:00
$ text =~ s/ä/\\'8a/g ;
2018-05-29 02:04:34 +00:00
$ text =~ s/ë/\\'91/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 ;
}
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 ;
2020-09-05 01:20:49 +00:00
if ( $ 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" ;
2019-10-09 00:23:31 +00:00
} elsif ( $ mode eq "YAML" ) {
print "# This file was generated by credits.pl. Do not edit by hand!\n" ;
2019-04-17 21:06:17 +00:00
} elsif ( $ mode eq "STRONGHELP" ) {
print "ScummVM - AUTHORS\n" ;
print "# This file was generated by credits.pl. Do not edit by hand!\n" ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
print "..\n" ;
print " This file was generated by credits.pl. Do not edit by hand!\n" ;
print "\n" ;
print "=========\n" ;
print "Credits\n" ;
print "=========\n" ;
print "\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" ;
}
}
sub begin_section {
my $ title = shift ;
2018-08-08 01:14:22 +00:00
my $ anchor = 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...
$ title = html_entities_to_cpp ( $ title ) ;
print '"C1""' . $ title . '",' . "\n" ;
print '"",' . "\n" ;
2005-12-19 02:23:01 +00:00
} else {
2013-02-04 13:16:38 +00:00
$ title = html_entities_to_cpp ( $ title ) ;
print '"C1""' . $ title . '",' . "\n" ;
2005-12-19 02:23:01 +00:00
}
2019-10-09 00:23:31 +00:00
} elsif ( $ mode eq "YAML" ) {
2020-10-03 13:09:10 +00:00
my $ key = "" ;
$ indent = ( " " x ( $ section_level ) ) ;
2019-10-09 00:23:31 +00:00
if ( $ section_level eq 1 ) {
$ key = "subsection:\n" ;
}
if ( $ section_level < 2 ) {
if ( @ section_count [ $ section_level ] eq 0 ) {
print $ indent . $ key ;
}
print $ indent . "-\n" ;
print $ indent . " title: \"" . $ title . "\"\n" ;
if ( $ anchor ) {
print $ indent . " anchor: \"" . $ anchor . "\"\n" ;
}
}
2019-04-17 21:06:17 +00:00
} elsif ( $ mode eq "STRONGHELP" ) {
$ title = html_entities_to_iso8859_1 ( $ title ) ;
print "#fH" . ( $ section_level + 1 ) . ":" . $ title . "\n" ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
$ title = html_entities_to_utf8 ( $ title ) ;
print $ title . "\n" ;
my $ rst_header = "" ;
if ( $ section_level eq 0 ) {
print "=" x ( length $ title ) . "\n\n" ;
} elsif ( $ section_level eq 1 ) {
print "*" x ( length $ title ) . "\n\n" ;
} elsif ( $ section_level eq 2 ) {
print "^" x ( length $ title ) . "\n\n" ;
}
2005-12-19 02:23:01 +00:00
}
# Implicit start of person list on section level 2
if ( $ section_level >= 2 ) {
2019-10-09 00:23:31 +00:00
begin_persons ( $ title , 1 ) ;
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 - - ;
2019-10-09 00:23:31 +00:00
$ paragraph_started = 0 ;
$ group_started = 0 ;
2005-12-19 02:23:01 +00:00
# Implicit end of person list on section level 2
if ( $ section_level >= 2 ) {
end_persons ( ) ;
2019-10-09 00:23:31 +00:00
$ group_started = 1 ;
2005-12-19 02:23:01 +00:00
}
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" ;
2005-12-19 02:23:01 +00:00
}
}
sub begin_persons {
2009-05-23 20:21:17 +00:00
my $ title = shift ;
2019-10-09 00:23:31 +00:00
my $ level = shift ;
2020-09-05 01:20:49 +00:00
if ( $ mode eq "YAML" ) {
2020-10-03 13:09:10 +00:00
$ group_indent = $ level eq 1 ? " " : ( " " x $ section_level ) ;
2019-10-09 00:23:31 +00:00
if ( $ group_started == 0 ) {
print $ group_indent . "group:\n" ;
$ group_started = 1 ;
}
print $ group_indent . "-\n" ;
print $ group_indent . " name: \"" . $ title . "\"\n" ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
print ".. list-table::\n" ;
print " :widths: 35 65\n" ;
print "\n" ;
2005-12-19 02:23:01 +00:00
}
}
sub end_persons {
if ( $ mode eq "TEXT" ) {
print "\n" ;
} elsif ( $ mode eq "RTF" ) {
# nothing
2019-04-17 21:06:17 +00:00
} elsif ( $ mode eq "STRONGHELP" ) {
print "\n" ;
2019-10-09 00:23:31 +00:00
} elsif ( $ mode eq "YAML" ) {
$ person_started = 0 ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
print "\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 ) {
2019-10-09 00:23:31 +00:00
my $ inner_indent = ( $ section_level * 2 + 1 ) + $ max_name_width + 3 ;
my $ multitab = " " x $ inner_indent ;
print " - " . substr ( wrap ( $ multitab , $ multitab , $ desc ) , $ inner_indent ) ;
2005-12-19 02:23:01 +00:00
}
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 "" ;
2006-06-20 22:50:27 +00:00
$ name = html_entities_to_cpp ( $ name ) ;
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 ) {
2006-06-20 22:50:27 +00:00
$ desc = html_entities_to_cpp ( $ desc ) ;
2008-11-20 13:46:34 +00:00
print '"C2""' . $ desc . '",' . "\n" ;
2005-12-19 02:23:01 +00:00
}
2019-10-09 00:23:31 +00:00
} elsif ( $ mode eq "YAML" ) {
$ indent = $ group_indent . " " ;
if ( $ person_started eq 0 ) {
print $ indent . "person:\n" ;
$ person_started = 1 ;
}
print $ indent . "-\n" ;
$ name = "???" if $ name eq "" ;
print $ indent . " name: \"" . $ name . "\"\n" ;
print $ indent . " alias: \"" . $ nick . "\"\n" ;
print $ indent . " description: \"" . $ desc . "\"\n" ;
2019-04-17 21:06:17 +00:00
} elsif ( $ mode eq "STRONGHELP" ) {
my $ min_name_width = length $ desc > 0 ? $ max_name_width : 0 ;
$ name = $ nick if $ name eq "" ;
$ name = html_entities_to_iso8859_1 ( $ name ) ;
$ desc = html_entities_to_iso8859_1 ( $ desc ) ;
$ tab = " " x ( $ section_level * 2 + 1 ) ;
print $ tab . "{*}" . $ name . "{*}" ;
print "\t" . $ desc . "\n" ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
my $ min_name_width = length $ desc > 0 ? $ max_name_width : 0 ;
$ name = $ nick if $ name eq "" ;
$ name = html_entities_to_utf8 ( $ name ) ;
$ desc = html_entities_to_utf8 ( $ desc ) ;
print " * - " . $ name . "\n" ;
if ( length $ desc > 0 ) {
print " - " . $ desc . "\n" ;
} else {
print " -\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" ) {
2021-04-18 00:39:49 +00:00
$ text = html_entities_to_cpp ( $ 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" ;
2019-10-09 00:23:31 +00:00
} elsif ( $ mode eq "YAML" ) {
2020-10-03 13:09:10 +00:00
$ indent = ( " " x $ section_level ) ;
2019-10-09 00:23:31 +00:00
if ( $ paragraph_started eq 0 ) {
print $ indent . "paragraph:\n" ;
$ paragraph_started = 1 ;
}
print $ indent . "- \"" . $ text . "\"\n" ;
2019-04-17 21:06:17 +00:00
} elsif ( $ mode eq "STRONGHELP" ) {
$ text = html_entities_to_iso8859_1 ( $ text ) ;
print "#Wrap On\n" ;
$ tab = " " x ( $ section_level * 2 + 1 ) ;
print $ text . "\n" ;
print "#Wrap\n\n" ;
2021-03-14 16:42:00 +00:00
} elsif ( $ mode eq "RST" ) {
$ text = html_entities_to_utf8 ( $ text ) ;
print $ text . "\n\n" ;
2004-12-24 00:59:56 +00:00
}
}
2021-08-02 11:44:21 +00:00
sub readfile { do { local ( @ ARGV , $/ ) = $ _ [ 0 ] ; < > } }
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" ) ;
2018-09-25 03:08:51 +00:00
begin_section ( "ScummVM Team" , "scummvm_team" ) ;
2020-10-12 12:44:44 +00:00
begin_section ( "Project Leaders" , "project_leader" ) ;
2011-10-08 18:23:48 +00:00
begin_persons ( ) ;
2020-10-12 12:44:44 +00:00
add_person ( "Paweł Kołodziejski" , "aquadran" , "" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
2020-10-12 12:44:44 +00:00
add_person ( "Einar Johan T. Sømåen" , "somaen" , "" ) ;
2011-10-08 18:23:48 +00:00
end_persons ( ) ;
end_section ( ) ;
2010-10-18 21:35:15 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "PR Office" , "pr" ) ;
2011-10-08 18:23:48 +00:00
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
2018-08-08 01:08:55 +00:00
begin_section ( "Retired Project Leaders" , "retired_leaders" ) ;
2011-10-08 18:23:48 +00:00
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
2018-08-08 01:08:55 +00:00
begin_section ( "Engine Teams" , "engine_teams" ) ;
2021-08-02 11:44:21 +00:00
# read the credits from all engines; this is a bit of a hack.
# if one wants different sorting (e.g. based on the full engine name, not
# just the abbreviation used for the directory name), then somewhat more
# sophistication is needed
2021-08-22 11:55:40 +00:00
my $ dir ;
my @ dirs = `ls -d engines/*/ | sort` ;
foreach $ dir ( @ dirs ) {
my $ file = "${dir}/credits.pl" ;
$ file =~ s/\R//g ;
if ( - e $ file ) {
my $ credits_pl = readfile ( $ file ) ;
eval $ credits_pl ;
}
2021-08-02 11:44:21 +00:00
}
2011-01-19 23:05:06 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-09-25 03:08:51 +00:00
begin_section ( "Backend Teams" , "backend_teams" ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Android" ) ;
add_person ( "Andre Heider" , "dhewg" , "" ) ;
add_person ( "Angus Lees" , "Gus" , "" ) ;
2016-05-17 17:30:07 +00:00
add_person ( "Lubomyr Lisen" , "" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Dreamcast" ) ;
add_person ( "Marcus Comstedt" , "" , "" ) ;
end_section ( ) ;
2016-02-26 21:17:29 +00:00
begin_section ( "GCW0" ) ;
add_person ( "Eugene Sandulenko" , "" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "GPH Devices (GP2X, GP2XWiz & Caanoo)" ) ;
add_person ( "John Willis" , "DJWillis" , "" ) ;
end_section ( ) ;
2015-12-02 13:50:40 +00:00
begin_section ( "iPhone / iPad" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
2015-12-02 13:50:40 +00:00
add_person ( "Vincent Bénony" , "bSr43" , "" ) ;
2019-08-15 21:27:57 +00:00
add_person ( "Thierry Crozat" , "criezy" , "" ) ;
2011-10-08 18:23:48 +00:00
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 ( ) ;
2016-05-17 17:30:07 +00:00
2016-04-14 04:38:46 +00:00
begin_section ( "Nintendo 3DS" ) ;
add_person ( "Thomas Edvalson" , "Cruel" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
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 ( ) ;
2019-06-07 01:59:49 +00:00
begin_section ( "Nintendo Switch" ) ;
add_person ( "" , "Cpasjuste" , "" ) ;
add_person ( "" , "rsn8887" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "OpenPandora" ) ;
add_person ( "John Willis" , "DJWillis" , "" ) ;
end_section ( ) ;
begin_section ( "PocketPC / WinCE" ) ;
add_person ( "Nicolas Bacca" , "arisme" , "(retired)" ) ;
2019-11-10 17:59:47 +00:00
add_person ( "Ismail Khatib" , "CeRiAl" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
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 ( ) ;
2017-03-14 20:05:13 +00:00
begin_section ( "PlayStation Vita" ) ;
add_person ( "" , "Cpasjuste" , "" ) ;
add_person ( "" , "rsn8887" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2014-06-11 09:48:51 +00:00
add_person ( "Fedor Strizhniou" , "zanac" , "" ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2020-09-24 10:42:21 +00:00
add_person ( "Alexander Reim" , "AReim1982" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2015-11-19 15:06:23 +00:00
begin_section ( "Raspberry Pi" ) ;
add_person ( "Manuel Alfayate" , "vanfanel" , "" ) ;
end_section ( ) ;
2010-06-24 22:37:30 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Other subsystems" , "other_subsystems" ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2016-09-26 20:33:55 +00:00
add_person ( "Johannes Schickel" , "LordHoto" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "GUI" ) ;
2019-05-09 16:57:50 +00:00
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
2019-05-12 11:20:04 +00:00
add_person ( "Vicent Marti" , "tanoku" , "" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Eugene Sandulenko" , "sev" , "" ) ;
2016-09-26 20:33:55 +00:00
add_person ( "Johannes Schickel" , "LordHoto" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
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)" ) ;
2021-08-21 22:43:38 +00:00
add_person ( "Coen Rampen" , "NMIError" , "Sound improvements" ) ;
2011-10-08 18:23:48 +00:00
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
2018-08-08 01:08:55 +00:00
begin_section ( "Website (code)" , "web_code" ) ;
2011-10-08 18:23:48 +00:00
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
2018-08-08 01:08:55 +00:00
begin_section ( "Website (maintenance)" , "web_maint" ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2018-08-08 01:14:22 +00:00
add_person ( "Matan Bareket" , "mataniko" , "Site maintainer" ) ;
2011-10-08 18:23:48 +00:00
end_persons ( ) ;
2010-07-12 15:50:48 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Website (content)" , "web_content" ) ;
2011-10-08 18:23:48 +00:00
add_paragraph ( "All active team members" ) ;
2011-01-19 23:05:06 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Documentation" , "docs" ) ;
2011-10-08 18:23:48 +00:00
begin_persons ( ) ;
add_person ( "Thierry Crozat" , "criezy" , "Numerous contributions to documentation" ) ;
add_person ( "Joachim Eberhard" , "joachimeberhard" , "Numerous contributions to documentation (retired)" ) ;
2016-05-20 20:28:23 +00:00
add_person ( "Matthew Hoops" , "clone2727" , "Numerous contributions to documentation (retired)" ) ;
2021-04-21 05:01:54 +00:00
add_person ( "Cadi Howley" , "cadih" , "User documentation (GSOD 2020)" ) ;
2011-10-08 18:23:48 +00:00
end_persons ( ) ;
2010-12-12 00:24:19 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Retired Team Members" , "retired_members" ) ;
2011-10-08 18:23:48 +00:00
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 ( ) ;
2018-09-25 03:08:51 +00:00
begin_section ( "Other contributions" , "other_contrib" ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Packages" , "packages" ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "AmigaOS 4" ) ;
add_person ( "Hans-Jörg Frieden" , "" , "(retired)" ) ;
2020-08-27 21:10:35 +00:00
add_person ( "Hubert Maier" , "raziel-" , "" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Juha Niemimäki" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "Atari/FreeMiNT" ) ;
add_person ( "Keith Scroggins" , "KeithS" , "" ) ;
end_section ( ) ;
begin_section ( "BeOS" ) ;
2014-07-11 13:40:16 +00:00
add_person ( "Stefan Parviainen" , "" , "(retired)" ) ;
2011-10-08 18:23:48 +00:00
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 ( ) ;
2014-07-11 13:46:25 +00:00
begin_section ( "Haiku" ) ;
add_person ( "Luc Schrijvers" , "Begasus" , "" ) ;
end_section ( ) ;
2019-08-15 21:27:57 +00:00
begin_section ( "macOS" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Max Horn" , "Fingolfin" , "(retired)" ) ;
add_person ( "Oystein Eftevaag" , "vinterstum" , "" ) ;
2016-04-02 12:32:49 +00:00
add_person ( "Thierry Crozat" , "criezy" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Mandriva" ) ;
add_person ( "Dominik Scherer" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "MorphOS" ) ;
2020-08-30 14:33:22 +00:00
add_person ( "" , "BeWorld" , "" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Fabien Coeurjoly" , "fab1" , "" ) ;
add_person ( "Rüdiger Hanke" , "" , "(retired)" ) ;
end_section ( ) ;
begin_section ( "OS/2" ) ;
add_person ( "Paul Smedley" , "Creeping" , "" ) ;
end_section ( ) ;
2017-11-19 12:22:41 +00:00
begin_section ( "RISC OS" ) ;
add_person ( "Cameron Cawley" , "ccawley2011" , "" ) ;
end_section ( ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2021-07-04 15:35:49 +00:00
add_person ( "Lothar Serra Mari" , "lotharsm" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Win64" ) ;
add_person ( "Chris Gray" , "Psychoid" , "(retired)" ) ;
2016-09-26 20:33:55 +00:00
add_person ( "Johannes Schickel" , "LordHoto" , "(retired)" ) ;
2021-07-04 15:35:49 +00:00
add_person ( "Lothar Serra Mari" , "lotharsm" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2010-11-21 22:12:31 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "GUI Translations" , "gui_translations" ) ;
2011-10-08 18:23:48 +00:00
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" , "" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "" , "scootergrisen" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2014-08-27 07:15:11 +00:00
begin_section ( "Dutch" ) ;
add_person ( "Ben Castricum" , "" , "" ) ;
end_section ( ) ;
2012-12-01 18:03:40 +00:00
begin_section ( "Finnish" ) ;
add_person ( "Toni Saarela" , "catnose" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "Timo Mikkolainen" , "timpii" , "" ) ;
2012-12-01 18:03:40 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "French" ) ;
add_person ( "Thierry Crozat" , "criezy" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "" , "Purple T" , "" ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2018-06-26 07:15:24 +00:00
add_person ( "Lothar Serra Mari" , "lotharsm" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
2020-08-30 14:43:20 +00:00
begin_section ( "Greek" ) ;
add_person ( "Thanasis Antoniou" , "Praetorian" , "" ) ;
2020-12-19 00:06:44 +00:00
add_person ( "Filippos Karapetis" , "bluegr" , "" ) ;
2020-08-30 14:43:20 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
begin_section ( "Hungarian" ) ;
add_person ( "Alex Bevilacqua" , "" , "" ) ;
add_person ( "George Kormendi" , "GoodOldGeorg" , "" ) ;
end_section ( ) ;
begin_section ( "Italian" ) ;
add_person ( "Matteo Angelino" , "Maff" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "Paolo Bossi" , "" , "" ) ;
add_person ( "Walter Agazzi" , "tag2015" , "" ) ;
2011-10-08 18:23:48 +00:00
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" , "" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "Marcel Souza Lemes" , "marcosoutsider" , "" ) ;
end_section ( ) ;
begin_section ( "Portuguese" ) ;
2021-06-09 11:20:52 +00:00
add_person ( "Daniel Albano" , "SupSuper" , "" ) ;
2011-10-08 18:23:48 +00:00
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" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "" , "IlDucci" , "" ) ;
add_person ( "Rodrigo Vegas Sánchez-Ferrero" , "" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Swedish" ) ;
add_person ( "Hampus Flink" , "" , "" ) ;
2020-08-30 14:43:20 +00:00
add_person ( "Adrian Frühwirth" , "bonki" , "" ) ;
2011-10-08 18:23:48 +00:00
end_section ( ) ;
begin_section ( "Ukrainian" ) ;
add_person ( "Lubomyr Lisen" , "" , "" ) ;
end_section ( ) ;
2010-08-01 21:41:43 +00:00
end_section ( ) ;
2018-08-08 01:08:55 +00:00
begin_section ( "Game Translations" , "game_translations" ) ;
2013-10-30 21:56:16 +00:00
begin_section ( "CGE" ) ;
add_person ( "Dan Serban" , "nutron" , "Soltys English translation" ) ;
add_person ( "Víctor González" , "IlDucci" , "Soltys Spanish translation" ) ;
add_person ( "Alejandro Gómez de la Muñoza" , "TheFireRed" , "Soltys Spanish translation" ) ;
end_section ( ) ;
2014-12-21 18:26:40 +00:00
begin_section ( "CGE2" ) ;
add_person ( "Arnaud Boutonné" , "Strangerke" , "Sfinx English translation" ) ;
add_person ( "Thierry Crozat" , "criezy" , "Sfinx English translation" ) ;
add_person ( "Peter Bozsó" , "uruk" , "Sfinx English translation editor" ) ;
add_person ( "Ryan Clark" , "" , "Sfinx English translation editor" ) ;
end_section ( ) ;
2013-10-30 21:56:16 +00:00
begin_section ( "Drascula" ) ;
add_person ( "Thierry Crozat" , "criezy" , "Improve French translation" ) ;
end_section ( ) ;
begin_section ( "Mortevielle" ) ;
add_person ( "Hugo Labrande" , "" , "Improve English translation" ) ;
add_person ( "Thierry Crozat" , "criezy" , "Improve English translation" ) ;
end_section ( ) ;
2019-08-15 21:27:57 +00:00
begin_section ( "Supernova" ) ;
add_person ( "Joseph-Eugene Winzer" , "Joefish" , "English translation" ) ;
add_person ( "Thierry Crozat" , "criezy" , "English translation" ) ;
2020-09-07 01:09:07 +00:00
add_person ( "Walter Agazzi" , "" , "Italian translation" ) ;
2019-08-15 21:27:57 +00:00
end_section ( ) ;
2013-10-30 21:56:16 +00:00
end_section ( ) ;
2011-10-08 18:23:48 +00:00
2018-08-08 01:08:55 +00:00
begin_section ( "Websites (design)" , "web_design" ) ;
2011-10-08 18:23:48 +00:00
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
2018-08-08 01:08:55 +00:00
begin_section ( "Code contributions" , "code_contrib" ) ;
2011-10-08 18:23:48 +00:00
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" ) ;
2020-10-09 17:04:07 +00:00
add_person ( "Dries Harnie" , "Botje" , "Android port for ResidualVM" ) ;
2011-10-08 18:23:48 +00:00
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" ) ;
2021-03-17 16:27:40 +00:00
add_person ( "Keith Kaisershot" , "blitter" , "Several Pegasus Prime patches and DVD additions" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Andreas Karlsson" , "Sprawl" , "Initial port for SymbianOS" ) ;
2015-03-05 00:08:02 +00:00
add_person ( "Stefan Kristiansson" , "skristiansson" , "Initial work on SDL2 support" ) ;
2011-10-08 18:23:48 +00:00
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" ) ;
2021-01-24 16:24:30 +00:00
add_person ( "Joel Teichroeb" , "klusark" , "Android port for ResidualVM" ) ;
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
2018-09-25 03:08:51 +00:00
begin_section ( "FreeSCI Contributors" , "freesci_contrib" ) ;
2011-10-08 18:23:48 +00:00
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 " .
2019-10-09 00:23:31 +00:00
"for allowing the FreeSCI VM extension as a " .
"course project in his Advanced OS course." ) ;
2011-10-08 18:23:48 +00:00
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
2021-01-24 16:24:30 +00:00
begin_section ( "ResidualVM Contributors" , "residualvm_contrib" ) ;
begin_section ( "Grim" ) ;
2020-10-09 17:04:07 +00:00
add_person ( "Thomas Allen" , "olldray" , "Various engine code fixes and improvements" ) ;
add_person ( "Torbjörn Andersson" , "eriktorbjorn" , "Various code fixes" ) ;
add_person ( "Ori Avtalion" , "salty-horse" , "Lipsync, LAF support, various code fixes" ) ;
add_person ( "Robert Biro" , "DarthJDG" , "Antialiasing support" ) ;
add_person ( "Bastien Bouclet" , "bgK" , "Various fixes to engine" ) ;
add_person ( "David Cardwell" , "d356" , "Few fixes to EMI" ) ;
add_person ( "Marcus Comstedt" , "marcus_c" , "Initial Dreamcast port" ) ;
add_person ( "Andrea Corna" , "Yak Bizzarro" , "Patcher module, various engine improvements" ) ;
add_person ( "Jonathan Gray" , "khalek" , "Various code fixes" ) ;
add_person ( "Tobias Gunkel" , "tobigun" , "Initial Android port, few engines fixes" ) ;
add_person ( "Azamat H. Hackimov" , "winterheart" , "Configure fix" ) ;
add_person ( "Vincent Hamm" , "yazoo" , "Various engine code fixes and improvements" ) ;
add_person ( "Sven Hesse" , "DrMcCoy" , "Various compilation fixes" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "Smush codec48, Grim and EMI engine improvements" ) ;
add_person ( "Erich Hoover" , "Compholio" , "x86-64 fixes, various code fixes and improvements" ) ;
add_person ( "Max Horn" , "fingolfin" , "Few code fixes" ) ;
add_person ( "Travis Howell" , "Kirben" , "Various code fixes, Windows port" ) ;
add_person ( "Joseph Jezak" , "JoseJX" , "A lot of engine improvements and fixes" ) ;
add_person ( "Guillem Jover" , "guillemj" , "Few code improvements" ) ;
add_person ( "Filippos Karapetis" , "bluegr" , "Compilation fixes" ) ;
add_person ( "Ingo van Lil" , "inguin" , "Various fixes and improvements for EMI" ) ;
add_person ( "Vincent Pelletier" , "vpelletier" , "Various engine and TinyGL improvements" ) ;
add_person ( "Joost Peters" , "joostp" , "Various code fixes" ) ;
add_person ( "George Macon" , "gmacon" , "Few fixes" ) ;
add_person ( "Josh Matthews" , "jdm" , "Few fixes to engine" ) ;
add_person ( "Matthieu Milan" , "usineur" , "Various engine improvements" ) ;
add_person ( "Gregory Montoir" , "cyx" , "Few fixes to engine" ) ;
add_person ( "Stefano Musumeci" , "subr3v" , "TinyGL backend and engine driver improvements" ) ;
add_person ( "Christian Neumair" , "mannythegnome" , "Various optimisation patches" ) ;
add_person ( "Daniel Schepler" , "" , "Initial grim engine contributor, LUA support" ) ;
add_person ( "Dmitry Smirnov" , "onlyjob" , "Minor spelling corrections" ) ;
add_person ( "Yaron Tausky" , "yaront" , "Fixes to subtitles" ) ;
add_person ( "Julien Templier" , "Littleboy" , "create_project tool" ) ;
add_person ( "Pino Toscano" , "pinotree" , "Debian GNU/Linux package files" ) ;
add_person ( "Lionel Ulmer" , "bbrox" , "OpenGL optimisations" ) ;
add_person ( "" , "cmayer0087" , "Various engine code fixes" ) ;
add_person ( "" , "JenniBee" , "Compilation fixes" ) ;
add_person ( "" , "karjonas" , "Various engine code fixes" ) ;
add_person ( "" , "mparnaudeau" , "Various grim engine code fixes" ) ;
add_person ( "" , "PoulpiFr" , "Few fixes to Android port" ) ;
add_person ( "" , "sietschie" , "Few fixes to engine" ) ;
2021-01-24 16:24:30 +00:00
end_section ( ) ;
2020-10-09 17:04:07 +00:00
2021-01-24 16:24:30 +00:00
begin_section ( "Myst 3" ) ;
2020-10-09 17:04:07 +00:00
add_person ( "David Fioramonti" , "dafioram" , "Autosave support and few fixes" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "Various engine improvements and code fixes" ) ;
add_person ( "Stefano Musumeci" , "subr3v" , "TinyGL engine support" ) ;
2021-01-24 16:24:30 +00:00
end_section ( ) ;
2020-10-09 17:04:07 +00:00
2021-01-24 16:24:30 +00:00
begin_section ( "Stark" ) ;
2020-10-09 17:04:07 +00:00
add_person ( "Bartosz Dudziak" , "Snejp" , "Various engine improvements and code fixes" ) ;
add_person ( "Matthew Hoops" , "clone2727" , "ADPCM decoder" ) ;
add_person ( "Paweł Kołodziejski" , "aquadran" , "Various engine code fixes" ) ;
add_person ( "Awad Mackie" , "firesock" , "Few fixes to engine" ) ;
add_person ( "Marius Ioan Orban" , "mj0331" , "Code fix" ) ;
add_person ( "Vincent Pelletier" , "vpelletier" , "Raw sound support" ) ;
add_person ( "Jordi Vilalta Prat" , "jvprat" , "Initial engine contributor" ) ;
add_person ( "Scott Thomas" , "ST" , "Initial engine author" ) ;
add_person ( "Will Thomson" , "wlthomson" , "Few fixes to engine" ) ;
add_person ( "" , "Faalagorn" , "Few code improvements" ) ;
add_person ( "" , "orangeforest11" , "Few engine improvements" ) ;
2021-01-24 16:24:30 +00:00
end_section ( ) ;
2020-10-09 17:04:07 +00:00
end_section ( ) ;
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
2018-08-08 01:08:55 +00:00
begin_section ( "Special thanks to" , "special_thanks" ) ;
2011-10-08 18:23:48 +00:00
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" ) ;
2016-09-02 21:34:28 +00:00
add_person ( "Dean Beeler" , "Canadacow" , "For the original MT-32 emulator" ) ;
2011-10-08 18:23:48 +00:00
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" ) ;
2014-10-28 14:01:35 +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" ) ;
2016-09-02 21:34:28 +00:00
add_person ( "Jezar Wakefield" , "" , "For his freeverb filter implementation" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Jim Leiterman" , "" , "Various info on his FM-TOWNS/Marty SCUMM ports" ) ;
2016-09-02 21:34:28 +00:00
add_person ( "Lloyd Rosen" , "" , "For deep tech details about C64 Zak & MM" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "Sarien Team" , "" , "Original AGI engine code" ) ;
add_person ( "Jimmi Thøgersen" , "" , "For ScummRev, and much obscure code/documentation" ) ;
2016-09-02 21:34:28 +00:00
add_person ( "Tristan Matthews" , "" , "For additional work on the original MT-32 emulator" ) ;
2011-10-08 18:23:48 +00:00
add_person ( "James Woodcock" , "" , "Soundtrack enhancements" ) ;
2015-05-16 18:24:31 +00:00
add_person ( "Anton Yartsev" , "Zidane" , "For the original re-implementation of the Z-Vision engine" ) ;
2011-10-08 18:23:48 +00:00
end_persons ( ) ;
2019-10-09 00:23:31 +00:00
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, for sharing the source of The Labyrinth of Time " .
"and for always replying promptly 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 (
2020-04-18 22:13:59 +00:00
"The mindFactory team for writing Broken Sword 2.5, a splendid fan-made sequel, and for sharing " .
"the source code with us." ) ;
2019-10-09 00:23:31 +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 " .
"for providing full source code for Sołtys and Sfinx and letting us redistribute the games." ) ;
add_paragraph (
"Jan Nedoma for providing the sources to the Wintermute-engine, and for his " .
"support while porting the engine to ScummVM." ) ;
add_paragraph (
2021-03-16 21:23:55 +00:00
"Bob Bell, David Black, Michel Kripalani, and Tommy Yune from Presto Studios " .
"for providing the source code of The Journeyman Project: Pegasus Prime " .
"and The Journeyman Project 2: Buried in Time." ) ;
2019-10-09 00:23:31 +00:00
add_paragraph (
"Electronic Arts IP Preservation Team, particularly Stefan Serbicki, and Vasyl Tsvirkunov of " .
"Electronic Arts for providing the source code of the two Lost Files of Sherlock Holmes games. " .
"James M. Ferguson and Barry Duncan for their tenacious efforts to recover the sources." ) ;
add_paragraph (
2020-04-18 22:13:59 +00:00
"John Romero for sharing the source code of Hyperspace Delivery Boy! with us." ) ;
2019-10-09 00:23:31 +00:00
add_paragraph (
2020-04-18 22:13:59 +00:00
"Steffen Dingel for sharing the source code of the Mission Supernova game with us." ) ;
2015-12-06 21:57:03 +00:00
2020-10-09 17:04:07 +00:00
add_paragraph (
"The LUA developers, for creating a nice compact script interpreter." ) ;
add_paragraph (
"Tim Schafer, for obvious reasons, and everybody else who helped make " .
"Grim Fandango a brilliant game; and the EMI team for giving it their " .
"best try." ) ;
add_paragraph (
"Bret Mogilefsky, for managing to create a SPUTM-style 3D LUA engine, " .
"and avoiding the horrible hack it could have been." ) ;
add_paragraph (
"Benjamin Haisch, for emimeshviewer, which our EMI code borrows heavily from." ) ;
2021-06-09 11:20:52 +00:00
add_paragraph (
"Fabrizio Lagorio from Trecision S.p.A., for finding and providing the source code " .
"of many of their games." ) ;
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 ( ) ;