void CActor::IR_OnMouseWheel(int direction) { if(inventory().Action( (direction>0)? kWPN_ZOOM_DEC:kWPN_ZOOM_INC , CMD_START)) return; if (direction>0) OnNextWeaponSlot (); else OnPrevWeaponSlot (); }
void CActor::IR_OnMouseWheel(int direction) { if(hud_adj_mode) { g_player_hud->tune (Ivector().set(0,0,direction)); return; } if(inventory().Action( (direction>0)? (u16)kWPN_ZOOM_DEC:(u16)kWPN_ZOOM_INC , CMD_START)) return; if (direction>0) OnNextWeaponSlot (); else OnPrevWeaponSlot (); }
void CActor::IR_OnKeyboardPress(int cmd) { if(hud_adj_mode && pInput->iGetAsyncKeyState(DIK_LSHIFT)) return; if (Remote()) return; if (IsTalking()) return; if (m_input_external_handler && !m_input_external_handler->authorized(cmd)) return; switch (cmd) { case kWPN_FIRE: { /* XEM #95 */ //if( (mstate_wishful & mcLookout) && !IsGameTypeSingle() ) return; u16 slot = inventory().GetActiveSlot(); if(inventory().ActiveItem() && (slot==INV_SLOT_3 || slot==INV_SLOT_2) ) mstate_wishful &=~mcSprint; //----------------------------- if (OnServer()) { NET_Packet P; P.w_begin(M_PLAYER_FIRE); P.w_u16(ID()); u_EventSend(P); } }break; default: { }break; } if (!g_Alive()) return; if(m_holder && kUSE != cmd) { m_holder->OnKeyboardPress (cmd); if(m_holder->allowWeapon() && inventory().Action((u16)cmd, CMD_START)) return; return; }else if(inventory().Action((u16)cmd, CMD_START)) return; #ifdef DEBUG if(psActorFlags.test(AF_NO_CLIP)) { NoClipFly(cmd); return; } #endif //DEBUG switch(cmd) { case kJUMP: { mstate_wishful |= mcJump; }break; case kSPRINT_TOGGLE: { mstate_wishful ^= mcSprint; }break; case kCROUCH: { if( psActorFlags.test(AF_CROUCH_TOGGLE) ) mstate_wishful ^= mcCrouch; }break; case kCAM_1: cam_Set (eacFirstEye); break; case kCAM_2: cam_Set (eacLookAt); break; case kCAM_3: cam_Set (eacFreeLook); break; case kNIGHT_VISION: { SwitchNightVision(); break; } case kTORCH: { SwitchTorch(); break; } case kDETECTOR: { PIItem det_active = inventory().ItemFromSlot(DETECTOR_SLOT); if(det_active) { CCustomDetector* det = smart_cast<CCustomDetector*>(det_active); det->ToggleDetector (g_player_hud->attached_item(0)!=NULL); return; } }break; /* case kFLARE:{ PIItem fl_active = inventory().ItemFromSlot(FLARE_SLOT); if(fl_active) { CFlare* fl = smart_cast<CFlare*>(fl_active); fl->DropFlare (); return ; } PIItem fli = inventory().Get(CLSID_DEVICE_FLARE, true); if(!fli) return; CFlare* fl = smart_cast<CFlare*>(fli); if(inventory().Slot(fl)) fl->ActivateFlare (); }break; */ case kUSE: ActorUse(); break; case kDROP: b_DropActivated = TRUE; f_DropPower = 0; break; case kNEXT_SLOT: { OnNextWeaponSlot(); }break; case kPREV_SLOT: { OnPrevWeaponSlot(); }break; case kQUICK_USE_1: case kQUICK_USE_2: case kQUICK_USE_3: case kQUICK_USE_4: { const shared_str& item_name = g_quick_use_slots[cmd-kQUICK_USE_1]; if(item_name.size()) { PIItem itm = inventory().GetAny(item_name.c_str()); if(itm) { if (IsGameTypeSingle()) { inventory().Eat (itm); } else { inventory().ClientEat (itm); } StaticDrawableWrapper* _s = CurrentGameUI()->AddCustomStatic("item_used", true); string1024 str; strconcat (sizeof(str),str,*CStringTable().translate("st_item_used"),": ", itm->NameItem()); _s->wnd()->TextItemControl()->SetText(str); CurrentGameUI()->GetActorMenu().m_pQuickSlot->ReloadReferences(this); } } }break; } }
void CActor::IR_OnKeyboardPress(int cmd) { if (m_blocked_actions.find((EGameActions)cmd) != m_blocked_actions.end() ) return; // Real Wolf. 14.10.2014 if (Remote()) return; // if (conditions().IsSleeping()) return; if (IsTalking()) return; if (m_input_external_handler && !m_input_external_handler->authorized(cmd)) return; switch (cmd) { case kWPN_FIRE: { mstate_wishful &=~mcSprint; //----------------------------- if (OnServer()) { NET_Packet P; P.w_begin(M_PLAYER_FIRE); P.w_u16(ID()); u_EventSend(P); } }break; default: { }break; } if (!g_Alive()) return; if(m_holder && kUSE != cmd) { m_holder->OnKeyboardPress (cmd); if(m_holder->allowWeapon() && inventory().Action(cmd, CMD_START)) return; return; }else if(inventory().Action(cmd, CMD_START)) return; switch(cmd){ case kJUMP: { mstate_wishful |= mcJump; { // NET_Packet P; // u_EventGen(P, GE_ACTOR_JUMPING, ID()); // u_EventSend(P); } }break; case kCROUCH_TOGGLE: { g_bAutoClearCrouch = !g_bAutoClearCrouch; if (!g_bAutoClearCrouch) mstate_wishful |= mcCrouch; }break; case kSPRINT_TOGGLE: { if (mstate_wishful & mcSprint) mstate_wishful &=~mcSprint; else mstate_wishful |= mcSprint; }break; case kCAM_1: cam_Set (eacFirstEye); break; case kCAM_2: cam_Set (eacLookAt); break; case kCAM_3: cam_Set (eacFreeLook); break; case kNIGHT_VISION: { const xr_vector<CAttachableItem*>& all = CAttachmentOwner::attached_objects(); xr_vector<CAttachableItem*>::const_iterator it = all.begin(); xr_vector<CAttachableItem*>::const_iterator it_e = all.end(); for(;it!=it_e;++it){ CTorch* torch = smart_cast<CTorch*>(*it); if (torch){ torch->SwitchNightVision(); break; } } }break; case kTORCH:{ const xr_vector<CAttachableItem*>& all = CAttachmentOwner::attached_objects(); xr_vector<CAttachableItem*>::const_iterator it = all.begin(); xr_vector<CAttachableItem*>::const_iterator it_e = all.end(); for(;it!=it_e;++it){ CTorch* torch = smart_cast<CTorch*>(*it); if (torch){ torch->Switch(); break; } } }break; case kWPN_1: case kWPN_2: case kWPN_3: case kWPN_4: case kWPN_5: case kWPN_6: case kWPN_RELOAD: //Weapons->ActivateWeaponID (cmd-kWPN_1); break; case kUSE: ActorUse(); break; case kDROP: b_DropActivated = TRUE; f_DropPower = 0; break; case kNEXT_SLOT: { OnNextWeaponSlot(); }break; case kPREV_SLOT: { OnPrevWeaponSlot(); }break; case kUSE_BANDAGE: case kUSE_MEDKIT: { if(IsGameTypeSingle()) { PIItem itm = inventory().item((cmd==kUSE_BANDAGE)? CLSID_IITEM_BANDAGE:CLSID_IITEM_MEDKIT ); if(itm) { inventory().Eat (itm); SDrawStaticStruct* _s = HUD().GetUI()->UIGame()->AddCustomStatic("item_used", true); _s->m_endTime = Device.fTimeGlobal+3.0f;// 3sec string1024 str; strconcat (sizeof(str),str,*CStringTable().translate("st_item_used"),": ", itm->Name()); _s->wnd()->SetText (str); } } }break; #ifdef INV_NEW_SLOTS_SYSTEM case kUSE_SLOT_QUICK_ACCESS_0: case kUSE_SLOT_QUICK_ACCESS_1: case kUSE_SLOT_QUICK_ACCESS_2: case kUSE_SLOT_QUICK_ACCESS_3: { if(IsGameTypeSingle()) { PIItem itm = 0; switch (cmd){ case kUSE_SLOT_QUICK_ACCESS_0: itm = inventory().m_slots[SLOT_QUICK_ACCESS_0].m_pIItem; break; case kUSE_SLOT_QUICK_ACCESS_1: itm = inventory().m_slots[SLOT_QUICK_ACCESS_1].m_pIItem; break; case kUSE_SLOT_QUICK_ACCESS_2: itm = inventory().m_slots[SLOT_QUICK_ACCESS_2].m_pIItem; break; case kUSE_SLOT_QUICK_ACCESS_3: itm = inventory().m_slots[SLOT_QUICK_ACCESS_3].m_pIItem; break; } if (itm){ CMedkit* pMedkit = smart_cast<CMedkit*> (itm); CAntirad* pAntirad = smart_cast<CAntirad*> (itm); CEatableItem* pEatableItem = smart_cast<CEatableItem*> (itm); CBottleItem* pBottleItem = smart_cast<CBottleItem*> (itm); string1024 str; if(pMedkit || pAntirad || pEatableItem || pBottleItem){ PIItem iitm = inventory().Same(itm,true); if(iitm){ inventory().Eat(iitm); strconcat(sizeof(str),str,*CStringTable().translate("st_item_used"),": ", iitm->Name()); }else{ inventory().Eat(itm); strconcat(sizeof(str),str,*CStringTable().translate("st_item_used"),": ", itm->Name()); } SDrawStaticStruct* _s = HUD().GetUI()->UIGame()->AddCustomStatic("item_used", true); _s->m_endTime = Device.fTimeGlobal+3.0f;// 3sec _s->wnd()->SetText (str); } } } }break; #endif } }