Let's see what the merge diagram looks like now.

This commit is contained in:
Jason Felds
2011-02-25 11:13:09 -05:00
11 changed files with 1426 additions and 776 deletions
+23 -29
View File
@@ -165,13 +165,13 @@ void BackgroundImpl::Init()
m_bInitted = true;
m_bDangerAllWasVisible = false;
m_StaticBackgroundDef = BackgroundDef();
if( !USE_STATIC_BG )
{
m_StaticBackgroundDef.m_sColor1 = "#00000000";
m_StaticBackgroundDef.m_sColor2 = "#00000000";
}
// load transitions
{
ASSERT( m_mapNameToTransition.empty() );
@@ -204,7 +204,7 @@ void BackgroundImpl::Init()
FOREACH_HumanPlayer( p )
{
bOneOrMoreChars = true;
// Disable dancing characters if BH will be showing.
// Disable dancing characters if Beginner Helper will be showing.
if( PREFSMAN->m_bShowBeginnerHelper && BeginnerHelper::CanUse() &&
GAMESTATE->m_pCurSteps[p] && GAMESTATE->m_pCurSteps[p]->GetDifficulty() == Difficulty_Beginner )
bShowingBeginnerHelper = true;
@@ -285,10 +285,11 @@ bool BackgroundImpl::Layer::CreateBackground( const Song *pSong, const Backgroun
continue;
}
// Look for vsFileToResolve[i] in:
// - song's dir
// - RandomMovies dir
// - BGAnimations dir.
/* Look for vsFileToResolve[i] in:
* song's dir
* RandomMovies dir
* BGAnimations dir.
*/
vector<RString> vsPaths, vsThrowAway;
// Look for BGAnims in the song dir
@@ -403,7 +404,7 @@ BackgroundDef BackgroundImpl::Layer::CreateRandomBGA( const Song *pSong, const R
bd.m_sEffect = sEffect;
map<BackgroundDef,Actor*>::const_iterator iter = m_BGAnimations.find( bd );
// create the background if it's not already created
if( iter == m_BGAnimations.end() )
{
@@ -517,7 +518,7 @@ void BackgroundImpl::LoadFromSong( const Song* pSong )
m_RandomBGAnimations.push_back( bd );
}
}
/* Song backgrounds (even just background stills) can get very big; never keep them
* in memory. */
RageTextureID::TexPolicy OldPolicy = TEXTUREMAN->GetDefaultTexturePolicy();
@@ -594,12 +595,10 @@ void BackgroundImpl::LoadFromSong( const Song* pSong )
BackgroundUtil::SortBackgroundChangesArray( layer.m_aBGChanges );
}
Layer &mainlayer = m_Layer[0];
/* If the first BGAnimation isn't negative, add a lead-in image showing the song
* background. */
/* If the first BGAnimation isn't negative, add a lead-in image showing
* the song background. */
if( mainlayer.m_aBGChanges.empty() || mainlayer.m_aBGChanges.front().m_fStartBeat >= 0 )
{
BackgroundChange change;
@@ -636,7 +635,6 @@ void BackgroundImpl::LoadFromSong( const Song* pSong )
}
}
// Look for the random file marker, and replace the segment with LoadFromRandom.
for( unsigned i=0; i<mainlayer.m_aBGChanges.size(); i++ )
{
@@ -659,7 +657,6 @@ void BackgroundImpl::LoadFromSong( const Song* pSong )
for( unsigned i=0; i<mainlayer.m_aBGChanges.size(); i++ )
ASSERT( !mainlayer.m_aBGChanges[i].m_def.m_sFile1.empty() );
// Re-sort.
BackgroundUtil::SortBackgroundChangesArray( mainlayer.m_aBGChanges );
@@ -677,7 +674,7 @@ int BackgroundImpl::Layer::FindBGSegmentForBeat( float fBeat ) const
return -1;
if( fBeat < m_aBGChanges[0].m_fStartBeat )
return -1;
// assumption: m_aBGChanges are sorted by m_fStartBeat
int i;
for( i=m_aBGChanges.size()-1; i>=0; i-- )
@@ -689,7 +686,7 @@ int BackgroundImpl::Layer::FindBGSegmentForBeat( float fBeat ) const
return i;
}
/* If the BG segment has changed, move focus to it. Send Update() calls. */
/* If the BG segment has changed, move focus to it. Send Update() calls. */
void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMusicSeconds, float fCurrentTime, const map<RString,BackgroundTransition> &mapNameToTransition )
{
ASSERT( fCurrentTime != GameState::MUSIC_SECONDS_INVALID );
@@ -702,7 +699,7 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
int iThrowAway;
pSong->m_Timing.GetBeatAndBPSFromElapsedTime( fCurrentTime, fBeat, fBPS, bFreeze, bFreeze, iThrowAway, fThrowAway );
/* Calls to Update() should *not* be scaled by music rate; fCurrentTime is. Undo it. */
// Calls to Update() should *not* be scaled by music rate; fCurrentTime is. Undo it.
const float fRate = GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate;
// Find the BGSegment we're in
@@ -711,7 +708,7 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
float fDeltaTime = fCurrentTime - fLastMusicSeconds;
if( i != -1 && i != m_iCurBGChangeIndex ) // we're changing backgrounds
{
// LOG->Trace( "old bga %d -> new bga %d (%s), %f, %f", m_iCurBGChangeIndex, i, m_aBGChanges[i].GetTextDescription().c_str(), m_aBGChanges[i].m_fStartBeat, fBeat );
//LOG->Trace( "old bga %d -> new bga %d (%s), %f, %f", m_iCurBGChangeIndex, i, m_aBGChanges[i].GetTextDescription().c_str(), m_aBGChanges[i].m_fStartBeat, fBeat );
BackgroundChange oldChange;
if( m_iCurBGChangeIndex != -1 )
@@ -739,7 +736,7 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
if( m_pFadingBGA == m_pCurrentBGA )
{
m_pFadingBGA = NULL;
// LOG->Trace( "bg didn't actually change. Ignoring." );
//LOG->Trace( "bg didn't actually change. Ignoring." );
}
else
{
@@ -819,11 +816,11 @@ void BackgroundImpl::DrawPrimitives()
if( m_pDancingCharacters )
m_pDancingCharacters->m_bDrawDangerLight = true;
}
{
{
if( m_pDancingCharacters )
m_pDancingCharacters->m_bDrawDangerLight = false;
FOREACH_BackgroundLayer( i )
{
Layer &layer = m_Layer[i];
@@ -890,8 +887,8 @@ BrightnessOverlay::BrightnessOverlay()
void BrightnessOverlay::Update( float fDeltaTime )
{
ActorFrame::Update( fDeltaTime );
/* If we're actually playing, then we're past fades, etc; update the background
* brightness to follow Cover. */
/* If we're actually playing, then we're past fades, etc; update the
* background brightness to follow Cover. */
if( !GAMESTATE->m_bGameplayLeadIn )
SetActualBrightness();
}
@@ -906,7 +903,7 @@ void BrightnessOverlay::SetActualBrightness()
// HACK: Always show training in full brightness
if( GAMESTATE->m_pCurSong && GAMESTATE->m_pCurSong->IsTutorial() )
fBaseBGBrightness = 1.0f;
fLeftBrightness *= fBaseBGBrightness;
fRightBrightness *= fBaseBGBrightness;
@@ -939,8 +936,6 @@ void BrightnessOverlay::FadeToActualBrightness()
SetActualBrightness();
}
Background::Background() { m_pImpl = new BackgroundImpl; this->AddChild(m_pImpl); }
Background::~Background() { SAFE_DELETE( m_pImpl ); }
void Background::Init() { m_pImpl->Init(); }
@@ -951,7 +946,6 @@ void Background::SetBrightness( float fBrightness ) { m_pImpl->SetBrightness(fBr
DancingCharacters* Background::GetDancingCharacters() { return m_pImpl->GetDancingCharacters(); }
void Background::GetLoadedBackgroundChanges( vector<BackgroundChange> *pBackgroundChangesOut[NUM_BackgroundLayer] ) { m_pImpl->GetLoadedBackgroundChanges(pBackgroundChangesOut); }
/*
* (c) 2001-2004 Chris Danford, Ben Nordstrom
* All rights reserved.
+2 -3
View File
@@ -23,8 +23,8 @@ public:
virtual void Unload();
void FadeToActualBrightness();
void SetBrightness( float fBrightness ); /* overrides pref and Cover */
void SetBrightness( float fBrightness ); // overrides pref and Cover
DancingCharacters* GetDancingCharacters();
void GetLoadedBackgroundChanges( vector<BackgroundChange> **pBackgroundChangesOut );
@@ -33,7 +33,6 @@ protected:
BackgroundImpl *m_pImpl;
};
#endif
/*
+26 -16
View File
@@ -14,6 +14,15 @@
#define DC_X( choice ) THEME->GetMetricF("DancingCharacters",ssprintf("2DCharacterXP%d",choice+1))
#define DC_Y( choice ) THEME->GetMetricF("DancingCharacters",ssprintf("2DCharacterYP%d",choice+1))
/*
* TODO:
* - Metrics/Lua for lighting and camera sweeping.
* - Ability to load secondary elements i.e. stages.
* - Remove support for 2D characters (Lua can do it).
* - Cleanup!
*
* -- Colby
*/
const float CAMERA_REST_DISTANCE = 32.f;
const float CAMERA_REST_LOOK_AT_HEIGHT = -11.f;
@@ -34,7 +43,6 @@ const float MODEL_X_ONE_PLAYER = 0;
const float MODEL_X_TWO_PLAYERS[NUM_PLAYERS] = { +8, -8 };
const float MODEL_ROTATIONY_TWO_PLAYERS[NUM_PLAYERS] = { -90, 90 };
DancingCharacters::DancingCharacters()
{
m_bDrawDangerLight = false;
@@ -59,28 +67,28 @@ DancingCharacters::DancingCharacters()
{
m_bgIdle[p].Load( sCurrentAnim );
m_bgIdle[p]->SetXY(DC_X(p),DC_Y(p));
}
}
sCurrentAnim = sCharacterDirectory + "2DMiss";
if( DoesFileExist(sCurrentAnim + "/BGAnimation.ini") ) // check 2D Idle BGAnim exists
{
m_bgMiss[p].Load( sCurrentAnim );
m_bgMiss[p]->SetXY(DC_X(p),DC_Y(p));
}
}
sCurrentAnim = sCharacterDirectory + "2DGood";
if( DoesFileExist(sCurrentAnim + "/BGAnimation.ini") ) // check 2D Idle BGAnim exists
{
m_bgGood[p].Load( sCurrentAnim );
m_bgGood[p]->SetXY(DC_X(p),DC_Y(p));
}
}
sCurrentAnim = sCharacterDirectory + "2DGreat";
if( DoesFileExist(sCurrentAnim + "/BGAnimation.ini") ) // check 2D Idle BGAnim exists
{
m_bgGreat[p].Load( sCurrentAnim );
m_bgGreat[p]->SetXY(DC_X(p),DC_Y(p));
}
}
sCurrentAnim = sCharacterDirectory + "2DFever";
if( DoesFileExist(sCurrentAnim + "/BGAnimation.ini") ) // check 2D Idle BGAnim exists
@@ -112,12 +120,12 @@ DancingCharacters::DancingCharacters()
if( pChar->GetModelPath().empty() )
continue;
if( GAMESTATE->GetNumPlayersEnabled()==2 )
m_pCharacter[p]->SetX( MODEL_X_TWO_PLAYERS[p] );
else
m_pCharacter[p]->SetX( MODEL_X_ONE_PLAYER );
switch( GAMESTATE->m_PlayMode )
{
case PLAY_MODE_BATTLE:
@@ -156,7 +164,7 @@ void DancingCharacters::LoadNextSong()
ASSERT( GAMESTATE->m_pCurSong );
m_fThisCameraEndBeat = GAMESTATE->m_pCurSong->m_fFirstBeat;
FOREACH_PlayerNumber( p )
if( GAMESTATE->IsPlayerEnabled(p) )
m_pCharacter[p]->PlayAnimation( "rest" );
@@ -168,7 +176,7 @@ void DancingCharacters::Update( float fDelta )
{
if( GAMESTATE->m_bFreeze || GAMESTATE->m_bDelay )
{
// spin the camera Matrix style
// spin the camera Matrix-style
m_CameraPanYStart += fDelta*40;
m_CameraPanYEnd += fDelta*40;
}
@@ -200,7 +208,6 @@ void DancingCharacters::Update( float fDelta )
}
bWasGameplayStarting = bGameplayStarting;
static float fLastBeat = GAMESTATE->m_fSongBeat;
float fThisBeat = GAMESTATE->m_fSongBeat;
if( fLastBeat < GAMESTATE->m_pCurSong->m_fFirstBeat &&
@@ -211,7 +218,6 @@ void DancingCharacters::Update( float fDelta )
}
fLastBeat = fThisBeat;
// time for a new sweep?
if( GAMESTATE->m_fSongBeat > m_fThisCameraEndBeat )
{
@@ -221,7 +227,7 @@ void DancingCharacters::Update( float fDelta )
m_CameraDistance = CAMERA_SWEEP_DISTANCE + RandomInt(-1,1) * CAMERA_SWEEP_DISTANCE_VARIANCE;
m_CameraPanYStart = m_CameraPanYEnd = RandomInt(-1,1) * CAMERA_SWEEP_PAN_Y_RANGE_DEGREES;
m_fCameraHeightStart = m_fCameraHeightEnd = CAMERA_STILL_LOOK_AT_HEIGHT;
m_CameraPanYEnd += RandomInt(-1,1) * CAMERA_SWEEP_PAN_Y_VARIANCE_DEGREES;
m_fCameraHeightStart = m_fCameraHeightEnd = m_fCameraHeightStart + RandomInt(-1,1) * CAMERA_SWEEP_HEIGHT_VARIANCE;
@@ -247,7 +253,8 @@ void DancingCharacters::Update( float fDelta )
m_fThisCameraStartBeat = (float) iCurBeat;
m_fThisCameraEndBeat = float(iCurBeat + 8);
}
/*
// is there any of this still around? This block of code is _ugly_. -Colby
// update any 2D stuff
FOREACH_PlayerNumber( p )
{
@@ -286,6 +293,7 @@ void DancingCharacters::Update( float fDelta )
}
}
}
*/
}
void DancingCharacters::Change2DAnimState( PlayerNumber pn, int iState )
@@ -326,6 +334,7 @@ void DancingCharacters::DrawPrimitives()
bool bDanger = m_bDrawDangerLight;
DISPLAY->SetLighting( true );
RageColor ambient = bFailed ? RageColor(0.2f,0.1f,0.1f,1) : (bDanger ? RageColor(0.4f,0.1f,0.1f,1) : RageColor(0.4f,0.4f,0.4f,1));
RageColor diffuse = bFailed ? RageColor(0.4f,0.1f,0.1f,1) : (bDanger ? RageColor(0.8f,0.1f,0.1f,1) : RageColor(1,0.95f,0.925f,1));
RageColor specular = RageColor(0.8f,0.8f,0.8f,1);
@@ -349,12 +358,12 @@ void DancingCharacters::DrawPrimitives()
DISPLAY->SetLightOff( 0 );
DISPLAY->SetLighting( false );
DISPLAY->ClearZBuffer();
}
DISPLAY->CameraPopMatrix();
/*
// Ugly! -Colby
// now draw any potential 2D stuff
FOREACH_PlayerNumber( p )
{
@@ -375,6 +384,7 @@ void DancingCharacters::DrawPrimitives()
if(m_bgFail[p].IsLoaded() && m_i2DAnimState[p] == AS2D_FAIL)
m_bgFail[p]->Draw();
}
*/
}
/*
+5 -5
View File
@@ -25,7 +25,7 @@ void Foreground::Unload()
void Foreground::LoadFromSong( const Song *pSong )
{
/* Song graphics can get very big; never keep them in memory. */
// Song graphics can get very big; never keep them in memory.
RageTextureID::TexPolicy OldPolicy = TEXTUREMAN->GetDefaultTexturePolicy();
TEXTUREMAN->SetDefaultTexturePolicy( RageTextureID::TEX_VOLATILE );
@@ -58,7 +58,7 @@ void Foreground::LoadFromSong( const Song *pSong )
void Foreground::Update( float fDeltaTime )
{
/* Calls to Update() should *not* be scaled by music rate. Undo it. */
// Calls to Update() should *not* be scaled by music rate. Undo it.
const float fRate = GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate;
for( unsigned i=0; i < m_BGAnimations.size(); ++i )
@@ -67,7 +67,7 @@ void Foreground::Update( float fDeltaTime )
if( GAMESTATE->m_fSongBeat < bga.m_fStartBeat )
{
/* The animation hasn't started yet. */
// The animation hasn't started yet.
continue;
}
@@ -89,14 +89,14 @@ void Foreground::Update( float fDeltaTime )
fDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
}
/* This shouldn't go down, but be safe: */
// This shouldn't go down, but be safe:
fDeltaTime = max( fDeltaTime, 0 );
bga.m_bga->Update( fDeltaTime / fRate );
if( GAMESTATE->m_fSongBeat > bga.m_fStopBeat )
{
/* Finished. */
// Finished.
bga.m_bga->SetVisible( false );
bga.m_bFinished = true;
continue;
+1 -4
View File
@@ -1,18 +1,15 @@
/* Foreground - Foreground in front of notes while playing. */
#ifndef FOREGROUND_H
#define FOREGROUND_H
#include "ActorFrame.h"
class Song;
/** @brief Foreground in front of notes while playing. */
class Foreground: public ActorFrame
{
public:
~Foreground();
void Unload();
void LoadFromSong( const Song *pSong );
virtual void Update( float fDeltaTime );
+11 -12
View File
@@ -65,6 +65,7 @@ void Model::Load( const RString &sFile )
#define THROW RageException::Throw( "Parse error in \"%s\" at line %d: \"%s\".", sPath.c_str(), iLineNum, sLine.c_str() )
// TODO: Move MS3D loading into its own class. - Colby
void Model::LoadMilkshapeAscii( const RString &sPath )
{
LoadPieces( sPath, sPath, sPath );
@@ -288,19 +289,17 @@ bool Model::EarlyAbortDraw() const
void Model::DrawCelShaded()
{
// TODO: use shell shader for outline.
this->SetGlow(RageColor(0,0,0,1));
this->SetDiffuseAlpha(0);
DISPLAY->SetPolygonMode( POLYGON_LINE );
DISPLAY->SetLineWidth( 3 );
this->SetZWrite( false );
this->Draw();
this->SetDiffuseAlpha(1);
this->SetGlow(RageColor(1,1,1,0));
DISPLAY->SetPolygonMode( POLYGON_FILL );
this->SetZWrite( true );
DISPLAY->SetCelShaded( true );
// First pass: outline/shell
// DISPLAY->SetCelShaded(1);
this->Draw();
DISPLAY->SetCelShaded( false );
// Second pass: normal shading
// DISPLAY->SetCelShaded(2);
// this->Draw();
// DISPLAY->SetCelShaded(0)
}
void Model::DrawPrimitives()
@@ -375,7 +374,7 @@ void Model::DrawPrimitives()
}
// go
DrawMesh( i );
DrawMesh(i);
// Turn off environment mapping on tex unit 0.
DISPLAY->SetSphereEnvironmentMapping( TextureUnit_1, false );
-2
View File
@@ -1210,13 +1210,11 @@ void ScreenGameplay::LoadNextSong()
if( m_pCombinedLifeMeter )
m_pCombinedLifeMeter->OnLoadSong();
if( m_pSongForeground )
m_pSongForeground->LoadFromSong( GAMESTATE->m_pCurSong );
m_fTimeSinceLastDancingComment = 0;
/* m_soundMusic and m_pSongBackground take a very long time to load,
* so cap fDelta at 0 so m_NextSong will show up on screen.
* -Chris */
File diff suppressed because it is too large Load Diff
+1 -11
View File
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////
// $Workfile: stdafx.h $
// $Archive: /ZipArchive/stdafx.h $
// $Date: 2006-01-20 13:43:41 -0600 (Fri, 20 Jan 2006) $ $Author: gmaynard $
// $Date: 2003-07-21 21:10:30 -0500 (Mon, 21 Jul 2003) $ $Author: gmaynard $
////////////////////////////////////////////////////////////////////////////////
// This source file is part of the ZipArchive library source distribution and
// is Copyright 2000-2003 by Tadeusz Dracz (http://www.artpol-software.com/)
@@ -38,20 +38,10 @@
#define ZIP_ARCHIVE_MFC
#if defined(_DEBUG)
#undef _DEBUG
#define RESTORE_DEBUG
#endif
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afx.h>
#include <afxwin.h>
#if defined(RESTORE_DEBUG)
#undef RESTORE_DEBUG
#define _DEBUG
#endif
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
Windows MFC