games-engines/mcarpet2 - 20260319 (peec)

Search

Package Information

Description:
recode of Bullfrog's Magic Carpet 2 game
Homepage:
https://codeberg.org/rodan/magic_carpet_2
License:
MIT

Ebuild Details

Version EAPI Keywords Slot
20260319 8 amd64 x86 0
View Raw Ebuild
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# ---8<-------------------------------------------------------------------------
#
# NOTE !!!
#
# this is just a game engine
# you will still need to purchase the original MS-DOS game from
#
# https://www.gog.com/game/magic_carpet_2_the_netherworlds
#
# in order to use the game assets.
#
# ------------------------------------------------------------------------->8---

EAPI=8
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake flag-o-matic

MY_PN="magic_carpet_2"
#MY_PV="${PV}"
#MY_PV="e41680b7e4e0002a6833c1053a03a2f32210005a"
MY_PV="20260319_3"
MY_P="${PN}-${MY_PV}"

DESCRIPTION="recode of Bullfrog's Magic Carpet 2 game"
HOMEPAGE="https://codeberg.org/rodan/magic_carpet_2"

IUSE="debug imgui hd_modpack"

IMGUI_PN="imgui"
IMGUI_PV="1.91.3"
IMGUI_P="${IMGUI_PN}-${IMGUI_PV}"

FINDFIRST_PN="findfirst"
FINDFIRST_PV="2c4733bb77cb3357c691c7a6b7a46baeed2d5fe1"
FINDFIRST_P="${FINDFIRST_PN}-${FINDFIRST_PV}"

INIH_PN="inih"
INIH_PV="r62"
INIH_P="${INIH_PN}-${INIH_PV}"

SDL2_CMAKE_MOD_PN="sdl2-cmake-modules"
SDL2_CMAKE_MOD_PV="ad006a3daae65a612ed87415037e32188b81071e"
SDL2_CMAKE_MOD_P="${SDL2_CMAKE_MOD_PN}-${SDL2_CMAKE_MOD_PV}"

SRC_URI="https://codeberg.org/rodan/${MY_PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
	https://github.com/ocornut/${IMGUI_PN}/archive/v${IMGUI_PV}.tar.gz -> ${IMGUI_P}.tar.gz
	https://github.com/MathieuTurcotte/${FINDFIRST_PN}/archive/${FINDFIRST_PV}.tar.gz -> ${FINDFIRST_P}.tar.gz
	https://github.com/benhoyt/${INIH_PN}/archive/${INIH_PV}.tar.gz -> ${INIH_P}.tar.gz
	https://github.com/aminosbh/${SDL2_CMAKE_MOD_PN}/archive/${SDL2_CMAKE_MOD_PV}.tar.gz -> ${SDL2_CMAKE_MOD_P}.tar.gz
"
SRC_URI+=" hd_modpack? ( https://subdimension.ro/distfiles/remc2_HD.tar.bz2 )"
S="${WORKDIR}/${MY_PN}" #/src"

LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 x86"

DEPEND="media-libs/libglvnd
	media-libs/glfw
	media-libs/openal
	media-libs/libsdl2
	media-libs/sdl2-mixer
	media-libs/sdl2-image
	media-libs/sdl2-ttf
	media-libs/libpng
	dev-libs/boost
	dev-libs/spdlog
	net-misc/wget
	app-arch/tar
	app-arch/p7zip
	app-cdr/bchunk
	app-cdr/cdrdao
"
RDEPEND="${DEPEND}"

src_unpack() {
	unpack "${MY_P}.tar.gz" || die "Unpacking ${P}.tar.gz failed"

	# all these are git submodules not included in the main repo's archive
	cd "${S}/lib" || die "Unpack incomplete"
	unpack "${IMGUI_P}.tar.gz" || die "Unpacking ${IMGUI_P}.tar.gz failed"
	unpack "${FINDFIRST_P}.tar.gz" || die "Unpacking ${FINDFIRST_P}.tar.gz failed"
	unpack "${INIH_P}.tar.gz" || die "Unpacking ${INIH_P}.tar.gz failed"
	rm -rf imgui findfirst inih
	ln -s "${IMGUI_P}" imgui
	ln -s "${FINDFIRST_P}" findfirst || die
	ln -s "${INIH_P}" inih || die

	cd "${S}/assets" || die "Unpack incomplete"
	unpack "${SDL2_CMAKE_MOD_P}.tar.gz" || die "Unpacking ${SDL2_CMAKE_MOD_P}.tar.gz failed"
	rm -rf sdl2-cmake-modules
	ln -s "${SDL2_CMAKE_MOD_P}" sdl2-cmake-modules || die

	use hd_modpack && {
		mkdir -p "${S}/modpack"
		cd "${S}/modpack" || die "Unpack incomplete"
		unpack remc2_HD.tar.bz2
	}
}

