[Orxonox-commit 1400] r6118 - code/branches/presentation2/src/orxonox/gamestates

rgrieder at orxonox.net rgrieder at orxonox.net
Sun Nov 22 16:08:32 CET 2009


Author: rgrieder
Date: 2009-11-22 16:08:32 +0100 (Sun, 22 Nov 2009)
New Revision: 6118

Removed:
   code/branches/presentation2/src/orxonox/gamestates/GSDedicated.cc
   code/branches/presentation2/src/orxonox/gamestates/GSDedicatedClient.cc
Log:
Removed two files that the console branch merge didn't remove.

Deleted: code/branches/presentation2/src/orxonox/gamestates/GSDedicated.cc
===================================================================
--- code/branches/presentation2/src/orxonox/gamestates/GSDedicated.cc	2009-11-22 15:01:16 UTC (rev 6117)
+++ code/branches/presentation2/src/orxonox/gamestates/GSDedicated.cc	2009-11-22 15:08:32 UTC (rev 6118)
@@ -1,301 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   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 2
- *   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, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      Fabian 'x3n' Landau
- *
- */
-
-#include "GSDedicated.h"
-
-#include <iomanip>
-#include <iostream>
-#include <boost/bind.hpp>
-
-#include "util/Clock.h"
-#include "util/Debug.h"
-#include "util/Sleep.h"
-#include "core/CommandLineParser.h"
-#include "core/CommandExecutor.h"
-#include "core/Game.h"
-#include "core/GameMode.h"
-#include "network/Server.h"
-
-#ifdef ORXONOX_PLATFORM_UNIX
-#include <termios.h>
-#endif
-
-
-namespace orxonox
-{
-    const unsigned int MAX_COMMAND_LENGTH = 255;
-    
-    DeclareGameState(GSDedicated, "dedicated", false, false);
-    
-    termios* GSDedicated::originalTerminalSettings_;
-
-    GSDedicated::GSDedicated(const GameStateInfo& info)
-        : GameState(info)
-        , server_(0)
-        , closeThread_(false)
-        , cleanLine_(true)
-        , inputIterator_(0)
-        , cursorX_(0)
-        , cursorY_(0)
-    {
-    }
-
-    GSDedicated::~GSDedicated()
-    {
-    }
-
-    void GSDedicated::activate()
-    {
-        GameMode::setHasServer(true);
-        
-        this->inputThread_ = new boost::thread(boost::bind(&GSDedicated::inputThread, this));
-        
-#ifndef ORXONOX_PLATFORM_WINDOWS
-        this->originalTerminalSettings_ = new termios;
-        this->setTerminalMode();
-#endif
-
-        this->server_ = new Server(CommandLineParser::getValue("port"));
-        COUT(0) << "Loading scene in server mode" << std::endl;
-
-        server_->open();
-    }
-
-    void GSDedicated::deactivate()
-    {
-        this->server_->close();
-        delete this->server_;
-
-        closeThread_ = true;
-#ifdef ORXONOX_PLATFORM_UNIX
-        std::cout << "\033[0G\033[K";
-        std::cout.flush();
-        resetTerminalMode();
-        delete this->originalTerminalSettings_;
-#else
-        COUT(0) << "Press enter to end the game..." << std::endl;
-#endif
-        inputThread_->join();
-        delete this->inputThread_;
-
-        GameMode::setHasServer(false);
-    }
-
-    void GSDedicated::update(const Clock& time)
-    {
-        server_->update(time);
-        processQueue();
-        printLine();
-    }
-    
-    void GSDedicated::inputThread()
-    {
-        this->commandLine_ = new unsigned char[MAX_COMMAND_LENGTH];
-//         memset( this->commandLine_, 0, MAX_COMMAND_LENGTH );
-        unsigned char c;
-        unsigned int  escapeChar=0;
-        while(!closeThread_)
-        {
-#ifdef ORXONOX_PLATFORM_UNIX
-            size_t count = read(STDIN_FILENO, &c, 1);
-            if (count == 1)
-#else
-            c = getchar();
-#endif
-            {
-//                 boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                if ( inputIterator_>=MAX_COMMAND_LENGTH-1 && c!='\n' )
-                    continue;
-                if( escapeChar > 0 )
-                {
-                    if( c == '[' )
-                    {
-                        escapeChar = 2;
-                        continue;
-}
-                    else if ( escapeChar == 2 )
-                    {
-                        switch (c)
-                        {
-                            case 'A': //keyup
-                                
-                                break;
-                            case 'B': //keydown
-                                
-                                break;
-                            case 'C': //keyright
-                                if(cursorX_<inputIterator_)
-                                    ++cursorX_;
-                                break;
-                            case 'D': //keyleft
-                                if(cursorX_>0)
-                                    --cursorX_;
-                                break;
-                            default: //not supported...
-//                                 std::cout << endl << c << endl;
-                                break;
-                        }
-                        escapeChar = 0;
-                    }
-                }
-                else // not in escape sequence mode
-                {
-                    switch (c)
-                    {
-                        case '\n':
-                            this->cleanLine_ = true;
-                            {
-                                boost::recursive_mutex::scoped_lock(this->inputQueueMutex_);
-                                boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                                this->commandQueue_.push( std::string((const char*)this->commandLine_,inputIterator_) );
-                            }
-                            memset( this->commandLine_, 0, inputIterator_ );
-                            inputIterator_ = 0;
-                            this->cursorX_ = 0;
-                            this->cursorY_ = 0;
-                            std::cout << endl;
-                            break;
-                        case 127: // backspace
-                        case '\b':
-                            deleteCharacter( this->cursorX_ );
-                            break;
-                        case '\t':
-                        {
-//                             boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                            std::cout << endl << CommandExecutor::hint( std::string((const char*)this->commandLine_,inputIterator_) ) << endl;
-                            strncpy(reinterpret_cast<char*>(this->commandLine_), CommandExecutor::complete( std::string(reinterpret_cast<char*>(this->commandLine_),inputIterator_) ).c_str(), MAX_COMMAND_LENGTH);
-                            this->inputIterator_ = strlen((const char*)this->commandLine_);
-                            this->cursorX_ = this->inputIterator_;
-                            break;
-                        }
-                        case '\033': // 1. escape character
-                            escapeChar = 1;
-                            break;
-                        default:
-                            insertCharacter( this->cursorX_, c );
-                            break;
-                    }
-                }
-            }
-        }
-
-        delete[] this->commandLine_;
-    }
-    
-    void GSDedicated::printLine()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        // set cursor to the begining of the line and erase the line
-        std::cout << "\033[0G\033[K";
-//         boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-        // print status line
-        std::cout << std::fixed << std::setprecision(2) << std::setw(5) << Game::getInstance().getAvgFPS() << " fps, " << std::setprecision(2) << std::setw(5) << Game::getInstance().getAvgTickTime() << " ms avg ticktime # ";
-        //save cursor position
-        std::cout << "\033[s";
-        //print commandLine buffer
-        std::cout << std::string((const char*)this->commandLine_, inputIterator_);
-        //restore cursor position and move it cursorX_ to the right
-        std::cout << "\033[u";
-        if( this->cursorX_ > 0 )
-            std::cout << "\033[" << this->cursorX_ << "C";
-        std::cout.flush();
-#endif
-    }
-    
-    void GSDedicated::processQueue()
-    {
-        std::string tempstr;
-        {
-            boost::recursive_mutex::scoped_lock lock1(this->inputQueueMutex_);
-            while(true)
-            {
-                if ( !this->commandQueue_.empty() )
-                {
-                    tempstr = this->commandQueue_.front();
-                    this->commandQueue_.pop();
-                    lock1.unlock();
-                }
-                else
-                    break;
-                CommandExecutor::execute(tempstr, true);
-            }
-        }
-    }
-    
-    void GSDedicated::setTerminalMode()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        termios new_settings;
-     
-        tcgetattr(0,this->originalTerminalSettings_);
-        new_settings = *this->originalTerminalSettings_;
-        new_settings.c_lflag &= ~( ICANON | ECHO );
-//         new_settings.c_lflag |= ( ISIG | IEXTEN );
-        new_settings.c_cc[VTIME] = 1;
-        new_settings.c_cc[VMIN] = 0;
-        tcsetattr(0,TCSANOW,&new_settings);
-        COUT(0) << endl;
-//       atexit(&GSDedicated::resetTerminalMode);
-#endif
-    }
-    
-    void GSDedicated::resetTerminalMode()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        tcsetattr(0, TCSANOW, GSDedicated::originalTerminalSettings_);
-#endif
-    }
-    
-    void GSDedicated::insertCharacter( unsigned int position, char c )
-    {
-//         std::cout << endl << static_cast<unsigned int>(c) << endl;
-        // check that we do not exceed MAX_COMMAND_LENGTH
-        if( inputIterator_+1 < MAX_COMMAND_LENGTH )
-        {
-            // if cursor not at end of line then move the rest of the line
-            if( position != this->inputIterator_ )
-                    memmove( this->commandLine_+position+1, this->commandLine_+position, this->inputIterator_-position);
-//             boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-            this->commandLine_[position] = c;
-            ++this->cursorX_;
-            ++this->inputIterator_;
-        }
-    }
-    void GSDedicated::deleteCharacter( unsigned int position )
-    {
-//         boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-        if ( this->inputIterator_>0 && position>0 )
-        {
-            if ( position != this->inputIterator_ )
-                memmove( this->commandLine_+position-1, this->commandLine_+position, this->inputIterator_-position);
-            --this->cursorX_;
-            --this->inputIterator_;
-        }
-    }
-    
-}

