]> de.git.xonotic.org Git - xonotic/netradiant.git/commitdiff
Merge commit 'ce0ea4bdc1521a3926994077fc104e7a155d299d' into master-merge
authorThomas Debesse <dev@illwieckz.net>
Mon, 20 Jun 2022 02:29:25 +0000 (04:29 +0200)
committerThomas Debesse <dev@illwieckz.net>
Mon, 20 Jun 2022 02:29:25 +0000 (04:29 +0200)
12 files changed:
plugins/entity/light.cpp
plugins/shaders/shaders.cpp
radiant/entity.cpp
radiant/gtkdlgs.cpp
radiant/mainframe.cpp
radiant/mru.cpp
radiant/patchmanip.cpp
radiant/preferences.cpp
radiant/xywindow.cpp
radiant/xywindow.h
tools/quake3/q3map2/game_quake3.h
tools/quake3/q3map2/map.c

index 9d8b92472c5f3165f546dc4c62beb109da1246e7..018a4cf82db21e711825c0be6ab10f202d6e8086 100644 (file)
@@ -531,10 +531,12 @@ Callback<void()> m_changed;
 bool m_useCenterKey;
 
 Doom3LightRadius( const char* defaultRadius ) : m_defaultRadius( 300, 300, 300 ), m_center( 0, 0, 0 ), m_useCenterKey( false ){
-       if ( !string_parse_vector3( defaultRadius, m_defaultRadius ) ) {
+       if ( g_lightType == LIGHTTYPE_DOOM3 ){
+               if ( !string_parse_vector3( defaultRadius, m_defaultRadius ) ) {
                globalErrorStream() << "Doom3LightRadius: failed to parse default light radius\n";
-       }
+               }
        m_radius = m_defaultRadius;
+       }
 }
 
 void lightRadiusChanged( const char* value ){
@@ -655,7 +657,7 @@ void render( RenderStateFlags state ) const {
 };
 
 inline void default_extents( Vector3& extents ){
-       extents = Vector3( 8, 8, 8 );
+       extents = Vector3( 12, 12, 12 );
 }
 
 class ShaderRef
index 58c5232581958eebfd36082a1a86336d7e32b76f..bcf29cb1d8915255e79e072c97aab0956d97bf1d 100644 (file)
@@ -1277,6 +1277,7 @@ bool ShaderTemplate::parseQuake3( Tokeniser& tokeniser ){
 
                                if ( string_equal_nocase( surfaceparm, "fog" ) ) {
                                        m_nFlags |= QER_FOG;
+                                       m_nFlags |= QER_TRANS;
                                        if ( m_fTrans == 1.0f ) { // has not been explicitly set by qer_trans
                                                m_fTrans = 0.35f;
                                        }
index adb4ed11089aaebc74a47b33d10137b1301df8f3..f7579e5e6573ff80300d56510e2c8fbcd18391f4 100644 (file)
@@ -591,7 +591,9 @@ void Entity_constructMenu( ui::Menu menu ){
        create_menu_item_with_mnemonic( menu, "_Regroup", "GroupSelection" );
        create_menu_item_with_mnemonic( menu, "_Ungroup", "UngroupSelection" );
        create_menu_item_with_mnemonic( menu, "_Connect", "ConnectSelection" );
-       create_menu_item_with_mnemonic( menu, "_KillConnect", "KillConnectSelection" );
+       if ( g_pGameDescription->mGameType == "nexuiz" ) {
+               create_menu_item_with_mnemonic( menu, "_KillConnect", "KillConnectSelection" );
+       }
        create_menu_item_with_mnemonic( menu, "_Select Color...", "EntityColor" );
        create_menu_item_with_mnemonic( menu, "_Normalize Color...", "NormalizeColor" );
 }
index 4c09dc48aeb64cf710dbc31a5781b9eef9ff72d7..7a32120388dfd24955b18a3d741ef282ff3df07f 100644 (file)
@@ -333,7 +333,7 @@ void ProjectSettingsDialog_ok( ProjectSettingsDialog& dialog ){
 }
 
 void DoProjectSettings(){
-       if ( ConfirmModified( "Edit Project Settings" ) ) {
+       //if ( ConfirmModified( "Edit Project Settings" ) ) {
                ModalDialog modal;
                ProjectSettingsDialog dialog;
 
@@ -344,7 +344,7 @@ void DoProjectSettings(){
                }
 
                window.destroy();
-       }
+       //}
 }
 
 // =============================================================================
@@ -664,13 +664,13 @@ EMessageBoxReturn DoTextureLayout( float *fx, float *fy ){
                        }
                }
        }
-       
+
        // Initialize with last used values
        char buf[16];
-       
+
        sprintf( buf, "%f", last_used_texture_layout_scale_x );
        x.text( buf );
-       
+
        sprintf( buf, "%f", last_used_texture_layout_scale_y );
        y.text( buf );
 
@@ -681,7 +681,7 @@ EMessageBoxReturn DoTextureLayout( float *fx, float *fy ){
        if ( ret == eIDOK ) {
                *fx = static_cast<float>( atof( gtk_entry_get_text( x ) ) );
                *fy = static_cast<float>( atof( gtk_entry_get_text( y ) ) );
-       
+
                // Remember last used values
                last_used_texture_layout_scale_x = *fx;
                last_used_texture_layout_scale_y = *fy;
index 4999543a6e7f513800b474512af2e64de8faf9f7..96a9566f6ecff765b097ff383c770cc62ab6a6c0 100644 (file)
@@ -2043,15 +2043,16 @@ ui::MenuItem create_file_menu(){
        create_menu_item_with_mnemonic( menu, "_Export selected...", "ExportSelected" );
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "Save re_gion...", "SaveRegion" );
-       menu_separator( menu );
-       create_menu_item_with_mnemonic( menu, "_Refresh models", "RefreshReferences" );
-       menu_separator( menu );
+//     menu_separator( menu );
+//     create_menu_item_with_mnemonic( menu, "_Refresh models", "RefreshReferences" );
+//     menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "Pro_ject settings...", "ProjectSettings" );
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "_Pointfile...", "TogglePointfile" );
        menu_separator( menu );
        MRU_constructMenu( menu );
        menu_separator( menu );
+//     create_menu_item_with_mnemonic( menu, "Check for NetRadiant update (web)", "CheckForUpdate" ); // FIXME
        create_menu_item_with_mnemonic( menu, "E_xit", "Exit" );
 
        return file_menu_item;
@@ -2075,18 +2076,22 @@ ui::MenuItem create_edit_menu(){
        create_menu_item_with_mnemonic( menu, "Duplicate, make uni_que", "CloneSelectionAndMakeUnique" );
        create_menu_item_with_mnemonic( menu, "D_elete", "DeleteSelection" );
        menu_separator( menu );
-       create_menu_item_with_mnemonic( menu, "Pa_rent", "ParentSelection" );
+       create_menu_item_with_mnemonic( menu, "Snap To Grid", "SnapToGrid" );
+       //create_menu_item_with_mnemonic( menu, "Pa_rent", "ParentSelection" );
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "C_lear Selection", "UnSelectSelection" );
        create_menu_item_with_mnemonic( menu, "_Invert Selection", "InvertSelection" );
        create_menu_item_with_mnemonic( menu, "Select i_nside", "SelectInside" );
        create_menu_item_with_mnemonic( menu, "Select _touching", "SelectTouching" );
 
-       auto convert_menu = create_sub_menu_with_mnemonic( menu, "E_xpand Selection" );
-       if ( g_Layout_enableDetachableMenus.m_value ) {
-               menu_tearoff( convert_menu );
-       }
-       create_menu_item_with_mnemonic( convert_menu, "To Whole _Entities", "ExpandSelectionToEntities" );
+       menu_separator( menu );
+
+//     auto convert_menu = create_sub_menu_with_mnemonic( menu, "E_xpand Selection" );
+//     if ( g_Layout_enableDetachableMenus.m_value ) {
+//             menu_tearoff( convert_menu );
+//     }
+       create_menu_item_with_mnemonic( menu, "Select All Of Type", "SelectAllOfType" );
+       create_menu_item_with_mnemonic( menu, "_Expand Selection To Entities", "ExpandSelectionToEntities" );
 
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "Pre_ferences...", "Preferences" );
@@ -2138,6 +2143,7 @@ ui::MenuItem create_view_menu( MainFrame::EViewStyle style ){
                create_menu_item_with_mnemonic( menu, "Entity Inspector", "ViewEntityInfo" );
        }
        create_menu_item_with_mnemonic( menu, "_Surface Inspector", "SurfaceInspector" );
+       create_menu_item_with_mnemonic( menu, "_Patch Inspector", "PatchInspector" );
        create_menu_item_with_mnemonic( menu, "Entity List", "EntityList" );
 
        menu_separator( menu );
@@ -2176,6 +2182,8 @@ ui::MenuItem create_view_menu( MainFrame::EViewStyle style ){
                        menu_separator( orthographic_menu );
                }
 
+               create_menu_item_with_mnemonic( orthographic_menu, "Center on Selected", "CenterXYView" );
+               menu_separator( orthographic_menu );
                create_menu_item_with_mnemonic( orthographic_menu, "_XY 100%", "Zoom100" );
                create_menu_item_with_mnemonic( orthographic_menu, "XY Zoom _In", "ZoomIn" );
                create_menu_item_with_mnemonic( orthographic_menu, "XY Zoom _Out", "ZoomOut" );
@@ -2188,6 +2196,12 @@ ui::MenuItem create_view_menu( MainFrame::EViewStyle style ){
                if ( g_Layout_enableDetachableMenus.m_value ) {
                        menu_tearoff( menu_in_menu );
                }
+               create_menu_item_with_mnemonic( menu_in_menu, "Show Size Info", "ToggleSizePaint" );
+               create_menu_item_with_mnemonic( menu_in_menu, "Show Crosshair", "ToggleCrosshairs" );
+               create_menu_item_with_mnemonic( menu_in_menu, "Show Grid", "ToggleGrid" );
+
+               menu_separator( menu_in_menu );
+
                create_check_menu_item_with_mnemonic( menu_in_menu, "Show _Angles", "ShowAngles" );
                create_check_menu_item_with_mnemonic( menu_in_menu, "Show _Names", "ShowNames" );
                create_check_menu_item_with_mnemonic( menu_in_menu, "Show Blocks", "ShowBlocks" );
@@ -2207,12 +2221,14 @@ ui::MenuItem create_view_menu( MainFrame::EViewStyle style ){
        }
        menu_separator( menu );
        {
-               auto menu_in_menu = create_sub_menu_with_mnemonic( menu, "Hide/Show" );
-               if ( g_Layout_enableDetachableMenus.m_value ) {
-                       menu_tearoff( menu_in_menu );
-               }
-               create_menu_item_with_mnemonic( menu_in_menu, "Hide Selected", "HideSelected" );
-               create_menu_item_with_mnemonic( menu_in_menu, "Show Hidden", "ShowHidden" );
+//             GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic( menu, "Hide/Show" );
+//             if ( g_Layout_enableDetachableMenus.m_value ) {
+//                     menu_tearoff( menu_in_menu );
+//             }
+//             create_menu_item_with_mnemonic( menu_in_menu, "Hide Selected", "HideSelected" );
+//             create_menu_item_with_mnemonic( menu_in_menu, "Show Hidden", "ShowHidden" );
+               create_menu_item_with_mnemonic( menu, "Hide Selected", "HideSelected" );
+               create_menu_item_with_mnemonic( menu, "Show Hidden", "ShowHidden" );
        }
        menu_separator( menu );
        {
@@ -2387,7 +2403,7 @@ ui::MenuItem create_help_menu(){
                menu_tearoff( menu );
        }
 
-       create_menu_item_with_mnemonic( menu, "Manual", "OpenManual" );
+//     create_menu_item_with_mnemonic( menu, "Manual", "OpenManual" );
 
        // this creates all the per-game drop downs for the game pack helps
        // it will take care of hooking the Sys_OpenURL calls etc.
index 640fd3914ca94e1f3f9ec7a77d3f9c5e9c1d66af..709876482dd4621afbfab24bf0dd034912b3cbcf 100644 (file)
 #include "map.h"
 #include "qe3.h"
 
-const int MRU_MAX = 4;
+#define MRU_MAX 9
 namespace {
-       GtkMenuItem *MRU_items[MRU_MAX];
-       std::size_t MRU_used;
-       typedef CopiedString MRU_filename_t;
-       MRU_filename_t MRU_filenames[MRU_MAX];
-       typedef const char* MRU_key_t;
-       MRU_key_t MRU_keys[MRU_MAX] = { "File0", "File1", "File2", "File3" };
+GtkMenuItem *MRU_items[MRU_MAX];
+std::size_t MRU_used;
+typedef CopiedString MRU_filename_t;
+MRU_filename_t MRU_filenames[MRU_MAX];
+typedef const char* MRU_key_t;
+MRU_key_t MRU_keys[MRU_MAX] = { "File0", "File1", "File2", "File3", "File4", "File5", "File6", "File7", "File8" };
 }
 
 inline const char* MRU_GetText( std::size_t index ){
@@ -54,25 +54,25 @@ private:
 
 public:
        EscapedMnemonic() : m_buffer(){
-               m_buffer.push_back( '_' );
-       }
-       const char* c_str() const {
-               return m_buffer.c_str();
-       }
-       void push_back( char c ){ // not escaped
-               m_buffer.push_back( c );
-       }
-       std::size_t write( const char* buffer, std::size_t length ){
-               for ( const char* end = buffer + length; buffer != end; ++buffer )
-               {
-                       if ( *buffer == '_' ) {
-                               m_buffer.push_back( '_' );
-                       }
-
-                       m_buffer.push_back( *buffer );
+       m_buffer.push_back( '_' );
+}
+const char* c_str() const {
+       return m_buffer.c_str();
+}
+void push_back( char c ){ // not escaped
+       m_buffer.push_back( c );
+}
+std::size_t write( const char* buffer, std::size_t length ){
+       for ( const char* end = buffer + length; buffer != end; ++buffer )
+       {
+               if ( *buffer == '_' ) {
+                       m_buffer.push_back( '_' );
                }
-               return length;
+
+               m_buffer.push_back( *buffer );
        }
+       return length;
+}
 };
 
 template<typename T>
@@ -175,17 +175,17 @@ void MRU_Activate( std::size_t index ){
 class LoadMRU
 {
 private:
-       std::size_t m_number;
+std::size_t m_number;
 
 public:
-       LoadMRU( std::size_t number )
-               : m_number( number ){
-       }
-       void load(){
-               if ( ConfirmModified( "Open Map" ) ) {
-                       MRU_Activate( m_number - 1 );
-               }
+LoadMRU( std::size_t number )
+       : m_number( number ){
+}
+void load(){
+       if ( ConfirmModified( "Open Map" ) ) {
+               MRU_Activate( m_number - 1 );
        }
+}
 };
 
 typedef MemberCaller<LoadMRU, void(), &LoadMRU::load> LoadMRUCaller;
@@ -194,6 +194,11 @@ LoadMRU g_load_mru1( 1 );
 LoadMRU g_load_mru2( 2 );
 LoadMRU g_load_mru3( 3 );
 LoadMRU g_load_mru4( 4 );
+LoadMRU g_load_mru5( 5 );
+LoadMRU g_load_mru6( 6 );
+LoadMRU g_load_mru7( 7 );
+LoadMRU g_load_mru8( 8 );
+LoadMRU g_load_mru9( 9 );
 
 void MRU_constructMenu( ui::Menu menu ){
        {
@@ -216,6 +221,31 @@ void MRU_constructMenu( ui::Menu menu ){
                item.hide();
                MRU_AddWidget( item, 3 );
        }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_5", LoadMRUCaller( g_load_mru5 ) );
+               item.hide();
+               MRU_AddWidget( item, 3 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_6", LoadMRUCaller( g_load_mru6 ) );
+               item.hide();
+               MRU_AddWidget( item, 3 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_7", LoadMRUCaller( g_load_mru7 ) );
+               item.hide();
+               MRU_AddWidget( item, 3 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_8", LoadMRUCaller( g_load_mru8 ) );
+               item.hide();
+               MRU_AddWidget( item, 3 );
+       }
+       {
+               auto item = create_menu_item_with_mnemonic( menu, "_9", LoadMRUCaller( g_load_mru9 ) );
+               item.hide();
+               MRU_AddWidget( item, 3 );
+       }
 }
 
 #include "preferencesystem.h"
index bd9d378beee07b6bda85c8b517278827648fb7cc..7ae19fb4af6d6b65a8fc133f8ac398014b2bee87 100644 (file)
@@ -616,6 +616,10 @@ void PatchPreferences_construct(){
 void Patch_registerCommands(){
        GlobalCommands_insert( "InvertCurveTextureX", makeCallbackF(Patch_FlipTextureX), Accelerator( 'I', (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
        GlobalCommands_insert( "InvertCurveTextureY", makeCallbackF(Patch_FlipTextureY), Accelerator( 'I', (GdkModifierType)GDK_SHIFT_MASK ) );
+       GlobalCommands_insert( "IncPatchColumn", makeCallbackF(Patch_InsertInsertColumn), Accelerator( GDK_KP_Add, (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
+       GlobalCommands_insert( "IncPatchRow", makeCallbackF(Patch_InsertInsertRow), Accelerator( GDK_KP_Add, (GdkModifierType)GDK_CONTROL_MASK ) );
+       GlobalCommands_insert( "DecPatchColumn", makeCallbackF(Patch_DeleteLastColumn), Accelerator( GDK_KP_Subtract, (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
+       GlobalCommands_insert( "DecPatchRow", makeCallbackF(Patch_DeleteLastRow), Accelerator( GDK_KP_Subtract, (GdkModifierType)GDK_CONTROL_MASK ) );
        GlobalCommands_insert( "NaturalizePatch", makeCallbackF(Patch_NaturalTexture), Accelerator( 'N', (GdkModifierType)GDK_CONTROL_MASK ) );
        GlobalCommands_insert( "PatchCylinder", makeCallbackF(Patch_Cylinder) );
        GlobalCommands_insert( "PatchDenseCylinder", makeCallbackF(Patch_DenseCylinder) );
@@ -671,12 +675,12 @@ void Patch_constructMenu( ui::Menu menu ){
        create_menu_item_with_mnemonic( menu, "End cap", "PatchEndCap" );
        create_menu_item_with_mnemonic( menu, "Bevel", "PatchBevel" );
        {
-               auto menu_in_menu = create_sub_menu_with_mnemonic( menu, "More End caps, Bevels" );
-               if ( g_Layout_enableDetachableMenus.m_value ) {
-                       menu_tearoff( menu_in_menu );
-               }
-               create_menu_item_with_mnemonic( menu_in_menu, "Square Endcap", "PatchSquareBevel" );
-               create_menu_item_with_mnemonic( menu_in_menu, "Square Bevel", "PatchSquareEndcap" );
+//             auto menu_in_menu = create_sub_menu_with_mnemonic( menu, "More End caps, Bevels" );
+//             if ( g_Layout_enableDetachableMenus.m_value ) {
+//                     menu_tearoff( menu_in_menu );
+//             }
+               create_menu_item_with_mnemonic( menu, "Square Endcap", "PatchSquareBevel" );
+               create_menu_item_with_mnemonic( menu, "Square Bevel", "PatchSquareEndcap" );
        }
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "Cone", "PatchCone" );
@@ -716,24 +720,38 @@ void Patch_constructMenu( ui::Menu menu ){
                        menu_tearoff( menu_in_menu );
                }
                create_menu_item_with_mnemonic( menu_in_menu, "Invert", "InvertCurve" );
-               auto menu_3 = create_sub_menu_with_mnemonic( menu_in_menu, "Re-disperse" );
-               if ( g_Layout_enableDetachableMenus.m_value ) {
-                       menu_tearoff( menu_3 );
-               }
-               create_menu_item_with_mnemonic( menu_3, "Rows", "RedisperseRows" );
-               create_menu_item_with_mnemonic( menu_3, "Columns", "RedisperseCols" );
-               auto menu_4 = create_sub_menu_with_mnemonic( menu_in_menu, "Smooth" );
-               if ( g_Layout_enableDetachableMenus.m_value ) {
-                       menu_tearoff( menu_4 );
-               }
-               create_menu_item_with_mnemonic( menu_4, "Rows", "SmoothRows" );
-               create_menu_item_with_mnemonic( menu_4, "Columns", "SmoothCols" );
+//             auto menu_3 = create_sub_menu_with_mnemonic( menu_in_menu, "Re-disperse" );
+//             if ( g_Layout_enableDetachableMenus.m_value ) {
+//                     menu_tearoff( menu_3 );
+//             }
+               menu_separator( menu_in_menu );
+               create_menu_item_with_mnemonic( menu, "Rows", "RedisperseRows" );
+               create_menu_item_with_mnemonic( menu, "Columns", "RedisperseCols" );
+//             auto menu_4 = create_sub_menu_with_mnemonic( menu_in_menu, "Smooth" );
+//             if ( g_Layout_enableDetachableMenus.m_value ) {
+//                     menu_tearoff( menu_4 );
+//             }
+               create_menu_item_with_mnemonic( menu, "Rows", "SmoothRows" );
+               create_menu_item_with_mnemonic( menu, "Columns", "SmoothCols" );
                create_menu_item_with_mnemonic( menu_in_menu, "Transpose", "MatrixTranspose" );
+
        }
        menu_separator( menu );
        create_menu_item_with_mnemonic( menu, "Cap Selection", "CapCurrentCurve" );
        create_menu_item_with_mnemonic( menu, "Cycle Cap Texture", "CycleCapTexturePatch" );
        menu_separator( menu );
+       {
+               auto menu_in_menu = create_sub_menu_with_mnemonic( menu, "Texture" );
+               if ( g_Layout_enableDetachableMenus.m_value ) {
+                       menu_tearoff( menu_in_menu );
+               }
+               create_menu_item_with_mnemonic( menu_in_menu, "Cycle Projection", "CycleCapTexturePatch" );
+               create_menu_item_with_mnemonic( menu_in_menu, "Naturalize", "NaturalizePatch" );
+               create_menu_item_with_mnemonic( menu_in_menu, "Invert X", "InvertCurveTextureX" );
+               create_menu_item_with_mnemonic( menu_in_menu, "Invert Y", "InvertCurveTextureY" );
+
+       }
+       menu_separator( menu );
        {
                auto menu_in_menu = create_sub_menu_with_mnemonic( menu, "Overlay" );
                if ( g_Layout_enableDetachableMenus.m_value ) {
index 7372a74a0adc30167b185f54f9a0b745cdef52ce..f308ebcf1e78226f80933ddb5f9439528b1372d9 100644 (file)
@@ -281,7 +281,7 @@ void CGameDialog::GameFileImport( int value ){
        }
 
        if ( ( *iGame )->mGameFile != m_sGameFile ) {
-               m_sGameFile = ( *iGame )->mGameFile;
+       m_sGameFile = ( *iGame )->mGameFile;
 
                // do not trigger radiant restart when switching game on startup using Global Preferences dialog
                if ( !onStartup ) {
index 17141af554c832a5b012b91795061ee99bd3aa14..237f44af26637db03be1633c6747e3a6c70d4cc6 100644 (file)
@@ -349,6 +349,8 @@ struct xywindow_globals_private_t
        bool m_bChaseMouse;
        bool m_bSizePaint;
 
+       bool g_bCrossHairs;
+
        xywindow_globals_private_t() :
                d_showgrid( true ),
 
@@ -364,7 +366,9 @@ struct xywindow_globals_private_t
 
                m_bCamXYUpdate( true ),
                m_bChaseMouse( true ),
-               m_bSizePaint( true ){
+               m_bSizePaint( true ),
+
+               g_bCrossHairs( false ){
        }
 
 };
@@ -551,8 +555,6 @@ VIEWTYPE GlobalXYWnd_getCurrentViewType(){
 // =============================================================================
 // variables
 
-bool g_bCrossHairs = false;
-
 ui::Menu XYWnd::m_mnuDrop(ui::null);
 
 // this is disabled, and broken
@@ -1365,7 +1367,7 @@ void XYWnd::XY_MouseMoved( int x, int y, unsigned int buttons ){
                           << "  z:: " << FloatFormat( m_mousePosition[2], 6, 1 );
                g_pParentWnd->SetStatusText( g_pParentWnd->m_position_status, status.c_str() );
 
-               if ( g_bCrossHairs ) {
+               if ( g_xywindow_globals_private.g_bCrossHairs ) {
                        XYWnd_Update( *this );
                }
 
@@ -2311,7 +2313,7 @@ void XYWnd::XY_Draw(){
                PaintSizeInfo( nDim1, nDim2, min, max );
        }
 
-       if ( g_bCrossHairs ) {
+       if ( g_xywindow_globals_private.g_bCrossHairs ) {
                glColor4f( 0.2f, 0.9f, 0.2f, 0.8f );
                glBegin( GL_LINES );
                if ( m_viewType == XY ) {
@@ -2541,7 +2543,7 @@ void XY_ZoomOut(){
 
 
 void ToggleShowCrosshair(){
-       g_bCrossHairs ^= 1;
+       g_xywindow_globals_private.g_bCrossHairs ^= 1;
        XY_UpdateAllWindows();
 }
 
@@ -2777,6 +2779,7 @@ void XYWindow_Construct(){
        GlobalPreferenceSystem().registerPreference( "NewRightClick", make_property_string( g_xywindow_globals.m_bRightClick ) );
        GlobalPreferenceSystem().registerPreference( "ChaseMouse", make_property_string( g_xywindow_globals_private.m_bChaseMouse ) );
        GlobalPreferenceSystem().registerPreference( "SizePainting", make_property_string( g_xywindow_globals_private.m_bSizePaint ) );
+       GlobalPreferenceSystem().registerPreference( "ShowCrosshair", make_property_string( g_xywindow_globals_private.g_bCrossHairs ) );
        GlobalPreferenceSystem().registerPreference( "NoStipple", make_property_string( g_xywindow_globals.m_bNoStipple ) );
        GlobalPreferenceSystem().registerPreference( "SI_ShowCoords", make_property_string( g_xywindow_globals_private.show_coordinates ) );
        GlobalPreferenceSystem().registerPreference( "SI_ShowOutlines", make_property_string( g_xywindow_globals_private.show_outline ) );
index ac059329518178de2d63c32843579c56352f6be8..bf7eb853432cc683a4f4874aaac0c5f28abd239c 100644 (file)
@@ -255,10 +255,10 @@ struct xywindow_globals_t
        bool m_bNoStipple;
 
        xywindow_globals_t() :
-               color_gridback( 1.f, 1.f, 1.f ),
-               color_gridminor( 0.75f, 0.75f, 0.75f ),
-               color_gridmajor( 0.5f, 0.5f, 0.5f ),
-               color_gridblock( 0.f, 0.f, 1.f ),
+               color_gridback( 0.77f, 0.77f, 0.77f ),
+               color_gridminor( 0.83f, 0.83f, 0.83f ),
+               color_gridmajor( 0.89f, 0.89f, 0.89f ),
+               color_gridblock( 1.0f, 1.0f, 1.0f ),
                color_gridtext( 0.f, 0.f, 0.f ),
                color_brushes( 0.f, 0.f, 0.f ),
                color_selbrushes( 1.f, 0.f, 0.f ),
index acc7e30c6a4e4c83035f376a2b2acec8370c4b07..6362369ae085e42e09e6807ba688ec036a0af21c 100644 (file)
@@ -68,7 +68,7 @@
 #define Q_CONT_NODROP               0x80000000  /* don't leave bodies or items (death fog, lava) */
 
 #define Q_SURF_NODAMAGE             0x1         /* never give falling damage */
-#define Q_SURF_SLICK                0x2         /* effects game physics */
+#define Q_SURF_SLICK                0x2         /* effects game physics: zero friction on this */
 #define Q_SURF_SKY                  0x4         /* lighting from environment map */
 #define Q_SURF_LADDER               0x8
 #define Q_SURF_NOIMPACT             0x10        /* don't make missile explosions */
                { "nodlight",       0,                          0,                          Q_SURF_NODLIGHT,            0,                          0,                          0 },
                { "dust",           0,                          0,                          Q_SURF_DUST,                0,                          0,                          0 },
                { "noob",           0,                          0,                          Q_SURF_NOOB,                0,                          0,                          0 },
-               { "ob",     0,                          0,                          0,                          0,                          C_OB,               0 },
+               { "ob",             0,                          0,                          0,                          0,                          C_OB,                       0 },
 
 
                /* null */
index aae88ae84bc56e3144bd3f09511631bbec6b248c..eba484198bb43349f80b00043d9dc4e301f37921 100644 (file)
@@ -528,7 +528,8 @@ void SetBrushContents( brush_t *b ){
        //%     mixed = qfalse;
 
        /* get the content/compile flags for every side in the brush */
-       for ( i = 1; i < b->numsides; i++, s++ )
+       //for ( i = 1; i < b->numsides; i++, s++ )
+       for ( i = 1; i < b->numsides; i++ )
        {
                s = &b->sides[ i ];
                if ( s->shaderInfo == NULL ) {
@@ -539,6 +540,33 @@ void SetBrushContents( brush_t *b ){
 
                contentFlags |= s->contentFlags;
                compileFlags |= s->compileFlags;
+
+               /* resolve inconsistency, when brush content was determined by 1st face */
+               if ( b->contentShader->compileFlags & C_LIQUID ){
+                       continue;
+               }
+               else if ( s->compileFlags & C_LIQUID ){
+                       b->contentShader = s->shaderInfo;
+               }
+               else if ( b->contentShader->compileFlags & C_FOG ){
+                       continue;
+               }
+               else if ( s->compileFlags & C_FOG ){
+                       b->contentShader = s->shaderInfo;
+               }
+               //playerclip
+               else if ( b->contentShader->contentFlags & 0x10000 ){
+                       continue;
+               }
+               else if ( s->contentFlags & 0x10000 ){
+                       b->contentShader = s->shaderInfo;
+               }
+               else if (!( b->contentShader->compileFlags & C_SOLID )){
+                       continue;
+               }
+               else if (!( s->compileFlags & C_SOLID )){
+                       b->contentShader = s->shaderInfo;
+               }
        }
 
        /* ydnar: getting rid of this stupid warning */