diff --git a/Project.xml b/Project.xml index f729f5bf7..d7c38fa32 100644 --- a/Project.xml +++ b/Project.xml @@ -2,7 +2,7 @@ - + @@ -25,6 +25,9 @@ + + + @@ -93,7 +96,10 @@ - - - + + + + + + diff --git a/art/NintendoSDK_Application.bmp b/art/NintendoSDK_Application.bmp new file mode 100644 index 000000000..ee833a251 Binary files /dev/null and b/art/NintendoSDK_Application.bmp differ diff --git a/art/build-lime-SWITCH.bat b/art/build-lime-SWITCH.bat new file mode 100644 index 000000000..cfd836cf0 --- /dev/null +++ b/art/build-lime-SWITCH.bat @@ -0,0 +1,27 @@ +@echo off +cd .. +@echo on +echo REBUILDING LIME FOR EXPORT (VERBOSE) +@echo off +color 0b +@echo on +lime rebuild windows -clean -v +@echo off +color 0a +@echo on +lime rebuild switch -clean -v +@echo off +color 0e +@echo on +lime rebuild tools -clean -v +echo HOPE AND PRAY... +@echo off +color 0a +@echo on +echo BUILDING GAME +lime build switch -final -v +@echo off +color 0b +@echo on +echo NSP FILE CREATED +pause \ No newline at end of file diff --git a/art/iconSwitch.png b/art/iconSwitch.png new file mode 100644 index 000000000..c80a83f96 Binary files /dev/null and b/art/iconSwitch.png differ diff --git a/assets/data/south/south.json b/assets/data/south/south.json index 2b4b02f09..f69498db9 100644 --- a/assets/data/south/south.json +++ b/assets/data/south/south.json @@ -1 +1,2 @@ + {"song":{"song":"South","notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[11636.818181818182,3,0],[11999.818181818182,3,0],[12363.818181818182,0,0],[12545.818181818182,3,0],[12726.818181818182,2,0],[12908.818181818182,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13101.818181818182,0,0],[13454.818181818182,1,0],[13817.818181818182,3,0],[13999.818181818182,3,0],[14181.818181818182,3,200]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14545.818181818182,3,0],[14908.818181818182,3,0],[15272.818181818182,3,0],[15454.818181818182,2,0],[15636.818181818182,0,0],[15817.818181818182,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16008.818181818182,0,0],[16363.818181818182,0,0],[16726.818181818184,2,0],[17090.818181818184,0,0],[17272.818181818184,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17455,3,0],[17818,3,0],[18182,0,0],[18364,3,0],[18545,2,0],[18727,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18920,0,0],[19273,1,0],[19636,3,0],[19818,3,0],[20000,3,200]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20364,3,0],[20727,3,0],[21091,3,0],[21273,2,0],[21455,0,0],[21636,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21827,0,0],[22182,0,0],[22545,2,0],[22909,0,0],[23091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[23273,2,0],[23455,1,0],[23636,0,0],[23818,0,0],[23909,3,0],[24000,2,0],[24182,0,0],[24364,2,0],[24545,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24734,2,0],[25091,2,0],[25455,2,0],[25636,1,0],[25818,0,0],[26000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26193,0,0],[26545,0,0],[26727,0,0],[26818,2,0],[26909,3,0],[27000,0,0],[27273,1,0],[27455,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27648,2,0],[28000,2,0],[28364,2,0],[28545,3,0],[28727,0,0],[28909,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29091.181818181816,2,0],[29273.181818181816,1,0],[29454.181818181816,0,0],[29636.181818181816,0,0],[29727.181818181816,3,0],[29818.181818181816,2,0],[30000.181818181816,0,0],[30182.181818181816,2,0],[30363.181818181816,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30552.181818181816,2,0],[30909.181818181816,2,0],[31273.181818181816,2,0],[31454.181818181816,1,0],[31636.181818181816,0,0],[31818.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32011.181818181816,0,0],[32363.181818181816,0,0],[32545.181818181816,0,0],[32636.181818181816,2,0],[32727.181818181816,3,0],[32818.181818181816,0,0],[33091.181818181816,1,0],[33273.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33466.181818181816,2,0],[33818.181818181816,2,0],[34182.181818181816,2,0],[34363.181818181816,3,0],[34545.181818181816,0,0],[34727.181818181816,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34918,2,0],[35091,3,0],[35273,0,0],[35455,2,0],[35636,3,0],[35818,0,0],[36000,2,0],[36182,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36380,0,0],[36545,2,0],[36727,3,0],[36909,0,0],[37091,0,0],[37273,3,0],[37455,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37834,2,0],[38000,3,0],[38182,0,0],[38364,2,0],[38545,3,0],[38727,0,0],[38909,2,0],[39091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[39284,0,0],[39727,3,0],[39909,0,0],[40000,3,0],[40182,0,0],[40364,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40736.181818181816,2,0],[40909.181818181816,3,0],[41091.181818181816,0,0],[41273.181818181816,2,0],[41454.181818181816,3,0],[41636.181818181816,0,0],[41818.181818181816,2,0],[42000.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42198.181818181816,0,0],[42363.181818181816,2,0],[42545.181818181816,3,0],[42727.181818181816,0,0],[42909.181818181816,0,0],[43091.181818181816,3,0],[43273.181818181816,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43652.181818181816,2,0],[43818.181818181816,3,0],[44000.181818181816,0,0],[44182.181818181816,2,0],[44363.181818181816,3,0],[44545.181818181816,0,0],[44727.181818181816,2,0],[44909.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45102.181818181816,0,0],[45545.181818181816,3,0],[45727.181818181816,0,0],[45818.181818181816,3,0],[46000.181818181816,0,0],[46182.181818181816,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46554.818181818184,0,0],[46817.818181818184,3,0],[46908.818181818184,1,0],[47181.818181818184,0,0],[47363.818181818184,3,0],[47454.818181818184,1,0],[47726.818181818184,2,0],[47908.818181818184,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48011.818181818184,0,0],[48181.818181818184,2,0],[48363.818181818184,3,0],[48545.818181818184,0,0],[48726.818181818184,3,0],[48908.818181818184,2,0],[49090.818181818184,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49545,3,0],[49455,0,0],[49636,2,0],[49818,3,0],[50000,0,0],[50182,2,0],[50364,3,0],[50545,0,0],[50636,3,0],[50727,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50914,1,0],[51273,0,0],[51455,3,0],[51727,2,0],[51909,3,0],[52091,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52373,0,0],[52636,3,0],[52727,1,0],[53000,0,0],[53182,3,0],[53273,1,0],[53545,2,0],[53727,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53830,0,0],[54000,2,0],[54182,3,0],[54364,0,0],[54545,3,0],[54727,2,0],[54909,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55363.181818181816,3,0],[55273.181818181816,0,0],[55454.181818181816,2,0],[55636.181818181816,3,0],[55818.181818181816,0,0],[56000.181818181816,2,0],[56182.181818181816,3,0],[56363.181818181816,0,0],[56454.181818181816,3,0],[56545.181818181816,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56732.181818181816,1,0],[57091.181818181816,0,0],[57273.181818181816,3,0],[57545.181818181816,2,0],[57727.181818181816,3,0],[57909.181818181816,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58182,3,0],[58545,3,0],[59000,2,0],[59091,0,0],[58727,1,0],[59364,1,0],[59455,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[59657,0,272.7272727272727],[60000,2,0],[60364,2,0],[60545,2,0],[60727,2,181.8181818181818]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61100,2,0],[61455,2,0],[61636,3,0],[61818,1,0],[62000,0,0],[62182,3,0],[62364,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62550,0,0],[63000,0,0],[63727,0,0],[63364,0,0],[63364,7,0],[63545,3,0],[63818,2,0],[63636,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64000.181818181816,3,0],[64363.181818181816,3,0],[64818.181818181816,2,0],[64909.181818181816,0,0],[64545.181818181816,1,0],[65182.181818181816,1,0],[65273.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65475.181818181816,0,272.7272727272727],[65818.18181818182,2,0],[66182.18181818182,2,0],[66363.18181818182,2,0],[66545.18181818182,2,181.8181818181818]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66918.18181818182,2,0],[67273.18181818182,2,0],[67454.18181818182,3,0],[67636.18181818182,1,0],[67818.18181818182,0,0],[68000.18181818182,3,0],[68182.18181818182,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68368.18181818182,0,0],[68818.18181818182,0,0],[69545.18181818182,0,0],[69182.18181818182,0,0],[69182.18181818182,7,0],[69363.18181818182,3,0],[69636.18181818182,2,0],[69454.18181818182,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69825,2,0],[70000,3,0],[70273,0,0],[70364,3,0],[70545,2,0],[70636,0,0],[71000,2,0],[70727,3,0],[71091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[71280,2,0],[71636,2,0],[71818,0,0],[72091,2,0],[72273,3,0],[72364,0,0],[72545,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72732,0,0],[73091,0,0],[73273,0,0],[73455,2,0],[73364,3,0],[73636,3,0],[73818,2,0],[74000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74195,2,0],[74364,3,0],[74545,2,0],[74727,0,0],[74909,1,0],[75091,3,0],[75273,0,0],[75455,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[75643.18181818182,2,0],[75818.18181818182,3,0],[76091.18181818182,0,0],[76182.18181818182,3,0],[76363.18181818182,2,0],[76454.18181818182,0,0],[76818.18181818182,2,0],[76545.18181818182,3,0],[76909.18181818182,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77098.18181818182,2,0],[77454.18181818182,2,0],[77636.18181818182,0,0],[77909.18181818182,2,0],[78091.18181818182,3,0],[78182.18181818182,0,0],[78363.18181818182,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78550.18181818182,0,0],[78909.18181818182,0,0],[79091.18181818182,0,0],[79273.18181818182,2,0],[79182.18181818182,3,0],[79454.18181818182,3,0],[79636.18181818182,2,0],[79818.18181818182,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80013.18181818182,2,0],[80182.18181818182,3,0],[80363.18181818182,2,0],[80545.18181818182,0,0],[80727.18181818182,1,0],[80909.18181818182,3,0],[81091.18181818182,0,0],[81273.18181818182,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]}],"bpm":165,"sections":0,"needsVoices":true,"player1":"bf","player2":"spooky","sectionLengths":[],"speed":1.5000000000000004},"bpm":165,"sections":60,"notes":[{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[11636.818181818182,3,0],[11999.818181818182,3,0],[12363.818181818182,0,0],[12545.818181818182,3,0],[12726.818181818182,2,0],[12908.818181818182,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[13101.818181818182,0,0],[13454.818181818182,1,0],[13817.818181818182,3,0],[13999.818181818182,3,0],[14181.818181818182,3,200]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[14545.818181818182,3,0],[14908.818181818182,3,0],[15272.818181818182,3,0],[15454.818181818182,2,0],[15636.818181818182,0,0],[15817.818181818182,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[16008.818181818182,0,0],[16363.818181818182,0,0],[16726.818181818184,2,0],[17090.818181818184,0,0],[17272.818181818184,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[17455,3,0],[17818,3,0],[18182,0,0],[18364,3,0],[18545,2,0],[18727,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[18920,0,0],[19273,1,0],[19636,3,0],[19818,3,0],[20000,3,200]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[20364,3,0],[20727,3,0],[21091,3,0],[21273,2,0],[21455,0,0],[21636,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[21827,0,0],[22182,0,0],[22545,2,0],[22909,0,0],[23091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[23273,2,0],[23455,1,0],[23636,0,0],[23818,0,0],[23909,3,0],[24000,2,0],[24182,0,0],[24364,2,0],[24545,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[24734,2,0],[25091,2,0],[25455,2,0],[25636,1,0],[25818,0,0],[26000,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[26193,0,0],[26545,0,0],[26727,0,0],[26818,2,0],[26909,3,0],[27000,0,0],[27273,1,0],[27455,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[27648,2,0],[28000,2,0],[28364,2,0],[28545,3,0],[28727,0,0],[28909,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[29091.181818181816,2,0],[29273.181818181816,1,0],[29454.181818181816,0,0],[29636.181818181816,0,0],[29727.181818181816,3,0],[29818.181818181816,2,0],[30000.181818181816,0,0],[30182.181818181816,2,0],[30363.181818181816,1,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[30552.181818181816,2,0],[30909.181818181816,2,0],[31273.181818181816,2,0],[31454.181818181816,1,0],[31636.181818181816,0,0],[31818.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[32011.181818181816,0,0],[32363.181818181816,0,0],[32545.181818181816,0,0],[32636.181818181816,2,0],[32727.181818181816,3,0],[32818.181818181816,0,0],[33091.181818181816,1,0],[33273.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[33466.181818181816,2,0],[33818.181818181816,2,0],[34182.181818181816,2,0],[34363.181818181816,3,0],[34545.181818181816,0,0],[34727.181818181816,1,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[34918,2,0],[35091,3,0],[35273,0,0],[35455,2,0],[35636,3,0],[35818,0,0],[36000,2,0],[36182,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[36380,0,0],[36545,2,0],[36727,3,0],[36909,0,0],[37091,0,0],[37273,3,0],[37455,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[37834,2,0],[38000,3,0],[38182,0,0],[38364,2,0],[38545,3,0],[38727,0,0],[38909,2,0],[39091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[39284,0,0],[39727,3,0],[39909,0,0],[40000,3,0],[40182,0,0],[40364,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[40736.181818181816,2,0],[40909.181818181816,3,0],[41091.181818181816,0,0],[41273.181818181816,2,0],[41454.181818181816,3,0],[41636.181818181816,0,0],[41818.181818181816,2,0],[42000.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[42198.181818181816,0,0],[42363.181818181816,2,0],[42545.181818181816,3,0],[42727.181818181816,0,0],[42909.181818181816,0,0],[43091.181818181816,3,0],[43273.181818181816,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[43652.181818181816,2,0],[43818.181818181816,3,0],[44000.181818181816,0,0],[44182.181818181816,2,0],[44363.181818181816,3,0],[44545.181818181816,0,0],[44727.181818181816,2,0],[44909.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[45102.181818181816,0,0],[45545.181818181816,3,0],[45727.181818181816,0,0],[45818.181818181816,3,0],[46000.181818181816,0,0],[46182.181818181816,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[46554.818181818184,0,0],[46817.818181818184,3,0],[46908.818181818184,1,0],[47181.818181818184,0,0],[47363.818181818184,3,0],[47454.818181818184,1,0],[47726.818181818184,2,0],[47908.818181818184,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[48011.818181818184,0,0],[48181.818181818184,2,0],[48363.818181818184,3,0],[48545.818181818184,0,0],[48726.818181818184,3,0],[48908.818181818184,2,0],[49090.818181818184,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[49545,3,0],[49455,0,0],[49636,2,0],[49818,3,0],[50000,0,0],[50182,2,0],[50364,3,0],[50545,0,0],[50636,3,0],[50727,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[50914,1,0],[51273,0,0],[51455,3,0],[51727,2,0],[51909,3,0],[52091,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[52373,0,0],[52636,3,0],[52727,1,0],[53000,0,0],[53182,3,0],[53273,1,0],[53545,2,0],[53727,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[53830,0,0],[54000,2,0],[54182,3,0],[54364,0,0],[54545,3,0],[54727,2,0],[54909,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[55363.181818181816,3,0],[55273.181818181816,0,0],[55454.181818181816,2,0],[55636.181818181816,3,0],[55818.181818181816,0,0],[56000.181818181816,2,0],[56182.181818181816,3,0],[56363.181818181816,0,0],[56454.181818181816,3,0],[56545.181818181816,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[56732.181818181816,1,0],[57091.181818181816,0,0],[57273.181818181816,3,0],[57545.181818181816,2,0],[57727.181818181816,3,0],[57909.181818181816,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[58182,3,0],[58545,3,0],[59000,2,0],[59091,0,0],[58727,1,0],[59364,1,0],[59455,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[59657,0,272.7272727272727],[60000,2,0],[60364,2,0],[60545,2,0],[60727,2,181.8181818181818]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[61100,2,0],[61455,2,0],[61636,3,0],[61818,1,0],[62000,0,0],[62182,3,0],[62364,0,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[62550,0,0],[63000,0,0],[63727,0,0],[63364,0,0],[63364,7,0],[63545,3,0],[63818,2,0],[63636,5,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[64000.181818181816,3,0],[64363.181818181816,3,0],[64818.181818181816,2,0],[64909.181818181816,0,0],[64545.181818181816,1,0],[65182.181818181816,1,0],[65273.181818181816,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[65475.181818181816,0,272.7272727272727],[65818.18181818182,2,0],[66182.18181818182,2,0],[66363.18181818182,2,0],[66545.18181818182,2,181.8181818181818]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[66918.18181818182,2,0],[67273.18181818182,2,0],[67454.18181818182,3,0],[67636.18181818182,1,0],[67818.18181818182,0,0],[68000.18181818182,3,0],[68182.18181818182,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[68368.18181818182,0,0],[68818.18181818182,0,0],[69545.18181818182,0,0],[69182.18181818182,0,0],[69182.18181818182,7,0],[69363.18181818182,3,0],[69636.18181818182,2,0],[69454.18181818182,5,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[69825,2,0],[70000,3,0],[70273,0,0],[70364,3,0],[70545,2,0],[70636,0,0],[71000,2,0],[70727,3,0],[71091,3,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[71280,2,0],[71636,2,0],[71818,0,0],[72091,2,0],[72273,3,0],[72364,0,0],[72545,2,0]]},{"mustHitSection":false,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[72732,0,0],[73091,0,0],[73273,0,0],[73455,2,0],[73364,3,0],[73636,3,0],[73818,2,0],[74000,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[74195,2,0],[74364,3,0],[74545,2,0],[74727,0,0],[74909,1,0],[75091,3,0],[75273,0,0],[75455,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[75643.18181818182,2,0],[75818.18181818182,3,0],[76091.18181818182,0,0],[76182.18181818182,3,0],[76363.18181818182,2,0],[76454.18181818182,0,0],[76818.18181818182,2,0],[76545.18181818182,3,0],[76909.18181818182,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[77098.18181818182,2,0],[77454.18181818182,2,0],[77636.18181818182,0,0],[77909.18181818182,2,0],[78091.18181818182,3,0],[78182.18181818182,0,0],[78363.18181818182,2,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[78550.18181818182,0,0],[78909.18181818182,0,0],[79091.18181818182,0,0],[79273.18181818182,2,0],[79182.18181818182,3,0],[79454.18181818182,3,0],[79636.18181818182,2,0],[79818.18181818182,0,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[[80013.18181818182,2,0],[80182.18181818182,3,0],[80363.18181818182,2,0],[80545.18181818182,0,0],[80727.18181818182,1,0],[80909.18181818182,3,0],[81091.18181818182,0,0],[81273.18181818182,3,0]]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]},{"mustHitSection":true,"typeOfSection":0,"lengthInSteps":16,"sectionNotes":[]}]} \ No newline at end of file diff --git a/source/Alphabet.hx b/source/Alphabet.hx index 9824e2f35..a5e1d9396 100644 --- a/source/Alphabet.hx +++ b/source/Alphabet.hx @@ -48,6 +48,7 @@ class Alphabet extends FlxSpriteGroup this.text = text; isBold = bold; + if (text != "") { if (typed) @@ -77,7 +78,8 @@ class Alphabet extends FlxSpriteGroup lastWasSpace = true; } - if (AlphaCharacter.alphabet.contains(character.toLowerCase())) + if (AlphaCharacter.alphabet.indexOf(character.toLowerCase()) != -1) + //if (AlphaCharacter.alphabet.contains(character.toLowerCase())) { if (lastSprite != null) { @@ -121,6 +123,7 @@ class Alphabet extends FlxSpriteGroup _finalText = text; doSplitWords(); + // trace(arrayShit); var loopNum:Int = 0; @@ -137,6 +140,7 @@ class Alphabet extends FlxSpriteGroup xPosResetted = true; xPos = 0; curRow += 1; + } if (splitWords[loopNum] == " ") @@ -144,9 +148,17 @@ class Alphabet extends FlxSpriteGroup lastWasSpace = true; } + #if (haxe >= "4.0.0") var isNumber:Bool = AlphaCharacter.numbers.contains(splitWords[loopNum]); var isSymbol:Bool = AlphaCharacter.symbols.contains(splitWords[loopNum]); - if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()) || isNumber || isSymbol) + #else + var isNumber:Bool = AlphaCharacter.numbers.indexOf(splitWords[loopNum]) != -1; + var isSymbol:Bool = AlphaCharacter.symbols.indexOf(splitWords[loopNum]) != -1; + #end + + if (AlphaCharacter.alphabet.indexOf(splitWords[loopNum].toLowerCase()) != -1 || isNumber || isSymbol) + //if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()) || isNumber || isSymbol) + { if (lastSprite != null && !xPosResetted) { diff --git a/source/Controls.hx b/source/Controls.hx index b5715a614..b251ac61d 100644 --- a/source/Controls.hx +++ b/source/Controls.hx @@ -108,7 +108,11 @@ class Controls extends FlxActionSet var _pause = new FlxActionDigital(Action.PAUSE); var _reset = new FlxActionDigital(Action.RESET); + #if (haxe >= "4.0.0") var byName:Map = []; + #else + var byName:Map = new Map(); + #end public var gamepadsAdded:Array = []; public var keyboardScheme = KeyboardScheme.None; @@ -193,6 +197,7 @@ class Controls extends FlxActionSet inline function get_RESET() return _reset.check(); + #if (haxe >= "4.0.0") public function new(name, scheme = None) { super(name); @@ -219,6 +224,36 @@ class Controls extends FlxActionSet setKeyboardScheme(scheme, false); } + #else + public function new(name, scheme:KeyboardScheme = null) + { + super(name); + + add(_up); + add(_left); + add(_right); + add(_down); + add(_upP); + add(_leftP); + add(_rightP); + add(_downP); + add(_upR); + add(_leftR); + add(_rightR); + add(_downR); + add(_accept); + add(_back); + add(_pause); + add(_reset); + + for (action in digitalActions) + byName[action.name] = action; + + if (scheme == null) + scheme = None; + setKeyboardScheme(scheme, false); + } + #end override function update() { @@ -278,7 +313,7 @@ class Controls extends FlxActionSet * @param func * @return ->Void) */ - function forEachBound(control:Control, func:(FlxActionDigital, FlxInputState) -> Void) + function forEachBound(control:Control, func:FlxActionDigital->FlxInputState->Void) { switch (control) { @@ -332,6 +367,7 @@ class Controls extends FlxActionSet public function copyFrom(controls:Controls, ?device:Device) { + #if (haxe >= "4.0.0") for (name => action in controls.byName) { for (input in action.inputs) @@ -340,14 +376,31 @@ class Controls extends FlxActionSet byName[name].add(cast input); } } + #else + for (name in controls.byName.keys()) + { + var action = controls.byName[name]; + for (input in action.inputs) + { + if (device == null || isDevice(input, device)) + byName[name].add(cast input); + } + } + #end switch (device) { case null: // add all + #if (haxe >= "4.0.0") for (gamepad in controls.gamepadsAdded) if (!gamepadsAdded.contains(gamepad)) gamepadsAdded.push(gamepad); + #else + for (gamepad in controls.gamepadsAdded) + if (gamepadsAdded.indexOf(gamepad) == -1) + gamepadsAdded.push(gamepad); + #end mergeKeyboardScheme(controls.keyboardScheme); @@ -383,7 +436,11 @@ class Controls extends FlxActionSet */ public function bindKeys(control:Control, keys:Array) { + #if (haxe >= "4.0.0") inline forEachBound(control, (action, state) -> addKeys(action, keys, state)); + #else + forEachBound(control, function(action, state) addKeys(action, keys, state)); + #end } /** @@ -392,7 +449,11 @@ class Controls extends FlxActionSet */ public function unbindKeys(control:Control, keys:Array) { + #if (haxe >= "4.0.0") inline forEachBound(control, (action, _) -> removeKeys(action, keys)); + #else + forEachBound(control, function(action, _) removeKeys(action, keys)); + #end } inline static function addKeys(action:FlxActionDigital, keys:Array, state:FlxInputState) @@ -418,6 +479,8 @@ class Controls extends FlxActionSet removeKeyboard(); keyboardScheme = scheme; + + #if (haxe >= "4.0.0") switch (scheme) { case Solo: @@ -450,6 +513,40 @@ class Controls extends FlxActionSet case None: // nothing case Custom: // nothing } + #else + switch (scheme) + { + case Solo: + bindKeys(Control.UP, [W, FlxKey.UP]); + bindKeys(Control.DOWN, [S, FlxKey.DOWN]); + bindKeys(Control.LEFT, [A, FlxKey.LEFT]); + bindKeys(Control.RIGHT, [D, FlxKey.RIGHT]); + bindKeys(Control.ACCEPT, [Z, SPACE, ENTER]); + bindKeys(Control.BACK, [BACKSPACE, ESCAPE]); + bindKeys(Control.PAUSE, [P, ENTER, ESCAPE]); + bindKeys(Control.RESET, [R]); + case Duo(true): + bindKeys(Control.UP, [W]); + bindKeys(Control.DOWN, [S]); + bindKeys(Control.LEFT, [A]); + bindKeys(Control.RIGHT, [D]); + bindKeys(Control.ACCEPT, [G, Z]); + bindKeys(Control.BACK, [H, X]); + bindKeys(Control.PAUSE, [ONE]); + bindKeys(Control.RESET, [R]); + case Duo(false): + bindKeys(Control.UP, [FlxKey.UP]); + bindKeys(Control.DOWN, [FlxKey.DOWN]); + bindKeys(Control.LEFT, [FlxKey.LEFT]); + bindKeys(Control.RIGHT, [FlxKey.RIGHT]); + bindKeys(Control.ACCEPT, [O]); + bindKeys(Control.BACK, [P]); + bindKeys(Control.PAUSE, [ENTER]); + bindKeys(Control.RESET, [BACKSPACE]); + case None: // nothing + case Custom: // nothing + } + #end } function removeKeyboard() @@ -469,15 +566,27 @@ class Controls extends FlxActionSet public function addGamepad(id:Int, ?buttonMap:Map>):Void { gamepadsAdded.push(id); + + #if (haxe >= "4.0.0") for (control => buttons in buttonMap) - bindButtons(control, id, buttons); + inline bindButtons(control, id, buttons); + #else + for (control in buttonMap.keys()) + bindButtons(control, id, buttonMap[control]); + #end } inline function addGamepadLiteral(id:Int, ?buttonMap:Map>):Void { gamepadsAdded.push(id); + + #if (haxe >= "4.0.0") for (control => buttons in buttonMap) inline bindButtons(control, id, buttons); + #else + for (control in buttonMap.keys()) + bindButtons(control, id, buttonMap[control]); + #end } public function removeGamepad(deviceID:Int = FlxInputDeviceID.ALL):Void @@ -498,6 +607,7 @@ class Controls extends FlxActionSet public function addDefaultGamepad(id):Void { + #if !switch addGamepadLiteral(id, [ Control.ACCEPT => [A], Control.BACK => [B], @@ -508,6 +618,19 @@ class Controls extends FlxActionSet Control.PAUSE => [START], Control.RESET => [Y] ]); + #else + addGamepadLiteral(id, [ + //Swap A and B for switch + Control.ACCEPT => [B], + Control.BACK => [A], + Control.UP => [DPAD_UP, LEFT_STICK_DIGITAL_UP], + Control.DOWN => [DPAD_DOWN, LEFT_STICK_DIGITAL_DOWN], + Control.LEFT => [DPAD_LEFT, LEFT_STICK_DIGITAL_LEFT], + Control.RIGHT => [DPAD_RIGHT, LEFT_STICK_DIGITAL_RIGHT], + Control.PAUSE => [START], + Control.RESET => [Y] + ]); + #end } /** @@ -516,7 +639,11 @@ class Controls extends FlxActionSet */ public function bindButtons(control:Control, id, buttons) { + #if (haxe >= "4.0.0") inline forEachBound(control, (action, state) -> addButtons(action, buttons, state, id)); + #else + forEachBound(control, function(action, state) addButtons(action, buttons, state, id)); + #end } /** @@ -525,7 +652,11 @@ class Controls extends FlxActionSet */ public function unbindButtons(control:Control, gamepadID:Int, buttons) { + #if (haxe >= "4.0.0") inline forEachBound(control, (action, _) -> removeButtons(action, gamepadID, buttons)); + #else + forEachBound(control, function(action, _) removeButtons(action, gamepadID, buttons)); + #end } inline static function addButtons(action:FlxActionDigital, buttons:Array, state, id) diff --git a/source/PlayState.hx b/source/PlayState.hx index 9bc96a88d..0163efc84 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -820,7 +820,11 @@ class PlayState extends MusicBeatState { trace('SONG DONE' + isStoryMode); + + #if !switch NGio.postScore(songScore, SONG.song); + #end + if (isStoryMode) { @@ -834,7 +838,10 @@ class PlayState extends MusicBeatState StoryMenuState.weekUnlocked[1] = true; + #if !switch NGio.unlockMedal(60961); + #end + FlxG.save.data.weekUnlocked = StoryMenuState.weekUnlocked; FlxG.save.flush(); diff --git a/source/PlayerSettings.hx b/source/PlayerSettings.hx index fa034581d..b275b9b51 100644 --- a/source/PlayerSettings.hx +++ b/source/PlayerSettings.hx @@ -14,12 +14,21 @@ class PlayerSettings static public var player1(default, null):PlayerSettings; static public var player2(default, null):PlayerSettings; + #if (haxe >= "4.0.0") static public final onAvatarAdd = new FlxTypedSignalVoid>(); static public final onAvatarRemove = new FlxTypedSignalVoid>(); + #else + static public var onAvatarAdd = new FlxTypedSignalVoid>(); + static public var onAvatarRemove = new FlxTypedSignalVoid>(); + #end public var id(default, null):Int; + #if (haxe >= "4.0.0") public final controls:Controls; + #else + public var controls:Controls; + #end // public var avatar:Player; // public var camera(get, never):PlayCamera; diff --git a/source/Song.hx b/source/Song.hx index 08eae4921..8af708367 100644 --- a/source/Song.hx +++ b/source/Song.hx @@ -49,7 +49,7 @@ class Song public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong { - // var rawJson = Assets.getText('assets/data/ridge/ridge.json').trim(); + var rawJson = Assets.getText('assets/data/' + folder.toLowerCase() + '/' + jsonInput.toLowerCase() + '.json').trim(); while (!rawJson.endsWith("}")) diff --git a/source/TitleState.hx b/source/TitleState.hx index aa7c2ffc2..172e8fed4 100644 --- a/source/TitleState.hx +++ b/source/TitleState.hx @@ -42,6 +42,7 @@ class TitleState extends MusicBeatState var wackyImage:FlxSprite; + override public function create():Void { #if (!web) @@ -56,12 +57,16 @@ class TitleState extends MusicBeatState super.create(); - #if (!debug && NG_LOGIN) + + #if (!switch && !debug && NG_LOGIN) + var ng:NGio = new NGio(APIStuff.API, APIStuff.EncKey); #end #if SKIP_TO_PLAYSTATE - FlxG.switchState(new ChartingState()); + + FlxG.switchState(new StoryMenuState()); + #else startIntro(); #end @@ -199,7 +204,11 @@ class TitleState extends MusicBeatState if (pressedEnter && !transitioning && skippedIntro) { + + #if !switch NGio.unlockMedal(60960); + #end + titleText.animation.play('press'); FlxG.camera.flash(FlxColor.WHITE, 1);