aboutsummaryrefslogtreecommitdiff
path: root/stockton-levels/src/traits/textures.rs
diff options
context:
space:
mode:
Diffstat (limited to 'stockton-levels/src/traits/textures.rs')
-rw-r--r--stockton-levels/src/traits/textures.rs147
1 files changed, 0 insertions, 147 deletions
diff --git a/stockton-levels/src/traits/textures.rs b/stockton-levels/src/traits/textures.rs
deleted file mode 100644
index 75764b6..0000000
--- a/stockton-levels/src/traits/textures.rs
+++ /dev/null
@@ -1,147 +0,0 @@
-// 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 3 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.
-
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>.
-
-use std::iter::Iterator;
-
-#[derive(Debug, Clone, PartialEq)]
-/// A texture from a BSP File.
-pub struct Texture {
- pub name: String,
- pub surface: SurfaceFlags,
- pub contents: ContentsFlags,
-}
-
-bitflags!(
- /// Extracted from the Q3 arena engine code.
- /// https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/surfaceflags.h
- pub struct SurfaceFlags: u32 {
- /// never give falling damage
- const NO_DAMAGE = 0x1;
-
- /// affects game physics
- const SLICK = 0x2;
-
- /// lighting from environment map
- const SKY = 0x4;
-
- /// don't make missile explosions
- const NO_IMPACT = 0x10;
-
- /// function as a ladder
- const LADDER = 0x8;
-
- /// don't leave missile marks
- const NO_MARKS = 0x20;
-
- /// make flesh sounds and effects
- const FLESH = 0x40;
-
- /// don't generate a drawsurface at all
- const NODRAW = 0x80;
-
- /// make a primary bsp splitter
- const HINT = 0x01_00;
-
- /// completely ignore, allowing non-closed brushes
- const SKIP = 0x02_00;
-
- /// surface doesn't need a lightmap
- const NO_LIGHT_MAP = 0x04_00;
-
- /// generate lighting info at vertexes
- const POINT_LIGHT = 0x08_00;
-
- /// clanking footsteps
- const METAL_STEPS = 0x10_00;
-
- /// no footstep sounds
- const NO_STEPS = 0x20_00;
-
- /// don't collide against curves with this set
- const NON_SOLID = 0x40_00;
-
- /// act as a light filter during q3map -light
- const LIGHT_FILTER = 0x80_00;
-
- /// do per-pixel light shadow casting in q3map
- const ALPHA_SHADOW = 0x01_00_00;
-
- /// don't dlight even if solid (solid lava, skies)
- const NO_DLIGHT = 0x02_00_00;
-
- /// leave a dust trail when walking on this surface
- const DUST = 0x04_00_00;
- }
-);
-
-bitflags!(
- /// Extracted from the Q3 arena engine code. Less documented than `SurfaceFlags`.
- /// https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/surfaceflags.h
- pub struct ContentsFlags: u32 {
- // an eye is never valid in a solid
- const SOLID = 0x1;
- const LAVA = 0x8;
- const SLIME = 0x10;
- const WATER = 0x20;
- const FOG = 0x40;
-
- const NOT_TEAM1 = 0x00_80;
- const NOT_TEAM2 = 0x01_00;
- const NOT_BOT_CLIP = 0x02_00;
-
- const AREA_PORTAL = 0x80_00;
-
- /// bot specific contents type
- const PLAYER_CLIP = 0x01_00_00;
-
- /// bot specific contents type
- const MONSTER_CLIP = 0x02_00_00;
-
- const TELEPORTER = 0x04_00_00;
- const JUMP_PAD = 0x08_00_00;
- const CLUSTER_PORTAL = 0x10_00_00;
- const DO_NOT_ENTER = 0x20_00_00;
- const BOT_CLIP = 0x40_00_00;
- const MOVER = 0x80_00_00;
-
- // removed before bsping an entity
- const ORIGIN = 0x01_00_00_00;
-
- // should never be on a brush, only in game
- const BODY = 0x02_00_00_00;
-
- /// brush not used for the bsp
- const DETAIL = 0x08_00_00_00;
-
- /// brush not used for the bsp
- const CORPSE = 0x04_00_00_00;
-
- /// brushes used for the bsp
- const STRUCTURAL = 0x10_00_00_00;
-
- /// don't consume surface fragments inside
- const TRANSLUCENT = 0x20_00_00_00;
-
- const TRIGGER = 0x40_00_00_00;
-
- /// don't leave bodies or items (death fog, lava)
- const NODROP = 0x80_00_00_00;
- }
-);
-
-pub trait HasTextures {
- type TexturesIter<'a>: Iterator<Item = &'a Texture>;
-
- fn textures_iter(&self) -> Self::TexturesIter<'_>;
- fn get_texture(&self, idx: u32) -> Option<&Texture>;
-}