Esempio n. 1
0
void FinalMessagePage::makeActive( char inFresh ) {
    if( !inFresh ) {
        return;
        }
    
    setWaiting( false );
    }
Esempio n. 2
0
void roomList::updateWaiting(string waitingString)
{
	setWaiting(waitingString);
	wclear(roomWin);
	for(int i=0; i<waiting.size(); ++i)
	{
		waddstr(roomWin, (stringUtils::toString<int>(i) + ": " + stringUtils::toString<int>(waiting.at(i))+"\n").c_str());
	}
	//waddstr(roomWin, ("waiting: "+waitingString+"\n").c_str());
	wrefresh(roomWin);
}
void QuickDBusReply::callFinishedSlot(QDBusPendingCallWatcher *call)
{
    Q_ASSERT(call);

    setWaiting(false);

    QDBusMessage msg = call->reply();

    if (msg.type() == QDBusMessage::ReplyMessage) {
        setValues(msg.arguments());
    } else {
        setValid(false);
        setErrorName(msg.errorName());
        setErrorString(msg.errorMessage());
    }

    call->deleteLater();
}
Esempio n. 4
0
void CheckinHousePage::makeActive( char inFresh ) {
    LiveHousePage::makeActive( inFresh );

    if( !inFresh ) {
        return;
        }
    
    
    mRequestStarted = false;

    mReturnToMenu = false;
    mStartOver = false;
    
    mStatusError = false;
    mStatusMessageKey = NULL;

    mMenuButton.setVisible( false );
    mStartOverButton.setVisible( false );
    
    setWaiting( true );
    }
Esempio n. 5
0
void BuyAuctionPage::makeActive( char inFresh ) {
    if( !inFresh ) {
        return;
        }
    
    // send back to server            
    char *ticketHash = getTicketHash();
        
            
    
    char *actionString = autoSprintf( 
        "action=buy_auction&user_id=%d"
        "&%s"
        "&object_id=%d",
        userID, ticketHash, mObjectID );
    delete [] ticketHash;
            
    
    mWebRequest = startWebRequestSerial( "POST", 
                                   serverURL, 
                                   actionString );
    
    delete [] actionString;

    mReturnToHome = false;
    
    mStatusError = false;
    mStatusMessageKey = NULL;

    setStatusDirect( NULL, false );
    

    mHomeButton.setVisible( false );
    
    mBoughtSlot.setVisible( false );

    setWaiting( true );
    }
Esempio n. 6
0
void BuyAuctionPage::step() {
    if( mWebRequest != -1 ) {
            
        int stepResult = stepWebRequestSerial( mWebRequest );

        if( stepResult != 0 ) {
            setWaiting( false );
            }

        switch( stepResult ) {
            case 0:
                break;
            case -1:
                mStatusError = true;
                mStatusMessageKey = "err_webRequest";
                clearWebRequestSerial( mWebRequest );
                mWebRequest = -1;
                mHomeButton.setVisible( true );
                break;
            case 1: {
                char *result = getWebResultSerial( mWebRequest );
                clearWebRequestSerial( mWebRequest );
                mWebRequest = -1;
                     
                printf( "Web result = %s\n", result );
   
                if( strstr( result, "DENIED" ) != NULL ) {
                    mStatusError = true;
                    mStatusMessageKey = "auctionBuyFailed";
                    mHomeButton.setVisible( true );
                    }
                else {
                    // auction successful
                    
                    SimpleVector<char *> *tokens =
                        tokenizeString( result );
                    
                    if( tokens->size() != 2 ||
                        strcmp( *( tokens->getElement( 1 ) ), "OK" ) != 0 ) {
                        mStatusError = true;
                        mStatusMessageKey = "err_badServerResponse";
                        }
                    else {
                        int price;
                        sscanf( *( tokens->getElement( 0 ) ), 
                                "%d", &price );
                        
                        mBoughtSlot.setObject( mObjectID );
                        mBoughtSlot.setVisible( true );
                        
                        mLootValue -= price;
                        
                        if( strcmp( mGalleryContents, "#" ) == 0 ) {
                            // was empty, just the one new item now
                            delete [] mGalleryContents;
                            mGalleryContents = autoSprintf( "%d", mObjectID );
                            }
                        else {
                            // prepend
                            char *old = mGalleryContents;
                            
                            mGalleryContents = autoSprintf( "%d#%s",
                                                            mObjectID,
                                                            mGalleryContents );
                            delete [] old;
                            }
                        
                        
                        const char *objectDescription = 
                            getGalleryObjectDescription( mObjectID );
                    
                        char *quotedDescription = 
                            autoSprintf( "\"%s\"", objectDescription );
                    


                        char *statusString = autoSprintf( 
                            translate( "auctionBuySucceed" ),
                            quotedDescription, price );
                    
                        delete [] quotedDescription;
                        
                        setStatusDirect( statusString, false );
                        
                        delete [] statusString;
                        }

                    mHomeButton.setVisible( true ); 

                    for( int i=0; i<tokens->size(); i++ ) {
                        delete [] *( tokens->getElement( i ) );
                        }
                    delete tokens;
                    }
                        
                        
                delete [] result;
                }
                break;
            }
        }
    }
