| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 20260319 | 8 | amd64 x86 | 0 |
# 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
}
}
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
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