summaryrefslogtreecommitdiff
blob: 251e2eed1766b22fa8639d9e2b9eec8b94e4c481 (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
130
131
132
133
134
135
136
137
138
139
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/d1x/d1x-20040118.ebuild,v 1.1 2004/02/17 18:22:34 mr_bones_ Exp $

inherit games eutils

DESCRIPTION="Descent 1 Source Project"
HOMEPAGE="http://d1x.warpcore.org"
SRC_URI="mirror://gentoo/${P}.tar.bz2 mirror://gentoo/descent1.5-patch.tar.bz2"

LICENSE="Descent1 D1X"
SLOT="0"
KEYWORDS="x86"
IUSE="opengl"

DEPEND=">=dev-lang/nasm-0.97
	media-libs/libsdl
	opengl? (
		virtual/opengl
		media-libs/libpng
		sys-libs/zlib
	)"

S=${WORKDIR}/${PN}

pkg_setup () {
	cdrom_get_cds descent
	games_pkg_setup
}

src_unpack () {
	unpack ${A}

	local dir="${WORKDIR}/descent1-data"
	mkdir "${dir}" || die

	# Copy data files
	local src="${CDROM_ROOT}/descent"
	cd "${src}" || die

	for x in chaos.hog chaos.msn descent.b50 descent.dem descent.hog \
		descent.m50 descent.phx descent.pig descent2.adv descentg.ini \
		level18.dem miniboss.dem readme.txt descent.faq orderfrm.txt \
		devteam.pcx; do
	  cp "${x}" "${dir}" || die
	done

	# Apply 1.0 -> 1.5 patch
	cd "${WORKDIR}/descent1.5-patch" || die
	for x in *.patch; do
		if patch "${dir}/${x%%.patch}" < "${x}" \
			>/dev/null 2>/dev/null; then
			einfo "Patched ${x%%.patch} to version 1.5"
		fi
	done

	cd "${S}" || die
	epatch "${FILESDIR}/d1x-missiondir.patch" || die

	cp defines.in defines.mak || die
	epatch "${FILESDIR}/d1x-makefile-linux.patch" || die

	if use opengl; then
		sed -i -e 's/^#\(SDLGL_IO = 1\)/\1/' defines.mak || die
	else
		sed -i -e 's/^#\(SDL_IO = 1\)/\1/' defines.mak || die
	fi
}

src_compile () {
	make dep || die
	make || die
}

src_install() {
	# Install D1X documentation
	cd "${S}"
	dodoc d1x.faq d1x.txt d1x140.txt readme.d1x readme.org todo.txt \
		bugs.txt || die
	dodir

	# Copy data files
	local src="${WORKDIR}/descent1-data"
	local dir="${GAMES_DATADIR}/d1x"
	cd "${src}" || die

	dodir "${dir}"

	insinto "${dir}"
	for x in chaos.hog chaos.msn descent.b50 descent.dem descent.hog \
		descent.m50 descent.phx descent.pig descent2.adv descentg.ini \
		level18.dem miniboss.dem; do
	  doins "${x}" || die
	done

	# Install original documentation files
	dodoc "readme.txt" "descent.faq" "orderfrm.txt" "devteam.pcx" || die

	# Copy d1x.ini
	cd "${S}" || die
	insinto "${dir}"
	doins d1x.ini || die

	# Install the binary executable
	local binname
	if use opengl; then
		binname="d1x143_ogl"
	else
		binname="d1x143"
	fi

	insinto "${GAMES_LIBDIR}/${PN}"
	insopts -m0750
	doins "${binname}"

	# Install the shell script wrapper
	local tempbin
	tempbin="${T}/d1x"
	echo -en "#!/bin/sh\n" > "${tempbin}"
	echo -en "if [ ! -e \"\${HOME}/.d1x\" ]; then\n" >> "${tempbin}"
	echo -en "  mkdir \"\${HOME}/.d1x\"\n" >> "${tempbin}"
	echo -en "  cp \"${dir}/d1x.ini\" \"\${HOME}/.d1x/\"\n" >> "${tempbin}"
	echo -en "fi\n\n" >> "${tempbin}"
	echo -en "cd \"\${HOME}/.d1x/\"\n" >> "${tempbin}"
	echo -en "exec ${GAMES_LIBDIR}/${PN}/${binname} " >> "${tempbin}"
	echo -en "-missiondir \"${dir}\" \"\$@\"\n" >> "${tempbin}"
	dogamesbin "${tempbin}"

	prepgamesdirs
}

pkg_postinst() {
	games_pkg_postinst
	echo
	einfo "You may want to install the additional map package, which contains"
	einfo "popular third-party multiplayer maps."
	echo
	einfo "To do so, run: emerge games-fps/descent1-maps"
}