Exemple #1
0
        public void Clear()
        {
            mobj        = null;
            playerState = 0;
            cmd.Clear();

            viewZ           = Fixed.Zero;
            viewHeight      = Fixed.Zero;
            deltaViewHeight = Fixed.Zero;
            bob             = Fixed.Zero;

            health      = 0;
            armorPoints = 0;
            armorType   = 0;

            Array.Clear(powers, 0, powers.Length);
            Array.Clear(cards, 0, cards.Length);
            backpack = false;

            Array.Clear(frags, 0, frags.Length);

            readyWeapon   = 0;
            pendingWeapon = 0;

            Array.Clear(weaponOwned, 0, weaponOwned.Length);
            Array.Clear(ammo, 0, ammo.Length);
            Array.Clear(maxAmmo, 0, maxAmmo.Length);

            useDown    = false;
            attackDown = false;

            cheats = 0;

            refire = 0;

            killCount   = 0;
            itemCount   = 0;
            secretCount = 0;

            message     = null;
            messageTime = 0;

            damageCount = 0;
            bonusCount  = 0;

            attacker = null;

            extraLight = 0;

            fixedColorMap = 0;

            colorMap = 0;

            foreach (var psp in playerSprites)
            {
                psp.Clear();
            }

            didSecret = false;
        }
Exemple #2
0
        public static void BuildTicCmd(TicCmd cmd)
        {
            var keyLeft   = Keyboard.IsKeyPressed(Keyboard.Key.Left);
            var keyRight  = Keyboard.IsKeyPressed(Keyboard.Key.Right);
            var keyUp     = Keyboard.IsKeyPressed(Keyboard.Key.Up);
            var keyDown   = Keyboard.IsKeyPressed(Keyboard.Key.Down);
            var keySpeed  = Keyboard.IsKeyPressed(Keyboard.Key.LShift);
            var keyStrafe = Keyboard.IsKeyPressed(Keyboard.Key.LAlt);
            var keyFire   = Keyboard.IsKeyPressed(Keyboard.Key.LControl);
            var keyUse    = Keyboard.IsKeyPressed(Keyboard.Key.Space);

            weaponKeys[0] = Keyboard.IsKeyPressed(Keyboard.Key.Num1);
            weaponKeys[1] = Keyboard.IsKeyPressed(Keyboard.Key.Num2);
            weaponKeys[2] = Keyboard.IsKeyPressed(Keyboard.Key.Num3);
            weaponKeys[3] = Keyboard.IsKeyPressed(Keyboard.Key.Num4);
            weaponKeys[4] = Keyboard.IsKeyPressed(Keyboard.Key.Num5);
            weaponKeys[5] = Keyboard.IsKeyPressed(Keyboard.Key.Num6);
            weaponKeys[6] = Keyboard.IsKeyPressed(Keyboard.Key.Num7);

            cmd.Clear();

            var strafe = keyStrafe;

            var speed = keySpeed ? 1 : 0;

            Fixed forward = Fixed.Zero;
            Fixed side    = Fixed.Zero;

            if (keyLeft || keyRight)
            {
                turnheld++;
            }
            else
            {
                turnheld = 0;
            }

            int tspeed;

            if (turnheld < slowTurnTics)
            {
                tspeed = 2;
            }
            else
            {
                tspeed = speed;
            }

            if (strafe)
            {
                if (keyRight)
                {
                    side += sidemove[speed];
                }
                if (keyLeft)
                {
                    side -= sidemove[speed];
                }
            }
            else
            {
                if (keyRight)
                {
                    cmd.AngleTurn -= (short)angleturn[tspeed].Data;
                }
                if (keyLeft)
                {
                    cmd.AngleTurn += (short)angleturn[tspeed].Data;
                }
            }

            if (keyUp)
            {
                forward += forwardmove[speed];
            }
            if (keyDown)
            {
                forward -= forwardmove[speed];
            }

            if (keyFire)
            {
                cmd.Buttons |= TicCmdButtons.Attack;
            }

            if (keyUse)
            {
                cmd.Buttons |= TicCmdButtons.Use;
            }

            // If the previous or next weapon button is pressed, the
            // next_weapon variable is set to change weapons when
            // we generate a ticcmd.  Choose a new weapon.

            /*
             * if (gamestate == GS_LEVEL && next_weapon != 0)
             * {
             *  i = G_NextWeapon(next_weapon);
             *  cmd->buttons |= BT_CHANGE;
             *  cmd->buttons |= i << BT_WEAPONSHIFT;
             * }
             * else
             */
            {
                // Check weapon keys.
                for (var i = 0; i < weaponKeys.Length; i++)
                {
                    if (weaponKeys[i])
                    {
                        cmd.Buttons |= TicCmdButtons.Change;
                        cmd.Buttons |= (byte)(i << TicCmdButtons.WeaponShift);
                        break;
                    }
                }
            }

            next_weapon = 0;

            if (forward > maxplmove)
            {
                forward = maxplmove;
            }
            else if (forward < -maxplmove)
            {
                forward = -maxplmove;
            }
            if (side > maxplmove)
            {
                side = maxplmove;
            }
            else if (side < -maxplmove)
            {
                side = -maxplmove;
            }

            cmd.ForwardMove += (sbyte)forward.Data;
            cmd.SideMove    += (sbyte)side.Data;
        }
Exemple #3
0
        public void Reborn()
        {
            Mobj        = null;
            PlayerState = PlayerState.Live;
            Cmd.Clear();

            ViewZ           = Fixed.Zero;
            ViewHeight      = Fixed.Zero;
            DeltaViewHeight = Fixed.Zero;
            Bob             = Fixed.Zero;

            Health      = MAXHEALTH;
            ArmorPoints = 0;
            ArmorType   = 0;

            Array.Clear(Powers, 0, Powers.Length);
            Array.Clear(Cards, 0, Cards.Length);
            Backpack = false;

            Array.Clear(Frags, 0, Frags.Length);

            ReadyWeapon   = WeaponType.Pistol;
            PendingWeapon = WeaponType.Pistol;

            Array.Clear(WeaponOwned, 0, WeaponOwned.Length);
            Array.Clear(Ammo, 0, Ammo.Length);
            Array.Clear(MaxAmmo, 0, MaxAmmo.Length);

            WeaponOwned[(int)WeaponType.Fist]   = true;
            WeaponOwned[(int)WeaponType.Pistol] = true;
            Ammo[(int)AmmoType.Clip]            = 50;
            for (var i = 0; i < (int)AmmoType.Count; i++)
            {
                MaxAmmo[i] = DoomInfo.AmmoInfos.Max[i];
            }

            // don't do anything immediately
            UseDown    = true;
            AttackDown = true;

            Cheats = 0;

            Refire = 0;

            Message = null;

            DamageCount = 0;
            BonusCount  = 0;

            Attacker = null;

            ExtraLight = 0;

            FixedColorMap = 0;

            ColorMap = 0;

            foreach (var psp in PlayerSprites)
            {
                psp.Clear();
            }

            DidSecret = false;
        }