- 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>
101 lines
3.0 KiB
C++
101 lines
3.0 KiB
C++
// ---------------------------------------------------------------------------
|
|
// Copyright (C) 1994 Borland International
|
|
// strmpnt.h
|
|
// ---------------------------------------------------------------------------
|
|
#ifndef STRMPNT_H
|
|
#define STRMPNT_H
|
|
|
|
#include <classlib/objstrm.h>
|
|
#include <iostream.h>
|
|
|
|
//
|
|
// T2DPoint
|
|
//
|
|
// Simple object used for streaming.
|
|
//
|
|
const int T2DPointVersion = 1;
|
|
|
|
class T2DPoint : public virtual TStreamableBase {
|
|
public:
|
|
T2DPoint(int i=0, int j=0);
|
|
virtual void Draw();
|
|
|
|
protected:
|
|
int X;
|
|
int Y;
|
|
|
|
DECLARE_STREAMABLE(, T2DPoint, T2DPointVersion);
|
|
};
|
|
|
|
|
|
//
|
|
// T3DPoint
|
|
//
|
|
// Multiple-derived object used for streaming.
|
|
//
|
|
const int T3DPointVersion = 2;
|
|
|
|
class T3DPoint : public T2DPoint {
|
|
public:
|
|
T3DPoint(int i=0, int j=0, int k=0);
|
|
virtual void Draw();
|
|
|
|
protected:
|
|
int Z;
|
|
|
|
DECLARE_STREAMABLE(, T3DPoint, T3DPointVersion);
|
|
};
|
|
|
|
//
|
|
// TColor
|
|
//
|
|
// A non-streamable base class to show streaming of a multiply inherited
|
|
// class.
|
|
//
|
|
const int TColorVersion=3;
|
|
|
|
class TColor {
|
|
public:
|
|
TColor(int i=0, int j=0, int k=0);
|
|
virtual void DisplayColor();
|
|
|
|
protected:
|
|
int R;
|
|
int G;
|
|
int B;
|
|
};
|
|
|
|
// T2DPointColor
|
|
// Streaming of a multiply inherited class where one branch
|
|
// of inheritence is streamable (T2DPoint) and one branch
|
|
// is not (TColor).
|
|
//
|
|
// Notice in the definition of
|
|
// Streamer::Read and Streamer::Write
|
|
// there's code to stream the data members of the TColor.
|
|
// If the code is not provided, then the members of TColor
|
|
// will be lost.
|
|
// If all branches of the inheritence are already streamable,
|
|
// then the Read and Write functions are easily defined.
|
|
// For example,
|
|
// void Derived::Streamer::Write(opstream &os) const
|
|
// {
|
|
// WriteBaseObject((Base1 *)GetObject(), os);
|
|
// WriteBaseObject((Base2 *)GetObject(), os);
|
|
// ...
|
|
// os << NewDataMember1;
|
|
// os << NewDataMember2;
|
|
// ...
|
|
// }
|
|
// Similarly for the Read function.
|
|
const int T2DPointColorVersion=3;
|
|
|
|
class T2DPointColor : public T2DPoint, public TColor {
|
|
public:
|
|
T2DPointColor(int x, int y, int r, int g, int b);
|
|
virtual void Draw();
|
|
|
|
DECLARE_STREAMABLE(, T2DPointColor, T2DPointColorVersion);
|
|
};
|
|
|
|
#endif |