summaryrefslogtreecommitdiff
blob: 7e5671e7a0b4a35e6bb250571c3497a9b1b13b84 (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
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands-data/eternal-lands-data-1.9.3-r1.ebuild,v 1.1 2013/07/06 16:58:23 calchan Exp $

EAPI=2

inherit games

MUSIC_DATE="20060803"

MY_PV="${PV//_/}"
MY_PV="${MY_PV//./}"
MY_PN="${PN%*-data}"
DESCRIPTION="An online MMORPG written in C and SDL"
HOMEPAGE="http://www.eternal-lands.com"
SRC_URI="http://www.eternal-lands.com/el_linux_193.zip
		music? ( mirror://gentoo/el_music_full-${MUSIC_DATE}.zip )
		sound? ( http://www.eternallands.co.uk/EL_sound_191.zip )"
# WARNING: The music file is held at
# http://www.eternal-lands.com/page/music.php
# We only mirror it so that it is versioned by the date we mirrored it
# AND prefixed with el_ so as not cause any conflicts. Maybe oneday they will
# version their music, maybe not.

LICENSE="eternal_lands"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~x86-fbsd"
IUSE="music sound bloodsuckermaps"

DEPEND="app-arch/unzip
		!bloodsuckermaps? ( !games-rpg/eternal-lands-bloodsucker )"

PDEPEND="bloodsuckermaps? ( >=games-rpg/eternal-lands-bloodsucker-3.0_p20110618 )"

# Maybe one day upstream will do things in a consistent way.
S="${WORKDIR}/el_linux"

src_prepare() {
	# Move our music files to the correct directory
	if use music ; then
		mkdir music
		mv ../*.ogg ../*.pll music || die
	fi

	# Fix assertion error with >=libxml2-2.9 (see bug #449352)
	xmllint --noent actor_defs/actor_defs.xml > actor_defs.xml || die "Failed parsing actor_defs.xml"
	mv actor_defs.xml actor_defs
}

src_install() {
	# These are provided by eternal-lands ebuild

	rm license.txt
	rm commands.lst

	# don't install maps if using alternate maps
	if use bloodsuckermaps ; then
		rm maps/anitora.dds maps/cave1.dds maps/cont2map10.dds
		rm maps/cont2map11.dds maps/cont2map12.dds maps/cont2map13.dds
		rm maps/cont2map14.dds maps/cont2map15.dds maps/cont2map16.dds
		rm maps/cont2map17.dds maps/cont2map18.dds maps/cont2map19.dds
		rm maps/cont2map1.dds maps/cont2map20.dds maps/cont2map21.dds
		rm maps/cont2map22.dds maps/cont2map23.dds maps/cont2map24.dds
		rm maps/cont2map2.dds maps/cont2map3.dds maps/cont2map4.dds
		rm maps/cont2map5.dds maps/cont2map6.dds maps/cont2map7.dds
		rm maps/cont2map8.dds maps/cont2map9.dds maps/irilion.dds
		rm maps/legend.dds maps/map11.dds maps/map12.dds
		rm maps/map13.dds maps/map14f.dds maps/map15f.dds
		rm maps/map2.dds maps/map3.dds maps/map4f.dds
		rm maps/map5nf.dds maps/map6nf.dds maps/map7.dds
		rm maps/map8.dds maps/map9f.dds maps/seridia.dds
		rm maps/startmap.dds
	fi

	insopts -m 0660
	insinto "${GAMES_DATADIR}/${MY_PN}"
	doins -r 2dobjects 3dobjects actor_defs animations maps meshes \
		particles skeletons shaders textures languages shaders skybox \
		*.lst 3dobjects.txt *.xml \
		|| die "doins failed"

	if use music ; then
		doins -r music || die "doins music failed"
	fi

	# Removed sound from above - need to handle sound support

	cd "${WORKDIR}"
	if use sound ; then
	   doins -r sound || die "doins sound failed"
	fi

	prepgamesdirs
}

pkg_postinst() {
	games_pkg_postinst
	# Ensure that the files are writable by the game group for auto
	# updating.
	chmod -R g+rw "${ROOT}/${GAMES_DATADIR}/${MY_PN}"

	# Make sure new files stay in games group
	find "${ROOT}/${GAMES_DATADIR}/${MY_PN}" -type d -exec chmod g+sx {} \;
}