B
Bird Man
Guest
So I am making a turn based rts game in space. The following script is what I use to draw the planets and there is a memory leak somewhere in it:
You can see that I delete all the newly created sprites and free the surfaces at the end so I don't know what is the cause.
If anyone could help it would be greatly appreciated.
Code:
//dr_planet(ground,ocean,poles,atmos,dir,rot_spd,size);
var col_g = argument0;
var col_o = argument1;
var col_p = argument2;
var col_a = argument3;
var dir = argument4;
var rot = argument5;
var size =argument6;
var pc = surface_create(64,64); //
var pf = surface_create(64,64); //
if surface_exists(pc) and surface_exists(pf) {
surface_set_target(pc);
draw_sprite_ext(spr_ground,0,ix,0,1,1,0,col_g,1);
draw_sprite_ext(spr_ground,0,ix-128,0,1,1,0,col_g,1);
draw_sprite_ext(spr_amap,0,ix,iy,1,1,0,col_o,1);
draw_sprite_ext(spr_amap,0,ix-128,iy,1,1,0,col_o,1);
draw_sprite_ext(spr_poles,0,64/2,-54,.5,.5,45*ix/128,col_p,1);
draw_sprite_ext(spr_poles,0,64/2,64+54,.5,.5,-45*ix/128,col_p,1);
b = sprite_create_from_surface(pc,0,0,64,64,false,false,32,32); //
surface_reset_target();
var m = sprite_duplicate(spr_mask); //
sprite_set_alpha_from_sprite(b,m);
surface_set_target(pf);
draw_sprite(b,0,32,32);
draw_sprite_ext(spr_shadow,0,32,32,1.1,1.1,0,c_white,1);
surface_reset_target();
p = sprite_create_from_surface(pf,0,0,64,64,false,false,32,32); //
draw_sprite_ext(p,0,x,y,size/64,size/64,image_angle,c_white,1);
draw_sprite_ext(spr_atmos,0,x,y,size/85.33,size/85.33,image_angle,col_a,1);
ix += rot;
image_angle += .01;
if ix>128 {ix -= 128;}
sprite_delete(m);
sprite_delete(b);
sprite_delete(p);
}
surface_free(pf);
surface_free(pc);
If anyone could help it would be greatly appreciated.