[wheel cache -> default] Bring Henke's code in.
This commit is contained in:
+221
-36
@@ -23,6 +23,7 @@
|
||||
#include "MessageManager.h"
|
||||
|
||||
static Preference<bool> g_bMoveRandomToEnd( "MoveRandomToEnd", false );
|
||||
static Preference<bool> g_bPrecacheAllSorts( "PreCacheAllWheelSorts", false);
|
||||
|
||||
#define NUM_WHEEL_ITEMS ((int)ceil(NUM_WHEEL_ITEMS_TO_DRAW+2))
|
||||
#define WHEEL_TEXT(s) THEME->GetString( "MusicWheel", ssprintf("%sText",s.c_str()) );
|
||||
@@ -69,18 +70,18 @@ void MusicWheel::Load( RString sType )
|
||||
{
|
||||
ROULETTE_SWITCH_SECONDS .Load(sType,"RouletteSwitchSeconds");
|
||||
ROULETTE_SLOW_DOWN_SWITCHES .Load(sType,"RouletteSlowDownSwitches");
|
||||
NUM_SECTION_COLORS .Load(sType,"NumSectionColors");
|
||||
NUM_SECTION_COLORS .Load(sType,"NumSectionColors");
|
||||
SONG_REAL_EXTRA_COLOR .Load(sType,"SongRealExtraColor");
|
||||
SORT_MENU_COLOR .Load(sType,"SortMenuColor");
|
||||
SHOW_ROULETTE .Load(sType,"ShowRoulette");
|
||||
SHOW_RANDOM .Load(sType,"ShowRandom");
|
||||
SHOW_PORTAL .Load(sType,"ShowPortal");
|
||||
SORT_MENU_COLOR .Load(sType,"SortMenuColor");
|
||||
SHOW_ROULETTE .Load(sType,"ShowRoulette");
|
||||
SHOW_RANDOM .Load(sType,"ShowRandom");
|
||||
SHOW_PORTAL .Load(sType,"ShowPortal");
|
||||
RANDOM_PICKS_LOCKED_SONGS .Load(sType,"RandomPicksLockedSongs");
|
||||
MOST_PLAYED_SONGS_TO_SHOW .Load(sType,"MostPlayedSongsToShow");
|
||||
RECENT_SONGS_TO_SHOW .Load(sType,"RecentSongsToShow");
|
||||
MODE_MENU_CHOICE_NAMES .Load(sType,"ModeMenuChoiceNames");
|
||||
SORT_ORDERS .Load(sType,"SortOrders");
|
||||
SHOW_EASY_FLAG .Load(sType,"UseEasyMarkerFlag");
|
||||
SORT_ORDERS .Load(sType,"SortOrders");
|
||||
SHOW_EASY_FLAG .Load(sType,"UseEasyMarkerFlag");
|
||||
USE_SECTIONS_WITH_PREFERRED_GROUP .Load(sType,"UseSectionsWithPreferredGroup");
|
||||
HIDE_INACTIVE_SECTIONS .Load(sType,"OnlyShowActiveSection");
|
||||
REMIND_WHEEL_POSITIONS .Load(sType,"RemindWheelPositions");
|
||||
@@ -113,25 +114,36 @@ void MusicWheel::Load( RString sType )
|
||||
* stable_sort) from its output, and title will be the secondary sort, without having
|
||||
* to re-sort by title each time. */
|
||||
SONGMAN->SortSongs();
|
||||
|
||||
|
||||
FOREACH_ENUM( SortOrder, so ) {
|
||||
m_WheelItemDatasStatus[so]=INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
void MusicWheel::BeginScreen()
|
||||
{
|
||||
RageTimer timer;
|
||||
RString times;
|
||||
/* Build all of the wheel item data. Do this after selecting the extra stage,
|
||||
* so it knows to always display it. */
|
||||
FOREACH_ENUM( SortOrder, so )
|
||||
{
|
||||
BuildWheelItemDatas( m_WheelItemDatas[so], so );
|
||||
times += ssprintf( "%i:%.3f ", so, timer.GetDeltaTime() );
|
||||
}
|
||||
LOG->Trace( "MusicWheel sorting took: %s", times.c_str() );
|
||||
FOREACH_ENUM( SortOrder, so ) {
|
||||
if(m_WheelItemDatasStatus[so]!=INVALID) {
|
||||
m_WheelItemDatasStatus[so]=NEEDREFILTER;
|
||||
|
||||
}
|
||||
|
||||
/* Set m_LastModeMenuItem to the first item that matches the current mode. (Do this
|
||||
* after building wheel item data.) */
|
||||
if(g_bPrecacheAllSorts) {
|
||||
readyWheelItemsData(so);
|
||||
times += ssprintf( "%i:%.3f ", so, timer.GetDeltaTime() );
|
||||
}
|
||||
}
|
||||
if(g_bPrecacheAllSorts) {
|
||||
LOG->Trace( "MusicWheel sorting took: %s", times.c_str() );
|
||||
}
|
||||
|
||||
// Set m_LastModeMenuItem to the first item that matches the current mode. (Do this
|
||||
// after building wheel item data.)
|
||||
{
|
||||
const vector<MusicWheelItemData *> &from = m_WheelItemDatas[SORT_MODE_MENU];
|
||||
const vector<MusicWheelItemData *> &from = getWheelItemsData(SORT_MODE_MENU);
|
||||
for( unsigned i=0; i<from.size(); i++ )
|
||||
{
|
||||
ASSERT( &*from[i]->m_pAction );
|
||||
@@ -227,14 +239,19 @@ void MusicWheel::BeginScreen()
|
||||
|
||||
MusicWheel::~MusicWheel()
|
||||
{
|
||||
FOREACH_ENUM( SortOrder, so )
|
||||
FOREACH( MusicWheelItemData*, m_WheelItemDatas[so], i )
|
||||
FOREACH_ENUM( SortOrder, so ) {
|
||||
vector<MusicWheelItemData*>::iterator i = m__UnFilteredWheelItemDatas[so].begin();
|
||||
vector<MusicWheelItemData*>::iterator iEnd = m__UnFilteredWheelItemDatas[so].end();
|
||||
for( ; i != iEnd; ++i ) {
|
||||
delete *i;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* If a song or course is set in GAMESTATE and available, select it. Otherwise,
|
||||
* choose the first available song or course. Return true if an item was set,
|
||||
* false if no items are available. */
|
||||
/* If a song or course is set in GAMESTATE and available, select it. Otherwise, choose the
|
||||
* first available song or course. Return true if an item was set, false if no items are
|
||||
* available. */
|
||||
bool MusicWheel::SelectSongOrCourse()
|
||||
{
|
||||
if( GAMESTATE->m_pPreferredSong && SelectSong( GAMESTATE->m_pPreferredSong ) )
|
||||
@@ -247,7 +264,7 @@ bool MusicWheel::SelectSongOrCourse()
|
||||
return true;
|
||||
|
||||
// Select the first selectable song based on the sort order...
|
||||
vector<MusicWheelItemData *> &wiWheelItems = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
vector<MusicWheelItemData *> &wiWheelItems = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
for( unsigned i = 0; i < wiWheelItems.size(); i++ )
|
||||
{
|
||||
if( wiWheelItems[i]->m_pSong )
|
||||
@@ -280,7 +297,7 @@ bool MusicWheel::SelectSong( const Song *p )
|
||||
return false;
|
||||
|
||||
unsigned i;
|
||||
vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
vector<MusicWheelItemData *> &from = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
for( i=0; i<from.size(); i++ )
|
||||
{
|
||||
if( from[i]->m_pSong == p )
|
||||
@@ -308,7 +325,7 @@ bool MusicWheel::SelectCourse( const Course *p )
|
||||
return false;
|
||||
|
||||
unsigned i;
|
||||
vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
vector<MusicWheelItemData *> &from = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
for( i=0; i<from.size(); i++ )
|
||||
{
|
||||
if( from[i]->m_pCourse == p )
|
||||
@@ -335,7 +352,7 @@ bool MusicWheel::SelectModeMenuItem()
|
||||
{
|
||||
// Select the last-chosen option.
|
||||
ASSERT( GAMESTATE->m_SortOrder == SORT_MODE_MENU );
|
||||
const vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
const vector<MusicWheelItemData *> &from = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
unsigned i;
|
||||
for( i=0; i<from.size(); i++ )
|
||||
{
|
||||
@@ -839,20 +856,185 @@ void MusicWheel::BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelIt
|
||||
WID.m_Flags.iStagesForSong = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
vector<MusicWheelItemData *> & MusicWheel::getWheelItemsData(SortOrder so) {
|
||||
// Update the popularity and init icons.
|
||||
readyWheelItemsData(so);
|
||||
return m__WheelItemDatas[so];
|
||||
}
|
||||
|
||||
void MusicWheel::readyWheelItemsData(SortOrder so) {
|
||||
if(m_WheelItemDatasStatus[so]!=VALID) {
|
||||
RageTimer timer;
|
||||
|
||||
vector<MusicWheelItemData *> &aUnFilteredDatas=m__UnFilteredWheelItemDatas[so];
|
||||
|
||||
if(m_WheelItemDatasStatus[so]==INVALID) {
|
||||
BuildWheelItemDatas( aUnFilteredDatas, so );
|
||||
}
|
||||
FilterWheelItemDatas( aUnFilteredDatas, m__WheelItemDatas[so], so );
|
||||
m_WheelItemDatasStatus[so]=VALID;
|
||||
|
||||
LOG->Trace( "MusicWheel sorting took: %f", timer.GetTimeSinceStart() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void MusicWheel::FilterWheelItemDatas(vector<MusicWheelItemData *> &aUnFilteredDatas, vector<MusicWheelItemData *> &aFilteredData, SortOrder so )
|
||||
{
|
||||
|
||||
unsigned unfilteredSize=aUnFilteredDatas.size();
|
||||
|
||||
/* Only add TYPE_PORTAL if there's at least one song on the list. */
|
||||
bool bFoundAnySong = false;
|
||||
for( unsigned i=0; i < unfilteredSize; i++ ) {
|
||||
if( aUnFilteredDatas[i]->m_Type == TYPE_SONG ) {
|
||||
bFoundAnySong = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
vector<bool> aiRemove;
|
||||
aiRemove.insert( aiRemove.begin(), unfilteredSize, false );
|
||||
|
||||
const int iMaxStagesForSong = GAMESTATE->GetSmallestNumStagesLeftForAnyHumanPlayer();
|
||||
|
||||
Song *pExtraStageSong = NULL;
|
||||
if( GAMESTATE->IsAnExtraStage() )
|
||||
{
|
||||
Steps *pSteps;
|
||||
SONGMAN->GetExtraStageInfo( GAMESTATE->IsExtraStage2(), GAMESTATE->GetCurrentStyle(), pExtraStageSong, pSteps );
|
||||
}
|
||||
|
||||
/* Mark any songs that aren't playable in aiRemove. */
|
||||
|
||||
for( unsigned i=0; i< unfilteredSize; i++ )
|
||||
{
|
||||
MusicWheelItemData& WID = *aUnFilteredDatas[i];
|
||||
|
||||
/* If we have no songs, remove Random and Portal. */
|
||||
if( WID.m_Type == TYPE_RANDOM || WID.m_Type == TYPE_PORTAL )
|
||||
{
|
||||
if( !bFoundAnySong )
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Filter songs that we don't have enough stages to play. */
|
||||
if( WID.m_Type == TYPE_SONG )
|
||||
{
|
||||
Song* pSong = WID.m_pSong;
|
||||
|
||||
/* Never remove the extra stage song. */
|
||||
if( pExtraStageSong && WID.m_pSong == pExtraStageSong )
|
||||
continue;
|
||||
|
||||
/* Check that we have enough stages to play this song. */
|
||||
if( GAMESTATE->GetNumStagesMultiplierForSong(WID.m_pSong) > iMaxStagesForSong )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
int iLocked = UNLOCKMAN->SongIsLocked( pSong );
|
||||
if( iLocked & LOCKED_DISABLED )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If we're on an extra stage, and this song is selected, ignore #SELECTABLE. */
|
||||
if( pSong != GAMESTATE->m_pCurSong || !GAMESTATE->IsAnExtraStage() )
|
||||
{
|
||||
/* Hide songs that asked to be hidden via #SELECTABLE. */
|
||||
if( iLocked & LOCKED_SELECTABLE )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
if( so != SORT_ROULETTE && iLocked & LOCKED_ROULETTE )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Hide locked songs. If RANDOM_PICKS_LOCKED_SONGS, hide in Roulette and Random,
|
||||
* too. */
|
||||
if( (so!=SORT_ROULETTE || !RANDOM_PICKS_LOCKED_SONGS) && iLocked )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If the song has no steps for the current style, remove it. */
|
||||
if( !pSong->HasStepsType(GAMESTATE->GetCurrentStyle()->m_StepsType) )
|
||||
{
|
||||
aiRemove[i] = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if( WID.m_Type == TYPE_COURSE )
|
||||
{
|
||||
if( !WID.m_pCourse->IsPlayableIn(GAMESTATE->GetCurrentStyle()->m_StepsType) )
|
||||
aiRemove[i] = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* Filter out the songs we're removing. */
|
||||
|
||||
aFilteredData.reserve( unfilteredSize );
|
||||
for( unsigned i=0; i< unfilteredSize; i++ )
|
||||
{
|
||||
if( aiRemove[i] )
|
||||
continue;
|
||||
aFilteredData.push_back( aUnFilteredDatas[i] );
|
||||
}
|
||||
|
||||
// Update the song count in each section header.
|
||||
unsigned filteredSize=aFilteredData.size();
|
||||
for( unsigned i=0; i < filteredSize; )
|
||||
{
|
||||
MusicWheelItemData& WID = *aFilteredData[i];
|
||||
++i;
|
||||
if( WID.m_Type != TYPE_SECTION )
|
||||
continue;
|
||||
|
||||
// Count songs in this section
|
||||
WID.m_iSectionCount = 0;
|
||||
for( ; i < filteredSize && aFilteredData[i]->m_sText == WID.m_sText; ++i )
|
||||
++WID.m_iSectionCount;
|
||||
}
|
||||
|
||||
// If we have any section headers with no songs, then we filtered all of the songs in that group,
|
||||
// so remove it. This isn't optimized like the above since this is a rare case.
|
||||
for( unsigned i=0; i < filteredSize; ++i )
|
||||
{
|
||||
MusicWheelItemData& WID = *aFilteredData[i];
|
||||
if( WID.m_Type != TYPE_SECTION )
|
||||
continue;
|
||||
if( WID.m_iSectionCount > 0 )
|
||||
continue;
|
||||
aFilteredData.erase( aFilteredData.begin()+i, aFilteredData.begin()+i+1 );
|
||||
--i;
|
||||
--filteredSize;
|
||||
}
|
||||
|
||||
/* Update the popularity. This is affected by filtering. */
|
||||
if( so == SORT_POPULARITY )
|
||||
{
|
||||
for( unsigned i=0; i< min(3u,arrayWheelItemDatas.size()); i++ )
|
||||
for( unsigned i=0; i< min(3u,aFilteredData.size()); i++ )
|
||||
{
|
||||
MusicWheelItemData& WID = *arrayWheelItemDatas[i];
|
||||
MusicWheelItemData& WID = *aFilteredData[i];
|
||||
WID.m_Flags.iPlayersBestNumber = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
// If we've filtered all items, insert a dummy.
|
||||
if( arrayWheelItemDatas.empty() )
|
||||
arrayWheelItemDatas.push_back( new MusicWheelItemData(TYPE_SECTION, NULL, "- EMPTY -", NULL, RageColor(1,0,0,1), 0) );
|
||||
if( aFilteredData.empty() )
|
||||
aFilteredData.push_back( new MusicWheelItemData(TYPE_SECTION, NULL, "- EMPTY -", NULL, RageColor(1,0,0,1), 0) );
|
||||
}
|
||||
|
||||
void MusicWheel::UpdateSwitch()
|
||||
@@ -980,7 +1162,7 @@ bool MusicWheel::ChangeSort( SortOrder new_so ) // return true if change success
|
||||
return false;
|
||||
|
||||
// Don't change to SORT_MODE_MENU if it doesn't have at least two choices.
|
||||
if( new_so == SORT_MODE_MENU && m_WheelItemDatas[new_so].size() < 2 )
|
||||
if( new_so == SORT_MODE_MENU && getWheelItemsData(new_so).size() < 2 )
|
||||
return false;
|
||||
|
||||
switch( m_WheelState )
|
||||
@@ -1116,7 +1298,7 @@ void MusicWheel::StartRandom()
|
||||
{
|
||||
// Shuffle and use the roulette wheel.
|
||||
RandomGen rnd;
|
||||
random_shuffle( m_WheelItemDatas[SORT_ROULETTE].begin(), m_WheelItemDatas[SORT_ROULETTE].end(), rnd );
|
||||
random_shuffle( getWheelItemsData(SORT_ROULETTE).begin(), getWheelItemsData(SORT_ROULETTE).end(), rnd );
|
||||
GAMESTATE->m_SortOrder.Set( SORT_ROULETTE );
|
||||
}
|
||||
else
|
||||
@@ -1154,7 +1336,7 @@ void MusicWheel::SetOpenSection( RString group )
|
||||
GAMEMAN->GetCompatibleStyles( GAMESTATE->m_pCurGame, GAMESTATE->GetNumPlayersEnabled(), vpPossibleStyles );
|
||||
|
||||
m_CurWheelItemData.clear();
|
||||
vector<MusicWheelItemData *> &from = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
vector<MusicWheelItemData *> &from = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
m_CurWheelItemData.reserve( from.size() );
|
||||
for( unsigned i = 0; i < from.size(); ++i )
|
||||
{
|
||||
@@ -1316,7 +1498,10 @@ void MusicWheel::PlayerJoined()
|
||||
// We need to rebuild the wheel item data in this situation. -aj
|
||||
if( !GAMESTATE->IsCourseMode() && !PREFSMAN->m_bAutogenSteps )
|
||||
{
|
||||
BuildWheelItemDatas( m_WheelItemDatas[GAMESTATE->m_SortOrder], GAMESTATE->m_SortOrder );
|
||||
if(m_WheelItemDatasStatus[GAMESTATE->m_SortOrder]!=INVALID)
|
||||
m_WheelItemDatasStatus[GAMESTATE->m_SortOrder]=NEEDREFILTER;
|
||||
|
||||
RebuildWheelItems();
|
||||
}
|
||||
|
||||
SetOpenSection( m_sExpandedSectionName );
|
||||
@@ -1366,7 +1551,7 @@ Song *MusicWheel::GetPreferredSelectionForRandomOrPortal()
|
||||
}
|
||||
|
||||
RString sPreferredGroup = m_sExpandedSectionName;
|
||||
vector<MusicWheelItemData *> &wid = m_WheelItemDatas[GAMESTATE->m_SortOrder];
|
||||
vector<MusicWheelItemData *> &wid = getWheelItemsData(GAMESTATE->m_SortOrder);
|
||||
|
||||
StepsType st = GAMESTATE->GetCurrentStyle()->m_StepsType;
|
||||
|
||||
|
||||
+14
-6
@@ -53,15 +53,14 @@ protected:
|
||||
MusicWheelItem *MakeItem();
|
||||
|
||||
void GetSongList( vector<Song*> &arraySongs, SortOrder so );
|
||||
void BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelItems, SortOrder so );
|
||||
bool SelectSongOrCourse();
|
||||
bool SelectCourse( const Course *p );
|
||||
bool SelectModeMenuItem();
|
||||
//bool SelectCustomItem();
|
||||
|
||||
virtual void UpdateSwitch();
|
||||
|
||||
vector<MusicWheelItemData *> m_WheelItemDatas[NUM_SortOrder]; // aliases into m_UnfilteredWheelItemDatas
|
||||
vector<MusicWheelItemData *> & getWheelItemsData(SortOrder so);
|
||||
void readyWheelItemsData(SortOrder so);
|
||||
|
||||
RString m_sLastModeMenuItem;
|
||||
SortOrder m_SortOrder;
|
||||
@@ -72,15 +71,15 @@ protected:
|
||||
ThemeMetric<float> ROULETTE_SWITCH_SECONDS;
|
||||
ThemeMetric<int> ROULETTE_SLOW_DOWN_SWITCHES;
|
||||
ThemeMetric<int> NUM_SECTION_COLORS;
|
||||
ThemeMetric<RageColor> SONG_REAL_EXTRA_COLOR;
|
||||
ThemeMetric<RageColor> SORT_MENU_COLOR;
|
||||
ThemeMetric<RageColor> SONG_REAL_EXTRA_COLOR;
|
||||
ThemeMetric<RageColor> SORT_MENU_COLOR;
|
||||
ThemeMetric<bool> SHOW_ROULETTE;
|
||||
ThemeMetric<bool> SHOW_RANDOM;
|
||||
ThemeMetric<bool> SHOW_PORTAL;
|
||||
ThemeMetric<bool> RANDOM_PICKS_LOCKED_SONGS;
|
||||
ThemeMetric<int> MOST_PLAYED_SONGS_TO_SHOW;
|
||||
ThemeMetric<int> RECENT_SONGS_TO_SHOW;
|
||||
ThemeMetric<RString> MODE_MENU_CHOICE_NAMES;
|
||||
ThemeMetric<RString> MODE_MENU_CHOICE_NAMES;
|
||||
ThemeMetricMap<RString> CHOICE;
|
||||
ThemeMetric1D<RageColor> SECTION_COLORS;
|
||||
ThemeMetric<LuaReference> SORT_ORDERS;
|
||||
@@ -96,6 +95,15 @@ protected:
|
||||
ThemeMetric<RString> CUSTOM_WHEEL_ITEM_NAMES;
|
||||
ThemeMetricMap<RString> CUSTOM_CHOICES;
|
||||
ThemeMetricMap<RageColor> CUSTOM_CHOICE_COLORS;
|
||||
|
||||
private:
|
||||
//use getWheelItemsData instead of touching this one
|
||||
enum {INVALID,NEEDREFILTER,VALID} m_WheelItemDatasStatus[NUM_SortOrder];
|
||||
vector<MusicWheelItemData *> m__WheelItemDatas[NUM_SortOrder];
|
||||
vector<MusicWheelItemData *> m__UnFilteredWheelItemDatas[NUM_SortOrder];
|
||||
|
||||
void BuildWheelItemDatas( vector<MusicWheelItemData *> &arrayWheelItems, SortOrder so );
|
||||
void FilterWheelItemDatas(vector<MusicWheelItemData *> &aUnFilteredDatas, vector<MusicWheelItemData *> &aFilteredData, SortOrder so );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">$(TargetDir)</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">$(SolutionDir)/build-$(SolutionName)/$(ProjectName)/$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">false</LinkIncremental>
|
||||
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">true</GenerateManifest>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-SSE2|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-SSE2|Win32'">$(Configuration)\</IntDir>
|
||||
@@ -93,10 +93,18 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib;$(LibraryPath)</LibraryPath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release-SSE2|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include;$(IncludePath)</IncludePath>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StepMania</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">StepMania</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release-SSE2|Win32'">StepMania</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StepMania</TargetName>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='FastDebug|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release-SSE2|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib;$(LibraryPath)</LibraryPath>
|
||||
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PreBuildEvent>
|
||||
@@ -130,6 +138,10 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4063;4100;4127;4201;4244;4275;4355;4505;4512;4702;4786;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -151,6 +163,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<LinkErrorReporting>SendErrorReport</LinkErrorReporting>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\StepMania-debug.vdi"</Command>
|
||||
@@ -178,8 +191,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINDOWS;RELEASE;GLEW_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
@@ -195,6 +207,8 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4063;4100;4127;4201;4244;4275;4355;4505;4512;4702;4786;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -213,8 +227,10 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<MapExports>true</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<LinkErrorReporting>SendErrorReport</LinkErrorReporting>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\StepMania.vdi"
|
||||
@@ -234,11 +250,10 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<TypeLibraryName>../StepMania.tlb</TypeLibraryName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<AdditionalIncludeDirectories>.;..\extern\lua-5.1\src;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;..\extern\glew-1.5.8\include;..\extern\pcre;..\extern\mad-0.15.1b;..\extern\libpng\lib;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINDOWS;DEBUG;GLEW_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
@@ -251,8 +266,13 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
</BrowseInformation>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4063;4100;4127;4201;4244;4275;4355;4505;4512;4702;4786;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -260,10 +280,10 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>/MACHINE:I386 "$(IntDir)verstub.obj" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalDependencies>shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;ffmpeg/modern_working/lib/avcodec.lib;ffmpeg/lib/avformat.lib;ffmpeg/lib/avutil.lib;ffmpeg/lib/swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>shell32.lib;gdi32.lib;user32.lib;ole32.lib;advapi32.lib;avcodec.lib;avformat.lib;avutil.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>../Program/StepMania-fastdebug.exe</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\extern\libpng\lib;ffmpeg\lib;..\extern\libjpeg\;..\extern\zlib\;..\extern\mad-0.15.1b\msvc++\Release\%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>..\extern\libpng\lib;ffmpeg\modern_working\lib;..\extern\libjpeg\;..\extern\zlib\;..\extern\mad-0.15.1b\msvc++\Release\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>wininet.lib;msimg32.lib;libci.lib;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(IntDir)StepMania.pdb</ProgramDatabaseFile>
|
||||
@@ -274,6 +294,8 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<LinkErrorReporting>SendErrorReport</LinkErrorReporting>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>archutils\Win32\mapconv "$(IntDir)$(TargetName).map" "$(TargetDir)\StepMania-fastdebug.vdi"</Command>
|
||||
@@ -319,6 +341,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4063;4100;4127;4201;4244;4275;4355;4505;4512;4702;4786;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -340,6 +363,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>NotSet</TargetMachine>
|
||||
<LinkErrorReporting>SendErrorReport</LinkErrorReporting>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>archutils\Win32\mapconv "$(IntDir)$(TargetName)-SSE2.map" "$(TargetDir)\StepMania-SSE2.vdi"
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapconv", "verinc.vcproj", "{46C1AA00-F02C-4E0A-8150-542C9728474C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "verinc", "verinc.vcxproj", "{46C1AA00-F02C-4E0A-8150-542C9728474C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Debug.ActiveCfg = Debug|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Debug.Build.0 = Debug|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Release.ActiveCfg = Release|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Release.Build.0 = Release|Win32
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{46C1AA00-F02C-4E0A-8150-542C9728474C}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
|
||||
Reference in New Issue
Block a user