diff --git a/src/g_game.cpp b/src/g_game.cpp index caf43cd6f..cd9cd6f4a 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -1345,7 +1345,10 @@ void G_PlayerReborn (int player) if (gamestate != GS_TITLELEVEL) { actor->GiveDefaultInventory (); - p->ReadyWeapon = p->PendingWeapon; + + // [Spleen] ReadyWeapon will be set when P_MovePsprites calls P_BringUpWeapon + p->ReadyWeapon = NULL; + //p->ReadyWeapon = p->PendingWeapon; } //Added by MC: Init bot structure. diff --git a/src/p_pspr.cpp b/src/p_pspr.cpp index a30e2d736..0a9e3eb4e 100644 --- a/src/p_pspr.cpp +++ b/src/p_pspr.cpp @@ -794,9 +794,15 @@ void P_SetupPsprites(player_t *player) { player->psprites[i].state = NULL; } + + + // [Spleen] Let P_MovePsprites handle calling P_BringUpWeapon, + // instead of P_SetupPsprites, to avoid raising it twice in one tic. + /* // Spawn the ready weapon player->PendingWeapon = player->ReadyWeapon; P_BringUpWeapon (player); + */ } //------------------------------------------------------------------------ diff --git a/src/p_user.cpp b/src/p_user.cpp index eef4f5025..f94cf7088 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -1103,7 +1103,10 @@ void APlayerPawn::GiveDefaultInventory () if (item != NULL && item->IsKindOf (RUNTIME_CLASS (AWeapon)) && static_cast(item)->CheckAmmo(AWeapon::EitherFire, false)) { - player->ReadyWeapon = player->PendingWeapon = static_cast (item); + // [Spleen] ReadyWeapon will be set when P_MovePsprites calls P_BringUpWeapon + player->PendingWeapon = static_cast (item); + player->ReadyWeapon = NULL; + //player->ReadyWeapon = player->PendingWeapon = static_cast (item); } } di = di->Next;