src_prepare() {
	default
	sed -i '/CONFIG_DEBUG/d' src/config.h || die
	sed -i '/CONFIG_IMGUI/d' src/config.h || die
	sed -i '/#endif/d' src/config.h || die
	use debug && echo '#define CONFIG_DEBUG' >> src/config.h
	use imgui && echo '#define CONFIG_IMGUI' >> src/config.h
	echo '#endif' >> src/config.h

	cmake_src_prepare
}

src_configure() {
	BUILDTYPE='Release'
	use debug && BUILDTYPE='Debug'

	local mycmakeargs=(
		-Wno-dev
		-DCMAKE_BUILD_TYPE=${BUILDTYPE}
		-DCMAKE_INSTALL_PREFIX='./'
	)

	# these are not the warnings you're looking for
	append-cxxflags -w

	cmake_src_configure
}

src_install() {
	insinto /usr/share/mcarpet2
	dodir /usr/share/mcarpet2
	doins "${S}/assets/config_HD_modpack.ini"
	doins "${S}/assets/config_SD.ini"
	doins "${S}/assets/config_gamepad_3d_pro.ini"
	doins "${S}/assets/config_gamepad_attack_3.ini"
	doins "${S}/assets/config_gamepad_xbox.ini"

	insinto /usr/share/mcarpet2/font
	dodir /usr/share/mcarpet2/font
	newins "${S}/assets/font/8x8-font.bmp" 8x8-font.bmp
	newins "${S}/assets/font/16x16-font.bmp" 16x16-font.bmp

	exeinto /usr/bin
	doexe "${WORKDIR}/${MY_PN}_build/src/remc2"
	doexe "${S}/assets/scripts/mcarpet2"
	doexe "${S}/assets/scripts/mcarpet2_install.sh"

	dodoc "${S}/ChangeLog"
	dodoc "${S}/README.md"
	dodoc "${S}/README_OpenAL"
	dodoc "${S}/README_controllers"

	use hd_modpack && {
		cd "${S}/modpack"

		directories=`find ./ -type d`
		for item in ${directories}; do
			dodir "/usr/share/mcarpet2/${item}"
		done

		files=`find ./ -type f`
		for file in ${files}; do
			path=`dirname ${file}`
			insinto "/usr/share/mcarpet2/${path}"
			doins "${file}"
		done
	}
}

USE Flags

Dependencies

DEPEND

media-libs/libglvnd
	media-libs/glfw
	media-libs/openal
	media-libs/libsdl2
	media-libs/sdl2-mixer
	media-libs/sdl2-image
	media-libs/sdl2-ttf
	media-libs/libpng
	dev-libs/boost
	dev-libs/spdlog
	net-misc/wget
	app-arch/tar
	app-arch/p7zip
	app-cdr/bchunk
	app-cdr/cdrdao

RDEPEND

media-libs/libglvnd
	media-libs/glfw
	media-libs/openal
	media-libs/libsdl2
	media-libs/sdl2-mixer
	media-libs/sdl2-image
	media-libs/sdl2-ttf
	media-libs/libpng
	dev-libs/boost
	dev-libs/spdlog
	net-misc/wget
	app-arch/tar
	app-arch/p7zip
	app-cdr/bchunk
	app-cdr/cdrdao

Manifest for 20260319

Type File Size Source URLs
DIST findfirst-2c4733bb77cb3357c691c7a6b7a46baeed2d5fe1.tar.gz 5629 bytes https://github.com/MathieuTurcotte/findfirst/archive/2c4733bb77cb3357c691c7a6b7a46baeed2d5fe1.tar.gz
DIST imgui-1.91.3.tar.gz 1758682 bytes https://github.com/ocornut/imgui/archive/v1.91.3.tar.gz
DIST inih-r62.tar.gz 22145 bytes https://github.com/benhoyt/inih/archive/r62.tar.gz
DIST mcarpet2-20260319_3.tar.gz 1611760 bytes https://codeberg.org/rodan/magic_carpet_2/archive/20260319_3.tar.gz
DIST sdl2-cmake-modules-ad006a3daae65a612ed87415037e32188b81071e.tar.gz 11996 bytes https://github.com/aminosbh/sdl2-cmake-modules/archive/ad006a3daae65a612ed87415037e32188b81071e.tar.gz