OptionIcon -> ModIcon to reduce confusion between OptionRow, OptionIconRow
This commit is contained in:
@@ -320,8 +320,9 @@ GradeDisplay.cpp GradeDisplay.h GraphDisplay.cpp GraphDisplay.h \
|
|||||||
GrooveRadar.cpp GrooveRadar.h GroupList.cpp GroupList.h HelpDisplay.cpp HelpDisplay.h \
|
GrooveRadar.cpp GrooveRadar.h GroupList.cpp GroupList.h HelpDisplay.cpp HelpDisplay.h \
|
||||||
MemoryCardDisplay.cpp MemoryCardDisplay.h \
|
MemoryCardDisplay.cpp MemoryCardDisplay.h \
|
||||||
MenuTimer.cpp MenuTimer.h MusicBannerWheel.cpp MusicBannerWheel.h \
|
MenuTimer.cpp MenuTimer.h MusicBannerWheel.cpp MusicBannerWheel.h \
|
||||||
|
ModIcon.cpp ModIcon.h ModIconRow.cpp ModIconRow.h \
|
||||||
MusicList.cpp MusicList.h MusicWheel.cpp MusicWheel.h \
|
MusicList.cpp MusicList.h MusicWheel.cpp MusicWheel.h \
|
||||||
MusicWheelItem.cpp MusicWheelItem.h OptionIcon.cpp OptionIcon.h OptionIconRow.cpp OptionIconRow.h \
|
MusicWheelItem.cpp MusicWheelItem.h \
|
||||||
OptionRow.cpp OptionRow.h OptionsCursor.cpp OptionsCursor.h \
|
OptionRow.cpp OptionRow.h OptionsCursor.cpp OptionsCursor.h \
|
||||||
PaneDisplay.cpp PaneDisplay.h ScrollBar.cpp ScrollBar.h \
|
PaneDisplay.cpp PaneDisplay.h ScrollBar.cpp ScrollBar.h \
|
||||||
ScrollingList.cpp ScrollingList.h SnapDisplay.cpp SnapDisplay.h \
|
ScrollingList.cpp ScrollingList.h SnapDisplay.cpp SnapDisplay.h \
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "ModIcon.h"
|
||||||
|
#include "ThemeManager.h"
|
||||||
|
#include "PlayerOptions.h"
|
||||||
|
#include "RageUtil.h"
|
||||||
|
#include "ActorUtil.h"
|
||||||
|
|
||||||
|
ModIcon::ModIcon()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ModIcon::ModIcon( const ModIcon &cpy ):
|
||||||
|
ActorFrame(cpy),
|
||||||
|
m_sprFilled(cpy.m_sprFilled),
|
||||||
|
m_sprEmpty(cpy.m_sprEmpty),
|
||||||
|
m_text(cpy.m_text)
|
||||||
|
{
|
||||||
|
this->RemoveAllChildren();
|
||||||
|
this->AddChild( m_sprFilled );
|
||||||
|
this->AddChild( m_sprEmpty );
|
||||||
|
this->AddChild( &m_text );
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModIcon::Load( RString sMetricsGroup )
|
||||||
|
{
|
||||||
|
m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") );
|
||||||
|
this->AddChild( m_sprFilled );
|
||||||
|
|
||||||
|
m_sprEmpty.Load( THEME->GetPathG(sMetricsGroup,"Empty") );
|
||||||
|
this->AddChild( m_sprEmpty );
|
||||||
|
|
||||||
|
m_text.LoadFromFont( THEME->GetPathF(sMetricsGroup,"Text") );
|
||||||
|
m_text.SetName( "Text" );
|
||||||
|
ActorUtil::LoadAllCommandsAndSetXYAndOnCommand( m_text, sMetricsGroup );
|
||||||
|
this->AddChild( &m_text );
|
||||||
|
|
||||||
|
Set("");
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModIcon::Set( const RString &_sText )
|
||||||
|
{
|
||||||
|
RString sText = _sText;
|
||||||
|
|
||||||
|
static const RString sStopWords[] =
|
||||||
|
{
|
||||||
|
"1X",
|
||||||
|
"DEFAULT",
|
||||||
|
"OVERHEAD",
|
||||||
|
"OFF",
|
||||||
|
};
|
||||||
|
|
||||||
|
for( unsigned i=0; i<ARRAYLEN(sStopWords); i++ )
|
||||||
|
if( 0==stricmp(sText,sStopWords[i]) )
|
||||||
|
sText = "";
|
||||||
|
|
||||||
|
sText.Replace( " ", "\n" );
|
||||||
|
|
||||||
|
bool bVacant = (sText=="");
|
||||||
|
m_sprFilled->SetVisible( !bVacant );
|
||||||
|
m_sprEmpty->SetVisible( bVacant );
|
||||||
|
|
||||||
|
m_text.SetText( sText );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (c) 2002-2004 Chris Danford
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/* ModIcon - Shows PlayerOptions and SongOptions in icon form. */
|
||||||
|
|
||||||
|
#ifndef ModIcon_H
|
||||||
|
#define ModIcon_H
|
||||||
|
|
||||||
|
#include "ActorFrame.h"
|
||||||
|
#include "AutoActor.h"
|
||||||
|
#include "BitmapText.h"
|
||||||
|
#include "PlayerNumber.h"
|
||||||
|
|
||||||
|
class ModIcon : public ActorFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ModIcon();
|
||||||
|
ModIcon( const ModIcon &cpy );
|
||||||
|
void Load( RString sMetricsGroup );
|
||||||
|
void Set( const RString &sText );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
BitmapText m_text;
|
||||||
|
AutoActor m_sprFilled;
|
||||||
|
AutoActor m_sprEmpty;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (c) 2002-2004 Chris Danford
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "ModIconRow.h"
|
||||||
|
#include "ThemeManager.h"
|
||||||
|
#include "PlayerOptions.h"
|
||||||
|
#include "GameState.h"
|
||||||
|
#include "RageLog.h"
|
||||||
|
#include "PlayerState.h"
|
||||||
|
#include "ActorUtil.h"
|
||||||
|
#include "XmlFile.h"
|
||||||
|
#include "LuaManager.h"
|
||||||
|
#include "Foreach.h"
|
||||||
|
|
||||||
|
REGISTER_ACTOR_CLASS( ModIconRow )
|
||||||
|
|
||||||
|
ModIconRow::ModIconRow()
|
||||||
|
{
|
||||||
|
m_pn = PlayerNumber_Invalid;
|
||||||
|
|
||||||
|
this->SubscribeToMessage( "PlayerOptionsChanged" );
|
||||||
|
}
|
||||||
|
|
||||||
|
ModIconRow::~ModIconRow()
|
||||||
|
{
|
||||||
|
FOREACH( ModIcon*, m_vpModIcon, p )
|
||||||
|
{
|
||||||
|
SAFE_DELETE( *p );
|
||||||
|
}
|
||||||
|
this->RemoveAllChildren();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModIconRow::Load( const RString &sMetricsGroup, PlayerNumber pn )
|
||||||
|
{
|
||||||
|
ASSERT_M( m_pn == PlayerNumber_Invalid, "Multiple calls to Load" );
|
||||||
|
|
||||||
|
m_sMetricsGroup = sMetricsGroup;
|
||||||
|
m_pn = pn;
|
||||||
|
|
||||||
|
SPACING_X.Load(sMetricsGroup,"SpacingX");
|
||||||
|
SPACING_Y.Load(sMetricsGroup,"SpacingY");
|
||||||
|
NUM_OPTION_ICONS.Load(sMetricsGroup,"NumModIcons");
|
||||||
|
OPTION_ICON_METRICS_GROUP.Load(sMetricsGroup,"ModIconMetricsGroup");
|
||||||
|
|
||||||
|
for( int i=0; i<NUM_OPTION_ICONS; i++ )
|
||||||
|
{
|
||||||
|
ModIcon *p = new ModIcon;
|
||||||
|
p->SetName( "ModIcon" );
|
||||||
|
p->SetXY( i*SPACING_X, i*SPACING_Y );
|
||||||
|
p->Load( OPTION_ICON_METRICS_GROUP );
|
||||||
|
ActorUtil::LoadAllCommands( p, sMetricsGroup );
|
||||||
|
m_vpModIcon.push_back( p );
|
||||||
|
this->AddChild( p );
|
||||||
|
}
|
||||||
|
|
||||||
|
SetFromGameState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModIconRow::HandleMessage( const Message &msg )
|
||||||
|
{
|
||||||
|
if( msg.GetName() == "PlayerOptionsChanged" )
|
||||||
|
SetFromGameState();
|
||||||
|
|
||||||
|
ActorFrame::HandleMessage( msg );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct OptionColumnEntry
|
||||||
|
{
|
||||||
|
char szString[30];
|
||||||
|
int iSlotIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const OptionColumnEntry g_OptionColumnEntries[] =
|
||||||
|
{
|
||||||
|
{"Boost", 0},
|
||||||
|
{"Brake", 0},
|
||||||
|
{"Wave", 0},
|
||||||
|
{"Expand", 0},
|
||||||
|
{"Boomerang", 0},
|
||||||
|
{"Drunk", 1},
|
||||||
|
{"Dizzy", 1},
|
||||||
|
{"Mini", 1},
|
||||||
|
{"Flip", 1},
|
||||||
|
{"Tornado", 1},
|
||||||
|
{"Hidden", 2},
|
||||||
|
{"Sudden", 2},
|
||||||
|
{"Stealth", 2},
|
||||||
|
{"Blink", 2},
|
||||||
|
{"RandomVanish", 2},
|
||||||
|
{"Mirror", 3},
|
||||||
|
{"Left", 3},
|
||||||
|
{"Right", 3},
|
||||||
|
{"Shuffle", 3},
|
||||||
|
{"SuperShuffle", 3},
|
||||||
|
{"Little", 4},
|
||||||
|
{"NoHolds", 4},
|
||||||
|
{"Dark", 4},
|
||||||
|
{"Blind", 4},
|
||||||
|
{"Reverse", 5},
|
||||||
|
{"Split", 5},
|
||||||
|
{"Alternate", 5},
|
||||||
|
{"Cross", 5},
|
||||||
|
{"Centered", 5},
|
||||||
|
{"Incoming", 6},
|
||||||
|
{"Space", 6},
|
||||||
|
{"Hallway", 6},
|
||||||
|
{"Distant", 6},
|
||||||
|
};
|
||||||
|
|
||||||
|
int OptionToPreferredColumn( RString sOptionText )
|
||||||
|
{
|
||||||
|
/* Speedups always go in column 0. digit ... x */
|
||||||
|
if( sOptionText.size() > 1 &&
|
||||||
|
isdigit(sOptionText[0]) &&
|
||||||
|
tolower(sOptionText[sOptionText.size()-1]) == 'x' )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( unsigned i=0; i<ARRAYLEN(g_OptionColumnEntries); i++ )
|
||||||
|
if( g_OptionColumnEntries[i].szString == sOptionText )
|
||||||
|
return g_OptionColumnEntries[i].iSlotIndex;
|
||||||
|
|
||||||
|
/* This warns about C1234 and noteskins. */
|
||||||
|
// LOG->Warn("Unknown option: '%s'", sOptionText.c_str() );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModIconRow::SetFromGameState()
|
||||||
|
{
|
||||||
|
PlayerNumber pn = m_pn;
|
||||||
|
|
||||||
|
RString sOptions = GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetStage().GetString();
|
||||||
|
vector<RString> vsOptions;
|
||||||
|
split( sOptions, ", ", vsOptions, true );
|
||||||
|
|
||||||
|
vector<RString> vsText; // fill these with what will be displayed on the tabs
|
||||||
|
vsText.resize( m_vpModIcon.size() );
|
||||||
|
|
||||||
|
// for each option, look for the best column to place it in
|
||||||
|
for( unsigned i=0; i<vsOptions.size(); i++ )
|
||||||
|
{
|
||||||
|
RString sOption = vsOptions[i];
|
||||||
|
int iPerferredCol = OptionToPreferredColumn( sOption );
|
||||||
|
clamp( iPerferredCol, 0, (int)m_vpModIcon.size()-1 );
|
||||||
|
|
||||||
|
if( iPerferredCol == -1 )
|
||||||
|
continue; // skip
|
||||||
|
|
||||||
|
// search for a vacant spot
|
||||||
|
for( int i=iPerferredCol; i<NUM_OPTION_ICONS; i++ )
|
||||||
|
{
|
||||||
|
if( vsText[i] != "" )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vsText[i] = sOption;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for( unsigned i=0; i<vsOptions.size(); i++ )
|
||||||
|
m_vpModIcon[i]->Set( vsText[i] );
|
||||||
|
}
|
||||||
|
|
||||||
|
// lua start
|
||||||
|
#include "LuaBinding.h"
|
||||||
|
|
||||||
|
class LunaModIconRow: public Luna<ModIconRow>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static int Load( T* p, lua_State *L ) { p->Load( SArg(1), Enum::Check<PlayerNumber>(L, 2) ); return 0; }
|
||||||
|
|
||||||
|
LunaModIconRow()
|
||||||
|
{
|
||||||
|
ADD_METHOD( Load );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
LUA_REGISTER_DERIVED_CLASS( ModIconRow, ActorFrame )
|
||||||
|
|
||||||
|
// lua end
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (c) 2002-2004 Chris Danford
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
/* ModIconRow - Shows PlayerOptions and SongOptions in icon form. */
|
||||||
|
|
||||||
|
#ifndef ModIconRow_H
|
||||||
|
#define ModIconRow_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "ActorFrame.h"
|
||||||
|
#include "ModIcon.h"
|
||||||
|
#include "ThemeMetric.h"
|
||||||
|
class PlayerOptions;
|
||||||
|
struct lua_State;
|
||||||
|
|
||||||
|
class ModIconRow : public ActorFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ModIconRow();
|
||||||
|
~ModIconRow();
|
||||||
|
|
||||||
|
void Load( const RString &sMetricsGroup, PlayerNumber pn );
|
||||||
|
|
||||||
|
virtual ModIconRow *Copy() const;
|
||||||
|
void SetFromGameState();
|
||||||
|
|
||||||
|
virtual void HandleMessage( const Message &msg );
|
||||||
|
|
||||||
|
//
|
||||||
|
// Commands
|
||||||
|
//
|
||||||
|
virtual void PushSelf( lua_State *L );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
RString m_sMetricsGroup;
|
||||||
|
PlayerNumber m_pn;
|
||||||
|
|
||||||
|
ThemeMetric<float> SPACING_X;
|
||||||
|
ThemeMetric<float> SPACING_Y;
|
||||||
|
ThemeMetric<int> NUM_OPTION_ICONS;
|
||||||
|
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
||||||
|
|
||||||
|
vector<ModIcon*> m_vpModIcon;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (c) 2002-2004 Chris Danford
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
||||||
|
* whom the Software is furnished to do so, provided that the above
|
||||||
|
* copyright notice(s) and this permission notice appear in all copies of
|
||||||
|
* the Software and that both the above copyright notice(s) and this
|
||||||
|
* permission notice appear in supporting documentation.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
||||||
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||||
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||||
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
||||||
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "OptionIcon.h"
|
#include "ModIcon.h"
|
||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
#include "PlayerOptions.h"
|
#include "PlayerOptions.h"
|
||||||
#include "RageUtil.h"
|
#include "RageUtil.h"
|
||||||
#include "ActorUtil.h"
|
#include "ActorUtil.h"
|
||||||
|
|
||||||
OptionIcon::OptionIcon()
|
ModIcon::ModIcon()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
OptionIcon::OptionIcon( const OptionIcon &cpy ):
|
ModIcon::ModIcon( const ModIcon &cpy ):
|
||||||
ActorFrame(cpy),
|
ActorFrame(cpy),
|
||||||
m_sprFilled(cpy.m_sprFilled),
|
m_sprFilled(cpy.m_sprFilled),
|
||||||
m_sprEmpty(cpy.m_sprEmpty),
|
m_sprEmpty(cpy.m_sprEmpty),
|
||||||
@@ -21,7 +21,7 @@ OptionIcon::OptionIcon( const OptionIcon &cpy ):
|
|||||||
this->AddChild( &m_text );
|
this->AddChild( &m_text );
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIcon::Load( RString sMetricsGroup )
|
void ModIcon::Load( RString sMetricsGroup )
|
||||||
{
|
{
|
||||||
m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") );
|
m_sprFilled.Load( THEME->GetPathG(sMetricsGroup,"Filled") );
|
||||||
this->AddChild( m_sprFilled );
|
this->AddChild( m_sprFilled );
|
||||||
@@ -37,7 +37,7 @@ void OptionIcon::Load( RString sMetricsGroup )
|
|||||||
Set("");
|
Set("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIcon::Set( const RString &_sText )
|
void ModIcon::Set( const RString &_sText )
|
||||||
{
|
{
|
||||||
RString sText = _sText;
|
RString sText = _sText;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* OptionIcon - Shows PlayerOptions and SongOptions in icon form. */
|
/* ModIcon - Shows PlayerOptions and SongOptions in icon form. */
|
||||||
|
|
||||||
#ifndef OPTION_ICON_H
|
#ifndef OPTION_ICON_H
|
||||||
#define OPTION_ICON_H
|
#define OPTION_ICON_H
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
#include "BitmapText.h"
|
#include "BitmapText.h"
|
||||||
#include "PlayerNumber.h"
|
#include "PlayerNumber.h"
|
||||||
|
|
||||||
class OptionIcon : public ActorFrame
|
class ModIcon : public ActorFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OptionIcon();
|
ModIcon();
|
||||||
OptionIcon( const OptionIcon &cpy );
|
ModIcon( const ModIcon &cpy );
|
||||||
void Load( RString sMetricsGroup );
|
void Load( RString sMetricsGroup );
|
||||||
void Set( const RString &sText );
|
void Set( const RString &sText );
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "OptionIconRow.h"
|
#include "ModIconRow.h"
|
||||||
#include "ThemeManager.h"
|
#include "ThemeManager.h"
|
||||||
#include "PlayerOptions.h"
|
#include "PlayerOptions.h"
|
||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
@@ -10,25 +10,25 @@
|
|||||||
#include "LuaManager.h"
|
#include "LuaManager.h"
|
||||||
#include "Foreach.h"
|
#include "Foreach.h"
|
||||||
|
|
||||||
REGISTER_ACTOR_CLASS( OptionIconRow )
|
REGISTER_ACTOR_CLASS( ModIconRow )
|
||||||
|
|
||||||
OptionIconRow::OptionIconRow()
|
ModIconRow::ModIconRow()
|
||||||
{
|
{
|
||||||
m_pn = PlayerNumber_Invalid;
|
m_pn = PlayerNumber_Invalid;
|
||||||
|
|
||||||
this->SubscribeToMessage( "PlayerOptionsChanged" );
|
this->SubscribeToMessage( "PlayerOptionsChanged" );
|
||||||
}
|
}
|
||||||
|
|
||||||
OptionIconRow::~OptionIconRow()
|
ModIconRow::~ModIconRow()
|
||||||
{
|
{
|
||||||
FOREACH( OptionIcon*, m_vpOptionIcon, p )
|
FOREACH( ModIcon*, m_vpModIcon, p )
|
||||||
{
|
{
|
||||||
SAFE_DELETE( *p );
|
SAFE_DELETE( *p );
|
||||||
}
|
}
|
||||||
this->RemoveAllChildren();
|
this->RemoveAllChildren();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIconRow::Load( const RString &sMetricsGroup, PlayerNumber pn )
|
void ModIconRow::Load( const RString &sMetricsGroup, PlayerNumber pn )
|
||||||
{
|
{
|
||||||
ASSERT_M( m_pn == PlayerNumber_Invalid, "Multiple calls to Load" );
|
ASSERT_M( m_pn == PlayerNumber_Invalid, "Multiple calls to Load" );
|
||||||
|
|
||||||
@@ -37,24 +37,24 @@ void OptionIconRow::Load( const RString &sMetricsGroup, PlayerNumber pn )
|
|||||||
|
|
||||||
SPACING_X.Load(sMetricsGroup,"SpacingX");
|
SPACING_X.Load(sMetricsGroup,"SpacingX");
|
||||||
SPACING_Y.Load(sMetricsGroup,"SpacingY");
|
SPACING_Y.Load(sMetricsGroup,"SpacingY");
|
||||||
NUM_OPTION_ICONS.Load(sMetricsGroup,"NumOptionIcons");
|
NUM_OPTION_ICONS.Load(sMetricsGroup,"NumModIcons");
|
||||||
OPTION_ICON_METRICS_GROUP.Load(sMetricsGroup,"OptionIconMetricsGroup");
|
OPTION_ICON_METRICS_GROUP.Load(sMetricsGroup,"ModIconMetricsGroup");
|
||||||
|
|
||||||
for( int i=0; i<NUM_OPTION_ICONS; i++ )
|
for( int i=0; i<NUM_OPTION_ICONS; i++ )
|
||||||
{
|
{
|
||||||
OptionIcon *p = new OptionIcon;
|
ModIcon *p = new ModIcon;
|
||||||
p->SetName( "OptionIcon" );
|
p->SetName( "ModIcon" );
|
||||||
p->SetXY( i*SPACING_X, i*SPACING_Y );
|
p->SetXY( i*SPACING_X, i*SPACING_Y );
|
||||||
p->Load( OPTION_ICON_METRICS_GROUP );
|
p->Load( OPTION_ICON_METRICS_GROUP );
|
||||||
ActorUtil::LoadAllCommands( p, sMetricsGroup );
|
ActorUtil::LoadAllCommands( p, sMetricsGroup );
|
||||||
m_vpOptionIcon.push_back( p );
|
m_vpModIcon.push_back( p );
|
||||||
this->AddChild( p );
|
this->AddChild( p );
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFromGameState();
|
SetFromGameState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIconRow::HandleMessage( const Message &msg )
|
void ModIconRow::HandleMessage( const Message &msg )
|
||||||
{
|
{
|
||||||
if( msg.GetName() == "PlayerOptionsChanged" )
|
if( msg.GetName() == "PlayerOptionsChanged" )
|
||||||
SetFromGameState();
|
SetFromGameState();
|
||||||
@@ -125,7 +125,7 @@ int OptionToPreferredColumn( RString sOptionText )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionIconRow::SetFromGameState()
|
void ModIconRow::SetFromGameState()
|
||||||
{
|
{
|
||||||
PlayerNumber pn = m_pn;
|
PlayerNumber pn = m_pn;
|
||||||
|
|
||||||
@@ -134,14 +134,14 @@ void OptionIconRow::SetFromGameState()
|
|||||||
split( sOptions, ", ", vsOptions, true );
|
split( sOptions, ", ", vsOptions, true );
|
||||||
|
|
||||||
vector<RString> vsText; // fill these with what will be displayed on the tabs
|
vector<RString> vsText; // fill these with what will be displayed on the tabs
|
||||||
vsText.resize( m_vpOptionIcon.size() );
|
vsText.resize( m_vpModIcon.size() );
|
||||||
|
|
||||||
// for each option, look for the best column to place it in
|
// for each option, look for the best column to place it in
|
||||||
for( unsigned i=0; i<vsOptions.size(); i++ )
|
for( unsigned i=0; i<vsOptions.size(); i++ )
|
||||||
{
|
{
|
||||||
RString sOption = vsOptions[i];
|
RString sOption = vsOptions[i];
|
||||||
int iPerferredCol = OptionToPreferredColumn( sOption );
|
int iPerferredCol = OptionToPreferredColumn( sOption );
|
||||||
clamp( iPerferredCol, 0, (int)m_vpOptionIcon.size()-1 );
|
clamp( iPerferredCol, 0, (int)m_vpModIcon.size()-1 );
|
||||||
|
|
||||||
if( iPerferredCol == -1 )
|
if( iPerferredCol == -1 )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
@@ -162,24 +162,24 @@ void OptionIconRow::SetFromGameState()
|
|||||||
}
|
}
|
||||||
|
|
||||||
for( unsigned i=0; i<vsOptions.size(); i++ )
|
for( unsigned i=0; i<vsOptions.size(); i++ )
|
||||||
m_vpOptionIcon[i]->Set( vsText[i] );
|
m_vpModIcon[i]->Set( vsText[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
// lua start
|
// lua start
|
||||||
#include "LuaBinding.h"
|
#include "LuaBinding.h"
|
||||||
|
|
||||||
class LunaOptionIconRow: public Luna<OptionIconRow>
|
class LunaModIconRow: public Luna<ModIconRow>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static int Load( T* p, lua_State *L ) { p->Load( SArg(1), Enum::Check<PlayerNumber>(L, 2) ); return 0; }
|
static int Load( T* p, lua_State *L ) { p->Load( SArg(1), Enum::Check<PlayerNumber>(L, 2) ); return 0; }
|
||||||
|
|
||||||
LunaOptionIconRow()
|
LunaModIconRow()
|
||||||
{
|
{
|
||||||
ADD_METHOD( Load );
|
ADD_METHOD( Load );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
LUA_REGISTER_DERIVED_CLASS( OptionIconRow, ActorFrame )
|
LUA_REGISTER_DERIVED_CLASS( ModIconRow, ActorFrame )
|
||||||
|
|
||||||
// lua end
|
// lua end
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
/* OptionIconRow - Shows PlayerOptions and SongOptions in icon form. */
|
/* ModIconRow - Shows PlayerOptions and SongOptions in icon form. */
|
||||||
|
|
||||||
#ifndef OPTION_ICON_ROW_H
|
#ifndef OPTION_ICON_ROW_H
|
||||||
#define OPTION_ICON_ROW_H
|
#define OPTION_ICON_ROW_H
|
||||||
|
|
||||||
|
|
||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
#include "OptionIcon.h"
|
#include "ModIcon.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
class PlayerOptions;
|
class PlayerOptions;
|
||||||
struct lua_State;
|
struct lua_State;
|
||||||
|
|
||||||
class OptionIconRow : public ActorFrame
|
class ModIconRow : public ActorFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OptionIconRow();
|
ModIconRow();
|
||||||
~OptionIconRow();
|
~ModIconRow();
|
||||||
|
|
||||||
void Load( const RString &sMetricsGroup, PlayerNumber pn );
|
void Load( const RString &sMetricsGroup, PlayerNumber pn );
|
||||||
|
|
||||||
virtual OptionIconRow *Copy() const;
|
virtual ModIconRow *Copy() const;
|
||||||
void SetFromGameState();
|
void SetFromGameState();
|
||||||
|
|
||||||
virtual void HandleMessage( const Message &msg );
|
virtual void HandleMessage( const Message &msg );
|
||||||
@@ -37,7 +37,7 @@ protected:
|
|||||||
ThemeMetric<int> NUM_OPTION_ICONS;
|
ThemeMetric<int> NUM_OPTION_ICONS;
|
||||||
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
||||||
|
|
||||||
vector<OptionIcon*> m_vpOptionIcon;
|
vector<ModIcon*> m_vpModIcon;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+20
-20
@@ -34,8 +34,8 @@ RString OptionRow::GetThemedItemText( int iChoice ) const
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
RString ITEMS_LONG_ROW_X_NAME( size_t p ) { return ssprintf("ItemsLongRowP%dX",int(p+1)); }
|
RString ITEMS_LONG_ROW_X_NAME( size_t p ) { return ssprintf("ItemsLongRowP%dX",int(p+1)); }
|
||||||
RString ICONS_X_NAME( size_t p ) { return ssprintf("IconsP%dX",int(p+1)); }
|
RString MOD_ICON_X_NAME( size_t p ) { return ssprintf("ModIconP%dX",int(p+1)); }
|
||||||
|
|
||||||
OptionRow::OptionRow( const OptionRowType *pSource )
|
OptionRow::OptionRow( const OptionRowType *pSource )
|
||||||
{
|
{
|
||||||
@@ -43,7 +43,7 @@ OptionRow::OptionRow( const OptionRowType *pSource )
|
|||||||
m_pHand = NULL;
|
m_pHand = NULL;
|
||||||
|
|
||||||
m_textTitle = NULL;
|
m_textTitle = NULL;
|
||||||
ZERO( m_OptionIcons );
|
ZERO( m_ModIcons );
|
||||||
|
|
||||||
Clear();
|
Clear();
|
||||||
this->AddChild( &m_Frame );
|
this->AddChild( &m_Frame );
|
||||||
@@ -100,17 +100,17 @@ void OptionRowType::Load( const RString &sType, Actor *pParent )
|
|||||||
ITEM_GAIN_FOCUS_COMMAND .Load(sType,"ItemGainFocusCommand");
|
ITEM_GAIN_FOCUS_COMMAND .Load(sType,"ItemGainFocusCommand");
|
||||||
ITEM_LOSE_FOCUS_COMMAND .Load(sType,"ItemLoseFocusCommand");
|
ITEM_LOSE_FOCUS_COMMAND .Load(sType,"ItemLoseFocusCommand");
|
||||||
EXIT_HIDE_ITEM .Load(sType,"ExitHideItem");
|
EXIT_HIDE_ITEM .Load(sType,"ExitHideItem");
|
||||||
ICONS_X .Load(sType,ICONS_X_NAME,NUM_PLAYERS);
|
MOD_ICON_X .Load(sType,MOD_ICON_X_NAME,NUM_PLAYERS);
|
||||||
ICONS_ON_COMMAND .Load(sType,"IconsOnCommand");
|
MOD_ICON_ON_COMMAND .Load(sType,"ModIconOnCommand");
|
||||||
COLOR_SELECTED .Load(sType,"ColorSelected");
|
COLOR_SELECTED .Load(sType,"ColorSelected");
|
||||||
COLOR_NOT_SELECTED .Load(sType,"ColorNotSelected");
|
COLOR_NOT_SELECTED .Load(sType,"ColorNotSelected");
|
||||||
COLOR_DISABLED .Load(sType,"ColorDisabled");
|
COLOR_DISABLED .Load(sType,"ColorDisabled");
|
||||||
CAPITALIZE_ALL_OPTION_NAMES .Load(sType,"CapitalizeAllOptionNames");
|
CAPITALIZE_ALL_OPTION_NAMES .Load(sType,"CapitalizeAllOptionNames");
|
||||||
TWEEN_SECONDS .Load(sType,"TweenSeconds");
|
TWEEN_SECONDS .Load(sType,"TweenSeconds");
|
||||||
SHOW_BPM_IN_SPEED_TITLE .Load(sType,"ShowBpmInSpeedTitle");
|
SHOW_BPM_IN_SPEED_TITLE .Load(sType,"ShowBpmInSpeedTitle");
|
||||||
SHOW_OPTION_ICONS .Load(sType,"ShowOptionIcons");
|
SHOW_MOD_ICONS .Load(sType,"ShowModIcons");
|
||||||
SHOW_UNDERLINES .Load(sType,"ShowUnderlines");
|
SHOW_UNDERLINES .Load(sType,"ShowUnderlines");
|
||||||
OPTION_ICON_METRICS_GROUP .Load(sType,"OptionIconMetricsGroup");
|
MOD_ICON_METRICS_GROUP .Load(sType,"ModIconMetricsGroup");
|
||||||
|
|
||||||
m_textItem.LoadFromFont( THEME->GetPathF(sType,"item") );
|
m_textItem.LoadFromFont( THEME->GetPathF(sType,"item") );
|
||||||
if( SHOW_UNDERLINES )
|
if( SHOW_UNDERLINES )
|
||||||
@@ -121,8 +121,8 @@ void OptionRowType::Load( const RString &sType, Actor *pParent )
|
|||||||
m_textTitle.LoadFromFont( THEME->GetPathF(sType,"title") );
|
m_textTitle.LoadFromFont( THEME->GetPathF(sType,"title") );
|
||||||
m_sprFrameNormal.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameNormal"), pParent ) );
|
m_sprFrameNormal.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameNormal"), pParent ) );
|
||||||
m_sprFrameExit.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameExit"), pParent ) );
|
m_sprFrameExit.Load( ActorUtil::MakeActor( THEME->GetPathG(sType,"FrameExit"), pParent ) );
|
||||||
if( SHOW_OPTION_ICONS )
|
if( SHOW_MOD_ICONS )
|
||||||
m_OptionIcon.Load( OPTION_ICON_METRICS_GROUP );
|
m_ModIcon.Load( MOD_ICON_METRICS_GROUP );
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionRow::LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown )
|
void OptionRow::LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown )
|
||||||
@@ -265,21 +265,21 @@ void OptionRow::InitText( RowType type )
|
|||||||
m_sprFrame->SetDrawOrder(-1); // under title
|
m_sprFrame->SetDrawOrder(-1); // under title
|
||||||
m_Frame.AddChild( m_sprFrame );
|
m_Frame.AddChild( m_sprFrame );
|
||||||
|
|
||||||
if( m_pParentType->SHOW_OPTION_ICONS )
|
if( m_pParentType->SHOW_MOD_ICONS )
|
||||||
{
|
{
|
||||||
switch( m_RowType )
|
switch( m_RowType )
|
||||||
{
|
{
|
||||||
case RowType_Normal:
|
case RowType_Normal:
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
m_OptionIcons[p] = new OptionIcon( m_pParentType->m_OptionIcon );
|
m_ModIcons[p] = new ModIcon( m_pParentType->m_ModIcon );
|
||||||
m_OptionIcons[p]->SetDrawOrder(-1); // under title
|
m_ModIcons[p]->SetDrawOrder(-1); // under title
|
||||||
m_OptionIcons[p]->RunCommands( m_pParentType->ICONS_ON_COMMAND );
|
m_ModIcons[p]->RunCommands( m_pParentType->MOD_ICON_ON_COMMAND );
|
||||||
|
|
||||||
m_Frame.AddChild( m_OptionIcons[p] );
|
m_Frame.AddChild( m_ModIcons[p] );
|
||||||
|
|
||||||
GameCommand gc;
|
GameCommand gc;
|
||||||
SetOptionIcon( p, "", gc );
|
SetModIcon( p, "", gc );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RowType_Exit:
|
case RowType_Exit:
|
||||||
@@ -520,11 +520,11 @@ void OptionRow::PositionUnderlines( PlayerNumber pn )
|
|||||||
|
|
||||||
void OptionRow::PositionIcons( PlayerNumber pn )
|
void OptionRow::PositionIcons( PlayerNumber pn )
|
||||||
{
|
{
|
||||||
OptionIcon *pIcon = m_OptionIcons[pn];
|
ModIcon *pIcon = m_ModIcons[pn];
|
||||||
if( pIcon == NULL )
|
if( pIcon == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pIcon->SetX( m_pParentType->ICONS_X.GetValue(pn) );
|
pIcon->SetX( m_pParentType->MOD_ICON_X.GetValue(pn) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called when the focus changes, to update "long row" text. */
|
/* This is called when the focus changes, to update "long row" text. */
|
||||||
@@ -672,14 +672,14 @@ void OptionRow::Update( float fDeltaTime )
|
|||||||
m_Frame.SetBaseAlpha( fAlpha );
|
m_Frame.SetBaseAlpha( fAlpha );
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionRow::SetOptionIcon( PlayerNumber pn, const RString &sText, GameCommand &gc )
|
void OptionRow::SetModIcon( PlayerNumber pn, const RString &sText, GameCommand &gc )
|
||||||
{
|
{
|
||||||
// update row frame
|
// update row frame
|
||||||
Message msg( "Refresh" );
|
Message msg( "Refresh" );
|
||||||
msg.SetParam( "GameCommand", &gc );
|
msg.SetParam( "GameCommand", &gc );
|
||||||
m_sprFrame->HandleMessage( msg );
|
m_sprFrame->HandleMessage( msg );
|
||||||
if( m_OptionIcons[pn] != NULL )
|
if( m_ModIcons[pn] != NULL )
|
||||||
m_OptionIcons[pn]->Set( sText );
|
m_ModIcons[pn]->Set( sText );
|
||||||
}
|
}
|
||||||
|
|
||||||
const BitmapText &OptionRow::GetTextItemForRow( PlayerNumber pn, int iChoiceOnRow ) const
|
const BitmapText &OptionRow::GetTextItemForRow( PlayerNumber pn, int iChoiceOnRow ) const
|
||||||
|
|||||||
+21
-21
@@ -6,7 +6,7 @@
|
|||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
#include "BitmapText.h"
|
#include "BitmapText.h"
|
||||||
#include "OptionsCursor.h"
|
#include "OptionsCursor.h"
|
||||||
#include "OptionIcon.h"
|
#include "ModIcon.h"
|
||||||
#include "ThemeMetric.h"
|
#include "ThemeMetric.h"
|
||||||
#include "AutoActor.h"
|
#include "AutoActor.h"
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ private:
|
|||||||
AutoActor m_sprFrameNormal;
|
AutoActor m_sprFrameNormal;
|
||||||
AutoActor m_sprFrameExit;
|
AutoActor m_sprFrameExit;
|
||||||
BitmapText m_textTitle;
|
BitmapText m_textTitle;
|
||||||
OptionIcon m_OptionIcon;
|
ModIcon m_ModIcon;
|
||||||
|
|
||||||
// metrics
|
// metrics
|
||||||
ThemeMetric<float> FRAME_X;
|
ThemeMetric<float> FRAME_X;
|
||||||
@@ -46,17 +46,17 @@ private:
|
|||||||
ThemeMetric<apActorCommands> ITEM_GAIN_FOCUS_COMMAND;
|
ThemeMetric<apActorCommands> ITEM_GAIN_FOCUS_COMMAND;
|
||||||
ThemeMetric<apActorCommands> ITEM_LOSE_FOCUS_COMMAND;
|
ThemeMetric<apActorCommands> ITEM_LOSE_FOCUS_COMMAND;
|
||||||
ThemeMetric<bool> EXIT_HIDE_ITEM;
|
ThemeMetric<bool> EXIT_HIDE_ITEM;
|
||||||
ThemeMetric1D<float> ICONS_X;
|
ThemeMetric1D<float> MOD_ICON_X;
|
||||||
ThemeMetric<apActorCommands> ICONS_ON_COMMAND;
|
ThemeMetric<apActorCommands> MOD_ICON_ON_COMMAND;
|
||||||
ThemeMetric<RageColor> COLOR_SELECTED;
|
ThemeMetric<RageColor> COLOR_SELECTED;
|
||||||
ThemeMetric<RageColor> COLOR_NOT_SELECTED;
|
ThemeMetric<RageColor> COLOR_NOT_SELECTED;
|
||||||
ThemeMetric<RageColor> COLOR_DISABLED;
|
ThemeMetric<RageColor> COLOR_DISABLED;
|
||||||
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES;
|
ThemeMetric<bool> CAPITALIZE_ALL_OPTION_NAMES;
|
||||||
ThemeMetric<float> TWEEN_SECONDS;
|
ThemeMetric<float> TWEEN_SECONDS;
|
||||||
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE;
|
ThemeMetric<bool> SHOW_BPM_IN_SPEED_TITLE;
|
||||||
ThemeMetric<bool> SHOW_OPTION_ICONS;
|
ThemeMetric<bool> SHOW_MOD_ICONS;
|
||||||
ThemeMetric<bool> SHOW_UNDERLINES;
|
ThemeMetric<bool> SHOW_UNDERLINES;
|
||||||
ThemeMetric<RString> OPTION_ICON_METRICS_GROUP;
|
ThemeMetric<RString> MOD_ICON_METRICS_GROUP;
|
||||||
|
|
||||||
friend class OptionRow;
|
friend class OptionRow;
|
||||||
};
|
};
|
||||||
@@ -72,7 +72,7 @@ public:
|
|||||||
void LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown );
|
void LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown );
|
||||||
void LoadExit();
|
void LoadExit();
|
||||||
|
|
||||||
void SetOptionIcon( PlayerNumber pn, const RString &sText, GameCommand &gc );
|
void SetModIcon( PlayerNumber pn, const RString &sText, GameCommand &gc );
|
||||||
|
|
||||||
void ImportOptions( const vector<PlayerNumber> &vpns );
|
void ImportOptions( const vector<PlayerNumber> &vpns );
|
||||||
int ExportOptions( const vector<PlayerNumber> &vpns, bool bRowHasFocus[NUM_PLAYERS] );
|
int ExportOptions( const vector<PlayerNumber> &vpns, bool bRowHasFocus[NUM_PLAYERS] );
|
||||||
@@ -132,26 +132,26 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
RString GetRowTitle() const;
|
RString GetRowTitle() const;
|
||||||
|
|
||||||
const OptionRowType *m_pParentType;
|
const OptionRowType *m_pParentType;
|
||||||
RowType m_RowType;
|
RowType m_RowType;
|
||||||
OptionRowHandler* m_pHand;
|
OptionRowHandler* m_pHand;
|
||||||
|
|
||||||
ActorFrame m_Frame;
|
ActorFrame m_Frame;
|
||||||
|
|
||||||
vector<BitmapText *> m_textItems; // size depends on m_bRowIsLong and which players are joined
|
vector<BitmapText *> m_textItems; // size depends on m_bRowIsLong and which players are joined
|
||||||
vector<OptionsCursor *> m_Underline[NUM_PLAYERS]; // size depends on m_bRowIsLong and which players are joined
|
vector<OptionsCursor *> m_Underline[NUM_PLAYERS]; // size depends on m_bRowIsLong and which players are joined
|
||||||
|
|
||||||
Actor *m_sprFrame;
|
Actor *m_sprFrame;
|
||||||
BitmapText *m_textTitle;
|
BitmapText *m_textTitle;
|
||||||
OptionIcon *m_OptionIcons[NUM_PLAYERS];
|
ModIcon *m_ModIcons[NUM_PLAYERS];
|
||||||
|
|
||||||
bool m_bFirstItemGoesDown;
|
bool m_bFirstItemGoesDown;
|
||||||
bool m_bRowHasFocus[NUM_PLAYERS];
|
bool m_bRowHasFocus[NUM_PLAYERS];
|
||||||
|
|
||||||
int m_iChoiceInRowWithFocus[NUM_PLAYERS]; // this choice has input focus
|
int m_iChoiceInRowWithFocus[NUM_PLAYERS]; // this choice has input focus
|
||||||
// Only one will true at a time if m_pHand->m_Def.bMultiSelect
|
// Only one will true at a time if m_pHand->m_Def.bMultiSelect
|
||||||
vector<bool> m_vbSelected[NUM_PLAYERS]; // size = m_pHand->m_Def.choices.size()
|
vector<bool> m_vbSelected[NUM_PLAYERS]; // size = m_pHand->m_Def.choices.size()
|
||||||
Actor::TweenState m_tsDestination; // this should approach m_tsDestination.
|
Actor::TweenState m_tsDestination; // this should approach m_tsDestination.
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetDestination( Actor::TweenState &ts, bool bTween );
|
void SetDestination( Actor::TweenState &ts, bool bTween );
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
/* OptionsList - A popup options list. */
|
||||||
|
|
||||||
#ifndef SCREEN_OPTIONS_LIST_H
|
#ifndef SCREEN_OPTIONS_LIST_H
|
||||||
#define SCREEN_OPTIONS_LIST_H
|
#define SCREEN_OPTIONS_LIST_H
|
||||||
|
|
||||||
|
|||||||
@@ -89,11 +89,11 @@ void ScreenNetSelectMusic::Init()
|
|||||||
|
|
||||||
FOREACH_EnabledPlayer( p )
|
FOREACH_EnabledPlayer( p )
|
||||||
{
|
{
|
||||||
m_OptionIconRow[p].SetName( ssprintf("OptionIconsP%d",p+1) );
|
m_ModIconRow[p].SetName( ssprintf("ModIconsP%d",p+1) );
|
||||||
m_OptionIconRow[p].Load( "OptionIconRowSelectMusic", p );
|
m_ModIconRow[p].Load( "ModIconRowSelectMusic", p );
|
||||||
m_OptionIconRow[p].SetFromGameState();
|
m_ModIconRow[p].SetFromGameState();
|
||||||
LOAD_ALL_COMMANDS_AND_SET_XY_AND_ON_COMMAND( m_OptionIconRow[p] );
|
LOAD_ALL_COMMANDS_AND_SET_XY_AND_ON_COMMAND( m_ModIconRow[p] );
|
||||||
this->AddChild( &m_OptionIconRow[p] );
|
this->AddChild( &m_ModIconRow[p] );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Load SFX next
|
//Load SFX next
|
||||||
@@ -278,7 +278,7 @@ void ScreenNetSelectMusic::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
|
|
||||||
//Update changes
|
//Update changes
|
||||||
FOREACH_EnabledPlayer(p)
|
FOREACH_EnabledPlayer(p)
|
||||||
m_OptionIconRow[p].SetFromGameState();
|
m_ModIconRow[p].SetFromGameState();
|
||||||
}
|
}
|
||||||
else if( SM == SM_SongChanged )
|
else if( SM == SM_SongChanged )
|
||||||
{
|
{
|
||||||
@@ -454,7 +454,7 @@ void ScreenNetSelectMusic::TweenOffScreen()
|
|||||||
{
|
{
|
||||||
OFF_COMMAND( m_DifficultyDisplays[pn] );
|
OFF_COMMAND( m_DifficultyDisplays[pn] );
|
||||||
OFF_COMMAND( m_DifficultyIcon[pn] );
|
OFF_COMMAND( m_DifficultyIcon[pn] );
|
||||||
OFF_COMMAND( m_OptionIconRow[pn] );
|
OFF_COMMAND( m_ModIconRow[pn] );
|
||||||
}
|
}
|
||||||
|
|
||||||
OFF_COMMAND( m_MusicWheel );
|
OFF_COMMAND( m_MusicWheel );
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#include "Difficulty.h"
|
#include "Difficulty.h"
|
||||||
#include "DifficultyDisplay.h"
|
#include "DifficultyDisplay.h"
|
||||||
#include "MusicWheel.h"
|
#include "MusicWheel.h"
|
||||||
#include "OptionIconRow.h"
|
#include "ModIconRow.h"
|
||||||
#include "BPMDisplay.h"
|
#include "BPMDisplay.h"
|
||||||
|
|
||||||
class ScreenNetSelectMusic : public ScreenNetSelectBase
|
class ScreenNetSelectMusic : public ScreenNetSelectBase
|
||||||
@@ -74,7 +74,7 @@ private:
|
|||||||
RageSound m_soundChangeSel;
|
RageSound m_soundChangeSel;
|
||||||
|
|
||||||
BPMDisplay m_BPMDisplay;
|
BPMDisplay m_BPMDisplay;
|
||||||
OptionIconRow m_OptionIconRow[NUM_PLAYERS];
|
ModIconRow m_ModIconRow[NUM_PLAYERS];
|
||||||
|
|
||||||
Song * m_cSong;
|
Song * m_cSong;
|
||||||
|
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ void ScreenOptions::RefreshIcons( int iRow, PlayerNumber pn )
|
|||||||
if( def.m_bOneChoiceForAllPlayers )
|
if( def.m_bOneChoiceForAllPlayers )
|
||||||
sIcon = "";
|
sIcon = "";
|
||||||
|
|
||||||
m_pRows[iRow]->SetOptionIcon( pn, sIcon, gc );
|
m_pRows[iRow]->SetModIcon( pn, sIcon, gc );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenOptions::PositionCursor( PlayerNumber pn )
|
void ScreenOptions::PositionCursor( PlayerNumber pn )
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
#include "RageSound.h"
|
#include "RageSound.h"
|
||||||
#include "GameConstantsAndTypes.h"
|
#include "GameConstantsAndTypes.h"
|
||||||
#include "OptionIcon.h"
|
#include "ModIcon.h"
|
||||||
#include "Banner.h"
|
#include "Banner.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ private:
|
|||||||
Sprite m_sprCardArrows[NUM_PLAYERS];
|
Sprite m_sprCardArrows[NUM_PLAYERS];
|
||||||
|
|
||||||
Sprite m_sprAttackFrame[NUM_PLAYERS];
|
Sprite m_sprAttackFrame[NUM_PLAYERS];
|
||||||
OptionIcon m_AttackIcons[NUM_PLAYERS][NUM_ATTACK_LEVELS][NUM_ATTACKS_PER_LEVEL];
|
ModIcon m_AttackIcons[NUM_PLAYERS][NUM_ATTACK_LEVELS][NUM_ATTACKS_PER_LEVEL];
|
||||||
|
|
||||||
Sprite m_sprExplanation;
|
Sprite m_sprExplanation;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ static const char *SelectionStateNames[] = {
|
|||||||
XToString( SelectionState );
|
XToString( SelectionState );
|
||||||
|
|
||||||
|
|
||||||
const int NUM_SCORE_DIGITS = 9;
|
const int NUM_SCORE_DIGITS = 9;
|
||||||
|
|
||||||
#define SHOW_OPTIONS_MESSAGE_SECONDS THEME->GetMetricF( m_sName, "ShowOptionsMessageSeconds" )
|
#define SHOW_OPTIONS_MESSAGE_SECONDS THEME->GetMetricF( m_sName, "ShowOptionsMessageSeconds" )
|
||||||
|
|
||||||
|
|||||||
@@ -1430,6 +1430,18 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\
|
|||||||
<File
|
<File
|
||||||
RelativePath="MenuTimer.h">
|
RelativePath="MenuTimer.h">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ModIcon.cpp">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ModIcon.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ModIconRow.cpp">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ModIconRow.h">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="MusicBannerWheel.cpp">
|
RelativePath="MusicBannerWheel.cpp">
|
||||||
</File>
|
</File>
|
||||||
@@ -1454,18 +1466,6 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\
|
|||||||
<File
|
<File
|
||||||
RelativePath="MusicWheelItem.h">
|
RelativePath="MusicWheelItem.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="OptionIcon.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="OptionIcon.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="OptionIconRow.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="OptionIconRow.h">
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="OptionRow.cpp">
|
RelativePath="OptionRow.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
|||||||
Reference in New Issue
Block a user