summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO43
-rw-r--r--PKGBUILD201
-rw-r--r--disk.list382
-rw-r--r--ut.desktop12
-rw-r--r--utcustom.sh106
-rw-r--r--utpg.list147
6 files changed, 891 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4a48370d8e32
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,43 @@
+pkgbase = unrealtournament
+ pkgdesc = The classic Unreal Tournament from 1999. Retail CD or DVD required.
+ pkgver = 451
+ pkgrel = 8
+ url = http://www.unrealtournament.com/
+ arch = i686
+ arch = x86_64
+ groups = ut1999-goty
+ license = custom
+ makedepends = makepkg-unreal
+ makedepends = unshield
+ depends = ossp
+ depends = libnotify
+ depends = lib32-sdl
+ depends = lib32-libgl
+ provides = ut1999
+ conflicts = ut1999
+ conflicts = ut
+ conflicts = ut-server
+ noextract = UTPGPatch451.tar.bz2
+ source = ut436.run::https://raw.github.com/XenGi/oldgames/master/ut/unreal.tournament_436-multilanguage.run
+ source = ut436goty.run::https://raw.github.com/XenGi/oldgames/master/ut/unreal.tournament_436-multilanguage.goty.run
+ source = https://raw.github.com/XenGi/oldgames/master/ut/ALAudio-86eade1c.zip
+ source = https://raw.github.com/XenGi/oldgames/master/ut/OpenGLDrv-3.6-86eade1c.zip
+ source = https://raw.github.com/XenGi/oldgames/master/ut/UTPGPatch451.tar.bz2
+ source = ut.desktop
+ source = disk.list
+ source = utpg.list
+ source = utcustom.sh
+ source = https://raw.github.com/XenGi/oldgames/master/ut/ut.svgz
+ md5sums = 726aede817997a2aefccb8c20601d760
+ md5sums = 7012dc6caaa9453dcf8951474556912a
+ md5sums = 165ced7397e1269f061e356f170a90ba
+ md5sums = 0bb18191cafbc6e6ae48e0b3577a39ad
+ md5sums = 77a735a78b1eb819042338859900b83b
+ md5sums = 8906e3958918af977f5a8583fa7c263f
+ md5sums = 7fbe728f7cef23d53bdfe6be17b7129a
+ md5sums = 72efce99d512b1a71587c2c127dccd06
+ md5sums = 5575e5771736d143a0ccaa4d4d043bcb
+ md5sums = cc8e253aac0e008c9fbe0d4cfdf3ffbd
+
+pkgname = unrealtournament
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..de22a449a7ad
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,201 @@
+# Contributor: quantax -- contact via Arch Linux forum or AUR
+# Mantainer: M0Rf30
+pkgname=unrealtournament
+pkgver=451
+pkgrel=8
+pkgdesc="The classic Unreal Tournament from 1999. Retail CD or DVD required."
+arch=('i686' 'x86_64')
+url="http://www.unrealtournament.com/"
+license=('custom')
+groups=(ut1999-goty)
+[ "$CARCH" = "i686" ] && depends=(ossp libnotify sdl libgl)
+[ "$CARCH" = "x86_64" ] && depends=(ossp libnotify lib32-sdl lib32-libgl)
+makedepends=(makepkg-unreal unshield)
+provides=(ut1999)
+conflicts=(ut1999 ut ut-server)
+source=(ut436.run::'https://raw.github.com/XenGi/oldgames/master/ut/unreal.tournament_436-multilanguage.run'
+ ut436goty.run::'https://raw.github.com/XenGi/oldgames/master/ut/unreal.tournament_436-multilanguage.goty.run'
+ https://raw.github.com/XenGi/oldgames/master/ut/ALAudio-86eade1c.zip
+ https://raw.github.com/XenGi/oldgames/master/ut/OpenGLDrv-3.6-86eade1c.zip
+ https://raw.github.com/XenGi/oldgames/master/ut/UTPGPatch451.tar.bz2
+ ut.desktop
+ disk.list
+ utpg.list
+ utcustom.sh
+ https://raw.github.com/XenGi/oldgames/master/ut/ut.svgz)
+noextract=(UTPGPatch451.tar.bz2)
+md5sums=('726aede817997a2aefccb8c20601d760'
+ '7012dc6caaa9453dcf8951474556912a'
+ '165ced7397e1269f061e356f170a90ba'
+ '0bb18191cafbc6e6ae48e0b3577a39ad'
+ '77a735a78b1eb819042338859900b83b'
+ '8906e3958918af977f5a8583fa7c263f'
+ '7fbe728f7cef23d53bdfe6be17b7129a'
+ '72efce99d512b1a71587c2c127dccd06'
+ '5575e5771736d143a0ccaa4d4d043bcb'
+ 'cc8e253aac0e008c9fbe0d4cfdf3ffbd')
+
+# You can uncomment and set these two variables in order to override the auto
+# detection done in build() by _detect_cdpath() and _detect_cdversion().
+#_cdpath="/mnt" # path to your mounted UT CD or DVD
+#_cdversion="" # "default" or "anthology"
+
+# Detect the mount point of the install medium.
+_detect_cdpath() {
+ echo "Searching for mount point of install medium... "
+
+ for mountpoint in $(egrep "(iso9660|udf)" /etc/mtab | awk '{print $2}'); do
+ if [ -f "${mountpoint}/SYSTEM/UnrealTournament.exe" ] || [ -f "${mountpoint}/Disk1/data1.hdr" ]; then
+ _cdpath="${mountpoint}"
+ break
+ fi
+ done
+
+ if [ -z "${_cdpath}" ]; then
+ cat << __EOF__ >&2
+ No mounted valid Unreal Tournament CD or Unreal Anthology
+ DVD has been detected while scanning all "iso9660"
+ and all "udf" filesystems in "/etc/mtab" for the file
+ "SYSTEM/UnrealTournament.exe" or the file "Disk1/data1.hdr".
+ Make sure you mounted the right disk correctly. If it still
+ doesn't work you can try setting the "_cdpath" and/or the
+ "_cdversion" variable in this PKGBUILD to your mount point and
+ your version of UT manually.
+__EOF__
+ return 1
+ else
+ echo " ${_cdpath} looks promising."
+ fi
+}
+
+# Determine which method should be used for extracting the files from the
+# install medium.
+_detect_cdversion() {
+ echo "Determining install method... "
+
+ if [ -f "${_cdpath}/SYSTEM/UnrealTournament.exe" ]; then
+ _cdversion="default"
+ elif [ -f "${_cdpath}/Disk1/data1.hdr" ]; then
+ _cdversion="anthology"
+ elif [ -f "${_cdpath}/System/UnrealTournament.exe" ]; then
+ _cdversion="default"
+ else
+ echo "Could not determine _cdversion." >&2
+ return 1
+ fi
+ echo " Using \"${_cdversion}\" method."
+}
+
+# Install files from most UT99 CDs.
+_build_default() {
+ echo "Extracting files from ${_cdpath}..."
+ cd "${srcdir}"
+
+ _unreal_install_files "${_cdpath}" "${pkgdir}/opt/ut" "*./System400/.*" < disk.list || return 1
+
+ _install_patches || return 1
+
+ echo "Decompressing maps from ${_cdpath}..."
+ grep "Maps/" disk.list | sed -e "s/$/\.uz/" | _unreal_decompress_files "${_cdpath}" "${pkgdir}/opt/ut" || return 1
+ grep "Maps/" disk.list | _unreal_move_files "${pkgdir}/opt/ut/System" "${pkgdir}/opt/ut" || return 1
+ rm -f -- "${pkgdir}/opt/ut/System/ucc.log"
+}
+
+# Install files from the Unreal Anthology DVD.
+_build_anthology() {
+ echo "Extracting files from ${_cdpath}..."
+ cd "${srcdir}"
+
+ ln -fs -- ${_cdpath}/Disk*/data* -t . || return 1
+ unshield -g 3_UnrealTournament_Help -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_Maps -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_Music -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_Sounds_All -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_Sounds_English -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_System_All -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_System_English -d dvd x data1.hdr || return 1
+ unshield -g 3_UnrealTournament_Textures -d dvd x data1.hdr || return 1
+ _unreal_move_files dvd "${pkgdir}/opt/ut" < disk.list || return 1
+ _install_patches || return 1
+}
+
+# Add files for running UT on Linux, apply the patches shipped by Loki and add
+# some third party fixes.
+_install_patches() {
+ echo "Adding Loki's Linux runtime files..."
+ cd "${srcdir}"
+
+ sh ./ut436.run --tar xfC 436 || return 1
+ sh ./ut436goty.run --tar xfC 436goty || return 1
+
+ cd 436goty
+ zcat ../ut.svgz > ../ut.svg
+ install --mode=755 -D ../ut.svg "${pkgdir}/usr/share/pixmaps/ut.svg"
+ install --mode=644 -- README "${pkgdir}/opt/ut/Help/README"
+ install --mode=644 -- README.Loki "${pkgdir}/opt/ut/Help/README.Loki"
+ install --mode=755 -- bin/Linux/x86/ucc "${pkgdir}/opt/ut/ucc"
+ install --mode=755 -- ../utcustom.sh "${pkgdir}/usr/bin/ut"
+ chmod +x $pkgdir/usr/bin/ut
+ ln -fs -- /opt/ut/ut "${pkgdir}ut"
+
+ tar xfC data.tar.gz "${pkgdir}/opt/ut" --exclude=System/UnrealTournament.ini.PATCH || return 1
+ chmod 644 -- "${pkgdir}/opt/ut/System/OpenGLDrv.int"
+ install --mode=644 -D -- "${pkgdir}/opt/ut/System/License.int"
+ "${pkgdir}/usr/share/licenses/${pkgname}/License.int"
+
+ tar xfC UT436-OpenGLDrv-Linux-090602.tar.gz "${pkgdir}/opt/ut" || return 1
+ tar xfC OpenGL.ini.tar.gz "${pkgdir}/opt/ut" || return 1
+ tar xfC Credits.tar.gz "${pkgdir}/opt/ut" || return 1
+ tar xfC NetGamesUSA.com.tar.gz "${pkgdir}/opt/ut" || return 1
+
+ # As there is no distinction between GOTY and non-GOTY CDs yet, we just try
+ # to patch everything that applies. Also Loki's patcher is too unreliable.
+ cd "${srcdir}"
+ echo "Trying to apply Loki's 436 Xdelta patches..."
+ _unreal_fail_safe_patcher 436/setup.data/data "${pkgdir}/opt/ut"
+ _unreal_fail_safe_patcher 436goty/setup.data/data "${pkgdir}/opt/ut"
+
+ echo "Applying 451 UTPG patch..."
+ tar xfC UTPGPatch451.tar.bz2 451utpg || return 1
+ _unreal_move_files 451utpg "${pkgdir}/opt/ut" < utpg.list || return 1
+
+ # Fix a small bug until next UTPG release. Thanks for the hint, elsixdiab.
+ sed -i '/^LoadClassMismatch/s/\.%s$//' "${pkgdir}/opt/ut/System/Core.int"
+}
+
+package() {
+ source /usr/lib/makepkg/unreal.sh || return 1
+
+ if [ -z "${_cdpath}" ]; then
+ _detect_cdpath || return 1
+ else
+ echo "Using ${_cdpath} as install medium."
+ fi
+ if [ -z "${_cdversion}" ]; then
+ _detect_cdversion || return 1
+ else
+ echo "Using \"${_cdversion}\" install method."
+ fi
+
+ install --directory -- ${srcdir}/{436,436goty,451utpg} \
+ ${pkgdir}/usr/bin \
+ ${pkgdir}/opt/ut/{Help,Logs,Maps,Music,Sounds,System,Textures} \
+ ${pkgdir}/opt/ut/Web/{images,inc,plaintext/inc} || return 1
+ install --mode=644 -D -- "${srcdir}/ut.desktop" \
+ "${pkgdir}/usr/share/applications/ut.desktop"
+ # Update OpenGL driver to 3.6 and ALaudio
+ cp $srcdir/*.so* $pkgdir/opt/ut/System
+
+ case "${_cdversion}" in
+ ("default")
+ _build_default || return 1
+ ;;
+ ("anthology")
+ _build_anthology || return 1
+ ;;
+ (*)
+ echo "Unknown _cdversion: ${_cdversion}" >&2
+ return 1
+ ;;
+ esac
+}
diff --git a/disk.list b/disk.list
new file mode 100644
index 000000000000..9d869e46c9cc
--- /dev/null
+++ b/disk.list
@@ -0,0 +1,382 @@
+Help/ReadMe.htm
+Help/UnrealTournamentSetupLogo.bmp
+Maps/AS-Frigate.unr
+Maps/AS-Guardia.unr
+Maps/AS-HiSpeed.unr
+Maps/AS-Mazon.unr
+Maps/AS-OceanFloor.unr
+Maps/AS-Overlord.unr
+Maps/AS-Rook.unr
+Maps/AS-Tutorial.unr
+Maps/CTF-Command.unr
+Maps/CTF-Coret.unr
+Maps/CTF-Dreary.unr
+Maps/CTF-EternalCave.unr
+Maps/CTF-Face.unr
+Maps/CTF-Gauntlet.unr
+Maps/CTF-LavaGiant.unr
+Maps/CTF-Niven.unr
+Maps/CTF-November.unr
+Maps/CTF-Tutorial.unr
+Maps/CityIntro.unr
+Maps/DM-Barricade.unr
+Maps/DM-Codex.unr
+Maps/DM-Conveyor.unr
+Maps/DM-Curse][.unr
+Maps/DM-Deck16][.unr
+Maps/DM-Fetid.unr
+Maps/DM-Fractal.unr
+Maps/DM-Gothic.unr
+Maps/DM-Grinder.unr
+Maps/DM-HyperBlast.unr
+Maps/DM-KGalleon.unr
+Maps/DM-Liandri.unr
+Maps/DM-Morbias][.unr
+Maps/DM-Morpheus.unr
+Maps/DM-Oblivion.unr
+Maps/DM-Peak.unr
+Maps/DM-Phobos.unr
+Maps/DM-Pressure.unr
+Maps/DM-Pyramid.unr
+Maps/DM-Stalwart.unr
+Maps/DM-StalwartXL.unr
+Maps/DM-Tempest.unr
+Maps/DM-Turbine.unr
+Maps/DM-Tutorial.unr
+Maps/DM-Zeto.unr
+Maps/DOM-Cinder.unr
+Maps/DOM-Condemned.unr
+Maps/DOM-Cryptic.unr
+Maps/DOM-Gearbolt.unr
+Maps/DOM-Ghardhen.unr
+Maps/DOM-Lament.unr
+Maps/DOM-Leadworks.unr
+Maps/DOM-MetalDream.unr
+Maps/DOM-Olden.unr
+Maps/DOM-Sesmar.unr
+Maps/DOM-Tutorial.unr
+Maps/EOL_Assault.unr
+Maps/EOL_CTF.unr
+Maps/EOL_Challenge.unr
+Maps/EOL_Deathmatch.unr
+Maps/EOL_Domination.unr
+Maps/EOL_Statues.unr
+Maps/Entry.unr
+Maps/UT-Logo-Map.unr
+Maps/UTCredits.unr
+Music/Botmca9.umx
+Music/Botpck10.umx
+Music/Cannon.umx
+Music/Colossus.umx
+Music/Course.umx
+Music/Credits.umx
+Music/Ending.umx
+Music/Enigma.umx
+Music/Foregone.umx
+Music/Godown.umx
+Music/Lock.umx
+Music/Mech8.umx
+Music/Mission.umx
+Music/Nether.umx
+Music/Organic.umx
+Music/Phantom.umx
+Music/Razor-ub.umx
+Music/Run.umx
+Music/SaveMe.umx
+Music/Savemeg.umx
+Music/Seeker.umx
+Music/Seeker2.umx
+Music/Skyward.umx
+Music/Strider.umx
+Music/Suprfist.umx
+Music/UnWorld2.umx
+Music/Uttitle.umx
+Music/Wheels.umx
+Music/firebr.umx
+Music/utmenu23.umx
+Sounds/Activates.uax
+Sounds/Addon1.uax
+Sounds/AmbAncient.uax
+Sounds/AmbCity.uax
+Sounds/AmbModern.uax
+Sounds/AmbOutside.uax
+Sounds/Announcer.uax
+Sounds/BossVoice.uax
+Sounds/DDay.uax
+Sounds/DMatch.uax
+Sounds/DoorsAnc.uax
+Sounds/DoorsMod.uax
+Sounds/Extro.uax
+Sounds/Female1Voice.uax
+Sounds/Female2Voice.uax
+Sounds/FemaleSounds.uax
+Sounds/LadderSounds.uax
+Sounds/Male1Voice.uax
+Sounds/Male2Voice.uax
+Sounds/MaleSounds.uax
+Sounds/Pan1.uax
+Sounds/TutVoiceAS.uax
+Sounds/TutVoiceCTF.uax
+Sounds/TutVoiceDM.uax
+Sounds/TutVoiceDOM.uax
+Sounds/VRikers.uax
+Sounds/noxxsnd.uax
+Sounds/openingwave.uax
+Sounds/rain.uax
+System/ALAudio.so
+System/Audio.so
+System/BossSkins.int
+System/BotPack.u
+System/Botpack.int
+System/CommandoSkins.int
+System/Core.int
+System/Core.so
+System/Core.u
+System/Editor.int
+System/Editor.so
+System/Editor.u
+System/Engine.int
+System/Engine.so
+System/Engine.u
+System/FCommandoSkins.int
+System/Female1Skins.int
+System/Female2Skins.int
+System/Fire.so
+System/Fire.u
+System/GlideDrv.int
+System/GlideDrv.so
+System/IpDrv.int
+System/IpDrv.so
+System/IpDrv.u
+System/IpServer.int
+System/IpServer.u
+System/License.int
+System/Male1Skins.int
+System/Male2Skins.int
+System/Male3Skins.int
+System/Manifest.int
+System/NullDrv.so
+System/NullNetDriver.so
+System/NullRender.so
+System/OpenGLDrv.int
+System/OpenGLDrv.so
+System/Render.so
+System/SDLDrv.so
+System/SDLGLDrv.int
+System/SDLGLDrv.so
+System/SDLSoftDrv.int
+System/SDLSoftDrv.so
+System/SGirlSkins.int
+System/SkTrooperSkins.int
+System/SoldierSkins.int
+System/Startup.int
+System/UBrowser.int
+System/UBrowser.u
+System/UMenu.int
+System/UMenu.u
+System/UTBrowser.u
+System/UTMenu.int
+System/UTMenu.u
+System/UTServerAdmin.int
+System/UTServerAdmin.u
+System/UWeb.int
+System/UWeb.so
+System/UWeb.u
+System/UWindow.u
+System/Unreal.int
+System/UnrealEd.ini
+System/UnrealEd.int
+System/UnrealI.int
+System/UnrealI.u
+System/UnrealIOrder.int
+System/UnrealShare.int
+System/UnrealShare.u
+System/UnrealTournament.ini
+System/UnrealTournament.int
+System/User.ini
+System/libSDL-1.1.so.0
+System/libmikmod.so.2
+System/libopenal-0.0.so
+System/ucc-bin
+System/ut-bin
+Textures/AlfaFX.utx
+Textures/Ancient.utx
+Textures/ArenaTex.utx
+Textures/Belt_fx.utx
+Textures/BluffFX.utx
+Textures/BossSkins.utx
+Textures/CTF.utx
+Textures/ChizraEFX.utx
+Textures/Coret_FX.utx
+Textures/Creative.utx
+Textures/Crypt.utx
+Textures/Crypt2.utx
+Textures/Crypt_FX.utx
+Textures/DDayFX.utx
+Textures/DMeffects.utx
+Textures/DacomaFem.utx
+Textures/DacomaSkins.utx
+Textures/DecayedS.utx
+Textures/Detail.utx
+Textures/Egypt.utx
+Textures/EgyptPan.utx
+Textures/FCommandoSkins.utx
+Textures/Faces.utx
+Textures/Female1Skins.utx
+Textures/Female2Skins.utx
+Textures/FireEng.utx
+Textures/FlareFX.utx
+Textures/FractalFX.utx
+Textures/GenEarth.utx
+Textures/GenFX.utx
+Textures/GenFluid.utx
+Textures/GenIn.utx
+Textures/GenTerra.utx
+Textures/GenWarp.utx
+Textures/GothFem.utx
+Textures/GothSkins.utx
+Textures/GreatFire.utx
+Textures/GreatFire2.utx
+Textures/HubEffects.utx
+Textures/ISVFX.utx
+Textures/Indus1.utx
+Textures/Indus2.utx
+Textures/Indus3.utx
+Textures/Indus4.utx
+Textures/Indus5.utx
+Textures/Indus6.utx
+Textures/Indus7.utx
+Textures/JWSky.utx
+Textures/LadderFonts.utx
+Textures/LadrArrow.utx
+Textures/LadrStatic.utx
+Textures/LavaFX.utx
+Textures/Lian-X.utx
+Textures/Liquids.utx
+Textures/Logo.utx
+Textures/Male1Skins.utx
+Textures/Male2Skins.utx
+Textures/Male3Skins.utx
+Textures/MenuGr.utx
+Textures/Metalmys.utx
+Textures/Mine.utx
+Textures/NaliCast.utx
+Textures/NaliFX.utx
+Textures/NivenFX.utx
+Textures/Old_FX.utx
+Textures/Palettes.utx
+Textures/PhraelFx.utx
+Textures/PlayrShp.utx
+Textures/Queen.utx
+Textures/RainFX.utx
+Textures/Render.utx
+Textures/RotatingU.utx
+Textures/SGirlSkins.utx
+Textures/Scripted.utx
+Textures/ShaneChurch.utx
+Textures/ShaneDay.utx
+Textures/ShaneSky.utx
+Textures/SkTrooperSkins.utx
+Textures/Skaarj.utx
+Textures/SkyBox.utx
+Textures/SkyCity.utx
+Textures/Slums.utx
+Textures/Soldierskins.utx
+Textures/SpaceFX.utx
+Textures/Starship.utx
+Textures/TCrystal.utx
+Textures/Terranius.utx
+Textures/TrenchesFX.utx
+Textures/UT.utx
+Textures/UT_ArtFX.utx
+Textures/UTbase1.utx
+Textures/UTcrypt.utx
+Textures/UTtech1.utx
+Textures/UTtech2.utx
+Textures/UTtech3.utx
+Textures/UWindowFonts.utx
+Textures/XFX.utx
+Textures/XbpFX.utx
+Textures/Xtortion.utx
+Textures/castle1.utx
+Textures/city.utx
+Textures/commandoskins.utx
+Textures/credits.utx
+Textures/eol.utx
+Textures/of1.utx
+Web/current.uhtm
+Web/current_console.uhtm
+Web/current_console_log.uhtm
+Web/current_console_send.uhtm
+Web/current_game.uhtm
+Web/current_menu.uhtm
+Web/current_mutators.uhtm
+Web/current_players.uhtm
+Web/defaults.uhtm
+Web/defaults_bots.uhtm
+Web/defaults_ippolicy-d.uhtm
+Web/defaults_ippolicy-f.uhtm
+Web/defaults_ippolicy-h.uhtm
+Web/defaults_maps.uhtm
+Web/defaults_menu.uhtm
+Web/defaults_rules.uhtm
+Web/defaults_server.uhtm
+Web/defaults_settings.uhtm
+Web/images/1-1.gif
+Web/images/1-2.gif
+Web/images/1.gif
+Web/images/2-1.gif
+Web/images/2-2.gif
+Web/images/3-1.gif
+Web/images/3-2.gif
+Web/images/4-1.gif
+Web/images/4-2.gif
+Web/images/5-1.gif
+Web/images/5-2.gif
+Web/images/6-1.gif
+Web/images/6-2.gif
+Web/images/7-1.gif
+Web/images/7-2.gif
+Web/images/7-3.gif
+Web/images/image.gif
+Web/images/logo.gif
+Web/images/m1-1.gif
+Web/images/m1-2.gif
+Web/images/m3-1.gif
+Web/images/m3-2.gif
+Web/images/right.gif
+Web/inc/content_footer_tables.inc
+Web/inc/content_header_tables.inc
+Web/inc/footer.inc
+Web/inc/header.inc
+Web/inc/menu_footer.inc
+Web/inc/menu_header.inc
+Web/inc/top_begin.inc
+Web/inc/top_end.inc
+Web/menu.uhtm
+Web/message.uhtm
+Web/plaintext/current.uhtm
+Web/plaintext/current_console.uhtm
+Web/plaintext/current_console_log.uhtm
+Web/plaintext/current_console_send.uhtm
+Web/plaintext/current_game.uhtm
+Web/plaintext/current_menu.uhtm
+Web/plaintext/current_mutators.uhtm
+Web/plaintext/current_players.uhtm
+Web/plaintext/defaults.uhtm
+Web/plaintext/defaults_bots.uhtm
+Web/plaintext/defaults_ippolicy-d.uhtm
+Web/plaintext/defaults_ippolicy-f.uhtm
+Web/plaintext/defaults_ippolicy-h.uhtm
+Web/plaintext/defaults_maps.uhtm
+Web/plaintext/defaults_menu.uhtm
+Web/plaintext/defaults_rules.uhtm
+Web/plaintext/defaults_server.uhtm
+Web/plaintext/defaults_settings.uhtm
+Web/plaintext/inc/footer.inc
+Web/plaintext/inc/header.inc
+Web/plaintext/inc/whiteheader.inc
+Web/plaintext/menu.uhtm
+Web/plaintext/message.uhtm
+Web/plaintext/root.uhtm
+Web/root.uhtm
diff --git a/ut.desktop b/ut.desktop
new file mode 100644
index 000000000000..361f74cc469e
--- /dev/null
+++ b/ut.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Unreal Tournament
+GenericName=Classic Shooter
+Comment=Unreal Tournament GOTY Edition
+Exec=/usr/bin/ut
+Icon=ut
+Type=Application
+Categories=Application;Game;ActionGame;
+StartupNotify=true
+Terminal=false
+Encoding=UTF-8
+Version=1.0
diff --git a/utcustom.sh b/utcustom.sh
new file mode 100644
index 000000000000..91fa7482dbe2
--- /dev/null
+++ b/utcustom.sh
@@ -0,0 +1,106 @@
+#!/bin/bash
+#
+# Unreal Tournament startup script
+#
+
+# Modifications by Eskild Hustvedt
+
+# The user preferences directory
+UT_PREFS="${HOME}/.loki/ut"
+UT_DATA_PATH="/opt/ut/"
+
+# Function to reveal osspd execution
+a=$(ps -U root | grep osspd)
+if [ -z $a ]; then
+ notify-send UT -i ut "Please execute <p><b>service osspd start</b></p><p>or</p><b>systemctl start osspd.service</b>";
+ exit 1;
+fi
+
+# Function to find the real directory a program resides in.
+# Feb. 17, 2000 - Sam Lantinga, Loki Entertainment Software
+FindPath()
+{
+ fullpath="`echo $1 | grep /`"
+ if [ "$fullpath" = "" ]; then
+ oIFS="$IFS"
+ IFS=:
+ for path in $PATH
+ do if [ -x "$path/$1" ]; then
+ if [ "$path" = "" ]; then
+ path="."
+ fi
+ fullpath="$path/$1"
+ break
+ fi
+ done
+ IFS="$oIFS"
+ fi
+ if [ "$fullpath" = "" ]; then
+ fullpath="$1"
+ fi
+ # Is the awk/ls magic portable?
+ if [ -L "$fullpath" ]; then
+ fullpath="`ls -l "$fullpath" | awk '{print $11}'`"
+ fi
+ dirname $fullpath
+}
+
+# Set the home if not already set.
+if [ "${UT_DATA_PATH}" = "" ]; then
+ UT_DATA_PATH="`FindPath $0`/System"
+fi
+
+LD_LIBRARY_PATH=.:${UT_DATA_PATH}:${LD_LIBRARY_PATH}
+
+export LD_LIBRARY_PATH
+export UT_DATA_PATH
+
+create_prefpath()
+{
+ path="${UT_PREFS}/$1"
+ if [ ! -d "$path" ]; then
+ echo "Creating directory $path"
+ mkdir "$path"
+ fi
+}
+
+copy_if_needed()
+{
+ dist="${UT_DATA_PATH}/$1"
+ file="${UT_PREFS}/$1"
+ if [ ! -f "$file" ]; then
+ echo "Installing default $file"
+ cp "$dist" "$file"
+ fi
+}
+
+# Hey, it's fun time!
+if [ ! -d ${HOME}/.loki ]
+then
+ mkdir ${HOME}/.loki
+fi
+
+if [ ! -d ${UT_PREFS} ]
+then
+ echo "Creating preferences directory..."
+ create_prefpath
+fi
+create_prefpath System
+
+# Flood the CPU for four seconds so that it is running at the currect speed
+RandomFork () {
+ while [ "$SECONDS" -le "4" ]; do
+ let MYRND="$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM*$RANDOM$RANDOM+$RANDOM*$RANDOM/$RANDOM*$RANDOM"
+ done
+}
+RandomFork &
+
+# Let's boogie!
+if [ -x "${UT_DATA_PATH}/System/ut-bin" ]
+then
+ echo -n "Sleeping for 1 second... ";sleep 1s;echo "done - launching UT"
+ cd "${UT_DATA_PATH}/System"
+ exec "./ut-bin" -log $*
+fi
+echo "Couldn't run Unreal Tournament (ut-bin). Is UT_DATA_PATH set?"
+exit 1
diff --git a/utpg.list b/utpg.list
new file mode 100644
index 000000000000..9adff328ae47
--- /dev/null
+++ b/utpg.list
@@ -0,0 +1,147 @@
+Help/ReleaseNotes.htm
+System/Core.int
+System/Core.so
+System/Core.u
+System/Editor.so
+System/Engine.int
+System/Engine.so
+System/Engine.u
+System/Fire.so
+System/GlideDrv.int
+System/IpDrv.int
+System/IpDrv.so
+System/IpDrv.u
+System/IpServer.int
+System/IpServer.u
+System/NullDrv.so
+System/NullNetDriver.so
+System/NullRender.so
+System/OpenGLDrv.int
+System/OpenGLDrv.so
+System/Render.so
+System/SDLDrv.so
+System/SDLGLDrv.so
+System/UBrowser.int
+System/UBrowser.u
+System/UTServerAdmin.int
+System/UTServerAdmin.u
+System/UWeb.int
+System/UWeb.so
+System/UWeb.u
+System/UnrealEd.ini
+System/UnrealEd.int
+System/Editor.int
+System/editorres
+System/editorres/AddMover.bmp
+System/editorres/AddSpecial.bmp
+System/editorres/BBCone.bmp
+System/editorres/BBCube.bmp
+System/editorres/BBCurvedStair.bmp
+System/editorres/BBCylinder.bmp
+System/editorres/BBGeneric.bmp
+System/editorres/BBLinearStair.bmp
+System/editorres/BBSheet.bmp
+System/editorres/BBSphere.bmp
+System/editorres/BBSpiralStair.bmp
+System/editorres/BBTerrain.bmp
+System/editorres/BBVolumetric.bmp
+System/editorres/BrushClip.bmp
+System/editorres/BrushClipDelete.bmp
+System/editorres/BrushClipFlip.bmp
+System/editorres/BrushClipSplit.bmp
+System/editorres/HideSelected.bmp
+System/editorres/InvertSelections.bmp
+System/editorres/ModeAdd.bmp
+System/editorres/ModeBrushClip.bmp
+System/editorres/ModeCamera.bmp
+System/editorres/ModeDeintersect.bmp
+System/editorres/ModeFaceDrag.bmp
+System/editorres/ModeIntersect.bmp
+System/editorres/ModeRotate.bmp
+System/editorres/ModeScale.bmp
+System/editorres/ModeSubtract.bmp
+System/editorres/ModeVertex.bmp
+System/editorres/ShowAll.bmp
+System/editorres/ShowSelected.bmp
+System/editorres/TexturePan.bmp
+System/editorres/TextureRotate.bmp
+System/editorres/vssver.scc
+System/edsplash.bmp
+System/ucc-bin
+System/ut-bin
+Web/current.uhtm
+Web/current_console.uhtm
+Web/current_console_log.uhtm
+Web/current_console_send.uhtm
+Web/current_game.uhtm
+Web/current_menu.uhtm
+Web/current_mutators.uhtm
+Web/current_players.uhtm
+Web/defaults.uhtm
+Web/defaults_bots.uhtm
+Web/defaults_ippolicy-d.uhtm
+Web/defaults_ippolicy-f.uhtm
+Web/defaults_ippolicy-h.uhtm
+Web/defaults_maps.uhtm
+Web/defaults_menu.uhtm
+Web/defaults_rules.uhtm
+Web/defaults_server.uhtm
+Web/defaults_settings.uhtm
+Web/images/1-1.gif
+Web/images/1-2.gif
+Web/images/1.gif
+Web/images/2-1.gif
+Web/images/2-2.gif
+Web/images/3-1.gif
+Web/images/3-2.gif
+Web/images/4-1.gif
+Web/images/4-2.gif
+Web/images/5-1.gif
+Web/images/5-2.gif
+Web/images/6-1.gif
+Web/images/6-2.gif
+Web/images/7-1.gif
+Web/images/7-2.gif
+Web/images/7-3.gif
+Web/images/image.gif
+Web/images/logo.gif
+Web/images/m1-1.gif
+Web/images/m1-2.gif
+Web/images/m3-1.gif
+Web/images/m3-2.gif
+Web/images/right.gif
+Web/inc/content_footer_tables.inc
+Web/inc/content_header_tables.inc
+Web/inc/footer.inc
+Web/inc/header.inc
+Web/inc/menu_footer.inc
+Web/inc/menu_header.inc
+Web/inc/top_begin.inc
+Web/inc/top_end.inc
+Web/menu.uhtm
+Web/message.uhtm
+Web/plaintext/current.uhtm
+Web/plaintext/current_console.uhtm
+Web/plaintext/current_console_log.uhtm
+Web/plaintext/current_console_send.uhtm
+Web/plaintext/current_game.uhtm
+Web/plaintext/current_menu.uhtm
+Web/plaintext/current_mutators.uhtm
+Web/plaintext/current_players.uhtm
+Web/plaintext/defaults.uhtm
+Web/plaintext/defaults_bots.uhtm
+Web/plaintext/defaults_ippolicy-d.uhtm
+Web/plaintext/defaults_ippolicy-f.uhtm
+Web/plaintext/defaults_ippolicy-h.uhtm
+Web/plaintext/defaults_maps.uhtm
+Web/plaintext/defaults_menu.uhtm
+Web/plaintext/defaults_rules.uhtm
+Web/plaintext/defaults_server.uhtm
+Web/plaintext/defaults_settings.uhtm
+Web/plaintext/inc/footer.inc
+Web/plaintext/inc/header.inc
+Web/plaintext/inc/whiteheader.inc
+Web/plaintext/menu.uhtm
+Web/plaintext/message.uhtm
+Web/plaintext/root.uhtm
+Web/root.uhtm