32 lines
1.7 KiB
ObjectPascal
32 lines
1.7 KiB
ObjectPascal
unit ProbeImports;
|
|
{$mode delphi}{$H+}
|
|
interface
|
|
uses ProbeReport;
|
|
procedure RunUpstreamChecks(R:TProbeReport);
|
|
implementation
|
|
uses SysUtils ,KM_CommonTypes, KM_Points, KM_CommonClasses, KM_MissionScript_Info, KM_TerrainUtils, KM_ResSprites, KM_Terrain, KM_MissionScript_Standard, KM_Game, KM_ScriptingEvents;
|
|
procedure RunUpstreamChecks(R:TProbeReport);
|
|
var P,Q:TKMPoint;
|
|
S:TKMemoryStreamBinary; I:Integer; U:UnicodeString;
|
|
begin
|
|
R.Add('upstream.imports','PASS','Real imported units initialized: KM_CommonTypes, KM_Points, KM_CommonClasses, KM_MissionScript_Info, KM_TerrainUtils, KM_ResSprites, KM_Terrain, KM_MissionScript_Standard, KM_Game, KM_ScriptingEvents; this does not execute a game world');
|
|
try
|
|
P:=KMPoint(17,-3); Q:=KMPointRight(P);
|
|
R.Check('core.points',(P.X=17) and (P.Y=-3) and (Q.X=18) and (Q.Y=-3),
|
|
'Calls original KMPoint / KMPointRight, not a local replacement');
|
|
R.Check('core.point_layout',(SizeOf(TKMPoint)=8) and (SizeOf(TKMPointF)=8),
|
|
Format('TKMPoint=%d TKMPointF=%d',[SizeOf(TKMPoint),SizeOf(TKMPointF)]));
|
|
except on E:Exception do R.Add('core.points','FAIL',E.ClassName+': '+E.Message);end;
|
|
try
|
|
S:=TKMemoryStreamBinary.Create;
|
|
try
|
|
S.Write(Integer(123456)); S.Write(P); S.WriteW(UnicodeString('KaM Android'));
|
|
S.Position:=0; S.Read(I); S.Read(Q); S.ReadW(U);
|
|
R.Check('core.stream_roundtrip',(I=123456) and (Q.X=P.X) and (Q.Y=P.Y)
|
|
and (U=UnicodeString('KaM Android')) and (S.Position=S.Size),
|
|
'Calls original TKMemoryStreamBinary Read/Write/ReadW/WriteW');
|
|
finally S.Free;end;
|
|
except on E:Exception do R.Add('core.stream_roundtrip','FAIL',E.ClassName+': '+E.Message);end;
|
|
end;
|
|
end.
|