This commit is contained in:
Thai Pangsakulyanont
2011-09-25 10:00:34 +07:00
50 changed files with 281 additions and 324 deletions
+26 -2
View File
@@ -8,10 +8,34 @@ ________________________________________________________________________________
StepMania 5.0 $next | 2011???? StepMania 5.0 $next | 2011????
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2011/09/24
----------
* [ScreenEdit] Disable shifting timing changes down one beat if starting on
beat 0. Important information must stay on that beat. [Wolfman2000]
* [ScreenEdit] Disable converting rows to a stop or beat starting on beat 0.
There should be no reason for this at this time. [Wolfman2000]
2011/09/23
----------
* [ScreenEvaluation] Added RollingNumbersMaxComboClass metric. [AJ]
* [NotesLoaderSM] Fix loading .sm files with non standard difficulty names.
It should be Hard, not Heavy. [Wolfman2000]
2011/09/22
----------
* [ScreenDebugOverlay] Replaced hardcoded toggle command with
ButtonTextToggledCommand metric. [AJ]
* [LoadingWindow_Win32] Make the StepMania window gain focus after the
loading window closes. Fixes issue 424. [AJ]
2011/09/21
----------
* [FadingBanner] Added LoadRandom(), LoadRoulette(), LoadFallback(),
LoadCourseFallback(), and GetBanner(int) Lua bindings. [AJ]
2011/09/18 2011/09/18
---------- ----------
* [Song] Added GetSampleStart() and GetSampleLength() * [Song] Added GetSampleStart() and GetSampleLength() Lua bindings. [Wolfman2000]
Lua bindings. [Wolfman2000]
2011/09/16 2011/09/16
---------- ----------
+2 -2
View File
@@ -1972,8 +1972,8 @@
Returns the current Premium. Returns the current Premium.
</Function> </Function>
<Function name='GetSmallestNumStagesLeftForAnyHumanPlayer' return='int' arguments=''> <Function name='GetSmallestNumStagesLeftForAnyHumanPlayer' return='int' arguments=''>
<!-- Returns the smallest number of stages left for any human player. --> <!-- Kind of does what it says on the tin. -->
Kind of does what it says on the tin. Returns the smallest number of stages left for any human player.
</Function> </Function>
<Function name='GetSongBeat' theme='_fallback' return='float' arguments=''> <Function name='GetSongBeat' theme='_fallback' return='float' arguments=''>
[01 compat.lua] Returns the current beat of the song. [01 compat.lua] Returns the current beat of the song.
@@ -0,0 +1,17 @@
local t = Def.ActorFrame{
LoadActor("noise")..{
Name="Noise";
InitCommand=cmd(Center;texturewrapping,true;SetTextureFiltering,false;zoom,2;diffusealpha,0;);
OnCommand=cmd(linear,1;diffusealpha,1);
};
};
local function Update(self)
local c = self:GetChild("Noise");
local x = math.random();
local y = math.random();
c:customtexturerect(0+x,0+y,2+x,2+y);
end;
t.InitCommand = cmd(SetUpdateFunction,Update);
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

