| 179 | } |
| 180 | |
| 181 | void CGrenade::PutNextToSlot() |
| 182 | { |
| 183 | VERIFY(!getDestroy()); |
| 184 | |
| 185 | //выкинуть гранату из инвентаря |
| 186 | if (m_pCurrentInventory) |
| 187 | { |
| 188 | NET_Packet P; |
| 189 | m_pCurrentInventory->Ruck(this); |
| 190 | |
| 191 | this->u_EventGen(P, GEG_PLAYER_ITEM2RUCK, this->H_Parent()->ID()); |
| 192 | P.w_u16(this->ID()); |
| 193 | this->u_EventSend(P); |
| 194 | |
| 195 | CGrenade* pNext = smart_cast<CGrenade*>(m_pCurrentInventory->Same(this, true)); |
| 196 | if (!pNext) |
| 197 | pNext = smart_cast<CGrenade*>(m_pCurrentInventory->SameSlot(GRENADE_SLOT, this, true)); |
| 198 | |
| 199 | VERIFY(pNext != this); |
| 200 | |
| 201 | if (pNext && m_pCurrentInventory->Slot(pNext)) |
| 202 | { |
| 203 | pNext->u_EventGen(P, GEG_PLAYER_ITEM2SLOT, pNext->H_Parent()->ID()); |
| 204 | P.w_u16(pNext->ID()); |
| 205 | pNext->u_EventSend(P); |
| 206 | m_pCurrentInventory->SetActiveSlot(pNext->GetSlot()); |
| 207 | } |
| 208 | else |
| 209 | { |
| 210 | CActor* pActor = smart_cast<CActor*>(m_pCurrentInventory->GetOwner()); |
| 211 | |
| 212 | if (pActor) |
| 213 | pActor->OnPrevWeaponSlot(); |
| 214 | } |
| 215 | } |
| 216 | } |
| 217 | |
| 218 | void CGrenade::TrySwitchGrenade(CGrenade* grenade) |
| 219 | { |
nothing calls this directly
no test coverage detected