Add IIDX INFINITAS support with manual score entry#90
Open
katagaki wants to merge 4 commits into
Open
Conversation
INFINITAS is the PC home version of beatmania IIDX and has no e-amusement CSV/web export, so scores must be tracked manually. - Add IIDXVersion.infinitas, ordered last in the version picker - Replace the Import button with a + button when INFINITAS is selected - Add a manual add/edit/delete score editor, with an optional BEMANIWiki-backed song title picker - Persist manual entries in a single date-agnostic import group; hide the time-travel control in INFINITAS mode - Add a bottom edit toolbar to the score viewer for INFINITAS entries - Track the SQLite row id on records to target edits/deletes
Avoids a static-analysis reliability flag (integer division evaluated in a floating-point context) on the newly added color literals.
IIDXSongRecord is a class, so storing it in @State is unreliable (in-place mutations don't trigger updates). Use a plain property instead; the editor mutates the same instance and dismissing the sheet re-renders the viewer. Also simplify the manual-entry builder to assign each level score once.
# Conflicts: # DJDX/Games/beatmania IIDX/IIDXReader.swift
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Adds support for beatmania IIDX INFINITAS, the PC home version. Unlike the
arcade versions, INFINITAS has no e-amusement CSV/web export, so scores are
tracked manually.
INFINITAS is modeled as a new
IIDXVersion(not the scaffoldedGame.iidxInfinitas), so it reuses the existing IIDX scores screen, scoreviewer, and shared
PlayData.db, with records tagged by version — exactly likethe arcade versions already coexist.
What changed
IIDXVersion.infinitas, ordered to appear last(bottom) in the version dropdown.
replaced by a
+button that opens a new add/edit sheet.IIDXInfinitasScoreEditor) — add / edit / delete a singlechart entry: title (with an optional BEMANIWiki-backed song-title
picker), artist, genre, play type, level + rating, EX score / PGreat / Great /
Miss, clear type, DJ level, last-played, and play count.
import group and are always visible regardless of the selected date; the
time-travel control is hidden in INFINITAS mode.
entries; saving updates in place, deleting pops back to the list.
@Transient databaseID) so manual entries can be targeted for edit/delete.Implementation notes
IIDXImporter:infinitasImportGroupID,addManualSongRecord,updateSongRecord,deleteSongRecord(reusing theexisting
insertSongRecordcolumn layout).IIDXReader.importGroup(for:version:)short-circuits to the single INFINITASgroup, and its record cache always re-queries for INFINITAS so add/edit/delete
reflects immediately.
Localizable.xcstrings(en + ja).Verification
The remote environment is Linux with no Swift toolchain, so this was verified by
inspection rather than a build. Suggested manual checks in Xcode:
scores screen into manual mode (Import →
+, time-travel hidden).persists across relaunch and date changes.
Spacerand iOS 26ToolbarSpacer(.flexible)); edit updates, delete removes and returns to list.SOUND VOLTEX / Polaris Chord modes unaffected.
https://claude.ai/code/session_012v5AtjfrQSraHMhPRVmSid
Generated by Claude Code