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; }
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; }
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; }