@InsaneSoft
Replacing the custom mask bitmap allocation with the following makes the game work just fine under MorphOS:
struct BitMap *allocmaskbitmap(struct BitMap *bm)
{
return AllocBitMap(GetBitMapAttr(bm, BMA_WIDTH),
GetBitMapAttr(bm, BMA_HEIGHT),
8,
BMF_CLEAR | BMF_MINPLANES,
NULL);
}
void freemaskbitmap(struct BitMap *bm)
{
FreeBitMap(bm);
}
Obviously the one other function using custom bitmap building should use similar AllocBitMap() aswell.
If you want to make the code conditional, you can detect MorphOS with:
APTR isMorphOS = FindResident("MorphOS");
then:
if (isMorphOS)
{
/* mos code */
}
else
{
/* regular code */
}
NOTE: Depth 8 is recommended here to workaround issues in some MorphOS versions, at least if the mask is built using WPA8/WCP family functions.