Files

31 lines
1.7 KiB
ObjectPascal
Raw Permalink Normal View History

2026-09-12 16:50:30 +05:00
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.