summaryrefslogtreecommitdiff
blob: 6a78e4c95db8be19932dcf5adce5c48cc3a182f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=5
inherit eutils cdrom games

DESCRIPTION="Viking hack and slay game"
HOMEPAGE="http://www.runegame.com"
SRC_URI="mirror://gentoo/rune-all-0.2.tar.bz2"

LICENSE="LOKI-EULA"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
RESTRICT="strip"

RDEPEND="dev-util/xdelta:0
	>=media-libs/libsdl-1.2.9-r1[abi_x86_32(-)]
	x11-libs/libXext[abi_x86_32(-)]
	x11-libs/libX11[abi_x86_32(-)]
	virtual/opengl[abi_x86_32(-)]"

S=${WORKDIR}

dir=${GAMES_PREFIX_OPT}/${PN}
Ddir=${D}/${dir}

src_unpack() {
	export CDROM_SET_NAMES=("Linux Rune CD" "Windows Rune CD")
	cdrom_get_cds System/rune-bin:System/Rune.exe
	dodir "${dir}"
	if [[ ${CDROM_SET} -eq 0 ]]
	then
		# unpack the data files
		tar xzf "${CDROM_ROOT}"/data.tar.gz || die
	elif [[ ${CDROM_SET} -eq 1 ]]
	then
		# unpack the runelinuxfiles.tar.gz
		unpack ${A}
	fi
}

src_install() {
	insinto "${dir}"
	exeinto "${dir}"
	einfo "Copying files... this may take a while..."

	case ${CDROM_SET} in
	0)
		for x in Help Maps Meshes Sounds System Textures Web
		do
			doins -r $x
		done

		# copy linux specific files
		doins -r "${CDROM_ROOT}"/System

		# the most important things: rune and ucc :)
		doexe "${CDROM_ROOT}"/bin/x86/rune
		fperms 750 "${dir}"/System/{ucc{,-bin},rune-bin}

		# installing documentation/icon
		dodoc "${CDROM_ROOT}"/{README,CREDITS}
		newicon "${CDROM_ROOT}"/icon.xpm rune.xpm
	;;
	1)
		# copying Maps Sounds and Web
		for x in Maps Sounds Web
		do
			doins -r "${CDROM_ROOT}"/$x
		done

		# copying the texture files
		dodir "${dir}"/Textures
		for x in $(find "${CDROM_ROOT}"/Textures/ -type f -printf '%f ')
		do
			echo -ne '\271\325\036\214' | cat - "${CDROM_ROOT}"/Textures/$x \
				| sed -e '1 s/\(....\)..../\1/' > "${Ddir}"/Textures/$x \
				|| die
		done

		doins -r "${S}"/System
		doins -r "${S}"/Help
		sed -e "s:.*\(\w+/\w+\)\w:\1:"
		for x in $(ls "${S}"/patch/{System,Maps,Meshes} |sed -e \
			"s:.*/\([^/]\+/[^/]\+\).patch$:\1:")
		do
			xdelta patch "${S}"/patch/${x}.patch "${CDROM_ROOT}"/${x} "${S}"/patch/${x}
			doins "${S}"/patch/${x}
		done

		insinto "${dir}"/System

		# copying system files from the Windows CD
		for x in "${CDROM_ROOT}"/System/*.{int,u,url}; do
			doins $x
		done

		# modify the files
		mv "${Ddir}"/System/OpenGlDrv.int "${Ddir}"/System/OpenGLDrv.int \
			|| die
		mv "${Ddir}"/Textures/bloodFX.utx "${Ddir}"/Textures/BloodFX.utx \
			|| die
		mv "${Ddir}"/Textures/RUNESTONES.UTX "${Ddir}"/Textures/RUNESTONES.utx \
			|| die
		mv "${Ddir}"/Textures/tedd.utx "${Ddir}"/Textures/Tedd.utx \
			|| die
		mv "${Ddir}"/Textures/UNDERANCIENT.utx "${Ddir}"/Textures/UnderAncient.utx \
			|| die
		rm "${Ddir}"/System/{Setup.int,SGLDrv.int,MeTaLDrv.int,Manifest.int,D3DDrv.int,Galaxy.int,SoftDrv.int,WinDrv.int,Window.int} || die

		# the most important things: rune and ucc :)
		doexe "${S}"/bin/x86/rune
		fperms 750 "${dir}"/System/{ucc,ucc-bin,rune-bin}

		# installing documentation/icon
		dodoc "${S}"/{README,CREDITS}
		doicon "${S}"/rune.xpm rune.xpm
	;;
	esac

	use amd64 && mv "${Ddir}"/System/libSDL-1.2.so.0 \
		"${Ddir}"/System/libSDL-1.2.so.0.backup

	games_make_wrapper rune ./rune "${dir}" "${dir}"
	make_desktop_entry rune "Rune" rune
	find "${Ddir}" -exec touch '{}' \;
	prepgamesdirs
}