This commit is contained in:
Jonathan Payne
2012-07-06 11:58:17 -07:00
25 changed files with 12547 additions and 11284 deletions
+26
View File
@@ -8,6 +8,32 @@ ________________________________________________________________________________
StepMania 5.0 ???? ?? | 20120???
--------------------------------------------------------------------------------
2012/07/06
----------
* [ScoreDisplayRave] Add FrameBase and FrameOver to the metrics. [AJ]
2012/07/05
----------
* [ScreenRanking] Added "NextPage" command. "SwitchPage" command is
now "SwitchedPage". [AJ]
* [ScreenRanking] Don't clobber alpha values when applying colors in SetPage. [AJ]
2012/07/03
----------
* [ScreenHowToPlay] Actually shows notes again. [AJ]
* [ScreenGameplay] When ShowLifeMeterForDisabledPlayers is true, don't fill up
life in the meter for the disabled player. (LifeMeterBar only) [AJ]
2012/07/02
----------
* [ScreenHowToPlay] Run InitCommand on Characters if enabled. [AJ]
* [RageUtil] Add detection of ".hg" to StripCvsAndSvn. [AJ]
2012/06/27
----------
* [SongManager] Ending a group's name in PreferredSongs with "/*" will now load
all songs from that group automatically. [AJ]
2012/06/21
----------
* [ProfileManager] Added GetPlayerName(pn) Lua binding. [AJ]
+2
View File
@@ -1732,6 +1732,8 @@ Edit/Share=Edycja
Exit=Wyjście
Game Start=Start
Jukebox=Odtwarzacz
Report Bug=Zgłoś błąd!
Chat on IRC=Dyskutuj na IRC!
Select Game=Wybór trybu gry
Theme=Motyw graficzny
Credits=Autorzy
@@ -11,23 +11,23 @@
#LYRICSPATH:;
#CDTITLE:;
#MUSIC:_sync music.ogg;
#OFFSET:-0.012;
#OFFSET:-0.025;
#SAMPLESTART:0.000;
#SAMPLELENGTH:12.000;
#SELECTABLE:YES;
#BPMS:0.000=132.000;
#BPMS:0.000=132.027;
#STOPS:;
#BGCHANGES:;
#KEYSOUNDS:;
#NOTEDATA:;
#STEPSTYPE:dance-single:;
#STEPSTYPE:dance-single;
#DESCRIPTION:blank;
#DIFFICULTY:Beginner;
#METER:1;
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
#BPMS:0.000=132.000;
#OFFSET:-0.012;
#BPMS:0.000=132.027;
#OFFSET:-0.025;
#NOTES:
// measure 1
0000
@@ -102,8 +102,8 @@
#DIFFICULTY:Beginner;
#METER:1;
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
#BPMS:0.000=132.000;
#OFFSET:-0.012;
#BPMS:0.000=132.027;
#OFFSET:-0.025;
#NOTES:
// measure 1
00000
+1
View File
@@ -123,6 +123,7 @@ local ComboThresholds = {
beat = { Hit = 1, Miss = 0, Fail = -1 },
kb7 = { Hit = 1, Miss = 0, Fail = -1 },
para = { Hit = 2, Miss = 0, Fail = -1 },
maniax = { Hit = 5, Miss = 0, Fail = -1 },
-------------------------------------------
default = { Hit = 2, Miss = 2, Fail = -1 }
}
+21 -2
View File
@@ -1322,6 +1322,24 @@ LevelP2Y=
LevelP2OnCommand=
LevelP2OffCommand=
FrameBaseP1X=
FrameBaseP1Y=
FrameBaseP1OnCommand=
FrameBaseP1OffCommand=
FrameBaseP2X=
FrameBaseP2Y=
FrameBaseP2OnCommand=
FrameBaseP2OffCommand=
FrameOverP1X=
FrameOverP1Y=
FrameOverP1OnCommand=
FrameOverP1OffCommand=
FrameOverP2X=
FrameOverP2Y=
FrameOverP2OnCommand=
FrameOverP2OffCommand=
[ScoreKeeperRave]
AttackDurationSeconds=3.0
@@ -3822,7 +3840,7 @@ ShowCreditDisplay=false
ShowStyleIcon=false
InvertScrollSpeedButtons=false
TimerSeconds=-1
EditModifiers=""
EditModifiers="no reverse"
EditHelpX=SCREEN_LEFT+4
EditHelpY=SCREEN_TOP+16
EditHelpOnCommand=halign,0;valign,0;zoom,0.5;shadowlength,1
@@ -3923,7 +3941,7 @@ ShowStyleIcon=false
LineNames="1,2,3,4,5,6,R,7,8,9,10,Attacks,11,12,13,14,15,16"
# uses legacy speed line
Line1="lua,SpeedMods()"
Line1="list,Speed"
Line2="list,Accel"
Line3="list,Effect"
Line4="list,Appearance"
@@ -4457,6 +4475,7 @@ Class="ScreenAttract"
NextScreen="ScreenInit"
PrevScreen="ScreenInit"
TimerSeconds=3600
TimerStealth=true
ShowCreditDisplay=false
[ScreenTitleJoin]
@@ -11,11 +11,11 @@
#LYRICSPATH:;
#CDTITLE:;
#MUSIC:_gameplay sync music.ogg;
#OFFSET:-0.012;
#OFFSET:-0.025;
#SAMPLESTART:0.000;
#SAMPLELENGTH:12.000;
#SELECTABLE:YES;
#BPMS:0.000=132.000;
#BPMS:0.000=132.027;
#STOPS:;
#BGCHANGES:;
#KEYSOUNDS:;
+1032
View File
File diff suppressed because it is too large Load Diff
+93
View File
@@ -0,0 +1,93 @@
// Adapted from http://www.codeproject.com/KB/files/zip_utils.aspx
#ifndef CreateZip_H
#define CreateZip_H
// ZIP functions -- for creating zip files
// This file is a repackaged form of the Info-Zip source code available
// at www.info-zip.org. The original copyright notice may be found in
// zip.cpp. The repackaging was done by Lucian Wischik to simplify and
// extend its use in Windows/C++. Also to add encryption and unicode.
class TZip;
class RageFile;
typedef unsigned long ZRESULT;
// return codes from any of the zip functions. Listed later.
class CreateZip
{
TZip* hz;
public:
CreateZip();
bool Start(RageFile *f);
bool AddFile(RString fn);
bool AddDir(RString fn);
bool Finish();
RString GetError();
};
// e.g.
//
// (1) Traditional use, creating a zipfile from existing files
// HZIP hz = CreateZip("c:\\simple1.zip",0);
// ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp");
// ZipAdd(hz,"znsimple.txt", "c:\\simple.txt");
// CloseZip(hz);
//
// (2) Memory use, creating an auto-allocated mem-based zip file from various sources
// HZIP hz = CreateZip(0,100000, 0);
// // adding a conventional file...
// ZipAdd(hz,"src1.txt", "c:\\src1.txt");
// // adding something from memory...
// char buf[1000]; for (int i=0; i<1000; i++) buf[i]=(char)(i&0x7F);
// ZipAdd(hz,"file.dat", buf,1000);
// // adding something from a pipe...
// HANDLE hread,hwrite; CreatePipe(&hread,&hwrite,NULL,0);
// HANDLE hthread = CreateThread(0,0,ThreadFunc,(void*)hwrite,0,0);
// ZipAdd(hz,"unz3.dat", hread,1000); // the '1000' is optional.
// WaitForSingleObject(hthread,INFINITE);
// CloseHandle(hthread); CloseHandle(hread);
// ... meanwhile DWORD WINAPI ThreadFunc(void *dat)
// { HANDLE hwrite = (HANDLE)dat;
// char buf[1000]={17};
// DWORD writ; WriteFile(hwrite,buf,1000,&writ,NULL);
// CloseHandle(hwrite);
// return 0;
// }
// // and now that the zip is created, let's do something with it:
// void *zbuf; unsigned long zlen; ZipGetMemory(hz,&zbuf,&zlen);
// HANDLE hfz = CreateFile("test2.zip",GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
// DWORD writ; WriteFile(hfz,zbuf,zlen,&writ,NULL);
// CloseHandle(hfz);
// CloseZip(hz);
//
// (3) Handle use, for file handles and pipes
// HANDLE hzread,hzwrite; CreatePipe(&hzread,&hzwrite,0,0);
// HANDLE hthread = CreateThread(0,0,ZipReceiverThread,(void*)hzread,0,0);
// HZIP hz = CreateZipHandle(hzwrite,0);
// // ... add to it
// CloseZip(hz);
// CloseHandle(hzwrite);
// WaitForSingleObject(hthread,INFINITE);
// CloseHandle(hthread);
// ... meanwhile DWORD WINAPI ZipReceiverThread(void *dat)
// { HANDLE hread = (HANDLE)dat;
// char buf[1000];
// while (true)
// { DWORD red; ReadFile(hread,buf,1000,&red,NULL);
// // ... and do something with this zip data we're receiving
// if (red==0) break;
// }
// CloseHandle(hread);
// return 0;
// }
#endif
+1
View File
@@ -136,6 +136,7 @@ Course.cpp Course.h \
CourseLoaderCRS.cpp CourseLoaderCRS.h \
CourseUtil.cpp CourseUtil.h \
CourseWriterCRS.cpp CourseWriterCRS.h \
CreateZip.cpp CreateZip.h \
CryptHelpers.cpp CryptHelpers.h \
DateTime.cpp DateTime.h \
Difficulty.cpp Difficulty.h \
+2 -2
View File
@@ -8,8 +8,8 @@ class Steps;
namespace NotesWriterJson
{
static bool WriteSong( const RString &sFile, const Song &out, bool bWriteSteps );
static bool WriteSteps( const RString &sFile, const Steps &out );
bool WriteSong( const RString &sFile, const Song &out, bool bWriteSteps );
bool WriteSteps( const RString &sFile, const Steps &out );
};
#endif
+4 -1
View File
@@ -1233,9 +1233,12 @@ RString URLEncode( const RString &sStr )
return sOutput;
}
// remove various version control-related files
static bool CVSOrSVN( const RString& s )
{
return s.Right(3).EqualsNoCase("CVS") || s.Right(4) == ".svn";
return s.Right(3).EqualsNoCase("CVS") ||
s.Right(4) == ".svn" ||
s.Right(3).EqualsNoCase(".hg");
}
void StripCvsAndSvn( vector<RString> &vs )
+4
View File
@@ -30,6 +30,8 @@ void ScoreDisplayRave::Init( const PlayerState* pPlayerState, const PlayerStageS
PlayerNumber pn = pPlayerState->m_PlayerNumber;
m_sprFrameBase.Load( THEME->GetPathG("ScoreDisplayRave",ssprintf("frame base p%d",pn+1)) );
m_sprFrameBase->SetName( ssprintf("FrameBaseP%d",pn+1) );
LOAD_ALL_COMMANDS_AND_SET_XY( m_sprFrameBase );
this->AddChild( m_sprFrameBase );
for( int i=0; i<NUM_ATTACK_LEVELS; i++ )
@@ -44,6 +46,8 @@ void ScoreDisplayRave::Init( const PlayerState* pPlayerState, const PlayerStageS
this->AddChild( &m_textLevel );
m_sprFrameOverlay.Load( THEME->GetPathG("ScoreDisplayRave",ssprintf("frame overlay p%d",pn+1)) );
m_sprFrameOverlay->SetName( ssprintf("FrameOverP%d",pn+1) );
LOAD_ALL_COMMANDS_AND_SET_XY( m_sprFrameOverlay );
this->AddChild( m_sprFrameOverlay );
}
+11
View File
@@ -10,6 +10,7 @@
#include "Steps.h"
#include "RageLog.h"
#include "LifeMeter.h"
#include "LifeMeterBar.h"
#include "GameState.h"
#include "ScoreDisplayNormal.h"
#include "ScoreDisplayPercentage.h"
@@ -559,6 +560,16 @@ void ScreenGameplay::Init()
pi->m_pLifeMeter->SetName( ssprintf("Life%s",pi->GetName().c_str()) );
LOAD_ALL_COMMANDS_AND_SET_XY( pi->m_pLifeMeter );
this->AddChild( pi->m_pLifeMeter );
// HACK: When SHOW_LIFE_METER_FOR_DISABLED_PLAYERS is enabled,
// we don't want to have any life in the disabled player's life
// meter. I think this only happens with LifeMeterBars, but I'm
// not 100% sure of that. -freem
if( !GAMESTATE->IsPlayerEnabled(pi->m_pn) && SHOW_LIFE_METER_FOR_DISABLED_PLAYERS )
{
if(GAMESTATE->m_SongOptions.GetStage().m_LifeType == SongOptions::LIFE_BAR)
static_cast<LifeMeterBar*>(pi->m_pLifeMeter)->ChangeLife(-1.0f);
}
}
break;
case PLAY_MODE_BATTLE:
+6 -3
View File
@@ -119,6 +119,7 @@ void ScreenHowToPlay::Init()
// xxx: hardcoded rotation. can be undone, but still. -freem
m_pmCharacter->SetRotationX( 40 );
m_pmCharacter->SetCullMode( CULL_NONE ); // many of the models floating around have the vertex order flipped
m_pmCharacter->RunCommands( displayChar->m_cmdInit ); // run InitCommand from file
ActorUtil::LoadAllCommandsAndSetXY( m_pmCharacter, m_sName );
}
}
@@ -127,9 +128,11 @@ void ScreenHowToPlay::Init()
if( USE_PLAYER )
{
GAMESTATE->SetMasterPlayerNumber(PLAYER_1);
m_pLifeMeterBar = new LifeMeterBar;
m_pLifeMeterBar->SetName("LifeMeterBar");
m_pLifeMeterBar->Load( GAMESTATE->m_pPlayerState[PLAYER_1], &STATSMAN->m_CurStageStats.m_player[PLAYER_1] );
m_pLifeMeterBar->SetName("LifeMeterBar");
ActorUtil::LoadAllCommandsAndSetXY( m_pLifeMeterBar, m_sName );
m_pLifeMeterBar->FillForHowToPlay( NUM_W2S, NUM_MISSES );
@@ -176,7 +179,6 @@ void ScreenHowToPlay::Init()
// Don't show judgment
PO_GROUP_ASSIGN( GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerOptions, ModsLevel_Stage, m_fBlind, 1.0f );
GAMESTATE->SetMasterPlayerNumber(PLAYER_1);
GAMESTATE->m_bDemonstrationOrJukebox = true;
}
@@ -247,7 +249,8 @@ void ScreenHowToPlay::Update( float fDelta )
{
if( GAMESTATE->m_pCurSong != NULL )
{
GAMESTATE->UpdateSongPosition( m_fFakeSecondsIntoSong, GAMESTATE->m_pCurSong->m_SongTiming );
RageTimer tm;
GAMESTATE->UpdateSongPosition( m_fFakeSecondsIntoSong, GAMESTATE->m_pCurSong->m_SongTiming, tm, true );
m_fFakeSecondsIntoSong += fDelta;
static int iLastNoteRowCounted = 0;
+12 -11
View File
@@ -180,6 +180,7 @@ void ScreenRanking::HandleScreenMessage( const ScreenMessage SM )
++m_iNextPageToShow;
this->SortByDrawOrder();
this->PlayCommand( "NextPage" );
this->PostScreenMessage( SM_HidePage, fSecsToShow-PAGE_FADE_SECONDS );
}
else
@@ -189,7 +190,7 @@ void ScreenRanking::HandleScreenMessage( const ScreenMessage SM )
}
else if( SM == SM_HidePage )
{
this->PlayCommand( "SwitchPage" );
this->PlayCommand( "SwitchedPage" );
this->PostScreenMessage( SM_ShowNextPage, PAGE_FADE_SECONDS );
}
@@ -225,16 +226,16 @@ float ScreenRanking::SetPage( const PageToShow &pts )
for( int l=0; l<NUM_RANKING_LINES; l++ )
{
m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textNames[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetVisible( bShowScores );
m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textPoints[l].SetVisible( bShowPoints );
m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textPoints[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textTime[l].SetVisible( bShowTime );
m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textTime[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
}
switch( RANKING_TYPE )
@@ -263,8 +264,8 @@ float ScreenRanking::SetPage( const PageToShow &pts )
m_textNames[l].SetText( hs.GetDisplayName() );
m_textScores[l].SetText( ssprintf("%09i",hs.GetScore()) );
m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textNames[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
if( bRecentHighScore )
{
@@ -312,10 +313,10 @@ float ScreenRanking::SetPage( const PageToShow &pts )
m_textTime[l].SetText( "" );
m_textScores[l].SetText( ssprintf("%09d",hs.GetScore()) );
}
m_textNames[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textPoints[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textTime[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetDiffuse( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textNames[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textPoints[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textTime[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
m_textScores[l].SetDiffuseColor( STEPS_TYPE_COLOR.GetValue(pts.colorIndex) );
if( bRecentHighScore )
{
+7
View File
@@ -27,6 +27,7 @@
#include "NotesLoaderSM.h"
#include "NotesLoaderSSC.h"
#include "NotesWriterDWI.h"
#include "NotesWriterJson.h"
#include "NotesWriterSM.h"
#include "NotesWriterSSC.h"
#include "UnlockManager.h"
@@ -1049,6 +1050,12 @@ bool Song::SaveToSSCFile( RString sPath, bool bSavingCache )
return true;
}
bool Song::SaveToJsonFile( RString sPath )
{
LOG->Trace( "Song::SaveToJsonFile('%s')", sPath.c_str() );
return NotesWriterJson::WriteSong(sPath, *this, true);
}
bool Song::SaveToCacheFile()
{
SONGINDEX->AddCacheIndex(m_sSongDir, GetHashForDirectory(m_sSongDir));
+4
View File
@@ -116,6 +116,10 @@ public:
bool SaveToSSCFile( RString sPath, bool bSavingCache );
/** @brief Save to the SSC and SM files no matter what. */
void Save();
/**
* @brief Save the current Song to a JSON file.
* @return its success or failure. */
bool SaveToJsonFile( RString sPath );
/**
* @brief Save the current Song to a cache file using the preferred format.
* @return its success or failure. */
+18
View File
@@ -1545,6 +1545,24 @@ void SongManager::UpdatePreferredSort(RString sPreferredSongs, RString sPreferre
}
else
{
/* if the line ends in "/*", check if the section exists,
* and if it does, add all the songs in that group to the list. */
if( EndsWith(sLine,"/*") )
{
RString group = sLine.Left( sLine.length() - RString("/*").length() );
if( DoesSongGroupExist(group) )
{
// add all songs in group
const vector<Song *> &vSongs = GetSongs( group );
FOREACH_CONST( Song*, vSongs, song )
{
if( UNLOCKMAN->SongIsLocked(*song) & LOCKED_SELECTABLE )
continue;
section.vpSongs.push_back( *song );
}
}
}
Song *pSong = FindSong( sLine );
if( pSong == NULL )
continue;
+6
View File
@@ -810,6 +810,12 @@ cl /Zl /nologo /c verstub.cpp /Fo&quot;$(IntDir)&quot;\
<File
RelativePath="CourseWriterCRS.h">
</File>
<File
RelativePath="CreateZip.cpp">
</File>
<File
RelativePath="CreateZip.h">
</File>
<File
RelativePath="DateTime.cpp">
</File>
+8
View File
@@ -1074,6 +1074,14 @@
RelativePath="CourseWriterCRS.h"
>
</File>
<File
RelativePath="CreateZip.cpp"
>
</File>
<File
RelativePath="CreateZip.h"
>
</File>
<File
RelativePath="DateTime.cpp"
>
+8
View File
@@ -1172,6 +1172,14 @@
RelativePath="ControllerStateDisplay.h"
>
</File>
<File
RelativePath=".\CreateZip.cpp"
>
</File>
<File
RelativePath=".\CreateZip.h"
>
</File>
<File
RelativePath="CryptHelpers.cpp"
>
+2
View File
@@ -455,6 +455,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClCompile Include="Command.cpp" />
<ClCompile Include="CommonMetrics.cpp" />
<ClCompile Include="ControllerStateDisplay.cpp" />
<ClCompile Include="CreateZip.cpp" />
<ClCompile Include="CryptHelpers.cpp" />
<ClCompile Include="DateTime.cpp" />
<ClCompile Include="Difficulty.cpp" />
@@ -1767,6 +1768,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClInclude Include="Command.h" />
<ClInclude Include="CommonMetrics.h" />
<ClInclude Include="ControllerStateDisplay.h" />
<ClInclude Include="CreateZip.h" />
<ClInclude Include="CryptHelpers.h" />
<ClInclude Include="DateTime.h" />
<ClInclude Include="Difficulty.h" />
+6
View File
@@ -375,6 +375,9 @@
<ClCompile Include="ControllerStateDisplay.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
<ClCompile Include="CreateZip.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
<ClCompile Include="CryptHelpers.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
@@ -1871,6 +1874,9 @@
<ClInclude Include="ControllerStateDisplay.h">
<Filter>Data Structures</Filter>
</ClInclude>
<ClInclude Include="CreateZip.h">
<Filter>Data Structures</Filter>
</ClInclude>
<ClInclude Include="CryptHelpers.h">
<Filter>Data Structures</Filter>
</ClInclude>
+2
View File
@@ -467,6 +467,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClCompile Include="Command.cpp" />
<ClCompile Include="CommonMetrics.cpp" />
<ClCompile Include="ControllerStateDisplay.cpp" />
<ClCompile Include="CreateZip.cpp" />
<ClCompile Include="CryptHelpers.cpp" />
<ClCompile Include="DateTime.cpp" />
<ClCompile Include="Difficulty.cpp" />
@@ -1779,6 +1780,7 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClInclude Include="Command.h" />
<ClInclude Include="CommonMetrics.h" />
<ClInclude Include="ControllerStateDisplay.h" />
<ClInclude Include="CreateZip.h" />
<ClInclude Include="CryptHelpers.h" />
<ClInclude Include="DateTime.h" />
<ClInclude Include="Difficulty.h" />
+6
View File
@@ -375,6 +375,9 @@
<ClCompile Include="ControllerStateDisplay.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
<ClCompile Include="CreateZip.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
<ClCompile Include="CryptHelpers.cpp">
<Filter>Data Structures</Filter>
</ClCompile>
@@ -1871,6 +1874,9 @@
<ClInclude Include="ControllerStateDisplay.h">
<Filter>Data Structures</Filter>
</ClInclude>
<ClInclude Include="CreateZip.h">
<Filter>Data Structures</Filter>
</ClInclude>
<ClInclude Include="CryptHelpers.h">
<Filter>Data Structures</Filter>
</ClInclude>