mirror of
https://github.com/ENSL/NS.git
synced 2024-12-11 05:11:27 +00:00
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
|
#if !defined( GAMESTUDIOMODELRENDERER_H )
|
||
|
#define GAMESTUDIOMODELRENDERER_H
|
||
|
#if defined( _WIN32 )
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
====================
|
||
|
CGameStudioModelRenderer
|
||
|
|
||
|
====================
|
||
|
*/
|
||
|
class CGameStudioModelRenderer : public CStudioModelRenderer
|
||
|
{
|
||
|
public:
|
||
|
CGameStudioModelRenderer( void );
|
||
|
|
||
|
// Set up model bone positions
|
||
|
virtual void StudioSetupBones ( void );
|
||
|
|
||
|
// Estimate gait frame for player
|
||
|
virtual void StudioEstimateGait ( entity_state_t *pplayer );
|
||
|
|
||
|
// Process movement of player
|
||
|
virtual void StudioProcessGait ( entity_state_t *pplayer );
|
||
|
|
||
|
// Player drawing code
|
||
|
virtual int StudioDrawPlayer( int flags, entity_state_t *pplayer );
|
||
|
virtual int _StudioDrawPlayer( int flags, entity_state_t *pplayer );
|
||
|
|
||
|
// Apply special effects to transform matrix
|
||
|
virtual void StudioFxTransform( cl_entity_t *ent, float transform[3][4] );
|
||
|
|
||
|
private:
|
||
|
// For local player, in third person, we need to store real render data and then
|
||
|
// setup for with fake/client side animation data
|
||
|
void SavePlayerState( entity_state_t *pplayer );
|
||
|
// Called to set up local player's animation values
|
||
|
void SetupClientAnimation( entity_state_t *pplayer );
|
||
|
// Called to restore original player state information
|
||
|
void RestorePlayerState( entity_state_t *pplayer );
|
||
|
|
||
|
private:
|
||
|
// Private data
|
||
|
bool m_bLocal;
|
||
|
};
|
||
|
|
||
|
#endif // GAMESTUDIOMODELRENDERER_H
|