binds... * shift + }/{: CameraModeNext/Prev

This commit is contained in:
Garux 2019-09-07 20:55:55 +03:00
parent 4ebfc1dcac
commit a834981d53

View File

@ -138,12 +138,13 @@ struct MotionDeltaValues {
enum camera_draw_mode enum camera_draw_mode
{ {
cd_wire, cd_wire = 0,
cd_solid, cd_solid = 1,
cd_texture, cd_texture = 2,
cd_texture_plus_wire, cd_texture_plus_wire = 3,
cd_lighting cd_lighting = 4
}; };
const int camera_draw_mode_count = 5;
struct camera_t struct camera_t
{ {
@ -2332,6 +2333,9 @@ void CamWnd_registerShortcuts(){
command_connect_accelerator( "TogglePreview" ); command_connect_accelerator( "TogglePreview" );
} }
command_connect_accelerator( "CameraModeNext" );
command_connect_accelerator( "CameraModePrev" );
command_connect_accelerator( "CameraSpeedInc" ); command_connect_accelerator( "CameraSpeedInc" );
command_connect_accelerator( "CameraSpeedDec" ); command_connect_accelerator( "CameraSpeedDec" );
} }
@ -2412,51 +2416,24 @@ void GlobalCamera_LookThroughCamera(){
void RenderModeImport( int value ){ void RenderModeImport( int value ){
switch ( value ) CamWnd_SetMode( static_cast<camera_draw_mode>( ( value < 0 || value >= camera_draw_mode_count)? 2 : value ) );
{
case 0:
CamWnd_SetMode( cd_wire );
break;
case 1:
CamWnd_SetMode( cd_solid );
break;
case 2:
CamWnd_SetMode( cd_texture );
break;
case 3:
CamWnd_SetMode( cd_texture_plus_wire );
break;
case 4:
CamWnd_SetMode( cd_lighting );
break;
default:
CamWnd_SetMode( cd_texture );
}
} }
typedef FreeCaller1<int, RenderModeImport> RenderModeImportCaller; typedef FreeCaller1<int, RenderModeImport> RenderModeImportCaller;
void RenderModeExport( const IntImportCallback& importer ){ void RenderModeExport( const IntImportCallback& importer ){
switch ( CamWnd_GetMode() ) importer( CamWnd_GetMode() );
{
case cd_wire:
importer( 0 );
break;
case cd_solid:
importer( 1 );
break;
case cd_texture:
importer( 2 );
break;
case cd_texture_plus_wire:
importer( 3 );
break;
case cd_lighting:
importer( 4 );
break;
}
} }
typedef FreeCaller1<const IntImportCallback&, RenderModeExport> RenderModeExportCaller; typedef FreeCaller1<const IntImportCallback&, RenderModeExport> RenderModeExportCaller;
void CameraModeNext(){
const int count = camera_draw_mode_count - ( g_pGameDescription->mGameType == "doom3"? 0 : 1 );
CamWnd_SetMode( static_cast<camera_draw_mode>( ( CamWnd_GetMode() + 1 ) % count ) );
}
void CameraModePrev(){
const int count = camera_draw_mode_count - ( g_pGameDescription->mGameType == "doom3"? 0 : 1 );
CamWnd_SetMode( static_cast<camera_draw_mode>( ( CamWnd_GetMode() + count - 1 ) % count ) );
}
void CamMSAAImport( int value ){ void CamMSAAImport( int value ){
g_camwindow_globals_private.m_MSAA = value ? 1 << value : value; g_camwindow_globals_private.m_MSAA = value ? 1 << value : value;
if ( g_camwnd != 0 ) { if ( g_camwnd != 0 ) {
@ -2516,27 +2493,13 @@ void Camera_constructPreferences( PreferencesPage& page ){
BoolExportCaller( g_camwindow_globals_private.m_bFaceWire ) BoolExportCaller( g_camwindow_globals_private.m_bFaceWire )
); );
if ( g_pGameDescription->mGameType == "doom3" ) { const char* render_modes[]{ "Wireframe", "Flatshade", "Textured", "Textured+Wire", "Lighting" };
const char* render_mode[] = { "Wireframe", "Flatshade", "Textured", "Textured+Wire", "Lighting" };
page.appendCombo( page.appendCombo(
"Render Mode", "Render Mode",
STRING_ARRAY_RANGE( render_mode ), StringArrayRange( render_modes, render_modes + ARRAY_SIZE( render_modes ) - ( g_pGameDescription->mGameType == "doom3"? 0 : 1 ) ),
IntImportCallback( RenderModeImportCaller() ), IntImportCallback( RenderModeImportCaller() ),
IntExportCallback( RenderModeExportCaller() ) IntExportCallback( RenderModeExportCaller() )
); );
}
else
{
const char* render_mode[] = { "Wireframe", "Flatshade", "Textured", "Textured+Wire" };
page.appendCombo(
"Render Mode",
STRING_ARRAY_RANGE( render_mode ),
IntImportCallback( RenderModeImportCaller() ),
IntExportCallback( RenderModeExportCaller() )
);
}
if( GlobalOpenGL().support_ARB_framebuffer_object ){ if( GlobalOpenGL().support_ARB_framebuffer_object ){
const char* samples[] = { "0", "2", "4", "8", "16", "32" }; const char* samples[] = { "0", "2", "4", "8", "16", "32" };
@ -2608,6 +2571,9 @@ void CamWnd_Construct(){
GlobalCommands_insert( "TogglePreview", FreeCaller<CamWnd_TogglePreview>(), Accelerator( GDK_F3 ) ); GlobalCommands_insert( "TogglePreview", FreeCaller<CamWnd_TogglePreview>(), Accelerator( GDK_F3 ) );
} }
GlobalCommands_insert( "CameraModeNext", FreeCaller<CameraModeNext>(), Accelerator( '}', (GdkModifierType)GDK_SHIFT_MASK ) );
GlobalCommands_insert( "CameraModePrev", FreeCaller<CameraModePrev>(), Accelerator( '{', (GdkModifierType)GDK_SHIFT_MASK ) );
GlobalCommands_insert( "CameraSpeedInc", FreeCaller<CameraSpeed_increase>(), Accelerator( GDK_KP_Add, (GdkModifierType)GDK_SHIFT_MASK ) ); GlobalCommands_insert( "CameraSpeedInc", FreeCaller<CameraSpeed_increase>(), Accelerator( GDK_KP_Add, (GdkModifierType)GDK_SHIFT_MASK ) );
GlobalCommands_insert( "CameraSpeedDec", FreeCaller<CameraSpeed_decrease>(), Accelerator( GDK_KP_Subtract, (GdkModifierType)GDK_SHIFT_MASK ) ); GlobalCommands_insert( "CameraSpeedDec", FreeCaller<CameraSpeed_decrease>(), Accelerator( GDK_KP_Subtract, (GdkModifierType)GDK_SHIFT_MASK ) );