Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Grapnel::SavePointers()
- {
- std::wofstream fileStream;
- fileStream.open(L"./Resources/GameInit.txt");
- if (fileStream.fail() == true)
- {
- GAME_ENGINE->MessageBox(String("Failed to open file!"));
- return;
- }
- fileStream << String("//Gaetan, Thibaut, 1DAE10").C_str();
- fileStream << std::endl;
- //GroundEnemy
- for (int i = 0; i < m_GenGroundEnemyPtrArr.size(); i++)
- {
- fileStream << String("<GroundEnemy").C_str();
- fileStream << std::endl;
- fileStream << String("\tSpawnPos").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String(m_GenGroundEnemyPtrArr[i]->GetStartPos().x).C_str();
- fileStream << String(",").C_str();
- fileStream << String(m_GenGroundEnemyPtrArr[i]->GetStartPos().y).C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- fileStream << String("\tWalkDistance").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String(m_GenGroundEnemyPtrArr[i]->GetMaxWalkDistance()).C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- fileStream << String("\tBitmap").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String("m_BmpGroundEnemyPtr").C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- fileStream << String("/>").C_str();
- fileStream << std::endl;
- }
- //Coin's
- for (int i = 0; i < m_ConCoinPtrArr.size(); i++)
- {
- fileStream << String("<Coin").C_str();
- fileStream << std::endl;
- fileStream << String("\tSpawnPos").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String(m_ConCoinPtrArr[i]->GetStartPos().x).C_str();
- fileStream << String(",").C_str();
- fileStream << String(m_ConCoinPtrArr[i]->GetStartPos().y).C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- fileStream << String("\tBitmap").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String("m_BmpCoinPtr").C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- fileStream << String("/>").C_str();
- fileStream << std::endl;
- }
- //Platforms
- for (int i = 0; i < m_ConCoinPtrArr.size(); i++)
- {
- fileStream << String("<Platforms").C_str();
- fileStream << std::endl;
- fileStream << String("\tSpawnPos").C_str();
- fileStream << String("=").C_str();
- fileStream << String("\"").C_str();
- fileStream << String(m_PfmPlatformPtrArr[i]->GetStartPos().x).C_str();
- fileStream << String(",").C_str();
- fileStream << String(m_PfmPlatformPtrArr[i]->GetStartPos().y).C_str();
- fileStream << String("\"").C_str();
- fileStream << std::endl;
- //fileStream << String("\tBitmap").C_str();
- //fileStream << String("=").C_str();
- //fileStream << String("\"").C_str();
- //fileStream << String("m_BmpCoinPtr").C_str();
- //fileStream << String("\"").C_str();
- //fileStream << std::endl;
- fileStream << String("/>").C_str();
- fileStream << std::endl;
- }
- fileStream.close();
- }
- void Grapnel::LoadPointers()
- {
- std::wifstream ifileStream;
- ifileStream.open(L"./Resources/GameInit.txt");
- if (ifileStream.fail() == true)
- {
- GAME_ENGINE->MessageBox(String("Failed to open file!"));
- return;
- }
- std::wstring extractedLine;
- std::wstringstream expressionStream;
- while (ifileStream.eof() == false)
- {
- std::getline(ifileStream, extractedLine); //Extract the line to the expression stream
- expressionStream << extractedLine; //Write the line to the expression stream
- //When the extrexted line contains a full stop
- //then it contains the last piece of the expression
- if (extractedLine.find(L'/>') != std::wstring::npos)
- {
- std::wstring shapeString = expressionStream.str();
- CreateObject(shapeString);
- //clear the string in stringstream
- expressionStream.str(L"");
- std::wcout << std::endl;
- }
- }
- ifileStream.close();
- }
- void Grapnel::CreateObject(const std::wstring & pointerRef)
- {
- if (pointerRef.find(L"GroundEnemy") != std::wstring::npos)
- {
- createGroundEnemy(pointerRef);
- }
- if (pointerRef.find(L"Coin") != std::wstring::npos)
- {
- createCoin(pointerRef);
- }
- }
- void Grapnel::createGroundEnemy(const std::wstring & pointerRef)
- {
- std::wstring spawnPosString = GetValue(L"SpawnPos", pointerRef);
- DOUBLE2 spawnPos = StringToDOUBLE2(spawnPosString);
- std::wstring WalkDistanceString = GetValue(L"WalkDistance", pointerRef);
- double walkDistance = StringTodouble(WalkDistanceString);
- m_GenGroundEnemyPtrArr.push_back(new GroundEnemy(spawnPos, walkDistance, m_BmpGroundEnemyPtr));
- }
- void Grapnel::createCoin(const std::wstring & pointerRef)
- {
- std::wstring spawnPosString = GetValue(L"SpawnPos", pointerRef);
- DOUBLE2 spawnPos = StringToDOUBLE2(spawnPosString);
- m_ConCoinPtrArr.push_back(new Coin(spawnPos, m_BmpCoinPtr));
- }
- void Grapnel::createPlatform(const std::wstring & pointerRef)
- {
- std::wstring spawnPosString = GetValue(L"SpawnPos", pointerRef);
- DOUBLE2 spawnPos = StringToDOUBLE2(spawnPosString);
- m_PfmPlatformPtrArr.push_back(new Platform(spawnPos/*, m_BmpCoinPtr*/));
- }
- std::wstring Grapnel::GetValue(const std::wstring & nameRef, const std::wstring & shapeRef)
- {
- //get the name and value out of the shapes.txt
- std::size_t idxFrom = shapeRef.find(nameRef);
- idxFrom = shapeRef.find(L"\"", idxFrom) + 1;
- std::size_t idxTill = shapeRef.find(L"\"", idxFrom);
- std::wstring timeString = shapeRef.substr(idxFrom, idxTill - idxFrom);
- return timeString;
- }
- DOUBLE2 Grapnel::StringToDOUBLE2(const std::wstring & DOUBLE2Ref)
- {
- using namespace std;
- size_t idxFromdouble1 = DOUBLE2Ref.find(L"\"") + 1;
- size_t idxTilldouble1 = DOUBLE2Ref.find(L",", idxFromdouble1);
- wstring double1 = DOUBLE2Ref.substr(idxFromdouble1, idxTilldouble1 - idxFromdouble1);
- size_t idxFromdouble2 = DOUBLE2Ref.find(L",", idxTilldouble1) + 1;
- size_t idxTilldouble2 = DOUBLE2Ref.find(L"\"", idxFromdouble1);
- wstring double2 = DOUBLE2Ref.substr(idxFromdouble2, idxTilldouble2 - idxFromdouble2);
- double xdouble = stoi(double1);
- double ydouble = stoi(double2);
- return DOUBLE2(xdouble, ydouble);
- }
- double Grapnel::StringTodouble(const std::wstring & doubleRef)
- {
- using namespace std;
- size_t idxFromdouble1 = doubleRef.find(L"\"") + 1;
- size_t idxTilldouble1 = doubleRef.find(L"\"", idxFromdouble1);
- wstring double1 = doubleRef.substr(idxFromdouble1, idxTilldouble1 - idxFromdouble1);
- double xdouble = stoi(double1);
- return double(xdouble);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement