Monday, July 31, 2017

Re: NEW: games/corsixth

On 07/31/17 15:34, Adam Wolk wrote:
> On Sun, Jul 30, 2017 at 05:33:32PM -0400, Brian Callahan wrote:
>> Hi ports --
>>
>> Attached is a new port, games/corsixth. CorsixTH is an open source clone of
>> the game Theme Hospital.
>>
> Marvelous!
>
> Started off by building it on amd64 -current, snapshot from 07.31.
>
> The built went fine, but make port-lib-depends-check complained:
>
> $ make port-lib-depends-check
>
> corsixth-0.60.1(games/corsixth):
> Missing lib: lua5.3.5 (/usr/local/share/CorsixTH/CorsixTH) (NOT REACHABLE)
> Extra: lua5.1.5
> *** Error 1 in target 'port-lib-depends-check' (ignored)
> $
>
> I had lua-5.3.4 as a dependency from nmap and lua5.1 as a dependency from
> a bunch of stuff.
>
> Installed and tried to start it, got welcomed by a black window with an error
> message and the same error message presented in the terminal (I will skip
> providing a screenshot):
>
> $ corsixth
> An error has occurred in CorsixTH:
> ./Lua/strict.lua:66: module 'lfs' not found:
> no field package.preload['lfs']
> no file '/usr/local/share/lua/5.3/lfs.lua'
> no file '/usr/local/share/lua/5.3/lfs/init.lua'
> no file '/usr/local/lib/lua/5.3/lfs.lua'
> no file '/usr/local/lib/lua/5.3/lfs/init.lua'
> no file './lfs.lua'
> no file './lfs/init.lua'
> no file '/usr/local/lib/lua/5.3/lfs.so'
> no file '/usr/local/lib/lua/5.3/loadall.so'
> no file './lfs.so'
> stack traceback:
> [C]: in upvalue 'fn'
> ./Lua/strict.lua:66: in function 'require'
> ./Lua/app.lua:23: in main chunk
> [C]: in function 'persist.dofile'
> ./CorsixTH.lua:56: in function 'dofile'
> ./CorsixTH.lua:108: in main chunk
> [C]: in ?
>
> lfs is of course missing for lua5.3. Make install added it for 5.1.
>
> I proceeded to remove nmap because who needs network scanning when
> you can play Theme Hospital instead?
>
> That makes port depends check really happy:
> $ make port-lib-depends-check
> $
>
> Now the binary runs with a different error, probably missing files.
> Here I agree with sthen@ that adding a pkg-readme of where to put
> the files is a nice touch that most game ports already have (ie. for
> ioquake3, yaquake2 etc). I was wrong and didn't grab the message
> but not able to reproduce it yet.
>
> After a few tries it showed me a window with the game and a picker
> to locate the game files. I tried to full screen it in i3 but the
> game segfaulted (without a core file). I can reproduce that by
> starting the game again and hitting Mod-f for fullscreen. It
> also happens when sending it to another screen.
>
> I just start it now in a fresh window to have it fullscreen
> and proceed to pick the game data folder from GOG.com.
>
> The game starts, music and sound is present, the cutscene plays.
> Everything seems to work perfectly gameplay wise.
>
> Long story short, I think this needs perhaps a hard cap on the
> lua version and the suggestions sthen@ left before. I wouldn't
> worry too much on i3 resize segfault - that can be handled with
> upstream post import.
>
> Regards,
> Adam
>

Since CorsixTH doesn't care which version of Lua it uses, and all the
RDEPS have a lua53 FLAVOR, let's just have CorsixTH use the first Lua
that cmake finds, which is 5.3

New tarball attached with that change.

OK?

~Brian


>> ---
>> pkg/DESCR:
>> CorsixTH is a reimplementation of the 1997 Bullfrog business sim Theme
>> Hospital. As well as faithfully recreating the original, CorsixTH adds
>> support for modern operating systems, high resolutions, and much more.
>>
>> CorsixTH requires game assets from Theme Hospital to work properly.
>> ---
>>
>> You will have to obtain a copy of Theme Hospital to play this (the GoG
>> download worked for me using innoextract to extract it, like with OpenRCT2).
>>
>> This requires a C++11 compiler. In theory, CorsixTH should work on any
>> platform even those that don't have clang as their base compiler (I don't
>> have the hardware to test, sadly). I don't think it's appropriate to do
>> ONLY_FOR_ARCHS=${CLANG_ARCHS} unless the theory doesn't work out in
>> practice. What's the best way to do this?
>> COMPILER = clang gcc
>> MODCLANG_ARCHS = <some list that doesn't include ${CLANG_ARCHS}>
>> MODGCC4_ARCHS = <some list that doesn't include ${CLANG_ARCHS} or
>> ${MODCLANG_ARCHS}>
>> Does this make sense?
>>
>> Comments/OKs welcome, port attached. Works well on amd64.
>>
>> ~Brian
>>
>

No comments:

Post a Comment