Esempio n. 1
0
void CPROC AddDir( uintptr_t psv, CTEXTSTR name, int flags )
{
   name = StrDup( name );
   test1 = nRootLen1;
	test2 = nRootLen1;
	//lprintf( WIDE("Add Dir %s"), name );
   AddBinaryNode( tree1, (POINTER)name, (uintptr_t)name );
}
Esempio n. 2
0
void CPROC FindDir( uintptr_t psv,CTEXTSTR name, int flags )
{
	char *othername;
   name = StrDup( name );

   test1 = nRootLen2;
	test2 = nRootLen1;
   //bDoLog = 1;
   //lprintf( WIDE("Find Dir %s"), name );
	othername = (char*)FindInBinaryTree( tree1, (uintptr_t)name );
   test1 = nRootLen2;
   test2 = nRootLen2;
   //lprintf( WIDE("Add Dir %s"), name );
   AddBinaryNode( tree2, (POINTER)name, (uintptr_t)name );
	if( !othername )
      printf( WIDE("%s\n"), name );
}
Esempio n. 3
0
static void ChoosePrize( void )
{
	if( !ffl.prize_shuffle )
		ffl.prize_shuffle = CreateBinaryTree();
	else
		ResetBinaryTree( ffl.prize_shuffle );

	// reset down count
	ffl.current_down = 0;
	ffl.scoreboard.tick_draw = 0;

	if( ffl.flags.prize_line_mode )
	{
		uint32_t rand = genrand_int32( ffl.rng );
		uint32_t value = ( (uint64_t)ffl.prizes.total_lines * (uint64_t)rand ) / 0xFFFFFFFFU;
		int n;
		for( n = 0; n < ffl.prizes.number_lines; n++ )
		{
			if( value < ffl.prizes.lines[n].count )
			{
				int down;
				for( down = 0; down < ffl.prizes.lines[n].picks; down++ )
				{
					rand = genrand_int32( ffl.rng );
					AddBinaryNode( ffl.prize_shuffle, (POINTER)ffl.prizes.lines[n].payouts[down], (uintptr_t)rand );
				}
				for( down = 0; down < 4; down++ )
				{
					if( !down )
						ffl.prizes.prize_line.value[down] = (uint32_t)GetLeastNode( ffl.prize_shuffle );
					else
						ffl.prizes.prize_line.value[down] = (uint32_t)GetGreaterNode( ffl.prize_shuffle );
				}
				DeductPrizeLine( n );
				break;
			}
			else
				value -= ffl.prizes.lines[n].count;
		}
	}
	else
	{
		uint32_t rand;
		int square;
		int g = 0;
		int c = 0;
		for( square = 0; square < 32; square++ )
		{
			rand = genrand_int32( ffl.rng );
			AddBinaryNode( ffl.prize_shuffle, (POINTER)ffl.prizes.grid[g].value, (uintptr_t)rand );
			c++;
			if( c == ffl.prizes.grid[g].count )
			{
				c = 0;
				g++;
			}
		}
		for( square = 0; square < 32; square++ )
		{
			if( !square )
				ffl.prizes.grid_prizes[square].value = (uint32_t)GetLeastNode( ffl.prize_shuffle );
			else
				ffl.prizes.grid_prizes[square].value = (uint32_t)GetGreaterNode( ffl.prize_shuffle );
		}
	}
}