4.6.1#970
Conversation
Brazilian Portuguese translation
…time feat: 切换编辑器预览同步到 V1 运行时
fix: 修复非官方引擎在 build 时版本号被错误覆盖的问题
fix: Fix parser vocal named-argument asset resolution
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Create pt-br.ts
feat: support series argument for unlockCg
Fixes #956
- 增加 Enable_Continue 参数,配置继续游戏按钮是否启用 - 继续游戏按钮会在没有自动存档时置灰 - 修改自动存档的记录逻辑,现在会在 end 结束时删除自动存档
Feat/continue game
fix: avoid cumulative preview set-effect transforms
…tures-to-assets refactor(webgal): 将引擎特效纹理从 game/tex 迁移到 assets
添加了韩文翻译
- Line 1: Change locale from zhCn to ko - Line 55: Replace full-width colon(:) with half-width colon (:) - Line 135: Replace full-width question Mark(?) to half-width question mark (?) - Line 205: Update export default from zhCn to ko
chore: update locale from zhCn to ko
add kor translation
animation support ignore default
There was a problem hiding this comment.
Code Review
This pull request introduces significant updates to the WebGAL engine, including a major overhaul of the editor preview protocol to V1 with a new WebSocket transport, support for grouping and stacking CGs in the gallery, custom dropdown language selection, and new Portuguese (Brazil) and Korean translations. It also refactors animation configurations to support ignoring default animations, introduces throttled auto-saving, and refines fast-skip behaviors. During review, two issues were identified: a critical bug in variable parsing where substring matches on 'true' or 'false' incorrectly coerce variable names to booleans, and a parser bug where empty argument values are incorrectly evaluated as the number zero.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| } else if (valExp.match(/true|false/)) { | ||
| if (valExp.match(/true/)) { | ||
| return true; | ||
| } | ||
| if (valExp.match(/false/)) { | ||
| return false; | ||
| } | ||
| } else if (valExp.length === 0) { |
There was a problem hiding this comment.
Using .match(/true|false/) on valExp causes a critical bug where any string containing the substring 'true' or 'false' (such as 'trueStory', 'falseAlarm'), or any variable name containing these substrings (such as 'isTrue', 'hasFalseValue'), will be incorrectly parsed as a boolean literal instead of being evaluated or treated as a string. This completely breaks variable lookups for such variables.
Instead, you should perform an exact match on the trimmed value.
} else if (valExp.trim() === 'true' || valExp.trim() === 'false') {
return valExp.trim() === 'true';
}| }); | ||
| } | ||
| // 是数字 | ||
| else if (!isNaN(Number(argValue))) { |
There was a problem hiding this comment.
When argValue is an empty string "" (for example, when parsing an argument like -arg=), Number(argValue) evaluates to 0, and !isNaN(0) is true. This causes empty arguments to be incorrectly parsed as the number 0 instead of an empty string.
Adding a check to ensure argValue is not empty prevents this issue.
| else if (!isNaN(Number(argValue))) { | |
| else if (argValue !== '' && !isNaN(Number(argValue))) { |
Deploying webgal-dev with
|
| Latest commit: |
5f569eb
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://108ccc3f.webgal-dev.pages.dev |
No description provided.