Renderer: lighting for doom3 materials without bumpmaps (e.g. mcity/mchangar2)
Renderer: realtime doom3 materials preview
Renderer: realtime doom3 shadows preview
-Renderer: add shortcut to toggle between lighting/textured modes.
Linux: Provide .tar.gz of example-map data for et/wolf.
Textures Window: add inner dark outline to distinguish 'is-shader' outline from white textures.
HalfLife2: add HL2 map load/save.
VFS: add ability to browse VFS from file-open dialogs.
Installer: enable q3 brush-primitives map support.
Installer: add editor manual to linux installer
-Textures: remove "shaders only" option for doom3
Map: add conversion between map formats
Map: add conversion between entity definition formats
Build: add build-menu dmap support (doom3)
m_item.update();
PerformFiltering();
}
+ void reset()
+ {
+ g_filters_globals.exclude = 0;
+ m_item.update();
+ PerformFiltering();
+ }
typedef MemberCaller<ToggleFilterFlag, &ToggleFilterFlag::toggle> ToggleCaller;
};
GlobalToggles_insert(command, ToggleFilterFlag::ToggleCaller(g_filter_items.back()), ToggleItem::AddCallbackCaller(g_filter_items.back().m_item), accelerator);
}
+void InvertFilters()
+{
+ std::list<ToggleFilterFlag>::iterator iter;
+
+ for(iter = g_filter_items.begin(); iter != g_filter_items.end(); ++iter)
+ {
+ iter->toggle();
+ }
+}
+
+void ResetFilters()
+{
+ std::list<ToggleFilterFlag>::iterator iter;
+
+ for(iter = g_filter_items.begin(); iter != g_filter_items.end(); ++iter)
+ {
+ iter->reset();
+ }
+}
+
void Filters_constructMenu(GtkMenu* menu_in_menu)
{
create_check_menu_item_with_mnemonic(menu_in_menu, "World", "FilterWorldBrushes");
{
create_check_menu_item_with_mnemonic(menu_in_menu, "Botclips", "FilterBotClips");
}
+ // filter manipulation
+ menu_separator(menu_in_menu);
+ create_menu_item_with_mnemonic(menu_in_menu, "Invert filters", "InvertFilters");
+ create_menu_item_with_mnemonic(menu_in_menu, "Reset filters", "ResetFilters");
}
{
GlobalPreferenceSystem().registerPreference("SI_Exclude", SizeImportStringCaller(g_filters_globals.exclude), SizeExportStringCaller(g_filters_globals.exclude));
+ GlobalCommands_insert("InvertFilters", FreeCaller<InvertFilters>());
+ GlobalCommands_insert("ResetFilters", FreeCaller<ResetFilters>());
+
add_filter_command(EXCLUDE_WORLD, "FilterWorldBrushes", Accelerator('1', (GdkModifierType)GDK_MOD1_MASK));
add_filter_command(EXCLUDE_ENT, "FilterEntities", Accelerator('2', (GdkModifierType)GDK_MOD1_MASK));
if(g_pGameDescription->mGameType == "doom3")
GtkMenuItem* TextureBrowser_constructViewMenu(GtkMenu* menu)
{
GtkMenuItem* textures_menu_item = new_sub_menu_item_with_mnemonic("_View");
- GtkWidget* separator = gtk_separator_menu_item_new();
if(g_Layout_enableDetachableMenus.m_value)
menu_tearoff (menu);
create_check_menu_item_with_mnemonic(menu, "Hide _Unused", "ShowInUse");
create_menu_item_with_mnemonic(menu, "Show All", "ShowAllTextures");
- // we always want to show shaders but don't want a "Show Shaders" menu for doom3 games
- if(string_equal(g_pGameDescription->getRequiredKeyValue("shaders"), "doom3"))
+ // we always want to show shaders but don't want a "Show Shaders" menu for doom3 and .wad file games
+ if(g_pGameDescription->mGameType == "doom3" || !string_empty(g_pGameDescription->getKeyValue("show_wads")))
{
g_TextureBrowser.m_showShaders = true;
}
create_check_menu_item_with_mnemonic(menu, "Show shaders", "ToggleShowShaders");
}
- create_check_menu_item_with_mnemonic (menu, "Shaders Only", "ToggleShowShaderlistOnly");
+ if(g_pGameDescription->mGameType != "doom3" && string_empty(g_pGameDescription->getKeyValue("show_wads")))
+ {
+ create_check_menu_item_with_mnemonic (menu, "Shaders Only", "ToggleShowShaderlistOnly");
+ }
if(g_TextureBrowser.m_tags)
{
create_menu_item_with_mnemonic(menu, "Show Untagged", "ShowUntagged");
}
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator);
- gtk_widget_show(separator);
- g_TextureBrowser.m_shader_info_item = GTK_WIDGET(create_menu_item_with_mnemonic(menu, "Shader Info", "ShaderInfo"));
- gtk_widget_set_sensitive(g_TextureBrowser.m_shader_info_item, FALSE);
+ if(string_empty(g_pGameDescription->getKeyValue("show_wads")))
+ {
+ menu_separator(menu);
+ g_TextureBrowser.m_shader_info_item = GTK_WIDGET(create_menu_item_with_mnemonic(menu, "Shader Info", "ShaderInfo"));
+ gtk_widget_set_sensitive(g_TextureBrowser.m_shader_info_item, FALSE);
+ }
return textures_menu_item;
}
GtkMenuItem* TextureBrowser_constructTagsMenu(GtkMenu* menu)
{
GtkMenuItem* textures_menu_item = new_sub_menu_item_with_mnemonic("T_ags");
- GtkWidget* separator = gtk_separator_menu_item_new();
if (g_Layout_enableDetachableMenus.m_value)
menu_tearoff (menu);
create_menu_item_with_mnemonic(menu, "Add tag", "AddTag");
create_menu_item_with_mnemonic(menu, "Rename tag", "RenameTag");
create_menu_item_with_mnemonic(menu, "Delete tag", "DeleteTag");
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator);
- gtk_widget_show(separator);
+ menu_separator(menu);
create_menu_item_with_mnemonic(menu, "Copy tags from selected", "CopyTag");
create_menu_item_with_mnemonic(menu, "Paste tags to selected", "PasteTag");
path = path.substr(0, pos + 1);
TextureDirectory_loadTexture(path.c_str(), name.c_str());
}
-
- g_TextureBrowser.m_searchedTags = true;
- g_TextureBrowser_currentDirectory = tags_searched;
-
- g_TextureBrowser.m_nTotalHeight = 0;
- TextureBrowser_setOriginY(g_TextureBrowser, 0);
- TextureBrowser_heightChanged(g_TextureBrowser);
- TextureBrowser_updateTitle();
}
+ g_TextureBrowser.m_searchedTags = true;
+ g_TextureBrowser_currentDirectory = tags_searched;
+
+ g_TextureBrowser.m_nTotalHeight = 0;
+ TextureBrowser_setOriginY(g_TextureBrowser, 0);
+ TextureBrowser_heightChanged(g_TextureBrowser);
+ TextureBrowser_updateTitle();
}
g_slist_free(selected);
}