升级改为四选一并重做赌徒与方块改造机制

This commit is contained in:
2026-04-25 12:19:37 +08:00
parent 4bcc62f01a
commit 332573a28c
6 changed files with 1349 additions and 102 deletions
+40 -6
View File
@@ -264,19 +264,53 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
case VK_LEFT:
case 'A':
upgradeUiState.selectedIndex--;
if (upgradeUiState.selectedIndex < 0)
if (upgradeUiState.optionCount > 1)
{
upgradeUiState.selectedIndex = upgradeUiState.optionCount - 1;
if ((upgradeUiState.selectedIndex % 2) == 1)
{
upgradeUiState.selectedIndex--;
}
else
{
upgradeUiState.selectedIndex = (upgradeUiState.selectedIndex + 1 < upgradeUiState.optionCount)
? upgradeUiState.selectedIndex + 1
: upgradeUiState.selectedIndex;
}
}
InvalidateRect(hWnd, nullptr, FALSE);
break;
case VK_RIGHT:
case 'D':
upgradeUiState.selectedIndex++;
if (upgradeUiState.selectedIndex >= upgradeUiState.optionCount)
if (upgradeUiState.optionCount > 1)
{
upgradeUiState.selectedIndex = 0;
if ((upgradeUiState.selectedIndex % 2) == 0 && upgradeUiState.selectedIndex + 1 < upgradeUiState.optionCount)
{
upgradeUiState.selectedIndex++;
}
else
{
upgradeUiState.selectedIndex--;
if (upgradeUiState.selectedIndex < 0)
{
upgradeUiState.selectedIndex = 0;
}
}
}
InvalidateRect(hWnd, nullptr, FALSE);
break;
case VK_UP:
case 'W':
if (upgradeUiState.optionCount > 2 && upgradeUiState.selectedIndex >= 2)
{
upgradeUiState.selectedIndex -= 2;
}
InvalidateRect(hWnd, nullptr, FALSE);
break;
case VK_DOWN:
case 'S':
if (upgradeUiState.optionCount > 2 && upgradeUiState.selectedIndex + 2 < upgradeUiState.optionCount)
{
upgradeUiState.selectedIndex += 2;
}
InvalidateRect(hWnd, nullptr, FALSE);
break;