Advertisement
xandersauce

sort_according

Feb 19th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///sort_according(obj,variable,ascending);
  2.  
  3. /*
  4.     This scripts stores all instances of a selected objects into an array and sorts them according to variable
  5.     Useful if you want to store drivers in a race game to find out who's 1st, 2nd, etc.
  6.  
  7.     argument0: object
  8.     argument1: string of the variable you want to check
  9.     argument2: boolean if true (123) if false (321)
  10. */
  11.  
  12. var length = instance_number(argument0);
  13. var counter = 0;
  14. var object_array, temp_array, bool, array;
  15.  
  16. //Store Instances
  17. for (var i = 0; i < length; i++)
  18. {
  19.     object_array[i] = instance_find(argument0,i);
  20.     bool[i] = true;
  21. }
  22.  
  23. //Sort By adding smallest values that haven't been picked yet one after the other
  24. repeat(length)
  25. {
  26.     var value = 999999999; //Really dumb, I would use array_max()+1, but I don't feel like it.
  27.     var index = 0;
  28.     for (var i = 0; i < length; i++)
  29.     {
  30.         if (variable_instance_get(object_array[i],argument1) < value)
  31.         {
  32.             if (bool[i])
  33.             {
  34.             value = variable_instance_get(object_array[i],argument1);
  35.             index = i;
  36.             }
  37.         }  
  38.     }
  39.     temp_array[counter] = object_array[index];
  40.     bool[index] = false;
  41.     counter++;
  42. }
  43.  
  44. //Ascending or Descending
  45. if (!argument2)
  46. {
  47.     for (var i = 0; i < array_length_1d(temp_array); i++)
  48.     {array[i] = temp_array[array_length_1d(temp_array)-1-i];}
  49. }
  50. else
  51. {array = temp_array;}
  52.  
  53. return array;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement