- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
/*------------------------------------------------------------------------*/
|
|
/* */
|
|
/* OBJECT.CPP */
|
|
/* */
|
|
/* Copyright Borland International 1991, 1993 */
|
|
/* All Rights Reserved */
|
|
/* */
|
|
/*------------------------------------------------------------------------*/
|
|
|
|
#if !defined( __STDLIB_H )
|
|
#include <stdlib.h>
|
|
#endif // __STDLIB_H
|
|
|
|
#if !defined( __STRSTREA_H )
|
|
#include <strstrea.h>
|
|
#endif // __STRSTREA_H
|
|
|
|
#if !defined( __MALLOC_H )
|
|
#include <malloc.h>
|
|
#endif // __MALLOC_H
|
|
|
|
#if !defined( __CLSDEFS_H )
|
|
#include "classlib\obsolete\clsdefs.h"
|
|
#endif // __CLSDEFS_H
|
|
|
|
#if !defined( __OBJECT_H )
|
|
#include "classlib\obsolete\object.h"
|
|
#endif // __OBJECT_H
|
|
|
|
Error theErrorObject;
|
|
|
|
Object *Object::ZERO = &theErrorObject;
|
|
|
|
// Error reporting
|
|
|
|
static char *errstring[__ElastError] =
|
|
{
|
|
"firstError: [[ Error in error reporting???? ]]",
|
|
"EDELERROR: Attemping to delete the ERROR object",
|
|
"EXPANDFS: Attempting to expand a fixed size array.",
|
|
"EXPANDLB: Attempt to expand lower bound of array.",
|
|
"NOMEM: Out of Memory",
|
|
"NOTSORT: Object must be sortable.",
|
|
"NOTASSOC: Object must be association type.",
|
|
"ORDER3: B-trees must be at least of order 3.",
|
|
"NOMEMIA: No room for the item array for an InnerNode",
|
|
"NOMEMLN: No room for item array for a LeafNode.",
|
|
"PRBADCLASS: PersistRegister called with bad class id.",
|
|
"PRINCONS: PersistRegister called with inconsistent values.",
|
|
"BNZERODIV: Attempt to divide by zero.",
|
|
"BNILLLOG: Attempt to take log of zero or negative number.",
|
|
"BNNOMEM: No memory for a bignum.",
|
|
"RANDOM2SMALL: Bignum RNG must be bigger than 32 bits (> 2 words).",
|
|
"BNTEMPSTKOVFL: Too many markTempRing invocations,",
|
|
"BNTEMPSTKUNFL: Too many releaseTempRing invocations,",
|
|
"BN2MANYTEMPS: Ran out of temporaries on the Temp ring.",
|
|
"BN2BIG2PRINT: Bignum has too many digits in current output base.",
|
|
"BNNOMEM4PRINT: No memory for temporaries for printing.",
|
|
"BNRESULT2BIG: An operation would have resulted in too large of a number.",
|
|
"RNG2BIG: Sorry. RNGs are limited to 32767 `digits' in size.",
|
|
"BNSQRTILLEGAL: Trying to take sqrt of negative bignum.",
|
|
};
|
|
|
|
extern "C" void __ErrorMessage( const char _FAR * );
|
|
|
|
void _FARFUNC ClassLib_error( ClassLib_errors errnum, char _FAR *addstr )
|
|
{
|
|
ostrstream os;
|
|
os << endl << "Fatal error from class library:" << endl;
|
|
os << "__E" << errstring[errnum] << endl;
|
|
if( addstr != 0 )
|
|
os << addstr << endl;
|
|
os << ends;
|
|
|
|
char *buf = os.str();
|
|
__ErrorMessage( buf );
|
|
delete [] buf;
|
|
|
|
exit( errnum );
|
|
}
|