⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oxnewtonbsp.pas

📁 Newton Game Dynamic 1.52 Delphi下基于GLScene的OpenGL游戏开发控件。功能非常强大和易于使用。 Advanced physics engine for re
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        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 + -