Changeset 8623 in orxonox.OLD for trunk/src/util
- Timestamp:
- Jun 20, 2006, 1:39:01 PM (19 years ago)
- Location:
- trunk/src/util
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/util/game_rules.h
r8362 r8623 20 20 21 21 22 class GameRules : public BaseObject22 class GameRules : virtual public BaseObject 23 23 { 24 24 -
trunk/src/util/multiplayer_team_deathmatch.cc
r8147 r8623 65 65 this->currentGameState = GAMESTATE_PRE_GAME; 66 66 this->gameStateTimer = 10.0f; 67 this->bShowTeamChange = false; 67 68 68 69 this->box = NULL; … … 77 78 if( root != NULL) 78 79 this->loadParams(root); 80 81 subscribeEvent( ES_GAME, SDLK_o ); 79 82 } 80 83 … … 86 89 if( this->deathScreen) 87 90 delete this->deathScreen; 91 92 unsubscribeEvent( ES_GAME, SDLK_o ); 88 93 } 89 94 … … 150 155 return; 151 156 152 if ( currentGameState == GAMESTATE_PRE_GAME )157 if ( currentGameState == GAMESTATE_PRE_GAME || currentGameState == GAMESTATE_GAME ) 153 158 { 154 159 if ( PlayerStats::getStats( SharedNetworkData::getInstance()->getHostID() ) 155 && PlayerStats::getStats( SharedNetworkData::getInstance()->getHostID() )->getPreferedTeamId() == TEAM_NOTEAM156 160 && box == NULL 161 && (PlayerStats::getStats( SharedNetworkData::getInstance()->getHostID() )->getPreferedTeamId() == TEAM_NOTEAM 162 || bShowTeamChange ) 163 157 164 ) 158 165 { … … 180 187 buttonTeam1->connect(SIGNAL(buttonTeam1, released), this, SLOT(MultiplayerTeamDeathmatch, onButtonTeam1)); 181 188 189 if ( bShowTeamChange ) 190 { 191 OrxGui::GLGuiPushButton * buttonCancel = new OrxGui::GLGuiPushButton("Cancel"); 192 box->pack( buttonCancel ); 193 buttonCancel->connect(SIGNAL(buttonCancel, released), this, SLOT(MultiplayerTeamDeathmatch, onButtonCancel)); 194 } 195 182 196 OrxGui::GLGuiPushButton * buttonExit = new OrxGui::GLGuiPushButton("Exit"); 183 197 box->pack( buttonExit ); … … 191 205 && PlayerStats::getStats( SharedNetworkData::getInstance()->getHostID() ) 192 206 && PlayerStats::getStats( SharedNetworkData::getInstance()->getHostID() )->getPreferedTeamId() != TEAM_NOTEAM 207 && !bShowTeamChange 193 208 ) 194 209 { … … 479 494 { 480 495 State::getCurrentStoryEntity()->stop(); 496 this->bShowTeamChange = false; 481 497 } 482 498 … … 484 500 { 485 501 NetworkGameManager::getInstance()->prefereTeam( TEAM_RANDOM ); 502 this->bShowTeamChange = false; 486 503 } 487 504 … … 489 506 { 490 507 NetworkGameManager::getInstance()->prefereTeam( 0 ); 508 this->bShowTeamChange = false; 491 509 } 492 510 … … 494 512 { 495 513 NetworkGameManager::getInstance()->prefereTeam( 1 ); 514 this->bShowTeamChange = false; 496 515 } 497 516 … … 499 518 { 500 519 NetworkGameManager::getInstance()->prefereTeam( TEAM_SPECTATOR ); 520 this->bShowTeamChange = false; 501 521 } 502 522 … … 507 527 } 508 528 509 510 511 512 513 529 /** 530 * function that processes events from the handler 531 * @param event: the event 532 * @todo replace SDLK_o with something from KeyMapper 533 */ 534 void MultiplayerTeamDeathmatch::process( const Event & event ) 535 { 536 if ( event.type == SDLK_o ) 537 { 538 if ( event.bPressed ) 539 this->bShowTeamChange = true; 540 } 541 } 542 543 void MultiplayerTeamDeathmatch::onButtonCancel( ) 544 { 545 this->bShowTeamChange = false; 546 } 547 548 549 550 /** 551 * this method is called by NetworkGameManger when he recieved a chat message 552 * @param userId senders user id 553 * @param message message string 554 * @param messageType some int 555 */ 556 void MultiplayerTeamDeathmatch::handleChatMessage( int userId, const std::string & message, int messageType ) 557 { 558 std::string name = "unknown"; 559 560 if ( PlayerStats::getStats( userId ) ) 561 { 562 name = PlayerStats::getStats( userId )->getNickName(); 563 } 564 565 PRINTF(0)("CHATMESSAGE %s: %s\n", name.c_str(), message.c_str() ); 566 } 567 568 569 570 -
trunk/src/util/multiplayer_team_deathmatch.h
r8147 r8623 12 12 #include "network_game_rules.h" 13 13 14 #include "glgui _box.h"14 #include "glgui.h" 15 15 16 16 class TiXmlElement; … … 27 27 28 28 29 class MultiplayerTeamDeathmatch : public NetworkGameRules 29 class MultiplayerTeamDeathmatch : public NetworkGameRules, public EventListener 30 30 { 31 31 … … 55 55 56 56 int getRandomTeam(); 57 58 virtual void process(const Event &event); 59 60 virtual void handleChatMessage( int userId, const std::string & message, int messageType ); 57 61 58 62 protected: … … 74 78 float gameStateTimer; //!< if less than 0 -> change game state 75 79 80 bool bShowTeamChange; //!< if true -> show team change dialog 81 76 82 OrxGui::GLGuiBox* box; 77 78 83 79 84 void calculateTeamScore(); 80 85 void nextGameState(); … … 87 92 void onButtonTeam0(); 88 93 void onButtonTeam1(); 94 void onButtonCancel(); 89 95 void onButtonExit(); 90 96 }; -
trunk/src/util/network_game_rules.cc
r8147 r8623 17 17 18 18 #include "network_game_rules.h" 19 20 #include "network_game_manager.h" 19 21 20 22 using namespace std; … … 53 55 } 54 56 57 58 void NetworkGameRules::shellSay( const std::string & message ) 59 { 60 NetworkGameManager::getInstance()->sendChatMessage( message, 0 ); 61 } 62 63 -
trunk/src/util/network_game_rules.h
r8147 r8623 25 25 26 26 virtual PlayerStats * getNewPlayerStats( int userId ){ return new PlayerStats( userId ); } 27 28 virtual void handleChatMessage( int userId, const std::string & message, int messageType ) = 0; 29 30 void shellSay( const std::string & message ); 27 31 28 32 -
trunk/src/util/signal_handler.h
r8523 r8623 17 17 }; 18 18 19 typedef bool(*SignalCallback)( void * someData );19 typedef int (*SignalCallback)( void * someData ); 20 20 21 21 #ifndef __WIN32__ … … 44 44 public: 45 45 inline static SignalHandler* getInstance() { if (!SignalHandler::singletonRef) SignalHandler::singletonRef = new SignalHandler(); return SignalHandler::singletonRef; } 46 46 47 47 void registerCallback( SignalCallback cb, void * someData ); 48 48 … … 55 55 void catchSignal( int sig ); 56 56 SignalRecList sigRecList; 57 57 58 58 SignalCallbackList callbackList; 59 59
Note: See TracChangeset
for help on using the changeset viewer.