typedef enum { false, true } bool;

typedef struct
{
    float x; // X coordinate.
    float y; // Y coordinate.
} vertex_;

typedef struct
{
    int id; // ID of line. Interpreted as tag or scripting id. //= -1
    int v1; // Index of first vertex.
    int v2; // Index of second vertex.

    bool blocking; //line blocks things. //= false
    bool blockmonsters; //line blocks monsters. //= false
    bool twosided; //line is 2S. //= false
    bool dontpegtop; //upper texture unpegged. //= false
    bool dontpegbottom; //lower texture unpegged. //= false
    bool secret; //drawn as 1S on map. //= false
    bool blocksound; //blocks sound. //= false
    bool dontdraw; //line never drawn on map. //= false
    bool mapped; //always appears on map. //= false
    bool passuse; //passes use action. //= false

    bool translucent; //line is a Strife translucent line. //= false
    bool jumpover; //line is a Strife railing. //= false
    bool blockfloaters; //line is a Strife float-blocker. //= false

    bool playercross; //player can cross. //= false
    bool playeruse; //player can use. //= false
    bool monstercross; //monster can cross. //= false
    bool monsteruse; //monster can use. //= false
    bool impact; //projectile can activate. //= false
    bool playerpush; //player can push. //= false
    bool monsterpush; //monster can push. //= false
    bool missilecross; //projectile can cross. //= false
    bool repeatspecial; //repeatable special. //= false

    int special; // Special. //= 0
    int arg0; // Argument 0. //= 0
    int arg1; // Argument 1. //= 0
    int arg2; // Argument 2. //= 0
    int arg3; // Argument 3. //= 0
    int arg4; // Argument 4. //= 0

    int sidefront; // Sidedef 1 index.
    int sideback; // Sidedef 2 index. //= -1
} linedef_;

typedef struct
{
    int heightfloor; // Floor height. Default = 0.
    int heightceiling; // Ceiling height. Default = 0.

    char* texturefloor; // Floor flat. No valid default.
    char* textureceiling; // Ceiling flat. No valid default.

    int lightlevel; // Light level. Default = 160.

    int special; // Sector special. Default = 0.
    int id; // Sector tag/id. Default = 0.
} dsector_;
