pink_doom.doom package¶
Submodules¶
pink_doom.doom.data module¶
Map level types.
The following data structures define the persistent format used in the lumps of the WAD files.
- class pink_doom.doom.data.LinedefAttribute(value)[source]¶
Bases:
enum.Enum
LineDef attributes.
- BLOCKING = 1¶
Solid, is an obstacle.
- BLOCK_MONSTERS = 2¶
Blocks monsters only.
- DONT_DRAW = 128¶
Don’t draw on the automap at all.
- DONT_PEG_BOTTOM = 16¶
lower texture unpegged
- DONT_PEG_TOP = 8¶
upper texture unpegged
- MAPPED = 256¶
Set if already seen, thus drawn in automap.
- SECRET = 32¶
In AutoMap: don’t map as two sided: IT’S A SECRET!
- SOUND_BLOCK = 64¶
Sound rendering: don’t let sound cross two of these.
- TWO_SIDED = 4¶
Backside will not be present at all if not two sided.
- class pink_doom.doom.data.MapLinedef(v1: int, v2: int, flags: int, special: int, tag: int, sidenum: tuple[int, int])[source]¶
Bases:
object
A LineDef.
As used for editing, and as input to the BSP builder.
- flags: int¶
- sidenum: tuple[int, int]¶
sidenum[1] will be -1 if one sided
- special: int¶
- tag: int¶
- v1: int¶
- v2: int¶
- class pink_doom.doom.data.MapLump(value)[source]¶
Bases:
enum.Enum
Lump order in a map WAD.
Each map needs a couple of lumps to provide a complete scene geometry description.
- BLOCKMAP = 11¶
LUT, motion clipping, walls/grid element
- LABEL = 1¶
A separator, name, ExMx or MAPxx
- LINEDEFS = 3¶
LineDefs, from editing
- NODES = 8¶
BSP nodes
- REJECT = 10¶
LUT, sector-sector visibility
- SECTORS = 9¶
Sectors, from editing
- SEGS = 6¶
LineSegs, from LineDefs split by BSP
- SIDEDEFS = 4¶
SideDefs, from editing
- SSECTORS = 7¶
SubSectors, list of LineSegs
- THINGS = 2¶
Monsters, items..
- VERTEXES = 5¶
Vertices, edited and BSP splits generated
- class pink_doom.doom.data.MapNode(x: int, y: int, dx: int, dy: int, bbox: tuple[tuple[int, int], tuple[int, int], tuple[int, int], tuple[int, int]], children: tuple[int, int])[source]¶
Bases:
object
Partition line from (x,y) to (x+dx, y+dy).
- bbox: tuple[tuple[int, int], tuple[int, int], tuple[int, int], tuple[int, int]]¶
Bounding box for each child, clip against view frustum.
- children: tuple[int, int]¶
If NodeFlag.SUBSECTOR it’s a subsector, else it’s a node of another subtree.
- dx: int¶
- dy: int¶
- x: int¶
- y: int¶
- class pink_doom.doom.data.MapSector(floor_height: int, ceiling_height: int, floor_pic: str, ceiling_pic: str, light_level: int, special: int, tag: int)[source]¶
Bases:
object
Sector definition, from editing.
- ceiling_height: int¶
- ceiling_pic: str¶
- floor_height: int¶
- floor_pic: str¶
- light_level: int¶
- special: int¶
- tag: int¶
- class pink_doom.doom.data.MapSeg(v1: int, v2: int, angle: int, linedef: int, side: int, offset: int)[source]¶
Bases:
object
LineSeg.
Generated by splitting LineDefs using partition lines selected by BSP builder.
- angle: int¶
- linedef: int¶
- offset: int¶
- side: int¶
- v1: int¶
- v2: int¶
- class pink_doom.doom.data.MapSidedef(texture_offset: int, row_offset: int, top_texture: str, bottom_texture: str, mid_texture: str, sector: int)[source]¶
Bases:
object
A SideDef.
Defines the visual appearance of a wall, by setting textures and offsets.
- bottom_texture: str¶
- mid_texture: str¶
- row_offset: int¶
- sector: int¶
Front sector, towards viewer.
- texture_offset: int¶
- top_texture: str¶
- class pink_doom.doom.data.MapSubsector(num_segs: int, first_seg: int)[source]¶
Bases:
object
SubSector, as generated by BSP.
- first_seg: int¶
Index of first one, segs are stored sequentially.
- num_segs: int¶
- class pink_doom.doom.data.MapThing(x: int, y: int, angle: int, kind: int, options: int)[source]¶
Bases:
object
Thing definition, position, orientation and type.
Plus skill/visibility flags and attributes.
- angle: int¶
- kind: int¶
- options: int¶
- x: int¶
- y: int¶