void cUOTxDrawObject::addEquipment( Q_UINT32 serial, Q_UINT16 model, Q_UINT8 layer, Q_UINT16 color ) { // Overwrite the last 4 bytes (terminator) and readd them later Q_INT32 offset = rawPacket.count() - 4; rawPacket.resize( rawPacket.count() + 9 ); setInt( offset, serial ); setShort( offset+4, (model|0x8000) ); rawPacket[offset+6] = layer; setShort( offset+7, color ); setInt( offset+9, 0 ); // Terminator }
void cUOTxSendSkills::addSkill( Q_UINT16 skillId, Q_UINT16 skill, Q_UINT16 realSkill, eStatus status ) { // Overwrite the last 2 bytes (terminator) and readd them later Q_INT32 offset = rawPacket.count() - 2; rawPacket.resize( rawPacket.count() + 7 ); setShort( 1, rawPacket.count() ); setShort( offset, skillId ); setShort( offset+2, skill ); setShort( offset+4, realSkill ); rawPacket[ offset+6 ] = status; setShort( offset+7, 0 ); // Terminator }
void cUOTxContextMenu::addEntry( Q_UINT16 textId, Q_UINT16 returnVal ) { Q_UINT32 offset = rawPacket.count(); if( rawPacket.count() > 8 ) { // Not the first entry anymore rawPacket.resize( offset + 6 ); setShort( offset, returnVal ); setShort( offset+2, textId ); setShort( offset+4, 0x0000 ); } else { // First entry rawPacket.resize( offset + 8 ); setShort( offset, returnVal ); setShort( offset+2, textId ); setShort( offset+4, 0x0020 ); setShort( offset+6, 0xFFFF ); } // Increase the item-count + the menu-length rawPacket[ 7 ]++; setShort( 1, rawPacket.count() ); }
void PipelineComposer::open() { setShort(true); // create server cross connection _clusterWindow->getNetwork()->connectAllGroupToPoint(clusterId(), "StreamSock"); // do not buffer any data for(UInt32 i=0 ; i <= serverCount() ; ++i) clusterWindow()->getNetwork()->getConnection(i)->forceDirectIO(); if(!_isClient) { // create barrier _lock = Lock::get("PipelineComposer"); // create barrier _barrier = Barrier::get("PipelineComposer"); _frameEndBarrier = Barrier::get("PipelineComposerFrameEnd"); // create writer thread _writer = BaseThread::get("PipelineComposer"); // start writer thread _writer->runFunction( writeProc, this ); } if(!_isClient && getPipelined()) { _composeBarrier = Barrier::get("PipelineComposerCompose"); // _composer = BaseThread::get("PipelineComposerCompose"); _composer = dynamic_cast<Thread *>(ThreadManager::the()->getThread(NULL)); _composer->runFunction( composeProc,0, this ); } #ifdef USE_NV_OCCLUSION glGenOcclusionQueriesNV(1, &_occlusionQuery); #endif }
void cUOTxShardList::addServer( Q_UINT16 serverIndex, QString serverName, Q_UINT8 serverFull, Q_INT8 serverTimeZone, Q_UINT32 serverIp ) { // Increase the server-count // Offset: 4 setShort( 4, getShort( 4 ) + 1 ); Q_INT32 offset = rawPacket.count(); rawPacket.resize( rawPacket.count() + 40 ); // 40 byte per server setShort( 1, rawPacket.count() ); setShort( offset, serverIndex ); if( serverName.length() > 31 ) serverName = serverName.left( 31 ); strcpy( &rawPacket.data()[ offset + 2 ], serverName.latin1() ); rawPacket[ offset + 34 ] = serverFull; rawPacket[ offset + 35 ] = serverTimeZone; setInt( offset + 36, serverIp ); }
void cUOTxUnicodeSpeech::setText( const QString &data ) { rawPacket.resize( 50 + (data.length()*2) ); Q_INT32 offset = 48; // Pad right by one - remeber to copy one byte less rawPacket[ offset ] = 0x00; memcpy( &rawPacket.data()[ offset + 1 ], data.unicode(), (data.length()*2)-1 ); // Add the new Terminator setShort( rawPacket.count() - 2, 0 ); }
void DataWatcher::read(PacketBuffer &buffer) { byte_t item, index; do { buffer.getByte(item); if (item == 0x7f) break; index = item & 0x1f; switch (item >> 5) { case BYTE: { byte_t b; buffer.getByte(b); setByte(index, b); break; } case SHORT: { short_t s; buffer.getShort(s); setShort(index, s); break; } case INT: { int_t i; buffer.getInt(i); setInt(index, i); break; } case FLOAT: { float_t f; buffer.getFloat(f); setFloat(index, f); break; } case STRING: { string_t str; buffer.getString(str); setString(index, str); break; } case ITEMSTACK: { std::shared_ptr<ItemStack> stack; buffer.getItemStack(stack); setItemStack(index, stack); break; } } } while (true); }
void cUOTxCharTownList::compile( void ) { rawPacket.resize( 309 + ( towns.size() * 63 ) ); rawPacket[ 0 ] = (Q_UINT8)0xA9; rawPacket[ 3 ] = characters.size(); // Char Count for( Q_UINT8 c = 0; c < 5; ++c ) if( c < characters.size() ) { strcpy( &rawPacket.data()[ 4 + ( c * 60 ) ], characters[ c ].latin1() ); rawPacket[ 4 + ( c * 60 ) + 30 ] = 0x00; // No Password (!) } else rawPacket[ 4 + ( c * 60 ) ] = 0x00; // "Pad-out" the char // Town Count Q_INT32 offset = 304; rawPacket[ offset++ ] = towns.size(); for( Q_UINT8 t = 0; t < towns.size(); ++t ) { rawPacket[ offset ] = towns[ t ].index; strcpy( &rawPacket.data()[ offset + 1 ], towns[ t ].town.latin1() ); strcpy( &rawPacket.data()[ offset + 32 ], towns[ t ].area.latin1() ); offset += 63; } if( charLimit >= 0 ) setInt( offset, ( charLimit << 4 ) | flags | 0x4 ); else setInt( offset, flags ); // New Packet Size setShort( 1, rawPacket.count() ); }
void PvObject::setShort(short value) { std::string key = PyPvDataUtility::getValueOrSingleFieldName(pvStructurePtr); setShort(key, value); }
Variant(short value) { setShort(value); }