Files
firestorm/Gameleap/code/mw4/Libraries/stuff/Style.hpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

143 lines
3.7 KiB
C++

//===========================================================================//
// File: style.hh //
// Project: MUNGA Brick: None assigned - coding styles, etc. //
// Contents: Base information used by all MUNGA source files //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 10/14/94 JMA Initial coding. //
// 11/03/94 ECH Made compatible with BC4.0 //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// PROPRIETARY AND CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Stuff.hpp"
namespace Stuff {
extern int ArmorLevel;
enum {SNAN_NEGATIVE_LONG=0xffb1ffb1};
#if !defined(Verify)
#if !defined(_ARMOR)
#include "ArmorOff.hpp"
#else
#include "ArmorOn.hpp"
#endif
#endif
#define Register_Pointer(p) Check_Pointer(p)
#define Unregister_Pointer(p) Check_Pointer(p)
#define Register_Object(p) Check_Object(p)
#define Unregister_Object(p) Check_Object(p)
void
Flood_Memory_With_NAN(
void *where,
size_t how_much
);
#define Test_Assumption(c)\
while (!(c)) {SPEW((GROUP_STUFF_TEST, #c" failed!")); return false;}
#define Test_Message(m) SPEW((GROUP_STUFF_TEST, m));
#if defined(_ARMOR)
class MemoryRegister;
class Signature
{
friend class MemoryRegister;
private:
enum Mark
{
Valid=0x7B135795L,
Destroyed=0x4FED1231L
} mark;
protected:
Signature();
~Signature();
public:
friend void Is_Signature_Bad(const volatile Signature *p);
bool IsMarkedValid() {return mark==Valid;}
};
inline void
Is_Signature_Bad(const volatile void* p)
{Check_Pointer(p);}
#endif
//##########~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//# MACROS #
//##########
#define ELEMENTS(Array) (sizeof(Array)/sizeof(*Array))
#if defined(__sgi__)
#define _stricmp(s1, s2) (strcasecmp(s1, s2))
#define _strnicmp(s1, s2, n) (strncasecmp(s1, s2, n))
#endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Spews
//
#if !defined(Spew)
inline void
Spew(
const char* group,
int value
)
{SPEW((group, "%d+", value));}
inline void
Spew(
const char* group,
float value
)
{SPEW((group, "%f+", value));}
inline void
Spew(
const char* group,
const char* value
)
{SPEW((group, "%s+", value));}
#endif
//#############~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//# TEMPLATES #
//#############
extern float SMALL;
#define Abs(value) ((value>0) ? value : -value)
#define Clamp(v,f,c) if (v<f) v=f; else if (v>c) v=c; else (void)0
#define Max_Clamp(v,c) if (v>c) v=c; else (void)0
#define Is_Many_Bits(value) (Lowbit(value)^value)
#define Low_Bit(value) (value & (-value))
#define Min_Clamp(v,f) if (v<f) v=f; else (void)0
#define Max(a,b) ((a>b) ? a : b)
#define Min(a,b) ((a<b) ? a : b)
#define Sgn(value) ((value<-SMALL) ? -1 : value>SMALL)
//############~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//# TYPEDEFS #
//############
enum {INT_BITS=32};
}
inline void*
_cdecl operator new(size_t size, void* where)
{Check_Pointer(where); return where;}