index 174769b68f578edcece9a7b3f17964a8328df372..c12cbbbb44bfcdc446cd92f9ace3f041fe98fee1 100644 (file)
var
r_Common_ProcessLoadingCallback: TProcedure;
+ procedure r_Common_FreeAndNil (var obj);
+ procedure r_Common_FreeMemAndNil (var p);
+
function r_Common_LoadThis (const name: AnsiString; var here: THereTexture): Boolean;
procedure r_Common_FreeThis (var here: THereTexture);
var
BackgroundTexture: THereTexture;
+ procedure r_Common_FreeAndNil (var obj);
+ var temp: TObject;
+ begin
+ temp := TObject(obj);
+ Pointer(obj) := nil;
+ if temp <> nil then
+ temp.Free;
+ end;
+
+ procedure r_Common_FreeMemAndNil (var p);
+ var temp: Pointer;
+ begin
+ temp := Pointer(p);
+ Pointer(p) := nil;
+ if temp <> nil then
+ FreeMem(temp)
+ end;
+
procedure r_Common_GetObjectPos (const obj: TObj; out x, y: Integer);
var fx, fy: Integer;
begin
procedure r_Common_FreeThis (var here: THereTexture);
begin
here.name := '';
- if here.id <> nil then
- here.id.Free;
- here.id := nil;
+ r_Common_FreeAndNil(here.id);
end;
function r_Common_LoadThis (const name: AnsiString; var here: THereTexture): Boolean;
procedure r_Common_Free;
begin
r_Common_FreeThis(BackgroundTexture);
- menufont.Free;
- smallfont.Free;
- stdfont.Free;
+ FreeAndNil(menufont);
+ FreeAndNil(smallfont);
+ FreeAndNil(stdfont);
end;
(* --------- Loading screen helpers --------- *)