Esempio n. 1
0
void EntityPlayer::spawn(NetworkOut& rOut) {
	/* Spawn packet */
	try{
		rOut.addByte(0x14);
		rOut.addInt(_iEntityID);
		rOut.addString(_sName);
		rOut.addInt(int(floor(Coordinates.X * 32.0)));
		rOut.addInt(int(floor(Coordinates.Y * 32.0)));
		rOut.addInt(int(floor(Coordinates.Z * 32.0)));
		rOut.addByte(char((Coordinates.Yaw * 256.0F) / 360.0F));
		rOut.addByte(char((Coordinates.Pitch * 256.0F) / 360.0F));

		rOut.addShort(_vpHeld[0] == NULL || _vpHeld[0]->isEmpty() ? 0 : _vpHeld[0]->getItem().first);
		appendMetadata(rOut);
		rOut.Finalize(FC_QUEUE_HIGH);

		sendEquipment(rOut);
		
	}catch(FCException& ex) {
		ex.rethrow();
	}
}
Esempio n. 2
0
void TMetaFormatManager::sessionParseMetaData ( DIM_UINT page ) {
  if (got_meta_for_session == page) return;

  tagList = sessionReadMetaData(page, -1, -1, -1);
  got_meta_for_session = page;

  char *meta_char = sessionGetTextMetaData();
  if (meta_char) {
    meta_data_text = meta_char;
    delete meta_char;
  }

  // API v1.7: first check if format has appand metadata function, if yes, run
  if (session_active && sessionFormatIndex>=0 && sessionFormatIndex<formatList.size()) {
    TDimFormatHeader *selectedFmt = formatList.at( sessionFormatIndex );
    if (selectedFmt->appendMetaDataProc)
      selectedFmt->appendMetaDataProc ( &sessionHandle, &metadata );
  }

  // All following will only be inserted if tags do not exist

  appendMetadata( bim::IMAGE_FORMAT, this->sessionGetFormatName() );
  if ( this->imaging_time != "0000-00-00 00:00:00" )   
    appendMetadata( bim::IMAGE_DATE_TIME, this->imaging_time );
  
  if ( this->getPixelSizeX() > 0 ) {
    appendMetadata( bim::PIXEL_RESOLUTION_X, this->getPixelSizeX() );
    appendMetadata( bim::PIXEL_RESOLUTION_UNIT_X, bim::PIXEL_RESOLUTION_UNIT_MICRONS );
  }

  if ( this->getPixelSizeY() > 0 ) {
    appendMetadata( bim::PIXEL_RESOLUTION_Y, this->getPixelSizeY() );
    appendMetadata( bim::PIXEL_RESOLUTION_UNIT_Y, bim::PIXEL_RESOLUTION_UNIT_MICRONS );
  }

  if ( this->getPixelSizeZ() > 0 ) {
    appendMetadata( bim::PIXEL_RESOLUTION_Z, this->getPixelSizeZ() );
    appendMetadata( bim::PIXEL_RESOLUTION_UNIT_Z, bim::PIXEL_RESOLUTION_UNIT_MICRONS );
  }

  if ( this->getPixelSizeT() > 0 ) {
    appendMetadata( bim::PIXEL_RESOLUTION_T, this->getPixelSizeT() );
    appendMetadata( bim::PIXEL_RESOLUTION_UNIT_T, bim::PIXEL_RESOLUTION_UNIT_SECONDS );
  }

  // -------------------------------------------------------
  // Image info

  appendMetadata( bim::IMAGE_NUM_X, (int) info.width );
  appendMetadata( bim::IMAGE_NUM_Y, (int) info.height );
  appendMetadata( bim::IMAGE_NUM_Z, (int) info.number_z );
  appendMetadata( bim::IMAGE_NUM_T, (int) info.number_t );
  appendMetadata( bim::IMAGE_NUM_C, (int) info.samples );
  appendMetadata( bim::IMAGE_NUM_P, (int) info.number_pages );
  appendMetadata( bim::PIXEL_DEPTH, (int) info.depth );

  for (unsigned int i=0; i<channel_names.size(); ++i) {
    xstring tag_name;
    tag_name.sprintf( bim::CHANNEL_NAME_TEMPLATE.c_str(), i );
    appendMetadata( tag_name.c_str(), channel_names[i].c_str() );
  }

  for (int i=0; i<(int)dim::min<size_t>(display_lut.size(), display_channel_tag_names.size()); ++i)
    appendMetadata( display_channel_tag_names[i], display_lut[i] );

  // hack towards new system: in case the format loaded all data directly into the map, refresh static values
  fill_static_metadata_from_map();
}