Das sieht soweit gut aus. Ja, Funktionsdatentypen sind richtig.
Ob das Record packed sein muss oder nicht ist schwer zu entscheiden. Das kann von den Projektoptionen des C++ Programms abhaengen.
Gleichfalls ob die Funktionen cdecl odeer stdcall brauchen. Eins von beiden brauchen sie. Da es nicht angegeben ist wuerde ich auf cdecl tippen.
Es ist auch angebracht die Funktionsdatentypen als Hilfstypen zu deklarieren.
Delphi-Quellcode:
type
HSPRITE = Integer;
SprLoadFunc = function(const szPicName: Pchar): HSPRITE; cdecl;
cl_enginefuncs_s = ^cl_enginefuncs_t;
cl_enginefuncs_t = packed record
pfnSprLoad : SprLoadFunc;
...
...
end;