Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. enum RacerData
  2. {
  3. id,
  4. cp_passed,
  5. distance_next,
  6. }
  7.  
  8. new PlayerRacers[MAX_PLAYERS][RacerData];
  9.  
  10. DummyData()
  11. {
  12. for (new i=0;i<MAX_PLAYERS;i++)
  13. {
  14. PlayerRacers[i][id] = i;
  15. PlayerRacers[cp_passed] = i * 2;
  16. PlayerRacers[distance_next] = i * 100 / 3;
  17. }
  18. }
  19.  
  20.  
  21.  
  22. SortRacers()
  23. {
  24. new i, j, max_index, temp_id, temp_cp, temp_dist;
  25.  
  26. //CP Sort
  27. for (i=0;i<MAX_PLAYERS;i++)
  28. {
  29. max_index = i;
  30. for (j=i+1;j<MAX_PLAYERS;j++)
  31. {
  32. if (PlayerRacers[max_index][cp_passed] > PlayerRacers[j][cp_passed]
  33. {
  34. max_index = j;
  35. }
  36. }
  37. if (max_index == i)
  38. continue; //nothing to do
  39. //temporary data
  40. temp_cp = PlayerRacers[i][cp_passed];
  41. temp_dist = PlayerRacers[i][distance_next];
  42. temp_id = PlayerRacers[i][id];
  43.  
  44. //Shift 'id'
  45. PlayerRacers[i][id] = PlayerRacers[max_index][id];
  46. PlayerRacers[max_index][id] = temp_id;
  47.  
  48. //Shift 'cp_passed'
  49. PlayerRacers[i][cp_passed] = PlayerRacers[max_index][cp_passed];
  50. PlayerRacers[max_index][cp_passed] = temp_cp;
  51.  
  52. //Shift 'distance_next'
  53. PlayerRacers[i][distance_next] = PlayerRacers[max_index][distance_next];
  54. PlayerRacers[max_index][distance_next] = temp_dist;
  55. }
  56.  
  57. //Distance sort
  58. for (i=0;i<MAX_PLAYERS;i++)
  59. {
  60. //Only need 3
  61. if (i > 2) break;
  62. max_index = i;
  63. for (j=i+1;j<MAX_RACERS;j++)
  64. {
  65. if (PlayerRacers[max_index][cp_passed] == PlayerRacers[j][cp_passed])
  66. {
  67. if (PlayerRacers[max_index][distance_next] < PlayerRacers[j][distance_next])
  68. {
  69. max_index = j;
  70. }
  71. }
  72. }
  73. if (max_index == i)
  74. continue; //nothing to do
  75. //temporary data
  76. temp_cp = PlayerRacers[i][cp_passed];
  77. temp_dist = PlayerRacers[i][distance_next];
  78. temp_id = PlayerRacers[i][id];
  79.  
  80. //Shift 'id'
  81. PlayerRacers[i][id] = PlayerRacers[max_index][id];
  82. PlayerRacers[max_index][id] = temp_id;
  83.  
  84. //Shift 'cp_passed'
  85. PlayerRacers[i][cp_passed] = PlayerRacers[max_index][cp_passed];
  86. PlayerRacers[max_index][cp_passed] = temp_cp;
  87.  
  88. //Shift 'distance_next'
  89. PlayerRacers[i][distance_next] = PlayerRacers[max_index][distance_next];
  90. PlayerRacers[max_index][distance_next] = temp_dist;
  91.  
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement