Example #1
0
//========================================================================
void APlatformActor::Tick(float DeltaSeconds)
{
	Super::Tick(DeltaSeconds);

	if (m_Target)
	{
		auto z = FVector(0, 0, 30);
		DrawDebugLine(GetWorld(), GetActorLocation() + z, m_Target->GetActorLocation() + z, FColor::Yellow, false, -1.f, 0, 1.3f);

		auto d = 40.0f;

		auto mypos = GetActorLocation();

		bool hasCompanion = std::any_of(Cont(gHexEditor->m_AllCompanions), [&](auto& c) { return FVector::Dist(mypos, c->GetActorLocation()) < d; });
		if (hasCompanion)
		{
			m_Target->Off();
			return;
		}

		auto dist = FVector::Dist(gHexGame->Dude->GetActorLocation(), GetActorLocation());
		if (dist < d)
		{
			m_Target->Off();
		}
	}
}
Example #2
0
int
loadcel()
{
unsigned int j,i,len,ptr;

	ffile = fopen(imagename,"r");
	if(ffile == NULL) {
	    printf("%s does not exist\n",imagename);
	    return (NULL);
	} else {
	    up(buf,(word)2,(word)0x10);
	    ptr = buf[0]+buf[1]*256;
	    i = getc(ffile);
	    j = getc(ffile);
	    len = i+j*256;
	    buf[0] = i;
	    buf[1] = j;
	    for(i=2;i<(len-2);i++) 
		buf[i] = getc(ffile);	    
	    fclose(ffile);
	    printf("%d\n",len);
	    down(buf,(word)len,(word)ptr);
	    buf[0] = 1;
	    down(buf,(word)1,(word)0x12);
	    Cont();
	}
}
std::vector<FieldContainerUnrecPtr> getAllContainersByDerivedType(const FieldContainerType *szType)
{
    std::vector<FieldContainerUnrecPtr> Result;

    const FieldContainerFactoryBase::ContainerStore &FCStore(	FieldContainerFactory::the()->getFieldContainerStore () );

    FieldContainerFactoryBase::ContainerStore::const_iterator FCStoreIter;
    FieldContainerFactoryBase::ContainerPtr Cont(NULL);
    for(FCStoreIter = FCStore.begin() ; FCStoreIter != FCStore.end() ; ++FCStoreIter)
    {
        if(*FCStoreIter != NULL)
        {
#ifdef OSG_MT_CPTR_ASPECT
            Cont = (*FCStoreIter)->getPtr();
#else
            Cont = *FCStoreIter;
#endif
        }
        else
        {
            Cont = NULL;
        }
        if( Cont != NULL && Cont->getType().isDerivedFrom(*szType) )
        {
            Result.push_back(Cont);
        }
    }
    return Result;
}
Example #4
0
int
put_a_sequence()
{
unsigned int put_sequence,ptr,j,k;

	display_existing_sequences();

        printf("\nSequence # to put >");
	fflush(stdin);
	gets(tempstr1);
	sscanf(tempstr1,"%d",&put_sequence);

	if (sequence_flag[put_sequence]==0) {
	    printf("\nThat sequence does not exist\n");
	    return;
	}

	up(buf,(word)2,(word)0x13);
	ptr = buf[0]+buf[1]*256;

	for(j=0;j<8;j++)
	    for(k=0;k<sequence_length;k++)
		buf[j*sequence_length+k] = sequence_data[put_sequence][j][k];

	for(j=0;j<8;j++)
		buf[8*sequence_length+j] = visible_flag[put_sequence][j];

	buf[8*sequence_length+8] = 1;		/* sequencer on */
	buf[8*sequence_length+9] = 255;		/* working cel = none */

	down(buf,(word)8*sequence_length+8+1+1,(word)ptr);

	Cont();
}
Example #5
0
int
get_a_sequence()
{
unsigned int get_sequence,ptr,j,k;

	display_existing_sequences();

        printf("\nSequence # to get >");
	fflush(stdin);
	gets(tempstr1);
	sscanf(tempstr1,"%d",&get_sequence);

	if (get_sequence<0 || get_sequence > max_sequences) {
	    printf("\nYou have selected an illegal sequence number\n");
	    return;
	}

	up(buf,(word)2,(word)0x13);
	ptr = buf[0]+buf[1]*256;
	up(buf,(word)8*sequence_length+8,(word)ptr);
	Cont();

	for(j=0;j<8;j++)
	    for(k=0;k<sequence_length;k++)
		sequence_data[get_sequence][j][k] = buf[j*sequence_length+k];

	for(j=0;j<8;j++)
		visible_flag[get_sequence][j] = buf[8*sequence_length+j];

	sequence_flag[get_sequence] = 1;
}
Example #6
0
/// Return external program pointer for program sign.
/// @note Expect @p prg is in @c externalProgram.
static inline
pm_ext_program get_ext_program(sc_addr prg)
{
	const Content *c = system_session->get_content_const(prg);
	if (c->type() == TCINT) {
		return reinterpret_cast<pm_ext_program>(Cont(*c).i);
	} else {
		return load_ext_program(prg);
	}
}
Example #7
0
        Cont to_container() const
        {
            if (pred)
            {
                Cont ret;
                std::copy_if(begin, end, std::inserter(ret, std::end(ret)), pred);
                return ret;
            }

            return Cont(begin, end);
        }
Example #8
0
int
savecel()
{
unsigned int i,len,ptr;

	ffile = fopen(imagename,"w");
	if(ffile == NULL) {
	    printf("%s does not exist\n",imagename);
	    return (NULL);
	} else {
	    printf("saving image \"%s\"\n",imagename);
	    up(buf,(word)2,(word)0x10);
	    ptr = buf[0]+buf[1]*256;
	    up(buf,(word)2,(word)ptr);
	    len = buf[0]+buf[1]*256;
	    printf("%d",len);
	    up(buf,(word)len,(word)ptr);
	    for(i=0;i<len;i++) 
	         putc(buf[i],ffile);
	    fclose(ffile);
	    Cont();
	}
}
void test(const Cont &)
{
  // Testing if all types are provided.

  typename Cont::value_type              t0;
  typename Cont::reference               t1 = t0;      CGAL_USE(t1);
  typename Cont::const_reference         t2 = t0;      CGAL_USE(t2);
  typename Cont::pointer                 t3 = &t0;
  typename Cont::const_pointer           t4 = &t0;     CGAL_USE(t4);
  typename Cont::size_type               t5 = 0;       CGAL_USE(t5);
  typename Cont::difference_type         t6 = t3-t3;   CGAL_USE(t6);
  typename Cont::iterator                t7;           CGAL_USE(t7);
  typename Cont::const_iterator          t8;           CGAL_USE(t8);
  typename Cont::reverse_iterator        t9;           CGAL_USE(t9);
  typename Cont::const_reverse_iterator  t10;          CGAL_USE(t10);
  typename Cont::allocator_type          t15;

  std::cout << "Testing empty containers." << std::endl;

  Cont c0, c1;
  Cont c2(t15);
  Cont c3(c2);
  Cont c4;
  c4 = c2;

  typedef std::vector<typename Cont::value_type> Vect;
  Vect v0;
  const Cont c5(v0.begin(), v0.end());
  Cont c6(c5.begin(), c5.end());
  typename Cont::allocator_type Al;
  Cont c7(c0.begin(), c0.end(), Al);
  Cont c8;
  c8.insert(c0.rbegin(), c0.rend());

  // test conversion iterator-> const_iterator.
  typename Cont::const_iterator t16 = c5.begin();  CGAL_USE(t16);
  assert(t16 == c5.begin());

  assert(c0 == c1);
  assert(! (c0 < c1));

  assert(check_empty(c0));
  assert(check_empty(c1));
  assert(check_empty(c2));
  assert(check_empty(c3));
  assert(check_empty(c4));
  assert(check_empty(c5));
  assert(check_empty(c6));
  assert(check_empty(c7));
  assert(check_empty(c8));

  c1.swap(c0);

  assert(check_empty(c0));
  assert(check_empty(c1));

  c1.merge(c0);

  assert(check_empty(c0));
  assert(check_empty(c1));

  typename Cont::allocator_type  t20 = c0.get_allocator();

  std::cout << "Now filling some containers" << std::endl;

  Vect v1(10000);
  Cont c9(v1.begin(), v1.end());

  assert(c9.size() == v1.size());
  assert(c9.max_size() >= v1.size());
  assert(c9.capacity() >= c9.size());

  Cont c10 = c9;

  assert(c10 == c9);
  assert(c10.size() == v1.size());
  assert(c10.max_size() >= v1.size());
  assert(c10.capacity() >= c10.size());

  c9.clear();

  assert(check_empty(c9));
  assert(c9.capacity() >= c9.size());
  assert(c0 == c9);

  c9.merge(c10);
  c10.swap(c9);

  assert(check_empty(c9));
  assert(c9.capacity() >= c9.size());

  assert(c10.size() == v1.size());
  assert(c10.max_size() >= v1.size());
  assert(c10.capacity() >= c10.size());

  std::cout << "Testing insertion methods" << std::endl;

  c9.assign(c10.begin(), c10.end());

  assert(c9 == c10);

  c10.assign(c9.begin(), c9.end());

  assert(c9 == c10);

  c9.insert(c10.begin(), c10.end());

  assert(c9.size() == 2*v1.size());

  c9.clear();

  assert(c9 != c10);

  c9.insert(c10.begin(), c10.end());

  assert(c9.size() == v1.size());
  assert(c9 == c10);


  typename Cont::iterator it = c9.iterator_to(*c9.begin());
  assert(it == c9.begin());
  typename Cont::const_iterator cit = c9.iterator_to(const_cast<typename Cont::const_reference>(*c9.begin()));
  assert(cit == c9.begin());

  typename Cont::iterator s_it = Cont::s_iterator_to(*c9.begin());
  assert(s_it == c9.begin());
  typename Cont::const_iterator s_cit = Cont::s_iterator_to(const_cast<typename Cont::const_reference>(*c9.begin()));
  assert(s_cit == c9.begin());


  c10 = Cont();

  assert(check_empty(c10));

  for(typename Vect::const_iterator it = v1.begin(); it != v1.end(); ++it)
    c10.insert(*it);

  assert(c10.size() == v1.size());
  assert(c9 == c10);

  c9.erase(c9.begin());
  c9.erase(c9.begin());

  assert(c9.size() == v1.size() - 2);

  // test reserve
  /*Cont c11;
  c11.reserve(v1.size());
  for(typename Vect::const_iterator it = v1.begin(); it != v1.end(); ++it)
    c11.insert(*it);
  
  assert(c11.size() == v1.size());
  assert(c10 == c11);*/

  // owns() and owns_dereferencable().
  for(typename Cont::const_iterator it = c9.begin(), end = c9.end(); it != end; ++it) {
    assert(c9.owns(it));
    assert(c9.owns_dereferencable(it));
    assert(! c10.owns(it));
    assert(! c10.owns_dereferencable(it));
  }
  assert(c9.owns(c9.end()));
  assert(! c9.owns_dereferencable(c9.end()));


  c9.erase(c9.begin(), c9.end());

  assert(check_empty(c9));
  
  std::cout << "Testing parallel insertion" << std::endl;
  {
  Cont c11;
  Vect v11(1000000);
  std::vector<typename Cont::iterator> iterators(v11.size());
  tbb::parallel_for(
    tbb::blocked_range<size_t>( 0, v11.size() ),
    Insert_in_CCC_functor<Vect, Cont>(v11, c11, iterators)
  );
  assert(c11.size() == v11.size());
  
  std::cout << "Testing parallel erasure" << std::endl;
  tbb::parallel_for(
    tbb::blocked_range<size_t>( 0, v11.size() ),
    Erase_in_CCC_functor<Cont>(c11, iterators)
  );
  assert(c11.empty());
  }

  std::cout << "Testing parallel insertion AND erasure" << std::endl;
  {
  Cont c12;
  Vect v12(1000000);
  std::vector<tbb::atomic<bool> > free_elements(v12.size());
  for(typename std::vector<tbb::atomic<bool> >::iterator 
    it = free_elements.begin(), end = free_elements.end(); it != end; ++it) 
  {
    *it = true;
  }
    
  tbb::atomic<unsigned int> num_erasures; 
  num_erasures = 0;
  std::vector<typename Cont::iterator> iterators(v12.size());
  tbb::parallel_for(
    tbb::blocked_range<size_t>( 0, v12.size() ),
    Insert_and_erase_in_CCC_functor<Vect, Cont>(
      v12, c12, iterators, free_elements, num_erasures)
  );
  assert(c12.size() == v12.size() - num_erasures);
  }
}
Example #10
0
main() {

	portstr = getenv("FASTPORT");
	if(portstr!=NULL) {
	    if(strlen(portstr)<3) {
		fprintf(stderr, "FASTPORT environment variable must be");
		fprintf(stderr, " form: c;p. c and p are numerals for card");
		fprintf(stderr, " and port respectively\n");
		return -1;
	    } else {
		card = portstr[0] - '0';
		port = portstr[2] - '0';
	    }
	}
	if(card<0 || card>=NCARDS) {
	    fprintf(stderr, "card number out of range\n");
            return -1;
	}
	if(port<0 || port>2) {
	    fprintf(stderr, "port number out of range\n");
	    return -1;
	}
	if(!Init(card, port)) {
	    fprintf(stderr, "Unable to access device\n");
	    Finish();
	    exit(-1);
	}

	getflag = 0;
	oldxoffset = 0;
	oldyoffset = 0;
	strcpy(imagename,"image.cel");
	xmax = 40;
	ymax = 25;
	while(1) {
	    printmenu();
	    gets(tempstr);
	    c = tempstr[0];
	    printf("\n");
	    if(c == 'i') {
		system("down -S < /u1/gg/bin/face64.out");
		newcel();
	    }
	    if(c == 'd') {
		system("ls -C *.cel | more");
	    }
	    if(c == '!') {
	        printf("Unix command >");
	 	fflush(stdin) ;
		gets(tempstr);
		printf("\n");
		system(tempstr);
		printf("\nhit return to continue");
		fflush(stdin);
		gets(tempstr);
	    }
	    if(c == 'h') {
		if(fopen("/u1/gg/bin/face.doc","r") == NULL) {
		    printf("\nHelp file not in /u1/gg/bin\n");
		} else {
		    system("more /u1/gg/bin/face.doc");	        
		}
	    }
	    if(c == 'l') {
		getimagename();
		loadcel();
	    }
	    if(c == 's') {
		getimagename();
		savecel();
	    }
	    if(c == 'n') {
		newcel();
	    }



	    if(c == 'r') {
		getsequencename();
		read_sequence_file();
		getflag = 0;
	    }

	    if(c == 'w') {
		getsequencename();
		write_sequence_file();
		getflag = 0;
	    }

	    if(c == 'g') {
		get_a_sequence();
		getflag = 1;
	    }

	    if(c == 'p') {
		put_a_sequence();
	    }


	    if(c == 'P') {
		buf[0] = 1;
		down(buf,(word)1,(word)0x15);
		Cont();
		system("sleep 1");
		ffile = fopen(".ptemp","w");
		putc(40,ffile);
		putc(14,ffile);
		putc(0,ffile);			/* black edges */
		putc(0,ffile);
		putc(0,ffile);
		putc(0,ffile);
		up(buf,(word)4480,(word)0xa000);	/* get bitmap */
		for(i=0;i<4480;i++) putc(buf[i],ffile);
		for(i=0;i<560;i++) putc(0xde,ffile);	/* pink/blue */
		for(i=0;i<560;i++) putc(0x01,ffile);	/* gray bkgrnd */
		fclose(ffile);
		system("pixit < .ptemp | lpr &");
		buf[0] = 0;
		down(buf,(word)1,(word)0x15);
		Cont();	
	    }

	    if(c == 'q') {
		if (getflag) {
		    printf("sequences not written. Quit? (y/n)");
		    gets(tempstr);
		    c = tempstr[0];
		    printf("\n");
		    if (c == 'y') {
	 		exit(0);
		    }
		} else {
		    exit(0);
		}
	    }
	}
}