summaryrefslogtreecommitdiff
blob: f631098f49594ab1b003f5109292d1d915c46915 (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
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cdrom unpacker

DESCRIPTION="iD Software's Quake 2 ... the data files"
HOMEPAGE="https://www.idsoftware.com/"
SRC_URI="mirror://idsoftware/quake2/q2-${PV}-x86-full-ctf.exe"
S="${WORKDIR}"

LICENSE="Q2EULA"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~x86"
IUSE="videos"

RDEPEND="!games-fps/quake2-demodata[symlink]"
BDEPEND="app-arch/unzip"

src_unpack() {
	export CDROM_NAME_SET=("Existing Install" "Ultimate Quake Edition" "Quake2 CD" "Quake4 Bonus DVD")
	cdrom_get_cds baseq2:Install/patch:Install:Movies
	# The .exe is just a self-extracting .zip
	unpack_zip ${A}
}

src_install() {
	dodoc DOCS/* 3.20_Changes.txt
	newdoc ctf/readme.txt ctf-readme.txt

	case ${CDROM_SET} in
		0) { docinto html && dodoc -r "${CDROM_ROOT}"/Install/DOCS/quake2_manual/* ; } ;;
		1) { docinto html && dodoc -r "${CDROM_ROOT}"/Install/Docs/quake2_manual/* ; } ;;
		2) { docinto html && dodoc -r "${CDROM_ROOT}"/Install/DOCS/quake2_manual/* ; } ;;
		3) dodoc "${CDROM_ROOT}"/Docs/* ;;
	esac

	local baseq2_cdpath
	case ${CDROM_SET} in
		0) baseq2_cdpath=${CDROM_ROOT}/baseq2;;
		1) baseq2_cdpath=${CDROM_ROOT}/Install/Data/baseq2;;
		2) baseq2_cdpath=${CDROM_ROOT}/Install/Data/baseq2;;
		3) baseq2_cdpath=${CDROM_ROOT}/setup/Data/baseq2;;
	esac

	dodir /usr/share/quake2/baseq2

	if use videos ; then
		insinto /usr/share/quake2/baseq2/video
		doins "${baseq2_cdpath}"/video/*
	fi

	insinto /usr/share/quake2/baseq2
	doins "${baseq2_cdpath}"/pak0.pak
	doins baseq2/*.pak baseq2/maps.lst

	dodir /usr/share/quake2/baseq2/players
	cp -R "${baseq2_cdpath}"/players/* baseq2/players/* \
		"${ED}"/usr/share/quake2/baseq2/players/ || die

	for mod in ctf rogue xatrix ; do
		if [[ -d ${baseq2_cdpath}/../${mod} ]] ; then
			if use videos && [[ -d ${baseq2_cdpath}/../${mod}/video ]] ; then
				insinto /usr/share/quake2/${mod}/video
				doins "${baseq2_cdpath}"/../${mod}/video/* 2>/dev/null
			fi
			if [[ -n $(ls "${baseq2_cdpath}"/../${mod}/*.pak 2>/dev/null) ]] ; then
				insinto /usr/share/quake2/${mod}
				doins "${baseq2_cdpath}"/../${mod}/*.pak
			fi
		fi
	done

	insinto /usr/share/quake2/ctf
	doins ctf/*.{cfg,ico,pak}
}