hl2_src-leak-2017/src/utils/hlfaceposer/eventproperties.h

106 lines
2.4 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef EVENTPROPERTIES_H
#define EVENTPROPERTIES_H
#ifdef _WIN32
#pragma once
#endif
#include "basedialogparams.h"
class CChoreoScene;
class CChoreoEvent;
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CEventParams : public CBaseDialogParams
{
public:
// e.g. CChoreoEvent::GESTURE
int m_nType;
// Event descriptive name
char m_szName[ 256 ];
// Expression name/wav name/gesture name/look at name
char m_szParameters[ 256 ];
char m_szParameters2[ 256 ];
char m_szParameters3[ 256 ];
CChoreoScene *m_pScene;
float m_flStartTime;
float m_flEndTime;
bool m_bHasEndTime;
CChoreoEvent *m_pEvent;
bool m_bDisabled;
bool m_bFixedLength;
bool m_bResumeCondition;
bool m_bLockBodyFacing;
float m_flDistanceToTarget;
bool m_bForceShortMovement;
bool m_bSyncToFollowingGesture;
bool m_bPlayOverScript;
bool m_bUsesTag;
char m_szTagName[ 256 ];
char m_szTagWav[ 256 ];
// For Lookat events
int pitch;
int yaw;
bool usepitchyaw;
// For speak
bool m_bCloseCaptionNoAttenuate;
};
int EventProperties( CEventParams *params );
class CBaseEventPropertiesDialog
{
public:
virtual void InitDialog( HWND hwndDlg ) = 0;
virtual BOOL HandleMessage( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) = 0;
virtual void SetTitle() = 0;
HWND GetControl( int id ) { return GetDlgItem( m_hDialog, id ); }
virtual void ShowControlsForEventType( CEventParams *params );
virtual void InitControlData( CEventParams *params );
protected:
virtual BOOL InternalHandleMessage( CEventParams *params, HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, bool& handled );
void SetDialogTitle( CEventParams *params, char const *eventname, char const *desc );
void UpdateTagRadioButtons( CEventParams *params );
void PopulateTagList( CEventParams *params );
void ParseTags( CEventParams *params );
void PopulateNamedActorList( HWND wnd, CEventParams *params );
void GetSplineRect( HWND placeholder, RECT& rcOut );
void DrawSpline( HDC hdc, HWND placeholder, CChoreoEvent *e );
protected:
HWND m_hDialog;
};
#endif // EVENTPROPERTIES_H