📄 oxnewtonbsp.pas
字号:
procedure FClearItems; override;
function FIndexMax: integer; override;
public
property Items[const Key: string]: TObject read FGetItem write FSetItem; default;
destructor Destroy; override;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TDeformVertexes = Packed record
deformType: enDeformType;
values: array[0..7] of single;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TWaveFunc = Packed record
func: enWave;
base: Single;
amp : Single;
phase: Single;
freq: Single;
curStatus: single;
Direction: boolean;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TrgbGen = Packed record
rgbGType: enrgbGen;
Values: array[0..5] of single;
Wave: TWaveFunc;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
Ttcmod = Packed record
modType: entcmod;
Values: array[0..5] of single;
Wave: TWaveFunc;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TFogParam = Packed record
Red: single;
Green: single;
Blue: single;
Alpha: single;
blending: integer;
Distance: single;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TLayer = Packed record
TextureNames: array of string;
TextureId: array[0..7] of GLUINT;
numOfTextures: byte;
tcMods: array of Ttcmod;
numOftcMods: integer;
rgbGen: array of TrgbGen;
numOfrgbGen: integer;
animFreq: Single;
animFrameTime: integer;
doBlending: Boolean;
doAlphaTest: Boolean;
DepthWrite:Boolean;
DepthFunc: integer;
DestBlend: integer;
SrcBlend: integer;
AlphaFunc: integer;
AlphaRef: single;
alphaWave: TWaveFunc;
UseLightmap: boolean;
UseVertexColors: boolean;
curAnimStat: integer;
curTexture: integer;
curColor: array[0..3] of byte;
TexClamp: Boolean;
tcGen: enTcGen;
tcModScaleX: single;
tcModScaleY: single;
tcModStretchX: single;
tcModStretchY: single;
rgbFactor: single;
XOffset: single;
YOffset: single;
rotate: single;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TQ3FrustumArray = array[0..5, 0..3] of single;
TQ3Frustum = class( TObject )
private
mFrustum: TQ3FrustumArray;
public
procedure CalculateFrustum;
function PointInFrustum( x, y, z: single ): boolean;
function SphereInFrustum( x, y, z, radius: single ): boolean;
function CubeInFrustum( x, y, z, size: single ): boolean;
function BoxInFrustum( x, y, z, x2, y2, z2: single ): boolean;
procedure NormalizePlane( side: integer );
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXRGBA = array[0..3] of GLUbyte;
type
TBSPBoundingBox = record
min: TVector3f;
max: TVector3f;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPPosition = record
Position: TVector3f;
Angle: single;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPHeader = Packed record
strID: array[0..3] of char;
Version: integer;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPLump = record
Offset: integer;
Length: integer;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TUnknownEntities = record
Name: string;
Value: string;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TEntities = record
Classname: string;
Target: string;
Targetname: string;
Music: string;
Noise: string;
Model: string;
Model2: string;
Team: string;
MMessage: string;
FileName: string;
MoveTo: string;
EndTarget: string;
Parent: string;
TType: string;
TempTarget: string;
Spawnflags: integer;
Random: single;
Light: integer;
Wait: single;
NoBots: integer;
ParticleType: integer;
Origin: TVector3f;
OriginUsed: boolean;
CColor: TVector3f;
CColor2: TVector3f;
Angles: TVector3f;
Angle: single;
Roll: single;
Speed: single;
CloseSpeed: single;
MMinLight: single;
Lip: single;
Unknown_No: integer;
Unknowns: array of TUnknownEntities;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPVertex = Packed record
Position: TVector3f;
TextureCoord: TVector2f;
LightmapCoord: TVector2f;
Normal: TVector3f;
Color: array[0..3] of Byte
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPFace = Packed record
textureID: integer;
effect: integer;
FaceType: integer;
startVertIndex: integer;
numOfVerts: integer;
meshVertIndex: integer;
numMeshVerts: integer;
lightmapID: integer;
lMapCorner: array[0..1] of integer;
lMapSize: array[0..1] of integer;
lMapPos: TVector3f;
lMapVecs: array[0..1] of TVector3f;
Normal: TVector3f;
Size: array[0..1] of integer;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type POXBSPFace = ^TOXBSPFace;
type
TOXBSPQuadricPatch = Packed record
ControlPoints: array[0..8] of TOXBSPVertex;
Verts: array of TOXBSPVertex;
numOfVerts: integer;
Indx: array of cardinal;
meshIndex: array of cardinal;
numOfIndices: integer;
trianglesPerRow: array of integer;
rowIndexPointers: array of ^integer;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type TOXBSPQuadricPatchArray = array of TOXBSPQuadricPatch;
type
TOXQ3FileTexture = record
TextureName: array[0..63] of char;
flags: cardinal;
contents: cardinal;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPTextureInfo = Packed record
TextureName: string;
TextureId: cardinal;
surface: cardinal;
contents: cardinal;
ShaderId: integer;
Format: integer;
PicMip: boolean;
MipMap: boolean;
Clamp: boolean;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
POXBSPLightmap = ^TOXBSPLightmap;
TOXBSPLightmap = Packed record
imageBits: array[0..127, 0..127, 0..2] of byte;
end;
PCustomLightmapArray = ^TCustomLightmapArray;
TCustomLightmapArray = array [0..0] of TOXBSPLightmap;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type
TOXBSPNode = record
plane: integer;
front: integer;
back: integer;
min: TVector3i;
max: TVector3i;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type POXBSPNode = ^TOXBSPNode;
type
TOXBSPLeaf = record
cluster: integer;
area: integer;
min: TVector3i;
max: TVector3i;
leafface: integer;
numOfLeafFaces: integer;
leafBrush: integer;
numOfLeafBrushes: integer;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type POXBSPLeaf = ^TOXBSPLeaf;
type
TOXBSPPlane = record
Normal: TVector3f;
d: single;
end;
{******************************************************************************}
// [09/05/07]: TOXNewtonStaBSP last change by Dave Gravel.
{******************************************************************************}
type POXBSPPlane = ^TOXBSPPlane;
type
TOXBSPVisData = record
numOfClusters: integer;
bytesPerCluster: integer;
Bitsets: array of byte;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -