/* handle the messages in the queue */ void diag_flush(void) { struct diag_dgram recv_dgram; char exitmsg[20]; while (recv(diag_sock_recv, &recv_dgram, sizeof(recv_dgram)-1, MSG_DONTWAIT) > 0) { recv_dgram.text[TEXTLEN-1] = '\0'; switch (recv_dgram.op) { case DIAG_OP_EXIT: /* we want the actual time, not when this dgram was sent */ #if HAVE_CLOCK_GETTIME clock_gettime(CLOCK_REALTIME, &recv_dgram.now); #elif HAVE_GETTIMEOFDAY gettimeofday(&recv_dgram.now, NULL); #else recv_dgram.now = time(NULL); #endif if (E_NOTICE >= diagopts.msglevel) { snprintf_r(exitmsg, sizeof(exitmsg), "exit(%d)", recv_dgram.exitcode?recv_dgram.exitcode:1); msg2(&recv_dgram.now, E_NOTICE, recv_dgram.exitcode?recv_dgram.exitcode:1, 1, exitmsg); } exit(recv_dgram.exitcode?recv_dgram.exitcode:1); case DIAG_OP_MSG: if (recv_dgram._errno) { /* there might be a %m control in the string (glibc compatible, replace with strerror(...errno) ) */ char text[TEXTLEN]; errno = recv_dgram._errno; snprinterr(text, TEXTLEN, recv_dgram.text); msg2(&recv_dgram.now, recv_dgram.level, recv_dgram.exitcode, 1, text); } else { msg2(&recv_dgram.now, recv_dgram.level, recv_dgram.exitcode, 1, recv_dgram.text); } break; } } }
TEST(Serialization, WriteBitsHard) { QByteArray msg1(2, 'a'); QBitArray bits1(12, true); Serialization::WriteBitArray(bits1, msg1, 0); EXPECT_EQ((char)0xFF, (char)msg1[0]); EXPECT_EQ((char)0x0F, (char)msg1[1]); bits1.setBit(0, false); Serialization::WriteBitArray(bits1, msg1, 0); EXPECT_EQ((char)0x7F, (char)msg1[0]); EXPECT_EQ((char)0x0F, (char)msg1[1]); bits1.setBit(11, false); Serialization::WriteBitArray(bits1, msg1, 0); EXPECT_EQ((char)0x7F, (char)msg1[0]); EXPECT_EQ((char)0x0E, (char)msg1[1]); QByteArray msg2(3, 'b'); Serialization::WriteBitArray(bits1, msg2, 1); EXPECT_EQ((char)'b', (char)msg2[0]); EXPECT_EQ((char)0x7F, (char)msg2[1]); EXPECT_EQ((char)0x0E, (char)msg2[2]); }
bool CTrueTalkNPC::TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMsg *msg) { _npcFlags |= NPCFLAG_SPEAKING; ++_field100; if (!(_npcFlags & NPCFLAG_8)) { if (_speechTimerId) stopTimer(_speechTimerId); _soundId = msg->_soundId; _fieldF0 = getTicksCount(); if (hasActiveMovie() || (_npcFlags & NPCFLAG_2)) { _npcFlags &= ~NPCFLAG_2; stopMovie(); CNPCPlayTalkingAnimationMsg msg1(_soundId, 0, 0); msg1.execute(this); if (msg1._names) { CNPCPlayAnimationMsg msg2(msg1._names, msg1._value1); msg2.execute(this); } } } return true; }
bool PhysicsEngine::update(float deltaTime){ _world->stepSimulation(deltaTime, 60); //iterate across the contacts map for(auto contactsIter = contacts.begin(); contactsIter!=contacts.end(); ++contactsIter){ //get the entity key from teh current entry in the map Entity* collider0 = contactsIter->first; //get the set of colliders from the current entry in the map std::set<Entity*>& set = contactsIter->second; //iterate thru all the entities in the set for(auto entityIter = set.begin(); entityIter!=set.end(); ++entityIter){ // get the other colider from the iterator Entity* collider1 = *entityIter; //create 2 messages - one for collider and one for the entity being hit Message msg1(collider0, "COLLISION", collider1); Message msg2(collider1, "COLLISION", collider0); //dispatch teh messages MessageHandler::sendMessage(msg1); MessageHandler::sendMessage(msg2); } } //empty the contacts map ready for next time contacts.clear(); //for now return true; }
void raw_sender(zmq::socket_t& s) { for (size_t i = 0; i < ITERS; ++i) { zmq::message_t msg1(ARRAY_LEN(PART1)-1); memcpy(msg1.data(), PART1, msg1.size()); s.send(msg1, ZMQ_SNDMORE); zmq::message_t msg2(ARRAY_LEN(PART2)-1); memcpy(msg2.data(), PART2, msg2.size()); s.send(msg2, ZMQ_SNDMORE); zmq::message_t msg3(ARRAY_LEN(PART3)-1); memcpy(msg3.data(), PART3, msg3.size()); s.send(msg3); zmq::message_t msg_res; s.recv(&msg_res, 0); if (i % 1000 == 0) { std::cout << "."; std::cout.flush(); } } }
static const response* get_seq(void) { str sql; str_init(&sql); /* do IPv6 differently */ if(strchr(remote_ip, ':')) { if(!str_copy5s(&sql, "INSERT INTO mail SET serial=NULL,mailtime=NULL,server6=INET_PTO6('", local_ip, "'),sourceip6=INET_PTO6('", remote_ip, "')")) return &resp_internal; } else { if(!str_copy5s(&sql, "INSERT INTO mail SET serial=NULL,mailtime=NULL,server=INET_ATON('", local_ip, "'),sourceip=INET_ATON('", remote_ip, "')")) return &resp_internal; } if(!sqlquery(&sql, &sqlseq) || !str_init(&sqlseqstr) || !str_catu(&sqlseqstr, sqlseq)) return &resp_internal; msg2("assigned seq ",sqlseqstr.s); session_setnum("sqlseq", (unsigned long)sqlseq); return 0; }
bool CTrueTalkNPC::TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMsg *msg) { debugC(ERROR_DETAILED, kDebugScripts, "%s TrueTalkNotifySpeechStartedMsg flags=%x dialogueId=%d", getName().c_str(), _npcFlags, msg->_dialogueId); _npcFlags |= NPCFLAG_SPEAKING; ++_speechCounter; if (!(_npcFlags & NPCFLAG_8)) { // Stop any previous animation if (_speechTimerId) stopAnimTimer(_speechTimerId); _speechTimerId = 0; _speechDuration = msg->_speechDuration; _startTicks = getTicksCount(); if (!hasActiveMovie() || (_npcFlags & NPCFLAG_IDLING)) { _npcFlags &= ~NPCFLAG_IDLING; stopMovie(); CNPCPlayTalkingAnimationMsg msg1(_speechDuration, 0, nullptr); msg1.execute(this); if (msg1._names) { CNPCPlayAnimationMsg msg2(msg1._names, msg1._speechDuration); msg2.execute(this); } } } return true; }
bool CPlayGameVorticon::init() { CVorticonMapLoaderWithPlayer MapLoader( mMap, m_Player, mSpriteObjectContainer ); MapLoader.m_checkpointset = m_checkpointset; // load level map if( !MapLoader.load( m_Episode, m_Level, m_Gamepath ) ) return false; gpSaveGameController->setLevel(m_Level); //// If those worked fine, continue the initialization // draw level map mMap->drawAll(); // Now Scroll to the position of the player and center him mMap->gotoPos( 32, 64 ); // Assure that the edges are never seen setupPlayers(); // Well, all players are living because they were newly spawn. g_pTimer->ResetSecondsTimer(); g_pInput->flushAll(); // Initialize the AI mpObjectAI.reset( new CVorticonSpriteObjectAI(mMap.get(), mSpriteObjectContainer, m_Player, m_NumPlayers, m_Episode, m_Level, mMap->m_Dark) ); // Check if Player meets the conditions to show a cutscene. This also happens, when finale of episode has reached verifyFinales(); // When Level starts it's never dark! g_pGfxEngine->Palette.setdark(false); if(m_level_command == GOTO_FINALE) createFinale(); else if(m_showKeensLeft) g_pSound->playSound(SOUND_KEENSLEFT, PLAY_NOW); // In the case that we are in Episode 3 last Level, show Mortimer Messages if( m_Episode == 3 && m_Level == 16 ) { std::unique_ptr<CMessageBoxVort> msg1(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER"),false, true)); std::unique_ptr<CMessageBoxVort> msg2(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER2"),false, true)); std::unique_ptr<CMessageBoxVort> msg3(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER3"),false, true)); std::unique_ptr<CMessageBoxVort> msg4(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER4"),false, true)); std::unique_ptr<CMessageBoxVort> msg5(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER5"),false, true)); std::unique_ptr<CMessageBoxVort> msg6(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER6"),false, true)); mMessageBoxes.push_back(move(msg1)); mMessageBoxes.push_back(move(msg2)); mMessageBoxes.push_back(move(msg3)); mMessageBoxes.push_back(move(msg4)); mMessageBoxes.push_back(move(msg5)); mMessageBoxes.push_back(move(msg6)); g_pSound->playSound(SOUND_MORTIMER); } return true; }
static void logcmd(char cmd) { char cmdstr[3]; cmdstr[0] = cmd; cmdstr[1] = ' '; cmdstr[2] = 0; msg2(cmdstr, username); }
void ecRunTestsOutputDialog::AddLogMsg(const wxString& msg) { wxString msg2(msg); if ((msg == wxEmptyString) || (msg.Last() != wxT('\n'))) msg2 += wxT("\n"); AddText(msg2); }
// Handle dropped files and volumes virtual void MessageReceived(BMessage *msg) { if (msg->what == B_SIMPLE_DATA) { BMessage msg2(MSG_ADD_VOLUME_PANEL); entry_ref ref; for (int i=0; msg->FindRef("refs", i, &ref) == B_NO_ERROR; i++) msg2.AddRef("refs", &ref); Window()->PostMessage(&msg2); } else BListView::MessageReceived(msg); }
// --------------------------------------------------------------------------- // RPeninputServerImpl::SetDisplayMode // Set the display mode // --------------------------------------------------------------------------- // void RPeninputServerImpl::SetDisplayMode(TDisplayMode aDisplayMode, TDisplayMode aMaskDisplayMode) { TPckgC<TDisplayMode> msg(aDisplayMode); TPckgC<TDisplayMode> msg2(aMaskDisplayMode); TIpcArgs arg; arg.Set(KMsgSlot0,&msg); arg.Set(KMsgSlot1,&msg2); SendReceive( EPeninputServerRequestSetDisplayMode, arg); }
// 4. free non-existant tag, get fromatter table for non-existant tag void test4() { StringBuffer msg("ERROR: "); StringBuffer msg2("ERROR: "); printf("***Freeing Tag that does not exist****\n"); try{ freeMPtag((mptag_t)999); }catch(IException *e){printf("%s\n", e->errorMessage(msg).toCharArray());e->Release();} try{ printf("***Getting Formater for Tag that does not exist***\n"); queryFormatter((mptag_t)999); }catch(IException *e){printf("%s\n", e->errorMessage(msg2).toCharArray());e->Release();} }
static int RCPT(void) { const response* resp; msg2("RCPT ", arg.s); if (!saw_mail) return respond(&resp_no_mail); if ((resp = parse_addr_arg()) == 0) { if ((resp = handle_recipient(&addr, ¶ms)) == 0) resp = &resp_accepted_recip; if (number_ok(resp)) saw_rcpt = 1; } return respond(resp); }
static const response* chkdns_sender(str* sender, str* params) { str domstr, dbltxt; int i; unsigned char ansbuf[512]; if(sender->len == 0) return 0; /* bounce */ i = str_findlast(sender, '@'); if(i < 0) { return &resp_badfrom; /* no domain */ } str_init(&domstr); str_copyb(&domstr, sender->s+i+1, sender->len-i-1); if(domstr.len == 0) { /* null domain */ str_free(&domstr); return &resp_badfrom; } /* first check dbl */ if(dblchk(&domstr, &dbltxt)) { session_setenv("RBLSMTPD", dbltxt.s, 0); session_setnum("dblfrom", 1); session_setnum("sump", 1); msg2("MAIL FROM in DBL ",dbltxt.s); str_free(&domstr); if(getenv("DBLREJECT")) { resp_baddbl.message = dbltxt.s; return &resp_baddbl; } return 0; } i = res_query(domstr.s, C_IN, T_MX, ansbuf, sizeof(ansbuf)); if(i > 0 && ((HEADER *)ansbuf)->ancount != 0) { /* has an MX */ str_free(&domstr); return 0; } i = res_query(domstr.s, C_IN, T_A, ansbuf, sizeof(ansbuf)); if(i > 0 && ((HEADER *)ansbuf)->ancount != 0) { /* has an A */ str_free(&domstr); return 0; } i = res_query(domstr.s, C_IN, T_AAAA, ansbuf, sizeof(ansbuf)); str_free(&domstr); if(i > 0 && ((HEADER *)ansbuf)->ancount != 0) return 0; /* has an AAAA */ return &resp_badfrom; (void)params; }
// FIXME: if rules_reset fails, exit static int MAIL(void) { const response* resp; msg2("MAIL ", arg.s); do_reset(); if ((resp = parse_addr_arg()) == 0) { if ((resp = handle_sender(&addr, ¶ms)) == 0) resp = &resp_accepted_sender; if (number_ok(resp)) { saw_mail = 1; } } return respond(resp); }
void CollationIteratorTest::TestOffset(/* char* par */) { CollationElementIterator *iter = en_us->createCollationElementIterator(test1); UErrorCode status = U_ZERO_ERROR; // testing boundaries iter->setOffset(0, status); if (U_FAILURE(status) || iter->previous(status) != UCOL_NULLORDER) { errln("Error: After setting offset to 0, we should be at the end " "of the backwards iteration"); } iter->setOffset(test1.length(), status); if (U_FAILURE(status) || iter->next(status) != UCOL_NULLORDER) { errln("Error: After setting offset to end of the string, we should " "be at the end of the backwards iteration"); } // Run all the way through the iterator, then get the offset int32_t orderLength = 0; Order *orders = getOrders(*iter, orderLength); int32_t offset = iter->getOffset(); if (offset != test1.length()) { UnicodeString msg1("offset at end != length: "); UnicodeString msg2(" vs "); errln(msg1 + offset + msg2 + test1.length()); } // Now set the offset back to the beginning and see if it works CollationElementIterator *pristine = en_us->createCollationElementIterator(test1); iter->setOffset(0, status); if (U_FAILURE(status)) { errln("setOffset failed."); } else { assertEqual(*iter, *pristine); } // TODO: try iterating halfway through a messy string. delete pristine; delete[] orders; delete iter; }
/* Linux and AIX syslog format: Oct 4 17:10:37 hostname socat[52798]: D signal(13, 1) */ void msg(int level, const char *format, ...) { struct diag_dgram diag_dgram; va_list ap; /* does not perform a system call if nothing todo, thanks diag_msg_avail */ diag_dgram._errno = errno; /* keep for passing from signal handler to sock. reason is that strerror is definitely not async-signal-safe */ DIAG_INIT; /* in normal program flow (not in signal handler) */ /* first flush the queue of datagrams from the socket */ if (diag_msg_avail && !diag_in_handler) { diag_msg_avail = 0; /* _before_ flush to prevent inconsistent state when signal occurs inbetween */ diag_flush(); } if (level < diagopts.msglevel) { va_end(ap); return; } va_start(ap, format); /* we do only a minimum in the outer parts which may run in a signal handler these are: get actual time, level, serialized message and write them to socket */ diag_dgram.op = DIAG_OP_MSG; #if HAVE_CLOCK_GETTIME clock_gettime(CLOCK_REALTIME, &diag_dgram.now); #elif HAVE_GETTIMEOFDAY gettimeofday(&diag_dgram.now, NULL); #else diag_dgram.now = time(NULL); #endif diag_dgram.level = level; diag_dgram.exitcode = diagopts.exitstatus; vsnprintf_r(diag_dgram.text, sizeof(diag_dgram.text), format, ap); if (diag_in_handler && !diag_immediate_msg) { send(diag_sock_send, &diag_dgram, sizeof(diag_dgram)-TEXTLEN + strlen(diag_dgram.text)+1, MSG_DONTWAIT #ifdef MSG_NOSIGNAL |MSG_NOSIGNAL #endif ); diag_msg_avail = 1; va_end(ap); return; } msg2(&diag_dgram.now, diag_dgram.level, diagopts.exitstatus, 0, diag_dgram.text); va_end(ap); return; }
void CGUIDialogSelect::OnInitWindow() { m_viewControl.SetItems(*m_vecList); m_selectedItems->Clear(); if (m_iSelected == -1) { for(int i = 0 ; i < m_vecList->Size(); i++) { if (m_vecList->Get(i)->IsSelected()) { m_iSelected = i; break; } } } m_viewControl.SetCurrentView(m_useDetails ? CONTROL_DETAILS : CONTROL_LIST); CStdString items; items.Format("%i %s", m_vecList->Size(), g_localizeStrings.Get(127).c_str()); SET_CONTROL_LABEL(CONTROL_NUMBEROFFILES, items); if (m_bButtonEnabled) { CGUIMessage msg2(GUI_MSG_VISIBLE, GetID(), CONTROL_BUTTON); g_windowManager.SendMessage(msg2); } else { CGUIMessage msg2(GUI_MSG_HIDDEN, GetID(), CONTROL_BUTTON); g_windowManager.SendMessage(msg2); } CGUIDialogBoxBase::OnInitWindow(); if (m_iSelected >= 0) m_viewControl.SetSelectedItem(m_iSelected); }
axl_bool count_channels (axlPointer key, axlPointer _value, axlPointer user_data, axlPointer _ctx) { int * count = user_data; int value = PTR_TO_INT(_value); #if ! defined(SHOW_FORMAT_BUGS) MyQttdCtx * ctx = _ctx; #endif /* count */ msg2 ("Adding %d to current count %d (domain: %s)", *count, value, (const char *) key); (*count) = (*count) + value; return axl_false; /* iterate over all items found in the * hash */ }
void CGUIDialogBoxeeOTACountriesLocationConfiguration::OnInitWindow() { if (m_countries.IsEmpty()) { GetCountriesFromServer(); } CGUIDialog::OnInitWindow(); CGUIMessage msg(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LOCATION_LIST); OnMessage(msg); CGUIMessage msg2(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LOCATION_LIST, 0, 0, &m_countries); OnMessage(msg2); }
TEST(Serialization, WriteBitsEasy) { QByteArray msg(1, 'a'); QBitArray bits(1, false); Serialization::WriteBitArray(bits, msg, 0); EXPECT_EQ((char)0x00, (char)msg[0]); QByteArray msg1(1, 'a'); QBitArray bits1(0, false); Serialization::WriteBitArray(bits1, msg1, 0); EXPECT_EQ((char)0x00, (char)msg1[0]); QByteArray msg2(1, 'a'); QBitArray bits2(1, true); Serialization::WriteBitArray(bits2, msg2, 0); EXPECT_EQ((char)0x01, (char)msg2[0]); QByteArray msg3(2, 'a'); QBitArray bits3(8, true); Serialization::WriteBitArray(bits3, msg3, 0); EXPECT_EQ((char)0xFF, (char)msg3[0]); EXPECT_EQ((char)'a', (char)msg3[1]); QByteArray msg4(2, 'a'); QBitArray bits4(8, true); Serialization::WriteBitArray(bits4, msg4, 1); EXPECT_EQ((char)'a', (char)msg4[0]); EXPECT_EQ((char)0xFF, (char)msg4[1]); QByteArray msg5(2, 'a'); QBitArray bits5(9, true); Serialization::WriteBitArray(bits5, msg5, 0); EXPECT_EQ((char)0xFF, (char)msg5[0]); EXPECT_EQ((char)0x01, (char)msg5[1]); QByteArray msg6(2, 'a'); QBitArray bits6(10, true); Serialization::WriteBitArray(bits6, msg6, 0); EXPECT_EQ((char)0xFF, (char)msg6[0]); EXPECT_EQ((char)0x03, (char)msg6[1]); }
void ToXmlV2Encoding() const { { std::list<ErrorLogger::ErrorMessage::FileLocation> locs; ErrorMessage msg(locs, emptyString, Severity::error, "Programming error.\nComparing \"\203\" with \"\003\"", "errorId", false); const std::string expected(" <error id=\"errorId\" severity=\"error\" msg=\"Programming error.\" verbose=\"Comparing "\\203" with "\\003"\"/>"); ASSERT_EQUALS(expected, msg.toXML()); } { const char code1[]="äöü"; const char code2[]="\x12\x00\x00\x01"; std::list<ErrorLogger::ErrorMessage::FileLocation> locs; ErrorMessage msg1(locs, emptyString, Severity::error, std::string("Programming error.\nReading \"")+code1+"\"", "errorId", false); ASSERT_EQUALS(" <error id=\"errorId\" severity=\"error\" msg=\"Programming error.\" verbose=\"Reading "\\303\\244\\303\\266\\303\\274"\"/>", msg1.toXML()); ErrorMessage msg2(locs, emptyString, Severity::error, std::string("Programming error.\nReading \"")+code2+"\"", "errorId", false); ASSERT_EQUALS(" <error id=\"errorId\" severity=\"error\" msg=\"Programming error.\" verbose=\"Reading "\\022"\"/>", msg2.toXML()); } }
void World::endTurn() { CastingUnitId = -1; CastingSpellId = -1; clearHighlightedTiles(); //end previous turn Message msg("endturn"); msg.addValue("player",turn); MsgMngr.sendMessage(msg); turn = (turn+1)%2; //start next turn Message msg2("startturn"); msg2.addValue("player",turn); MsgMngr.sendMessage(msg2); }
void CGT_CDiagMsg::errNS3( const CG_Edipos* pEdp, const TCHAR* psz1, const TCHAR* psz2, const TCHAR* psz3 ) { FC_CString jot(MAX_PATH); if(psz1) jot<<psz1; if(psz2) jot<<psz2; if(psz3) jot<<psz3; HRESULT errId = CG_E_NOT_SUPP_TRG; if(m_NSName.isEmpty()) msg1(CG_E_NOT_SUPPORTED, pEdp, jot); else msg2(CG_E_NOT_SUPP_TRG, pEdp, m_NSName, jot); }
bool CTrueTalkNPC::MovieEndMsg(CMovieEndMsg *msg) { if (_npcFlags & NPCFLAG_2) { _npcFlags &= ~NPCFLAG_2; CNPCQueueIdleAnimMsg idleMsg; idleMsg.execute(this); return true; } else if (!(_npcFlags & NPCFLAG_SPEAKING)) { return false; } int diff = getTicksCount() - _fieldF0; int ticks = MAX((int)_soundId - diff, 0); CNPCPlayTalkingAnimationMsg msg1(ticks, ticks > 1000 ? 2 : 1, 0); msg1.execute(this); if (msg1._names) { CNPCPlayAnimationMsg msg2(msg1._names, msg1._value1); msg2.execute(this); } return true; }
static void load_env(int fd) { static char buf[8192]; int rd; char* ptr; char* end; int len; if ((rd = read(fd, buf, sizeof buf)) == -1) warn1sys("Could not read from opened IP file?!?"); else if (rd > 0) { for (ptr = buf; rd > 0; ptr += len, rd -= len) { if ((end = memchr(ptr, 0, rd)) == 0) break; len = end - ptr + 1; if (memchr(ptr, '=', len) != 0) { if (log_env) msg2("Setting ", ptr); if (putenv(ptr) == -1) warn1("Could not set environment string"); } } } }
/*********************************************************** * Save trackers. ***********************************************************/ void HAddTrackerWindow::SaveTracker(const char* name,const char* address) { AppUtils utils; BPath path = utils.GetAppDirPath(be_app); path.Append("Trackers"); path.Append(name); BFile file(path.Path(),B_WRITE_ONLY|B_CREATE_FILE); if(file.InitCheck() == B_OK) { BMessage msg; msg.AddString("address",address); msg.Flatten(&file); BMessage msg2(M_NEW_TRACKER); msg2.AddString("address",address); msg2.AddString("name",name); msg2.AddInt16("port",5948); be_app->PostMessage(&msg2); }else{ ( new MAlert("Cannot save a tracker","file initialize failed","OK"))->Go(); } }
bool CPlayGameVorticon::init() { const GsRect<Uint16> gameRect = gVideoDriver.getVidConfig().m_GameRect; gVideoDriver.setNativeResolution(gameRect); // Create the special merge effect (Fadeout) CColorMerge *pColorMergeFX = new CColorMerge(8); gEffectController.setupEffect(pColorMergeFX); CVorticonMapLoaderWithPlayer MapLoader( mMap, m_Player, mSpriteObjectContainer ); MapLoader.m_checkpointset = m_checkpointset; const int numPlayers = g_pBehaviorEngine->mPlayers; // load level map if( !MapLoader.load( m_Episode, m_Level, m_Gamepath ) ) return false; gpSaveGameController->setLevel(m_Level); mMap->setLevel(m_Level); //// If those worked fine, continue the initialization // draw level map mMap->drawAll(); // Now Scroll to the position of the player and center him mMap->gotoPos( 32, 64 ); // Ensure that the edges are never seen setupPlayers(); // Well, all players are living because they were newly spawn. gTimer.ResetSecondsTimer(); gInput.flushAll(); // Initialize the AI mpObjectAI.reset( new CVorticonSpriteObjectAI(mMap.get(), mSpriteObjectContainer, m_Player, numPlayers, m_Episode, m_Level, mMap->m_Dark) ); // Check if Player meets the conditions to show a cutscene. This also happens, when finale of episode is reached verifyFinales(); // When Level starts it's never dark! gGraphics.Palette.setdark(false); const std::string finaleStr = gArgs.getValue("finale"); if(finaleStr == "on") { createFinale(); gArgs.removeTag("finale"); } if(m_showKeensLeft) g_pSound->playSound(SOUND_KEENSLEFT, PLAY_NOW); // In the case that we are in Episode 3 last Level, show Mortimer Messages if( m_Episode == 3 && m_Level == 16 ) { std::unique_ptr<CMessageBoxVort> msg1(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER"),false, true)); std::unique_ptr<CMessageBoxVort> msg2(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER2"),false, true)); std::unique_ptr<CMessageBoxVort> msg3(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER3"),false, true)); std::unique_ptr<CMessageBoxVort> msg4(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER4"),false, true)); std::unique_ptr<CMessageBoxVort> msg5(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER5"),false, true)); std::unique_ptr<CMessageBoxVort> msg6(new CMessageBoxVort(g_pBehaviorEngine->getString("EP3_MORTIMER6"),false, true)); mMessageBoxes.push_back(move(msg1)); mMessageBoxes.push_back(move(msg2)); mMessageBoxes.push_back(move(msg3)); mMessageBoxes.push_back(move(msg4)); mMessageBoxes.push_back(move(msg5)); mMessageBoxes.push_back(move(msg6)); g_pSound->playSound(SOUND_MORTIMER); } return true; }
void CGUIDialogSmartPlaylistRule::UpdateButtons() { // update the field control SendMessage(GUI_MSG_ITEM_SELECT, CONTROL_FIELD, m_rule.m_field); CGUIMessage msg2(GUI_MSG_ITEM_SELECTED, GetID(), CONTROL_FIELD); OnMessage(msg2); m_rule.m_field = (Field)msg2.GetParam1(); // and now update the operator set SendMessage(GUI_MSG_LABEL_RESET, CONTROL_OPERATOR); CONTROL_ENABLE(CONTROL_VALUE); if (CSmartPlaylistRule::IsFieldBrowseable(m_rule.m_field)) CONTROL_ENABLE(CONTROL_BROWSE); else CONTROL_DISABLE(CONTROL_BROWSE); std::vector< std::pair<std::string, int> > labels; switch (m_rule.GetFieldType(m_rule.m_field)) { case CDatabaseQueryRule::TEXT_FIELD: // text fields - add the usual comparisons labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_EQUALS)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_DOES_NOT_EQUAL)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_CONTAINS)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_DOES_NOT_CONTAIN)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_STARTS_WITH)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_ENDS_WITH)); break; case CDatabaseQueryRule::NUMERIC_FIELD: case CDatabaseQueryRule::SECONDS_FIELD: // numerical fields - less than greater than labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_EQUALS)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_DOES_NOT_EQUAL)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_GREATER_THAN)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_LESS_THAN)); break; case CDatabaseQueryRule::DATE_FIELD: // date field labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_AFTER)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_BEFORE)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_IN_THE_LAST)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_NOT_IN_THE_LAST)); break; case CDatabaseQueryRule::PLAYLIST_FIELD: CONTROL_ENABLE(CONTROL_BROWSE); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_EQUALS)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_DOES_NOT_EQUAL)); break; case CDatabaseQueryRule::BOOLEAN_FIELD: CONTROL_DISABLE(CONTROL_VALUE); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_TRUE)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_FALSE)); break; case CDatabaseQueryRule::TEXTIN_FIELD: labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_EQUALS)); labels.push_back(OperatorLabel(CDatabaseQueryRule::OPERATOR_DOES_NOT_EQUAL)); break; } SET_CONTROL_LABELS(CONTROL_OPERATOR, m_rule.m_operator, &labels); // check our operator is valid, and update if not CGUIMessage selected(GUI_MSG_ITEM_SELECTED, GetID(), CONTROL_OPERATOR); OnMessage(selected); m_rule.m_operator = (CDatabaseQueryRule::SEARCH_OPERATOR)selected.GetParam1(); // update the parameter edit control appropriately SET_CONTROL_LABEL2(CONTROL_VALUE, m_rule.GetParameter()); CGUIEditControl::INPUT_TYPE type = CGUIEditControl::INPUT_TYPE_TEXT; CDatabaseQueryRule::FIELD_TYPE fieldType = m_rule.GetFieldType(m_rule.m_field); switch (fieldType) { case CDatabaseQueryRule::TEXT_FIELD: case CDatabaseQueryRule::PLAYLIST_FIELD: case CDatabaseQueryRule::TEXTIN_FIELD: case CDatabaseQueryRule::NUMERIC_FIELD: type = CGUIEditControl::INPUT_TYPE_TEXT; break; case CDatabaseQueryRule::DATE_FIELD: if (m_rule.m_operator == CDatabaseQueryRule::OPERATOR_IN_THE_LAST || m_rule.m_operator == CDatabaseQueryRule::OPERATOR_NOT_IN_THE_LAST) type = CGUIEditControl::INPUT_TYPE_TEXT; else type = CGUIEditControl::INPUT_TYPE_DATE; break; case CDatabaseQueryRule::SECONDS_FIELD: type = CGUIEditControl::INPUT_TYPE_SECONDS; break; case CDatabaseQueryRule::BOOLEAN_FIELD: type = CGUIEditControl::INPUT_TYPE_NUMBER; break; } SendMessage(GUI_MSG_SET_TYPE, CONTROL_VALUE, type, 21420); }