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????
--------------------------------------------------------------------------------
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
----------
* [Song] Added GetSampleStart() and GetSampleLength()
Lua bindings. [Wolfman2000]
* [Song] Added GetSampleStart() and GetSampleLength() Lua bindings. [Wolfman2000]
2011/09/16
----------
+2 -2
View File
@@ -1972,8 +1972,8 @@
Returns the current Premium.
</Function>
<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 name='GetSongBeat' theme='_fallback' return='float' arguments=''>
[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"
end
end,
NoiseTrigger = function()
local hour = Hour()
return hour > 3 and hour < 6 and "ScreenNoise" or "ScreenInit"
end,
TitleMenu = function()
-- home mode is the most assumed use of sm-ssc.
if GAMESTATE:GetCoinMode() == "CoinMode_Home" then
+4 -2
View File
@@ -181,11 +181,13 @@ function HoldTiming()
end
function ShowHoldJudgments()
return not GAMESTATE:GetCurrentGame():GetName() == "pump"
local isPump = GAMESTATE:GetCurrentGame():GetName() == "pump"
return isPump and false or true
end
function HoldHeadStep()
return not GAMESTATE:GetCurrentGame():GetName() == "pump"
local isPump = GAMESTATE:GetCurrentGame():GetName() == "pump"
return isPump and false or true
end
function InitialHoldLife()
+29 -15
View File
@@ -1085,6 +1085,9 @@ TextFormat="%04.0f"
ApproachSeconds=1
Commify=false
[RollingNumbersMaxCombo]
Fallback="RollingNumbersJudgment"
[ScoreDisplayNormal]
FrameX=
FrameY=
@@ -1355,6 +1358,7 @@ LineButtonX=SCREEN_CENTER_X-50
LineFunctionX=SCREEN_CENTER_X-30
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
PageStartX=SCREEN_CENTER_X-100
@@ -1372,8 +1376,6 @@ HeaderTextX=SCREEN_LEFT+80
HeaderTextY=SCREEN_TOP+18
HeaderTextOnCommand=diffusebottomedge,color("0.5,0.5,0.5,1");strokecolor,color("0,0,0,0.5")
HeaderTextOffCommand=
LineOnCommand=zoom,0.75
#
[ScreenSystemLayer]
@@ -2916,7 +2918,7 @@ PageFadeSeconds=1.0
CoursesToShow=GetCoursesToShowRanking()
SecondsPerPage=5
#
RankingType="Category"
RankingType="RankingType_Category"
#
RowSpacingX=0
RowSpacingY=60
@@ -3233,6 +3235,7 @@ MaxComboNumDigits=4
#
ShowBannerArea=true
RollingNumbersClass="RollingNumbersJudgment"
RollingNumbersMaxComboClass="RollingNumbersMaxCombo"
#
ShowSharedJudgmentLineLabels=false
ShowJudgmentLineW1=false
@@ -4128,11 +4131,13 @@ BodyHeight=38
[ComboGraph]
BodyWidth=140
# Arcade
# Arcade #################################
[ScreenLogo]
Fallback="ScreenAttract"
PrevScreen=Branch.Init()
NextScreen="ScreenHowToPlay"
# crashes!
#NextScreen="ScreenHowToPlay"
NextScreen="ScreenDemonstration"
StartScreen=Branch.TitleMenu()
TimerSeconds=5
ForceTimer=true
@@ -4176,19 +4181,10 @@ SongBPM=100
NumW2s=4
NumMisses=6
[ScreenTitleJoin]
Fallback="ScreenTitleMenu"
ChoiceNames="GameStart"
# ScrollerOnCommand=visible,false
IdleCommentSeconds=-1
IdleTimeoutSeconds=-1
IdleTimeoutScreen=Branch.AfterInit()
[ScreenDemonstration]
Fallback="ScreenGameplay"
Class="ScreenDemonstration"
NextScreen="ScreenInit"
NextScreen=Branch.NoiseTrigger()
StartScreen=Branch.TitleMenu()
PlayMusic=false
SecondsToShow=60
@@ -4202,6 +4198,24 @@ AllowStyleTypes="TwoPlayersTwoSides"
MinSecondsToStep=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]
Class="ScreenOptionsMaster"
Fallback="ScreenPlayerOptions"
@@ -11,7 +11,7 @@ local function UpdateSingleBPM(self)
end
local displaySingle = Def.ActorFrame{
-- manual bpm displays
-- manual bpm display
LoadFont("BPMDisplay", "bpm")..{
Name="BPMDisplay";
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
PaneDisplayFrameP1OnCommand=player,PLAYER_1;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayFrameP1OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayFrameP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end
#
ShowPaneDisplayTextP1=true
PaneDisplayTextP1X=SCREEN_CENTER_X-160
PaneDisplayTextP1Y=SCREEN_BOTTOM-122-2
PaneDisplayTextP1OnCommand=player,PLAYER_1;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayTextP1OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayTextP1PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_1 then self:playcommand("On") end end
#
ShowPaneDisplayFrameP2=true
PaneDisplayFrameP2X=SCREEN_CENTER_X+160
PaneDisplayFrameP2Y=SCREEN_BOTTOM-112-2
PaneDisplayFrameP2OnCommand=player,PLAYER_2;diffuse,Color("Orange");zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayFrameP2OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayFrameP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end
#
ShowPaneDisplayTextP2=true
PaneDisplayTextP2X=SCREEN_CENTER_X+160
PaneDisplayTextP2Y=SCREEN_BOTTOM-122-2
PaneDisplayTextP2OnCommand=player,PLAYER_2;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1
PaneDisplayTextP2OffCommand=bouncebegin,0.15;zoomx,0;
PaneDisplayTextP2PlayerJoinedMessageCommand=%function(self,params) if params.Player == PLAYER_2 then self:playcommand("On") end end
#
ShowCourseContentsList=false
CourseContentsListX=SCREEN_CENTER_X-160
@@ -1336,7 +1340,7 @@ BPMDisplayY=SCREEN_BOTTOM-16
BPMDisplayOnCommand=draworder,101
BPMDisplayOffCommand=bounceend,0.25;zoom,0
#
ShowStageDisplay=true
ShowStageDisplay=not GAMESTATE:IsCourseMode()
StageDisplayX=SCREEN_CENTER_X
StageDisplayY=SCREEN_TOP+24
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; };
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; };
AA059ABA0B8CCFB5006F8139 /* ActorMultiTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorMultiTexture.cpp; path = ../src/ActorMultiTexture.cpp; sourceTree = "<group>"; };
AA059ABB0B8CCFB5006F8139 /* ActorMultiTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorMultiTexture.h; path = ../src/ActorMultiTexture.h; 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/Actors/ActorMultiTexture.h; 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>"; };
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>"; };
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>"; };
AA5D166A0A798C0E00F17E86 /* ActorFrameTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorFrameTexture.cpp; path = ../src/ActorFrameTexture.cpp; sourceTree = "<group>"; };
AA5D166B0A798C0E00F17E86 /* ActorFrameTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorFrameTexture.h; path = ../src/ActorFrameTexture.h; 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/Actors/ActorFrameTexture.h; 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>"; };
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>"; };
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>"; };
AA6EFF7504770FFD005F316C /* Actor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = Actor.cpp; path = ../src/Actor.cpp; sourceTree = "<group>"; };
AA6EFF7604770FFD005F316C /* Actor.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = Actor.h; path = ../src/Actor.h; sourceTree = "<group>"; };
AA6EFF7704770FFD005F316C /* ActorFrame.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorFrame.cpp; path = ../src/ActorFrame.cpp; sourceTree = "<group>"; };
AA6EFF7804770FFD005F316C /* ActorFrame.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorFrame.h; path = ../src/ActorFrame.h; sourceTree = "<group>"; };
AA6EFF7904770FFD005F316C /* ActorScroller.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorScroller.cpp; path = ../src/ActorScroller.cpp; sourceTree = "<group>"; };
AA6EFF7A04770FFD005F316C /* ActorScroller.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorScroller.h; path = ../src/ActorScroller.h; 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/Actors/Actor.h; 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/Actors/ActorFrame.h; 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/Actors/ActorScroller.h; 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>"; };
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>"; };
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>"; };
AACFBE2608E7D793005087FC /* ActorSound.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = ActorSound.cpp; path = ../src/ActorSound.cpp; sourceTree = "<group>"; };
AACFBE2708E7D793005087FC /* ActorSound.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ActorSound.h; path = ../src/ActorSound.h; 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/Actors/ActorSound.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>"; };
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>"; };
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>"; };
AAFE71090A91ADE6005F2290 /* ActorProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ActorProxy.cpp; path = ../src/ActorProxy.cpp; sourceTree = "<group>"; };
AAFE710A0A91ADE6005F2290 /* ActorProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActorProxy.h; path = ../src/ActorProxy.h; 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/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>"; };
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>"; };
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
// to a lack of songs. -aj
int iNumSongs = SONGMAN->GetNumSongs();
LOG->Trace("[CourseLoaderCRS] sParams[1] = %s",sParams[1].c_str());
// most played
if( sParams[1].Left(strlen("BEST")) == "BEST" )
{
+10
View File
@@ -295,6 +295,10 @@ public:
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; }
LunaFadingBanner()
@@ -306,7 +310,13 @@ public:
ADD_METHOD( LoadFromCourse );
ADD_METHOD( LoadIconFromCharacter );
ADD_METHOD( LoadCardFromCharacter );
ADD_METHOD( LoadRandom );
ADD_METHOD( LoadRoulette );
ADD_METHOD( LoadCourseFallback );
ADD_METHOD( LoadFallback );
//ADD_METHOD( LoadFromSortOrder );
ADD_METHOD( GetLatestIndex );
//ADD_METHOD( GetBanner );
}
};
+1
View File
@@ -39,6 +39,7 @@ public:
virtual void DrawPrimitives();
int GetLatestIndex(){ return m_iIndexLatest; }
Banner GetBanner(int i){ return m_Banner[i]; }
// Lua
void PushSelf( lua_State *L );
+8
View File
@@ -1459,6 +1459,12 @@ void GameState::RemoveAllActiveAttacks() // called on end of song
m_pPlayerState[p]->RemoveActiveAttacks();
}
void GameState::AddStageToPlayer( PlayerNumber pn )
{
// Add one stage more to player (bonus) -cerbo
++m_iPlayerStageTokens[pn];
}
template<class T>
void setmin( T &a, const T &b )
{
@@ -2430,6 +2436,7 @@ public:
lua_pushboolean(L, p->m_bDopefish);
return 1;
}
static int AddStageToPlayer( T* p, lua_State *L ) { p->AddStageToPlayer(Enum::Check<PlayerNumber>(L, 1)); return 0; }
LunaGameState()
{
@@ -2531,6 +2538,7 @@ public:
ADD_METHOD( SetCharacter );
ADD_METHOD( GetExpandedSectionName );
ADD_METHOD( Dopefish );
ADD_METHOD( AddStageToPlayer );
}
};
+1
View File
@@ -62,6 +62,7 @@ public:
bool HaveProfileToLoad();
bool HaveProfileToSave();
void SaveLocalData();
void AddStageToPlayer( PlayerNumber pn );
void LoadCurrentSettingsFromProfile( PlayerNumber pn );
/**
* @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
Actors = \
Actor.cpp Actor.h ActorFrame.cpp ActorFrame.h \
ActorFrameTexture.cpp ActorFrameTexture.h \
ActorMultiTexture.cpp ActorMultiTexture.h \
ActorProxy.cpp ActorProxy.h \
ActorScroller.cpp ActorScroller.h ActorUtil.cpp ActorUtil.h \
ActorSound.cpp ActorSound.h \
Actors/Actor.cpp Actors/Actor.h Actors/ActorFrame.cpp Actors/ActorFrame.h \
Actors/ActorFrameTexture.cpp Actors/ActorFrameTexture.h \
Actors/ActorMultiTexture.cpp Actors/ActorMultiTexture.h \
Actors/ActorProxy.cpp Actors/ActorProxy.h \
Actors/ActorScroller.cpp Actors/ActorScroller.h ActorUtil.cpp ActorUtil.h \
Actors/ActorSound.cpp Actors/ActorSound.h \
AutoActor.cpp AutoActor.h \
BitmapText.cpp BitmapText.h Model.cpp Model.h \
DynamicActorScroller.cpp DynamicActorScroller.h \
+16 -2
View File
@@ -88,7 +88,7 @@ void SMLoader::LoadFromTokens(
out.SetDescription( sDescription );
out.SetCredit( sDescription ); // this is often used for both.
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
// Difficulty_Challenge. (At least v1.64, possibly v3.0 final...)
@@ -667,9 +667,23 @@ bool SMLoader::LoadNoteDataFromSimfile( const RString &path, Steps &out )
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 ) &&
out.GetDescription() == description &&
out.GetDifficulty() == StringToDifficulty(difficulty)))
(out.GetDifficulty() == StringToDifficulty(difficulty) ||
out.GetDifficulty() == OldStyleStringToDifficulty(difficulty))))
{
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 )
{
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;",
join(",\r\n", timing.ToVectorString(SEGMENT_STOP)).c_str()));
join(",\r\n", timing.ToVectorString(SEGMENT_STOP, 3)).c_str()));
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;",
join(",\r\n", timing.ToVectorString(SEGMENT_WARP)).c_str()));
join(",\r\n", timing.ToVectorString(SEGMENT_WARP, 3)).c_str()));
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;",
join(",\r\n", timing.ToVectorString(SEGMENT_TICKCOUNT)).c_str()));
join(",\r\n", timing.ToVectorString(SEGMENT_TICKCOUNT, 3)).c_str()));
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;",
join(",\r\n", timing.ToVectorString(SEGMENT_SPEED)).c_str()));
join(",\r\n", timing.ToVectorString(SEGMENT_SPEED, 3)).c_str()));
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;",
join(",\r\n", timing.ToVectorString(SEGMENT_FAKE)).c_str()));
join(",\r\n", timing.ToVectorString(SEGMENT_FAKE, 3)).c_str()));
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
UpdateText();
// blink the text to show what changed
// show what changed
BitmapText &bt = *m_vptextButton[i];
bt.FinishTweening();
// blink 5 times instead of 8
// 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);
}
bt.PlayCommand("Toggled");
return true;
}
+5 -1
View File
@@ -1739,7 +1739,8 @@ void ScreenEdit::InputEdit( const InputEventPlus &input, EditButton EditB )
break;
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_begin_marker].bEnabled = !m_Clipboard.IsEmpty() != 0 && m_NoteFieldEdit.m_iBeginMarker!=-1;
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
{
// 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);
g_AlterMenu.rows[routine_invert_notes].bEnabled = isRoutine;
g_AlterMenu.rows[routine_mirror_1_to_2].bEnabled = isRoutine;
+5 -2
View File
@@ -66,7 +66,6 @@ XToString( DetailLine );
#define SHOW_SCORE_AREA THEME->GetMetricB(m_sName,"ShowScoreArea")
#define SHOW_TIME_AREA THEME->GetMetricB(m_sName,"ShowTimeArea")
#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_SEPARATOR THEME->GetMetric (m_sName,"PlayerOptionsSeparator")
#define CHECKPOINTS_WITH_JUDGMENTS THEME->GetMetricB(m_sName,"CheckpointsWithJudgments")
@@ -460,6 +459,7 @@ void ScreenEvaluation::Init()
// init judgment area
ROLLING_NUMBERS_CLASS.Load( m_sName, "RollingNumbersClass" );
ROLLING_NUMBERS_MAX_COMBO_CLASS.Load( m_sName, "RollingNumbersMaxComboClass" );
FOREACH_ENUM( JudgmentLine, l )
{
if( l == JudgmentLine_W1 && !GAMESTATE->ShowW1() )
@@ -481,7 +481,10 @@ void ScreenEvaluation::Init()
{
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].Load( ROLLING_NUMBERS_CLASS );
if( JudgmentLineToString(l) == "MaxCombo" )
m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_MAX_COMBO_CLASS );
else
m_textJudgmentLineNumber[l][p].Load( ROLLING_NUMBERS_CLASS );
ActorUtil::LoadAllCommands( m_textJudgmentLineNumber[l][p], m_sName );
SET_XY( m_textJudgmentLineNumber[l][p] );
this->AddChild( &m_textJudgmentLineNumber[l][p] );
+1
View File
@@ -115,6 +115,7 @@ protected:
ThemeMetric<bool> SUMMARY;
ThemeMetric<RString> ROLLING_NUMBERS_CLASS;
ThemeMetric<RString> ROLLING_NUMBERS_MAX_COMBO_CLASS;
/** @brief Did a player save a screenshot of their score? */
bool m_bSavedScreenshot[NUM_PLAYERS];
};
+1 -7
View File
@@ -41,7 +41,7 @@
* @brief The internal version of the cache for StepMania.
*
* 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? */
const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;
@@ -920,12 +920,6 @@ void Song::Save()
ReCalculateRadarValuesAndLastSecond();
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.
if( !SaveToSSCFile(GetSongFilePath(), false) )
+14 -14
View File
@@ -2956,46 +2956,46 @@ cl /Zl /nologo /c verstub.cpp /Fo&quot;$(IntDir)&quot;\
Name="Actors"
Filter="">
<File
RelativePath="Actor.cpp">
RelativePath="Actors\Actor.cpp">
</File>
<File
RelativePath="Actor.h">
RelativePath="Actors\Actor.h">
</File>
<File
RelativePath="ActorFrame.cpp">
RelativePath="Actors\ActorFrame.cpp">
</File>
<File
RelativePath="ActorFrame.h">
RelativePath="Actors\ActorFrame.h">
</File>
<File
RelativePath="ActorFrameTexture.cpp">
RelativePath="Actors\ActorFrameTexture.cpp">
</File>
<File
RelativePath="ActorFrameTexture.h">
RelativePath="Actors\ActorFrameTexture.h">
</File>
<File
RelativePath="ActorMultiTexture.cpp">
RelativePath="Actors\ActorMultiTexture.cpp">
</File>
<File
RelativePath="ActorMultiTexture.h">
RelativePath="Actors\ActorMultiTexture.h">
</File>
<File
RelativePath="ActorProxy.cpp">
RelativePath="Actors\ActorProxy.cpp">
</File>
<File
RelativePath="ActorProxy.h">
RelativePath="Actors\ActorProxy.h">
</File>
<File
RelativePath="ActorScroller.cpp">
RelativePath="Actors\ActorScroller.cpp">
</File>
<File
RelativePath="ActorScroller.h">
RelativePath="Actors\ActorScroller.h">
</File>
<File
RelativePath="ActorSound.cpp">
RelativePath="Actors\ActorSound.cpp">
</File>
<File
RelativePath="ActorSound.h">
RelativePath="Actors\ActorSound.h">
</File>
<File
RelativePath="ActorUtil.cpp">
+14 -14
View File
@@ -4654,59 +4654,59 @@
Name="Actors"
>
<File
RelativePath="Actor.cpp"
RelativePath="Actors\Actor.cpp"
>
</File>
<File
RelativePath="Actor.h"
RelativePath="Actors\Actor.h"
>
</File>
<File
RelativePath="ActorFrame.cpp"
RelativePath="Actors\ActorFrame.cpp"
>
</File>
<File
RelativePath="ActorFrame.h"
RelativePath="Actors\ActorFrame.h"
>
</File>
<File
RelativePath="ActorFrameTexture.cpp"
RelativePath="Actors\ActorFrameTexture.cpp"
>
</File>
<File
RelativePath="ActorFrameTexture.h"
RelativePath="Actors\ActorFrameTexture.h"
>
</File>
<File
RelativePath="ActorMultiTexture.cpp"
RelativePath="Actors\ActorMultiTexture.cpp"
>
</File>
<File
RelativePath="ActorMultiTexture.h"
RelativePath="Actors\ActorMultiTexture.h"
>
</File>
<File
RelativePath="ActorProxy.cpp"
RelativePath="Actors\ActorProxy.cpp"
>
</File>
<File
RelativePath="ActorProxy.h"
RelativePath="Actors\ActorProxy.h"
>
</File>
<File
RelativePath="ActorScroller.cpp"
RelativePath="Actors\ActorScroller.cpp"
>
</File>
<File
RelativePath="ActorScroller.h"
RelativePath="Actors\ActorScroller.h"
>
</File>
<File
RelativePath="ActorSound.cpp"
RelativePath="Actors\ActorSound.cpp"
>
</File>
<File
RelativePath="ActorSound.h"
RelativePath="Actors\ActorSound.h"
>
</File>
<File
+18 -18
View File
@@ -50,7 +50,7 @@
<Tool
Name="VCCLCompilerTool"
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"
ExceptionHandling="0"
BasicRuntimeChecks="3"
@@ -158,7 +158,7 @@
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
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"
StringPooling="true"
MinimalRebuild="false"
@@ -263,7 +263,7 @@
<Tool
Name="VCCLCompilerTool"
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"
ExceptionHandling="0"
BasicRuntimeChecks="0"
@@ -371,7 +371,7 @@
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
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"
StringPooling="true"
MinimalRebuild="false"
@@ -3821,59 +3821,59 @@
Name="Actors"
>
<File
RelativePath="Actor.cpp"
RelativePath="Actors\Actor.cpp"
>
</File>
<File
RelativePath="Actor.h"
RelativePath="Actors\Actor.h"
>
</File>
<File
RelativePath="ActorFrame.cpp"
RelativePath="Actors\ActorFrame.cpp"
>
</File>
<File
RelativePath="ActorFrame.h"
RelativePath="Actors\ActorFrame.h"
>
</File>
<File
RelativePath="ActorFrameTexture.cpp"
RelativePath="Actors\ActorFrameTexture.cpp"
>
</File>
<File
RelativePath="ActorFrameTexture.h"
RelativePath="Actors\ActorFrameTexture.h"
>
</File>
<File
RelativePath="ActorMultiTexture.cpp"
RelativePath="Actors\ActorMultiTexture.cpp"
>
</File>
<File
RelativePath="ActorMultiTexture.h"
RelativePath="Actors\ActorMultiTexture.h"
>
</File>
<File
RelativePath="ActorProxy.cpp"
RelativePath="Actors\ActorProxy.cpp"
>
</File>
<File
RelativePath="ActorProxy.h"
RelativePath="Actors\ActorProxy.h"
>
</File>
<File
RelativePath="ActorScroller.cpp"
RelativePath="Actors\ActorScroller.cpp"
>
</File>
<File
RelativePath="ActorScroller.h"
RelativePath="Actors\ActorScroller.h"
>
</File>
<File
RelativePath="ActorSound.cpp"
RelativePath="Actors\ActorSound.cpp"
>
</File>
<File
RelativePath="ActorSound.h"
RelativePath="Actors\ActorSound.h"
>
</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_FileDB.cpp" />
<ClCompile Include="RageUtil_WorkerThread.cpp" />
<ClCompile Include="Actor.cpp" />
<ClCompile Include="ActorFrame.cpp" />
<ClCompile Include="ActorFrameTexture.cpp" />
<ClCompile Include="ActorMultiTexture.cpp" />
<ClCompile Include="ActorProxy.cpp" />
<ClCompile Include="ActorScroller.cpp" />
<ClCompile Include="ActorSound.cpp" />
<ClCompile Include="ActorUtil.cpp" />
<ClCompile Include="Actors\Actor.cpp" />
<ClCompile Include="Actors\ActorFrame.cpp" />
<ClCompile Include="Actors\ActorFrameTexture.cpp" />
<ClCompile Include="Actors\ActorMultiTexture.cpp" />
<ClCompile Include="Actors\ActorProxy.cpp" />
<ClCompile Include="Actors\ActorScroller.cpp" />
<ClCompile Include="Actors\ActorSound.cpp" />
<ClCompile Include="Actors\ActorUtil.cpp" />
<ClCompile Include="AutoActor.cpp" />
<ClCompile Include="BitmapText.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_FileDB.h" />
<ClInclude Include="RageUtil_WorkerThread.h" />
<ClInclude Include="Actor.h" />
<ClInclude Include="ActorFrame.h" />
<ClInclude Include="ActorFrameTexture.h" />
<ClInclude Include="ActorMultiTexture.h" />
<ClInclude Include="ActorProxy.h" />
<ClInclude Include="ActorScroller.h" />
<ClInclude Include="ActorSound.h" />
<ClInclude Include="Actors\Actor.h" />
<ClInclude Include="Actors\ActorFrame.h" />
<ClInclude Include="Actors\ActorFrameTexture.h" />
<ClInclude Include="Actors\ActorMultiTexture.h" />
<ClInclude Include="Actors\ActorProxy.h" />
<ClInclude Include="Actors\ActorScroller.h" />
<ClInclude Include="Actors\ActorSound.h" />
<ClInclude Include="ActorUtil.h" />
<ClInclude Include="AutoActor.h" />
<ClInclude Include="BitmapText.h" />
+14 -14
View File
@@ -1242,25 +1242,25 @@
<ClCompile Include="RageUtil_WorkerThread.cpp">
<Filter>Rage</Filter>
</ClCompile>
<ClCompile Include="Actor.cpp">
<ClCompile Include="Actors\Actor.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorFrame.cpp">
<ClCompile Include="Actors\ActorFrame.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorFrameTexture.cpp">
<ClCompile Include="Actors\ActorFrameTexture.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorMultiTexture.cpp">
<ClCompile Include="Actors\ActorMultiTexture.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorProxy.cpp">
<ClCompile Include="Actors\ActorProxy.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorScroller.cpp">
<ClCompile Include="Actors\ActorScroller.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorSound.cpp">
<ClCompile Include="Actors\ActorSound.cpp">
<Filter>Actors</Filter>
</ClCompile>
<ClCompile Include="ActorUtil.cpp">
@@ -2777,25 +2777,25 @@
<ClInclude Include="RageUtil_WorkerThread.h">
<Filter>Rage</Filter>
</ClInclude>
<ClInclude Include="Actor.h">
<ClInclude Include="Actors\Actor.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorFrame.h">
<ClInclude Include="Actors\ActorFrame.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorFrameTexture.h">
<ClInclude Include="Actors\ActorFrameTexture.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorMultiTexture.h">
<ClInclude Include="Actors\ActorMultiTexture.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorProxy.h">
<ClInclude Include="Actors\ActorProxy.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorScroller.h">
<ClInclude Include="Actors\ActorScroller.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorSound.h">
<ClInclude Include="Actors\ActorSound.h">
<Filter>Actors</Filter>
</ClInclude>
<ClInclude Include="ActorUtil.h">
+8 -4
View File
@@ -80,10 +80,14 @@ static Preference<bool> g_bAllowMultipleInstances( "AllowMultipleInstances", fal
void StepMania::GetPreferredVideoModeParams( VideoModeParams &paramsOut )
{
// unsure if this is still going to cause first run issues. -aj
float fAspectRatio = PREFSMAN->m_fDisplayAspectRatio;
int iHeight = PREFSMAN->m_iDisplayHeight;
int iWidth = ceilf(iHeight * fAspectRatio);
// resolution handling code that probably needs fixing
int iWidth = PREFSMAN->m_iDisplayWidth;
if( PREFSMAN->m_bWindowed )
{
//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
// 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 )
{
const vector<TimingSegment*> vpSegs = cpy.m_avpTimingSegments[tst];
const vector<TimingSegment*> &vpSegs = cpy.m_avpTimingSegments[tst];
for( unsigned i = 0; i < vpSegs.size(); ++i )
AddSegment( vpSegs[i] );
@@ -36,7 +36,7 @@ void TimingData::Clear()
vector<TimingSegment*> &vSegs = m_avpTimingSegments[tst];
for( unsigned i = 0; i < vSegs.size(); ++i )
{
LOG->Trace( "deleting %p", vSegs[i] );
//LOG->Trace( "deleting %p", vSegs[i] );
SAFE_DELETE( vSegs[i] ); }
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.
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();
TimingSegmentType tst = seg->GetType();
+20 -140
View File
@@ -19,9 +19,7 @@
#include "RageSurfaceUtils_Zoom.h"
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 )
{
RageSurfaceUtils::ConvertSurface( s, s->w, s->h, 32, 0xFF000000, 0x00FF0000, 0x0000FF00, 0 );
@@ -35,14 +33,14 @@ static HBITMAP LoadWin32Surface( RageSurface *&s )
HDC BitmapDC = CreateCompatibleDC( hScreen );
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 )
{
unsigned const char *line = ((unsigned char *) s->pixels) + (y * s->pitch);
for( int x = 0; x < s->w; ++x )
{
unsigned const char *data = line + (x*s->format->BytesPerPixel);
SetPixelV( BitmapDC, x, y, RGB( data[3], data[2], data[1] ) );
}
}
@@ -62,7 +60,7 @@ static HBITMAP LoadWin32Surface( RString sFile, HWND hWnd )
if( pSurface == NULL )
return NULL;
/* Resize the splash image to fit the dialog. Stretch to fit horizontally,
/* Resize the splash image to fit the dialog. Stretch to fit horizontally,
* maintaining aspect ratio. */
{
RECT r;
@@ -80,43 +78,8 @@ static HBITMAP LoadWin32Surface( RString sFile, HWND hWnd )
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 )
{
case WM_INITDIALOG:
@@ -134,36 +97,11 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara
(WPARAM) IMAGE_BITMAP,
(LPARAM) (HANDLE) g_hBitmap );
SetWindowTextA( hWnd, PRODUCT_ID );
break;
case WM_CLOSE:
HOOKS->SetUserQuit();
return FALSE;
case WM_DESTROY:
/*
#if(WINVER >= 0x0601)
if (self->pTaskbarList) {
self->pTaskbarList->Release();
self->pTaskbarList = NULL;
}
#endif
*/
DeleteObject( g_hBitmap );
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;
}
@@ -172,7 +110,7 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara
void LoadingWindow_Win32::SetIcon( const RageSurface *pIcon )
{
if( g_hBitmap != NULL )
if( m_hIcon != NULL )
DestroyIcon( m_hIcon );
m_hIcon = IconFromSurface( pIcon );
@@ -201,64 +139,35 @@ void LoadingWindow_Win32::SetSplash( const RString sPath )
}
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;
runMessageLoop=true;
guiReadyEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
pumpThread=CreateThread(NULL, NULL, MessagePump, (void *)this, 0, &pumpThreadId);
WaitForSingleObject(guiReadyEvent,INFINITE);
hwnd = CreateDialog( handle.Get(), MAKEINTRESOURCE(IDD_LOADING_DIALOG), NULL, WndProc );
for( unsigned i = 0; i < 3; ++i )
text[i] = "ABC"; /* always set on first call */
SetText( "" );
Paint();
}
LoadingWindow_Win32::~LoadingWindow_Win32()
{
SendMessage(hwnd,WM_APP,0,0);
//SendMessage(hwnd,WM_NULL,0,0);
WaitForSingleObject(pumpThread,INFINITE);
if(guiReadyEvent)
CloseHandle(guiReadyEvent);
if( hwnd )
DestroyWindow( hwnd );
if( m_hIcon != NULL )
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);
SetEvent(self->guiReadyEvent);
// Run the message loop in a separate thread to keep the gui responsive during the loading
/* Process all queued messages since the last paint. This allows the window to
* come back if it loses focus during load. */
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 );
}
return msg.wParam;
}
void LoadingWindow_Win32::SetText( RString sText )
@@ -267,7 +176,7 @@ void LoadingWindow_Win32::SetText( RString sText )
split( sText, "\n", asMessageLines, false );
while( asMessageLines.size() < 3 )
asMessageLines.push_back( "" );
const int msgid[] = { IDC_STATIC_MESSAGE1, IDC_STATIC_MESSAGE2, IDC_STATIC_MESSAGE3 };
for( unsigned i = 0; i < 3; ++i )
{
@@ -276,7 +185,6 @@ void LoadingWindow_Win32::SetText( RString sText )
text[i] = asMessageLines[i];
HWND hwndItem = ::GetDlgItem( hwnd, msgid[i] );
::SetWindowText( hwndItem, ConvertUTF8ToACP(asMessageLines[i]).c_str() );
}
}
@@ -286,13 +194,6 @@ void LoadingWindow_Win32::SetProgress(const int progress)
m_progress=progress;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
::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)
@@ -300,42 +201,21 @@ void LoadingWindow_Win32::SetTotalWork(const int totalWork)
m_totalWork=totalWork;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
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;
HWND hwndItem = ::GetDlgItem( hwnd, IDC_PROGRESS );
if(indeterminate) {
/*
#if(WINVER >= 0x0601)
if(pTaskbarList) {
pTaskbarList->SetProgressState(hwnd, TBPF_INDETERMINATE);
}
#endif
*/
SetWindowLong(hwndItem,GWL_STYLE, PBS_MARQUEE | GetWindowLong(hwndItem,GWL_STYLE));
SendMessage(hwndItem,PBM_SETMARQUEE,1,0);
} else {
SendMessage(hwndItem,PBM_SETMARQUEE,0,0);
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
#define LOADING_WINDOW_WIN32_H
#include "global.h"
#include "LoadingWindow.h"
#include <windows.h>
#include "archutils/Win32/AppInstance.h"
#if(WINVER >= 0x0601)
#include "Shobjidl.h"
#endif
class LoadingWindow_Win32: public LoadingWindow
{
public:
LoadingWindow_Win32();
~LoadingWindow_Win32();
void Paint();
void SetText( RString sText );
void SetIcon( const RageSurface *pIcon );
void SetSplash( const RString sPath );
@@ -31,22 +26,8 @@ private:
HWND hwnd;
RString text[3];
HICON m_hIcon;
HANDLE pumpThread;
DWORD pumpThreadId;
HANDLE guiReadyEvent;
/*
#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 );
static BOOL CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
};
#define USE_LOADING_WINDOW_WIN32