Deleted: code/branches/presentation2/src/orxonox/gamestates/GSDedicatedClient.cc
===================================================================
--- code/branches/presentation2/src/orxonox/gamestates/GSDedicatedClient.cc	2009-11-22 15:01:16 UTC (rev 6117)
+++ code/branches/presentation2/src/orxonox/gamestates/GSDedicatedClient.cc	2009-11-22 15:08:32 UTC (rev 6118)
@@ -1,306 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   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 2
- *   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, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      Oliver Scheuss
- *
- */
-
-#include "GSDedicatedClient.h"
-
-#include <iomanip>
-#include <iostream>
-#include <boost/bind.hpp>
-
-#include "util/Clock.h"
-#include "util/Debug.h"
-#include "util/Exception.h"
-#include "util/Sleep.h"
-#include "core/CommandLineParser.h"
-#include "core/CommandExecutor.h"
-#include "core/Game.h"
-#include "core/GameMode.h"
-#include "network/Client.h"
-
-#ifdef ORXONOX_PLATFORM_UNIX
-#include <termios.h>
-#endif
-
-
-namespace orxonox
-{
-    const unsigned int MAX_COMMAND_LENGTH = 255;
-    
-    DeclareGameState(GSDedicatedClient, "dedicatedClient", false, false);
-    
-    termios* GSDedicatedClient::originalTerminalSettings_;
-
-    GSDedicatedClient::GSDedicatedClient(const GameStateInfo& info)
-        : GameState(info)
-        , client_(0)
-        , closeThread_(false)
-        , cleanLine_(true)
-        , inputIterator_(0)
-        , cursorX_(0)
-        , cursorY_(0)
-    {
-    }
-
-    GSDedicatedClient::~GSDedicatedClient()
-    {
-    }
-
-    void GSDedicatedClient::activate()
-    {
-        this->inputThread_ = new boost::thread(boost::bind(&GSDedicatedClient::inputThread, this));
-        
-#ifndef ORXONOX_PLATFORM_WINDOWS
-        this->originalTerminalSettings_ = new termios;
-        this->setTerminalMode();
-#endif
-
-        this->client_ = new Client(CommandLineParser::getValue("ip").getString(), CommandLineParser::getValue("port"));
-        COUT(0) << "Loading scene in client mode" << std::endl;
-
-        if( !client_->establishConnection() )
-            ThrowException(InitialisationFailed, "Could not establish connection with server.");
-            
-        client_->update(Game::getInstance().getGameClock());
-
-
-    }
-
-    void GSDedicatedClient::deactivate()
-    {
-        if (this->client_)
-        {
-            this->client_->closeConnection();
-            delete this->client_;
-        }
-
-        closeThread_ = true;
-#ifdef ORXONOX_PLATFORM_UNIX
-        std::cout << "\033[0G\033[K";
-        std::cout.flush();
-        resetTerminalMode();
-        delete this->originalTerminalSettings_;
-#else
-        COUT(0) << "Press enter to end the game..." << std::endl;
-#endif
-        inputThread_->join();
-        delete this->inputThread_;
-    }
-
-    void GSDedicatedClient::update(const Clock& time)
-    {
-        client_->update(time);
-        processQueue();
-        printLine();
-    }
-    
-    void GSDedicatedClient::inputThread()
-    {
-        this->commandLine_ = new unsigned char[MAX_COMMAND_LENGTH];
-//         memset( this->commandLine_, 0, MAX_COMMAND_LENGTH );
-        unsigned char c;
-        unsigned int  escapeChar=0;
-        while(!closeThread_)
-        {
-#ifdef ORXONOX_PLATFORM_UNIX
-            size_t count = read(STDIN_FILENO, &c, 1);
-            if (count == 1)
-#else
-            c = getchar();
-#endif
-            {
-//                 boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                if ( inputIterator_>=MAX_COMMAND_LENGTH-1 && c!='\n' )
-                    continue;
-                if( escapeChar > 0 )
-                {
-                    if( c == '[' )
-                    {
-                        escapeChar = 2;
-                        continue;
-}
-                    else if ( escapeChar == 2 )
-                    {
-                        switch (c)
-                        {
-                            case 'A': //keyup
-                                
-                                break;
-                            case 'B': //keydown
-                                
-                                break;
-                            case 'C': //keyright
-                                if(cursorX_<inputIterator_)
-                                    ++cursorX_;
-                                break;
-                            case 'D': //keyleft
-                                if(cursorX_>0)
-                                    --cursorX_;
-                                break;
-                            default: //not supported...
-//                                 std::cout << endl << c << endl;
-                                break;
-                        }
-                        escapeChar = 0;
-                    }
-                }
-                else // not in escape sequence mode
-                {
-                    switch (c)
-                    {
-                        case '\n':
-                            this->cleanLine_ = true;
-                            {
-                                boost::recursive_mutex::scoped_lock(this->inputQueueMutex_);
-                                boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                                this->commandQueue_.push( std::string((const char*)this->commandLine_,inputIterator_) );
-                            }
-                            memset( this->commandLine_, 0, inputIterator_ );
-                            inputIterator_ = 0;
-                            this->cursorX_ = 0;
-                            this->cursorY_ = 0;
-                            std::cout << endl;
-                            break;
-                        case 127: // backspace
-                        case '\b':
-                            deleteCharacter( this->cursorX_ );
-                            break;
-                        case '\t':
-                        {
-//                             boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-                            std::cout << endl << CommandExecutor::hint( std::string((const char*)this->commandLine_,inputIterator_) ) << endl;
-                            strncpy(reinterpret_cast<char*>(this->commandLine_), CommandExecutor::complete( std::string(reinterpret_cast<char*>(this->commandLine_),inputIterator_) ).c_str(), MAX_COMMAND_LENGTH);
-                            this->inputIterator_ = strlen((const char*)this->commandLine_);
-                            this->cursorX_ = this->inputIterator_;
-                            break;
-                        }
-                        case '\033': // 1. escape character
-                            escapeChar = 1;
-                            break;
-                        default:
-                            insertCharacter( this->cursorX_, c );
-                            break;
-                    }
-                }
-            }
-        }
-
-        delete[] this->commandLine_;
-    }
-    
-    void GSDedicatedClient::printLine()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        // set cursor to the begining of the line and erase the line
-        std::cout << "\033[0G\033[K";
-//         boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-        // print status line
-        std::cout << std::fixed << std::setprecision(2) << std::setw(5) << Game::getInstance().getAvgFPS() << " fps, " << std::setprecision(2) << std::setw(5) << Game::getInstance().getAvgTickTime() << " ms avg ticktime # ";
-        //save cursor position
-        std::cout << "\033[s";
-        //print commandLine buffer
-        std::cout << std::string((const char*)this->commandLine_, inputIterator_);
-        //restore cursor position and move it cursorX_ to the right
-        std::cout << "\033[u";
-        if( this->cursorX_ > 0 )
-            std::cout << "\033[" << this->cursorX_ << "C";
-        std::cout.flush();
-#endif
-    }
-    
-    void GSDedicatedClient::processQueue()
-    {
-        std::string tempstr;
-        {
-            boost::recursive_mutex::scoped_lock lock1(this->inputQueueMutex_);
-            while(true)
-            {
-                if ( !this->commandQueue_.empty() )
-                {
-                    tempstr = this->commandQueue_.front();
-                    this->commandQueue_.pop();
-                    lock1.unlock();
-                }
-                else
-                    break;
-                CommandExecutor::execute(tempstr, true);
-            }
-        }
-    }
-    
-    void GSDedicatedClient::setTerminalMode()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        termios new_settings;
-     
-        tcgetattr(0,this->originalTerminalSettings_);
-        new_settings = *this->originalTerminalSettings_;
-        new_settings.c_lflag &= ~( ICANON | ECHO );
-//         new_settings.c_lflag |= ( ISIG | IEXTEN );
-        new_settings.c_cc[VTIME] = 1;
-        new_settings.c_cc[VMIN] = 0;
-        tcsetattr(0,TCSANOW,&new_settings);
-        COUT(0) << endl;
-//       atexit(&GSDedicatedClient::resetTerminalMode);
-#endif
-    }
-    
-    void GSDedicatedClient::resetTerminalMode()
-    {
-#ifdef ORXONOX_PLATFORM_UNIX
-        tcsetattr(0, TCSANOW, GSDedicatedClient::originalTerminalSettings_);
-#endif
-    }
-    
-    void GSDedicatedClient::insertCharacter( unsigned int position, char c )
-    {
-//         std::cout << endl << static_cast<unsigned int>(c) << endl;
-        // check that we do not exceed MAX_COMMAND_LENGTH
-        if( inputIterator_+1 < MAX_COMMAND_LENGTH )
-        {
-            // if cursor not at end of line then move the rest of the line
-            if( position != this->inputIterator_ )
-                    memmove( this->commandLine_+position+1, this->commandLine_+position, this->inputIterator_-position);
-//             boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-            this->commandLine_[position] = c;
-            ++this->cursorX_;
-            ++this->inputIterator_;
-        }
-    }
-    void GSDedicatedClient::deleteCharacter( unsigned int position )
-    {
-//         boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
-        if ( this->inputIterator_>0 && position>0 )
-        {
-            if ( position != this->inputIterator_ )
-                memmove( this->commandLine_+position-1, this->commandLine_+position, this->inputIterator_-position);
-            --this->cursorX_;
-            --this->inputIterator_;
-        }
-    }
-    
-}




More information about the Orxonox-commit mailing list