Currently having some issues with these two functions. Offswitch works as intended when called by itself, but does not function when called from changestatus.
Code:
int offswitch(string arg3);
int changestatus(string arg1,string arg2);
int changestatus(string arg1,string arg2)
{
string token;
int linenumber = 0;
int verify;
ifstream check ( "C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy.cfg", ios::in);
while(getline(check,token))
{
linenumber++; //uses loop to add 1 to the variable for every time getline executes before finding it's mark.
if (token.find(arg1)!= string::npos)
{
offswitch(arg2);
verify = 1;
linenumber = 0; //reset linenumber variable to zero for reuse
} //closing if bracket
else
{
ofstream choice_one_op ( "C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy.cfg", ios::app );
choice_one_op<<"g_godMode = 1";
choice_one_op<<"\n";
choice_one_op.close();
}
} //closing while bracket
}
int offswitch(string arg3)
{
string line;
ifstream in("C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy.cfg");
if( !in.is_open())
{
cout << "FILECHECK FAILED. CHECK YOUR CRYSIS DIRECTORY.\n";
system("PAUSE");
return 0;
}
ofstream out("C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy_backup.cfg");
while( getline(in,line) )
{
if(line != arg3)
out << line << "\n";
}
in.close();
out.close();
remove("C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy.cfg");
rename("C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy_backup.cfg","C:\\Program Files (x86)\\Electronic Arts\\Crytek\\Crysis\\Game\\Config\\diff_easy.cfg");
}
Also, the else code seems to always execute, regardless of whether or not changestatus finds the string in the file.
Would someone mind explaining to me what the issue is here? I've been fiddling with it for a couple of hours now to no avail.
I appreciate any advice.