本文整理汇总了C++中PlayerOptions类的典型用法代码示例。如果您正苦于以下问题:C++ PlayerOptions类的具体用法?C++ PlayerOptions怎么用?C++ PlayerOptions使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PlayerOptions类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RebuildPlayerOptionsFromActiveAttacks
void PlayerState::RebuildPlayerOptionsFromActiveAttacks()
{
// rebuild player options
PlayerOptions po = m_PlayerOptions.GetStage();
SongOptions so = GAMESTATE->m_SongOptions.GetStage();
for( unsigned s=0; s<m_ActiveAttacks.size(); s++ )
{
if( !m_ActiveAttacks[s].bOn )
continue; /* hasn't started yet */
po.FromString( m_ActiveAttacks[s].sModifiers );
so.FromString( m_ActiveAttacks[s].sModifiers );
}
m_PlayerOptions.Assign( ModsLevel_Song, po );
if( m_PlayerNumber == GAMESTATE->GetMasterPlayerNumber() )
GAMESTATE->m_SongOptions.Assign( ModsLevel_Song, so );
int iSumOfAttackLevels = GetSumOfActiveAttackLevels();
if( iSumOfAttackLevels > 0 )
{
m_iLastPositiveSumOfAttackLevels = iSumOfAttackLevels;
m_fSecondsUntilAttacksPhasedOut = 10000; // any positive number that won't run out before the attacks
}
else
{
// don't change! m_iLastPositiveSumOfAttackLevels[p] = iSumOfAttackLevels;
m_fSecondsUntilAttacksPhasedOut = 2; // 2 seconds to phase out
}
}
示例2: SetPlayerOptions
static int SetPlayerOptions( T* p, lua_State *L )
{
ModsLevel m = Enum::Check<ModsLevel>( L, 1 );
PlayerOptions po;
po.FromString( SArg(2) );
p->m_PlayerOptions.Assign( m, po );
return 0;
}
示例3: RadarValues
const RadarValues &Trail::GetRadarValues() const
{
if( m_bRadarValuesCached )
{
return m_CachedRadarValues;
}
if( IsSecret() )
{
// Don't calculate RadarValues for a non-fixed Course. They values are
// worthless because they'll change every time this Trail is
// regenerated.
m_CachedRadarValues = RadarValues();
return m_CachedRadarValues;
}
else
{
RadarValues rv;
rv.Zero();
FOREACH_CONST( TrailEntry, m_vEntries, e )
{
const Steps *pSteps = e->pSteps;
ASSERT( pSteps != NULL );
// Hack: don't calculate for autogen entries
if( !pSteps->IsAutogen() && e->ContainsTransformOrTurn() )
{
NoteData nd;
pSteps->GetNoteData( nd );
RadarValues rv_orig;
GAMESTATE->SetProcessedTimingData(const_cast<TimingData *>(pSteps->GetTimingData()));
NoteDataUtil::CalculateRadarValues( nd, e->pSong->m_fMusicLengthSeconds, rv_orig );
PlayerOptions po;
po.FromString( e->Modifiers );
if( po.ContainsTransformOrTurn() )
{
NoteDataUtil::TransformNoteData(nd, *(pSteps->GetTimingData()), po, pSteps->m_StepsType);
}
NoteDataUtil::TransformNoteData(nd, *(pSteps->GetTimingData()), e->Attacks, pSteps->m_StepsType, e->pSong);
RadarValues transformed_rv;
NoteDataUtil::CalculateRadarValues( nd, e->pSong->m_fMusicLengthSeconds, transformed_rv );
GAMESTATE->SetProcessedTimingData(NULL);
rv += transformed_rv;
}
else
{
rv += pSteps->GetRadarValues( PLAYER_1 );
}
}
/* Hack: SetRadarValues is non-const (a const setter doesn't
* make sense), but it only modifies a mutable value. Just
* cast away const. */
const_cast<Trail*>(this)->SetRadarValues( rv );
return m_CachedRadarValues;
}
}
示例4: SetDefaultModifiers
static void SetDefaultModifiers( const PlayerOptions &po, const SongOptions &so )
{
CStringArray as;
if( po.GetString() != "" )
as.push_back( po.GetString() );
if( so.GetString() != "" )
as.push_back( so.GetString() );
PREFSMAN->m_sDefaultModifiers.Set( join(", ",as) );
}
示例5: ContainsTransformOrTurn
bool TrailEntry::ContainsTransformOrTurn() const
{
PlayerOptions po;
po.FromString( Modifiers );
if( po.ContainsTransformOrTurn() )
return true;
if( Attacks.ContainsTransformOrTurn() )
return true;
return false;
}
示例6: if
const RadarValues &Trail::GetRadarValues() const
{
if( m_bRadarValuesCached )
{
return m_CachedRadarValues;
}
else if( IsSecret() )
{
// Don't calculate RadarValues for a non-fixed Course. The values are
// worthless because they'll change every time this Trail is
// regenerated.
m_CachedRadarValues = RadarValues();
return m_CachedRadarValues;
}
else
{
RadarValues rv;
rv.Zero();
FOREACH_CONST( TrailEntry, m_vEntries, e )
{
const Steps *pSteps = e->pSteps;
ASSERT( pSteps );
/* Hack: don't calculate for autogen entries; it makes writing Catalog.xml
* take way too long. (Tournamix 4 Sample.crs takes me ~10s.) */
if( !pSteps->IsAutogen() && e->ContainsTransformOrTurn() )
{
NoteData nd;
pSteps->GetNoteData( nd );
RadarValues rv_orig;
NoteDataUtil::CalculateRadarValues( nd, e->pSong->MusicLengthSeconds(), rv_orig );
PlayerOptions po;
po.FromString( e->Modifiers );
if( po.ContainsTransformOrTurn() )
NoteDataUtil::TransformNoteData( nd, po, pSteps->m_StepsType );
NoteDataUtil::TransformNoteData( nd, e->Attacks, pSteps->m_StepsType, e->pSong );
RadarValues transformed_rv;
NoteDataUtil::CalculateRadarValues( nd, e->pSong->MusicLengthSeconds(), transformed_rv );
rv += transformed_rv;
}
else
{
rv += pSteps->GetRadarValues();
}
}
/* Hack: SetRadarValues is non-const (a const setter doesn't
* make sense), but it only modifies a mutable value. Just
* cast away const. */
const_cast<Trail*>(this)->SetRadarValues( rv );
return m_CachedRadarValues;
}
}
示例7: SetPrefsDefaultModifiers
static void SetPrefsDefaultModifiers( const PlayerOptions &po, const SongOptions &so )
{
vector<RString> as;
#define remove_empty_back() if(as.back() == "") { as.pop_back(); }
as.push_back(po.GetString());
remove_empty_back();
as.push_back(so.GetString());
remove_empty_back();
#undef remove_empty_back
PREFSMAN->m_sDefaultModifiers.Set( join(", ",as) );
}
示例8: Refresh
void ActiveAttackList::Refresh()
{
const AttackArray& attacks = m_pPlayerState->m_ActiveAttacks;
vector<CString> vsThemedMods;
for( unsigned i=0; i<attacks.size(); i++ )
{
const Attack& attack = attacks[i];
if( !attack.bOn )
continue; /* hasn't started yet */
if( !attack.bShowInAttackList )
continue;
PlayerOptions po;
po.FromString( attack.sModifiers, true );
po.GetThemedMods( vsThemedMods );
}
CString s = join( "\n", vsThemedMods );
this->SetText( s ); // BitmapText will not rebuild vertices if these strings are the same.
}
示例9: GetDefaultModifiers
static void GetDefaultModifiers( PlayerOptions &po, SongOptions &so )
{
po.FromString( PREFSMAN->m_sDefaultModifiers );
so.FromString( PREFSMAN->m_sDefaultModifiers );
}
示例10: ContainsTransformOrTurn
bool Attack::ContainsTransformOrTurn() const
{
PlayerOptions po;
po.FromString(sModifiers);
return po.ContainsTransformOrTurn();
}
示例11: CanGoLeft
void EditCoursesMenu::OnRowValueChanged( Row row )
{
LOG->Trace( "EditCoursesMenu::OnRowValueChanged(%i)", row );
const bool bCanGoLeft = CanGoLeft(), bCanGoRight = CanGoRight();
m_sprArrows[0].SetDiffuse( bCanGoLeft?RageColor(1,1,1,1):RageColor(0.2f,0.2f,0.2f,1) );
m_sprArrows[1].SetDiffuse( bCanGoRight?RageColor(1,1,1,1):RageColor(0.2f,0.2f,0.2f,1) );
m_sprArrows[0].EnableAnimation( bCanGoLeft );
m_sprArrows[1].EnableAnimation( bCanGoRight );
Course* pCourse = GetSelectedCourse();
CourseEntry* pEntry = GetSelectedEntry();
switch( row )
{
case ROW_COURSE:
CHECKPOINT;
m_textValue[ROW_COURSE].SetText( pCourse->GetFullDisplayTitle() );
m_CourseBanner.LoadFromCourse( pCourse );
m_CourseBanner.ScaleToClipped( COURSE_BANNER_WIDTH, COURSE_BANNER_HEIGHT );
m_iSelection[ROW_ENTRY] = 0;
pEntry = GetSelectedEntry();
if( pEntry == NULL )
{
CourseEntry ce;
const vector<Song*> &apSongs = SONGMAN->GetAllSongs();
ASSERT( !apSongs.empty() );
ce.pSong = apSongs[0];
pCourse->m_entries.push_back( ce );
pEntry = GetSelectedEntry();
}
// fall through
case ROW_COURSE_OPTIONS:
CHECKPOINT;
m_textValue[ROW_COURSE_OPTIONS].SetText(
ssprintf(
"(START) %s, %s, ",
pCourse->m_bRepeat ? "repeat" : "no repeat",
pCourse->m_bRandomize ? "randomize" : "no randomize" ) +
ssprintf(
(pCourse->m_iLives==-1) ? "use bar life" : "%d lives",
pCourse->m_iLives ) );
// fall through
case ROW_ACTION:
CHECKPOINT;
m_textValue[ROW_ACTION].SetText( "(START) " + ActionToString(GetSelectedAction()) );
// fall through
case ROW_ENTRY:
CHECKPOINT;
m_textValue[ROW_ENTRY].SetText( ssprintf("%d of %d",m_iSelection[ROW_ENTRY]+1, (int)GetSelectedCourse()->m_entries.size()) );
m_iSelection[ROW_ENTRY_TYPE] = pEntry->type;
// fall through
case ROW_ENTRY_TYPE:
CHECKPOINT;
m_textValue[ROW_ENTRY_TYPE].SetText( pEntry ? CourseEntryTypeToString(pEntry->type) : CString("(none)") );
// fall through
case ROW_ENTRY_OPTIONS:
CHECKPOINT;
{
CStringArray as;
const bool *bShow = g_bRowEnabledForType[GetSelectedEntry()->type];
if( bShow[song] )
as.push_back( pEntry->pSong ? pEntry->pSong->GetFullTranslitTitle() : CString("(missing song)") );
if( bShow[group] )
as.push_back( pEntry->group_name.empty() ? CString("(no group)") : pEntry->group_name );
if( bShow[difficulty] )
if( pEntry->difficulty != DIFFICULTY_INVALID )
as.push_back( DifficultyToString(pEntry->difficulty) );
if( bShow[low_meter] )
if( pEntry->low_meter > 0 )
as.push_back( ssprintf("low meter %d", pEntry->low_meter) );
if( bShow[high_meter] )
if( pEntry->high_meter > 0 )
as.push_back( ssprintf("high meter %d", pEntry->high_meter) );
if( bShow[best_worst_value] )
if( pEntry->players_index != -1 )
as.push_back( ssprintf("rank %d", pEntry->players_index+1) );
m_textValue[ROW_ENTRY_OPTIONS].SetText( "(START) " + join(", ",as) );
}
// fall through
case ROW_ENTRY_PLAYER_OPTIONS:
CHECKPOINT;
{
CString s = "(START) ";
PlayerOptions po;
po.FromString( pEntry->modifiers );
if( po.GetString().empty() )
s += "(none)";
else
s += po.GetString();
m_textValue[ROW_ENTRY_PLAYER_OPTIONS].SetText( s );
}
// fall through
case ROW_ENTRY_SONG_OPTIONS:
CHECKPOINT;
{
//.........这里部分代码省略.........
示例12: main
int main(int argc, char **argv)
{
PlayerOptions options;
po::variables_map vm;
po::options_description desc("Kitti_player, a player for KITTI visual odometry datasets\nDatasets can be downloaded from: http://www.cvlibs.net/datasets/kitti/eval_odometry.php\n\nAllowed options",200);
desc.add_options()
("help,h" , "help message")
("directory,d" , po::value<string>(&options.path)->required() , "*required* - path to the kitti dataset Directory")
("sequence ,s" , po::value<string>(&options.sequence)->required() , "*required* - sequence number (starts at 00)")
("poses ,p" , po::value<bool>(&options.poses) ->implicit_value(1) ->default_value(0) , "replay poses")
("frequency,f" , po::value<float>(&options.frequency) ->default_value(10.0) , "set replay Frequency")
("all,a" , po::value<bool> (&options.all_data) ->implicit_value(1) ->default_value(0) , "replay All data")
("velodyne,v" , po::value<bool> (&options.velodyne) ->implicit_value(1) ->default_value(0) , "replay Velodyne data")
("grayscale,g" , po::value<bool> (&options.grayscale) ->implicit_value(1) ->default_value(0) , "replay Stereo Grayscale images")
("color,c" , po::value<bool> (&options.color) ->implicit_value(1) ->default_value(0) , "replay Stereo Color images")
("viewer,V" , po::value<bool> (&options.viewer) ->implicit_value(1) ->default_value(0) , "enable image viewer")
("timestamps,T" , po::value<bool> (&options.timestamps) ->implicit_value(1) ->default_value(0) , "use KITTI timestamps")
("pause,P" , po::value<bool> (&options.start_paused) ->implicit_value(1) ->default_value(0) , "start the player paused")
("clock,C" , po::value<bool> (&options.clock) ->implicit_value(1) ->default_value(0) , "publish timestamps on /clock")
("frame_velodyne", po::value<string>(&options.frame_velodyne)->default_value("velodyne") , "name of frame attached to velodyne")
("frame_image00" , po::value<string>(&options.frame_image00)->default_value("image00") , "name of frame attached to camera 00")
("frame_image01" , po::value<string>(&options.frame_image01)->default_value("image01") , "name of frame attached to camera 01")
("frame_image02" , po::value<string>(&options.frame_image02)->default_value("image02") , "name of frame attached to camera 02")
("frame_image03" , po::value<string>(&options.frame_image03)->default_value("image03") , "name of frame attached to camera 03")
("bag,b" , po::value<string>(&options.bagpath)->default_value("") , "if informed th player will write the dataset as a rosbag on the informed path")
;
try // parse options
{
po::parsed_options parsed = po::command_line_parser(argc, argv).options(desc).allow_unregistered().run();
po::store(parsed, vm);
po::notify(vm);
// vector<string> to_pass_further = po::collect_unrecognized(parsed.options, po::include_positional);
// Can't handle __ros (ROS parameters ... )
// if (to_pass_further.size()>0)
// {
// ROS_WARN_STREAM("Unknown Options Detected, shutting down node\n");
// cerr << desc << endl;
// return 1;
// }
}
catch(...)
{
cerr << desc << endl;
options.printRequiredDirectoryTree();
ROS_WARN_STREAM("Parse error, shutting down node\n");
return 1;
}
if (vm.count("help")) {
cout << desc << endl;
options.printRequiredDirectoryTree();
return 1;
}
if (!(options.all_data || options.color || options.grayscale || options.velodyne ))
{
ROS_WARN_STREAM("Job finished without playing the dataset. No 'publishing' parameters provided");
return 1;
}
ros::init(argc, argv, "kitti_player");
ros::NodeHandle n;
ros::NodeHandle pn("~");
PlayerVisualOdometry player(n, pn, options);
if (!options.bagpath.empty())
player.writeBag();
else
player.publish();
return 0;
}