diff --git a/Source/Glide64/Config.cpp b/Source/Glide64/Config.cpp index 83d8d9a6c..ad279397c 100644 --- a/Source/Glide64/Config.cpp +++ b/Source/Glide64/Config.cpp @@ -650,11 +650,11 @@ public: m_cbxHrsTile.Attach(GetDlgItem(IDC_CHK_TILE_TEX)); TTSetTxt(IDC_CHK_TILE_TEX, "Tile textures:\n\nWhen on, wide texture will be split on several tiles to fit in one 256-width texture.\nThis tiled texture takes much less video memory space and thus overall performance will increase.\nHowever, corresponding polygons must be split too, and this is not polished yet - various issues are possible, including black lines and polygons distortions.\n\n[Recommended: off]"); - m_cbxHrsTile.SetCheck(g_settings->ghq_hirs_tile > 0 ? BST_CHECKED : BST_UNCHECKED); + m_cbxHrsTile.SetCheck(g_settings->ghq_hirs_tile() ? BST_CHECKED : BST_UNCHECKED); m_cbxHrsForce16.Attach(GetDlgItem(IDC_CHK_FORCE_16BPP_TEXT)); TTSetTxt(IDC_CHK_FORCE_16BPP_TEXT, "Force 16bpp textures:\n\nThe color of the textures will be reduced to 16bpp.\nThis is another space saver and performance enhancer.\nThis halves the space used on the texture cache and the GFX hardware's texture RAM.\nColor reduction is done so that the original quality is preserved as much as possible.\nDepending on the texture, this usually is hardly noticeable.\nSometimes though, it can be: skies are a good example.\n\n[Recommended: off]"); - m_cbxHrsForce16.SetCheck(g_settings->ghq_hirs_tile > 0 ? BST_CHECKED : BST_UNCHECKED); + m_cbxHrsForce16.SetCheck(g_settings->ghq_hirs_f16bpp > 0 ? BST_CHECKED : BST_UNCHECKED); m_cbxHrsTexEdit.Attach(GetDlgItem(IDC_CHK_TEX_DUMP_EDIT)); TTSetTxt(IDC_CHK_TEX_DUMP_EDIT, "Texture dumping mode:\n\nIn this mode, you have that ability to dump textures on screen to the appropriate folder.\nYou can also reload textures while the game is running to see how they look instantly - big time saver!\n\nHotkeys:\n\"R\" reloads hires textures from the texture pack\n\"D\" toggles texture dumps on/off."); @@ -695,7 +695,7 @@ public: g_settings->SetGhqEnhtCmpr(m_cbxEnhTexCompression.GetCheck() == BST_CHECKED); g_settings->SetGhqEnhtGz(m_cbxEnhCompressCache.GetCheck() == BST_CHECKED); g_settings->SetGhqHirs((CSettings::HiResPackFormat_t)m_cmbHrsFormat.GetItemData(m_cmbHrsFormat.GetCurSel())); - g_settings->ghq_hirs_tile = (int)m_cbxHrsTile.GetCheck() == BST_CHECKED; + g_settings->SetGhqHirsTile(m_cbxHrsTile.GetCheck() == BST_CHECKED); g_settings->ghq_hirs_f16bpp = (int)m_cbxHrsForce16.GetCheck() == BST_CHECKED; g_settings->ghq_hirs_dump = (int)m_cbxHrsTexEdit.GetCheck() == BST_CHECKED; g_settings->ghq_hirs_altcrc = (int)m_cbxHrsAltCRC.GetCheck() == BST_CHECKED; diff --git a/Source/Glide64/Main.cpp b/Source/Glide64/Main.cpp index aaf73ed0f..15414ba7f 100644 --- a/Source/Glide64/Main.cpp +++ b/Source/Glide64/Main.cpp @@ -669,7 +669,7 @@ int InitGfx() { options |= COMPRESS_HIRESTEX; } - if (g_settings->ghq_hirs_tile) + if (g_settings->ghq_hirs_tile()) { options |= TILE_HIRESTEX; } diff --git a/Source/Glide64/Settings.cpp b/Source/Glide64/Settings.cpp index 99fee71dd..cb7721d3a 100644 --- a/Source/Glide64/Settings.cpp +++ b/Source/Glide64/Settings.cpp @@ -45,7 +45,7 @@ CSettings::CSettings() : m_ghq_enht_gz(false), m_ghq_enht_nobg(false), m_ghq_hirs_cmpr(false), -ghq_hirs_tile(0), + m_ghq_hirs_tile(false), ghq_hirs_f16bpp(0), ghq_hirs_gz(0), ghq_hirs_altcrc(0), @@ -144,7 +144,7 @@ void CSettings::RegisterSettings(void) general_setting(Set_ghq_enht_gz, "ghq_enht_gz", true); general_setting(Set_ghq_enht_nobg, "ghq_enht_nobg", false); general_setting(Set_ghq_hirs_cmpr, "ghq_hirs_cmpr", false); - general_setting(Set_ghq_hirs_tile, "ghq_hirs_tile", 0); + general_setting(Set_ghq_hirs_tile, "ghq_hirs_tile", false); general_setting(Set_ghq_hirs_f16bpp, "ghq_hirs_f16bpp", 0); general_setting(Set_ghq_hirs_gz, "ghq_hirs_gz", 1); general_setting(Set_ghq_hirs_altcrc, "ghq_hirs_altcrc", 1); @@ -370,6 +370,15 @@ void CSettings::SetGhqEnhtGz(bool value) } } +void CSettings::SetGhqHirsTile(bool value) +{ + if (value != m_ghq_hirs_tile) + { + m_ghq_hirs_tile = value; + m_dirty = true; + } +} + void CSettings::SetGhqEnhtNobg(bool value) { if (value != m_ghq_enht_nobg) @@ -508,7 +517,7 @@ void CSettings::ReadSettings() m_ghq_enht_gz = GetSetting(Set_ghq_enht_gz) != 0; m_ghq_enht_nobg = GetSetting(Set_ghq_enht_nobg) != 0; m_ghq_hirs_cmpr = GetSetting(Set_ghq_hirs_cmpr) != 0; - this->ghq_hirs_tile = GetSetting(Set_ghq_hirs_tile); + m_ghq_hirs_tile = GetSetting(Set_ghq_hirs_tile) != 0; this->ghq_hirs_f16bpp = GetSetting(Set_ghq_hirs_f16bpp); this->ghq_hirs_gz = GetSetting(Set_ghq_hirs_gz); this->ghq_hirs_altcrc = GetSetting(Set_ghq_hirs_altcrc); @@ -777,7 +786,7 @@ void CSettings::WriteSettings(void) SetSetting(Set_ghq_enht_gz, m_ghq_enht_gz); SetSetting(Set_ghq_enht_nobg, m_ghq_enht_nobg); SetSetting(Set_ghq_hirs_cmpr, m_ghq_hirs_cmpr); - SetSetting(Set_ghq_hirs_tile, g_settings->ghq_hirs_tile); + SetSetting(Set_ghq_hirs_tile, m_ghq_hirs_tile); SetSetting(Set_ghq_hirs_f16bpp, g_settings->ghq_hirs_f16bpp); SetSetting(Set_ghq_hirs_gz, g_settings->ghq_hirs_gz); SetSetting(Set_ghq_hirs_altcrc, g_settings->ghq_hirs_altcrc); diff --git a/Source/Glide64/Settings.h b/Source/Glide64/Settings.h index c9bfb45f1..629669514 100644 --- a/Source/Glide64/Settings.h +++ b/Source/Glide64/Settings.h @@ -212,7 +212,7 @@ public: inline bool ghq_enht_gz(void) const { return m_ghq_enht_gz; } inline bool ghq_enht_nobg(void) const { return m_ghq_enht_nobg; } inline bool ghq_hirs_cmpr(void) const { return m_ghq_hirs_cmpr; } - int ghq_hirs_tile; + inline bool ghq_hirs_tile(void) const { return m_ghq_hirs_tile; } int ghq_hirs_f16bpp; int ghq_hirs_gz; int ghq_hirs_altcrc; @@ -277,6 +277,7 @@ public: void SetGhqCmpr(TextureCompression_t value); void SetGhqHirs(HiResPackFormat_t value); void SetGhqEnhtGz(bool value); + void SetGhqHirsTile(bool value); void SetGhqEnhtNobg(bool value); void SetGhqEnhtCmpr(bool value); void SetGhqHirsCmpr(bool value); @@ -329,6 +330,7 @@ private: bool m_ghq_enht_gz; bool m_ghq_enht_nobg; bool m_ghq_hirs_cmpr; + bool m_ghq_hirs_tile; ucode_t m_ucode; StippleMode_t m_stipple_mode; hacks_t m_hacks;