summaryrefslogtreecommitdiff
blob: e525d4829086a1855ada3c2e111774ec4eca2473 (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-action/d1x/d1x-20040118.ebuild,v 1.5 2005/09/25 07:13:41 mr_bones_ Exp $

inherit eutils games

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"

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

S=${WORKDIR}/${PN}

pkg_setup() {
	cdrom_get_cds descent
	games_pkg_setup
}

src_unpack() {
	unpack ${A}

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

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

	cp 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 \
		"${WORKDIR}/descent1-data" || die

	# Apply 1.0 -> 1.5 patch
	cd "${WORKDIR}/descent1.5-patch" || die
	for x in *.patch; do
		if patch "${WORKDIR}/descent1-data/${x%%.patch}" < "${x}" &>/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

	sed -i \
		-e 's/make /$(MAKE) /' \
		makefile rules.mak default.mak \
		|| die "sed failed"

	binname="d1x143"
	if use opengl; then
		binname="d1x143_ogl"
	fi

	cat > "${T}"/d1x <<-EOS
	#!/bin/sh
	if [ ! -e "\${HOME}/.d1x" ]; then
	  mkdir "\${HOME}/.d1x"
	  cp "${GAMES_DATADIR}/d1x/d1x.ini" "\${HOME}/.d1x/"
	fi

	cd "\${HOME}/.d1x/"
	exec "${GAMES_LIBDIR}"/${PN}/${binname} -missiondir "${GAMES_DATADIR}/d1x" "\$@"
	EOS
}

src_compile() {
	emake dep || die
	emake -j1 || die
}

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

	# Copy data files
	cd "${WORKDIR}/descent1-data" || die

	insinto "${GAMES_DATADIR}/d1x"
	doins chaos.hog chaos.msn descent.b50 descent.dem descent.hog \
		descent.m50 descent.phx descent.pig descent2.adv descentg.ini \
		level18.dem miniboss.dem || die

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

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

	# Install the binary executable
	insinto "${GAMES_LIBDIR}/${PN}"
	insopts -m0750
	doins "${binname}"

	dogamesbin "${T}/d1x" || die "dogamesbin failed"

	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"
}