diff options
Diffstat (limited to 'engines/hugo/util.cpp')
-rw-r--r-- | engines/hugo/util.cpp | 77 |
1 files changed, 15 insertions, 62 deletions
diff --git a/engines/hugo/util.cpp b/engines/hugo/util.cpp index 8cca4b7d84..bad97d80c5 100644 --- a/engines/hugo/util.cpp +++ b/engines/hugo/util.cpp @@ -40,8 +40,10 @@ namespace Hugo { +/** + * Returns index (0 to 7) of first 1 in supplied byte, or 8 if not found + */ int Utils::firstBit(byte data) { -// Returns index (0 to 7) of first 1 in supplied byte, or 8 if not found if (!data) return 8; @@ -54,8 +56,10 @@ int Utils::firstBit(byte data) { return i; } +/** + * Returns index (0 to 7) of last 1 in supplied byte, or 8 if not found + */ int Utils::lastBit(byte data) { -// Returns index (0 to 7) of last 1 in supplied byte, or 8 if not found if (!data) return 8; @@ -68,8 +72,10 @@ int Utils::lastBit(byte data) { return i; } +/** + * Reverse the bit order in supplied byte + */ void Utils::reverseByte(byte *data) { -// Reverse the bit order in supplied byte byte maskIn = 0x80; byte maskOut = 0x01; byte result = 0; @@ -78,21 +84,21 @@ void Utils::reverseByte(byte *data) { if (*data & maskIn) result |= maskOut; } - + *data = result; } char *Utils::Box(box_t dismiss, const char *s, ...) { static char buffer[MAX_STRLEN + 1]; // Format text into this - if (!s) + if (!s) return 0; // NULL strings catered for if (s[0] == '\0') return 0; if (strlen(s) > MAX_STRLEN - 100) { // Test length - Warn("String too big:\n%s", s); + warning("String too big: '%s'", s); return 0; } @@ -129,62 +135,10 @@ char *Utils::Box(box_t dismiss, const char *s, ...) { return buffer; } -void Utils::Warn(const char *format, ...) { -// Warning handler. Print supplied message and continue -// Arguments are same as printf - char buffer[WARNLEN]; - va_list marker; - va_start(marker, format); - vsnprintf(buffer, WARNLEN, format, marker); - va_end(marker); - warning("Hugo warning: %s", buffer); -} - -void Utils::Error(int error_type, const char *format, ...) { -// Fatal error handler. Reset environment, print error and exit -// Arguments are same as printf - char buffer[ERRLEN + 1]; - bool fatal = true; // Fatal error, else continue - - switch (error_type) { - case FILE_ERR: - strcpy(buffer, HugoEngine::get()._textUtil[kErr1]); - break; - case WRITE_ERR: - strcpy(buffer, HugoEngine::get()._textUtil[kErr2]); - fatal = false; // Allow continuation - break; - case PCCH_ERR: - strcpy(buffer, HugoEngine::get()._textUtil[kErr3]); - break; - case HEAP_ERR: - strcpy(buffer, HugoEngine::get()._textUtil[kErr4]); - break; - case SOUND_ERR: - strcpy(buffer, HugoEngine::get()._textUtil[kErr5]); - break; - default: - strcpy(buffer, HugoEngine::get()._textUtil[kErr6]); - break; - } - - if (fatal) - HugoEngine::get().shutdown(); // Restore any devices before exit - - va_list marker; - va_start(marker, format); - vsnprintf(&buffer[strlen(buffer)], ERRLEN - strlen(buffer), format, marker); - va_end(marker); - //MessageBeep(MB_ICONEXCLAMATION); - //MessageBox(hwnd, buffer, "HugoWin Error", MB_OK | MB_ICONEXCLAMATION); - warning("Hugo Error: %s", buffer); - - if (fatal) - exit(1); -} - +/** + * Print options for user when dead + */ void Utils::gameOverMsg(void) { - // Print options for user when dead //MessageBox(hwnd, gameoverstring, "Be more careful next time!", MB_OK | MB_ICONINFORMATION); warning("STUB: Gameover_msg(): %s", HugoEngine::get()._textUtil[kGameOver]); } @@ -201,5 +155,4 @@ char *Utils::strlwr(char *buffer) { return result; } - } // End of namespace Hugo |