mirror of
https://github.com/scummvm/scummvm-tools.git
synced 2026-05-21 05:40:44 +00:00
122 lines
3.0 KiB
C++
122 lines
3.0 KiB
C++
/* ScummVM Tools
|
|
*
|
|
* ScummVM Tools is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* Additionally this file is based on the ScummVM source code.
|
|
* Copyright information for the ScummVM source code is
|
|
* available in the COPYRIGHT file of the ScummVM source
|
|
* distribution.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
#ifndef COMMON_UTIL_H
|
|
#define COMMON_UTIL_H
|
|
|
|
#include "common/scummsys.h"
|
|
|
|
#ifdef MIN
|
|
#undef MIN
|
|
#endif
|
|
|
|
#ifdef MAX
|
|
#undef MAX
|
|
#endif
|
|
|
|
template<typename T> inline T ABS (T x) { return (x>=0) ? x : -x; }
|
|
template<typename T> inline T MIN (T a, T b) { return (a<b) ? a : b; }
|
|
template<typename T> inline T MAX (T a, T b) { return (a>b) ? a : b; }
|
|
template<typename T> inline T CLIP (T v, T amin, T amax)
|
|
{ if (v < amin) return amin; else if (v > amax) return amax; else return v; }
|
|
|
|
|
|
/**
|
|
* Template method which swaps the vaulues of its two parameters.
|
|
*/
|
|
template<typename T> inline void SWAP(T &a, T &b) { T tmp = a; a = b; b = tmp; }
|
|
|
|
/**
|
|
* Macro which determines the number of entries in a fixed size array.
|
|
*/
|
|
#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0])))
|
|
|
|
namespace Common {
|
|
|
|
|
|
/**
|
|
* List of game language.
|
|
*/
|
|
enum Language {
|
|
EN_ANY, // Generic English (when only one game version exist)
|
|
EN_USA,
|
|
EN_GRB,
|
|
|
|
DE_DEU,
|
|
FR_FRA,
|
|
IT_ITA,
|
|
PT_BRA,
|
|
ES_ESP,
|
|
JA_JPN,
|
|
ZH_TWN,
|
|
KO_KOR,
|
|
SE_SWE,
|
|
HB_ISR,
|
|
RU_RUS,
|
|
CZ_CZE,
|
|
NL_NLD,
|
|
NB_NOR,
|
|
PL_POL,
|
|
|
|
UNK_LANG = -1 // Use default language (i.e. none specified)
|
|
};
|
|
|
|
/**
|
|
* List of game platforms. Specifying a platform for a target can be used to
|
|
* give the game engines a hint for which platform the game data file are.
|
|
* This may be optional or required, depending on the game engine and the
|
|
* game in question.
|
|
*/
|
|
enum Platform {
|
|
kPlatformPC,
|
|
kPlatformAmiga,
|
|
kPlatformAtariST,
|
|
kPlatformMacintosh,
|
|
kPlatformFMTowns,
|
|
kPlatformWindows,
|
|
kPlatformNES,
|
|
kPlatformC64,
|
|
kPlatformLinux,
|
|
kPlatformAcorn,
|
|
kPlatformSegaCD,
|
|
kPlatform3DO,
|
|
// kPlatformPCEngine,
|
|
|
|
kPlatformUnknown = -1
|
|
};
|
|
|
|
} // End of Common namespace
|
|
|
|
/* Misc stuff */
|
|
void NORETURN_PRE error(const char *s, ...) NORETURN_POST;
|
|
void warning(const char *s, ...);
|
|
void debug(int level, const char *s, ...);
|
|
void notice(const char *s, ...);
|
|
|
|
void hexdump(const byte * data, int len, int bytesPerLine = 16, int startOffset = 0);
|
|
|
|
#endif
|