minor bug fixes

This commit is contained in:
Anthony Samms
2025-10-26 22:43:18 -04:00
parent 21ae411c67
commit 708643ac71
6 changed files with 59 additions and 10 deletions

View File

@@ -139,6 +139,8 @@ def main():
ray.rl_set_blend_factors_separate(RL_SRC_ALPHA, RL_ONE_MINUS_SRC_ALPHA, RL_ONE, RL_ONE_MINUS_SRC_ALPHA, RL_FUNC_ADD, RL_FUNC_ADD)
ray.set_exit_key(ord(global_data.config["keys_1p"]["exit_key"]))
ray.hide_cursor()
while not ray.window_should_close():
if ray.is_key_pressed(ray.KeyboardKey.KEY_F11):
ray.toggle_fullscreen()

View File

@@ -551,7 +551,6 @@ class ScoreHistory:
current_ms (int): The current time in milliseconds.
"""
self.scores = {k: v for k, v in scores.items() if v is not None}
print(self.scores)
self.difficulty_keys = list(self.scores.keys())
self.curr_difficulty_index = 0
self.curr_difficulty_index = (self.curr_difficulty_index + 1) % len(self.difficulty_keys)

View File

@@ -120,9 +120,21 @@ def build_song_hashes(output_dir=Path("cache")):
try:
for diff in tja.metadata.course_data:
diff_notes, _, _, _ = TJAParser.notes_to_position(TJAParser(tja.file_path), diff)
diff_notes, branch_m, branch_e, branch_n = TJAParser.notes_to_position(TJAParser(tja.file_path), diff)
diff_hashes[diff] = tja.hash_note_data(diff_notes)
all_notes.play_notes.extend(diff_notes.play_notes)
if branch_m:
for branch in branch_m:
all_notes.play_notes.extend(branch.play_notes)
all_notes.bars.extend(branch.bars)
if branch_e:
for branch in branch_e:
all_notes.play_notes.extend(branch.play_notes)
all_notes.bars.extend(branch.bars)
if branch_n:
for branch in branch_n:
all_notes.play_notes.extend(branch.play_notes)
all_notes.bars.extend(branch.bars)
all_notes.bars.extend(diff_notes.bars)
except Exception as e:
print(f"Failed to parse TJA {tja_path}: {e}")
@@ -230,9 +242,27 @@ def process_tja_file(tja_file):
tja = TJAParser(tja_file)
all_notes = NoteList()
for diff in tja.metadata.course_data:
notes, _, _, _ = TJAParser.notes_to_position(TJAParser(tja.file_path), diff)
notes, branch_m, branch_e, branch_n = TJAParser.notes_to_position(TJAParser(tja.file_path), diff)
all_notes.play_notes.extend(notes.play_notes)
if branch_m:
for branch in branch_m:
all_notes.play_notes.extend(branch.play_notes)
if branch_e:
for branch in branch_e:
all_notes.play_notes.extend(branch.play_notes)
if branch_n:
for branch in branch_n:
all_notes.play_notes.extend(branch.play_notes)
all_notes.bars.extend(notes.bars)
if branch_m:
for branch in branch_m:
all_notes.bars.extend(branch.bars)
if branch_e:
for branch in branch_e:
all_notes.bars.extend(branch.bars)
if branch_n:
for branch in branch_n:
all_notes.bars.extend(branch.bars)
if all_notes == []:
return ''
hash = tja.hash_note_data(all_notes)

View File

@@ -8,7 +8,7 @@ from functools import lru_cache
from pathlib import Path
from libs.global_data import Modifiers
from libs.utils import get_pixels_per_frame, global_data, strip_comments
from libs.utils import get_pixels_per_frame, strip_comments
@lru_cache(maxsize=64)

View File

@@ -129,7 +129,22 @@ class GameScreen:
with sqlite3.connect('scores.db') as con:
session_data = global_data.session_data[global_data.player_num-1]
cursor = con.cursor()
notes, _, _, _ = TJAParser.notes_to_position(TJAParser(self.tja.file_path), self.player_1.difficulty)
notes, branch_m, branch_e, branch_n = TJAParser.notes_to_position(TJAParser(self.tja.file_path), self.player_1.difficulty)
if branch_m:
for branch in branch_m:
notes.play_notes.extend(branch.play_notes)
notes.draw_notes.extend(branch.draw_notes)
notes.bars.extend(branch.bars)
if branch_e:
for branch in branch_e:
notes.play_notes.extend(branch.play_notes)
notes.draw_notes.extend(branch.draw_notes)
notes.bars.extend(branch.bars)
if branch_n:
for branch in branch_n:
notes.play_notes.extend(branch.play_notes)
notes.draw_notes.extend(branch.draw_notes)
notes.bars.extend(branch.bars)
hash = self.tja.hash_note_data(notes)
check_query = "SELECT score, clear FROM Scores WHERE hash = ? LIMIT 1"
cursor.execute(check_query, (hash,))
@@ -507,7 +522,7 @@ class Player:
self.is_drumroll = False
self.is_balloon = False
else:
if len(self.other_notes) == 1:
if len(self.other_notes) >= 1:
self.other_notes.popleft()
elif (note.hit_ms <= current_ms):
if note.type == 5 or note.type == 6:

View File

@@ -536,14 +536,17 @@ class SongSelectPlayer:
prev_diff = self.selected_difficulty
if is_l_kat_pressed(self.player_num):
self._navigate_difficulty_left(diffs)
else: # is_r_kat_pressed()
self._navigate_difficulty_right(diffs)
ret_val = self._navigate_difficulty_left(diffs)
elif is_r_kat_pressed(self.player_num):
ret_val = self._navigate_difficulty_right(diffs)
if 0 <= self.selected_difficulty <= 4 and self.selected_difficulty != prev_diff:
self.selected_diff_bounce.start()
self.selected_diff_fadein.start()
return ret_val
if (ray.is_key_pressed(ray.KeyboardKey.KEY_TAB) and
self.selected_difficulty in [3, 4]):
return self._toggle_ura_mode()
@@ -590,7 +593,7 @@ class SongSelectPlayer:
if (self.selected_difficulty in [3, 4] and 4 in diffs and 3 in diffs):
self.ura_toggle = (self.ura_toggle + 1) % 10
if self.ura_toggle == 0:
self._toggle_ura_mode()
return self._toggle_ura_mode()
elif self.selected_difficulty == -1:
self.prev_diff = self.selected_difficulty
self.selected_difficulty = min(diffs)