- await import("@/variants/" + game.vname + ".js")
- .then((vModule) => {
- window.V = vModule[game.vname + "Rules"];
- this.loadGame(game, callback);
- });
- this.rulesContent =
- afterRawLoad(
- require(
- "raw-loader!@/translations/rules/" +
- game.vname + "/" + this.st.lang + ".pug"
- ).default
- ).replace(/(fen:)([^:]*):/g, replaceByDiag);
+ const afterSetVname = async () => {
+ await import("@/variants/" + game.vname + ".js")
+ .then((vModule) => {
+ window.V = vModule[game.vname + "Rules"];
+ this.loadGame(game, callback);
+ });
+ this.rulesContent =
+ afterRawLoad(
+ require(
+ "raw-loader!@/translations/rules/" +
+ game.vname + "/" + this.st.lang + ".pug"
+ ).default
+ ).replace(/(fen:)([^:]*):/g, replaceByDiag);
+ };
+ let variant = undefined;
+ const trySetVname = setInterval(
+ () => {
+ // this.st.variants might be uninitialized (variant == null)
+ variant = this.st.variants.find(v => {
+ return v.id == game.vid || v.name == game.vname
+ });
+ if (!!variant) {
+ clearInterval(trySetVname);
+ game.vname = variant.name;
+ game.vdisp = variant.display;
+ afterSetVname();
+ }
+ }, 500
+ );