Powder

Hi,
thanks to much help from its author, Jeff Lait, POWDER successfully builds on Haiku.
The game is roguelike in nature and uses SDL on platforms like Windows/Mac/Linux/BeOS.

Running the binary from the source folder will give you these error messages you can safely ignore.

GCC4 nightlies need no change to source code and game is flawless.
Regular GCC2 users need to change the following files:

bmp2c.cpp in support/bmp2c
Change

is.open(name, ios_base::in | ios_base::binary);

to

is.open(name);

map2c.cpp in support/map2c
Add

#include <cctype>

to includes

buf.cpp in root folder
Change

int
OURvsnprintf(char *str, size_t size, const char *format, va_list ap)
{
    int		result;
#ifdef WIN32
    result = _vsnprintf(str, size, format, ap);
#else
    va_list	ap_copy;
    // Apparently va_list can't be reused on modern compilers.  Same
    // compilers require support for va_copy which older compilers
    // lack.  *sigh*
    va_copy(ap_copy, ap);
    result = vsnprintf(str, size, format, ap_copy);
    va_end(ap_copy);
#endif
    return result;
}

to

int
OURvsnprintf(char *str, size_t size, const char *format, va_list ap)
{
#ifdef WIN32
     return _vsnprintf(str, size, format, ap);
#else
#ifdef USING_SDL
     int         result;
     va_list     ap_copy;
     // Apparently va_list can't be reused on modern compilers.  Same
     // compilers require support for va_copy which older compilers
     // lack.  *sigh*
     va_copy(ap_copy, ap);
     result = vsnprintf(str, size, format, ap_copy);
     va_end(ap_copy);
     return result;
#else
     return vsnprintf(str, size, format, ap);
#endif
#endif
}

The game has an annoying bug on GCC2: players, for now, cannot engage in melee action.
And that’s bad. Unless you decide to be an archer or wizard with plenty of magic missiles.

The likely culprit is action.cpp, actionBump() which is supposed to
fall through to actionAttack() in these cases. Might want to add some
formatAndReport() calls to track what code path it is taking…

Source code is available from the homepage.