Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(multiset): hook up startsession and unlocks routines #3086

Merged

Conversation

wescopeland
Copy link
Member

@wescopeland wescopeland commented Jan 20, 2025

This should be the final back-end PR required to facilitate emulator support for multiset.

This PR makes an adjustment to getUserAchievementUnlocksForGame(), which is used by both the startsession and unlocks routines. The function now returns unlock metadata for all sets attached to the given game ID.

Additionally, both startsession and unlocks will attempt to pass the "parent" game ID into getUserAchievementUnlocksForGame(). For example, given the game ID 1, they will pass in 1. Given the game ID 29895, they will pass in 1.


GET dorequest.php?u=WCopeland&t=redacted&r=startsession&m=09dadb5071eb35050067a32462e39c5f&g=29895
{
	"Success": true,
	"HardcoreUnlocks": [
		{
			"ID": 2,
			"When": 1693271855
		},
		{
			"ID": 9,
			"When": 1693271901
		},
		{
			"ID": 16,
			"When": 1693272238
		},
		{
			"ID": 18,
			"When": 1693273061
		},
		{
			"ID": 436757, <------- subset unlock
			"When": 1737400430
		}
	],
	"Unlocks": [
		{
			"ID": 101000001,
			"When": 1737404678
		}
	],
	"ServerNow": 1737404678
}

GET /dorequest.php?u=WCopeland&t=redacted&r=unlocks&m=09dadb5071eb35050067a32462e39c5f&g=29895
{
	"Success": true,
	"UserUnlocks": [
		2,
		9,
		16,
		18,
		436757, <--------- subset unlock
		101000001
	],
	"GameID": 29895,
	"HardcoreMode": false
}

@wescopeland wescopeland requested a review from a team January 20, 2025 20:50
Copy link
Member

@Jamiras Jamiras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't do thorough testing, but verified a subset unlock comes back when starting a session for a core set.

@wescopeland wescopeland merged commit b02cbcd into RetroAchievements:master Jan 22, 2025
8 checks passed
@wescopeland wescopeland deleted the multiset-startsession branch January 22, 2025 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants