From 8be5dc20a9963a3930d6432aba9580132a390be7 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:09:11 -0400 Subject: [PATCH] [+] Ongeki: Serialization consistency test --- ogk-userdata-orig.jsonl | 26 +++++++++++++++++++ .../ongeki/model/userdata/ZUserDataTest.kt | 17 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 ogk-userdata-orig.jsonl create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt diff --git a/ogk-userdata-orig.jsonl b/ogk-userdata-orig.jsonl new file mode 100644 index 00000000..c4a91a3d --- /dev/null +++ b/ogk-userdata-orig.jsonl @@ -0,0 +1,26 @@ +{"kind":0,"id":0,"sortNumber":0,"param1":0,"param2":0,"param3":0,"param4":0} +{"musicId":0,"damage":0,"eventId":0,"isClear":false} +{"cardId":-1,"digitalStock":1,"analogStock":0,"level":0,"maxLevel":10,"exp":0,"printCount":0,"useCount":0,"kaikaDate":"0000-00-00 00:00:00.0","choKaikaDate":"0000-00-00 00:00:00.0","skillId":0,"created":"0000-00-00 00:00:00.0","isNew":true,"isAcquired":true} +{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"skipTiming1":0,"skipTiming2":0,"isStoryWatched":false,"isClear":false} +{"characterId":0,"costumeId":0,"attachmentId":0,"playCount":0,"intimateLevel":0,"intimateCount":0,"intimateCountRewarded":0,"intimateCountDate":null,"isNew":false} +{"userName":null,"level":0,"reincarnationNum":0,"exp":0,"point":0,"totalPoint":0,"playCount":0,"jewelCount":0,"totalJewelCount":0,"medalCount":0,"playerRating":0,"highestRating":0,"battlePoint":0,"bestBattlePoint":0,"overDamageBattlePoint":0,"nameplateId":0,"trophyId":0,"cardId":0,"characterId":0,"characterVoiceNo":0,"tabSetting":0,"tabSortSetting":0,"cardCategorySetting":0,"cardSortSetting":0,"rivalScoreCategorySetting":0,"playedTutorialBit":0,"firstTutorialCancelNum":0,"sumTechHighScore":0,"sumTechBasicHighScore":0,"sumTechAdvancedHighScore":0,"sumTechExpertHighScore":0,"sumTechMasterHighScore":0,"sumTechLunaticHighScore":0,"sumBattleHighScore":0,"sumBattleBasicHighScore":0,"sumBattleAdvancedHighScore":0,"sumBattleExpertHighScore":0,"sumBattleMasterHighScore":0,"sumBattleLunaticHighScore":0,"eventWatchedDate":null,"cmEventWatchedDate":null,"firstGameId":null,"firstRomVersion":null,"firstDataVersion":null,"firstPlayDate":null,"lastGameId":null,"lastRomVersion":null,"lastDataVersion":null,"compatibleCmVersion":null,"lastPlayDate":null,"lastPlaceId":0,"lastPlaceName":null,"lastRegionId":0,"lastRegionName":null,"lastAllNetId":0,"lastUsedDeckId":0,"lastPlayMusicLevel":0,"lastEmoneyBrand":0,"totalScore":0,"accessCode":null,"isDialogWatchedSuggestMemory":false} +{"deckId":0,"cardId1":0,"cardId2":0,"cardId3":0} +{"eventId":0,"type":0,"musicId":0,"level":0,"techScoreMax":0,"platinumScoreMax":0,"techRecordDate":null,"isTechNewRecord":false} +{"eventId":0,"point":0,"isRankingRewarded":false} +{"propertyKey":null,"propertyValue":null} +{"itemKind":0,"itemId":0,"stock":0,"isValid":false} +{"authKey":null,"kopId":0,"areaId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isTotalTechNewRecord":false} +{"bonusId":0,"bonusCount":0,"lastUpdateDate":null} +{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"gaugeId":0,"gaugeNum":0,"isDialogWatched":false,"isStoryWatched":false,"isBossWatched":false,"isClear":false} +{"eventId":0,"point":0} +{"musicId":0,"level":0,"playCount":0,"techScoreMax":0,"techScoreRank":0,"battleScoreMax":0,"battleScoreRank":0,"platinumScoreMax":0,"maxComboCount":0,"maxOverKill":0,"maxTeamOverKill":0,"clearStatus":0,"storyWatched":false,"isFullBell":false,"isFullCombo":false,"isAllBreake":false,"isLock":false} +{"musicId":0,"status":0} +{"optionSet":0,"speed":0,"mirror":0,"judgeTiming":0,"judgeAdjustment":0,"abort":0,"stealthField":0,"tapSound":0,"volGuide":0,"volAll":0,"volTap":0,"volCrTap":0,"volHold":0,"volSide":0,"volFlick":0,"volBell":0,"volEnemy":0,"volSkill":0,"volDamage":0,"colorField":0,"colorLaneBright":0,"colorWallBright":0,"colorLane":0,"colorSide":0,"effectDamage":0,"effectPos":0,"judgeDisp":0,"judgePos":0,"judgeBreak":0,"judgeHit":0,"platinumBreakDisp":0,"judgeCriticalBreak":0,"matching":0,"dispPlayerLv":0,"dispRating":0,"dispBP":0,"headphone":0} +{"id":0,"sortNumber":0,"placeId":0,"placeName":null,"playDate":null,"userPlayDate":null,"musicId":0,"level":0,"playKind":0,"eventId":0,"eventName":null,"eventPoint":0,"playedUserId1":0,"playedUserId2":0,"playedUserId3":0,"playedUserName1":null,"playedUserName2":null,"playedUserName3":null,"playedMusicLevel1":0,"playedMusicLevel2":0,"playedMusicLevel3":0,"cardId1":0,"cardId2":0,"cardId3":0,"cardLevel1":0,"cardLevel2":0,"cardLevel3":0,"cardAttack1":0,"cardAttack2":0,"cardAttack3":0,"bossCharaId":0,"bossLevel":0,"bossAttribute":0,"clearStatus":0,"techScore":0,"techScoreRank":0,"battleScore":0,"battleScoreRank":0,"platinumScore":0,"maxCombo":0,"judgeMiss":0,"judgeHit":0,"judgeBreak":0,"judgeCriticalBreak":0,"rateTap":0,"rateHold":0,"rateFlick":0,"rateSideTap":0,"rateSideHold":0,"bellCount":0,"totalBellCount":0,"damageCount":0,"overDamage":0,"playerRating":0,"battlePoint":0,"afterRating":0,"beforeRating":0,"achievement":0,"allPerfect":false,"isTechNewRecord":false,"isBattleNewRecord":false,"isOverDamageNewRecord":false,"isFullCombo":false,"isFullBell":false,"isAllBreak":false} +{"rivalUserId":0} +{"scenarioId":0,"playCount":0} +{"storyId":0,"lastChapterId":0,"jewelCount":0,"lastPlayMusicId":0,"lastPlayMusicCategory":0,"lastPlayMusicLevel":0} +{"levelId":0,"allBreakCount":0,"allBreakPlusCount":0} +{"eventId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isRankingRewarded":false,"isTotalTechNewRecord":false} +{"chapterId":0,"tradeItemId":0,"tradeCount":0} +{"authKey":null,"roomId":0,"cardId":0,"valueDate":null} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt new file mode 100644 index 00000000..6e349e30 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt @@ -0,0 +1,17 @@ +package icu.samnyan.aqua.sega.ongeki.model.userdata + +import icu.samnyan.aqua.sega.util.jackson.BasicMapper +import kotlin.io.path.Path +import kotlin.io.path.writeText + +fun main(args: Array) { + val classes = listOf(UserActivity(), UserBoss(), UserCard(), UserChapter(), UserCharacter(), UserData(), UserDeck(), UserEventMusic(), UserEventPoint(), UserGeneralData(), UserItem(), UserKop(), UserLoginBonus(), UserMemoryChapter(), UserMissionPoint(), UserMusicDetail(), UserMusicItem(), UserOption(), UserPlaylog(), UserRival(), UserScenario(), UserStory(), UserTechCount(), UserTechEvent(), UserTradeItem(), UserTrainingRoom()) + val mapper = BasicMapper() + + // Json stringify all of them + var str = "" + classes.forEach { + str += mapper.write(it) + "\n" + } + Path("ogk-userdata.jsonl").writeText(str) +} \ No newline at end of file