Esempio n. 7
0
void CheckinHousePage::step() {
    
    // wait until pending LiveHousePage requests are sent
    // to prevent bad request orderings (house checked in before 
    //  start_self_test received by server).
    if( LiveHousePage::areRequestsPending() ) {
        
        // note that we don't step LiveHousePage otherwise, because
        // we don't want it starting NEW ping requests after
        // we send our request (lest our request's sequence number
        // will be stale)
        LiveHousePage::step();

        return;
        }
    
    if( ! mRequestStarted ) {
        // send back to server            
        char *ticketHash = getTicketHash();
        
            
    
        char *actionString = autoSprintf( 
            "action=end_edit_house&user_id=%d"
            "&%s&died=%d&house_map=%s&vault_contents=%s"
            "&backpack_contents=%s&gallery_contents=%s"
            "&price_list=%s&purchase_list=%s&sell_list=%s"
            "&self_test_move_list=%s&family_exit_paths=%s",
            userID, ticketHash, mDied, mHouseMap, mVaultContents, 
            mBackpackContents, mGalleryContents, 
            mPriceList, mPurchaseList, mSellList, mMoveList,
            mFamilyExitPaths );
        delete [] ticketHash;
            
    
        mWebRequest = startWebRequestSerial( "POST", 
                                       serverURL, 
                                       actionString );
    
        delete [] actionString;

        mRequestStarted = true;
        
        return;
        }
    


    if( mWebRequest != -1 ) {
            
        int stepResult = stepWebRequestSerial( mWebRequest );
        
        if( stepResult != 0 ) {
            setWaiting( false );
            }

        switch( stepResult ) {
            case 0:
                break;
            case -1:
                mStatusError = true;
                mStatusMessageKey = "err_webRequest";
                clearWebRequestSerial( mWebRequest );
                mWebRequest = -1;
                mMenuButton.setVisible( true );
                blockQuitting( false );
                break;
            case 1: {
                char *result = getWebResultSerial( mWebRequest );
                clearWebRequestSerial( mWebRequest );
                mWebRequest = -1;
                     
                printf( "Web result = %s\n", result );
   
                if( strstr( result, "OK" ) != NULL ) {
                    // house checked in!
                    
                    if( mDied != 1 ) {    
                        mStatusError = false;
                        mStatusMessageKey = "houseCheckedIn";
                        mReturnToMenu = true;
                        }
                    else {
                        mStatusError = true;
                        mStatusMessageKey = "deathMessage";
                        mStartOverButton.setVisible( true );
                        blockQuitting( false );
                        }
                    }
                else {
                    mStatusError = true;
                    mStatusMessageKey = "houseCheckInFailed";
                    mMenuButton.setVisible( true );
                    blockQuitting( false );
                    }
                
                        
                        
                delete [] result;
                }
                break;
            }
        }
    }
