It's actually the same as what we have now.. Slight difference in syntax, can be made case sensitive if you like..
Pointers are allowed. Infact, I'm currently experimenting with it too. It's basically full blown pascal backend rather than pascal script. You have more data types, etc.
Thus sometimes there can be byte problems, etc.. but aside from that, you can literally do what you currently do + more.
Example you can do:
Simba Code:
{$loadlib GLHook}
type Compass = record
Found: Boolean;
VertexCount: Integer;
VX, VY: Array [0..4] Of Single;
DegreeAngle: Single;
RadianAngle: Single;
end;
type pComp = ^Compass;
var
Ptr: Pointer;
Comp: pComp;
begin
ClearDebug;
Ptr := GLHTest;
PComp := Ptr;
writeln(PComp^.VertexCount);
end.
That's pointer arithmentics there inorder to access a class via a pointer to it. Where type Pointer = void*.
Now that's a bit complicated for an explanation but you don't have to actually use that. It's the same as what you currently use.
Just an example.