Advertisement
GerexD

GMLive memory leak

Jul 15th, 2022
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. if(live_call()) return live_result;
  2.  
  3. var gmx = device_mouse_x_to_gui(0);
  4. var gmy = device_mouse_y_to_gui(0);
  5.  
  6. /// The FPS decreases if I modify any value, so for example this 'anything' value which is not even referenced anywhere.
  7. var anything = 0;
  8.  
  9. if(!show_inventory){
  10. draw_set_font(fnt_text_12);
  11. draw_sprite_ext(spr_2022gui_inventory_hotbar,0,hotbar_x,hotbar_y,2,2,0,c_white,1);
  12. // If I comment out the loops after the modification, the FPS restores itself.
  13. var xx = 0; repeat(inv_width){
  14. var yy = 3;
  15.  
  16. var item_draw_x =items_begin_x+xx*36;
  17. var item_draw_y = hotbar_y-16;
  18.  
  19. if(interval(gmx, item_draw_x, item_draw_x+32) and interval(gmy, item_draw_y, item_draw_y+32)){
  20. selected_slot_gx = xx;
  21. selected_slot_gy = yy;
  22. }
  23.  
  24. var iitem = ds_inventory_item[# xx, yy];
  25. var iitem_scale = 1;
  26. if(selected_slot_gx == xx and selected_slot_gy == yy){
  27. iitem_scale = 1.1;
  28. }
  29. if(iitem != item.none){
  30. var sx = (iitem mod spr_items_columns)*cellSize;
  31. var sy = (iitem div spr_items_columns)*cellSize;
  32. draw_sprite_part_ext(
  33. spr_items,0,sx,sy,cellSize,cellSize,
  34. item_draw_x-((iitem_scale == 1.1)*2),item_draw_y,iitem_scale,iitem_scale,c_white,1
  35. );
  36. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1);
  37. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.25);
  38. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.5);
  39. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.75);
  40. }
  41. draw_text_transformed_color(item_draw_x+26,item_draw_y+3,string(xx+1),0.3,0.3,0,c_black,c_black,c_black,c_black,1);
  42. xx++;
  43. }
  44. exit;
  45. }
  46.  
  47. draw_set_alpha(0.4);
  48. draw_rectangle_color(-2,-2,gw+2,gh+2,c_black,c_black,c_black,c_black,0);
  49. draw_set_alpha(1);
  50. draw_sprite_ext(spr_2022gui_inventory_bg,0,gw/2,gh/2,2,2,0,c_white,1);
  51.  
  52. // Draw inventory grid on screen, opened inventory.
  53. draw_set_font(fnt_text_12);
  54.  
  55. selected_slot_gx = -1;
  56. selected_slot_gy = -1;
  57.  
  58. // If I comment out the loops after the modification, the FPS restores itself.
  59. var xx = 0; repeat(inv_width){
  60. var yy = 0; repeat(inv_height){
  61.  
  62. var hotbar_buff = 0;
  63. if(yy == 3){
  64. hotbar_buff = 28;
  65. }
  66.  
  67. var item_draw_x =items_begin_x+xx*36;
  68. var item_draw_y = items_begin_y+yy*36+hotbar_buff;
  69.  
  70. if(interval(gmx, item_draw_x, item_draw_x+32) and interval(gmy, item_draw_y, item_draw_y+32)){
  71. selected_slot_gx = xx;
  72. selected_slot_gy = yy;
  73. }
  74.  
  75. var iitem = ds_inventory_item[# xx, yy];
  76. var iitem_scale = 1;
  77. if(selected_slot_gx == xx and selected_slot_gy == yy){
  78. iitem_scale = 1.1;
  79. }
  80. if(iitem != item.none){
  81. var sx = (iitem mod spr_items_columns)*cellSize;
  82. var sy = (iitem div spr_items_columns)*cellSize;
  83. draw_sprite_part_ext(
  84. spr_items,0,sx,sy,cellSize,cellSize,
  85. item_draw_x-((iitem_scale == 1.1)*2),item_draw_y,iitem_scale,iitem_scale,c_white,1
  86. );
  87. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1);
  88. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.25);
  89. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.5);
  90. draw_text_outlined(item_draw_x+22,item_draw_y+22,c_black,c_white,string(ds_inventory_amount[# xx, yy]),0.4,1.75);
  91. }
  92. if(yy == 3){
  93. draw_text_transformed_color(item_draw_x+26,item_draw_y+3,string(xx+1),0.3,0.3,0,c_black,c_black,c_black,c_black,1);
  94. }
  95. yy++;
  96. }
  97. xx++;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement