diff --git a/src/burn/burn.h b/src/burn/burn.h index 08f11cc57..b58a2bd78 100644 --- a/src/burn/burn.h +++ b/src/burn/burn.h @@ -710,6 +710,7 @@ void IpsApplyPatches(UINT8* base, char* rom_name); #define GBF_VECTOR (1 << 23) #define GBF_RPG (1 << 24) #define GBF_SIM (1 << 25) +#define GBF_ADV (1 << 26) // flags for the family member #define FBF_MSLUG (1 << 0) diff --git a/src/burner/misc.cpp b/src/burner/misc.cpp index bb0f9b074..184470ce1 100644 --- a/src/burner/misc.cpp +++ b/src/burner/misc.cpp @@ -319,6 +319,11 @@ TCHAR* DecorateGenreInfo() _stprintf(szDecoratedGenre + _tcslen(szDecoratedGenre), _T(", ")); } + if (nGenre & GBF_ADV) { + _stprintf(szDecoratedGenre + _tcslen(szDecoratedGenre), FBALoadStringEx(hAppInst, IDS_GENRE_ADV, true)); + _stprintf(szDecoratedGenre + _tcslen(szDecoratedGenre), _T(", ")); + } + szDecoratedGenre[_tcslen(szDecoratedGenre) - 2] = _T('\0'); } diff --git a/src/burner/win32/resource_string.h b/src/burner/win32/resource_string.h index 75d342981..2f374d18b 100644 --- a/src/burner/win32/resource_string.h +++ b/src/burner/win32/resource_string.h @@ -238,6 +238,7 @@ #define IDS_GENRE_ACTION (IDS_STRING + 696) #define IDS_GENRE_RPG (IDS_STRING + 698) #define IDS_GENRE_SIM (IDS_STRING + 700) +#define IDS_GENRE_ADV (IDS_STRING + 702) #define IDS_FAMILY (IDS_STRING + 740) #define IDS_FAMILY_MSLUG (IDS_STRING + 742) diff --git a/src/burner/win32/sel.cpp b/src/burner/win32/sel.cpp index f02344a3b..e7389b6a2 100644 --- a/src/burner/win32/sel.cpp +++ b/src/burner/win32/sel.cpp @@ -162,6 +162,7 @@ HTREEITEM hFilterAction = NULL; HTREEITEM hFilterStrategy = NULL; HTREEITEM hFilterRpg = NULL; HTREEITEM hFilterSim = NULL; +HTREEITEM hFilterAdv = NULL; HTREEITEM hFilterOtherFamily = NULL; HTREEITEM hFilterMslug = NULL; HTREEITEM hFilterSf = NULL; @@ -284,7 +285,7 @@ static UINT64 MASKALL = ((UINT64)MASKCAPMISC | MASKCAVE | MASKCPS | MASKCPS2 #define MASKBOARDTYPEGENUINE (1) #define MASKFAMILYOTHER 0x10000000 -#define MASKALLGENRE (GBF_HORSHOOT | GBF_VERSHOOT | GBF_SCRFIGHT | GBF_VSFIGHT | GBF_BIOS | GBF_BREAKOUT | GBF_CASINO | GBF_BALLPADDLE | GBF_MAZE | GBF_MINIGAMES | GBF_PINBALL | GBF_PLATFORM | GBF_PUZZLE | GBF_QUIZ | GBF_SPORTSMISC | GBF_SPORTSFOOTBALL | GBF_MISC | GBF_MAHJONG | GBF_RACING | GBF_SHOOT | GBF_ACTION | GBF_RUNGUN | GBF_STRATEGY | GBF_RPG | GBF_SIM) +#define MASKALLGENRE (GBF_HORSHOOT | GBF_VERSHOOT | GBF_SCRFIGHT | GBF_VSFIGHT | GBF_BIOS | GBF_BREAKOUT | GBF_CASINO | GBF_BALLPADDLE | GBF_MAZE | GBF_MINIGAMES | GBF_PINBALL | GBF_PLATFORM | GBF_PUZZLE | GBF_QUIZ | GBF_SPORTSMISC | GBF_SPORTSFOOTBALL | GBF_MISC | GBF_MAHJONG | GBF_RACING | GBF_SHOOT | GBF_ACTION | GBF_RUNGUN | GBF_STRATEGY | GBF_RPG | GBF_SIM | GBF_ADV) #define MASKALLFAMILY (MASKFAMILYOTHER | FBF_MSLUG | FBF_SF | FBF_KOF | FBF_DSTLK | FBF_FATFURY | FBF_SAMSHO | FBF_19XX | FBF_SONICWI | FBF_PWRINST | FBF_SONIC | FBF_DONPACHI | FBF_MAHOU) #define MASKALLBOARD (MASKBOARDTYPEGENUINE | BDF_BOOTLEG | BDF_DEMO | BDF_HACK | BDF_HOMEBREW | BDF_PROTOTYPE) @@ -572,6 +573,7 @@ static int DoExtraFilters() if ((~nLoadMenuGenreFilter & GBF_STRATEGY) && (BurnDrvGetGenreFlags() & GBF_STRATEGY)) bGenreOk = 1; if ((~nLoadMenuGenreFilter & GBF_RPG) && (BurnDrvGetGenreFlags() & GBF_RPG)) bGenreOk = 1; if ((~nLoadMenuGenreFilter & GBF_SIM) && (BurnDrvGetGenreFlags() & GBF_SIM)) bGenreOk = 1; + if ((~nLoadMenuGenreFilter & GBF_ADV) && (BurnDrvGetGenreFlags() & GBF_ADV)) bGenreOk = 1; if (bGenreOk == 0) return 1; return 0; @@ -1336,6 +1338,7 @@ static void CreateFilters() _TVCreateFiltersA(hGenre , IDS_GENRE_STRATEGY , hFilterStrategy , nLoadMenuGenreFilter & GBF_STRATEGY ); _TVCreateFiltersA(hGenre , IDS_GENRE_RPG , hFilterRpg , nLoadMenuGenreFilter & GBF_RPG ); _TVCreateFiltersA(hGenre , IDS_GENRE_SIM , hFilterSim , nLoadMenuGenreFilter & GBF_SIM ); + _TVCreateFiltersA(hGenre , IDS_GENRE_ADV , hFilterAdv , nLoadMenuGenreFilter & GBF_ADV ); _TVCreateFiltersA(hGenre , IDS_GENRE_BIOS , hFilterBios , nLoadMenuGenreFilter & GBF_BIOS ); _TVCreateFiltersC(hRoot , IDS_SEL_HARDWARE , hHardware , nLoadMenuShowX & MASKALL ); @@ -1940,6 +1943,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP _TreeView_SetCheckState(hFilterList, hFilterStrategy, FALSE); _TreeView_SetCheckState(hFilterList, hFilterRpg, FALSE); _TreeView_SetCheckState(hFilterList, hFilterSim, FALSE); + _TreeView_SetCheckState(hFilterList, hFilterAdv, FALSE); nLoadMenuGenreFilter = MASKALLGENRE; } else { @@ -1970,6 +1974,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP _TreeView_SetCheckState(hFilterList, hFilterStrategy, TRUE); _TreeView_SetCheckState(hFilterList, hFilterRpg, TRUE); _TreeView_SetCheckState(hFilterList, hFilterSim, TRUE); + _TreeView_SetCheckState(hFilterList, hFilterAdv, TRUE); nLoadMenuGenreFilter = 0; } @@ -2066,6 +2071,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP if (hItemChanged == hFilterStrategy) _ToggleGameListing(nLoadMenuGenreFilter, GBF_STRATEGY); if (hItemChanged == hFilterRpg) _ToggleGameListing(nLoadMenuGenreFilter, GBF_RPG); if (hItemChanged == hFilterSim) _ToggleGameListing(nLoadMenuGenreFilter, GBF_SIM); + if (hItemChanged == hFilterAdv) _ToggleGameListing(nLoadMenuGenreFilter, GBF_ADV); RebuildEverything(); } diff --git a/src/burner/win32/string.rc b/src/burner/win32/string.rc index d2e4a8ed9..a26bcf107 100644 --- a/src/burner/win32/string.rc +++ b/src/burner/win32/string.rc @@ -239,6 +239,7 @@ BEGIN IDS_GENRE_ACTION "Action (Classic)" IDS_GENRE_RPG "RPG" IDS_GENRE_SIM "Simulator" + IDS_GENRE_ADV "Adventure" IDS_FAMILY "Family" IDS_FAMILY_MSLUG "Metal Slug"