Пример #1
0
int main(int argc, char **argv) {
	//Input Arrays
	std::vector<std::string> *input;
	std::vector<std::string> *creationInput;
	std::vector<std::string> *commandInput;

	//Setup Game Objects
	//std::cout << "DEBUG - Main - Setting Up String Manip" << std::endl;
	StringHelper *strm = new StringHelper();

	//std::cout << "DEBUG - Main - Setting Up Object Manager" << std::endl;
	ObjectManager *objm = new ObjectManager();
	objm->setStringHelper(strm);

	//std::cout << "DEBUG - Main - Setting Up Object Creator " << std::endl;
	ObjectCreator *objc = new ObjectCreator();
	objc->setObjectManager(objm);
	objm->setObjectCreator(objc);

	//std::cout << "DEBUG - Main -Setting Up Game " << std::endl;
	Game *game = new Game();
	game->setStringHelper(strm);
	game->setObjectManager(objm);
	objm->setGame(game);

	//std::cout << "DEBUG - Main - Setting Up CLI " << std::endl;
	CLI *cli = new CLI();
	cli->setGame(game);
	cli->setObjectManager();
	cli->setStringHelper(strm);
	game->setCLI(cli);
	objm->setCLI(cli);

	//std::cout << "DEBUG - Main - Setting Up Input " << std::endl;
	Input *inp = new Input();
	inp->setGame(game);
	inp->setObjectCreator(objc);
	inp->setObjectManager(objm);
	inp->setStringHelper(strm);
	objm->setInput(inp);

	if(argc > 1) {
		std::string inputFile(argv[1]);
		inp->setInputFilePath(&inputFile);
		inp->checkInputFile();
		input = inp->parseInputFile();
		creationInput = inp->getCreationInput(input);
		commandInput = inp->getCommandInput(input);
		inp->parseCreationInput(creationInput);
		cli->processCommandInput(commandInput);
		objm->setupRoomNeighborPointers();
		objm->setupCreatureRoomPointers();
		objm->setupPcRoomPointers();
		objm->processInitialRoomState();
		cli->startCLI();
	} else {
		std::cout << "Parsing Initial Input - Main.cpp" << std::endl;
		//Parse Input
		input = inp->parseStdInput();
		creationInput = inp->getCreationInput(input);
		commandInput = inp->getCommandInput(input);

		//std::cout << "Setting Up the Game - Main.cpp" << std::endl;
		//Setup Game
		//std::cout << "Parsing Creation Input - Main.cpp" << std::endl;
		inp->parseCreationInput(creationInput);
		//std::cout << "Setting Creature Room Pointers - Main.cpp" << std::endl;
		objm->setupCreatureRoomPointers();
		//std::cout << "Setting Room Neighbor Pointers - Main.cpp" << std::endl;
		objm->setupRoomNeighborPointers();
		objm->processInitialRoomState();
		//std::cout << "Starting CLI - Main.cpp" << std::endl;
		//Start Game
		//std::cout << "Parsing Initial Command Input - Main.cpp" << std::endl;
		cli->processCommandInput(commandInput);
		cli->startCLI();
	}
}