Esempio n. 8
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    m_server(new NetworkServer(this)),
    m_ipList(),
    m_bgm(this)
{
    ui->setupUi(this);
    m_bgm.setMedia(QUrl::fromLocalFile("./Music/thestonemasons.wav"));
    m_bgm.setVolume(50);
    m_bgm.play();
    connect(&m_bgm, SIGNAL(stateChanged(QMediaPlayer::State)), &m_bgm, SLOT(play()));
    setFixedSize(width(), height());
    m_gobang = new Gobang(this);
    m_startMenu = new StartMenu(this);
    m_waitWidget = new waitWidget(this);
    setCursor(QCursor(QPixmap(":/Pic/arrows.png"), 1, 1));
    m_gobang->hide();
    m_waitWidget->hide();
    m_startMenu->show();
    currentWidget = m_startMenu;
    m_server->listen();
    m_server->getIP();
    m_waitWidget->ui->ipLabel->setText("您的IP是:" + m_server->Sadress);
    m_timer.setInterval(1000);
    currentState = m_server->readWriteSocket->state();
    m_time1.setInterval(200); m_time1.start();
    connect(&m_time1, SIGNAL(timeout()), this, SLOT(checkState()));
    m_timer.start();
    connect(&m_timer, SIGNAL(timeout()), this, SLOT(checkUnactive()));

    connect(m_startMenu->ui->startServer, SIGNAL(clicked()), this, SLOT(setWaiting()));
    connect(m_startMenu->ui->startServer, SIGNAL(clicked()), m_gobang, SLOT(setHost()));
    connect(m_startMenu->ui->startServer, SIGNAL(clicked()), m_server, SLOT(closeListen()));
    connect(m_startMenu->ui->startServer, SIGNAL(clicked()), m_server, SLOT(initServer()));

    connect(m_startMenu->ui->startClient, SIGNAL(clicked()), this, SLOT(connectHost()));
    connect(m_startMenu->ui->startClient, SIGNAL(clicked()), m_server, SLOT(closeListen()));

    connect(m_waitWidget->ui->ok, SIGNAL(clicked()), this, SLOT(broadcast()));
    connect(m_waitWidget->ui->ok, SIGNAL(clicked()), m_waitWidget->ui->setBox, SLOT(hide()));
    connect(m_waitWidget->ui->ok, SIGNAL(clicked()), m_waitWidget->ui->waitLabel, SLOT(show()));
    connect(m_waitWidget->ui->back, SIGNAL(clicked()), m_server, SLOT(closeWrite()));
    connect(m_waitWidget->ui->back, SIGNAL(clicked()), m_server, SLOT(listen()));
    connect(m_waitWidget->ui->back, SIGNAL(clicked()), this, SLOT(setStart()));

    connect(m_gobang, SIGNAL(sendSignal(int, Step)), m_server, SLOT(sendMessage(int, Step)));

    connect(m_server, SIGNAL(setPieces(Step)), m_gobang, SLOT(setPieces(const Step&)));
    connect(m_server, SIGNAL(findPlayer(QString)), this, SLOT(findPlayer(QString)));
    connect(m_server, SIGNAL(changeCamp(int)), m_gobang, SLOT(changeCamp(int)));
    connect(m_server, SIGNAL(recall(int)), m_gobang, SLOT(recallDone(int)));
    connect(m_server, SIGNAL(reStart()), m_gobang, SLOT(reStart()));
    connect(m_server, SIGNAL(agreeRecall()), m_gobang, SLOT(on_recall()));
    connect(m_server, SIGNAL(askForRecall()), m_gobang, SLOT(forRecall()));
    connect(m_server, SIGNAL(agreeExit()), this, SLOT(setStart()));
    connect(m_server, SIGNAL(agreeExit()), m_gobang, SLOT(on_exit()));
    connect(m_server, SIGNAL(refuse()), m_gobang, SLOT(on_refuse()));
    connect(m_server, SIGNAL(agreeExit()), m_server, SLOT(listen()));
    connect(m_server, SIGNAL(askForExit()), m_gobang, SLOT(forExit()));
    connect(m_server, SIGNAL(changeState(int, int, int)), m_gobang, SLOT(changeCurrentState(int, int, int)));
    connect(m_server->listenSocket, SIGNAL(newConnection()), this, SLOT(setGobang()));
    connect(m_server->listenSocket, SIGNAL(newConnection()), m_server, SLOT(closeWrite()));
    connect(m_server->listenSocket, SIGNAL(newConnection()), m_server, SLOT(closeListen()));

}