mirror of
https://github.com/ENSL/NS.git
synced 2024-11-30 16:30:57 +00:00
5dcc163bd5
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@379 67975925-1194-0748-b3d5-c16f83f1a3a1
48 lines
No EOL
1.4 KiB
C++
48 lines
No EOL
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
|