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.