-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDream3Display_Tipi.p
298 lines (258 loc) · 7.11 KB
/
Dream3Display_Tipi.p
1
unit Dream3Display_Tipi;{ Dimensione delle variabili globali: 195 }interfaceuses types, quickdraw;const SqElementCIcon = 8; SqMapHSize = 100; SqMapVSize = 100; SqElementResType = 'SqEl'; SqMapResType = 'SqMp'; Environment3DResType = '3DEn'; DisplayObjectResType = 'SqOb'; EnvironmentEventResType = 'EEvt'; LightSourceResType = 'LgSr'; LargeObjectResType = 'LgOb'; NPCObjectResType = 'NP3D'; SingleSqArrayResType = 'SSqE'; AnimatedTextureResType = 'ATxt'; DoorWallResType = 'Door'; EnvDataResType = 'EDta'; PosSetResType = 'PosS'; EnvironmentMapSize = 10; ObjectSides = 6; ObjectFrames = 4; VideoXEdge = 319; VideoYEdge = 199; BackgroundH = 360; BackgroundV = 100; BackgroundSize = 90; CIconMaxH = 63; MaxEvtFrames = 5; NAngles = 180; type DoublePoint = record h, v : longint; end; SqElement = record Id : integer; SqType : integer; SqCIcon : array [0..SqElementCIcon - 1] of integer; AlwaysFrontal : boolean; FullMask : boolean; Next : integer; MapCiconId : integer; Passable : boolean; Border : boolean; RelatedDoor : integer; R1 : integer; end; SqElementPtr = ^SqElement; SqElementHandle = ^SqElementPtr; DisplayObject = record Id : integer; ObType : integer; AnimFrames : integer; CurrentFrame : integer; FrameCIcon : array [1..ObjectSides, 1..ObjectFrames] of integer; LightSource : boolean; Reserved : boolean; lightH : integer; FramePtrs : array [1..ObjectSides, 1..ObjectFrames] of ptr; end; DisplayObjectPtr = ^DisplayObject; DisplayObjectHandle = ^DisplayObjectPtr; SqMap = array [1..SqMapVSize, 1..SqMapHSize] of integer; SqMapPtr = ^SqMap; SqMapHandle = ^SqMapPtr; SqMapR = record TheRect : rect; Data : array [1..1, 1..1] of integer; end; SqMapRPtr = ^SqMapR; SqMapRHandle = ^SqMapRPtr; Environment3D = record Id : integer; FloorPictId : integer; CeilingPictId : integer; GroundPictId : integer; GroundPict : pichandle; BackGroundRect : rect; BackGroundAmplitude : integer; AmplitudeOffSet : integer; StdWallHeight : integer; PlaceDim : integer; RayCastingDepth : longint; RayThroughDepth : integer; HorizonLine : integer; {*} SquareMapId : integer; ObjectMapId : integer; SquareMap : SqMapHandle; ObjectMap : SqMapHandle; MapHor : integer; MapVer : integer; OffScreenLab : cgrafptr; GroundGWorld : cgrafptr; MapGWorld : cgrafptr; FloorGWorld : cgrafptr; CeilingGWorld : cgrafptr; ScreenGWorld : cgrafptr; ViewPoint : DoublePoint; ViewAngle : integer; Speed : integer; CommonRect : rect; MapRect : rect; MaxLevels : integer; {*} MapSize : integer; MapPictId : integer; DiffuseLight : integer; LightIndex3, LightIndex2, LightIndex1 : integer; DisplayPaletteId : integer; DisplayPalette : ctabhandle; FadeKind : integer; FadeParameter : integer; DrawTheFloors : boolean; DrawTheCeilings : boolean; useFlare : boolean; reserved : boolean; ScreenMapGWorld : cgrafptr; FloorCicnID : integer; CeilingCicnID : integer; FractalIntensity : integer; WeatherId : integer; FloorMap : SqMapHandle; WaterChaos : integer; ShiftH : integer; ShiftV : integer; Clouds : boolean; MipMap : boolean; end; Environment3DPtr = ^Environment3D; Environment3DHandle = ^Environment3DPtr; EnvData = record ViewPoint : DoublePoint; ViewAngle : integer; end; EnvDataPtr = ^EnvData; EnvDataHandle = ^EnvDataPtr; EnvironmentEvent = record Id : integer; PosAngle : integer; ClutId : integer; AnimationFrames : integer; {*} Dimensions : rect; FramePICTId : array [1..MaxEvtFrames] of integer; FramePICTMaskId : array [1..MaxEvtFrames] of integer; FramePICT : array [1..MaxEvtFrames] of ptr; FramePICTMask : array [1..MaxEvtFrames] of ptr; CurrentFrame : integer; ThePos : integer; DiffuseLight : boolean; R1 : boolean; R2 : integer; end; EnvironmentEventPtr = ^EnvironmentEvent; EnvironmentEventHandle = ^EnvironmentEventPtr; LightSource = record Id : integer; Light100 : integer; Light66 : integer; Light33 : integer; end; LightSourcePtr = ^LightSource; LightSourceHandle = ^LightSourcePtr; LargeObject = record Id : integer; Kind : integer; Dimensions : rect; AnimationFrames : integer; PICTId : array [0..3] of integer; MaskPICTId : array [0..3] of integer; LightSource : boolean; LightIntensity : byte; PICT : array [0..3] of ptr; MaskPICT : array [0..3] of ptr; end; LargeObjectPtr = ^LargeObject; LargeObjectHandle = ^LargeObjectPtr; NPCObject = record Id : integer; RelatedTalk : integer; Dimensions : rect; Speed : integer; Direction : integer; Position : DoublePoint; Inertia : integer; MaxInertia : integer; ElAngles4Step : integer; IsGhost : boolean; R2 : boolean; LastTick : longint; CDistance : integer; MoveFrames : integer; MovePICT : array [1..ObjectSides, 0..5] of ptr; MoveMask : array [1..ObjectSides, 0..5] of ptr; hisHeight : integer; ActionFrames : integer; ActionPICT : array [0..5] of ptr; ActionMask : array [0..5] of ptr; MoveFrame : integer; ActionFrame : integer; LightSource : boolean; TalkOccurred : boolean; RelatedPath : integer; hisBase : integer; PathPtr : handle; end; NPCPtr = ^NPCObject; SingleSqElement = record Where : point; Id : integer; end; SSqElArray = array [0..50] of SingleSqElement; SSqElArrayPtr = ^SSqElArray; SSqElArrayHandle = ^SSqElArrayPtr; ATexture = record Frame : integer; IntervalTicks : integer; LastTick : longint; R1 : integer; NFrames : integer; CiconId : array [0..5] of integer; end; ATexturePtr = ^ATexture; ATextureHandle = ^ATexturePtr; DoorWall = record Id : integer; DoorCIconId : integer; BorderCIconId : integer; WallKind : integer; StartBy : integer; EndBy : integer; Angle : integer; NFrames : integer; CurrentFrame : integer; CloseTexture : integer; OpenTexture : integer; DoorTexture : integer; Open : boolean; R1 : boolean; R2 : integer; end; DoorWallPtr = ^DoorWall; DoorWallHandle = ^DoorWallPtr; PosSet = array [0..7] of point; PosSetPtr = ^PosSet; PosSetHandle = ^PosSetPtr; var Environment : Environment3D; WindowYCenter : integer; WindowXCenter : integer; EnvEvt : EnvironmentEvent; implementationend.