Repository navigation
feat(online): Show the connection settings in the options menu and keep scroll speed and FPS limit in Options.ini - #655
Draft
tintinhamans wants to merge 24 commits into
Conversation
tintinhamans
force-pushed
the
arctic/go/feat/network-options-menu
branch
2 times, most recently
from
October 25, 2026 02:38
e9b3142 to
fcd3e33
Compare
tintinhamans
force-pushed
the
arctic/go/feat/network-options-menu
branch
2 times, most recently
from
October 25, 2026 11:15
4002010 to
9198a6b
Compare
tintinhamans
force-pushed
the
arctic/go/feat/network-options-menu
branch
2 times, most recently
from
October 26, 2026 15:39
78c4077 to
116f34e
Compare
…m::openArchiveFile() (TheSuperHackers#3376)
…leSystem, Win32LocalFileSystem (TheSuperHackers#3374)
…ile::getFileInfo(), StdBIGFile::getFileInfo() (TheSuperHackers#3415)
…ystem into BIGFileSystem (TheSuperHackers#3505)
…e loadBigFilesFromDirectory (TheSuperHackers#3505)
…riting archive first
…only with verbose logging
tintinhamans
force-pushed
the
arctic/go/feat/network-options-menu
branch
from
October 28, 2026 01:47
116f34e to
eff2278
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge after #646. Includes #651, closed as folded into this PR.
Adds a Network section to the options menu for the settings from #646, with Online and LAN tabs: Proxy (Automatic, Disabled, Custom), Server (Automatic, Custom), and the LAN IP. The resolved proxy or host shows in the disabled fields. Cancel after a failed Accept test drops only the connection changes. Clicks on the part of an open combo box list outside its parent now reach the list, which the new dropdowns need. Text in text entries and combo boxes is centred vertically in the field. The options panel now fits inside the shell frame, 399 by 511 units with the same padding around and inside every section.
Shell checkboxes drew about 1 source pixel up and left of their row, and filled slider blocks had a 2x2 transparent notch.
ZZ_GeneralsOnline_CheckboxSliderArt.INIredefines the affected images with a fixed 16x16GeneralsOnline_CheckboxSliderArt.tga.The proxy login from #646 now has its own
Menus/ProxyLogin.wndin the style of the game's message boxes: caps title, a disabled Proxy row, the "Use Windows login" checkbox, username and password, Remember My Password, one fixed message area and caps buttons, with 15 units of padding. It is 260 units wide, and status and error messages are centred across the full width.ProxyLogin.cppdrops the layout code (868 to 587 lines).The game version moves from the options menu to the bottom left of the shell frame. It is drawn on the frame on every shell screen that has one and is gone in game. Full screen windows that end at 799 or 599 in the 800x600 layouts now reach the screen edge when scaled, and so does the control bar background, so the options screen and the area under the control bar no longer leave 3 to 5 unfilled pixel rows at 2560x1440. Fills skip their 1 pixel inset when the border is invisible at scaled resolutions. Stretched images now sample half a texel inside their rect, so the main menu frame no longer picks up its transparent neighbours in the shared texture at 2560x1440. 800x600 draws images unchanged.
Settings cleanup: the unused
stats_overlayis removed. The FPS limit moves fromsettings.jsontoRenderFpsLimitinOptions.ini(an old value is migrated, and a value below 60 is raised to 60). It now applies in every game (online, LAN, skirmish, campaign, replay), and menus and the shellmap stay capped at 60. Offline, the game speed no longer follows the render rate: the logic time scale is on from startup (the approach of TheSuperHackers#2903), so the simulation stays at 60 logic frames per second at any render limit, and the logic time scale hotkey no longer turns the setting off. The skirmish game speed slider now runs from 30 to 120 logic frames per second in steps of 2 (60 is normal, the last position is unlimited), and still saves theFPSpref in retail units (half of that, 61 for unlimited), so retail reads the same file. Scripted FPS limits stay in retail units and are doubled. Both set the logic rate instead of the render limit, speeds above the render limit are capped by it, and a restart keeps the chosen speed.-noFPSLimitnow means uncapped. Network games still run on the network frame rate.camera.move_speed_ratiois removed and migrated intoScrollFactorinOptions.iniasold * ratio * (width / 2) / (1.6 * 400), clamped below at 1 like upstream TheSuperHackers#1262 (TheSuperHackers#1262), so 1.0 at 2560x1440 gives 100. The right mouse scroll drag is now measured at 800x600, so the scroll speed no longer depends on the resolution. The Scroll speed slider goes up to 300, since scrolling no longer speeds up with FPS or resolution.Deployment: the core pack with this
OptionsMenu.wnd,ProxyLogin.wndandMainMenuVersion.wndneeds this code. Without the pack the retail options menu stays, the version stays in it, andsettings.jsonstill works.Tested:
z_generalsbuilds. An offline skirmish through the UI rig keeps 60 logic frames per second (measured over 10 s) atRenderFpsLimit60, 144, uncapped and 30 (raised to 60), while it renders at 60, 144 and about 760 frames per second; the menus stay at 60 with an uncapped limit. With a render limit of 240, the skirmish slider at 30, 60 and 120 gives 30.0, 60.0 and 119.4 logic frames per second. Through the UI rig: the options menu inside the frame at 2560x1440, 1280x720 and 1024x768, the version on the main menu, options, skirmish and replay screens and gone in game, the screen edges before and after at 800x600, 1280x720 and 2560x1440, the proxy login with the right and wrong password and the Windows login, and a migration run (oldsettings.jsonto the new shapes,Options.inigainedRenderFpsLimitandScrollFactor).