142 lines
3.5 KiB
C++
142 lines
3.5 KiB
C++
![]() |
// * 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/.
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
// routine show()
|
||
|
// utilisable depuis le programme écrit en CBot
|
||
|
|
||
|
|
||
|
#include <iostream>
|
||
|
#include <string>
|
||
|
#include "CBot/ClassFILE.cpp"
|
||
|
//std::string s;
|
||
|
/*
|
||
|
// execution
|
||
|
bool rShow( CBotVar* pVar, CBotVar* pResult, int& Exception, void* pUser )
|
||
|
{
|
||
|
string::string s;
|
||
|
|
||
|
while ( pVar != NULL )
|
||
|
{
|
||
|
string::string ss;
|
||
|
|
||
![]() |
ss.LoadString( TX_TYPENAMES + pVar->GetType() );
|
||
![]() |
s += ss + " ";
|
||
|
|
||
![]() |
ss = pVar->GetName();
|
||
![]() |
if (ss.IsEmpty()) ss = "<sans nom>";
|
||
|
s += ss + " = ";
|
||
|
|
||
![]() |
s += pVar->GetValString();
|
||
![]() |
s += "\n";
|
||
![]() |
pVar = pVar->GetNext();
|
||
![]() |
}
|
||
|
|
||
|
AfxMessageBox(s, MB_OK|MB_ICONINFORMATION);
|
||
|
|
||
|
return TRUE; // pas d'interruption
|
||
|
}
|
||
|
|
||
|
CBotTypResult cShow( CBotVar* &pVar, void* pUser)
|
||
|
{
|
||
|
if ( pVar == NULL ) return CBotTypResult(5028);
|
||
|
return CBotTypResult(0); // tous paramètres acceptés, void en retour
|
||
|
}
|
||
|
|
||
|
*/
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////
|
||
|
// routine print()
|
||
|
// utilisable depuis le programme écrit en CBot
|
||
|
|
||
|
// exécution
|
||
|
|
||
|
bool rPrintLn( CBotVar* pVar, CBotVar* pResult, int& Exception, void* pUser )
|
||
|
{
|
||
|
std::string s;
|
||
|
while ( pVar != NULL )
|
||
|
{
|
||
|
if ( !s.empty() ) s += " ";
|
||
![]() |
s += pVar->GetValString();
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
}
|
||
|
s += "\n";
|
||
|
|
||
|
std::cout << s;
|
||
|
return true; // pas d'interruption
|
||
|
}
|
||
|
|
||
|
bool rPrint( CBotVar* pVar, CBotVar* pResult, int& Exception, void* pUser )
|
||
|
{
|
||
|
std::string s;
|
||
|
while ( pVar != NULL )
|
||
|
{
|
||
|
if ( !s.empty() ) s += " ";
|
||
![]() |
s += pVar->GetValString();
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
}
|
||
|
s += " ";
|
||
|
std::cout << s;
|
||
|
return true; // pas d'interruption
|
||
|
}
|
||
|
|
||
|
CBotTypResult cPrint( CBotVar* &pVar, void* pUser)
|
||
|
{
|
||
|
return CBotTypResult(0); // tous paramètres acceptés, un entier en retour
|
||
|
}
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////
|
||
|
// class CPoint pour essayer
|
||
|
|
||
|
// exécution
|
||
|
bool rCPoint( CBotVar* pThis, CBotVar* pVar, CBotVar* pResult, int& Exception )
|
||
|
{
|
||
|
if ( pVar == NULL )return true; // constructor with no parameters is ok
|
||
|
|
||
![]() |
CBotVar* pX = pThis->GetItem("x");
|
||
|
pX->SetValFloat( pVar->GetValFloat() );
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
|
||
![]() |
CBotVar* pY = pThis->GetItem("y");
|
||
|
pY->SetValFloat( pVar->GetValFloat() );
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
|
||
|
return true; // pas d'interruption
|
||
|
}
|
||
|
|
||
|
CBotTypResult cCPoint( CBotVar* pThis, CBotVar* &pVar)
|
||
|
{
|
||
|
// ok if no parameters!
|
||
|
if ( pVar == NULL ) return CBotTypResult(0);
|
||
|
|
||
|
// numeric type of parameter please
|
||
![]() |
if ( pVar->GetType() > CBotTypDouble ) return CBotTypResult(5011);
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
|
||
|
// there must be a second parameter
|
||
|
if ( pVar == NULL ) return 5028;
|
||
|
// also numeric
|
||
![]() |
if ( pVar->GetType() > CBotTypDouble )return CBotTypResult(5011);
|
||
|
pVar = pVar->GetNext();
|
||
![]() |
|
||
|
// and not more than 2 parameters please
|
||
|
if ( pVar != NULL ) return CBotTypResult(5026);
|
||
|
|
||
|
return CBotTypResult(0); // This function returns void
|
||
|
}
|
||
|
|