0) { switch ($tourney['status']) { case 0: sql_update($db['tourney_info'],"SET `status`=`status`+1 WHERE `id`='$tid'"); break; case 1: sql_update($db['tourney_info'],"SET `status`=`status`+1 WHERE `id`='$tid'"); break; case 2: sql_update($db['tourney_info'],"SET `status`=`status`+1 WHERE `id`='$tid'"); $result = sql_select($db['tourney_start'],"WHERE `tid`='$tid' AND `leader`='y' ORDER BY `seed`"); $i = 0; while ($row = sql_fetch($result)) { $i++; sql_update($db['tourney_start'],"SET `startnum`='$i' WHERE `tid`='$tid' AND `uid`='$row[uid]'"); } break; case 3: $starter = sql_get_count($db['tourney_start'],"WHERE `tid`='$tid' AND `leader`='y'"); switch ($tourney['tourney']) { case 'de': for ($maxstarter = 2; $maxstarter < $starter; $maxstarter = $maxstarter * 2) {} break; case 'se': for ($maxstarter = 2; $maxstarter < $starter; $maxstarter = $maxstarter * 2) {} break; default: $maxstarter = $starter; break; } sql_update($db['tourney_info'],"SET `status`=`status`+1,`maxstarter`='$maxstarter' WHERE `id`='$tid'"); break; case 4: sql_update($db['tourney_info'],"SET `status`=`status`+1 WHERE `id`='$tid'"); break; } } if ($status<0) { switch ($tourney['status']) { case 1: sql_update($db['tourney_info'],"SET `status`=`status`-1 WHERE `id`='$tid'"); break; case 2: sql_update($db['tourney_info'],"SET `status`=`status`-1 WHERE `id`='$tid'"); break; case 3: sql_update($db['tourney_info'],"SET `status`=`status`-1 WHERE `id`='$tid'"); break; // can't go backwards from '4' because if you would be able to do, that sometimes create some data chaos :-( case 5: sql_update($db['tourney_info'],"SET `status`=`status`-1 WHERE `id`='$tid'"); break; } } } function get_starter($tourney,$id) { global $cfg,$db,$cache,$_s_dummy; if (empty($cache['starter'][$tourney['id']][$id])) { if ($row = sql_get_row($db['tourney_start'],"WHERE `tid`='$tourney[id]' AND `uid`<>0 AND `startnum`='$id' AND `leader`='y'")) { if ($tourney['teamsize']<=1) { $usr = account_fetch_info($row['uid'],'id'); $name = $usr['nick']; } else { $name = $row['teamname']; } } else { $name = $_s_dummy; } $cache['starter'][$tourney['id']][$id] = $name; } else { $name = $cache['starter'][$tourney['id']][$id]; } return $name; } function get_tourney_tree($tourney) { global $cfg,$db,$cache,$finished; if (!($tourney['tourney'] == 'de' || $tourney['tourney'] == 'se')) { $field = FALSE; echo "UNABE TO USE THIS FUNCTION ON THAT TOURNEY TYPE"; } else { $c = array(); $field = array(); $rounds = log($tourney["maxstarter"]) / log(2); // generate start fields $x = 0; for ($y=1; $y<=($tourney['maxstarter']/2); $y++) { if ($tourney['status']<3) { $field[$x][($y*2-1)]['sid'] = ($y*2-1); $field[$x][($y*2)]['sid'] = ($y*2); } else { // create dummy entries if ($row = sql_get_row($db['tourney_start'],"WHERE `tid`='$tourney[id]' AND `uid`<>0 AND `startnum`='".($y*2-1)."' AND `leader`='y'")) { $field[$x][($y*2-1)]['sid'] = ($y*2-1); } else { $field[$x][($y*2-1)]['sid'] = -1; } if ($row = sql_get_row($db['tourney_start'],"WHERE `tid`='$tourney[id]' AND `uid`<>0 AND `startnum`='".($y*2)."' AND `leader`='y'")) { $field[$x][($y*2)]['sid'] = ($y*2); } else { $field[$x][($y*2)]['sid'] = -1; } } if ($field[$x][($y*2)-1]['sid']<0) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)]['sid']; $field[($x+1)*-2][$y]['sid'] = -1; } elseif ($field[$x][($y*2)]['sid']<0) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)-1]['sid']; $field[($x+1)*-2][$y]['sid'] = -1; } else { if ($row = sql_get_row($db['tourney_data'],"WHERE `tid`='$tourney[id]' AND `x`='$x' AND `y`='$y'")) { if ($row['p1s1'] == $row['p2s1']) { if ($row['p1s2'] > $row['p2s2']) { $row['p1s1']++; } if ($row['p1s2'] < $row['p2s2']) { $row['p2s1']++; } } if ($row['p1s1'] > $row['p2s1']) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)-1]['sid']; $field[($x+1)*-2][$y]['sid'] = $field[$x][($y*2)]['sid']; } if ($row['p1s1'] < $row['p2s1']) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)]['sid']; $field[($x+1)*-2][$y]['sid'] = $field[$x][($y*2)-1]['sid']; } $field[$x][($y*2-1)]['sc1'] = $row['p1s1']; $field[$x][($y*2-1)]['sc2'] = $row['p1s2']; $field[$x][($y*2)]['sc1'] = $row['p2s1']; $field[$x][($y*2)]['sc2'] = $row['p2s2']; } else { $finished = FALSE; } } } // winner area for ($x = 1; $x < $rounds; $x++) { for ($y = 1; $y <= ($tourney['maxstarter']/2)/pow(2,$x); $y++) { if ($field[$x][($y*2)-1]['sid']<0) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)]['sid']; $field[($x+0.5)*-2][($y*2)]['sid'] = -1; } elseif ($field[$x][($y*2)]['sid']<0) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)-1]['sid']; $field[($x+0.5)*-2][($y*2)]['sid'] = -1; } else { if ($row = sql_get_row($db['tourney_data'],"WHERE `tid`='$tourney[id]' AND `x`='$x' AND `y`='$y'")) { if ($row['p1s1'] == $row['p2s1']) { if ($row['p1s2'] > $row['p2s2']) { $row['p1s1']++; } if ($row['p1s2'] < $row['p2s2']) { $row['p2s1']++; } } if ($row['p1s1'] > $row['p2s1']) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)-1]['sid']; $field[($x+0.5)*-2][($y*2)]['sid'] = $field[$x][($y*2)]['sid']; } if ($row['p1s1'] < $row['p2s1']) { $field[($x+1)][$y]['sid'] = $field[$x][($y*2)]['sid']; $field[($x+0.5)*-2][($y*2)]['sid'] = $field[$x][($y*2)-1]['sid']; } $field[$x][($y*2-1)]['sc1'] = $row['p1s1']; $field[$x][($y*2-1)]['sc2'] = $row['p1s2']; $field[$x][($y*2)]['sc1'] = $row['p2s1']; $field[$x][($y*2)]['sc2'] = $row['p2s2']; } else { $finished = FALSE; } } } } if ($tourney['tourney']=='de') { // looser area for ($x = -1; $x > -1*$rounds; $x--) { for ($y = 1; $y <= ($tourney['maxstarter']/2)/pow(2,-$x); $y++) { if ($field[$x*2][($y*2)-1]['sid']<0) { $field[($x-0.5)*2][($y*2)-1]['sid'] = $field[$x*2][($y*2)]['sid']; } elseif ($field[$x*2][($y*2)]['sid']<0) { $field[($x-0.5)*2][($y*2)-1]['sid'] = $field[$x*2][($y*2)-1]['sid']; } else { if ($row = sql_get_row($db['tourney_data'],"WHERE `tid`='$tourney[id]' AND `x`='$x' AND `y`='$y'")) { if ($row['p1s1'] == $row['p2s1']) { if ($row['p1s2'] > $row['p2s2']) { $row['p1s1']++; } if ($row['p1s2'] < $row['p2s2']) { $row['p2s1']++; } } if ($row['p1s1'] > $row['p2s1']) { $field[($x-0.5)*2][($y*2)-1]['sid'] = $field[$x*2][($y*2)-1]['sid']; } if ($row['p1s1'] < $row['p2s1']) { $field[($x-0.5)*2][($y*2)-1]['sid'] = $field[$x*2][($y*2)]['sid']; } $field[$x*2][($y*2-1)]['sc1'] = $row['p1s1']; $field[$x*2][($y*2-1)]['sc2'] = $row['p1s2']; $field[$x*2][($y*2)]['sc1'] = $row['p2s1']; $field[$x*2][($y*2)]['sc2'] = $row['p2s2']; } else { $finished = FALSE; } } $x -= 0.5; if ($field[$x*2][($y*2)-1]['sid']<0) { $field[($x-0.5)*2][$y]['sid'] = $field[$x*2][($y*2)]['sid']; } elseif ($field[$x*2][($y*2)]['sid']<0) { $field[($x-0.5)*2][$y]['sid'] = $field[$x*2][($y*2)-1]['sid']; } else { if ($row = sql_get_row($db['tourney_data'],"WHERE `tid`='$tourney[id]' AND `x`='$x' AND `y`='$y'")) { if ($row['p1s1'] == $row['p2s1']) { if ($row['p1s2'] > $row['p2s2']) { $row['p1s1']++; } if ($row['p1s2'] < $row['p2s2']) { $row['p2s1']++; } } if ($row['p1s1'] > $row['p2s1']) { $field[($x-0.5)*2][$y]['sid'] = $field[$x*2][($y*2)-1]['sid']; } if ($row['p1s1'] < $row['p2s1']) { $field[($x-0.5)*2][$y]['sid'] = $field[$x*2][($y*2)]['sid']; } $field[$x*2][($y*2-1)]['sc1'] = $row['p1s1']; $field[$x*2][($y*2-1)]['sc2'] = $row['p1s2']; $field[$x*2][($y*2)]['sc1'] = $row['p2s1']; $field[$x*2][($y*2)]['sc2'] = $row['p2s2']; } else { $finished = FALSE; } } $x += 0.5; } } } } return $field; } ?>