diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 9df76d89d9..fc3a17a7c2 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -2418,16 +2418,22 @@ AttackFrameP1OnCommand=x,140;y,380;addx,-400;bounceend,0.5;addx,400 AttackFrameP1OffCommand=sleep,0.2;bouncebegin,0.5;addx,-400 AttackFrameP2OnCommand=x,500;y,380;addx,400;bounceend,0.5;addx,-400 AttackFrameP2OffCommand=sleep,0.2;bouncebegin,0.5;addx,400 -IconWidth=40 -IconHeight=40 -IconsP1StartX=128 -IconsP1StartY=356 -IconsP2StartX=488 -IconsP2StartY=356 -IconsSpacingX=42 -IconsSpacingY=32 +AttackIconWidth=40 +AttackIconHeight=40 +AttackIconsP1StartX=128 +AttackIconsP1StartY=356 +AttackIconsP2StartX=488 +AttackIconsP2StartY=356 +AttackIconsSpacingX=42 +AttackIconsSpacingY=32 # DO NOT set absolute X or Y coords in these tweens. they are set based on # the above 6 metrics. you can use addx and addy still. +AttackIconsP1OnCommand=addx,-400;bounceend,0.5;addx,400 +AttackIconsP1OffCommand=sleep,0.2;bouncebegin,0.5;addx,-400 +AttackIconsP2OnCommand=addx,400;bounceend,0.5;addx,-400 +AttackIconsP2OffCommand=sleep,0.2;bouncebegin,0.5;addx,400 +IconWidth=40 +IconHeight=40 IconsP1OnCommand=addx,-400;bounceend,0.5;addx,400 IconsP1OffCommand=sleep,0.2;bouncebegin,0.5;addx,-400 IconsP2OnCommand=addx,400;bounceend,0.5;addx,-400 diff --git a/stepmania/src/ScreenSelectCharacter.cpp b/stepmania/src/ScreenSelectCharacter.cpp index ba187d30cb..8bbec3ea64 100644 --- a/stepmania/src/ScreenSelectCharacter.cpp +++ b/stepmania/src/ScreenSelectCharacter.cpp @@ -34,19 +34,23 @@ #define EXPLANATION_OFF_COMMAND THEME->GetMetric ("ScreenSelectCharacter","ExplanationOffCommand") #define ATTACK_FRAME_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackFrameP%dOnCommand",p+1)) #define ATTACK_FRAME_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackFrameP%dOffCommand",p+1)) -#define ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","IconWidth") -#define ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","IconHeight") -#define ICONS_START_X( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("IconsP%dStartX",p+1)) -#define ICONS_START_Y( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("IconsP%dStartY",p+1)) -#define ICONS_SPACING_X THEME->GetMetricF("ScreenSelectCharacter","IconsSpacingX") -#define ICONS_SPACING_Y THEME->GetMetricF("ScreenSelectCharacter","IconsSpacingY") -#define ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOnCommand",p+1)) -#define ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOffCommand",p+1)) +#define ATTACK_ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","AttackIconWidth") +#define ATTACK_ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","AttackIconHeight") +#define ATTACK_ICONS_START_X( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("AttackIconsP%dStartX",p+1)) +#define ATTACK_ICONS_START_Y( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("AttackIconsP%dStartY",p+1)) +#define ATTACK_ICONS_SPACING_X THEME->GetMetricF("ScreenSelectCharacter","AttackIconsSpacingX") +#define ATTACK_ICONS_SPACING_Y THEME->GetMetricF("ScreenSelectCharacter","AttackIconsSpacingY") +#define ATTACK_ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackIconsP%dOnCommand",p+1)) +#define ATTACK_ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackIconsP%dOffCommand",p+1)) #define HELP_TEXT THEME->GetMetric ("ScreenSelectCharacter","HelpText") #define TIMER_SECONDS THEME->GetMetricI("ScreenSelectCharacter","TimerSeconds") #define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF("ScreenSelectCharacter","SleepAfterTweenOffSeconds") #define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenSelectCharacter","PrevScreen"+Capitalize(PlayModeToString(play_mode))) #define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenSelectCharacter","NextScreen"+Capitalize(PlayModeToString(play_mode))) +#define ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","IconWidth") +#define ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","IconHeight") +#define ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOnCommand",p+1)) +#define ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOffCommand",p+1)) #define LEVEL_CURSOR_X( p, l ) ( ICONS_START_X(p)+ICONS_SPACING_X*((NUM_ATTACKS_PER_LEVEL-1)/2.f) ) #define LEVEL_CURSOR_Y( p, l ) ( ICONS_START_Y(p)+ICONS_SPACING_Y*l ) @@ -134,10 +138,10 @@ ScreenSelectCharacter::ScreenSelectCharacter() : Screen("ScreenSelectCharacter") for( int i=0; iAddChild( &m_AttackIcons[p][i][j] ); } } @@ -162,6 +166,9 @@ ScreenSelectCharacter::ScreenSelectCharacter() : Screen("ScreenSelectCharacter") AfterRowChange( (PlayerNumber)p ); AfterValueChange( (PlayerNumber)p ); } + + for( unsigned i=0; i