Files
scummvm-cursorfix/engines/glk/tads/tads2/lib.h
2026-02-02 04:50:13 +01:00

140 lines
3.5 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM 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.
*
* 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 GLK_TADS_TADS2_LIB
#define GLK_TADS_TADS2_LIB
#include "common/scummsys.h"
#include "common/algorithm.h"
namespace Glk {
namespace TADS {
namespace TADS2 {
/* short-hand for various types */
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef byte ub1;
typedef signed char sb1;
typedef char b1;
typedef unsigned int ub2;
typedef signed int sb2;
typedef int b2;
typedef unsigned long ub4;
typedef signed long sb4;
typedef long b4;
typedef int eword;
/* maximum/minimum portable values for various types */
#define UB4MAXVAL 0xffffffffUL
#define UB2MAXVAL 0xffffU
#define UB1MAXVAL 0xffU
#define SB4MAXVAL 0x7fffffffL
#define SB2MAXVAL 0x7fff
#define SB1MAXVAL 0x7f
#define SB4MINVAL (-(0x7fffffff)-1)
#define SB2MINVAL (-(0x7fff)-1)
#define SB1MINVAL (-(0x7f)-1)
/* clear a struture */
#define CLRSTRUCT(x) memset(&(x), 0, (size_t)sizeof(x))
#define CPSTRUCT(dst,src) memcpy(&(dst), &(src), (size_t)sizeof(dst))
#if defined(TRUE)
#undef TRUE
#endif
#if defined(FALSE)
#undef FALSE
#endif
/* TRUE and FALSE */
#define TRUE true
#define FALSE false
/* bitwise operations */
#define bit(va, bt) ((va) & (bt))
#define bis(va, bt) ((va) |= (bt))
#define bic(va, bt) ((va) &= ~(bt))
/*
* noreg/NOREG - was used for variables changed in error-protected code that
* are used in error handling code. However, since ScummVM doesn't support
* setjmp for portability reasons, the following can be left as blank defines
*/
# define noreg
# define NOREG(arglist)
/*
* Linting directives. You can define these before including this file
* if you have a fussy compiler.
*/
#ifdef LINT
# ifndef NOTREACHED
# define NOTREACHED return
# endif
# ifndef NOTREACHEDV
# define NOTREACHEDV(t) return((t)0)
# endif
# ifndef VARUSED
# define VARUSED(v) varused(v)
# endif
void varused();
#else /* LINT */
# ifndef NOTREACHED
# define NOTREACHED
# endif
# ifndef NOTREACHEDV
# define NOTREACHEDV(t)
# endif
# ifndef VARUSED
# define VARUSED(v)
# endif
#endif /* LINT */
/* conditionally compile code if debugging is enabled */
#ifdef DEBUG
# define IF_DEBUG(x) x
#else /* DEBUG */
# define IF_DEBUG(x)
#endif /* DEBUG */
#ifndef offsetof
# define offsetof(s_name, m_name) (size_t)&(((s_name *)0)->m_name)
#endif /* offsetof */
/*
* Define our own version of isspace(), so that we don't try to interpret
* anything outside of the normal ASCII set as spaces.
*/
#define t_isspace(c) \
(((unsigned char)(c)) <= 127 && Common::isSpace((unsigned char)(c)))
} // End of namespace TADS2
} // End of namespace TADS
} // End of namespace Glk
#endif