Files
TeslaRel410/BORLAND/BC45/INCLUDE/OCF/OCDOC.H
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- 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>
2026-07-19 07:33:26 -05:00

93 lines
2.9 KiB
C++

//
//----------------------------------------------------------------------------
// ObjectComponents
// (C) Copyright 1994 by Borland International, All Rights Reserved
//
// Definition of TOcDocument Class
//----------------------------------------------------------------------------
#if !defined(OCF_OCDOC_H)
#define OCF_OCDOC_H
#if !defined(OCF_OCPART_H)
# include <ocf/ocpart.h>
#endif
#if !defined(OCF_LINK_H)
# include <ocf/oclink.h>
#endif
// Interfaces & Classes referenced
//
class _ICLASS IStorage;
class _ICLASS TOcStorage;
class _ICLASS TOcApp;
class _ICLASS TOcView;
//
// OC Document class, holds parts & is a owner of views
//
class _ICLASS TOcDocument {
public:
TOcDocument(TOcApp& app, const char far* fileName = 0);
TOcDocument(TOcApp& app, const char far* fileName, IStorage far* storageI);
~TOcDocument();
// collection management
//
TOcPartCollection& GetParts() {return PartCollection;}
TOcViewCollection& GetViews() {return ViewCollection;}
// Storage & streaming related
//
TOcStorage* GetStorage() {return Storage;}
void SetStorage(IStorage* storage, bool remember = true);
void SetStorage(const char far* path);
bool SaveToFile(const char far* newName);
bool RestoreStorage();
// Load/Save part information
//
bool LoadParts();
bool SaveParts(IStorage* storage = 0, bool sameAsLoaded = true,
bool remember = true);
void RenameParts(IBRootLinkable far* bLDocumentI);
void Close();
// Get/Set active view
//
TOcView* GetActiveView() {return ActiveView;}
void SetActiveView(TOcView* view);
// Get/Set document name
//
string GetName() const {return Name;}
void SetName(const string& newName);
private:
TOcView* ActiveView; // Active TOcView object
TOcApp& OcApp; // Our OC application object
TOcStorage* Storage; // root storage for embedded objects
TOcStorage* OrgStorage; // original root storage for embedded objects
int NumViews; // number of views. used to help in numbering
int PartID;
#if defined(BI_DATA_NEAR)
string& Name; // Name of this document
TOcPartCollection& PartCollection; // Collection of parts in this document
TOcViewCollection& ViewCollection; // Collection of linked view in this document
#else
string Name;
TOcPartCollection PartCollection;
TOcViewCollection ViewCollection;
#endif
friend TOcPartCollectionIter; // To allow iterator access to collection
friend TOcViewCollectionIter; // To allow iterator access to collection
friend TOcPart;
friend TOcView;
friend TOcRemVie;
};
#endif // OCF_OCDOC_H