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 ); }
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 ); }
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 ); } } }