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

Realm/Core: Implement realm category mapping using realm zone and major version #570

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Exxenoz
Copy link
Member

@Exxenoz Exxenoz commented Jul 12, 2024

🍰 Pullrequest

The current configuration option for realm categories via the "RealmZone" option in cmangos-classic is causing issues. In version 1.12, only a maximum of four realm categories (1, 2, 3, 5) per locale/region exist. If a different value, such as 12 (RealmZone: Russian, Cyrillic), is used to set the cyrillic character set, the realm will not appear on the clients realm list. This limitation prevents consistent assignment of a valid realm category alongside the desired character set.

This PR implements a configuration option for realm categories (defined in Cfg_Categories.dbc) that is independent of the character set setting of "RealmZone".

Unlike TBC and WotLK, the categories are not uniquely numbered in 1.12; instead, some entries use the same ID for multiple entries. In cmangos-tbc and cmangos-wotlk, the realm category corresponds to the 'RealmZone' setting, which also configures the available character set. In Vanilla, character set configuration cannot be done directly via the realm category due to collisions in numbering (for example, enUS and ruRU use different character sets but have the same region and category IDs in 1.12).

  • The new setting "RealmCategory" configures the realm category based on the client locale in use
  • The setting "RealmZone" now only configures the server side character set

//UPDATE:
To ensure that the realm daemon remains compatible with other versions, the appropriate realm category is now mapped based on the realm zone setting and the major client version.

Issues

How2Test

  1. Add two realms to your realmlist table and use different category values.
  2. Start your client, login and open the realm selection dialog
  3. The two realm categories should be displayed on the bottom

Todo / Checklist

  • None

Cfg_Categories.dbc (enUS)

CategoryId,RegionId,Name,None,None,None,None,None,None,None,flags,
1,1,"United States",,,,,,,,0x3F007E,
1,2,"Korea",,,,,,,,0x3F007E,
1,3,"English",,,,,,,,0x3F007E,
2,3,"German",,,,,,,,0x3F007E,
3,3,"French",,,,,,,,0x3F007E,
1,4,"Taiwan",,,,,,,,0x3F007E,
1,5,"China",,,,,,,,0x3F007E,
1,99,"Test Server",,,,,,,,0x3F007E,
5,1,"Oceanic",,,,,,,,0x3F007E,
1,101,"QA Server",,,,,,,,0x3F007E,
5,3,"Spanish",,,,,,,,0x3F007E,
5,99,"Oceanic",,,,,,,,0x3F007E,
2,5,"CN3",,,,,,,,0x3F007E,
3,5,"CN7",,,,,,,,0x3F007E,

Cfg_Categories.dbc (ruRU)

CategoryId,RegionId,Name,None,None,None,None,None,None,None,flags,
1,1,"Русский",,,,,,,,0x3F007E,
1,2,"Корея",,,,,,,,0x3F007E,
1,3,"Английский",,,,,,,,0x3F007E,
2,3,"Немецкий",,,,,,,,0x3F007E,
3,3,"Французский",,,,,,,,0x3F007E,
1,4,"Тайвань",,,,,,,,0x3F007E,
1,5,"Китай",,,,,,,,0x3F007E,
1,99,"Тестовый сервер",,,,,,,,0x3F007E,
5,1,"Океания",,,,,,,,0x3F007E,
1,101,"Сервер контроля качества",,,,,,,,0x3F007E,
5,3,"Испанский",,,,,,,,0x3F007E,
5,99,"Океания",,,,,,,,0x3F007E,
2,5,"КТ3",,,,,,,,0x3F007E,
3,5,"КТ7",,,,,,,,0x3F007E,

@Exxenoz Exxenoz marked this pull request as draft July 29, 2024 10:13
@Exxenoz
Copy link
Member Author

Exxenoz commented Jul 29, 2024

If the realm daemon is backwards compatible and is intended to remain so, it would alternatively be possible to adopt the "RealmZone" settings from TBC/WotLK and implement a hardcoded realm category assignment based on that.

@killerwife
Copy link
Contributor

Yes, all realmds should be kept compatible, since we have plans to extract them all to a singular repository and all 3 work on all 3 versions simultaneously. So any such changes have to be validated with tbc and wotlk core.

@Exxenoz Exxenoz changed the title Realm/Core: Implement realm category setting Realm/Core: Implement realm category mapping using realm zone and major version Jul 29, 2024
@Exxenoz
Copy link
Member Author

Exxenoz commented Jul 29, 2024

//UPDATE:
To ensure that the realm daemon remains compatible with other versions, the appropriate realm category is now mapped based on the realm zone setting and the major client version.

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.

🐛 [Bug Report] Vanilla/TBC/WotLK - wrong variable gets written to/used for the realmlist
2 participants