From f7d892cf4ef6bfce3747c4b6a810d4828b79833d Mon Sep 17 00:00:00 2001 From: Krzysztof H Date: Mon, 19 Mar 2012 12:44:39 +0100 Subject: Last coding fix ;) --- src/CBot/CBotIf.cpp | 65 +++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 32 deletions(-) (limited to 'src/CBot/CBotIf.cpp') diff --git a/src/CBot/CBotIf.cpp b/src/CBot/CBotIf.cpp index 797c059..626ef0d 100644 --- a/src/CBot/CBotIf.cpp +++ b/src/CBot/CBotIf.cpp @@ -1,4 +1,4 @@ -// * This file is part of the COLOBOT source code +// * 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 @@ -12,7 +12,8 @@ // * 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/. +// * along with this program. If not, see http://www.gnu.org/licenses/./////////////////////////////////////////////////////////////////////// +// instruction if (condition) opération1 else opération2; #include "CBot.h" @@ -27,23 +28,23 @@ CBotIf::CBotIf() CBotIf::~CBotIf() { - delete m_Condition; // lib�re la condition - delete m_Block; // lib�re le bloc d'instruction1 - delete m_BlockElse; // lib�re le bloc d'instruction2 + delete m_Condition; // libère la condition + delete m_Block; // libère le bloc d'instruction1 + delete m_BlockElse; // libère le bloc d'instruction2 } // compilation (routine statique) -// appel� lorsque le token "if" a �t� trouv� +// appelé lorsque le token "if" a été trouvé CBotInstr* CBotIf::Compile(CBotToken* &p, CBotCStack* pStack) { - CBotToken* pp = p; // conserve le ^au token (d�but instruction) + CBotToken* pp = p; // conserve le ^au token (début instruction) if (!IsOfType(p, ID_IF)) return NULL; // ne doit jamais arriver CBotCStack* pStk = pStack->TokenStack(pp); // un petit bout de pile svp - CBotIf* inst = new CBotIf(); // cr�e l'object + CBotIf* inst = new CBotIf(); // crée l'object inst->SetToken( pp ); if ( NULL != (inst->m_Condition = CBotCondition::Compile( p, pStk )) ) @@ -53,7 +54,7 @@ CBotInstr* CBotIf::Compile(CBotToken* &p, CBotCStack* pStack) inst->m_Block = CBotBlock::CompileBlkOrInst( p, pStk, TRUE ); if ( pStk->IsOk() ) { - // le bloc d'instruction est ok (peut �tre vide) + // le bloc d'instruction est ok (peut être vide) // regarde si l'instruction suivante est le token "else" if (IsOfType(p, ID_ELSE)) @@ -62,57 +63,57 @@ CBotInstr* CBotIf::Compile(CBotToken* &p, CBotCStack* pStack) inst->m_BlockElse = CBotBlock::CompileBlkOrInst( p, pStk, TRUE ); if (!pStk->IsOk()) { - // il n'y a pas de bloc correct apr�s le else - // lib�re l'objet, et transmet l'erreur qui est sur la pile + // il n'y a pas de bloc correct après le else + // libère l'objet, et transmet l'erreur qui est sur la pile delete inst; return pStack->Return(NULL, pStk); } } - // rend l'object correct � qui le demande. + // rend l'object correct à qui le demande. return pStack->Return(inst, pStk); } } - // erreur, lib�re l'objet + // erreur, libère l'objet delete inst; // et transmet l'erreur qui se trouve sur la pile. return pStack->Return(NULL, pStk); } -// ex�cution de l'instruction +// exécution de l'instruction BOOL CBotIf :: Execute(CBotStack* &pj) { - CBotStack* pile = pj->AddStack(this); // ajoute un �l�ment � la pile + CBotStack* pile = pj->AddStack(this); // ajoute un élément à la pile // ou le retrouve en cas de reprise // if ( pile == EOX ) return TRUE; if ( pile->IfStep() ) return FALSE; - // selon la reprise, on peut �tre dans l'un des 2 �tats + // selon la reprise, on peut être dans l'un des 2 états if( pile->GivState() == 0 ) { - // �value la condition + // évalue la condition if ( !m_Condition->Execute(pile) ) return FALSE; // interrompu ici ? // termine s'il y a une erreur if ( !pile->IsOk() ) { - return pj->Return(pile); // transmet le r�sultat et lib�re la pile + return pj->Return(pile); // transmet le résultat et libère la pile } - // passe dans le second �tat - if (!pile->SetState(1)) return FALSE; // pr�t pour la suite + // passe dans le second état + if (!pile->SetState(1)) return FALSE; // prêt pour la suite } - // second �tat, �value les instructions associ�es - // le r�sultat de la condition est sur la pile + // second état, évalue les instructions associées + // le résultat de la condition est sur la pile - if ( pile->GivVal() == TRUE ) // condition �tait vraie ? + if ( pile->GivVal() == TRUE ) // condition était vraie ? { - if ( m_Block != NULL && // bloc peut �tre absent + if ( m_Block != NULL && // bloc peut être absent !m_Block->Execute(pile) ) return FALSE; // interrompu ici ? } else @@ -121,7 +122,7 @@ BOOL CBotIf :: Execute(CBotStack* &pj) !m_BlockElse->Execute(pile) ) return FALSE; // interrompu ici } - // transmet le r�sultat et lib�re la pile + // transmet le résultat et libère la pile return pj->Return(pile); } @@ -130,23 +131,23 @@ void CBotIf :: RestoreState(CBotStack* &pj, BOOL bMain) { if ( !bMain ) return; - CBotStack* pile = pj->RestoreStack(this); // ajoute un �l�ment � la pile + CBotStack* pile = pj->RestoreStack(this); // ajoute un élément à la pile if ( pile == NULL ) return; - // selon la reprise, on peut �tre dans l'un des 2 �tats + // selon la reprise, on peut être dans l'un des 2 états if( pile->GivState() == 0 ) { - // �value la condition + // évalue la condition m_Condition->RestoreState(pile, bMain); // interrompu ici ! return; } - // second �tat, �value les instructions associ�es - // le r�sultat de la condition est sur la pile + // second état, évalue les instructions associées + // le résultat de la condition est sur la pile - if ( pile->GivVal() == TRUE ) // condition �tait vraie ? + if ( pile->GivVal() == TRUE ) // condition était vraie ? { - if ( m_Block != NULL ) // bloc peut �tre absent + if ( m_Block != NULL ) // bloc peut être absent m_Block->RestoreState(pile, bMain); // interrompu ici ! } else -- cgit v1.2.3-1-g7c22