int main() { ////////// //Setup/// ////////// srand( (unsigned)time(0) ); Combat* pCombat = new Combat(); Report* pDamageReport = new Report( "damage_report.txt" ); pDamageReport->mFile.open( pDamageReport->getFilename(), ios::out | ios::app ); Report* pInitReport = new Report( "init_report.txt", false, 1 ); pDamageReport->addToReport( "Damage Report\n\n" ); pInitReport->addToReport( "Initialization Report\n\n" ); pDamageReport->mFile.close(); COORD newConsoleSize = {82,45}; //Resized the console so a more detailed output SMALL_RECT rDisplayArea = {0,0,0,0}; //of damage values, criticals, ability names, SetConsoleScreenBufferSize( pCombat->getHandle(), newConsoleSize ); //mana costs, and Damage Over Time ticks rDisplayArea.Right = newConsoleSize.X - 1; //could be seen on screen without scrolling SetConsoleWindowInfo( pCombat->getHandle(), true, &rDisplayArea ); Unit* pPlayer = pCombat->charInit(); Boss* pBoss = new Boss(); pCombat->units = pCombat->enemyInit( GameFunctions::getNumEnemies() ); pInitReport->initReport( pPlayer, pCombat->units ); //Output name, health, mana, armor, abilities and their names and values //for player and units vector of enemies pCombat->storyMsg( pPlayer->getPlayerName() ); stringstream initString; initString << "\nPrinting Story Message. Function call: storyMsg( pPlayer->getPlayerName() )" << "\nSetting up Game Loop variables..." << "\nDetermining Combat Order..." << "\nEntering Game Loop..."; pInitReport->addToReport( initString.str() ); pInitReport->addToReport( "\nStarting Combat..." ); //Final output, switching to Combat report: pDamageReport pCombat->startGameCombat( pPlayer, pBoss, pDamageReport, pCombat->units ); delete pPlayer; pPlayer= NULL; delete pBoss; pBoss = NULL; delete pCombat; pCombat = NULL; delete pDamageReport; pDamageReport = NULL; delete pInitReport; pInitReport = NULL; cin.ignore( 1000, '\n' ); cin.get(); return 0; }