diff --git a/.hgignore b/.hgignore index 8e4aa8d71e..173f31ccc7 100644 --- a/.hgignore +++ b/.hgignore @@ -74,6 +74,8 @@ Program/StepMania*.lib crashinfo.txt Utils/temp* *.lnk +BuildLog.htm +*.pch syntax: regexp .*\#.*\#$ diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index 5904c2283c..8916f99138 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -9,6 +9,17 @@ Not all changes are documented, for various reasons. supported but exist anyways.) _____________________________________________________________________________ +================================================================================ +sm-ssc $NEXTVERSION | 2011???? +-------------------------------------------------------------------------------- +It depends on who you ask. +It could be v1.2.5, it could be v1.3.0, it could even be StepMania 5. + +20110329 +-------- +* [ScreenEdit] Changed sample playback button to L. [AJ] +* [ScreenGameplay] Announcers say combo messages again. [AJ] + ================================================================================ sm-ssc v1.2.4 | 20110327 -------------------------------------------------------------------------------- diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 3cacf67bed..47c1b44bf8 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -1996,7 +1996,7 @@ ShowAutogen=true AutogenX=40 AutogenY=0 AutogenOnCommand= -AutogenSetCommand=%function(self,param) if param.CustomDifficulty then self:diffuse(CustomDifficultyToLightColor(param.CustomDifficulty)); self:strokecolor(CustomDifficultyToDarkColor(param.CustomDifficulty)); end end +AutogenSetCommand= ShowStepsType=false StepsTypeX=0 StepsTypeY=0 diff --git a/src/GameSoundManager.cpp b/src/GameSoundManager.cpp index ca07566f8a..f0b0a9d686 100644 --- a/src/GameSoundManager.cpp +++ b/src/GameSoundManager.cpp @@ -142,8 +142,9 @@ static void StartMusic( MusicToPlay &ToPlay ) { LOG->Trace( "Found '%s'", ToPlay.m_sTimingFile.c_str() ); Song song; - if( SSCLoader::LoadFromSSCFile(ToPlay.m_sTimingFile, song) ) + if( GetExtension(ToPlay.m_sTimingFile.c_str()) == ".ssc" ) { + SSCLoader::LoadFromSSCFile(ToPlay.m_sTimingFile, song); ToPlay.HasTiming = true; ToPlay.m_TimingData = song.m_Timing; // get cabinet lights if any @@ -151,8 +152,9 @@ static void StartMusic( MusicToPlay &ToPlay ) if( pStepsCabinetLights ) pStepsCabinetLights->GetNoteData( ToPlay.m_LightsData ); } - else if( SMLoader::LoadFromSMFile(ToPlay.m_sTimingFile, song) ) + else if( GetExtension(ToPlay.m_sTimingFile.c_str()) == ".sm" ) { + SMLoader::LoadFromSMFile(ToPlay.m_sTimingFile, song); ToPlay.HasTiming = true; ToPlay.m_TimingData = song.m_Timing; // get cabinet lights if any diff --git a/src/RageInputDevice.h b/src/RageInputDevice.h index 89084be39d..a81401e6a3 100644 --- a/src/RageInputDevice.h +++ b/src/RageInputDevice.h @@ -315,8 +315,9 @@ public: float level; // Mouse coordinates - unsigned x; - unsigned y; + //unsigned x; + //unsigned y; + int z; // mousewheel /* Whether this button is pressed. This is level with a threshold and * debouncing applied. */ @@ -324,12 +325,12 @@ public: RageTimer ts; - DeviceInput(): device(InputDevice_Invalid), button(DeviceButton_Invalid), level(0), x(0), y(0), bDown(false), ts(RageZeroTimer) { } - DeviceInput( InputDevice d, DeviceButton b, float l=0 ): device(d), button(b), level(l), x(0), y(0), bDown(l > 0.5f), ts(RageZeroTimer) { } + DeviceInput(): device(InputDevice_Invalid), button(DeviceButton_Invalid), level(0), z(0), bDown(false), ts(RageZeroTimer) { } + DeviceInput( InputDevice d, DeviceButton b, float l=0 ): device(d), button(b), level(l), z(0), bDown(l > 0.5f), ts(RageZeroTimer) { } DeviceInput( InputDevice d, DeviceButton b, float l, const RageTimer &t ): - device(d), button(b), level(l), x(0), y(0), bDown(level > 0.5f), ts(t) { } - DeviceInput( InputDevice d, DeviceButton b, const RageTimer &t, unsigned xPos=0, unsigned yPos=0 ): - device(d), button(b), level(0), x(xPos), y(yPos), bDown(false), ts(t) { } + device(d), button(b), level(l), z(0), bDown(level > 0.5f), ts(t) { } + DeviceInput( InputDevice d, DeviceButton b, const RageTimer &t, int zVal=0 ): + device(d), button(b), level(0), z(zVal), bDown(false), ts(t) { } bool operator==( const DeviceInput &other ) const { diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp index febaaf9d22..30d900fa2b 100644 --- a/src/ScreenEdit.cpp +++ b/src/ScreenEdit.cpp @@ -207,7 +207,7 @@ void ScreenEdit::InitEditMappings() m_EditMappingsDeviceInput.hold[EDIT_BUTTON_SAMPLE_LENGTH_DOWN][0] = DeviceInput(DEVICE_KEYBOARD, KEY_LSHIFT); m_EditMappingsDeviceInput.hold[EDIT_BUTTON_SAMPLE_LENGTH_DOWN][1] = DeviceInput(DEVICE_KEYBOARD, KEY_RSHIFT); - m_EditMappingsDeviceInput.button[EDIT_BUTTON_PLAY_SAMPLE_MUSIC][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cm); + m_EditMappingsDeviceInput.button[EDIT_BUTTON_PLAY_SAMPLE_MUSIC][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cl); m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_BGCHANGE_LAYER1_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cb); m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_BGCHANGE_LAYER2_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cb); diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index fc34084c53..c9ea70bc6e 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -2517,9 +2517,11 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) if( !m_Toasty.IsTransitioning() && !m_Toasty.IsFinished() ) // don't play if we've already played it once m_Toasty.StartTransitioning(); } - else if( SM >= SM_100Combo && SM <= SM_1000Combo ) + else if( ScreenMessageHelpers::ScreenMessageToString(SM).find("0Combo") != string::npos ) { - int iCombo = ( SM-(SM_100Combo+1) ) * 100; + int iCombo; + RString sCropped = ScreenMessageHelpers::ScreenMessageToString(SM).substr(3); + sscanf(sCropped.c_str(),"%d%*s",&iCombo); PlayAnnouncer( ssprintf("gameplay %d combo",iCombo), 2 ); } else if( SM == SM_ComboStopped ) diff --git a/src/arch/InputHandler/InputHandler_DirectInput.cpp b/src/arch/InputHandler/InputHandler_DirectInput.cpp index 6dedbeba21..a0a9316e64 100644 --- a/src/arch/InputHandler/InputHandler_DirectInput.cpp +++ b/src/arch/InputHandler/InputHandler_DirectInput.cpp @@ -413,12 +413,21 @@ void InputHandler_DInput::UpdatePolled( DIDevice &device, const RageTimer &tm ) break; case DIMOFS_Z: { - neg = MOUSE_WHEELUP; pos = MOUSE_WHEELDOWN; + neg = MOUSE_WHEELDOWN; pos = MOUSE_WHEELUP; val = state.lZ; + //LOG->Trace("MouseWheel polled: %i",val); + INPUTFILTER->UpdateMouseWheel(val); - float l = SCALE( int(val), -120.0f, 120.0f, 0.0f, 1.0f ); - ButtonPressed( DeviceInput(dev, neg, max(-l,0), tm) ); - ButtonPressed( DeviceInput(dev, pos, max(+l,0), tm) ); + /* + if( (int)val != 0 ) + { + // positive values: WheelUp + // negative values: WheelDown + float l = SCALE( int(val), -120.0f, 120.0f, -1.0f, 1.0f ); + ButtonPressed( DeviceInput(dev, neg, max(-l,0), tm) ); + ButtonPressed( DeviceInput(dev, pos, max(+l,0), tm) ); + } + */ } break; default: LOG->MapLog( "unknown input", @@ -515,10 +524,12 @@ void InputHandler_DInput::UpdateBuffered( DIDevice &device, const RageTimer &tm INPUTFILTER->UpdateCursorLocation((float)cursorPos.x,(float)cursorPos.y); break; case DIMOFS_Z: + // positive values: WheelUp + // negative values: WheelDown INPUTFILTER->UpdateMouseWheel(l); { up = MOUSE_WHEELUP; down = MOUSE_WHEELDOWN; - l = SCALE( int(evtbuf[i].dwData), -120.0f, 120.0f, 1.0f, -1.0f ); + l = SCALE( int(evtbuf[i].dwData), -WHEEL_DELTA, WHEEL_DELTA, 1.0f, -1.0f ); DeviceInput diUp = DeviceInput(dev, up, max(-l,0), tm); DeviceInput diDown = DeviceInput(dev, down, max(+l,0), tm); ButtonPressed( diUp ); diff --git a/src/archutils/Darwin/MouseDevice.cpp b/src/archutils/Darwin/MouseDevice.cpp index b968b0cfb9..12d5f6b886 100644 --- a/src/archutils/Darwin/MouseDevice.cpp +++ b/src/archutils/Darwin/MouseDevice.cpp @@ -60,6 +60,7 @@ void MouseDevice::AddElement( int usagePage, int usage, IOHIDElementCookie cooki m.y_max = iMax; break; case kHIDUsage_GD_Z: + case kHIDUsage_GD_Wheel: // also handle wheel m.z_axis = cookie; m.z_min = iMin; m.z_max = iMax; @@ -102,13 +103,19 @@ void MouseDevice::GetButtonPresses( vector& vPresses, IOHIDElementC { // todo: add mouse axis stuff -aj const Mouse& m = m_Mouse; + HRESULT result; + IOHIDEventStruct hidEvent; + // result = (*m_Interface)->getElementValue(hidDeviceInterface,cookie,&hidEvent); + if( m.x_axis == cookie ) { -// INPUTFILTER->UpdateCursorLocation(value,m.y_axis); + //INPUTFILTER->UpdateCursorLocation(value,m.y_axis); + LOG->Trace("Mouse X: Value = %i",value); } else if( m.y_axis == cookie ) { -// INPUTFILTER->UpdateCursorLocation(m.x_axis,value); + //INPUTFILTER->UpdateCursorLocation(m.x_axis,value); + LOG->Trace("Mouse Y: Value = %i",value); } else if( m.z_axis == cookie ) {