diff --git a/CMake/SetupFfmpeg.cmake b/CMake/SetupFfmpeg.cmake index b700b6753a..f10c7c14dd 100644 --- a/CMake/SetupFfmpeg.cmake +++ b/CMake/SetupFfmpeg.cmake @@ -22,6 +22,10 @@ list(APPEND FFMPEG_CONFIGURE "--enable-static" ) +if(CMAKE_POSITION_INDEPENDENT_CODE) + list(APPEND FFMPEG_CONFIGURE "--enable-pic") +endif() + if(MACOSX) # TODO: Remove these two items when Mac OS X StepMania builds in 64-bit. list(APPEND FFMPEG_CONFIGURE diff --git a/Themes/default/Languages/id.ini b/Themes/default/Languages/id.ini new file mode 100644 index 0000000000..3588dbb2d6 --- /dev/null +++ b/Themes/default/Languages/id.ini @@ -0,0 +1,266 @@ +[Screen] +HelpText=&BACK; Keluar &START; Select &SELECT; Pilihan &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Pindah + +[ScreenWithMenuElements] +HelpText=&BACK; Keluar &START; Select &MENULEFT;&MENURIGHT; Pindah +StageCounter=%s Stage +EventStageCounter=Stage %03i + +[ScreenTitleMenu] +HelpText=&BACK; Keluar &START; Select &MENUUP;&MENUDOWN; Pindah +Network OK=Jaringan OK +Offline=Luring +Connected to %s=Tersambung ke %s +CurrentGametype=Sedang bermain: %s +LifeDifficulty=Kesulitan Nyawa: %s +TimingDifficulty=Kesulitan Timing: %s +%i Lagu (%i Grup), %i Courses=%i Lagu (%i Grup), %i Kursus + +[ScreenTitleJoin] +HelpText=Tekan &START; untuk Bermain +HelpTextJoin=Tekan &START; untuk Bermain +HelpTextWait=Masukan Kredit! +EventMode=Modus Acara +JointPremiumMain=Joint Premium +JointPremiumSecondary=Dua pemain dapat bermain dengan satu kredit! +DoublesPremiumMain=Premium Dobel +DoublesPremiumSecondary=Bermain Dobel untuk satu kredit! + +[ScreenCaution] +HelpText=&START; Lanjut + +[ScreenDemonstration] +Demonstration=Demonstrasi +%s - %s [dari %s]=%s - %s\n[dari %s] + +[ScreenQuickSetupOverview] +Explanation=Setup Cepat memberikan cara mudah untuk mengatur ubahan-umum dan preferensi-preferensi berguna. + +[ScreenProfileLoad] +HelpText=... Memuat profile, silahkan tunggu ... + +[ScreenSelectProfile] +%d Lagu Dimainkan=%d Lagu telah dimainkan +%d Lagu Dimainkan=%d Lagu telah dimainkan +PressStart=Tekan &START; untuk bergabung. +HelpText=&MENUUP;&MENUDOWN; Ganti Profil &START; Pilih/Gabung &BACK; Cabut + +[ScreenSelectMaster] +HelpText=&BACK; Keluar &START; Pilih / Gabung &MENULEFT;&MENURIGHT; Pindah + +[ScreenSelectPlayMode] +HelpText=&BACK; Keluar &START; Pilih / Gabung &MENULEFT;&MENURIGHT; Pindah +EasyExplanation=Sebuah modus untuk Pemula. +HardExplanation= Untuk ahli. +OldNormalExplanation=Tak terlalu gampang, tak terlalu sulit. +NormalExplanation=Mainkan semua lagu favorit-mu! +RaveExplanation=Bertarung antar teman atau musuh. +NonstopExplanation=Beberapa lagu berturut-turut +OniExplanation=Sebuah tes skil yang sejati. +EndlessExplanation=Tak berhenti, terus berjalan. + +[ScreenSelectPlayStyle] +HelpText=&BACK; Keluar &START; Pilih &MENULEFT;&MENURIGHT; Pindah + +[ScreenGameInformation] +HelpText=&BACK; Keluar &START; Lewati + +[ScreenSelectMusic] +NEW!=BARU! +Press Start For Options=Tekan &START; untuk Pilihan +Entering Options=Memasuki Pilihan +HelpText=&BACK; Keluar &START; Pilih / Gabung &SELECT; Kode Ajaib &MENULEFT;&MENURIGHT; Pindah::&AUXWHITE;+[KEY] Sortir ke [KEY] +AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Ubah Kesulitan &SELECT;+&START; Sortir Cepat + +[ScreenSelectCourse] +HelpText=&BACK; Keluar &START; Pilih / Gabung &SELECT; Kode Ajaib &MENULEFT;&MENURIGHT; Pindah::&UP;&DOWN;&UP;&DOWN; untuk tipe course yang lain + +[ScreenOptions] +HelpText=&BACK; Keluar &START; Pilih &SELECT; Ke Atas &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Pindah +Disqualified=Skor akan didiskualifikasi! + +[ScreenStageInformation] +HelpText= + +[ScreenGameplay] +GiveUpAbortedText= +GiveUpStartText=Tekan dua kali &START; untuk mengakses menu +GiveUpBackText=Tekan dua kali &BACK; untuk mengakses menu +SkipSongText=Tekan dua kali &SELECT; untuk mengakses menu +HelpText= + +[PauseMenu] +continue_playing=Lanjutkan Bermain +end_course=Akhiri Course +forfeit_course=Tinggalkan Course +forfeit_song=Tinggalkan lagu +pause_count=Hitungan Tunda +restart_song=Mulai ulang Lagu +skip_song=Lewati Lagu + +[ScreenHeartEntry] +Enter Heart Rate=Masukan Detak Jantung +Song Length=Panjang Lagu +Heart Rate=Detak Jantung + +[ScreenEvaluation] +HelpText=&BACK; Keluar &START; Lanjutkan &MENULEFT;+&MENURIGHT; atau &SELECT; Ambil Gambar +LifeDifficulty=Kesulitan Nyawa: %s +TimingDifficulty=Kesulitan Timing: %s +MachineRecord=Rekor Mesin #%i! +PersonalRecord=Rekor Personal #%i! +ITG DP:=ITG DP: +MIGS DP:=MIGS DP: + +[ScreenContinue] +HelpText=&START; Advance Timer + +[OptionTitles] +AutoSetStyle=Auto Set Style +NotePosition=Posisi Not +ComboOnRolls=Rolls Increment Combo +ComboUnderField=Combo Under Field + +GameplayShowScore=Tunjukan Skor +GameplayShowStepsDisplay=Tunjukan Steps +ShowLotsaOptions=Kepadatan Opsi +LongFail=Panjang Kegagalan +FlashyCombo=Kombo Berkedip-kedip +GameplayFooter=Gameplay Footer +FancyUIBG=Latar Belakang UI Indah +TimingDisplay=Layar Timing + +[OptionExplanations] +AutoSetStyle=Memperbolehkan game untuk mengumpulan seluruh modus 1P dan 2P daripada satu style saja. Ini mungkin membutuhkan mulai ulang Stepmania (atau tekan Shift+F2). +NotePosition=Menentukan dimana reseptor panah diletakan pada saat bermain. +ComboOnRolls=Pilih apabila Gulir (Rolls) akan menambah Kombo atau tidak. Jika Anda mengubah pilihan ini, Anda butuh memuat ulang metrics-nya (via Shift+F2) supaya efek ini berlaku. +ComboUnderField=Menentukan Apabila Kombo harus terletak dibawah not atau tidak. + +GameplayShowScore=Tunjukan atau Sembunyikan layar skor saat bermain. +GameplayShowStepsDisplay=Tunjukan atau Sembunyikan Informasi step saat bermain. +ShowLotsaOptions=Pilih Berapa banyak garis/baris pilihan untuk dipilih dari. &oq;Few&cq; Tetapkan daftar menjadi minimal. &oq;Many&cq; tambah berbagai mod-mod pamer. +LongFail=Pilih antara gagal sm-scc "Panjang" orisinil atau gagal "Pendek" diadopsi nanti. +FlashyCombo=Menentukan apabila kilat kombo harus ditunjukan atau tidak. +GameplayFooter=Jika menyala, Munculkan footer yang menghalangi penglihatan akan datangnya panah untuk di beberapa negara (Bingkai skor DDR). +FancyUIBG=Mati/Nyalakan latar belakang UI indah. "Mati (Off)" disarankan untuk komputer yang lama. Ubahan akan berlaku pada layar awal. +TimingDisplay=Mati/Nyalakan layar segmen timing pada meteran progres lagu. + +ScoringType=Menetapkan metode skoring mana untuk digunakan. Jika Istimewa dipilih, Anda dapat memilih Modus Penskoran Istimewa (Special Scoring Mode) pada Opsi Tema. + +Speed=Atur kelajuan panah berjalan terhadap target. +Accel=Ubah cara panah mendekati target. +Effect=Ubah ukuran atau gerakan dari panah dan/atau target. +Appearance=Kontrol penglihatan dari panah. +Turn=Ubah koreografi step dengan mengatur posisi panah. +Insert=Tambah not injak kedalam koreografi step. +Holds=Ubah beberapa not injak menjadi not tahan. +Mines=Tambah atau singkirkan not ranjau. +PlayerAutoPlay=Notefield bermain dengan sendirinya. +ScoreDisplay=Ubah cara skor terlihat. +ProTiming=Ubah cara Judgement terlihat. +Scroll=Atur arah aliran panah untuk menemui target. +NoteSkins=Pilih tampilan panah-panah yang berbeda. +Handicap=Menyingkirkan not-not. Penggunaan ini akan membatalkan skor tertinggi. +Hide=Gelap (Dark) menyembunyikan reseptor. Buta (Blind) menyembunyikan judgement. Tirai (Cover) menyembunyikan latar belakang. +Persp=Ubah sudut pandang dari aliran panah. +Steps=Atur tingkat kesulitan dari step-step. +Characters=Orang-orang berdansa. +SaveToProfileHelp=Membutuhkan profil atau kartu memori (memory card). +MusicRateHelp=Mainkan musik pada tingkat yang lebih cepat. + +[StepsListDisplayRow StepsType] +Dance_Single=4 +Dance_Double=8 +Dance_Couple=8 +Dance_Solo=6 +Dance_Routine=8 +Dance_Threepanel=3 +Pump_Single=5 +Pump_Double=10 +Pump_Halfdouble=6 +Pump_Couple=5 +Pump_Routine=10 +Kb7_Single=7 +Ez2_Single=ES +Ez2_Double=ED +Ez2_Real=ER +Para_Single=PS +Ds3ddx_Single=XS +Bm_Single5=5 +Bm_Double5=10 +Bm_Single7=7 +Bm_Double7=14 +Maniax_Single=MS +Maniax_Double=MD +Techno_Single4=4 +Techno_Single5=5 +Techno_Single8=8 +Techno_Double4=D4 +Techno_Double5=D5 +Techno_Double8=D8 +Pnm_Five=5 +Pnm_Nine=9 +Guitar_Five=5 +Karaoke=V +Lights_Cabinet=! + +[ScreenHowToInstallSongs] +BodyHeader=Cara Mendapatkan dan Memasang Lagu untuk Stepmania +Finding Songs=Dimana untuk Mencari Lagu +Installing Songs=Cara Memasang Lagu +Importing Songs=Mengimpor dari instalasi2 Stepmania yang ada +Reload Songs=Muat ulang Lagu +Exit=Kembali ke Menu Awal + +Explanation-WhereToFind=Luncurkan sebuah laman web dengan informasi dalam mencari lagu untuk digunakan pada Stepmania. +Explanation-HowToInstall=Luncurkan sebuah Laman web dengan instruksi-instruksi pemasangan lagu. +Explanation-AdditionalFolders=Apabila anda memiliki instalasi Stepmania yang lain, Anda dapat menggunakan preferensi AdditionalFolders untuk memuatnya pada Stepmania 5. +Explanation-ReloadSongs=Muat ulang lagu-lagu. Ini dibutuhkan apabila Anda telah menambahkan/mengubah/menghapus lagu selagi Stepmania sedang berjalan. +Explanation-Exit=Kembali ke menu awal. + +[OptionNames] +Custom=Istimewa (Special) +Many=Banyak (Many) +Few=Sedikit (Few) +Normal=Normal +Lower=Rendah (Lower) +Short=Pendek (Short) +Long=Panjang (Long) + +[ScreenTestInput] +HelpText=Tahan &BACK; atau &START; untuk Keluar. + +[PaneDisplay] +Taps=Injak +Jumps=Loncat +Holds=Tahan +Mines=Ranjau +Hands=Tangan +Rolls=Gulir +Lifts=Angkat +Fakes=Palsu +S=S +V=V +A=A +F=F +C=C + +[ScreenMapControllers] +Exit=Keluar + +[ScreenGameOver] +GAME OVER=GAME OVER (Permainan Tamat) +Play again soon!=Main lagi nanti! + +[ScreenHowToPlay] +How To Play StepMania=Cara bermain StepMania +Information=Informasi + +Feet=Kaki Anda digungakan untuk bermain! +Tap=Saat panah menaik pada titik ini,\ninjak panel yang sesuai. +Jump=Injak pada kedua panel jika dua panah\nberbeda muncul bersamaan! +Miss=Jika Anda kelewat step-nya berulang kali, meteran \ndance Anda akan berkurang sampai\npermainan sudah tamat (Game Over)! + + +[Protiming] +MS=MD diff --git a/extern/CMakeProject-glew.cmake b/extern/CMakeProject-glew.cmake index 1608bb5770..413238286a 100644 --- a/extern/CMakeProject-glew.cmake +++ b/extern/CMakeProject-glew.cmake @@ -2,7 +2,7 @@ set(GLEW_SRC "glew-1.5.8/src/glew.c") source_group("" FILES ${GLEW_SRC}) -add_library("glew" ${GLEW_SRC}) +add_library("glew" STATIC ${GLEW_SRC}) set_property(TARGET "glew" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-json.cmake b/extern/CMakeProject-json.cmake index d0ca5cadac..5d35a9608e 100644 --- a/extern/CMakeProject-json.cmake +++ b/extern/CMakeProject-json.cmake @@ -16,7 +16,7 @@ list(APPEND JSON_HPP source_group("" FILES ${JSON_SRC} ${JSON_HPP}) -add_library("jsoncpp" ${JSON_SRC} ${JSON_HPP}) +add_library("jsoncpp" STATIC ${JSON_SRC} ${JSON_HPP}) set_property(TARGET "jsoncpp" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-lua.cmake b/extern/CMakeProject-lua.cmake index 9da0c100f2..4fe3984807 100644 --- a/extern/CMakeProject-lua.cmake +++ b/extern/CMakeProject-lua.cmake @@ -58,7 +58,7 @@ set(LUA_HPP source_group("" FILES ${LUA_SRC}) source_group("" FILES ${LUA_HPP}) -add_library("lua-5.1" ${LUA_SRC} ${LUA_HPP}) +add_library("lua-5.1" STATIC ${LUA_SRC} ${LUA_HPP}) set_property(TARGET "lua-5.1" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-mad.cmake b/extern/CMakeProject-mad.cmake index 28d0342977..1efcca537d 100644 --- a/extern/CMakeProject-mad.cmake +++ b/extern/CMakeProject-mad.cmake @@ -43,7 +43,7 @@ source_group("Source Files" FILES ${MAD_SRC}) source_group("Header Files" FILES ${MAD_HPP}) source_group("Data Files" FILES ${MAD_DAT}) -add_library("mad" ${MAD_SRC} ${MAD_HPP} ${MAD_DAT}) +add_library("mad" STATIC ${MAD_SRC} ${MAD_HPP} ${MAD_DAT}) set_property(TARGET "mad" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-ogg.cmake b/extern/CMakeProject-ogg.cmake index 8e4633ff6a..cf61849f9e 100644 --- a/extern/CMakeProject-ogg.cmake +++ b/extern/CMakeProject-ogg.cmake @@ -14,7 +14,7 @@ list(APPEND OGG_HPP source_group("Source Files" FILES ${OGG_SRC}) source_group("Header Files" FILES ${OGG_HPP}) -add_library("ogg" ${OGG_SRC} ${OGG_HPP} ${OGG_DAT}) +add_library("ogg" STATIC ${OGG_SRC} ${OGG_HPP} ${OGG_DAT}) set_property(TARGET "ogg" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-png.cmake b/extern/CMakeProject-png.cmake index 9c9633458b..1f9ca89dec 100644 --- a/extern/CMakeProject-png.cmake +++ b/extern/CMakeProject-png.cmake @@ -30,7 +30,7 @@ set(PNG_HPP source_group("" FILES ${PNG_SRC}) source_group("" FILES ${PNG_HPP}) -add_library("png" ${PNG_SRC} ${PNG_HPP}) +add_library("png" STATIC ${PNG_SRC} ${PNG_HPP}) set_property(TARGET "png" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-tomcrypt.cmake b/extern/CMakeProject-tomcrypt.cmake index bc86daa1dd..73b895e469 100644 --- a/extern/CMakeProject-tomcrypt.cmake +++ b/extern/CMakeProject-tomcrypt.cmake @@ -265,7 +265,7 @@ list(APPEND TOMCRYPT_HPP source_group("headers" FILES ${TOMCRYPT_HPP}) -add_library("tomcrypt" ${TOMCRYPT_SRC} ${TOMCRYPT_HPP}) +add_library("tomcrypt" STATIC ${TOMCRYPT_SRC} ${TOMCRYPT_HPP}) set_property(TARGET "tomcrypt" PROPERTY FOLDER "External Libraries") diff --git a/extern/CMakeProject-tommath.cmake b/extern/CMakeProject-tommath.cmake index 5d32d47808..9dd9fc1f05 100644 --- a/extern/CMakeProject-tommath.cmake +++ b/extern/CMakeProject-tommath.cmake @@ -131,7 +131,7 @@ list(APPEND TOMMATH_HPP source_group("" FILES ${TOMMATH_SRC}) source_group("" FILES ${TOMMATH_HPP}) -add_library("tommath" ${TOMMATH_SRC} ${TOMMATH_HPP}) +add_library("tommath" STATIC ${TOMMATH_SRC} ${TOMMATH_HPP}) set_property(TARGET "tommath" PROPERTY FOLDER "External Libraries") diff --git a/src/Actor.cpp b/src/Actor.cpp index 1173ea82c8..55016f2ddb 100644 --- a/src/Actor.cpp +++ b/src/Actor.cpp @@ -536,13 +536,13 @@ void Actor::PreDraw() // calculate actor properties break; case bounce: { - float fPercentOffset = RageFastSin( fPercentThroughEffect*PI ); + float fPercentOffset = RageFastSin( fPercentThroughEffect*PI ); tempState.pos += m_vEffectMagnitude * fPercentOffset; } break; case bob: { - float fPercentOffset = RageFastSin( fPercentThroughEffect*PI*2 ); + float fPercentOffset = RageFastSin( fPercentThroughEffect*PI*2 ); tempState.pos += m_vEffectMagnitude * fPercentOffset; } break; @@ -550,7 +550,7 @@ void Actor::PreDraw() // calculate actor properties { float fMinZoom = m_vEffectMagnitude[0]; float fMaxZoom = m_vEffectMagnitude[1]; - float fPercentOffset = RageFastSin( fPercentThroughEffect*PI ); + float fPercentOffset = RageFastSin( fPercentThroughEffect*PI ); float fZoom = SCALE( fPercentOffset, 0.f, 1.f, fMinZoom, fMaxZoom ); tempState.scale *= fZoom; diff --git a/src/ArrowEffects.cpp b/src/ArrowEffects.cpp index 88b814c9a0..78cd3e3859 100644 --- a/src/ArrowEffects.cpp +++ b/src/ArrowEffects.cpp @@ -396,7 +396,7 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float // TODO: Don't index by PlayerNumber. PerPlayerData &data = g_EffectData[pPlayerState->m_PlayerNumber]; - float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY), + float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY), EXPAND_MULTIPLIER_SCALE_FROM_LOW, EXPAND_MULTIPLIER_SCALE_FROM_HIGH, EXPAND_MULTIPLIER_SCALE_TO_LOW, EXPAND_MULTIPLIER_SCALE_TO_HIGH ); fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_EXPAND], @@ -495,7 +495,7 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float float fRads = acosf( fPositionBetween ); fRads += fYOffset * TORNADO_OFFSET_FREQUENCY / SCREEN_HEIGHT; - const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), TORNADO_OFFSET_SCALE_FROM_LOW, TORNADO_OFFSET_SCALE_FROM_HIGH, + const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), TORNADO_OFFSET_SCALE_FROM_LOW, TORNADO_OFFSET_SCALE_FROM_HIGH, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum] ); fPixelOffsetFromCenter += (fAdjustedPixelOffset - fRealPixelOffset) * fEffects[PlayerOptions::EFFECT_TORNADO]; diff --git a/src/BannerCache.cpp b/src/BannerCache.cpp index 6adee95b59..e7dad900eb 100644 --- a/src/BannerCache.cpp +++ b/src/BannerCache.cpp @@ -129,7 +129,7 @@ void BannerCache::LoadBanner( RString sBannerPath ) { /* The file doesn't exist. It's possible that the banner cache file is * missing, so try to create it. Don't do this first, for efficiency. */ - LOG->Trace( "Cached banner load of '%s' ('%s') failed, trying to cache ...", sBannerPath.c_str(), sCachePath.c_str() ); + //LOG->Trace( "Cached banner load of '%s' ('%s') failed, trying to cache ...", sBannerPath.c_str(), sCachePath.c_str() ); /* Skip the up-to-date check; it failed to load, so it can't be up * to date. */ @@ -138,7 +138,7 @@ void BannerCache::LoadBanner( RString sBannerPath ) } else { - LOG->Trace( "Cached banner load of '%s' ('%s') failed", sBannerPath.c_str(), sCachePath.c_str() ); + //LOG->Trace( "Cached banner load of '%s' ('%s') failed", sBannerPath.c_str(), sCachePath.c_str() ); return; } } @@ -272,7 +272,7 @@ RageTextureID BannerCache::LoadCachedBanner( RString sBannerPath ) if( sBannerPath == "" ) return ID; - LOG->Trace( "BannerCache::LoadCachedBanner(%s): %s", sBannerPath.c_str(), ID.filename.c_str() ); + //LOG->Trace( "BannerCache::LoadCachedBanner(%s): %s", sBannerPath.c_str(), ID.filename.c_str() ); /* Hack: make sure Banner::Load doesn't change our return value and end up * reloading. */ @@ -308,8 +308,8 @@ RageTextureID BannerCache::LoadCachedBanner( RString sBannerPath ) if( TEXTUREMAN->IsTextureRegistered(ID) ) return ID; /* It's all set. */ - LOG->Trace( "Loading banner texture %s; src %ix%i; image %ix%i", - ID.filename.c_str(), iSourceWidth, iSourceHeight, pImage->w, pImage->h ); + //LOG->Trace( "Loading banner texture %s; src %ix%i; image %ix%i", + // ID.filename.c_str(), iSourceWidth, iSourceHeight, pImage->w, pImage->h ); RageTexture *pTexture = new BannerTexture( ID, pImage, iSourceWidth, iSourceHeight ); ID.Policy = RageTextureID::TEX_VOLATILE; diff --git a/src/CubicSpline.cpp b/src/CubicSpline.cpp index 443d995f10..d4dce0ccc6 100644 --- a/src/CubicSpline.cpp +++ b/src/CubicSpline.cpp @@ -413,8 +413,8 @@ void CubicSpline::p_and_tfrac_from_t(float t, bool loop, size_t& p, float& tfrac if(loop) { float max_t= static_cast(m_points.size()); - while(t >= max_t) { t-= max_t; } - while(t < 0.0f) { t+= max_t; } + t= std::fmod(t, max_t); + if(t < 0.0f) { t+= max_t; } p= static_cast(t); tfrac= t - static_cast(p); } diff --git a/src/GameLoop.cpp b/src/GameLoop.cpp index 7b1366e46a..f88d9c1609 100644 --- a/src/GameLoop.cpp +++ b/src/GameLoop.cpp @@ -169,6 +169,10 @@ namespace new_screen= after_screen; } } + if(!SCREENMAN->IsScreenNameValid(new_screen)) + { + new_screen= "ScreenInitialScreenIsInvalid"; + } SCREENMAN->SetNewScreen(new_screen); g_NewTheme = RString(); diff --git a/src/NotesLoaderSM.cpp b/src/NotesLoaderSM.cpp index 0338fccf02..2300a3095a 100644 --- a/src/NotesLoaderSM.cpp +++ b/src/NotesLoaderSM.cpp @@ -1102,7 +1102,7 @@ bool SMLoader::LoadNoteDataFromSimfile( const RString &path, Steps &out ) bool SMLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache ) { - LOG->Trace( "Song::LoadFromSMFile(%s)", sPath.c_str() ); + //LOG->Trace( "Song::LoadFromSMFile(%s)", sPath.c_str() ); MsdFile msd; if( !msd.ReadFile( sPath, true ) ) // unescape diff --git a/src/NotesLoaderSSC.cpp b/src/NotesLoaderSSC.cpp index d44fbccb0e..a66c1ef363 100644 --- a/src/NotesLoaderSSC.cpp +++ b/src/NotesLoaderSSC.cpp @@ -940,7 +940,7 @@ bool SSCLoader::LoadNoteDataFromSimfile( const RString & cachePath, Steps &out ) bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache ) { - LOG->Trace( "Song::LoadFromSSCFile(%s)", sPath.c_str() ); + //LOG->Trace( "Song::LoadFromSSCFile(%s)", sPath.c_str() ); MsdFile msd; if( !msd.ReadFile( sPath, true ) ) diff --git a/src/RageBitmapTexture.cpp b/src/RageBitmapTexture.cpp index 3654431f88..79b19b64dd 100644 --- a/src/RageBitmapTexture.cpp +++ b/src/RageBitmapTexture.cpp @@ -348,10 +348,10 @@ void RageBitmapTexture::Create() if( actualID.bStretch ) sProperties += "stretch "; if( actualID.bDither ) sProperties += "dither "; sProperties.erase( sProperties.size()-1 ); - LOG->Trace( "RageBitmapTexture: Loaded '%s' (%ux%u); %s, source %d,%d; image %d,%d.", - actualID.filename.c_str(), GetTextureWidth(), GetTextureHeight(), - sProperties.c_str(), m_iSourceWidth, m_iSourceHeight, - m_iImageWidth, m_iImageHeight ); + //LOG->Trace( "RageBitmapTexture: Loaded '%s' (%ux%u); %s, source %d,%d; image %d,%d.", + // actualID.filename.c_str(), GetTextureWidth(), GetTextureHeight(), + // sProperties.c_str(), m_iSourceWidth, m_iSourceHeight, + // m_iImageWidth, m_iImageHeight ); } void RageBitmapTexture::Destroy() diff --git a/src/RageMath.cpp b/src/RageMath.cpp index 4f403e34d5..5e85551cb2 100644 --- a/src/RageMath.cpp +++ b/src/RageMath.cpp @@ -595,60 +595,47 @@ void RageMatrixTranspose( RageMatrix* pOut, const RageMatrix* pIn ) pOut->m[j][i] = pIn->m[i][j]; } -float RageFastSin( float x ) +static const unsigned int sine_table_size= 1024; +static const unsigned int sine_index_mod= sine_table_size * 2; +static const double sine_table_index_mult= static_cast(sine_index_mod) / (PI*2); +static float sine_table[sine_table_size]; +struct sine_initter { - // from 0 to PI - // sizeof(table) == 4096 == one page of memory in Windows - static float table[1024]; - - static bool bInited = false; - if( !bInited ) + sine_initter() { - bInited = true; - for( unsigned i=0; i=0 && fRemainder<=1 ); - - float fValue[ARRAYLEN(iSampleIndex)]; - for( unsigned i=0; i= int(ARRAYLEN(table)) ) // PI <= iSample < 2*PI - { - // sin(x) == -sin(PI+x) - iSample -= ARRAYLEN(table); - DEBUG_ASSERT( iSample>=0 && iSample(index); + int second_index= (first_index + 1) % sine_index_mod; + float remainder= index - first_index; + first_index%= sine_index_mod; + float first= 0.0f; + float second= 0.0f; +#define SET_SAMPLE(sample) \ + if(sample##_index >= sine_table_size) \ + { \ + sample= -sine_table[sample##_index - sine_table_size]; \ + } \ + else \ + { \ + sample= sine_table[sample##_index]; \ } - - return SCALE( fRemainder, 0.0f, 1.0f, fValue[0], fValue[1] ); + SET_SAMPLE(first); + SET_SAMPLE(second); +#undef SET_SAMPLE + float result= lerp(remainder, first, second); + return result; } float RageFastCos( float x ) diff --git a/src/RageTextureManager.cpp b/src/RageTextureManager.cpp index 7c13995945..a5bad909f4 100644 --- a/src/RageTextureManager.cpp +++ b/src/RageTextureManager.cpp @@ -233,7 +233,7 @@ void RageTextureManager::UnloadTexture( RageTexture *t ) void RageTextureManager::DeleteTexture( RageTexture *t ) { ASSERT( t->m_iRefCount == 0 ); - LOG->Trace( "RageTextureManager: deleting '%s'.", t->GetID().filename.c_str() ); + //LOG->Trace( "RageTextureManager: deleting '%s'.", t->GetID().filename.c_str() ); map::iterator id_entry= m_texture_ids_by_pointer.find(t); diff --git a/src/ScreenManager.cpp b/src/ScreenManager.cpp index 9df8a92115..0d52c6c0f8 100644 --- a/src/ScreenManager.cpp +++ b/src/ScreenManager.cpp @@ -642,7 +642,7 @@ void ScreenManager::PrepareScreen( const RString &sScreenName ) } */ - TEXTUREMAN->DiagnosticOutput(); + //TEXTUREMAN->DiagnosticOutput(); } void ScreenManager::GroupScreen( const RString &sScreenName ) diff --git a/src/arch/InputHandler/InputHandler_Linux_Event.cpp b/src/arch/InputHandler/InputHandler_Linux_Event.cpp index 6ea2baa374..fc3b34a6f4 100644 --- a/src/arch/InputHandler/InputHandler_Linux_Event.cpp +++ b/src/arch/InputHandler/InputHandler_Linux_Event.cpp @@ -272,7 +272,7 @@ EventDevice::~EventDevice() InputHandler_Linux_Event::InputHandler_Linux_Event() { - m_NextDevice = DEVICE_JOY1; + m_NextDevice = DEVICE_JOY10; m_bDevicesChanged = false; if(LINUXINPUT == NULL) LINUXINPUT = new LinuxInputManager;