//===========================================================================// // File: btl4.cpp // // Project: BattleTech Brick: BattleTech LBE Application // // Contents: Application launcher (main) // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #include #pragma hdrstop #if !defined(BTL4APP_HPP) # include #endif #if !defined(APPMGR_HPP) # include #endif #if !defined(BTL4VER_HPP) # include #endif #if !defined(BTL4PB_HPP) # include // BTL4PlaybackApplication -- the review app #endif #if !defined(SPOOLER_HPP) # include // MissionReviewApplicationManager / SpoolFile #endif //########################################################################## //#################### BTL4Application Globals ####################### //########################################################################## extern const char* const ProgName; const char* const ProgName = "btl4"; static Byte version[3] = {MAJOR_DATA_VERSION, RELEASE_VERSION, MINOR_DATA_VERSION}; // //############################################################################# // main //############################################################################# // int main(int argc, char *argv[]) { DEBUG_STREAM << "BattleTech v4.10" << endl; if (!L4Application::ParseCommandLine(argc, argv, L4Application::ParseToken)) { return 1; } StreamableResourceFile resources("btl4.res", version); ApplicationManager *application_manager = NULL; if (L4Application::GetMissionReviewMode() < 1) { application_manager = new ApplicationManager(GetTicksPerSecond()); Application *application = new BTL4Application(&resources); application_manager->StartApplication(application); } else { // //------------------------------------------------------------------- // Mission review / live-camera launch (mode 1 = camera, 2 = review). // // The manager owns SPOOLSIZE-byte packet spools (default 8MB); a // STORED spool starts the playback application over it, and camera // mode additionally starts the engine's spooling application -- the // recorder -- as a second app (the binary's FUN_0047c3fc ctor is // L4SpoolingApplication's, ApplicationID 1 == BTL4). //------------------------------------------------------------------- // int spool_size = (getenv("SPOOLSIZE") != NULL) ? atoi(getenv("SPOOLSIZE")) : 0x800000; DEBUG_STREAM << "Spool size = " << spool_size << endl; MissionReviewApplicationManager *review_manager = new MissionReviewApplicationManager( GetTicksPerSecond(), (L4Application::GetMissionReviewMode() != 2) ? 2 : 1, spool_size ); application_manager = review_manager; SpoolFile *spool_file = review_manager->GetStoredSpoolFile(); if (spool_file != NULL) { review_manager->StartApplication( new BTL4PlaybackApplication(&resources, spool_file)); } if (L4Application::GetMissionReviewMode() == 1) { review_manager->StartApplication( new L4SpoolingApplication(&resources, (ApplicationID)1)); } } application_manager->RunMissions(); delete application_manager; return Exit_Code; }