Skip to content
Snippets Groups Projects
Select Git revision
  • 9c654c9d463bef423b070e564f2524fed8aea97f
  • branchX default protected
  • Inventory
  • UIControls
  • fsv2
  • tonetest
  • from_nb
  • tonemapping
  • opt-shadows
  • BX-634
  • xCSG
  • hc
  • gizmos
  • gui2CSSLexer
  • msExporter
  • gui2
  • gui2Fix
  • master protected
  • pk
  • mesh_optimize
  • light_wip
  • version_X.11.2 protected
  • version_X.11.1 protected
  • version_X.11.1-dev protected
  • version_X.11.0-dev protected
  • version_X.10.1 protected
  • version_X.10.1-dev protected
  • version_X.10.0-dev protected
  • version_X.9.5 protected
  • version_X.9.4 protected
  • version_X.9.3 protected
  • version_X.9.3-dev protected
  • version_X.9.2-dev protected
  • version_X.9.1-dev protected
  • version_X.9.0-dev protected
  • version_X.8.2 protected
  • version_X.8.2-dev protected
  • version_X.8.1-dev protected
  • version_X.8.0-dev protected
  • version_X.7.1 protected
  • version_X.7.0 protected
41 results

BaseTool.cpp

Blame
  • BaseTool.cpp 10.55 KiB
    
    /***********************************************************
    Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
    See the license in LICENSE
    ***********************************************************/
    
    #include "BaseTool.h"
    
    #include <particles/sxparticles.h>
    #include <decals/sxdecals.h>
    #include "Player.h"
    
    /*! \skydocent base_tool
    Базовый класс для инструмента (в т.ч оружие). То, что игрок может взять в руки и использовать
    */
    
    
    BEGIN_PROPTABLE(CBaseTool)
    	//! Время перезарядки, с
    	DEFINE_FIELD_FLOAT(m_fReloadTime, PDFF_NOEDIT | PDFF_NOEXPORT, "reload_time", "", EDITOR_NONE)
    	//! Время прицеливания, с
    	DEFINE_FIELD_FLOAT(m_fZoomTime, PDFF_NOEDIT | PDFF_NOEXPORT, "zoom_time", "", EDITOR_NONE)
    
    	//! Смещение визуальной модели
    	DEFINE_FIELD_VECTOR(m_vSlotPos, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_offset", "", EDITOR_NONE)
    	//! Вращение визуальной модели
    	DEFINE_FIELD_ANGLES(m_qSlotRot, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_rotation", "", EDITOR_NONE)
    	//! Смещение визуальной модели в прицеливании
    	DEFINE_FIELD_VECTOR(m_vSlotPosAim, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_offset_aim", "", EDITOR_NONE)
    	//! Вращение визуальной модели в прицеливании
    	DEFINE_FIELD_ANGLES(m_qSlotRotAim, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_rotation_aim", "", EDITOR_NONE)
    	//! Смещение визуальной модели при приближении к стене
    	DEFINE_FIELD_VECTOR(m_vSlotPosClose, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_offset_close", "", EDITOR_NONE)
    	//! Вращение визуальной модели при приближении к стене
    	DEFINE_FIELD_ANGLES(m_qSlotRotClose, PDFF_NOEDIT | PDFF_NOEXPORT, "slot_rotation_close", "", EDITOR_NONE)
    
    	//! Расстояние от центра модели до кончика ствола
    	DEFINE_FIELD_FLOAT(m_fCenterLength, PDFF_NOEDIT | PDFF_NOEXPORT, "center_length", "", EDITOR_NONE)
    	
    	//! Разрешить прицеливание
    	DEFINE_FIELD_INT(m_iZoomable, PDFF_NOEDIT | PDFF_NOEXPORT, "zoomable", "", EDITOR_NONE)
    
    	//! Звук первичного действия
    	DEFINE_FIELD_STRING(m_szPrimaryActionSound, PDFF_NOEDIT | PDFF_NOEXPORT, "action1_sound", "", EDITOR_NONE)
    	//! Звук вторичного действия
    	DEFINE_FIELD_STRING(m_szSecondaryActionSound, PDFF_NOEDIT | PDFF_NOEXPORT, "action2_sound", "", EDITOR_NONE)
    	//! Эффект первичного действия
    	DEFINE_FIELD_STRING(m_szPrimaryActionMuzzleflash, PDFF_NOEDIT | PDFF_NOEXPORT, "action1_muzzle", "", EDITOR_NONE)
    	//! Эффект вторичного действия
    	DEFINE_FIELD_STRING(m_szSecondaryActionMuzzleflash, PDFF_NOEDIT | PDFF_NOEXPORT, "action2_muzzle", "", EDITOR_NONE)
    	
    	//! Максимальная дальность
    	DEFINE_FIELD_FLOAT(m_fMaxDistance, PDFF_NOEDIT | PDFF_NOEXPORT, "max_distance", "", EDITOR_NONE)
    	//! Подходящие типы припасов, классы, через запятую
    	DEFINE_FIELD_STRING(m_szUsableAmmos, PDFF_NOEDIT | PDFF_NOEXPORT, "ammos", "", EDITOR_NONE)
    	//! Класс заряженного в данный момент припаса
    	DEFINE_FIELD_STRING(m_szLoadedAmmo, PDFF_NOEDIT | PDFF_NOEXPORT, "loaded_ammo", "", EDITOR_NONE)
    
    END_PROPTABLE()
    
    REGISTER_ENTITY_NOLISTING(CBaseTool, base_tool);
    
    CBaseTool::CBaseTool(CEntityManager * pMgr):
    	BaseClass(pMgr),
    	m_bInPrimaryAction(false),
    	m_bInSecondaryAction(false),
    	m_bWorldModel(false),
    	m_bCanUse(true),
    	m_fZoomTime(0.0f),
    	m_fReloadTime(0.0f),