Code: Select all
procedure TTheProbe.LoadLevel;
type
PCaveInfo = ^TCaveInfo;
TCaveInfo = record
CavePntr : PByte;
CaveSize : Integer;
Intermission: Boolean;
end;
const
cCave1: array[1..58] of Byte =
(
$01,$14,$0A,$0F,$0A,$0B,$0C,$0D,$0E,$0C,$0C,$0C,$0C,$0C,$96,$6E,
$46,$28,$1E,$08,$0B,$09,$D4,$20,$00,$10,$14,$00,$3C,$32,$09,$00,
$42,$01,$09,$1E,$02,$42,$09,$10,$1E,$02,$25,$03,$04,$04,$26,$12,
$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave2: array[1..98] of Byte =
(
$02,$14,$14,$32,$03,$00,$01,$57,$58,$0A,$0C,$09,$0D,$0A,$96,$6E,
$46,$46,$46,$0A,$04,$09,$00,$00,$00,$10,$14,$08,$3C,$32,$09,$02,
$42,$01,$08,$26,$02,$42,$01,$0F,$26,$02,$42,$08,$03,$14,$04,$42,
$10,$03,$14,$04,$42,$18,$03,$14,$04,$42,$20,$03,$14,$04,$40,$01,
$05,$26,$02,$40,$01,$0B,$26,$02,$40,$01,$12,$26,$02,$40,$14,$03,
$14,$04,$25,$12,$15,$04,$12,$16,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave3: array[1..48] of Byte =
(
$03,$00,$0F,$00,$00,$32,$36,$34,$37,$18,$17,$18,$17,$15,$96,$64,
$5A,$50,$46,$09,$08,$09,$04,$00,$02,$10,$14,$00,$64,$32,$09,$00,
$25,$03,$04,$04,$27,$14,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave4: array[1..84] of Byte =
(
$04,$14,$05,$14,$00,$6E,$70,$73,$77,$24,$24,$24,$24,$24,$78,$64,
$50,$3C,$32,$04,$08,$09,$00,$00,$10,$00,$00,$00,$14,$00,$00,$00,
$25,$01,$03,$04,$26,$16,$81,$08,$0A,$04,$04,$00,$30,$0A,$0B,$81,
$10,$0A,$04,$04,$00,$30,$12,$0B,$81,$18,$0A,$04,$04,$00,$30,$1A,
$0B,$81,$20,$0A,$04,$04,$00,$30,$22,$0B,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave5: array[1..144] of Byte =
(
$05,$14,$32,$5A,$00,$00,$00,$00,$00,$04,$05,$06,$07,$08,$96,$78,
$5A,$3C,$1E,$09,$0A,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$25,$01,$03,$04,$27,$16,$80,$08,$0A,$03,$03,$00,$80,$10,$0A,$03,
$03,$00,$80,$18,$0A,$03,$03,$00,$80,$20,$0A,$03,$03,$00,$14,$09,
$0C,$08,$0A,$0A,$14,$11,$0C,$08,$12,$0A,$14,$19,$0C,$08,$1A,$0A,
$14,$21,$0C,$08,$22,$0A,$80,$08,$10,$03,$03,$00,$80,$10,$10,$03,
$03,$00,$80,$18,$10,$03,$03,$00,$80,$20,$10,$03,$03,$00,$14,$09,
$12,$08,$0A,$10,$14,$11,$12,$08,$12,$10,$14,$19,$12,$08,$1A,$10,
$14,$21,$12,$08,$22,$10,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave6: array[1..154] of Byte =
(
$06,$14,$28,$3C,$00,$14,$15,$16,$17,$04,$06,$07,$08,$08,$96,
$78,$64,$5A,$50,$0E,$0A,$09,$00,$00,$10,$00,$00,$00,$32,$00,$00,
$00,$82,$01,$03,$0A,$04,$00,$82,$01,$06,$0A,$04,$00,$82,$01,$09,
$0A,$04,$00,$82,$01,$0C,$0A,$04,$00,$41,$0A,$03,$0D,$04,$14,$03,
$05,$08,$04,$05,$14,$03,$08,$08,$04,$08,$14,$03,$0B,$08,$04,$0B,
$14,$03,$0E,$08,$04,$0E,$82,$1D,$03,$0A,$04,$00,$82,$1D,$06,$0A,
$04,$00,$82,$1D,$09,$0A,$04,$00,$82,$1D,$0C,$0A,$04,$00,$41,$1D,
$03,$0D,$04,$14,$24,$05,$08,$23,$05,$14,$24,$08,$08,$23,$08,$14,
$24,$0B,$08,$23,$0B,$14,$24,$0E,$08,$23,$0E,$25,$03,$14,$04,$26,
$14,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave7: array[1..81] of Byte =
(
$07,$4B,$0A,$14,$02,$07,$08,$0A,$09,$0F,$14,$19,$19,$19,
$78,$78,$78,$78,$78,$09,$0A,$0D,$00,$00,$00,$10,$08,$00,$64,$28,
$02,$00,$42,$01,$07,$0C,$02,$42,$1C,$05,$0B,$02,$7A,$13,$15,$02,
$02,$14,$04,$06,$14,$04,$0E,$14,$04,$16,$14,$22,$04,$14,$22,$0C,
$14,$22,$16,$25,$14,$03,$04,$27,$07,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave8: array[1..96] of Byte =
(
$08,$14,$0A,$14,$01,$03,
$04,$05,$06,$0A,$0F,$14,$14,$14,$78,$6E,$64,$5A,$50,$02,$0E,$09,
$00,$00,$00,$10,$08,$00,$5A,$32,$02,$00,$14,$04,$06,$14,$22,$04,
$14,$22,$0C,$04,$00,$05,$25,$14,$03,$42,$01,$07,$0C,$02,$42,$01,
$0F,$0C,$02,$42,$1C,$05,$0B,$02,$42,$1C,$0D,$0B,$02,$43,$0E,$11,
$08,$02,$14,$0C,$10,$00,$0E,$12,$14,$13,$12,$41,$0E,$0F,$08,$02,
$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave9: array[1..76] of Byte =
(
$09,$14,$05,$0A,$64,$89,$8C,$FB,$33,$4B,$4B,$50,$55,$5A,$96,
$96,$82,$82,$78,$08,$04,$09,$00,$00,$10,$14,$00,$00,$F0,$78,$00,
$00,$82,$05,$0A,$0D,$0D,$00,$01,$0C,$0A,$82,$19,$0A,$0D,$0D,$00,
$01,$1F,$0A,$42,$11,$12,$09,$02,$40,$11,$13,$09,$02,$25,$07,$0C,
$04,$08,$0C,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave10: array[1..110] of Byte =
(
$0A,$14,$19,$3C,$00,$00,$00,$00,$00,$0C,$0C,$0C,
$0C,$0C,$96,$82,$78,$6E,$64,$06,$08,$09,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$25,$0D,$03,$04,$27,$16,$54,$05,$04,$11,$03,$54,
$15,$04,$11,$05,$80,$05,$0B,$11,$03,$08,$C2,$01,$04,$15,$11,$00,
$0D,$04,$C2,$07,$06,$0D,$0D,$00,$0D,$06,$C2,$09,$08,$09,$09,$00,
$0D,$08,$C2,$0B,$0A,$05,$05,$00,$0D,$0A,$82,$03,$06,$03,$0F,$08,
$00,$04,$06,$54,$04,$10,$04,$04,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave11: array[1..111] of Byte =
(
$0B,$14,$32,$00,$00,$04,$66,
$97,$64,$06,$06,$06,$06,$06,$78,$78,$96,$96,$F0,$0B,$08,$09,$00,
$00,$00,$10,$08,$00,$64,$50,$02,$00,$42,$0A,$03,$09,$04,$42,$14,
$03,$09,$04,$42,$1E,$03,$09,$04,$42,$09,$16,$09,$00,$42,$0C,$0F,
$11,$02,$42,$05,$0B,$09,$02,$42,$0F,$0B,$09,$02,$42,$19,$0B,$09,
$02,$42,$1C,$13,$0B,$01,$14,$04,$03,$14,$0E,$03,$14,$18,$03,$14,
$22,$03,$14,$04,$16,$14,$23,$15,$25,$14,$14,$04,$26,$11,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave12: array[1..115] of Byte =
(
$0C,$14,$14,$00,$00,$3C,$02,$3B,$66,$13,$13,$0E,$10,$15,$B4,$AA,$A0,
$A0,$A0,$0C,$0A,$09,$00,$00,$00,$10,$14,$00,$3C,$32,$09,$00,$42,
$0A,$05,$12,$04,$42,$0E,$05,$12,$04,$42,$12,$05,$12,$04,$42,$16,
$05,$12,$04,$42,$02,$06,$0B,$02,$42,$02,$0A,$0B,$02,$42,$02,$0E,
$0F,$02,$42,$02,$12,$0B,$02,$81,$1E,$04,$04,$04,$00,$08,$20,$05,
$81,$1E,$09,$04,$04,$00,$08,$20,$0A,$81,$1E,$0E,$04,$04,$00,$08,
$20,$0F,$25,$03,$14,$04,$27,$16,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave13: array[1..71] of Byte =
(
$0D,$8C,$05,$08,$00,$01,$02,
$03,$04,$32,$37,$3C,$46,$50,$A0,$9B,$96,$91,$8C,$06,$08,$0D,$00,
$00,$10,$00,$00,$00,$28,$00,$00,$00,$25,$12,$03,$04,$0A,$03,$3A,
$14,$03,$42,$05,$12,$1E,$02,$70,$05,$13,$1E,$02,$50,$05,$14,$1E,
$02,$C1,$05,$15,$1E,$02,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave14: array[1..99] of Byte =
(
$0E,$14,$0A,$14,$00,$00,$00,$00,$00,
$1E,$23,$28,$2A,$2D,$96,$91,$8C,$87,$82,$0C,$08,$09,$00,$00,$10,
$00,$00,$00,$00,$00,$00,$00,$81,$0A,$0A,$0D,$0D,$00,$70,$0B,$0B,
$0C,$03,$C1,$0C,$0A,$03,$0D,$C1,$10,$0A,$03,$0D,$C1,$14,$0A,$03,
$0D,$50,$16,$08,$0C,$02,$48,$16,$07,$0C,$02,$C1,$17,$06,$03,$04,
$C1,$1B,$06,$03,$04,$C1,$1F,$06,$03,$04,$25,$03,$03,$04,$27,$14,
$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave15: array[1..68] of Byte =
(
$0F,$08,$0A,$14,$01,$1D,$1E,$1F,$20,$0F,$14,$14,$19,$1E,$78,
$78,$78,$78,$8C,$08,$0E,$09,$00,$00,$00,$10,$08,$00,$64,$50,$02,
$00,$42,$02,$04,$0A,$03,$42,$0F,$0D,$0A,$01,$41,$0C,$0E,$03,$02,
$43,$0C,$0F,$03,$02,$04,$14,$16,$25,$14,$03,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave16: array[1..104] of Byte =
(
$10,$14,$0A,$14,
$01,$78,$81,$7E,$7B,$0C,$0F,$0F,$0F,$0C,$96,$96,$96,$96,$96,$09,
$0A,$09,$00,$00,$10,$00,$00,$00,$32,$00,$00,$00,$25,$01,$03,$04,
$27,$04,$81,$08,$13,$04,$04,$00,$08,$0A,$14,$C2,$07,$0A,$06,$08,
$43,$07,$0A,$06,$02,$81,$10,$13,$04,$04,$00,$08,$12,$14,$C2,$0F,
$0A,$06,$08,$43,$0F,$0A,$06,$02,$81,$18,$13,$04,$04,$00,$08,$1A,
$14,$81,$20,$13,$04,$04,$00,$08,$22,$14,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave17: array[1..69] of Byte =
(
$11,$14,$1E,$00,$0A,$0B,$0C,$0D,$0E,$06,$06,$06,$06,$06,$0A,$0A,
$0A,$0A,$0A,$0E,$02,$09,$00,$00,$00,$14,$00,$00,$FF,$09,$00,$00,
$87,$00,$02,$28,$16,$07,$87,$00,$02,$14,$0C,$00,$32,$0A,$0C,$10,
$0A,$04,$01,$0A,$05,$25,$03,$05,$04,$12,$0C,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave18: array[1..95] of Byte =
(
$12,$14,$0A,$00,$0A,$0B,$0C,$0D,$0E,
$10,$10,$10,$10,$10,$0F,$0F,$0F,$0F,$0F,$06,$0F,$09,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$87,$00,$02,$28,$16,$07,$87,$00,$02,
$14,$0C,$01,$50,$01,$03,$09,$03,$48,$02,$03,$08,$03,$54,$01,$05,
$08,$03,$50,$01,$06,$07,$03,$50,$12,$03,$09,$05,$54,$12,$05,$08,
$05,$50,$12,$06,$07,$05,$25,$01,$04,$04,$12,$04,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave19: array[1..71] of Byte =
(
$13,$04,$0A,
$00,$0A,$0B,$0C,$0D,$0E,$0E,$0E,$0E,$0E,$0E,$14,$14,$14,$14,$14,
$06,$08,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$87,$00,$02,
$28,$16,$07,$87,$00,$02,$14,$0C,$00,$54,$01,$0C,$12,$02,$88,$0F,
$09,$04,$04,$08,$25,$08,$03,$04,$12,$07,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCave20: array[1..86] of Byte =
(
$14,$03,$1E,$00,$00,
$00,$00,$00,$00,$06,$06,$06,$06,$06,$14,$14,$14,$14,$14,$06,$08,
$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$87,$00,$02,$28,$16,
$07,$87,$00,$02,$14,$0C,$01,$D0,$0B,$03,$03,$02,$80,$0B,$07,$03,
$06,$00,$43,$0B,$06,$03,$02,$43,$0B,$0A,$03,$02,$50,$08,$07,$03,
$03,$25,$03,$03,$04,$09,$0A,$FF,
$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff );
cCaves: array[1..20] of TCaveInfo = (
(CavePntr: @cCave1 ; CaveSize: SizeOf(cCave1 ); Intermission: False),
(CavePntr: @cCave2 ; CaveSize: SizeOf(cCave2 ); Intermission: False),
(CavePntr: @cCave3 ; CaveSize: SizeOf(cCave3 ); Intermission: False),
(CavePntr: @cCave4 ; CaveSize: SizeOf(cCave4 ); Intermission: False),
(CavePntr: @cCave5 ; CaveSize: SizeOf(cCave5 ); Intermission: False),
(CavePntr: @cCave6 ; CaveSize: SizeOf(cCave6 ); Intermission: False),
(CavePntr: @cCave7 ; CaveSize: SizeOf(cCave7 ); Intermission: False),
(CavePntr: @cCave8 ; CaveSize: SizeOf(cCave8 ); Intermission: False),
(CavePntr: @cCave9 ; CaveSize: SizeOf(cCave9 ); Intermission: False),
(CavePntr: @cCave10; CaveSize: SizeOf(cCave10); Intermission: False),
(CavePntr: @cCave11; CaveSize: SizeOf(cCave11); Intermission: False),
(CavePntr: @cCave12; CaveSize: SizeOf(cCave12); Intermission: False),
(CavePntr: @cCave13; CaveSize: SizeOf(cCave13); Intermission: False),
(CavePntr: @cCave14; CaveSize: SizeOf(cCave14); Intermission: False),
(CavePntr: @cCave15; CaveSize: SizeOf(cCave15); Intermission: False),
(CavePntr: @cCave16; CaveSize: SizeOf(cCave16); Intermission: False),
(CavePntr: @cCave17; CaveSize: SizeOf(cCave17); Intermission: True),
(CavePntr: @cCave18; CaveSize: SizeOf(cCave18); Intermission: True),
(CavePntr: @cCave19; CaveSize: SizeOf(cCave19); Intermission: True),
(CavePntr: @cCave20; CaveSize: SizeOf(cCave20); Intermission: True)
);
var
w,h,x,y: Integer;
c: AnsiChar;
sl: TStringList;
Obj: PEngineObject;
SentryData: TSentryData;
CaveDataStream: TMemoryStream;
CaveNumber: Integer;
begin
CaveDataStream := TMemoryStream.Create;
try
CaveNumber := 9;
CaveDataStream.Write(cCaves[CaveNumber].CavePntr^,cCaves[CaveNumber].CaveSize);
CaveDataStream.Seek(0,soFromBeginning);
FProbeEngine.LoadLevelFromBDCaveDataStream(CaveDataStream,1,cCaves[CaveNumber].Intermission);
finally
CaveDataStream.Free;
end;
end;