@@ -1 +1 @@
MusicWheelItem Roulette NormalPart _blank
@@ -1 +1 @@
MusicWheelItem Roulette NormalPart _blank
@@ -1 +1 @@
MusicWheelItem Roulette NormalPart _blank
@@ -1 +1 @@
MusicWheelItem Roulette NormalPart _blank
+4
View File
@@ -40,6 +40,10 @@ Branch = {
return "ScreenLogo" return "ScreenLogo"
end end
end, end,
NoiseTrigger = function()
local hour = Hour()
return hour > 3 and hour < 6 and "ScreenNoise" or "ScreenInit"
end,
TitleMenu = function() TitleMenu = function()
-- home mode is the most assumed use of sm-ssc. -- home mode is the most assumed use of sm-ssc.
if GAMESTATE:GetCoinMode() == "CoinMode_Home" then if GAMESTATE:GetCoinMode() == "CoinMode_Home" then
+4 -2
View File
@@ -181,11 +181,13 @@ function HoldTiming()
end end
function ShowHoldJudgments() function ShowHoldJudgments()
return not GAMESTATE:GetCurrentGame():GetName() == "pump" local isPump = GAMESTATE:GetCurrentGame():GetName() == "pump"
return isPump and false or true
end end
function HoldHeadStep() function HoldHeadStep()
return not GAMESTATE:GetCurrentGame():GetName() == "pump" local isPump = GAMESTATE:GetCurrentGame():GetName() == "pump"
return isPump and false or true
end end
function InitialHoldLife() function InitialHoldLife()
+29 -15
View File
@@ -1085,6 +1085,9 @@ TextFormat="%04.0f"
ApproachSeconds=1 ApproachSeconds=1
Commify=false Commify=false
[RollingNumbersMaxCombo]
Fallback="RollingNumbersJudgment"
[ScoreDisplayNormal] [ScoreDisplayNormal]
FrameX= FrameX=
FrameY= FrameY=
@@ -1355,6 +1358,7 @@ LineButtonX=SCREEN_CENTER_X-50
LineFunctionX=SCREEN_CENTER_X-30 LineFunctionX=SCREEN_CENTER_X-30
ButtonTextOnCommand=NoStroke;zoom,0.8 ButtonTextOnCommand=NoStroke;zoom,0.8
ButtonTextToggledCommand=accelerate,0.025;glow,color("1,0,0,1");sleep,0.125;decelerate,0.2;glow,color("1,0,0,0");
FunctionTextOnCommand=NoStroke;zoom,0.8 FunctionTextOnCommand=NoStroke;zoom,0.8
PageStartX=SCREEN_CENTER_X-100 PageStartX=SCREEN_CENTER_X-100
@@ -1372,8 +1376,6 @@ HeaderTextX=SCREEN_LEFT+80
HeaderTextY=SCREEN_TOP+18 HeaderTextY=SCREEN_TOP+18
HeaderTextOnCommand=diffusebottomedge,color("0.5,0.5,0.5,1");strokecolor,color("0,0,0,0.5") HeaderTextOnCommand=diffusebottomedge,color("0.5,0.5,0.5,1");strokecolor,color("0,0,0,0.5")
HeaderTextOffCommand= HeaderTextOffCommand=
LineOnCommand=zoom,0.75
# #
[ScreenSystemLayer] [ScreenSystemLayer]
@@ -2916,7 +2918,7 @@ PageFadeSeconds=1.0
CoursesToShow=GetCoursesToShowRanking() CoursesToShow=GetCoursesToShowRanking()
SecondsPerPage=5 SecondsPerPage=5
# #
RankingType="Category" RankingType="RankingType_Category"
# #
RowSpacingX=0 RowSpacingX=0
RowSpacingY=60 RowSpacingY=60
@@ -3233,6 +3235,7 @@ MaxComboNumDigits=4
# #
ShowBannerArea=true ShowBannerArea=true
RollingNumbersClass="RollingNumbersJudgment" RollingNumbersClass="RollingNumbersJudgment"
RollingNumbersMaxComboClass="RollingNumbersMaxCombo"
# #
ShowSharedJudgmentLineLabels=false ShowSharedJudgmentLineLabels=false
ShowJudgmentLineW1=false ShowJudgmentLineW1=false
@@ -4128,11 +4131,13 @@ BodyHeight=38
[ComboGraph] [ComboGraph]
BodyWidth=140 BodyWidth=140
# Arcade # Arcade #################################
[ScreenLogo] [ScreenLogo]
Fallback="ScreenAttract" Fallback="ScreenAttract"
PrevScreen=Branch.Init() PrevScreen=Branch.Init()
NextScreen="ScreenHowToPlay" # crashes!
#NextScreen="ScreenHowToPlay"
NextScreen="ScreenDemonstration"
StartScreen=Branch.TitleMenu() StartScreen=Branch.TitleMenu()
TimerSeconds=5 TimerSeconds=5
ForceTimer=true ForceTimer=true
@@ -4176,19 +4181,10 @@ SongBPM=100
NumW2s=4 NumW2s=4
NumMisses=6 NumMisses=6
[ScreenTitleJoin]
Fallback="ScreenTitleMenu"
ChoiceNames="GameStart"
# ScrollerOnCommand=visible,false
IdleCommentSeconds=-1
IdleTimeoutSeconds=-1
IdleTimeoutScreen=Branch.AfterInit()
[ScreenDemonstration] [ScreenDemonstration]
Fallback="ScreenGameplay" Fallback="ScreenGameplay"
Class="ScreenDemonstration" Class="ScreenDemonstration"
NextScreen="ScreenInit" NextScreen=Branch.NoiseTrigger()
StartScreen=Branch.TitleMenu() StartScreen=Branch.TitleMenu()
PlayMusic=false PlayMusic=false
SecondsToShow=60 SecondsToShow=60
@@ -4202,6 +4198,24 @@ AllowStyleTypes="TwoPlayersTwoSides"
MinSecondsToStep=0 MinSecondsToStep=0
MinSecondsToMusic=0 MinSecondsToMusic=0
[ScreenNoise]
Fallback="ScreenAttract"
Class="ScreenAttract"
NextScreen="ScreenInit"
PrevScreen="ScreenInit"
TimerSeconds=10800
ShowCreditDisplay=false
[ScreenTitleJoin]
Fallback="ScreenTitleMenu"
ChoiceNames="GameStart"
# ScrollerOnCommand=visible,false
IdleCommentSeconds=-1
IdleTimeoutSeconds=-1
IdleTimeoutScreen=Branch.AfterInit()
# Jukebox ###################
[ScreenJukeboxMenu] [ScreenJukeboxMenu]
Class="ScreenOptionsMaster" Class="ScreenOptionsMaster"
Fallback="ScreenPlayerOptions" Fallback="ScreenPlayerOptions"
@@ -11,7 +11,7 @@ local function UpdateSingleBPM(self)
end end
local displaySingle = Def.ActorFrame{ local displaySingle = Def.ActorFrame{
-- manual bpm displays -- manual bpm display
LoadFont("BPMDisplay", "bpm")..{ LoadFont("BPMDisplay", "bpm")..{
Name="BPMDisplay"; Name="BPMDisplay";
InitCommand=cmd(zoom,0.675;shadowlength,1); InitCommand=cmd(zoom,0.675;shadowlength,1);
+5 -1
View File
@@ -940,24 +940,28 @@ PaneDisplayFrameP1X=SCREEN_CENTER_X-160
PaneDisplayFrameP1Y=SCREEN_BOTTOM-112-2 PaneDisplayFrameP1Y=SCREEN_BOTTOM-112-2
PaneDisplayFrameP1OnCommand=player,PLAYER_1;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1 PaneDisplayFrameP1OnCommand=player,PLAYER_1;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayFrameP1OffCommand=bouncebegin,0.15;zoomx,0; PaneDisplayFrameP1OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayFrameP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end
# #
ShowPaneDisplayTextP1=true ShowPaneDisplayTextP1=true
PaneDisplayTextP1X=SCREEN_CENTER_X-160 PaneDisplayTextP1X=SCREEN_CENTER_X-160
PaneDisplayTextP1Y=SCREEN_BOTTOM-122-2 PaneDisplayTextP1Y=SCREEN_BOTTOM-122-2
PaneDisplayTextP1OnCommand=player,PLAYER_1;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1 PaneDisplayTextP1OnCommand=player,PLAYER_1;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayTextP1OffCommand=bouncebegin,0.15;zoomx,0; PaneDisplayTextP1OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayTextP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end
# #
ShowPaneDisplayFrameP2=true ShowPaneDisplayFrameP2=true
PaneDisplayFrameP2X=SCREEN_CENTER_X+160 PaneDisplayFrameP2X=SCREEN_CENTER_X+160
PaneDisplayFrameP2Y=SCREEN_BOTTOM-112-2 PaneDisplayFrameP2Y=SCREEN_BOTTOM-112-2
PaneDisplayFrameP2OnCommand=player,PLAYER_2;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1 PaneDisplayFrameP2OnCommand=player,PLAYER_2;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayFrameP2OffCommand=bouncebegin,0.15;zoomx,0; PaneDisplayFrameP2OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayFrameP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end
# #
ShowPaneDisplayTextP2=true ShowPaneDisplayTextP2=true
PaneDisplayTextP2X=SCREEN_CENTER_X+160 PaneDisplayTextP2X=SCREEN_CENTER_X+160
PaneDisplayTextP2Y=SCREEN_BOTTOM-122-2 PaneDisplayTextP2Y=SCREEN_BOTTOM-122-2
PaneDisplayTextP2OnCommand=player,PLAYER_2;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1 PaneDisplayTextP2OnCommand=player,PLAYER_2;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayTextP2OffCommand=bouncebegin,0.15;zoomx,0; PaneDisplayTextP2OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayTextP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end
# #
ShowCourseContentsList=false ShowCourseContentsList=false
CourseContentsListX=SCREEN_CENTER_X-160 CourseContentsListX=SCREEN_CENTER_X-160
@@ -1336,7 +1340,7 @@ BPMDisplayY=SCREEN_BOTTOM-16
BPMDisplayOnCommand=draworder,101 BPMDisplayOnCommand=draworder,101
BPMDisplayOffCommand=bounceend,0.25;zoom,0 BPMDisplayOffCommand=bounceend,0.25;zoom,0
# #
ShowStageDisplay=true ShowStageDisplay=not GAMESTATE:IsCourseMode()
StageDisplayX=SCREEN_CENTER_X StageDisplayX=SCREEN_CENTER_X
StageDisplayY=SCREEN_TOP+24 StageDisplayY=SCREEN_TOP+24
StageDisplayOnCommand=zoom,0.675; StageDisplayOnCommand=zoom,0.675;
+14 -14
View File
@@ -1996,8 +1996,8 @@
36CA531B0F91564A0063D59D /* ScreenOptionsCourseOverview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenOptionsCourseOverview.h; path = ../src/ScreenOptionsCourseOverview.h; sourceTree = SOURCE_ROOT; }; 36CA531B0F91564A0063D59D /* ScreenOptionsCourseOverview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenOptionsCourseOverview.h; path = ../src/ScreenOptionsCourseOverview.h; sourceTree = SOURCE_ROOT; };
36CA531E0F9156860063D59D /* ScreenOptionsEditCourse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScreenOptionsEditCourse.cpp; path = ../src/ScreenOptionsEditCourse.cpp; sourceTree = SOURCE_ROOT; }; 36CA531E0F9156860063D59D /* ScreenOptionsEditCourse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScreenOptionsEditCourse.cpp; path = ../src/ScreenOptionsEditCourse.cpp; sourceTree = SOURCE_ROOT; };
36CA531F0F9156860063D59D /* ScreenOptionsEditCourse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenOptionsEditCourse.h; path = ../src/ScreenOptionsEditCourse.h; sourceTree = SOURCE_ROOT; }; 36CA531F0F9156860063D59D /* ScreenOptionsEditCourse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScreenOptionsEditCourse.h; path = ../src/ScreenOptionsEditCourse.h; sourceTree = SOURCE_ROOT; };
AA059ABA0B8CCFB5006F8139 /* ActorMultiTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorMultiTexture.cpp; path = ../src/ActorMultiTexture.cpp; sourceTree = "<group>"; }; AA059ABA0B8CCFB5006F8139 /* ActorMultiTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorMultiTexture.cpp; path = ../src/Actors/ActorMultiTexture.cpp; sourceTree = "<group>"; };
AA059ABB0B8CCFB5006F8139 /* ActorMultiTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorMultiTexture.h; path = ../src/ActorMultiTexture.h; sourceTree = "<group>"; }; AA059ABB0B8CCFB5006F8139 /* ActorMultiTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorMultiTexture.h; path = ../src/Actors/ActorMultiTexture.h; sourceTree = "<group>"; };
AA059E2A0B8F0C66006F8139 /* libz_link.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libz_link.a; sourceTree = "<group>"; }; AA059E2A0B8F0C66006F8139 /* libz_link.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libz_link.a; sourceTree = "<group>"; };
AA05A0AE0BA2EFF3006F8139 /* OptionsList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsList.cpp; path = ../src/OptionsList.cpp; sourceTree = "<group>"; }; AA05A0AE0BA2EFF3006F8139 /* OptionsList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsList.cpp; path = ../src/OptionsList.cpp; sourceTree = "<group>"; };
AA05A0AF0BA2EFF3006F8139 /* OptionsList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OptionsList.h; path = ../src/OptionsList.h; sourceTree = "<group>"; }; AA05A0AF0BA2EFF3006F8139 /* OptionsList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OptionsList.h; path = ../src/OptionsList.h; sourceTree = "<group>"; };
@@ -2141,8 +2141,8 @@
AA5C73FC0637A5F000AFB891 /* StepsUtil.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = StepsUtil.h; path = ../src/StepsUtil.h; sourceTree = "<group>"; }; AA5C73FC0637A5F000AFB891 /* StepsUtil.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = StepsUtil.h; path = ../src/StepsUtil.h; sourceTree = "<group>"; };
AA5D16550A79805C00F17E86 /* RageTextureRenderTarget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = RageTextureRenderTarget.cpp; path = ../src/RageTextureRenderTarget.cpp; sourceTree = "<group>"; }; AA5D16550A79805C00F17E86 /* RageTextureRenderTarget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = RageTextureRenderTarget.cpp; path = ../src/RageTextureRenderTarget.cpp; sourceTree = "<group>"; };
AA5D16560A79805C00F17E86 /* RageTextureRenderTarget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = RageTextureRenderTarget.h; path = ../src/RageTextureRenderTarget.h; sourceTree = "<group>"; }; AA5D16560A79805C00F17E86 /* RageTextureRenderTarget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = RageTextureRenderTarget.h; path = ../src/RageTextureRenderTarget.h; sourceTree = "<group>"; };
AA5D166A0A798C0E00F17E86 /* ActorFrameTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorFrameTexture.cpp; path = ../src/ActorFrameTexture.cpp; sourceTree = "<group>"; }; AA5D166A0A798C0E00F17E86 /* ActorFrameTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorFrameTexture.cpp; path = ../src/Actors/ActorFrameTexture.cpp; sourceTree = "<group>"; };
AA5D166B0A798C0E00F17E86 /* ActorFrameTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorFrameTexture.h; path = ../src/ActorFrameTexture.h; sourceTree = "<group>"; }; AA5D166B0A798C0E00F17E86 /* ActorFrameTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorFrameTexture.h; path = ../src/Actors/ActorFrameTexture.h; sourceTree = "<group>"; };
AA608EBF0B0F85E400B39AC4 /* DialogDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DialogDriver.cpp; sourceTree = "<group>"; }; AA608EBF0B0F85E400B39AC4 /* DialogDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DialogDriver.cpp; sourceTree = "<group>"; };
AA608FAC0B0F9A4E00B39AC4 /* RageSoundDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RageSoundDriver.cpp; sourceTree = "<group>"; }; AA608FAC0B0F9A4E00B39AC4 /* RageSoundDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RageSoundDriver.cpp; sourceTree = "<group>"; };
AA6090E40B141D1C00B39AC4 /* GamePreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = GamePreferences.cpp; path = ../src/GamePreferences.cpp; sourceTree = "<group>"; }; AA6090E40B141D1C00B39AC4 /* GamePreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = GamePreferences.cpp; path = ../src/GamePreferences.cpp; sourceTree = "<group>"; };
@@ -2426,12 +2426,12 @@
AA6EFF3004770F63005F316C /* ScoreKeeper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ScoreKeeper.h; path = ../src/ScoreKeeper.h; sourceTree = "<group>"; }; AA6EFF3004770F63005F316C /* ScoreKeeper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ScoreKeeper.h; path = ../src/ScoreKeeper.h; sourceTree = "<group>"; };
AA6EFF7004770F86005F316C /* Transition.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Transition.cpp; path = ../src/Transition.cpp; sourceTree = "<group>"; }; AA6EFF7004770F86005F316C /* Transition.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Transition.cpp; path = ../src/Transition.cpp; sourceTree = "<group>"; };
AA6EFF7104770F86005F316C /* Transition.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = Transition.h; path = ../src/Transition.h; sourceTree = "<group>"; }; AA6EFF7104770F86005F316C /* Transition.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = Transition.h; path = ../src/Transition.h; sourceTree = "<group>"; };
AA6EFF7504770FFD005F316C /* Actor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Actor.cpp; path = ../src/Actor.cpp; sourceTree = "<group>"; }; AA6EFF7504770FFD005F316C /* Actor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Actor.cpp; path = ../src/Actors/Actor.cpp; sourceTree = "<group>"; };
AA6EFF7604770FFD005F316C /* Actor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = Actor.h; path = ../src/Actor.h; sourceTree = "<group>"; }; AA6EFF7604770FFD005F316C /* Actor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = Actor.h; path = ../src/Actors/Actor.h; sourceTree = "<group>"; };
AA6EFF7704770FFD005F316C /* ActorFrame.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorFrame.cpp; path = ../src/ActorFrame.cpp; sourceTree = "<group>"; }; AA6EFF7704770FFD005F316C /* ActorFrame.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorFrame.cpp; path = ../src/Actors/ActorFrame.cpp; sourceTree = "<group>"; };
AA6EFF7804770FFD005F316C /* ActorFrame.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorFrame.h; path = ../src/ActorFrame.h; sourceTree = "<group>"; }; AA6EFF7804770FFD005F316C /* ActorFrame.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorFrame.h; path = ../src/Actors/ActorFrame.h; sourceTree = "<group>"; };
AA6EFF7904770FFD005F316C /* ActorScroller.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorScroller.cpp; path = ../src/ActorScroller.cpp; sourceTree = "<group>"; }; AA6EFF7904770FFD005F316C /* ActorScroller.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorScroller.cpp; path = ../src/Actors/ActorScroller.cpp; sourceTree = "<group>"; };
AA6EFF7A04770FFD005F316C /* ActorScroller.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorScroller.h; path = ../src/ActorScroller.h; sourceTree = "<group>"; }; AA6EFF7A04770FFD005F316C /* ActorScroller.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorScroller.h; path = ../src/Actors/ActorScroller.h; sourceTree = "<group>"; };
AA6EFFB904770FFD005F316C /* BitmapText.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = BitmapText.cpp; path = ../src/BitmapText.cpp; sourceTree = "<group>"; }; AA6EFFB904770FFD005F316C /* BitmapText.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = BitmapText.cpp; path = ../src/BitmapText.cpp; sourceTree = "<group>"; };
AA6EFFBA04770FFD005F316C /* BitmapText.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = BitmapText.h; path = ../src/BitmapText.h; sourceTree = "<group>"; }; AA6EFFBA04770FFD005F316C /* BitmapText.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = BitmapText.h; path = ../src/BitmapText.h; sourceTree = "<group>"; };
AA6EFFBD04770FFD005F316C /* Model.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Model.cpp; path = ../src/Model.cpp; sourceTree = "<group>"; }; AA6EFFBD04770FFD005F316C /* Model.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Model.cpp; path = ../src/Model.cpp; sourceTree = "<group>"; };
@@ -2974,8 +2974,8 @@
AACA592C07B5E23400763545 /* RageUtil_AutoPtr.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageUtil_AutoPtr.h; path = ../src/RageUtil_AutoPtr.h; sourceTree = "<group>"; }; AACA592C07B5E23400763545 /* RageUtil_AutoPtr.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageUtil_AutoPtr.h; path = ../src/RageUtil_AutoPtr.h; sourceTree = "<group>"; };
AACA592D07B5E23400763545 /* RageUtil_WorkerThread.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageUtil_WorkerThread.cpp; path = ../src/RageUtil_WorkerThread.cpp; sourceTree = "<group>"; }; AACA592D07B5E23400763545 /* RageUtil_WorkerThread.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageUtil_WorkerThread.cpp; path = ../src/RageUtil_WorkerThread.cpp; sourceTree = "<group>"; };
AACA592E07B5E23400763545 /* RageUtil_WorkerThread.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageUtil_WorkerThread.h; path = ../src/RageUtil_WorkerThread.h; sourceTree = "<group>"; }; AACA592E07B5E23400763545 /* RageUtil_WorkerThread.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageUtil_WorkerThread.h; path = ../src/RageUtil_WorkerThread.h; sourceTree = "<group>"; };
AACFBE2608E7D793005087FC /* ActorSound.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorSound.cpp; path = ../src/ActorSound.cpp; sourceTree = "<group>"; }; AACFBE2608E7D793005087FC /* ActorSound.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorSound.cpp; path = ../src/Actors/ActorSound.cpp; sourceTree = "<group>"; };
AACFBE2708E7D793005087FC /* ActorSound.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorSound.h; path = ../src/ActorSound.h; sourceTree = "<group>"; }; AACFBE2708E7D793005087FC /* ActorSound.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorSound.h; path = ../src/Actors/ActorSound.h; sourceTree = "<group>"; };
AACFBE3908E7D832005087FC /* InputEventPlus.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = InputEventPlus.h; path = ../src/InputEventPlus.h; sourceTree = "<group>"; }; AACFBE3908E7D832005087FC /* InputEventPlus.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = InputEventPlus.h; path = ../src/InputEventPlus.h; sourceTree = "<group>"; };
AACFBE4908E7D893005087FC /* ScreenGameplayLesson.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ScreenGameplayLesson.cpp; path = ../src/ScreenGameplayLesson.cpp; sourceTree = "<group>"; }; AACFBE4908E7D893005087FC /* ScreenGameplayLesson.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ScreenGameplayLesson.cpp; path = ../src/ScreenGameplayLesson.cpp; sourceTree = "<group>"; };
AACFBE4A08E7D893005087FC /* ScreenGameplayLesson.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ScreenGameplayLesson.h; path = ../src/ScreenGameplayLesson.h; sourceTree = "<group>"; }; AACFBE4A08E7D893005087FC /* ScreenGameplayLesson.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ScreenGameplayLesson.h; path = ../src/ScreenGameplayLesson.h; sourceTree = "<group>"; };
@@ -3094,8 +3094,8 @@
AAFC7FF00513A67700D02EE9 /* RageSoundReader_FileReader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageSoundReader_FileReader.cpp; path = ../src/RageSoundReader_FileReader.cpp; sourceTree = "<group>"; }; AAFC7FF00513A67700D02EE9 /* RageSoundReader_FileReader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageSoundReader_FileReader.cpp; path = ../src/RageSoundReader_FileReader.cpp; sourceTree = "<group>"; };
AAFC7FF10513A67700D02EE9 /* RageSoundReader_MP3.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageSoundReader_MP3.cpp; path = ../src/RageSoundReader_MP3.cpp; sourceTree = "<group>"; }; AAFC7FF10513A67700D02EE9 /* RageSoundReader_MP3.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageSoundReader_MP3.cpp; path = ../src/RageSoundReader_MP3.cpp; sourceTree = "<group>"; };
AAFC7FF20513A67700D02EE9 /* RageSoundReader_MP3.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageSoundReader_MP3.h; path = ../src/RageSoundReader_MP3.h; sourceTree = "<group>"; }; AAFC7FF20513A67700D02EE9 /* RageSoundReader_MP3.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageSoundReader_MP3.h; path = ../src/RageSoundReader_MP3.h; sourceTree = "<group>"; };
AAFE71090A91ADE6005F2290 /* ActorProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorProxy.cpp; path = ../src/ActorProxy.cpp; sourceTree = "<group>"; }; AAFE71090A91ADE6005F2290 /* ActorProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorProxy.cpp; path = ../src/Actors/ActorProxy.cpp; sourceTree = "<group>"; };
AAFE710A0A91ADE6005F2290 /* ActorProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorProxy.h; path = ../src/ActorProxy.h; sourceTree = "<group>"; }; AAFE710A0A91ADE6005F2290 /* ActorProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorProxy.h; path = ../src/Actors/ActorProxy.h; sourceTree = "<group>"; };
AAFE711C0A91B551005F2290 /* RageSurface_Save_PNG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RageSurface_Save_PNG.cpp; path = ../src/RageSurface_Save_PNG.cpp; sourceTree = "<group>"; }; AAFE711C0A91B551005F2290 /* RageSurface_Save_PNG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RageSurface_Save_PNG.cpp; path = ../src/RageSurface_Save_PNG.cpp; sourceTree = "<group>"; };
AAFE711D0A91B551005F2290 /* RoomInfoDisplay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RoomInfoDisplay.cpp; path = ../src/RoomInfoDisplay.cpp; sourceTree = "<group>"; }; AAFE711D0A91B551005F2290 /* RoomInfoDisplay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RoomInfoDisplay.cpp; path = ../src/RoomInfoDisplay.cpp; sourceTree = "<group>"; };
AAFE711E0A91B551005F2290 /* RoomInfoDisplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RoomInfoDisplay.h; path = ../src/RoomInfoDisplay.h; sourceTree = "<group>"; }; AAFE711E0A91B551005F2290 /* RoomInfoDisplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RoomInfoDisplay.h; path = ../src/RoomInfoDisplay.h; sourceTree = "<group>"; };
View File
-1
View File
@@ -165,7 +165,6 @@ bool CourseLoaderCRS::LoadFromMsd( const RString &sPath, const MsdFile &msd, Cou
// todo: make sure these aren't generating bogus entries due // todo: make sure these aren't generating bogus entries due
// to a lack of songs. -aj // to a lack of songs. -aj
int iNumSongs = SONGMAN->GetNumSongs(); int iNumSongs = SONGMAN->GetNumSongs();
LOG->Trace("[CourseLoaderCRS] sParams[1] = %s",sParams[1].c_str());
// most played // most played
if( sParams[1].Left(strlen("BEST")) == "BEST" ) if( sParams[1].Left(strlen("BEST")) == "BEST" )
{ {
+10
View File
@@ -295,6 +295,10 @@ public:
return 0; return 0;
} }
static int LoadFromSongGroup( T* p, lua_State *L ) { p->LoadFromSongGroup( SArg(1) ); return 0; } static int LoadFromSongGroup( T* p, lua_State *L ) { p->LoadFromSongGroup( SArg(1) ); return 0; }
static int LoadRandom( T* p, lua_State *L ) { p->LoadRandom(); return 0; }
static int LoadRoulette( T* p, lua_State *L ) { p->LoadRoulette(); return 0; }
static int LoadCourseFallback( T* p, lua_State *L ) { p->LoadCourseFallback(); return 0; }
static int LoadFallback( T* p, lua_State *L ) { p->LoadFallback(); return 0; }
static int GetLatestIndex( T* p, lua_State *L ){ lua_pushnumber( L, p->GetLatestIndex() ); return 1; } static int GetLatestIndex( T* p, lua_State *L ){ lua_pushnumber( L, p->GetLatestIndex() ); return 1; }
LunaFadingBanner() LunaFadingBanner()
@@ -306,7 +310,13 @@ public:
ADD_METHOD( LoadFromCourse ); ADD_METHOD( LoadFromCourse );
ADD_METHOD( LoadIconFromCharacter ); ADD_METHOD( LoadIconFromCharacter );
ADD_METHOD( LoadCardFromCharacter ); ADD_METHOD( LoadCardFromCharacter );
ADD_METHOD( LoadRandom );
ADD_METHOD( LoadRoulette );
ADD_METHOD( LoadCourseFallback );
ADD_METHOD( LoadFallback );
//ADD_METHOD( LoadFromSortOrder );
ADD_METHOD( GetLatestIndex ); ADD_METHOD( GetLatestIndex );
//ADD_METHOD( GetBanner );
} }
}; };
+1
View File
@@ -39,6 +39,7 @@ public:
virtual void DrawPrimitives(); virtual void DrawPrimitives();
int GetLatestIndex(){ return m_iIndexLatest; } int GetLatestIndex(){ return m_iIndexLatest; }
Banner GetBanner(int i){ return m_Banner[i]; }
// Lua // Lua
void PushSelf( lua_State *L ); void PushSelf( lua_State *L );
+8
View File
@@ -1459,6 +1459,12 @@ void GameState::RemoveAllActiveAttacks() // called on end of song
m_pPlayerState[p]->RemoveActiveAttacks(); m_pPlayerState[p]->RemoveActiveAttacks();
} }
void GameState::AddStageToPlayer( PlayerNumber pn )
{
// Add one stage more to player (bonus) -cerbo
++m_iPlayerStageTokens[pn];
}
template<class T> template<class T>
void setmin( T &a, const T &b ) void setmin( T &a, const T &b )
{ {
@@ -2430,6 +2436,7 @@ public:
lua_pushboolean(L, p->m_bDopefish); lua_pushboolean(L, p->m_bDopefish);
return 1; return 1;
} }
static int AddStageToPlayer( T* p, lua_State *L ) { p->AddStageToPlayer(Enum::Check<PlayerNumber>(L, 1)); return 0; }
LunaGameState() LunaGameState()
{ {
@@ -2531,6 +2538,7 @@ public:
ADD_METHOD( SetCharacter ); ADD_METHOD( SetCharacter );
ADD_METHOD( GetExpandedSectionName ); ADD_METHOD( GetExpandedSectionName );
ADD_METHOD( Dopefish ); ADD_METHOD( Dopefish );
ADD_METHOD( AddStageToPlayer );
} }
}; };
+1
View File
@@ -62,6 +62,7 @@ public:
bool HaveProfileToLoad(); bool HaveProfileToLoad();
bool HaveProfileToSave(); bool HaveProfileToSave();
void SaveLocalData(); void SaveLocalData();
void AddStageToPlayer( PlayerNumber pn );
void LoadCurrentSettingsFromProfile( PlayerNumber pn ); void LoadCurrentSettingsFromProfile( PlayerNumber pn );
/** /**
* @brief Save the specified player's settings to his/her profile. * @brief Save the specified player's settings to his/her profile.
+6 -6
View File
@@ -454,12 +454,12 @@ RageUtil_AutoPtr.h \
RageUtil_WorkerThread.cpp RageUtil_WorkerThread.h RageUtil_WorkerThread.cpp RageUtil_WorkerThread.h
Actors = \ Actors = \
Actor.cpp Actor.h ActorFrame.cpp ActorFrame.h \ Actors/Actor.cpp Actors/Actor.h Actors/ActorFrame.cpp Actors/ActorFrame.h \
ActorFrameTexture.cpp ActorFrameTexture.h \ Actors/ActorFrameTexture.cpp Actors/ActorFrameTexture.h \
ActorMultiTexture.cpp ActorMultiTexture.h \ Actors/ActorMultiTexture.cpp Actors/ActorMultiTexture.h \
ActorProxy.cpp ActorProxy.h \ Actors/ActorProxy.cpp Actors/ActorProxy.h \
ActorScroller.cpp ActorScroller.h ActorUtil.cpp ActorUtil.h \ Actors/ActorScroller.cpp Actors/ActorScroller.h ActorUtil.cpp ActorUtil.h \
ActorSound.cpp ActorSound.h \ Actors/ActorSound.cpp Actors/ActorSound.h \
AutoActor.cpp AutoActor.h \ AutoActor.cpp AutoActor.h \
BitmapText.cpp BitmapText.h Model.cpp Model.h \ BitmapText.cpp BitmapText.h Model.cpp Model.h \
DynamicActorScroller.cpp DynamicActorScroller.h \ DynamicActorScroller.cpp DynamicActorScroller.h \
+16 -2
View File
@@ -88,7 +88,7 @@ void SMLoader::LoadFromTokens(
out.SetDescription( sDescription ); out.SetDescription( sDescription );
out.SetCredit( sDescription ); // this is often used for both. out.SetCredit( sDescription ); // this is often used for both.
out.SetChartName(sDescription); // yeah, one more for good measure. out.SetChartName(sDescription); // yeah, one more for good measure.
out.SetDifficulty( StringToDifficulty(sDifficulty) ); out.SetDifficulty( OldStyleStringToDifficulty(sDifficulty) );
// Handle hacks that originated back when StepMania didn't have // Handle hacks that originated back when StepMania didn't have
// Difficulty_Challenge. (At least v1.64, possibly v3.0 final...) // Difficulty_Challenge. (At least v1.64, possibly v3.0 final...)
@@ -667,9 +667,23 @@ bool SMLoader::LoadNoteDataFromSimfile( const RString &path, Steps &out )
difficulty = "Challenge"; difficulty = "Challenge";
} }
/* Handle hacks that originated back when StepMania didn't have
* Difficulty_Challenge. TODO: Remove the need for said hacks. */
if( difficulty.CompareNoCase("hard") == 0 )
{
/* HACK: Both SMANIAC and CHALLENGE used to be Difficulty_Hard.
* They were differentiated via aspecial description.
* Account for the rogue charts that do this. */
// HACK: SMANIAC used to be Difficulty_Hard with a special description.
if (description.CompareNoCase("smaniac") == 0 ||
description.CompareNoCase("challenge") == 0)
difficulty = "Challenge";
}
if(!(out.m_StepsType == GAMEMAN->StringToStepsType( stepsType ) && if(!(out.m_StepsType == GAMEMAN->StringToStepsType( stepsType ) &&
out.GetDescription() == description && out.GetDescription() == description &&
out.GetDifficulty() == StringToDifficulty(difficulty))) (out.GetDifficulty() == StringToDifficulty(difficulty) ||
out.GetDifficulty() == OldStyleStringToDifficulty(difficulty))))
{ {
continue; continue;
} }
+11 -11
View File
@@ -180,27 +180,27 @@ static void GetTimingTags( vector<RString> &lines, const TimingData &timing, boo
static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong = false ) static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong = false )
{ {
f.PutLine(ssprintf("#BPMS:%s;", f.PutLine(ssprintf("#BPMS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_BPM)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_BPM, 3)).c_str()));
f.PutLine(ssprintf("#STOPS:%s;", f.PutLine(ssprintf("#STOPS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_STOP)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_STOP, 3)).c_str()));
f.PutLine(ssprintf("#DELAYS:%s;", f.PutLine(ssprintf("#DELAYS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_DELAY)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_DELAY, 3)).c_str()));
f.PutLine(ssprintf("#WARPS:%s;", f.PutLine(ssprintf("#WARPS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_WARP)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_WARP, 3)).c_str()));
f.PutLine(ssprintf("#TIMESIGNATURES:%s;", f.PutLine(ssprintf("#TIMESIGNATURES:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_TIME_SIG)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_TIME_SIG, 3)).c_str()));
f.PutLine(ssprintf("#TICKCOUNTS:%s;", f.PutLine(ssprintf("#TICKCOUNTS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_TICKCOUNT)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_TICKCOUNT, 3)).c_str()));
f.PutLine(ssprintf("#COMBOS:%s;", f.PutLine(ssprintf("#COMBOS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_COMBO)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_COMBO, 3)).c_str()));
f.PutLine(ssprintf("#SPEEDS:%s;", f.PutLine(ssprintf("#SPEEDS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_SPEED)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_SPEED, 3)).c_str()));
f.PutLine(ssprintf("#SCROLLS:%s;", f.PutLine(ssprintf("#SCROLLS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_SCROLL)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_SCROLL, 3)).c_str()));
f.PutLine(ssprintf("#FAKES:%s;", f.PutLine(ssprintf("#FAKES:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_FAKE)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_FAKE, 3)).c_str()));
f.PutLine(ssprintf("#LABELS:%s;", f.PutLine(ssprintf("#LABELS:%s;",
join(",\r\n", timing.ToVectorString(SEGMENT_LABEL)).c_str())); join(",\r\n", timing.ToVectorString(SEGMENT_LABEL, 3)).c_str()));
} }
+2 -10
View File
@@ -496,18 +496,10 @@ bool ScreenDebugOverlay::OverlayInput( const InputEventPlus &input )
// update text to show the effect of what changed above // update text to show the effect of what changed above
UpdateText(); UpdateText();
// blink the text to show what changed // show what changed
BitmapText &bt = *m_vptextButton[i]; BitmapText &bt = *m_vptextButton[i];
bt.FinishTweening(); bt.FinishTweening();
// blink 5 times instead of 8 bt.PlayCommand("Toggled");
// TODO: make this all metrics instead -aj
for( i=0; i<5; i++ )
{
bt.SetGlow( RageColor(1,0,0,1) );
bt.Sleep(0.1f);
bt.SetGlow( RageColor(1,0,0,0) );
bt.Sleep(0.1f);
}
return true; return true;
} }
+5 -1
View File
@@ -1739,7 +1739,8 @@ void ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
break; break;
case EDIT_BUTTON_OPEN_AREA_MENU: case EDIT_BUTTON_OPEN_AREA_MENU:
{ {
// update enabled/disabled in g_AreaMenu // TODO: Improve behavior if timing changes are shifted down on beat 0.
g_AreaMenu.rows[shift_pauses_forward].bEnabled = (GetBeat() != 0);
g_AreaMenu.rows[paste_at_current_beat].bEnabled = !m_Clipboard.IsEmpty(); g_AreaMenu.rows[paste_at_current_beat].bEnabled = !m_Clipboard.IsEmpty();
g_AreaMenu.rows[paste_at_begin_marker].bEnabled = !m_Clipboard.IsEmpty() != 0 && m_NoteFieldEdit.m_iBeginMarker!=-1; g_AreaMenu.rows[paste_at_begin_marker].bEnabled = !m_Clipboard.IsEmpty() != 0 && m_NoteFieldEdit.m_iBeginMarker!=-1;
g_AreaMenu.rows[paste_partial_timing_at_beat].bEnabled = !this->clipboardTiming.empty(); g_AreaMenu.rows[paste_partial_timing_at_beat].bEnabled = !this->clipboardTiming.empty();
@@ -1757,6 +1758,9 @@ void ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
} }
else else
{ {
// TODO: Improve interaction when field is 0.
g_AlterMenu.rows[convert_to_delay].bEnabled = (m_NoteFieldEdit.m_iBeginMarker > 0);
g_AlterMenu.rows[convert_to_pause].bEnabled = (m_NoteFieldEdit.m_iBeginMarker > 0);
bool isRoutine = (m_InputPlayerNumber != PLAYER_INVALID); bool isRoutine = (m_InputPlayerNumber != PLAYER_INVALID);
g_AlterMenu.rows[routine_invert_notes].bEnabled = isRoutine; g_AlterMenu.rows[routine_invert_notes].bEnabled = isRoutine;
g_AlterMenu.rows[routine_mirror_1_to_2].bEnabled = isRoutine; g_AlterMenu.rows[routine_mirror_1_to_2].bEnabled = isRoutine;
+4 -1
View File
@@ -66,7 +66,6 @@ XToString( DetailLine );
#define SHOW_SCORE_AREA THEME->GetMetricB(m_sName,"ShowScoreArea") #define SHOW_SCORE_AREA THEME->GetMetricB(m_sName,"ShowScoreArea")
#define SHOW_TIME_AREA THEME->GetMetricB(m_sName,"ShowTimeArea") #define SHOW_TIME_AREA THEME->GetMetricB(m_sName,"ShowTimeArea")
#define SHOW_RECORDS_AREA THEME->GetMetricB(m_sName,"ShowRecordsArea") #define SHOW_RECORDS_AREA THEME->GetMetricB(m_sName,"ShowRecordsArea")
#define MAX_COMBO_NUM_DIGITS THEME->GetMetricI(m_sName,"MaxComboNumDigits")
#define PLAYER_OPTIONS_HIDE_FAIL_TYPE THEME->GetMetricB(m_sName,"PlayerOptionsHideFailType") #define PLAYER_OPTIONS_HIDE_FAIL_TYPE THEME->GetMetricB(m_sName,"PlayerOptionsHideFailType")
#define PLAYER_OPTIONS_SEPARATOR THEME->GetMetric (m_sName,"PlayerOptionsSeparator") #define PLAYER_OPTIONS_SEPARATOR THEME->GetMetric (m_sName,"PlayerOptionsSeparator")
#define CHECKPOINTS_WITH_JUDGMENTS THEME->GetMetricB(m_sName,"CheckpointsWithJudgments") #define CHECKPOINTS_WITH_JUDGMENTS THEME->GetMetricB(m_sName,"CheckpointsWithJudgments")
@@ -460,6 +459,7 @@ void ScreenEvaluation::Init()
// init judgment area // init judgment area
ROLLING_NUMBERS_CLASS.Load( m_sName, "RollingNumbersClass" ); ROLLING_NUMBERS_CLASS.Load( m_sName, "RollingNumbersClass" );
ROLLING_NUMBERS_MAX_COMBO_CLASS.Load( m_sName, "RollingNumbersMaxComboClass" );
FOREACH_ENUM( JudgmentLine, l ) FOREACH_ENUM( JudgmentLine, l )
{ {
if( l == JudgmentLine_W1 && !GAMESTATE->ShowW1() ) if( l == JudgmentLine_W1 && !GAMESTATE->ShowW1() )
@@ -481,6 +481,9 @@ void ScreenEvaluation::Init()
{ {
m_textJudgmentLineNumber[l][p].LoadFromFont( THEME->GetPathF(m_sName, "JudgmentLineNumber") ); m_textJudgmentLineNumber[l][p].LoadFromFont( THEME->GetPathF(m_sName, "JudgmentLineNumber") );
m_textJudgmentLineNumber[l][p].SetName( JudgmentLineToString(l)+ssprintf("NumberP%d",p+1) ); m_textJudgmentLineNumber[l][p].SetName( JudgmentLineToString(l)+ssprintf("NumberP%d",p+1) );
if( JudgmentLineToString(l) == "MaxCombo" )
m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_MAX_COMBO_CLASS );
else
m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_CLASS ); m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_CLASS );
ActorUtil::LoadAllCommands( m_textJudgmentLineNumber[l][p], m_sName ); ActorUtil::LoadAllCommands( m_textJudgmentLineNumber[l][p], m_sName );
SET_XY( m_textJudgmentLineNumber[l][p] ); SET_XY( m_textJudgmentLineNumber[l][p] );
+1
View File
@@ -115,6 +115,7 @@ protected:
ThemeMetric<bool> SUMMARY; ThemeMetric<bool> SUMMARY;
ThemeMetric<RString> ROLLING_NUMBERS_CLASS; ThemeMetric<RString> ROLLING_NUMBERS_CLASS;
ThemeMetric<RString> ROLLING_NUMBERS_MAX_COMBO_CLASS;
/** @brief Did a player save a screenshot of their score? */ /** @brief Did a player save a screenshot of their score? */
bool m_bSavedScreenshot[NUM_PLAYERS]; bool m_bSavedScreenshot[NUM_PLAYERS];
}; };
+1 -7
View File
@@ -41,7 +41,7 @@
* @brief The internal version of the cache for StepMania. * @brief The internal version of the cache for StepMania.
* *
* Increment this value to invalidate the current cache. */ * Increment this value to invalidate the current cache. */
const int FILE_CACHE_VERSION = 205; const int FILE_CACHE_VERSION = 207;
/** @brief How long does a song sample last by default? */ /** @brief How long does a song sample last by default? */
const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f; const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;
@@ -921,12 +921,6 @@ void Song::Save()
ReCalculateRadarValuesAndLastSecond(); ReCalculateRadarValuesAndLastSecond();
TranslateTitles(); TranslateTitles();
// TODO: Figure out a better way to save to Song's timing data.
if( m_vpSteps.size() == 1 )
{
m_SongTiming = m_vpSteps[0]->m_Timing;
}
// Save the new files. These calls make backups on their own. // Save the new files. These calls make backups on their own.
if( !SaveToSSCFile(GetSongFilePath(), false) ) if( !SaveToSSCFile(GetSongFilePath(), false) )
return; return;
+14 -14
View File
@@ -2956,46 +2956,46 @@ cl /Zl /nologo /c verstub.cpp /Fo&quot;$(IntDir)&quot;\
Name="Actors" Name="Actors"
Filter=""> Filter="">
<File <File
RelativePath="Actor.cpp"> RelativePath="Actors\Actor.cpp">
</File> </File>
<File <File
RelativePath="Actor.h"> RelativePath="Actors\Actor.h">
</File> </File>
<File <File
RelativePath="ActorFrame.cpp"> RelativePath="Actors\ActorFrame.cpp">
</File> </File>
<File <File
RelativePath="ActorFrame.h"> RelativePath="Actors\ActorFrame.h">
</File> </File>
<File <File
RelativePath="ActorFrameTexture.cpp"> RelativePath="Actors\ActorFrameTexture.cpp">
</File> </File>
<File <File
RelativePath="ActorFrameTexture.h"> RelativePath="Actors\ActorFrameTexture.h">
</File> </File>
<File <File
RelativePath="ActorMultiTexture.cpp"> RelativePath="Actors\ActorMultiTexture.cpp">
</File> </File>
<File <File
RelativePath="ActorMultiTexture.h"> RelativePath="Actors\ActorMultiTexture.h">
</File> </File>
<File <File
RelativePath="ActorProxy.cpp"> RelativePath="Actors\ActorProxy.cpp">
</File> </File>
<File <File
RelativePath="ActorProxy.h"> RelativePath="Actors\ActorProxy.h">
</File> </File>
<File <File
RelativePath="ActorScroller.cpp"> RelativePath="Actors\ActorScroller.cpp">
</File> </File>
<File <File
RelativePath="ActorScroller.h"> RelativePath="Actors\ActorScroller.h">
</File> </File>
<File <File
RelativePath="ActorSound.cpp"> RelativePath="Actors\ActorSound.cpp">
</File> </File>
<File <File
RelativePath="ActorSound.h"> RelativePath="Actors\ActorSound.h">
</File> </File>
<File <File
RelativePath="ActorUtil.cpp"> RelativePath="ActorUtil.cpp">
+14 -14
View File
@@ -4654,59 +4654,59 @@
Name="Actors" Name="Actors"
> >
<File <File
RelativePath="Actor.cpp" RelativePath="Actors\Actor.cpp"
> >
</File> </File>
<File <File
RelativePath="Actor.h" RelativePath="Actors\Actor.h"
> >
</File> </File>
<File <File
RelativePath="ActorFrame.cpp" RelativePath="Actors\ActorFrame.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorFrame.h" RelativePath="Actors\ActorFrame.h"
> >
</File> </File>
<File <File
RelativePath="ActorFrameTexture.cpp" RelativePath="Actors\ActorFrameTexture.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorFrameTexture.h" RelativePath="Actors\ActorFrameTexture.h"
> >
</File> </File>
<File <File
RelativePath="ActorMultiTexture.cpp" RelativePath="Actors\ActorMultiTexture.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorMultiTexture.h" RelativePath="Actors\ActorMultiTexture.h"
> >
</File> </File>
<File <File
RelativePath="ActorProxy.cpp" RelativePath="Actors\ActorProxy.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorProxy.h" RelativePath="Actors\ActorProxy.h"
> >
</File> </File>
<File <File
RelativePath="ActorScroller.cpp" RelativePath="Actors\ActorScroller.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorScroller.h" RelativePath="Actors\ActorScroller.h"
> >
</File> </File>
<File <File
RelativePath="ActorSound.cpp" RelativePath="Actors\ActorSound.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorSound.h" RelativePath="Actors\ActorSound.h"
> >
</File> </File>
<File <File
+18 -18
View File
@@ -50,7 +50,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis" AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis;Actors"
PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINDOWS,DEBUG,GLEW_STATIC" PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINDOWS,DEBUG,GLEW_STATIC"
ExceptionHandling="0" ExceptionHandling="0"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
@@ -158,7 +158,7 @@
InlineFunctionExpansion="2" InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true" EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis" AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis;Actors"
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINDOWS,RELEASE,GLEW_STATIC" PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINDOWS,RELEASE,GLEW_STATIC"
StringPooling="true" StringPooling="true"
MinimalRebuild="false" MinimalRebuild="false"
@@ -263,7 +263,7 @@
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis" AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis;Actors"
PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINDOWS,DEBUG,GLEW_STATIC" PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS,WINDOWS,DEBUG,GLEW_STATIC"
ExceptionHandling="0" ExceptionHandling="0"
BasicRuntimeChecks="0" BasicRuntimeChecks="0"
@@ -371,7 +371,7 @@
InlineFunctionExpansion="2" InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true" EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1" FavorSizeOrSpeed="1"
AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis" AdditionalIncludeDirectories=".;&quot;..\extern\lua-5.1\src&quot;;ffmpeg\modern_working\include;BaseClasses;..\extern\jsoncpp\include;&quot;..\extern\glew-1.5.8\include&quot;;..\extern\pcre;&quot;..\extern\mad-0.15.1b&quot;;..\extern\libpng\include;..\extern\libjpeg;..\extern\zlib;..\extern\vorbis;Actors"
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINDOWS,RELEASE,GLEW_STATIC" PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS,WINDOWS,RELEASE,GLEW_STATIC"
StringPooling="true" StringPooling="true"
MinimalRebuild="false" MinimalRebuild="false"
@@ -3821,59 +3821,59 @@
Name="Actors" Name="Actors"
> >
<File <File
RelativePath="Actor.cpp" RelativePath="Actors\Actor.cpp"
> >
</File> </File>
<File <File
RelativePath="Actor.h" RelativePath="Actors\Actor.h"
> >
</File> </File>
<File <File
RelativePath="ActorFrame.cpp" RelativePath="Actors\ActorFrame.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorFrame.h" RelativePath="Actors\ActorFrame.h"
> >
</File> </File>
<File <File
RelativePath="ActorFrameTexture.cpp" RelativePath="Actors\ActorFrameTexture.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorFrameTexture.h" RelativePath="Actors\ActorFrameTexture.h"
> >
</File> </File>
<File <File
RelativePath="ActorMultiTexture.cpp" RelativePath="Actors\ActorMultiTexture.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorMultiTexture.h" RelativePath="Actors\ActorMultiTexture.h"
> >
</File> </File>
<File <File
RelativePath="ActorProxy.cpp" RelativePath="Actors\ActorProxy.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorProxy.h" RelativePath="Actors\ActorProxy.h"
> >
</File> </File>
<File <File
RelativePath="ActorScroller.cpp" RelativePath="Actors\ActorScroller.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorScroller.h" RelativePath="Actors\ActorScroller.h"
> >
</File> </File>
<File <File
RelativePath="ActorSound.cpp" RelativePath="Actors\ActorSound.cpp"
> >
</File> </File>
<File <File
RelativePath="ActorSound.h" RelativePath="Actors\ActorSound.h"
> >
</File> </File>
<File <File
+15 -15
View File
@@ -762,14 +762,14 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClCompile Include="RageUtil_CharConversions.cpp" /> <ClCompile Include="RageUtil_CharConversions.cpp" />
<ClCompile Include="RageUtil_FileDB.cpp" /> <ClCompile Include="RageUtil_FileDB.cpp" />
<ClCompile Include="RageUtil_WorkerThread.cpp" /> <ClCompile Include="RageUtil_WorkerThread.cpp" />
<ClCompile Include="Actor.cpp" /> <ClCompile Include="Actors\Actor.cpp" />
<ClCompile Include="ActorFrame.cpp" /> <ClCompile Include="Actors\ActorFrame.cpp" />
<ClCompile Include="ActorFrameTexture.cpp" /> <ClCompile Include="Actors\ActorFrameTexture.cpp" />
<ClCompile Include="ActorMultiTexture.cpp" /> <ClCompile Include="Actors\ActorMultiTexture.cpp" />
<ClCompile Include="ActorProxy.cpp" /> <ClCompile Include="Actors\ActorProxy.cpp" />
<ClCompile Include="ActorScroller.cpp" /> <ClCompile Include="Actors\ActorScroller.cpp" />
<ClCompile Include="ActorSound.cpp" /> <ClCompile Include="Actors\ActorSound.cpp" />
<ClCompile Include="ActorUtil.cpp" /> <ClCompile Include="Actors\ActorUtil.cpp" />
<ClCompile Include="AutoActor.cpp" /> <ClCompile Include="AutoActor.cpp" />
<ClCompile Include="BitmapText.cpp" /> <ClCompile Include="BitmapText.cpp" />
<ClCompile Include="DynamicActorScroller.cpp" /> <ClCompile Include="DynamicActorScroller.cpp" />
@@ -2084,13 +2084,13 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)</Command>
<ClInclude Include="RageUtil_CircularBuffer.h" /> <ClInclude Include="RageUtil_CircularBuffer.h" />
<ClInclude Include="RageUtil_FileDB.h" /> <ClInclude Include="RageUtil_FileDB.h" />
<ClInclude Include="RageUtil_WorkerThread.h" /> <ClInclude Include="RageUtil_WorkerThread.h" />
<ClInclude Include="Actor.h" /> <ClInclude Include="Actors\Actor.h" />
<ClInclude Include="ActorFrame.h" /> <ClInclude Include="Actors\ActorFrame.h" />
<ClInclude Include="ActorFrameTexture.h" /> <ClInclude Include="Actors\ActorFrameTexture.h" />
<ClInclude Include="ActorMultiTexture.h" /> <ClInclude Include="Actors\ActorMultiTexture.h" />
<ClInclude Include="ActorProxy.h" /> <ClInclude Include="Actors\ActorProxy.h" />
<ClInclude Include="ActorScroller.h" /> <ClInclude Include="Actors\ActorScroller.h" />
<ClInclude Include="ActorSound.h" /> <ClInclude Include="Actors\ActorSound.h" />
<ClInclude Include="ActorUtil.h" /> <ClInclude Include="ActorUtil.h" />
<ClInclude Include="AutoActor.h" /> <ClInclude Include="AutoActor.h" />
<ClInclude Include="BitmapText.h" /> <ClInclude Include="BitmapText.h" />
+14 -14
View File
@@ -1242,25 +1242,25 @@
<ClCompile Include="RageUtil_WorkerThread.cpp"> <ClCompile Include="RageUtil_WorkerThread.cpp">
<Filter>Rage</Filter> <Filter>Rage</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Actor.cpp"> <ClCompile Include="Actors\Actor.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorFrame.cpp"> <ClCompile Include="Actors\ActorFrame.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorFrameTexture.cpp"> <ClCompile Include="Actors\ActorFrameTexture.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorMultiTexture.cpp"> <ClCompile Include="Actors\ActorMultiTexture.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorProxy.cpp"> <ClCompile Include="Actors\ActorProxy.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorScroller.cpp"> <ClCompile Include="Actors\ActorScroller.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorSound.cpp"> <ClCompile Include="Actors\ActorSound.cpp">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="ActorUtil.cpp"> <ClCompile Include="ActorUtil.cpp">
@@ -2777,25 +2777,25 @@
<ClInclude Include="RageUtil_WorkerThread.h"> <ClInclude Include="RageUtil_WorkerThread.h">
<Filter>Rage</Filter> <Filter>Rage</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Actor.h"> <ClInclude Include="Actors\Actor.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorFrame.h"> <ClInclude Include="Actors\ActorFrame.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorFrameTexture.h"> <ClInclude Include="Actors\ActorFrameTexture.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorMultiTexture.h"> <ClInclude Include="Actors\ActorMultiTexture.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorProxy.h"> <ClInclude Include="Actors\ActorProxy.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorScroller.h"> <ClInclude Include="Actors\ActorScroller.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorSound.h"> <ClInclude Include="Actors\ActorSound.h">
<Filter>Actors</Filter> <Filter>Actors</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ActorUtil.h"> <ClInclude Include="ActorUtil.h">
+8 -4
View File
@@ -80,10 +80,14 @@ static Preference<bool> g_bAllowMultipleInstances( "AllowMultipleInstances", fal
void StepMania::GetPreferredVideoModeParams( VideoModeParams &paramsOut ) void StepMania::GetPreferredVideoModeParams( VideoModeParams &paramsOut )
{ {
// unsure if this is still going to cause first run issues. -aj // resolution handling code that probably needs fixing
float fAspectRatio = PREFSMAN->m_fDisplayAspectRatio; int iWidth = PREFSMAN->m_iDisplayWidth;
int iHeight = PREFSMAN->m_iDisplayHeight; if( PREFSMAN->m_bWindowed )
int iWidth = ceilf(iHeight * fAspectRatio); {
//float fRatio = PREFSMAN->m_iDisplayHeight;
//iWidth = PREFSMAN->m_iDisplayHeight * fRatio;
iWidth = static_cast<int>(ceilf(PREFSMAN->m_iDisplayHeight * PREFSMAN->m_fDisplayAspectRatio));
}
// todo: allow for PRODUCT_ID + "-" + CommonMetrics::WINDOW_TITLE as // todo: allow for PRODUCT_ID + "-" + CommonMetrics::WINDOW_TITLE as
// a theme option (Midi requested it, AJ had the idea for making it optional) // a theme option (Midi requested it, AJ had the idea for making it optional)
+3 -3
View File
@@ -21,7 +21,7 @@ void TimingData::Copy( const TimingData& cpy )
FOREACH_TimingSegmentType( tst ) FOREACH_TimingSegmentType( tst )
{ {
const vector<TimingSegment*> vpSegs = cpy.m_avpTimingSegments[tst]; const vector<TimingSegment*> &vpSegs = cpy.m_avpTimingSegments[tst];
for( unsigned i = 0; i < vpSegs.size(); ++i ) for( unsigned i = 0; i < vpSegs.size(); ++i )
AddSegment( vpSegs[i] ); AddSegment( vpSegs[i] );
@@ -36,7 +36,7 @@ void TimingData::Clear()
vector<TimingSegment*> &vSegs = m_avpTimingSegments[tst]; vector<TimingSegment*> &vSegs = m_avpTimingSegments[tst];
for( unsigned i = 0; i < vSegs.size(); ++i ) for( unsigned i = 0; i < vSegs.size(); ++i )
{ {
LOG->Trace( "deleting %p", vSegs[i] ); //LOG->Trace( "deleting %p", vSegs[i] );
SAFE_DELETE( vSegs[i] ); } SAFE_DELETE( vSegs[i] ); }
vSegs.clear(); vSegs.clear();
@@ -323,7 +323,7 @@ static void EraseSegment( vector<TimingSegment*> &vSegs, int index, TimingSegmen
// so we must deep-copy it (with ::Copy) for new allocations. // so we must deep-copy it (with ::Copy) for new allocations.
void TimingData::AddSegment( const TimingSegment *seg ) void TimingData::AddSegment( const TimingSegment *seg )
{ {
LOG->Trace( "AddSegment( %s )", TimingSegmentTypeToString(seg->GetType()).c_str() ); //LOG->Trace( "AddSegment( %s )", TimingSegmentTypeToString(seg->GetType()).c_str() );
seg->DebugPrint(); seg->DebugPrint();
TimingSegmentType tst = seg->GetType(); TimingSegmentType tst = seg->GetType();
+16 -136
View File
@@ -19,9 +19,7 @@
#include "RageSurfaceUtils_Zoom.h" #include "RageSurfaceUtils_Zoom.h"
static HBITMAP g_hBitmap = NULL; static HBITMAP g_hBitmap = NULL;
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") /* Load a RageSurface into a GDI surface. */
// Load a RageSurface into a GDI surface.
static HBITMAP LoadWin32Surface( RageSurface *&s ) static HBITMAP LoadWin32Surface( RageSurface *&s )
{ {
RageSurfaceUtils::ConvertSurface( s, s->w, s->h, 32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0 ); RageSurfaceUtils::ConvertSurface( s, s->w, s->h, 32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0 );
@@ -35,7 +33,7 @@ static HBITMAP LoadWin32Surface( RageSurface *&s )
HDC BitmapDC = CreateCompatibleDC( hScreen ); HDC BitmapDC = CreateCompatibleDC( hScreen );
SelectObject( BitmapDC, bitmap ); SelectObject( BitmapDC, bitmap );
// This is silly, but simple. We only do this once, on a small image. /* This is silly, but simple. We only do this once, on a small image. */
for( int y = 0; y < s->h; ++y ) for( int y = 0; y < s->h; ++y )
{ {
unsigned const char *line = ((unsigned char *) s->pixels) + (y * s->pitch); unsigned const char *line = ((unsigned char *) s->pixels) + (y * s->pitch);
@@ -80,43 +78,8 @@ static HBITMAP LoadWin32Surface( RString sFile, HWND hWnd )
return ret; return ret;
} }
INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) BOOL CALLBACK LoadingWindow_Win32::WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{ {
LoadingWindow_Win32 *self;
if(msg==WM_INITDIALOG) {
self=(LoadingWindow_Win32 *)lParam;
SetWindowLong(hWnd,DWL_USER,(LONG)self);
} else {
self=(LoadingWindow_Win32 *)GetWindowLong(hWnd,DWL_USER);
}
/*
#if WINVER >= 0x0601
if (self && msg == self->taskbarCreatedEvent && !self->pTaskbarList) {
HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&self->pTaskbarList));
if (SUCCEEDED(hr)) {
self->pTaskbarList->HrInit();
if (FAILED(hr)) {
self->pTaskbarList->Release();
self->pTaskbarList = NULL;
} else {
if(self->m_indeterminate) {
self->pTaskbarList->SetProgressState(hWnd, TBPF_INDETERMINATE);
} else {
self->pTaskbarList->SetProgressState(hWnd, TBPF_NORMAL);
self->pTaskbarList->SetProgressValue(hWnd, self->m_progress, self->m_totalWork);
}
}
}
}
#endif
*/
switch( msg ) switch( msg )
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
@@ -134,36 +97,11 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara
(WPARAM) IMAGE_BITMAP, (WPARAM) IMAGE_BITMAP,
(LPARAM) (HANDLE) g_hBitmap ); (LPARAM) (HANDLE) g_hBitmap );
SetWindowTextA( hWnd, PRODUCT_ID ); SetWindowTextA( hWnd, PRODUCT_ID );
break; break;
case WM_CLOSE:
HOOKS->SetUserQuit();
return FALSE;
case WM_DESTROY: case WM_DESTROY:
/*
#if(WINVER >= 0x0601)
if (self->pTaskbarList) {
self->pTaskbarList->Release();
self->pTaskbarList = NULL;
}
#endif
*/
DeleteObject( g_hBitmap ); DeleteObject( g_hBitmap );
g_hBitmap = NULL; g_hBitmap = NULL;
self->runMessageLoop=false;
self->hwnd=NULL;
return TRUE;
break;
case WM_APP:
DestroyWindow(hWnd);
self->runMessageLoop=false;
ExitThread(0);
return TRUE;
break; break;
} }
@@ -172,7 +110,7 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara
void LoadingWindow_Win32::SetIcon( const RageSurface *pIcon ) void LoadingWindow_Win32::SetIcon( const RageSurface *pIcon )
{ {
if( g_hBitmap != NULL ) if( m_hIcon != NULL )
DestroyIcon( m_hIcon ); DestroyIcon( m_hIcon );
m_hIcon = IconFromSurface( pIcon ); m_hIcon = IconFromSurface( pIcon );
@@ -202,63 +140,34 @@ void LoadingWindow_Win32::SetSplash( const RString sPath )
LoadingWindow_Win32::LoadingWindow_Win32() LoadingWindow_Win32::LoadingWindow_Win32()
{ {
INITCOMMONCONTROLSEX cceData;
cceData.dwSize=sizeof(INITCOMMONCONTROLSEX);
cceData.dwICC=ICC_PROGRESS_CLASS;
InitCommonControlsEx(&cceData);
/*
#if(WINVER >= 0x0601)
pTaskbarList=NULL;
taskbarCreatedEvent=RegisterWindowMessage("TaskbarButtonCreated");
#endif
*/
m_hIcon = NULL; m_hIcon = NULL;
hwnd = CreateDialog( handle.Get(), MAKEINTRESOURCE(IDD_LOADING_DIALOG), NULL, WndProc );
runMessageLoop=true;
guiReadyEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
pumpThread=CreateThread(NULL, NULL, MessagePump, (void *)this, 0, &pumpThreadId);
WaitForSingleObject(guiReadyEvent,INFINITE);
for( unsigned i = 0; i < 3; ++i ) for( unsigned i = 0; i < 3; ++i )
text[i] = "ABC"; /* always set on first call */ text[i] = "ABC"; /* always set on first call */
SetText( "" ); SetText( "" );
Paint();
} }
LoadingWindow_Win32::~LoadingWindow_Win32() LoadingWindow_Win32::~LoadingWindow_Win32()
{ {
SendMessage(hwnd,WM_APP,0,0); if( hwnd )
//SendMessage(hwnd,WM_NULL,0,0); DestroyWindow( hwnd );
WaitForSingleObject(pumpThread,INFINITE);
if(guiReadyEvent)
CloseHandle(guiReadyEvent);
if( m_hIcon != NULL ) if( m_hIcon != NULL )
DestroyIcon( m_hIcon ); DestroyIcon( m_hIcon );
} }
DWORD WINAPI LoadingWindow_Win32::MessagePump(LPVOID thisAsVoidPtr) void LoadingWindow_Win32::Paint()
{ {
LoadingWindow_Win32 *self=(LoadingWindow_Win32 *)thisAsVoidPtr; SendMessage( hwnd, WM_PAINT, 0, 0 );
self->hwnd = CreateDialogParam( self->handle.Get(), MAKEINTRESOURCE(IDD_LOADING_DIALOG), NULL, DlgProc, (LPARAM)thisAsVoidPtr); /* Process all queued messages since the last paint. This allows the window to
* come back if it loses focus during load. */
SetEvent(self->guiReadyEvent);
// Run the message loop in a separate thread to keep the gui responsive during the loading
MSG msg; MSG msg;
while(self->runMessageLoop && GetMessage(&msg, self->hwnd, 0, 0 ) ) while( PeekMessage( &msg, hwnd, 0, 0, PM_NOREMOVE ) )
{ {
if(IsDialogMessage(self->hwnd,&msg)) continue; GetMessage(&msg, hwnd, 0, 0 );
DispatchMessage( &msg ); DispatchMessage( &msg );
} }
return msg.wParam;
} }
void LoadingWindow_Win32::SetText( RString sText ) void LoadingWindow_Win32::SetText( RString sText )
@@ -276,7 +185,6 @@ void LoadingWindow_Win32::SetText( RString sText )
text[i] = asMessageLines[i]; text[i] = asMessageLines[i];
HWND hwndItem = ::GetDlgItem( hwnd, msgid[i] ); HWND hwndItem = ::GetDlgItem( hwnd, msgid[i] );
::SetWindowText( hwndItem, ConvertUTF8ToACP(asMessageLines[i]).c_str() ); ::SetWindowText( hwndItem, ConvertUTF8ToACP(asMessageLines[i]).c_str() );
} }
} }
@@ -286,13 +194,6 @@ void LoadingWindow_Win32::SetProgress(const int progress)
m_progress=progress; m_progress=progress;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
::SendMessage(hwndItem,PBM_SETPOS,progress,0); ::SendMessage(hwndItem,PBM_SETPOS,progress,0);
/*
#if(WINVER >= 0x0601)
if(pTaskbarList) {
pTaskbarList->SetProgressValue(hwnd, m_progress, m_totalWork);
}
#endif
*/
} }
void LoadingWindow_Win32::SetTotalWork(const int totalWork) void LoadingWindow_Win32::SetTotalWork(const int totalWork)
@@ -300,42 +201,21 @@ void LoadingWindow_Win32::SetTotalWork(const int totalWork)
m_totalWork=totalWork; m_totalWork=totalWork;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
SendMessage(hwndItem,PBM_SETRANGE32,0,totalWork); SendMessage(hwndItem,PBM_SETRANGE32,0,totalWork);
/*
#if(WINVER >= 0x0601)
if(pTaskbarList) {
pTaskbarList->SetProgressValue(hwnd, m_progress, m_totalWork);
}
#endif
*/
} }
void LoadingWindow_Win32::SetIndeterminate(bool indeterminate) { void LoadingWindow_Win32::SetIndeterminate(bool indeterminate)
{
m_indeterminate=indeterminate; m_indeterminate=indeterminate;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS ); HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
if(indeterminate) { if(indeterminate) {
/*
#if(WINVER >= 0x0601)
if(pTaskbarList) {
pTaskbarList->SetProgressState(hwnd, TBPF_INDETERMINATE);
}
#endif
*/
SetWindowLong(hwndItem,GWL_STYLE, PBS_MARQUEE | GetWindowLong(hwndItem,GWL_STYLE)); SetWindowLong(hwndItem,GWL_STYLE, PBS_MARQUEE | GetWindowLong(hwndItem,GWL_STYLE));
SendMessage(hwndItem,PBM_SETMARQUEE,1,0); SendMessage(hwndItem,PBM_SETMARQUEE,1,0);
} else { } else {
SendMessage(hwndItem,PBM_SETMARQUEE,0,0); SendMessage(hwndItem,PBM_SETMARQUEE,0,0);
SetWindowLong(hwndItem,GWL_STYLE, (~PBS_MARQUEE) & GetWindowLong(hwndItem,GWL_STYLE)); SetWindowLong(hwndItem,GWL_STYLE, (~PBS_MARQUEE) & GetWindowLong(hwndItem,GWL_STYLE));
/*
#if(WINVER >= 0x0601)
if(pTaskbarList) {
pTaskbarList->SetProgressState(hwnd, TBPF_NORMAL);
} }
#endif
*/
}
} }
/* /*
+2 -21
View File
@@ -3,22 +3,17 @@
#ifndef LOADING_WINDOW_WIN32_H #ifndef LOADING_WINDOW_WIN32_H
#define LOADING_WINDOW_WIN32_H #define LOADING_WINDOW_WIN32_H
#include "global.h"
#include "LoadingWindow.h" #include "LoadingWindow.h"
#include <windows.h> #include <windows.h>
#include "archutils/Win32/AppInstance.h" #include "archutils/Win32/AppInstance.h"
#if(WINVER >= 0x0601)
#include "Shobjidl.h"
#endif
class LoadingWindow_Win32: public LoadingWindow class LoadingWindow_Win32: public LoadingWindow
{ {
public: public:
LoadingWindow_Win32(); LoadingWindow_Win32();
~LoadingWindow_Win32(); ~LoadingWindow_Win32();
void Paint();
void SetText( RString sText ); void SetText( RString sText );
void SetIcon( const RageSurface *pIcon ); void SetIcon( const RageSurface *pIcon );
void SetSplash( const RString sPath ); void SetSplash( const RString sPath );
@@ -31,22 +26,8 @@ private:
HWND hwnd; HWND hwnd;
RString text[3]; RString text[3];
HICON m_hIcon; HICON m_hIcon;
HANDLE pumpThread;
DWORD pumpThreadId;
HANDLE guiReadyEvent;
/* static BOOL CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
#if WINVER >= 0x0601
UINT taskbarCreatedEvent;
ITaskbarList3 *pTaskbarList;
#endif
*/
volatile bool runMessageLoop;
static DWORD WINAPI MessagePump(LPVOID thisAsVoidPtr);
static INT_PTR CALLBACK DlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
}; };
#define USE_LOADING_WINDOW_WIN32 #define USE_LOADING_WINDOW_WIN32