- 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>
135 lines
5.3 KiB
Plaintext
135 lines
5.3 KiB
Plaintext
<<[CPP]
|
|
##^BOF
|
|
##FALSE [[RegAndFact]]
|
|
##FALSE [[Template]]
|
|
##--BEGIN-- ? "BEGIN_REGISTRATION(ApplicationReg)" [[RegThere]]
|
|
## --BEGIN-- RegThere == FALSE
|
|
## --BEGIN-- QUERY_CLASS_NAME [[ClassName]]
|
|
## :"//{{[[ClassName]] Implementation}}" [[ClassMarker]]
|
|
## :\\ClassMarker [[LookUp]]
|
|
## :QUERY_FILE_CPP [[FileName]]
|
|
## :^BOF
|
|
## :? LookUp [[Search]]
|
|
## :Search == FALSE
|
|
## :%\\"Unable to add application registration to [[FileName]]. "
|
|
##*
|
|
## :^BOL
|
|
## --END-- QUERY_CLASS_NAME [[ClassName]]
|
|
DEFINE_APP_DICTIONARY(AppDictionary);
|
|
##@QUERY_APPL_OLE == VALUE_NOOLE
|
|
static TPointer<TRegistrar> Registrar;
|
|
##@QUERY_APPL_OLE != VALUE_NOOLE
|
|
static TPointer<TOcRegistrar> Registrar;
|
|
|
|
REGISTRATION_FORMAT_BUFFER(100)
|
|
|
|
BEGIN_REGISTRATION(ApplicationReg)
|
|
## --BEGIN-- @QUERY_OLE_GUID [[GUID]]
|
|
## :GUID != ""
|
|
REGDATA(clsid, "{[[GUID]]}")
|
|
## :GUID == ""
|
|
REGDATA(clsid, "{544C5355-4547-4C4C-5248-4C4C75636173}")
|
|
## --END-- @QUERY_OLE_GUID [[GUID]]
|
|
## --BEGIN-- @QUERY_PRJ_NAME [[AppTitle]]
|
|
REGDATA(progid, "[[AppTitle]].Application.1")
|
|
REGDATA(appname, "[[AppTitle]] Server")
|
|
REGDATA(description, "[[AppTitle]] Server Application")
|
|
REGDATA(cmdline, "/Automation")
|
|
// REGDATA(debugger, "TDW")
|
|
## --END-- @QUERY_PRJ_NAME [[AppTitle]]
|
|
END_REGISTRATION
|
|
|
|
## --END-- RegThere == FALSE
|
|
## --BEGIN-- QUERY_CLASS_NAME [[ClassName]]
|
|
## :^BOF
|
|
## :? "TApplication("
|
|
## :^EOS
|
|
## :YPos() [[CurrYLine]]
|
|
## :XPos() [[CurrXCol]]
|
|
## :? ","
|
|
## :YPos() != CurrYLine
|
|
## :^@CurrYLine, CurrXCol
|
|
## :? ")"
|
|
## :YPos() == CurrYLine
|
|
## :^BOS
|
|
## :XPos() [[X1Pos]]
|
|
## :^@CurrYLine, CurrXCol
|
|
## :^DROP
|
|
## :^@CurrYLine, (X1Pos - 1)
|
|
## :^RAISE
|
|
## :InsertText("::ApplicationReg[\"appname\"], ::Module, &::AppDictionary")
|
|
##*
|
|
## :^BOF
|
|
## :? " TOcRegistrar(" RegAndFact
|
|
## RegAndFact == FALSE
|
|
## :^BOF
|
|
## :? " TRegistrar(" RegAndFact
|
|
## FALSE [[AppFound]]
|
|
## FALSE [[appFound]]
|
|
## --BEGIN-- RegAndFact == FALSE
|
|
## :^BOF
|
|
## :? " OwlMain"
|
|
## :? \\"[[ClassName]] "
|
|
## :^BOL
|
|
## :^DELL
|
|
## --BEGIN-- @QUERY_APPL_OLE == VALUE_NOOLE
|
|
::Registrar = new TRegistrar(::ApplicationReg, TAutoFactory<[[ClassName]]>(), TApplication::GetCmdLine(), _hInstance);
|
|
if (::Registrar->IsOptionSet(amAnyRegOption))
|
|
return 0;
|
|
|
|
## --END-- @QUERY_APPL_OLE == VALUE_NOOLE
|
|
## --BEGIN-- @QUERY_APPL_OLE != VALUE_NOOLE
|
|
::Registrar = new TOcRegistrar(::ApplicationReg, TOleDocViewAutoFactory<[[ClassName]]>(), TApplication::GetCmdLine(), ::DocTemplateStaticHead);
|
|
if (::Registrar->IsOptionSet(amAnyRegOption))
|
|
return 0;
|
|
|
|
## --END-- @QUERY_APPL_OLE != VALUE_NOOLE
|
|
## :? \\"App.Run(" AppFound
|
|
## :AppFound == FALSE
|
|
## :? \\"app.Run(" appFound
|
|
##*
|
|
## :((AppFound == TRUE) || (appFound == TRUE))
|
|
## :^BOS
|
|
## :YPos() [[CurrYPos]]
|
|
## :XPos() [[CurrXPos]]
|
|
## :^@CurrYPos, CurrXPos
|
|
## :^DROP
|
|
## :^@CurrYPos, (CurrXPos + 3)
|
|
## :^RAISE
|
|
## :InsertText("::Registrar->")
|
|
##*
|
|
## --END-- RegAndFact == FALSE
|
|
## --BEGIN-- RegAndFact == TRUE
|
|
## :YPos() [[CurrYLine]]
|
|
## :? ","
|
|
## :YPos() == CurrYLine
|
|
## :^EOS
|
|
## :XPos() [[X1Pos]]
|
|
## :? ","
|
|
## :YPos() == CurrYLine
|
|
## :^BOS
|
|
## :XPos() [[X2Pos]]
|
|
## :^@CurrYLine, X1Pos
|
|
## :^DROP
|
|
## :^@CurrYLine, (X2Pos - 1)
|
|
## :^RAISE
|
|
## --BEGIN-- TRUE
|
|
## :@QUERY_APPL_OLE == VALUE_NOOLE
|
|
## :InsertText(\\" TAutoFactory<[[ClassName]]>()")
|
|
##*
|
|
## :@QUERY_APPL_OLE != VALUE_NOOLE
|
|
## :InsertText(\\" TOleDocViewAutoFactory<[[ClassName]]>()")
|
|
##*
|
|
## --END-- TRUE
|
|
##*
|
|
## :^BOF
|
|
## :? "REGDATA(cmdline, \""
|
|
## :^EOS
|
|
## :? "/Automation" == FALSE
|
|
## :InsertText("/Automation")
|
|
##*
|
|
## --END-- RegAndFact == TRUE
|
|
## --END-- QUERY_CLASS_NAME [[ClassName]]
|
|
##--END-- ? "BEGIN_REGISTRATION(ApplicationReg)" [[RegThere]]
|
|
>>[CPP]
|