//************************************************************************** //** //** ## ## ## ## ## #### #### ### ### //** ## ## ## ## ## ## ## ## ## ## #### #### //** ## ## ## ## ## ## ## ## ## ## ## ## ## ## //** ## ## ######## ## ## ## ## ## ## ## ### ## //** ### ## ## ### ## ## ## ## ## ## //** # ## ## # #### #### ## ## //** //** $Id: Level.vc 2394 2007-06-27 21:21:24Z dj_jl $ //** //** Copyright (C) 1999-2006 Jānis Legzdiņš //** //** This program is free software; you can redistribute it and/or //** modify it under the terms of the GNU General Public License //** as published by the Free Software Foundation; either version 2 //** of the License, or (at your option) any later version. //** //** This program is distributed in the hope that it will be useful, //** but WITHOUT ANY WARRANTY; without even the implied warranty of //** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //** GNU General Public License for more details. //** //************************************************************************** class Level : Object native; native readonly name MapName; // Flags. native readonly private bool bForServer; // True if this level belongs to the server. native readonly bool bExtended; // True if level was in Hexen format. native readonly private bool bGLNodesV5; // True if using version 5 GL nodes. // // MAP related Lookup tables. // Store VERTEXES, LINEDEFS, SIDEDEFS, etc. // native readonly int NumVertexes; native readonly TVec* Vertexes; native readonly int NumSectors; native readonly sector_t* Sectors; native readonly int NumSides; native readonly side_t* Sides; native readonly int NumLines; native readonly line_t* Lines; native readonly private int NumSegs; native readonly private void* Segs; native readonly private int NumSubsectors; native readonly private void* Subsectors; native readonly private int NumNodes; native readonly private void* Nodes; native readonly private void* VisData; native readonly private void* NoVis; // !!! Used only during level loading native readonly int NumThings; native readonly mthing_t* Things; native readonly private void* BlockMapLump; native readonly private void* BlockMap; native readonly private int BlockMapWidth; native readonly private int BlockMapHeight; native readonly private float BlockMapOrgX; native readonly private float BlockMapOrgY; native readonly private void* BlockLinks; native readonly private void* PolyBlockMap; native readonly private void* RejectMatrix; // Strife conversations. native readonly int NumGenericSpeeches; native readonly RogueConSpeech* GenericSpeeches; native readonly int NumLevelSpeeches; native readonly RogueConSpeech* LevelSpeeches; // List of all poly-objects on the level. native readonly private int NumPolyObjs; native readonly private void* PolyObjs; native readonly private int NumPolyAnchorPoints; native readonly private void* PolyAnchorPoints; native readonly private Thinker ThinkerHead; native readonly private Thinker ThinkerTail; native readonly LevelInfo LevelInfo; native readonly WorldInfo WorldInfo; native readonly private void* Acs; native readonly private void* RenderData; native readonly private void* NetContext; native readonly private void* BaseSides; native readonly private void* BaseSectors; native readonly private void* BasePolyObjs; native readonly private int NumStaticLights; native readonly private void* StaticLights; native readonly private array ActiveSequences; native readonly float Time; native readonly int TicTime; // // Natives // native final sector_t *PointInSector(TVec Point); native final bool TraceLine(TVec start, TVec end, out TVec HitPoint, out TVec HitNormal); native final bool ChangeSector(sector_t* sector, int crunch); native final sec_region_t *AddExtraFloor(line_t * line, sector_t * dst); // Swap sector's floor and ceiling, it's used by level converter to support // EDGE and Legacy 3D floors. native final void SwapPlanes(sector_t *s); native final void SetFloorLightSector(sector_t* Sector, sector_t* SrcSector); native final void SetCeilingLightSector(sector_t* Sector, sector_t* SrcSector); native final void SetHeightSector(sector_t* Sector, sector_t* SrcSector, int Flags); // Return next sector # that line tag refers to native final int FindSectorFromTag(int tag, int start); // // Polyobj functions // native final void SpawnPolyobj(float x, float y, int tag, bool crush); native final void AddPolyAnchorPoint(float x, float y, int tag); native final polyobj_t* GetPolyobj(int polyNum); native final int GetPolyobjMirror(int poly); native final bool RotatePolyobj(int num, float angle); native final bool MovePolyobj(int num, float x, float y); // // ACS functions // native final bool StartACS(int number, int map, int arg1, int arg2, int arg3, Entity activator, line_t* line, int side, bool Always, bool WantResult); native final bool SuspendACS(int number, int map); native final bool TerminateACS(int number, int map); defaultproperties { }