mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 17:01:28 +00:00
41 lines
977 B
C
41 lines
977 B
C
#pragma once
|
|
|
|
#include "build.h"
|
|
|
|
struct SectionLine
|
|
{
|
|
int section;
|
|
int partnersection;
|
|
int startpoint;
|
|
int endpoint;
|
|
int wall;
|
|
int partner;
|
|
int point2index;
|
|
|
|
vec2_t v1() const { return ::wall[startpoint].pos; }
|
|
vec2_t v2() const { return ::wall[endpoint].pos; }
|
|
walltype* wallp() const { return &::wall[wall]; }
|
|
SectionLine* partnerLine() const;
|
|
|
|
};
|
|
extern TArray<SectionLine> sectionLines;
|
|
|
|
inline SectionLine* SectionLine::partnerLine() const
|
|
{
|
|
return partner == -1 ? nullptr : §ionLines[partner];
|
|
}
|
|
|
|
struct Section
|
|
{
|
|
int sector;
|
|
// this is the whole point of sections - instead of just having a start index and count, we have an explicit list of lines that's a lot easier to change when needed.
|
|
TArray<int> lines;
|
|
};
|
|
|
|
extern TArray<Section> Sections;
|
|
extern TArray<TArray<int>> sectionspersector; // reverse map, mainly for the automap
|
|
|
|
|
|
void hw_BuildSections();
|
|
void hw_SetSplitSector(int sector, int startpos, int endpos);
|
|
void hw_ClearSplitSector();
|