summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/CBot/ClassFILE.cpp426
-rw-r--r--src/object/robotmain.cpp193
-rw-r--r--src/object/robotmain.h1
3 files changed, 0 insertions, 620 deletions
diff --git a/src/CBot/ClassFILE.cpp b/src/CBot/ClassFILE.cpp
deleted file mode 100644
index 6906bd4..0000000
--- a/src/CBot/ClassFILE.cpp
+++ /dev/null
@@ -1,426 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-// definition of methods for class FILE
-
-
-
-// Static variables
-
-static CBotClass* m_pClassFILE;
-static CBotProgram* m_pFuncFile;
-static int m_CompteurFileOpen = 0;
-
-
-
-// Prepares a file name.
-
-void PrepareFilename(CBotString &filename) //DD!
-{
- int pos;
-
- pos = filename.ReverseFind('\\');
- if ( pos > 0 )
- {
- filename = filename.Mid(pos+1); // remove the records (files)??
- }
-
- pos = filename.ReverseFind('/');
- if ( pos > 0 )
- {
- filename = filename.Mid(pos+1); // also those with /
- }
-
- pos = filename.ReverseFind(':');
- if ( pos > 0 )
- {
- filename = filename.Mid(pos+1); // also removes the drive letter C:
- }
-
- filename = CBotString("files\\") + filename;
-}
-
-
-// constructor of the class
-// gets the filename as a parameter
-
-// execution
-bool rfconstruct (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- CBotString mode;
-
- // accepts no parameters
- if ( pVar == NULL ) return true;
-
- // must be a string
- if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; }
-
- CBotString filename = pVar->GetValString();
- PrepareFilename(filename); //DR
-
- // there may be a second parameter
- pVar = pVar->GetNext();
- if ( pVar != NULL )
- {
- // recovers the mode
- mode = pVar->GetValString();
- if ( mode != "r" && mode != "w" ) { Exception = CBotErrBadParam; return false; }
-
- // no third parameter, only two or one possible
- if ( pVar->GetNext() != NULL ) { Exception = CBotErrOverParam; return false; }
- }
-
- // save the file name
- pVar = pThis->GetItem("filename");
- pVar->SetValString(filename);
-
- if ( ! mode.IsEmpty() )
- {
- // open the called file
- FILE* pFile = fopen( filename, mode );
- if ( pFile == NULL ) { Exception = CBotErrFileOpen; return false; }
-
- m_CompteurFileOpen ++;
-
- // save the handle of file
- pVar = pThis->GetItem("handle");
- pVar->SetValInt((long)pFile);
- }
-
- return true;
-}
-
-// compilation
-CBotTypResult cfconstruct (CBotVar* pThis, CBotVar* &pVar)
-{
- // accepts no parameters
- if ( pVar == NULL ) return CBotTypResult( 0 );
-
- // must be a string
- if ( pVar->GetType() != CBotTypString )
- return CBotTypResult( CBotErrBadString );
-
- // there may be a second parameter
- pVar = pVar->GetNext();
- if ( pVar != NULL )
- {
- // must be a string
- if ( pVar->GetType() != CBotTypString )
- return CBotTypResult( CBotErrBadString );
- // no third parameter
- if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam );
- }
-
- // le r�sultat est de type void (constructeur)
- return CBotTypResult( 0 );
-}
-
-
-// destructor of the class
-
-// execution
-bool rfdestruct (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- // not open? no problem
- if ( pVar->GetInit() != IS_DEF) return true;
-
- FILE* pFile= (FILE*)pVar->GetValInt();
- fclose(pFile);
- m_CompteurFileOpen --;
-
- pVar->SetInit(IS_NAN);
-
- return true;
-}
-
-
-// FILE :: open method
-// get the r / w mode as a parameter
-
-// execution
-bool rfopen (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // there must be a parameter
- if ( pVar == NULL ) { Exception = CBotErrLowParam; return false; }
-
- // must be a string
- if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; }
-
- // there may be a second parameter
- if ( pVar->GetNext() != NULL )
- {
- // in this case the first parameter is the file name
- CBotString filename = pVar->GetValString();
- PrepareFilename(filename); //DR
-
- // saves the file name
- CBotVar* pVar2 = pThis->GetItem("filename");
- pVar2->SetValString(filename);
-
- // next parameter is the mode
- pVar = pVar -> GetNext();
- }
-
- CBotString mode = pVar->GetValString();
- if ( mode != "r" && mode != "w" ) { Exception = CBotErrBadParam; return false; }
-
- // No third parameter
- if ( pVar->GetNext() != NULL ) { Exception = CBotErrOverParam; return false; }
-
- // retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- // which must not be initialized
- if ( pVar->GetInit() == IS_DEF) { Exception = CBotErrFileOpen; return false; }
-
- // contains filename
- pVar = pThis->GetItem("filename");
- CBotString filename = pVar->GetValString();
-
- PrepareFilename(filename); //DD! (if the name was assigned by h.filename = "...";
-
- // open requsted file
- FILE* pFile = fopen( filename, mode );
- if ( pFile == NULL ) //DR
- {
- pResult->SetValInt(false); //DR
- return true; //DR
- }
-
- m_CompteurFileOpen ++;
-
- // saves the handle of file
- pVar = pThis->GetItem("handle");
- pVar->SetValInt((long)pFile);
-
- pResult->SetValInt(true); //DR
- return true;
-}
-
-// compilation
-CBotTypResult cfopen (CBotVar* pThis, CBotVar* &pVar)
-{
- // there must be a parameter
- if ( pVar == NULL ) return CBotTypResult( CBotErrLowParam );
-
- // must be a string
- if ( pVar->GetType() != CBotTypString )
- return CBotTypResult( CBotErrBadString );
-
- // there may be a second parameter
- pVar = pVar->GetNext();
- if ( pVar != NULL )
- {
- // must be a string
- if ( pVar->GetType() != CBotTypString )
- return CBotTypResult( CBotErrBadString );
-
- // no third parameter
- if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam );
- }
-
- // the result is of type bool
- return CBotTypResult(CBotTypBoolean); //DR
-}
-
-
-// FILE :: close method
-
-// execution
-bool rfclose (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // it should not be any parameter
- if ( pVar != NULL ) return CBotErrOverParam;
-
- // retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; }
-
- FILE* pFile= (FILE*)pVar->GetValInt();
- fclose(pFile);
- m_CompteurFileOpen --;
-
- pVar->SetInit(IS_NAN);
-
- return true;
-}
-
-// compilation
-CBotTypResult cfclose (CBotVar* pThis, CBotVar* &pVar)
-{
- // it should not be any parameter
- if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam );
-
- // function returns a result "void"
- return CBotTypResult( 0 );
-}
-
-// FILE :: writeln method
-
-// execution
-bool rfwrite (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // there must be a parameter
- if ( pVar == NULL ) { Exception = CBotErrLowParam; return false; }
-
- // must be a string
- if ( pVar->GetType() != CBotTypString ) { Exception = CBotErrBadString; return false; }
-
- CBotString param = pVar->GetValString();
-
- //retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; }
-
- FILE* pFile= (FILE*)pVar->GetValInt();
-
- int res = fputs(param+CBotString("\n"), pFile);
-
- // on error throws an exception
- if ( res < 0 ) { Exception = CBotErrWrite; return false; }
-
- return true;
-}
-
-// compilation
-CBotTypResult cfwrite (CBotVar* pThis, CBotVar* &pVar)
-{
- // there must be a parameter
- if ( pVar == NULL ) return CBotTypResult( CBotErrLowParam );
-
- // must be a string
- if ( pVar->GetType() != CBotTypString ) return CBotTypResult( CBotErrBadString );
-
- // no other parameter
- if ( pVar->GetNext() != NULL ) return CBotTypResult( CBotErrOverParam );
-
- // function returns "void" result
- return CBotTypResult( 0 );
-}
-
-// FILE :: readln method
-
-// execution
-bool rfread (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // there shouldn't be any parameter
- if ( pVar != NULL ) { Exception = CBotErrOverParam; return false; }
-
- //retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; }
-
- FILE* pFile= (FILE*)pVar->GetValInt();
-
- char chaine[2000];
- int i;
- for ( i = 0 ; i < 2000 ; i++ ) chaine[i] = 0;
-
- fgets(chaine, 1999, pFile);
-
- for ( i = 0 ; i < 2000 ; i++ ) if (chaine[i] == '\n') chaine[i] = 0;
-
- // on error throws an exception
- if ( ferror(pFile) ) { Exception = CBotErrRead; return false; }
-
- pResult->SetValString( chaine );
-
- return true;
-}
-
-// compilation
-CBotTypResult cfread (CBotVar* pThis, CBotVar* &pVar)
-{
- // there shouldn't be any parameter
- if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam );
-
- // function return "string" result
- return CBotTypResult( CBotTypString );
-}
-// FILE :: readln method
-
-
-// execution
-bool rfeof (CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception)
-{
- // there shouldn't be any parameter
- if ( pVar != NULL ) { Exception = CBotErrOverParam; return false; }
-
- // retrieves the element "handle"
- pVar = pThis->GetItem("handle");
-
- if ( pVar->GetInit() != IS_DEF) { Exception = CBotErrNotOpen; return false; }
-
- FILE* pFile= (FILE*)pVar->GetValInt();
-
- pResult->SetValInt( feof( pFile ) );
-
- return true;
-}
-
-// compilation
-CBotTypResult cfeof (CBotVar* pThis, CBotVar* &pVar)
-{
- // there shouldn't be any parameter
- if ( pVar != NULL ) return CBotTypResult( CBotErrOverParam );
-
- // function return boolean result
- return CBotTypResult( CBotTypBoolean );
-}
-
-
-
-
-
-void InitClassFILE()
-{
-// creates a class for file management
-// the usage is as follows:
-// file canal( "NomFichier.txt" )
-// canal.open( "r" ); // open reading
-// s = canal.readln( ); // reads a line
-// canal.close(); // closes the file
-
- // create class FILE
- m_pClassFILE = new CBotClass("file", NULL);
- // add the component ".filename"
- m_pClassFILE->AddItem("filename", CBotTypString);
- // add the component ".handle"
- m_pClassFILE->AddItem("handle", CBotTypInt, PR_PRIVATE);
-
- // define a constructor and destructor
- m_pClassFILE->AddFunction("file", rfconstruct, cfconstruct );
- m_pClassFILE->AddFunction("~file", rfdestruct, NULL );
-
- // defined associated methods
- m_pClassFILE->AddFunction("open", rfopen, cfopen );
- m_pClassFILE->AddFunction("close", rfclose, cfclose );
- m_pClassFILE->AddFunction("writeln", rfwrite, cfwrite );
- m_pClassFILE->AddFunction("readln", rfread, cfread );
- m_pClassFILE->AddFunction("eof", rfeof, cfeof );
-
- m_pFuncFile = new CBotProgram( );
- CBotStringArray ListFonctions;
- m_pFuncFile->Compile( "public file openfile(string name, string mode) {return new file(name, mode);}", ListFonctions);
- m_pFuncFile->SetIdent(-2); // restoreState as a special identifier for this function
-}
-
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index 83b9fc9..fc15b26 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -3603,199 +3603,6 @@ char* SkipNum(char *p)
return p;
}
-//! Conversion of units
-void CRobotMain::Convert()
-{
- char* base = m_dialog->GetSceneName();
- int rank = m_dialog->GetSceneRank();
-
- //TODO change line to string
- char line[500];
- std::string tempLine;
-
- m_dialog->BuildSceneName(tempLine, base, rank);
- strcpy(line, tempLine.c_str());
- FILE* file = fopen(line, "r");
- if (file == NULL) return;
-
- strcpy(line+strlen(line)-4, ".new");
- FILE* fileNew = fopen(line, "w");
- if (fileNew == NULL) return;
-
- char lineNew[500];
- char s[200];
-
- while (fgets(line, 500, file) != NULL)
- {
- strcpy(lineNew, line);
-
- if (Cmd(line, "DeepView"))
- {
- char* p = strstr(line, "air=");
- if (p != 0)
- {
- float value = OpFloat(line, "air", 500.0f);
- value /= g_unit;
- p[0] = 0;
- p = SkipNum(p+4);
- strcpy(lineNew, line);
- strcat(lineNew, "air=");
- sprintf(s, "%.2f", value);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
-
- p = strstr(line, "water=");
- if (p != 0)
- {
- float value = OpFloat(line, "water", 100.0f);
- value /= g_unit;
- p[0] = 0;
- p = SkipNum(p+6);
- strcpy(lineNew, line);
- strcat(lineNew, "water=");
- sprintf(s, "%.2f", value);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
- }
-
- if (Cmd(line, "TerrainGenerate"))
- {
- char* p = strstr(line, "vision=");
- if (p != 0)
- {
- float value = OpFloat(line, "vision", 500.0f);
- value /= g_unit;
- p[0] = 0;
- p = SkipNum(p+7);
- strcpy(lineNew, line);
- strcat(lineNew, "vision=");
- sprintf(s, "%.2f", value);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- }
-
- if (Cmd(line, "CreateObject") ||
- Cmd(line, "CreateSpot"))
- {
- char* p = strstr(line, "pos=");
- if (p != 0)
- {
- Math::Vector pos = OpPos(line, "pos");
- pos.x /= g_unit;
- pos.y /= g_unit;
- pos.z /= g_unit;
- p[0] = 0;
- p = SkipNum(p+4);
- p = SkipNum(p+1);
- strcpy(lineNew, line);
- strcat(lineNew, "pos=");
- sprintf(s, "%.2f", pos.x);
- strcat(lineNew, s);
- strcat(lineNew, ";");
- sprintf(s, "%.2f", pos.z);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- }
-
- if (Cmd(line, "EndMissionTake") || Cmd(line, "AudioChange"))
- {
- char* p = strstr(line, "pos=");
- if (p != 0)
- {
- Math::Vector pos = OpPos(line, "pos");
- pos.x /= g_unit;
- pos.y /= g_unit;
- pos.z /= g_unit;
- p[0] = 0;
- p = SkipNum(p+4);
- p = SkipNum(p+1);
- strcpy(lineNew, line);
- strcat(lineNew, "pos=");
- sprintf(s, "%.2f", pos.x);
- strcat(lineNew, s);
- strcat(lineNew, ";");
- sprintf(s, "%.2f", pos.z);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
-
- p = strstr(line, "dist=");
- if (p != 0)
- {
- float value = OpFloat(line, "dist", 32.0f);
- value /= g_unit;
- p[0] = 0;
- p = SkipNum(p+5);
- strcpy(lineNew, line);
- strcat(lineNew, "dist=");
- sprintf(s, "%.2f", value);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
- }
-
- if (Cmd(line, "Camera"))
- {
- char* p = strstr(line, "pos=");
- if (p != 0)
- {
- Math::Vector pos = OpPos(line, "pos");
- pos.x /= g_unit;
- pos.y /= g_unit;
- pos.z /= g_unit;
- p[0] = 0;
- p = SkipNum(p+4);
- p = SkipNum(p+1);
- strcpy(lineNew, line);
- strcat(lineNew, "pos=");
- sprintf(s, "%.2f", pos.x);
- strcat(lineNew, s);
- strcat(lineNew, ";");
- sprintf(s, "%.2f", pos.z);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
-
- p = strstr(line, "h=");
- if (p != 0)
- {
- float value = OpFloat(line, "h", 32.0f);
- value /= g_unit;
- p[0] = 0;
- p = SkipNum(p+2);
- strcpy(lineNew, line);
- strcat(lineNew, "h=");
- sprintf(s, "%.2f", value);
- strcat(lineNew, s);
- strcat(lineNew, " ");
- strcat(lineNew, p);
- }
- strcpy(line, lineNew);
- }
-
- fputs(lineNew, fileNew);
- }
-
- fclose(fileNew);
- fclose(file);
-}
-
//! Load the scene for the character
void CRobotMain::ScenePerso()
{
diff --git a/src/object/robotmain.h b/src/object/robotmain.h
index 19e9e7d..73ddc35 100644
--- a/src/object/robotmain.h
+++ b/src/object/robotmain.h
@@ -392,7 +392,6 @@ protected:
bool EventObject(const Event &event);
void InitEye();
- void Convert();
void CreateScene(bool soluce, bool fixScene, bool resetObject);
Math::Vector LookatPoint(Math::Vector eye, float angleH, float angleV, float length);