Files
TeslaRel410/CODE/RP/MUNGA/MEMREG.HPP
T
CydandClaude Fable 5 fdd9ac9d97 Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)
Archival snapshot of the Virtual World Entertainment Tesla cockpit
software, 1994-1996: MUNGA engine and L4 pod layer source (Borland
C++ 5.0), BT/RP game code, and game content (models, audio, maps,
gauges, Division renderer data). Includes third-party libraries:
Division dVS/DPL graphics, HMI SOS audio, WATTCP networking.

Files are preserved byte-for-byte (.gitattributes disables all
line-ending conversion). README.md documents the layout, target
hardware, and toolchain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 13:21:58 -05:00

122 lines
2.9 KiB
C++

//=======================================================================
// File: MEMREG.HPP
//
// Created: Sunday, October 2, 1994, 6:33 PM
// Author: Eric Huffman
// Project: Node.Û
// Compiler: 7.0, Û Symantec Corporation 1994
//-----------------------------------------------------------------------
// Copyright (C) 1994, Virtual World Entertainments, All Rights reserved
// PROPRIETARY AND CONFIDENTIAL
//=======================================================================
#if !defined(MEMREG_HPP)
# define MEMREG_HPP
typedef enum
{
PointerMRStatsAddressType,
ObjectMRStatsAddressType
} MRStatsAddressType;
# undef Start_Registering
# undef Stop_Registering
# undef Register_Object
# undef Register_Pointer
# undef Unregister_Object
# undef Unregister_Pointer
# undef Object_Registration
# undef Check_All_Signatures
# if !defined(MEMORY_REGISTER)
# define Start_Registering()
# define Stop_Registering()
# define Register_Object(address) Check(address)
# define Register_Pointer(address) Check_Pointer(address)
# define Unregister_Object(address) Check(address)
# define Unregister_Pointer(address) Check_Pointer(address)
# define Object_Registration(address)
# define Check_All_Signatures()
# else
extern void
Start_Registering_Function();
extern void
Stop_Registering_Function();
extern void
Register_Pointer_Function(
void *address,
MRStatsAddressType address_type,
char *file_name,
int line_num
);
extern void
Unregister_Pointer_Function(
void *address,
char *file_name,
int line_num
);
extern void
Object_Registration_Function(
void *address,
char *file_name,
int line_num
);
extern void
Check_All_Signatures_Function(
char *file_name,
int line_num
);
# define Start_Registering() Start_Registering_Function()
# define Stop_Registering() Stop_Registering_Function()
# define Check_All_Signatures()\
Check_All_Signatures_Function(__FILE__, __LINE__)
# if defined(MEMORY_VERIFY)
# undef Check
# define Check(p) {\
Check_Signature(p);\
Verify((p)->TestInstance());\
Check_All_Signatures();\
}
# endif
# define Register_Object(address)\
{\
Check(address);\
Register_Pointer_Function(\
address,\
Is_Signature_Bad((Signature*)address) ?\
PointerMRStatsAddressType : ObjectMRStatsAddressType,\
__FILE__, __LINE__\
);\
}
# define Register_Pointer(address)\
Register_Pointer_Function(\
address, PointerMRStatsAddressType, __FILE__, __LINE__\
)
# define Unregister_Object(address)\
{\
Check(address);\
Unregister_Pointer_Function(address, __FILE__, __LINE__);\
}
# define Unregister_Pointer(address)\
Unregister_Pointer_Function(address, __FILE__, __LINE__)
# define Object_Registration(address)\
Object_Registration_Function(address, __FILE__, __LINE__)
# endif
#endif