rollback!

This commit is contained in:
yuuki
2024-12-25 12:32:11 +09:00
parent 349542025e
commit 169b70b552
3 changed files with 34 additions and 24 deletions

View File

@@ -83,6 +83,9 @@ class Controller{
this.game = new Game(this, this.selectedSong, this.parsedSongData) this.game = new Game(this, this.selectedSong, this.parsedSongData)
this.view = new View(this) this.view = new View(this)
if (parseFloat(localStorage.getItem("baisoku") ?? "1", 10) !== 1) {
this.saveScore = false;
}
this.mekadon = new Mekadon(this, this.game) this.mekadon = new Mekadon(this, this.game)
this.keyboard = new GameInput(this) this.keyboard = new GameInput(this)
if(!autoPlayEnabled && this.multiplayer !== 2){ if(!autoPlayEnabled && this.multiplayer !== 2){
@@ -278,7 +281,7 @@ class Controller{
var chartDiff = this.selectedSong.difficulty var chartDiff = this.selectedSong.difficulty
chart = chart[chartDiff] chart = chart[chartDiff]
} }
this.addPromise(promises, chart.read(this.selectedSong.type === "tja" ? "sjis" : undefined).then(data => { this.addPromise(promises, chart.read(this.selectedSong.type === "tja" ? "utf-8" : undefined).then(data => {
this.songData = data.replace(/\0/g, "").split("\n") this.songData = data.replace(/\0/g, "").split("\n")
return Promise.resolve() return Promise.resolve()
}), chart.url) }), chart.url)

View File

@@ -135,7 +135,7 @@ class LoadSong{
chart = chart[chartDiff] chart = chart[chartDiff]
} }
if(chart){ if(chart){
this.addPromise(chart.read(song.type === "tja" ? "sjis" : "").then(data => { this.addPromise(chart.read(song.type === "tja" ? "utf-8" : "").then(data => {
this.songData = data.replace(/\0/g, "").split("\n") this.songData = data.replace(/\0/g, "").split("\n")
}), chart.url) }), chart.url)
}else{ }else{
@@ -309,7 +309,7 @@ class LoadSong{
if(song.type === "tja" || !chart || !chart.separateDiff || !chart[chartDiff]){ if(song.type === "tja" || !chart || !chart.separateDiff || !chart[chartDiff]){
this.startMultiplayer() this.startMultiplayer()
}else{ }else{
chart[chartDiff].read(song.type === "tja" ? "sjis" : "").then(data => { chart[chartDiff].read(song.type === "tja" ? "utf-8" : "").then(data => {
this.song2Data = data.replace(/\0/g, "").split("\n") this.song2Data = data.replace(/\0/g, "").split("\n")
}, () => {}).then(() => { }, () => {}).then(() => {
this.startMultiplayer() this.startMultiplayer()

View File

@@ -1487,11 +1487,11 @@
var measureH = 130 * mul var measureH = 130 * mul
measures.forEach(measure => { measures.forEach(measure => {
var timeForDistance = this.posToMs(distanceForCircle, measure.speed) var timeForDistance = this.posToMs(distanceForCircle, measure.speed * parseFloat(localStorage.getItem("baisoku") ?? "1", 10))
var startingTime = measure.ms - timeForDistance + this.controller.videoLatency var startingTime = measure.ms - timeForDistance + this.controller.videoLatency
var finishTime = measure.ms + this.posToMs(this.slotPos.x - this.slotPos.paddingLeft + 3, measure.speed) + this.controller.videoLatency var finishTime = measure.ms + this.posToMs(this.slotPos.x - this.slotPos.paddingLeft + 3, measure.speed * parseFloat(localStorage.getItem("baisoku") ?? "1", 10)) + this.controller.videoLatency
if(measure.visible && (!measure.branch || measure.branch.active) && ms >= startingTime && ms <= finishTime){ if(measure.visible && (!measure.branch || measure.branch.active) && ms >= startingTime && ms <= finishTime){
var measureX = this.slotPos.x + this.msToPos(measure.ms - ms + this.controller.videoLatency, measure.speed) var measureX = this.slotPos.x + this.msToPos(measure.ms - ms + this.controller.videoLatency, measure.speed * parseFloat(localStorage.getItem("baisoku") ?? "1", 10))
this.ctx.strokeStyle = measure.branchFirst ? "#ff0" : "#bdbdbd" this.ctx.strokeStyle = measure.branchFirst ? "#ff0" : "#bdbdbd"
this.ctx.lineWidth = 3 this.ctx.lineWidth = 3
this.ctx.beginPath() this.ctx.beginPath()
@@ -1537,7 +1537,7 @@
for(var i = circles.length; i--;){ for(var i = circles.length; i--;){
var circle = circles[i] var circle = circles[i]
var speed = circle.speed var speed = circle.speed * parseFloat(localStorage.getItem("baisoku") ?? "1", 10)
var timeForDistance = this.posToMs(distanceForCircle + this.slotPos.size / 2, speed) var timeForDistance = this.posToMs(distanceForCircle + this.slotPos.size / 2, speed)
var startingTime = circle.ms - timeForDistance + this.controller.videoLatency var startingTime = circle.ms - timeForDistance + this.controller.videoLatency
@@ -1626,11 +1626,13 @@
var circleMs = circle.ms var circleMs = circle.ms
var endTime = circle.endTime var endTime = circle.endTime
var animated = circle.animating var animated = circle.animating
var speed = circle.speed var speed = circle.speed * parseFloat(localStorage.getItem("baisoku") ?? "1", 10)
var played = circle.isPlayed var played = circle.isPlayed
var drumroll = 0 var drumroll = 0
var endX = 0 var endX = 0
const doron = localStorage.getItem("doron") ?? "false";
if(!circlePos){ if(!circlePos){
circlePos = { circlePos = {
x: this.slotPos.x + this.msToPos(circleMs - ms + this.controller.videoLatency, speed), x: this.slotPos.x + this.msToPos(circleMs - ms + this.controller.videoLatency, speed),
@@ -1676,12 +1678,14 @@
}else if(ms > endTime + this.controller.audioLatency){ }else if(ms > endTime + this.controller.audioLatency){
circlePos.x = this.slotPos.x + this.msToPos(endTime - ms + this.controller.audioLatency, speed) circlePos.x = this.slotPos.x + this.msToPos(endTime - ms + this.controller.audioLatency, speed)
} }
ctx.drawImage(assets.image["balloon"], if (doron !== "true") {
circlePos.x + size - 4, ctx.drawImage(assets.image["balloon"],
circlePos.y - h / 2 + 2, circlePos.x + size - 4,
h / 61 * 115, circlePos.y - h / 2 + 2,
h h / 61 * 115,
) h
)
}
} }
}else if(type === "drumroll" || type === "daiDrumroll"){ }else if(type === "drumroll" || type === "daiDrumroll"){
fill = "#f3b500" fill = "#f3b500"
@@ -1695,17 +1699,20 @@
endX = this.msToPos(endTime - circleMs, speed) endX = this.msToPos(endTime - circleMs, speed)
drumroll = endX > 50 ? 2 : 1 drumroll = endX > 50 ? 2 : 1
ctx.fillStyle = fill if (doron !== "true") {
ctx.strokeStyle = "#000" ctx.fillStyle = fill
ctx.lineWidth = 3 ctx.strokeStyle = "#000"
ctx.beginPath() ctx.lineWidth = 3
ctx.moveTo(circlePos.x, circlePos.y - size + 1.5) ctx.beginPath()
ctx.arc(circlePos.x + endX, circlePos.y, size - 1.5, Math.PI / -2, Math.PI / 2) ctx.moveTo(circlePos.x, circlePos.y - size + 1.5)
ctx.lineTo(circlePos.x, circlePos.y + size - 1.5) ctx.arc(circlePos.x + endX, circlePos.y, size - 1.5, Math.PI / -2, Math.PI / 2)
ctx.fill() ctx.lineTo(circlePos.x, circlePos.y + size - 1.5)
ctx.stroke() ctx.fill()
ctx.stroke()
}
} }
if(!fade || fade < 1){
if((!fade || fade < 1) && doron !== "true"){
// Main circle // Main circle
ctx.fillStyle = fill ctx.fillStyle = fill
ctx.beginPath() ctx.beginPath()