Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum RacerData
- {
- id,
- cp_passed,
- distance_next,
- }
- new PlayerRacers[MAX_PLAYERS][RacerData];
- DummyData()
- {
- for (new i=0;i<MAX_PLAYERS;i++)
- {
- PlayerRacers[i][id] = i;
- PlayerRacers[cp_passed] = i * 2;
- PlayerRacers[distance_next] = i * 100 / 3;
- }
- }
- SortRacers()
- {
- new i, j, max_index, temp_id, temp_cp, temp_dist;
- //CP Sort
- for (i=0;i<MAX_PLAYERS;i++)
- {
- max_index = i;
- for (j=i+1;j<MAX_PLAYERS;j++)
- {
- if (PlayerRacers[max_index][cp_passed] > PlayerRacers[j][cp_passed]
- {
- max_index = j;
- }
- }
- if (max_index == i)
- continue; //nothing to do
- //temporary data
- temp_cp = PlayerRacers[i][cp_passed];
- temp_dist = PlayerRacers[i][distance_next];
- temp_id = PlayerRacers[i][id];
- //Shift 'id'
- PlayerRacers[i][id] = PlayerRacers[max_index][id];
- PlayerRacers[max_index][id] = temp_id;
- //Shift 'cp_passed'
- PlayerRacers[i][cp_passed] = PlayerRacers[max_index][cp_passed];
- PlayerRacers[max_index][cp_passed] = temp_cp;
- //Shift 'distance_next'
- PlayerRacers[i][distance_next] = PlayerRacers[max_index][distance_next];
- PlayerRacers[max_index][distance_next] = temp_dist;
- }
- //Distance sort
- for (i=0;i<MAX_PLAYERS;i++)
- {
- //Only need 3
- if (i > 2) break;
- max_index = i;
- for (j=i+1;j<MAX_RACERS;j++)
- {
- if (PlayerRacers[max_index][cp_passed] == PlayerRacers[j][cp_passed])
- {
- if (PlayerRacers[max_index][distance_next] < PlayerRacers[j][distance_next])
- {
- max_index = j;
- }
- }
- }
- if (max_index == i)
- continue; //nothing to do
- //temporary data
- temp_cp = PlayerRacers[i][cp_passed];
- temp_dist = PlayerRacers[i][distance_next];
- temp_id = PlayerRacers[i][id];
- //Shift 'id'
- PlayerRacers[i][id] = PlayerRacers[max_index][id];
- PlayerRacers[max_index][id] = temp_id;
- //Shift 'cp_passed'
- PlayerRacers[i][cp_passed] = PlayerRacers[max_index][cp_passed];
- PlayerRacers[max_index][cp_passed] = temp_cp;
- //Shift 'distance_next'
- PlayerRacers[i][distance_next] = PlayerRacers[max_index][distance_next];
- PlayerRacers[max_index][distance_next] = temp_dist;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement