upgrade to rust 1.33

png-branch
an 2019-03-07 03:12:00 -05:00
parent 9250b5c2b1
commit 51f4eab9fe
7 changed files with 258 additions and 265 deletions

View File

@ -109,33 +109,39 @@ macro_rules! define_fixed_types {
/// Returns the number of ones in the bit representation of self. /// Returns the number of ones in the bit representation of self.
#[inline] #[inline]
pub fn count_ones(self) -> u32 {self.0.count_ones()} pub const fn count_ones(self) -> u32 {self.0.count_ones()}
/// Returns the number of zeros in the bit representation of self. /// Returns the number of zeros in the bit representation of self.
#[inline] #[inline]
pub fn count_zeros(self) -> u32 {self.0.count_zeros()} pub const fn count_zeros(self) -> u32 {self.0.count_zeros()}
/// Returns the number of leading zeros in the bit representation of /// Returns the number of leading zeros in the bit representation of
/// self. /// self.
#[inline] #[inline]
pub fn leading_zeros(self) -> u32 {self.0.leading_zeros()} pub const fn leading_zeros(self) -> u32 {self.0.leading_zeros()}
/// Returns the number of trailing zeros in the bit representation of /// Returns the number of trailing zeros in the bit representation of
/// self. /// self.
#[inline] #[inline]
pub fn trailing_zeros(self) -> u32 {self.0.trailing_zeros()} pub const fn trailing_zeros(self) -> u32 {self.0.trailing_zeros()}
/// Rotates all bits left by `n`. /// Rotates all bits left by `n`.
#[inline] #[inline]
pub fn rotate_left(self, n: u32) -> $t {$t(self.0.rotate_left(n))} pub const fn rotate_left(self, n: u32) -> $t
{
$t(self.0.rotate_left(n))
}
/// Rotates all bits right by `n`. /// Rotates all bits right by `n`.
#[inline] #[inline]
pub fn rotate_right(self, n: u32) -> $t {$t(self.0.rotate_right(n))} pub const fn rotate_right(self, n: u32) -> $t
{
$t(self.0.rotate_right(n))
}
/// Reverses the byte order of the bit representation of self. /// Reverses the byte order of the bit representation of self.
#[inline] #[inline]
pub fn swap_bytes(self) -> $t {$t(self.0.swap_bytes())} pub const fn swap_bytes(self) -> $t {$t(self.0.swap_bytes())}
/// Raises self to the power of `exp`. /// Raises self to the power of `exp`.
#[inline] #[inline]
@ -152,12 +158,12 @@ macro_rules! define_fixed_types {
/// Returns true if self is positive and false if the number is zero /// Returns true if self is positive and false if the number is zero
/// or negative. /// or negative.
#[inline] #[inline]
pub fn is_positive(self) -> bool {self.0.is_positive()} pub const fn is_positive(self) -> bool {self.0.is_positive()}
/// Returns true if self is negative and false if the number is zero /// Returns true if self is negative and false if the number is zero
/// or positive. /// or positive.
#[inline] #[inline]
pub fn is_negative(self) -> bool {self.0.is_negative()} pub const fn is_negative(self) -> bool {self.0.is_negative()}
/// Return the memory representation of this integer as a byte array /// Return the memory representation of this integer as a byte array
/// in big-endian (network) byte order. /// in big-endian (network) byte order.
@ -169,11 +175,6 @@ macro_rules! define_fixed_types {
#[inline] #[inline]
pub fn to_le_bytes(self) -> [u8; $bytes] {self.0.to_le_bytes()} pub fn to_le_bytes(self) -> [u8; $bytes] {self.0.to_le_bytes()}
/// Return the memory representation of this integer as a byte array
/// in native byte order.
#[inline]
pub fn to_ne_bytes(self) -> [u8; $bytes] {self.0.to_ne_bytes()}
/// Create a value from its representation as a byte array in /// Create a value from its representation as a byte array in
/// big-endian byte order. /// big-endian byte order.
#[inline] #[inline]
@ -190,14 +191,6 @@ macro_rules! define_fixed_types {
$t($ti::from_le_bytes(b)) $t($ti::from_le_bytes(b))
} }
/// Create a value from its representation as a byte array in
/// native byte order.
#[inline]
pub fn from_ne_bytes(b: [u8; $bytes]) -> $t
{
$t($ti::from_ne_bytes(b))
}
/// Creates a value of this type with the bit pattern `bits`. /// Creates a value of this type with the bit pattern `bits`.
#[inline] #[inline]
pub const fn from_bits(bits: $tu) -> $t {$t(bits as $ti)} pub const fn from_bits(bits: $tu) -> $t {$t(bits as $ti)}
@ -208,7 +201,7 @@ macro_rules! define_fixed_types {
/// Returns the raw bit pattern. /// Returns the raw bit pattern.
#[inline] #[inline]
pub fn to_bits(self) -> $tu {self.0 as $tu} pub const fn to_bits(self) -> $tu {self.0 as $tu}
/// Sets the raw bit pattern to `bits`. /// Sets the raw bit pattern to `bits`.
#[inline] #[inline]

View File

@ -50,21 +50,21 @@ pub fn read_minf(b: &[u8]) -> ResultS<Minf>
{ {
read_data! { read_data! {
88, BE in b => 88, BE in b =>
texture_id = u16[0]; texture_id = u16[0];
physics_id = u16[2]; physics_id = u16[2];
skypict_id = u16[4]; skypict_id = u16[4];
missi_flags = u16[6]; miss_flags = u16[6];
envir_flags = u16[8]; envi_flags = u16[8];
level_name = mac_roman_cstr[18..84]; level_name = mac_roman_cstr[18..84];
entry_flags = u32[84]; entr_flags = u32[84];
} }
let missi_flags = flag_ok!(MsnFlags, missi_flags)?; let miss_flags = flag_ok!(MsnFlags, miss_flags)?;
let envir_flags = flag_ok!(EnvFlags, envir_flags)?; let envi_flags = flag_ok!(EnvFlags, envi_flags)?;
let entry_flags = flag_ok!(EntFlags, entry_flags)?; let entr_flags = flag_ok!(EntFlags, entr_flags)?;
Ok(Minf{texture_id, physics_id, skypict_id, missi_flags, envir_flags, Ok(Minf{texture_id, physics_id, skypict_id, miss_flags, envi_flags,
entry_flags, level_name}) entr_flags, level_name})
} }
/// Reads an old `Minf` chunk. /// Reads an old `Minf` chunk.
@ -72,17 +72,17 @@ pub fn read_old_minf(b: &[u8]) -> ResultS<Minf>
{ {
let minf = read_minf(b)?; let minf = read_minf(b)?;
let mut entry_flags = if minf.entry_flags.is_empty() { let mut entr_flags = if minf.entr_flags.is_empty() {
EntFlags::Solo EntFlags::SOLO
} else { } else {
minf.entry_flags minf.entr_flags
}; };
if entry_flags.intersects(EntFlags::Solo | EntFlags::Carnage) { if entr_flags.intersects(EntFlags::SOLO | EntFlags::CARNAGE) {
entry_flags.insert(EntFlags::CoOp) entr_flags.insert(EntFlags::CO_OP)
} }
Ok(Minf{entry_flags, ..minf}) Ok(Minf{entr_flags, ..minf})
} }
/// Reads an `iidx` chunk. /// Reads an `iidx` chunk.
@ -166,7 +166,7 @@ pub fn read_old_sids(b: &[u8]) -> ResultS<(Side, usize)>
Ok((Side{tex_tra: SideTex{tex_id: OptU16::none(), ..side.tex_tra}, Ok((Side{tex_tra: SideTex{tex_id: OptU16::none(), ..side.tex_tra},
shade: 0.into(), shade: 0.into(),
flags: side.flags | SideFlags::ItemOpt, flags: side.flags | SideFlags::ITEM_OPT,
..side}, siz)) ..side}, siz))
} }
@ -274,7 +274,7 @@ pub fn read_old_lite(b: &[u8]) -> ResultS<(Light, usize)>
let lite = &OLD_LIGHT_DEFINITIONS[ltype]; let lite = &OLD_LIGHT_DEFINITIONS[ltype];
let on = mode == 0 || mode == 1; let on = mode == 0 || mode == 1;
let strobe = ltype == 3; let strobe = ltype == 3;
let flags = if on {lite.flags | LightFlags::InitActive} else {lite.flags}; let flags = if on {lite.flags | LightFlags::INIT_ACTIVE} else {lite.flags};
// modify each old light function accordingly // modify each old light function accordingly
let old_lfun = move |func: &LightFunc| -> LightFunc { let old_lfun = move |func: &LightFunc| -> LightFunc {
@ -499,13 +499,13 @@ impl Default for Minf
{ {
fn default() -> Self fn default() -> Self
{ {
Minf{texture_id: 0, Minf{texture_id: 0,
physics_id: 1, physics_id: 1,
skypict_id: 0, skypict_id: 0,
missi_flags: MsnFlags::empty(), miss_flags: MsnFlags::empty(),
envir_flags: EnvFlags::empty(), envi_flags: EnvFlags::empty(),
entry_flags: EntFlags::Solo, entr_flags: EntFlags::SOLO,
level_name: "Map".to_string()} level_name: "Map".to_string()}
} }
} }
@ -700,13 +700,13 @@ pub struct Note
#[derive(Debug, PartialEq, serde::Serialize)] #[derive(Debug, PartialEq, serde::Serialize)]
pub struct Minf pub struct Minf
{ {
pub texture_id: u16, pub texture_id: u16,
pub physics_id: u16, pub physics_id: u16,
pub skypict_id: u16, pub skypict_id: u16,
pub missi_flags: MsnFlags, pub miss_flags: MsnFlags,
pub envir_flags: EnvFlags, pub envi_flags: EnvFlags,
pub entry_flags: EntFlags, pub entr_flags: EntFlags,
pub level_name: String, pub level_name: String,
} }
/// The action type of a `Polygon`. /// The action type of a `Polygon`.
@ -744,12 +744,12 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct LineFlags: u16 pub struct LineFlags: u16
{ {
const TransSide = 1 << 9; const TRANS_SIDE = 1 << 9;
const ElevVar = 1 << 10; const ELEV_VAR = 1 << 10;
const Elevation = 1 << 11; const ELEVATION = 1 << 11;
const Landscape = 1 << 12; const LANDSCAPE = 1 << 12;
const Transparent = 1 << 13; const TRANSPARENT = 1 << 13;
const Solid = 1 << 14; const SOLID = 1 << 14;
} }
} }
@ -758,14 +758,14 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct SideFlags: u16 pub struct SideFlags: u16
{ {
const Status = 1; const STATUS = 1;
const Panel = 1 << 1; const PANEL = 1 << 1;
const Repair = 1 << 2; const REPAIR = 1 << 2;
const ItemUse = 1 << 3; const ITEM_USE = 1 << 3;
const Lighted = 1 << 4; const LIGHTED = 1 << 4;
const CanDestroy = 1 << 5; const CAN_DESTROY = 1 << 5;
const HitOnly = 1 << 6; const HIT_ONLY = 1 << 6;
const ItemOpt = 1 << 7; const ITEM_OPT = 1 << 7;
} }
} }
@ -774,17 +774,17 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct EnvFlags: u16 pub struct EnvFlags: u16
{ {
const Vacuum = 1; const VACUUM = 1;
const Magnetic = 1 << 1; const MAGNETIC = 1 << 1;
const Rebellion = 1 << 2; const REBELLION = 1 << 2;
const LowGrav = 1 << 3; const LOW_GRAV = 1 << 3;
const M1Glue = 1 << 4; const M1_GLUE = 1 << 4;
const LavaFloor = 1 << 5; const LAVA_FLOOR = 1 << 5;
const Rebellion2 = 1 << 6; const REBELLION2 = 1 << 6;
const Music = 1 << 7; const MUSIC = 1 << 7;
const TermPause = 1 << 8; const TERM_PAUSE = 1 << 8;
const M1Monster = 1 << 9; const M1_MONSTER = 1 << 9;
const M1Weps = 1 << 10; const M1_WEPS = 1 << 10;
} }
} }
@ -793,13 +793,13 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct EntFlags: u32 pub struct EntFlags: u32
{ {
const Solo = 1; const SOLO = 1;
const CoOp = 1 << 1; const CO_OP = 1 << 1;
const Carnage = 1 << 2; const CARNAGE = 1 << 2;
const KTMWTB = 1 << 3; const KTMWTB = 1 << 3;
const KOTH = 1 << 4; const KOTH = 1 << 4;
const Defense = 1 << 5; const DEFENSE = 1 << 5;
const Rugby = 1 << 6; const RUGBY = 1 << 6;
const CTF = 1 << 7; const CTF = 1 << 7;
} }
} }
@ -809,11 +809,11 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct MsnFlags: u16 pub struct MsnFlags: u16
{ {
const Extermination = 1; const EXTERMINATION = 1;
const Exploration = 1 << 1; const EXPLORATION = 1 << 1;
const Retrieval = 1 << 2; const RETRIEVAL = 1 << 2;
const Repair = 1 << 3; const REPAIR = 1 << 3;
const Rescue = 1 << 4; const RESCUE = 1 << 4;
} }
} }
@ -822,7 +822,7 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct PolyFlags: u16 pub struct PolyFlags: u16
{ {
const Detached = 1 << 14; const DETACHED = 1 << 14;
} }
} }
@ -831,9 +831,9 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct LightFlags: u16 pub struct LightFlags: u16
{ {
const InitActive = 1; const INIT_ACTIVE = 1;
const SlaveValue = 1 << 1; const SLAVE_VALUE = 1 << 1;
const Stateless = 1 << 2; const STATELESS = 1 << 2;
} }
} }
@ -842,12 +842,12 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct ObjectFlags: u16 pub struct ObjectFlags: u16
{ {
const Invisible = 1; const INVISIBLE = 1;
const Ceiling = 1 << 1; const CEILING = 1 << 1;
const Blind = 1 << 2; const BLIND = 1 << 2;
const Deaf = 1 << 3; const DEAF = 1 << 3;
const Floating = 1 << 4; const FLOATING = 1 << 4;
const NetOnly = 1 << 5; const NET_ONLY = 1 << 5;
} }
} }
@ -856,33 +856,33 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct PlatformFlags: u32 pub struct PlatformFlags: u32
{ {
const InitActive = 1; const INIT_ACTIVE = 1;
const InitExtended = 1 << 1; const INIT_EXTENDED = 1 << 1;
const StopAtEachLevel = 1 << 2; const STOP_AT_EACH_LEVEL = 1 << 2;
const StopAtInitLevel = 1 << 3; const STOP_AT_INIT_LEVEL = 1 << 3;
const StartAdjOnStop = 1 << 4; const START_ADJ_ON_STOP = 1 << 4;
const ExtendsFloorToCeil = 1 << 5; const EXTENDS_FLOOR_TO_CEIL = 1 << 5;
const ComesFromFloor = 1 << 6; const COMES_FROM_FLOOR = 1 << 6;
const ComesFromCeil = 1 << 7; const COMES_FROM_CEIL = 1 << 7;
const CausesDamage = 1 << 8; const CAUSES_DAMAGE = 1 << 8;
const NoActivateParent = 1 << 9; const NO_ACTIVATE_PARENT = 1 << 9;
const ActivatesOnce = 1 << 10; const ACTIVATES_ONCE = 1 << 10;
const ActivatesLight = 1 << 11; const ACTIVATES_LIGHT = 1 << 11;
const DeactivatesLight = 1 << 12; const DEACTIVATES_LIGHT = 1 << 12;
const PlayerControls = 1 << 13; const PLAYER_CONTROLS = 1 << 13;
const MonsterControls = 1 << 14; const MONSTER_CONTROLS = 1 << 14;
const ReverseOnObstruct = 1 << 15; const REVERSE_ON_OBSTRUCT = 1 << 15;
const NoExtDeactivation = 1 << 16; const NO_EXT_DEACTIVATION = 1 << 16;
const UsePolygonHeights = 1 << 17; const USE_POLYGON_HEIGHTS = 1 << 17;
const DelayedActivation = 1 << 18; const DELAYED_ACTIVATION = 1 << 18;
const StartAdjOnStart = 1 << 19; const START_ADJ_ON_START = 1 << 19;
const StopAdjOnStart = 1 << 20; const STOP_ADJ_ON_START = 1 << 20;
const StopAdjOnStop = 1 << 21; const STOP_ADJ_ON_STOP = 1 << 21;
const Slow = 1 << 22; const SLOW = 1 << 22;
const StartAtEachLevel = 1 << 23; const START_AT_EACH_LEVEL = 1 << 23;
const Locked = 1 << 24; const LOCKED = 1 << 24;
const Secret = 1 << 25; const SECRET = 1 << 25;
const Door = 1 << 26; const DOOR = 1 << 26;
} }
} }
@ -941,7 +941,7 @@ pub const TICKS_PER_SECOND: u16 = 30;
const OLD_LIGHT_DEFINITIONS: [Light; 8] = [ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Normal // Normal
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,
@ -977,7 +977,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Rheostat // Rheostat
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,
@ -1013,7 +1013,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Flourescent // Flourescent
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,
@ -1049,7 +1049,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Strobe // Strobe
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,
@ -1085,7 +1085,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Flicker // Flicker
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,
@ -1121,7 +1121,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Pulsate // Pulsate
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Smooth, act_pri: LightFunc{ftype: LightFuncType::Smooth,
prd_nrm: TICKS_PER_SECOND * 2, prd_nrm: TICKS_PER_SECOND * 2,
@ -1157,7 +1157,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Annoying // Annoying
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Random, act_pri: LightFunc{ftype: LightFuncType::Random,
prd_nrm: 2, prd_nrm: 2,
@ -1193,7 +1193,7 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
// Energy Efficient // Energy Efficient
Light{ltype: LightType::Normal, Light{ltype: LightType::Normal,
flags: LightFlags::SlaveValue, flags: LightFlags::SLAVE_VALUE,
phase: 0, phase: 0,
act_pri: LightFunc{ftype: LightFuncType::Constant, act_pri: LightFunc{ftype: LightFuncType::Constant,
prd_nrm: TICKS_PER_SECOND, prd_nrm: TICKS_PER_SECOND,

View File

@ -491,11 +491,11 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct EffectFlags: u16 pub struct EffectFlags: u16
{ {
const EndOnLoop = 1; const END_ON_LOOP = 1;
const EndOnXferLoop = 1 << 1; const END_ON_XFER_LOOP = 1 << 1;
const SoundOnly = 1 << 2; const SOUND_ONLY = 1 << 2;
const MakeTwinVisible = 1 << 3; const MAKE_TWIN_VISIBLE = 1 << 3;
const MediaEffect = 1 << 4; const MEDIA_EFFECT = 1 << 4;
} }
} }
@ -504,17 +504,17 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct WeaponFlags: u16 pub struct WeaponFlags: u16
{ {
const Automatic = 1; const AUTOMATIC = 1;
const RemoveAfterUse = 1 << 1; const REMOVE_AFTER_USE = 1 << 1;
const InstantCasing = 1 << 2; const INSTANT_CASING = 1 << 2;
const Overloads = 1 << 3; const OVERLOADS = 1 << 3;
const RandomAmmo = 1 << 4; const RANDOM_AMMO = 1 << 4;
const TemporaryPower = 1 << 5; const TEMPORARY_POWER = 1 << 5;
const ReloadOneHand = 1 << 6; const RELOAD_ONE_HAND = 1 << 6;
const FireOutOfPhase = 1 << 7; const FIRE_OUT_OF_PHASE = 1 << 7;
const FireUnderMedia = 1 << 8; const FIRE_UNDER_MEDIA = 1 << 8;
const TriggerSameAmmo = 1 << 9; const TRIGGER_SAME_AMMO = 1 << 9;
const SecondaryFlip = 1 << 10; const SECONDARY_FLIP = 1 << 10;
} }
} }
@ -523,27 +523,27 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct ProjectileFlags: u32 pub struct ProjectileFlags: u32
{ {
const Guided = 1; const GUIDED = 1;
const StopOnLoop = 1 << 1; const STOP_ON_LOOP = 1 << 1;
const Persistent = 1 << 2; const PERSISTENT = 1 << 2;
const Alien = 1 << 3; const ALIEN = 1 << 3;
const Gravity = 1 << 4; const GRAVITY = 1 << 4;
const NoHorzError = 1 << 5; const NO_HORZ_ERROR = 1 << 5;
const NoVertError = 1 << 6; const NO_VERT_ERROR = 1 << 6;
const TogglePanels = 1 << 7; const TOGGLE_PANELS = 1 << 7;
const PosVertError = 1 << 8; const POS_VERT_ERROR = 1 << 8;
const Melee = 1 << 9; const MELEE = 1 << 9;
const Ripper = 1 << 10; const RIPPER = 1 << 10;
const PassTransRandom = 1 << 11; const PASS_TRANS_RANDOM = 1 << 11;
const PassTransMore = 1 << 12; const PASS_TRANS_MORE = 1 << 12;
const DoubleGravity = 1 << 13; const DOUBLE_GRAVITY = 1 << 13;
const ReboundFloor = 1 << 14; const REBOUND_FLOOR = 1 << 14;
const ThroughMedia = 1 << 15; const THROUGH_MEDIA = 1 << 15;
const BecomeItem = 1 << 16; const BECOME_ITEM = 1 << 16;
const Bloody = 1 << 17; const BLOODY = 1 << 17;
const WanderHorz = 1 << 18; const WANDER_HORZ = 1 << 18;
const UseLowGrav = 1 << 19; const USE_LOW_GRAV = 1 << 19;
const PassMedia = 1 << 20; const PASS_MEDIA = 1 << 20;
} }
} }
@ -552,34 +552,34 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct MonsterFlags: u32 pub struct MonsterFlags: u32
{ {
const IgnoreLOS = 1; const IGNORE_LOS = 1;
const Flying = 1 << 1; const FLYING = 1 << 1;
const Alien = 1 << 2; const ALIEN = 1 << 2;
const Major = 1 << 3; const MAJOR = 1 << 3;
const Minor = 1 << 4; const MINOR = 1 << 4;
const NoOmit = 1 << 5; const NO_OMIT = 1 << 5;
const Floats = 1 << 6; const FLOATS = 1 << 6;
const NoAttack = 1 << 7; const NO_ATTACK = 1 << 7;
const Snipe = 1 << 8; const SNIPE = 1 << 8;
const Invisible = 1 << 9; const INVISIBLE = 1 << 9;
const SubtlyInvisible = 1 << 10; const SUBTLY_INVISIBLE = 1 << 10;
const Kamikaze = 1 << 11; const KAMIKAZE = 1 << 11;
const Berserker = 1 << 12; const BERSERKER = 1 << 12;
const Enlarged = 1 << 13; const ENLARGED = 1 << 13;
const DelayedDeath = 1 << 14; const DELAYED_DEATH = 1 << 14;
const FireSymmetrical = 1 << 15; const FIRE_SYMMETRICAL = 1 << 15;
const NuclearDeath = 1 << 16; const NUCLEAR_DEATH = 1 << 16;
const NoFireBackwards = 1 << 17; const NO_FIRE_BACKWARDS = 1 << 17;
const CanDieInFlames = 1 << 18; const CAN_DIE_IN_FLAMES = 1 << 18;
const WaitForGoodShot = 1 << 19; const WAIT_FOR_GOOD_SHOT = 1 << 19;
const Tiny = 1 << 20; const TINY = 1 << 20;
const FastAttack = 1 << 21; const FAST_ATTACK = 1 << 21;
const LikesWater = 1 << 22; const LIKES_WATER = 1 << 22;
const LikesSewage = 1 << 23; const LIKES_SEWAGE = 1 << 23;
const LikesLava = 1 << 24; const LIKES_LAVA = 1 << 24;
const LikesGoo = 1 << 25; const LIKES_GOO = 1 << 25;
const TeleUnderMedia = 1 << 26; const TELE_UNDER_MEDIA = 1 << 26;
const UseRandomWeapon = 1 << 27; const USE_RANDOM_WEAPON = 1 << 27;
} }
} }
@ -588,22 +588,22 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct MonsterClass: u32 pub struct MonsterClass: u32
{ {
const Player = 1; const PLAYER = 1;
const Civilian = 1 << 1; const CIVILIAN = 1 << 1;
const Madd = 1 << 2; const MADD = 1 << 2;
const PossessedHummer = 1 << 3; const POSSESSED_HUMMER = 1 << 3;
const Defender = 1 << 4; const DEFENDER = 1 << 4;
const Fighter = 1 << 5; const FIGHTER = 1 << 5;
const Trooper = 1 << 6; const TROOPER = 1 << 6;
const Hunter = 1 << 7; const HUNTER = 1 << 7;
const Enforcer = 1 << 8; const ENFORCER = 1 << 8;
const Juggernaut = 1 << 9; const JUGGERNAUT = 1 << 9;
const Hummer = 1 << 10; const HUMMER = 1 << 10;
const Compiler = 1 << 11; const COMPILER = 1 << 11;
const Cyborg = 1 << 12; const CYBORG = 1 << 12;
const Assimilated = 1 << 13; const ASSIMILATED = 1 << 13;
const Tick = 1 << 14; const TICK = 1 << 14;
const Yeti = 1 << 15; const YETI = 1 << 15;
} }
} }
@ -612,30 +612,30 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct DamageTypeFlags: u32 pub struct DamageTypeFlags: u32
{ {
const Explosion = 1; const EXPLOSION = 1;
const ElectricalStaff = 1 << 1; const ELECTRICAL_STAFF = 1 << 1;
const Projectile = 1 << 2; const PROJECTILE = 1 << 2;
const Absorbed = 1 << 3; const ABSORBED = 1 << 3;
const Flame = 1 << 4; const FLAME = 1 << 4;
const HoundClaws = 1 << 5; const HOUND_CLAWS = 1 << 5;
const AlienProjectile = 1 << 6; const ALIEN_PROJECTILE = 1 << 6;
const HulkSlap = 1 << 7; const HULK_SLAP = 1 << 7;
const CompilerBolt = 1 << 8; const COMPILER_BOLT = 1 << 8;
const FusionBolt = 1 << 9; const FUSION_BOLT = 1 << 9;
const HunterBolt = 1 << 10; const HUNTER_BOLT = 1 << 10;
const Fist = 1 << 11; const FIST = 1 << 11;
const Teleporter = 1 << 12; const TELEPORTER = 1 << 12;
const Defender = 1 << 13; const DEFENDER = 1 << 13;
const YetiClaws = 1 << 14; const YETI_CLAWS = 1 << 14;
const YetiProjectile = 1 << 15; const YETI_PROJECTILE = 1 << 15;
const Crushing = 1 << 16; const CRUSHING = 1 << 16;
const Lava = 1 << 17; const LAVA = 1 << 17;
const Suffocation = 1 << 18; const SUFFOCATION = 1 << 18;
const Goo = 1 << 19; const GOO = 1 << 19;
const EnergyDrain = 1 << 20; const ENERGY_DRAIN = 1 << 20;
const OxygenDrain = 1 << 21; const OXYGEN_DRAIN = 1 << 21;
const HummerBolt = 1 << 22; const HUMMER_BOLT = 1 << 22;
const ShotgunProjectile = 1 << 23; const SHOTGUN_PROJECTILE = 1 << 23;
} }
} }

View File

@ -65,8 +65,8 @@ pub fn read_bitmap(b: &[u8]) -> ResultS<Bitmap>
let compr = compr == u16::max_value(); let compr = compr == u16::max_value();
let flags = flag_ok!(BmpFlags, flags)?; let flags = flag_ok!(BmpFlags, flags)?;
let alpha = flags.contains(BmpFlags::Transparent); let alpha = flags.contains(BmpFlags::TRANSPARENT);
let cmajr = flags.contains(BmpFlags::ColumnMajor); let cmajr = flags.contains(BmpFlags::COLUMN_MAJOR);
if depth != 8 { if depth != 8 {
bail!("invalid bit depth (should always be 8)"); bail!("invalid bit depth (should always be 8)");
@ -395,8 +395,8 @@ pub type CollectionDef = (Option<Collection>, Option<Collection>);
bitflags! { bitflags! {
struct BmpFlags: u16 struct BmpFlags: u16
{ {
const Transparent = 1 << 14; const TRANSPARENT = 1 << 14;
const ColumnMajor = 1 << 15; const COLUMN_MAJOR = 1 << 15;
} }
} }
@ -405,9 +405,9 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct FrameFlags: u16 pub struct FrameFlags: u16
{ {
const Obscure = 1 << 13; const OBSCURE = 1 << 13;
const FlipY = 1 << 14; const FLIP_Y = 1 << 14;
const FlipX = 1 << 15; const FLIP_X = 1 << 15;
} }
} }

View File

@ -149,13 +149,13 @@ bitflags! {
#[derive(serde::Serialize)] #[derive(serde::Serialize)]
pub struct SoundFlags: u16 pub struct SoundFlags: u16
{ {
const NoRestart = 1; const NO_RESTART = 1;
const NoChannelSwitch = 1 << 1; const NO_CHANNEL_SWITCH = 1 << 1;
const LessPitchChange = 1 << 2; const LESS_PITCH_CHANGE = 1 << 2;
const NoPitchChange = 1 << 3; const NO_PITCH_CHANGE = 1 << 3;
const NoObstruction = 1 << 4; const NO_OBSTRUCTION = 1 << 4;
const NoMediaObstruct = 1 << 5; const NO_MEDIA_OBSTRUCT = 1 << 5;
const Ambient = 1 << 6; const AMBIENT = 1 << 6;
} }
} }

View File

@ -163,8 +163,8 @@ bitflags! {
#[derive(Default, serde::Serialize)] #[derive(Default, serde::Serialize)]
pub struct GroupFlags: u16 pub struct GroupFlags: u16
{ {
const DrawOnRight = 1; const DRAW_ON_RIGHT = 1;
const DrawCenter = 1 << 1; const DRAW_CENTER = 1 << 1;
} }
} }

View File

@ -7,13 +7,13 @@ fn read_minf_must_process()
{ {
const INPUT: &[u8] = include_bytes!("data/minf.in"); const INPUT: &[u8] = include_bytes!("data/minf.in");
let out = map::Minf{env_code: 0, let out = map::Minf{texture_id: 0,
physi_id: 1, physics_id: 1,
music_id: 1, skypict_id: 1,
missi_flags: map::MsnFlags::Repair, miss_flags: map::MsnFlags::REPAIR,
envir_flags: map::EnvFlags::empty(), envi_flags: map::EnvFlags::empty(),
entry_flags: map::EntFlags::Solo | map::EntFlags::CoOp, entr_flags: map::EntFlags::SOLO | map::EntFlags::CO_OP,
level_name: "Waterloo Waterpark".to_string()}; level_name: "Waterloo Waterpark".to_string()};
assert_eq!(map::read_minf(INPUT).unwrap(), out); assert_eq!(map::read_minf(INPUT).unwrap(), out);
} }