Skip to content

Commit bbc7421

Browse files
authored
Merge pull request #80 from Andreas-W/merge_SH
More SH Merges
2 parents ae53b8c + b1bde99 commit bbc7421

319 files changed

Lines changed: 2979 additions & 26656 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Core/GameEngine/CMakeLists.txt

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ set(GAMEENGINE_SRC
8282
# Include/Common/MultiplayerSettings.h
8383
# Include/Common/NameKeyGenerator.h
8484
Include/Common/ObjectStatusTypes.h
85+
Include/Common/OptionPreferences.h
8586
# Include/Common/OSDisplay.h
8687
# Include/Common/Overridable.h
8788
# Include/Common/Override.h
@@ -144,28 +145,28 @@ set(GAMEENGINE_SRC
144145
# Include/GameClient/AnimateWindowManager.h
145146
# Include/GameClient/CampaignManager.h
146147
Include/GameClient/ChallengeGenerals.h
147-
# Include/GameClient/ClientInstance.h
148+
Include/GameClient/ClientInstance.h
148149
Include/GameClient/ClientRandomValue.h
149-
# Include/GameClient/Color.h
150+
Include/GameClient/Color.h
150151
# Include/GameClient/CommandXlat.h
151152
# Include/GameClient/ControlBar.h
152153
# Include/GameClient/ControlBarResizer.h
153154
# Include/GameClient/ControlBarScheme.h
154-
# Include/GameClient/Credits.h
155+
Include/GameClient/Credits.h
155156
# Include/GameClient/DebugDisplay.h
156157
# Include/GameClient/Diplomacy.h
157158
# Include/GameClient/DisconnectMenu.h
158159
# Include/GameClient/Display.h
159-
# Include/GameClient/DisplayString.h
160-
# Include/GameClient/DisplayStringManager.h
160+
Include/GameClient/DisplayString.h
161+
Include/GameClient/DisplayStringManager.h
161162
# Include/GameClient/Drawable.h
162163
# Include/GameClient/DrawableInfo.h
163-
# Include/GameClient/DrawGroupInfo.h
164+
Include/GameClient/DrawGroupInfo.h
164165
# Include/GameClient/EstablishConnectionsMenu.h
165166
# Include/GameClient/Eva.h
166167
# Include/GameClient/ExtendedMessageBox.h
167168
# Include/GameClient/FontDesc.h
168-
# Include/GameClient/FXList.h
169+
Include/GameClient/FXList.h
169170
# Include/GameClient/Gadget.h
170171
# Include/GameClient/GadgetCheckBox.h
171172
# Include/GameClient/GadgetComboBox.h
@@ -178,61 +179,61 @@ set(GAMEENGINE_SRC
178179
# Include/GameClient/GadgetTabControl.h
179180
# Include/GameClient/GadgetTextEntry.h
180181
# Include/GameClient/GameClient.h
181-
# Include/GameClient/GameFont.h
182+
Include/GameClient/GameFont.h
182183
# Include/GameClient/GameInfoWindow.h
183-
# Include/GameClient/GameText.h
184-
# Include/GameClient/GameWindow.h
185-
# Include/GameClient/GameWindowGlobal.h
184+
Include/GameClient/GameText.h
185+
Include/GameClient/GameWindow.h
186+
Include/GameClient/GameWindowGlobal.h
186187
# Include/GameClient/GameWindowID.h
187188
# Include/GameClient/GameWindowManager.h
188-
# Include/GameClient/GameWindowTransitions.h
189-
# Include/GameClient/GlobalLanguage.h
190-
# Include/GameClient/GraphDraw.h
189+
Include/GameClient/GameWindowTransitions.h
190+
Include/GameClient/GlobalLanguage.h
191+
Include/GameClient/GraphDraw.h
191192
# Include/GameClient/GUICallbacks.h
192193
# Include/GameClient/GUICommandTranslator.h
193-
# Include/GameClient/HeaderTemplate.h
194+
Include/GameClient/HeaderTemplate.h
194195
# Include/GameClient/HintSpy.h
195196
# Include/GameClient/HotKey.h
196197
# Include/GameClient/Image.h
197-
# Include/GameClient/IMEManager.h
198+
Include/GameClient/IMEManager.h
198199
# Include/GameClient/InGameUI.h
199-
# Include/GameClient/Keyboard.h
200+
Include/GameClient/Keyboard.h
200201
# Include/GameClient/KeyDefs.h
201-
# Include/GameClient/LanguageFilter.h
202-
# Include/GameClient/Line2D.h
203-
# Include/GameClient/LoadScreen.h
202+
Include/GameClient/LanguageFilter.h
203+
Include/GameClient/Line2D.h
204+
Include/GameClient/LoadScreen.h
204205
# Include/GameClient/LookAtXlat.h
205206
Include/GameClient/MapUtil.h
206207
# Include/GameClient/MessageBox.h
207208
# Include/GameClient/MetaEvent.h
208209
# Include/GameClient/Module/AnimatedParticleSysBoneClientUpdate.h
209210
# Include/GameClient/Module/BeaconClientUpdate.h
210211
# Include/GameClient/Module/SwayClientUpdate.h
211-
# Include/GameClient/Mouse.h
212+
Include/GameClient/Mouse.h
212213
Include/GameClient/ParabolicEase.h
213214
Include/GameClient/ParticleSys.h
214215
# Include/GameClient/PlaceEventTranslator.h
215-
# Include/GameClient/ProcessAnimateWindow.h
216-
# Include/GameClient/RadiusDecal.h
216+
Include/GameClient/ProcessAnimateWindow.h
217+
Include/GameClient/RadiusDecal.h
217218
# Include/GameClient/RayEffect.h
218-
# Include/GameClient/SelectionInfo.h
219+
Include/GameClient/SelectionInfo.h
219220
# Include/GameClient/SelectionXlat.h
220221
# Include/GameClient/Shadow.h
221222
# Include/GameClient/Shell.h
222223
# Include/GameClient/ShellHooks.h
223224
# Include/GameClient/ShellMenuScheme.h
224225
Include/GameClient/Smudge.h
225226
Include/GameClient/Snow.h
226-
# Include/GameClient/Statistics.h
227+
Include/GameClient/Statistics.h
227228
Include/GameClient/TerrainRoads.h
228229
Include/GameClient/TerrainVisual.h
229230
Include/GameClient/VideoPlayer.h
230231
Include/GameClient/View.h
231232
Include/GameClient/Water.h
232-
# Include/GameClient/WindowLayout.h
233+
Include/GameClient/WindowLayout.h
233234
Include/GameClient/WindowVideoManager.h
234235
# Include/GameClient/WindowXlat.h
235-
# Include/GameClient/WinInstanceData.h
236+
Include/GameClient/WinInstanceData.h
236237
# Include/GameLogic/AI.h
237238
# Include/GameLogic/AIDock.h
238239
# Include/GameLogic/AIGuard.h
@@ -621,6 +622,7 @@ set(GAMEENGINE_SRC
621622
# Source/Common/MiniLog.cpp
622623
# Source/Common/MultiplayerSettings.cpp
623624
# Source/Common/NameKeyGenerator.cpp
625+
Source/Common/OptionPreferences.cpp
624626
# Source/Common/PartitionSolver.cpp
625627
# Source/Common/PerfTimer.cpp
626628
Source/Common/RandomValue.cpp
@@ -696,24 +698,24 @@ set(GAMEENGINE_SRC
696698
Source/Common/UserPreferences.cpp
697699
# Source/Common/version.cpp
698700
Source/Common/WorkerProcess.cpp
699-
# Source/GameClient/ClientInstance.cpp
700-
# Source/GameClient/Color.cpp
701-
# Source/GameClient/Credits.cpp
701+
Source/GameClient/ClientInstance.cpp
702+
Source/GameClient/Color.cpp
703+
Source/GameClient/Credits.cpp
702704
# Source/GameClient/Display.cpp
703-
# Source/GameClient/DisplayString.cpp
704-
# Source/GameClient/DisplayStringManager.cpp
705+
Source/GameClient/DisplayString.cpp
706+
Source/GameClient/DisplayStringManager.cpp
705707
# Source/GameClient/Drawable.cpp
706708
# Source/GameClient/Drawable/Update/AnimatedParticleSysBoneClientUpdate.cpp
707709
# Source/GameClient/Drawable/Update/BeaconClientUpdate.cpp
708710
# Source/GameClient/Drawable/Update/SwayClientUpdate.cpp
709-
# Source/GameClient/DrawGroupInfo.cpp
711+
Source/GameClient/DrawGroupInfo.cpp
710712
# Source/GameClient/Eva.cpp
711-
# Source/GameClient/FXList.cpp
713+
Source/GameClient/FXList.cpp
712714
# Source/GameClient/GameClient.cpp
713715
# Source/GameClient/GameClientDispatch.cpp
714-
# Source/GameClient/GameText.cpp
715-
# Source/GameClient/GlobalLanguage.cpp
716-
# Source/GameClient/GraphDraw.cpp
716+
Source/GameClient/GameText.cpp
717+
Source/GameClient/GlobalLanguage.cpp
718+
Source/GameClient/GraphDraw.cpp
717719
# Source/GameClient/GUI/AnimateWindowManager.cpp
718720
Source/GameClient/GUI/ChallengeGenerals.cpp
719721
# Source/GameClient/GUI/ControlBar/ControlBar.cpp
@@ -741,12 +743,12 @@ set(GAMEENGINE_SRC
741743
# Source/GameClient/GUI/Gadget/GadgetTabControl.cpp
742744
# Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp
743745
# Source/GameClient/GUI/Gadget/GadgetVerticalSlider.cpp
744-
# Source/GameClient/GUI/GameFont.cpp
745-
# Source/GameClient/GUI/GameWindow.cpp
746-
# Source/GameClient/GUI/GameWindowGlobal.cpp
746+
Source/GameClient/GUI/GameFont.cpp
747+
Source/GameClient/GUI/GameWindow.cpp
748+
Source/GameClient/GUI/GameWindowGlobal.cpp
747749
# Source/GameClient/GUI/GameWindowManager.cpp
748750
# Source/GameClient/GUI/GameWindowManagerScript.cpp
749-
# Source/GameClient/GUI/GameWindowTransitions.cpp
751+
Source/GameClient/GUI/GameWindowTransitions.cpp
750752
# Source/GameClient/GUI/GameWindowTransitionsStyles.cpp
751753
# Source/GameClient/GUI/GUICallbacks/ControlBarCallback.cpp
752754
# Source/GameClient/GUI/GUICallbacks/ControlBarPopupDescription.cpp
@@ -799,20 +801,20 @@ set(GAMEENGINE_SRC
799801
# Source/GameClient/GUI/GUICallbacks/Menus/WOLWelcomeMenu.cpp
800802
# Source/GameClient/GUI/GUICallbacks/MessageBox.cpp
801803
# Source/GameClient/GUI/GUICallbacks/ReplayControls.cpp
802-
# Source/GameClient/GUI/HeaderTemplate.cpp
803-
# Source/GameClient/GUI/IMEManager.cpp
804-
# Source/GameClient/GUI/LoadScreen.cpp
805-
# Source/GameClient/GUI/ProcessAnimateWindow.cpp
804+
Source/GameClient/GUI/HeaderTemplate.cpp
805+
Source/GameClient/GUI/IMEManager.cpp
806+
Source/GameClient/GUI/LoadScreen.cpp
807+
Source/GameClient/GUI/ProcessAnimateWindow.cpp
806808
# Source/GameClient/GUI/Shell/Shell.cpp
807809
# Source/GameClient/GUI/Shell/ShellMenuScheme.cpp
808-
# Source/GameClient/GUI/WindowLayout.cpp
810+
Source/GameClient/GUI/WindowLayout.cpp
809811
Source/GameClient/GUI/WindowVideoManager.cpp
810-
# Source/GameClient/GUI/WinInstanceData.cpp
812+
Source/GameClient/GUI/WinInstanceData.cpp
811813
# Source/GameClient/InGameUI.cpp
812-
# Source/GameClient/Input/Keyboard.cpp
813-
# Source/GameClient/Input/Mouse.cpp
814-
# Source/GameClient/LanguageFilter.cpp
815-
# Source/GameClient/Line2D.cpp
814+
Source/GameClient/Input/Keyboard.cpp
815+
Source/GameClient/Input/Mouse.cpp
816+
Source/GameClient/LanguageFilter.cpp
817+
Source/GameClient/Line2D.cpp
816818
Source/GameClient/MapUtil.cpp
817819
# Source/GameClient/MessageStream/CommandXlat.cpp
818820
# Source/GameClient/MessageStream/GUICommandTranslator.cpp
@@ -824,10 +826,10 @@ set(GAMEENGINE_SRC
824826
# Source/GameClient/MessageStream/SelectionXlat.cpp
825827
# Source/GameClient/MessageStream/WindowXlat.cpp
826828
Source/GameClient/ParabolicEase.cpp
827-
# Source/GameClient/RadiusDecal.cpp
828-
# Source/GameClient/SelectionInfo.cpp
829+
Source/GameClient/RadiusDecal.cpp
830+
Source/GameClient/SelectionInfo.cpp
829831
Source/GameClient/Snow.cpp
830-
# Source/GameClient/Statistics.cpp
832+
Source/GameClient/Statistics.cpp
831833
# Source/GameClient/System/Anim2D.cpp
832834
# Source/GameClient/System/CampaignManager.cpp
833835
Source/GameClient/System/Debug/AudioDebugDisplay.cpp
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
** Command & Conquer Generals Zero Hour(tm)
3+
** Copyright 2025 Electronic Arts Inc.
4+
**
5+
** This program is free software: you can redistribute it and/or modify
6+
** it under the terms of the GNU General Public License as published by
7+
** the Free Software Foundation, either version 3 of the License, or
8+
** (at your option) any later version.
9+
**
10+
** This program is distributed in the hope that it will be useful,
11+
** but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
** GNU General Public License for more details.
14+
**
15+
** You should have received a copy of the GNU General Public License
16+
** along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
19+
////////////////////////////////////////////////////////////////////////////////
20+
// //
21+
// (c) 2001-2003 Electronic Arts Inc. //
22+
// //
23+
////////////////////////////////////////////////////////////////////////////////
24+
25+
///////////////////////////////////////////////////////////////////////////////////////
26+
// FILE: OptionPreferences.h
27+
// Author: Matthew D. Campbell, April 2002
28+
// Description: Saving/Loading of option preferences
29+
///////////////////////////////////////////////////////////////////////////////////////
30+
31+
#pragma once
32+
33+
#include "Common/UserPreferences.h"
34+
35+
typedef UnsignedInt CursorCaptureMode;
36+
typedef UnsignedInt ScreenEdgeScrollMode;
37+
38+
//-----------------------------------------------------------------------------
39+
// OptionsPreferences options menu class
40+
//-----------------------------------------------------------------------------
41+
class OptionPreferences : public UserPreferences
42+
{
43+
public:
44+
OptionPreferences();
45+
virtual ~OptionPreferences();
46+
47+
Bool loadFromIniFile();
48+
49+
UnsignedInt getLANIPAddress(void);
50+
UnsignedInt getOnlineIPAddress(void);
51+
void setLANIPAddress(AsciiString IP);
52+
void setOnlineIPAddress(AsciiString IP);
53+
void setLANIPAddress(UnsignedInt IP);
54+
void setOnlineIPAddress(UnsignedInt IP);
55+
Bool getArchiveReplaysEnabled() const;
56+
Bool getAlternateMouseModeEnabled(void);
57+
Bool getRetaliationModeEnabled();
58+
Bool getDoubleClickAttackMoveEnabled(void);
59+
Real getScrollFactor(void);
60+
Bool getDrawScrollAnchor(void);
61+
Bool getMoveScrollAnchor(void);
62+
Bool getCursorCaptureEnabledInWindowedGame() const;
63+
Bool getCursorCaptureEnabledInWindowedMenu() const;
64+
Bool getCursorCaptureEnabledInFullscreenGame() const;
65+
Bool getCursorCaptureEnabledInFullscreenMenu() const;
66+
CursorCaptureMode getCursorCaptureMode() const;
67+
Bool getScreenEdgeScrollEnabledInWindowedApp() const;
68+
Bool getScreenEdgeScrollEnabledInFullscreenApp() const;
69+
ScreenEdgeScrollMode getScreenEdgeScrollMode() const;
70+
Bool getSendDelay(void);
71+
Int getFirewallBehavior(void);
72+
Short getFirewallPortAllocationDelta(void);
73+
UnsignedShort getFirewallPortOverride(void);
74+
Bool getFirewallNeedToRefresh(void);
75+
Bool usesSystemMapDir(void);
76+
AsciiString getPreferred3DProvider(void);
77+
AsciiString getSpeakerType(void);
78+
Real getSoundVolume(void);
79+
Real get3DSoundVolume(void);
80+
Real getSpeechVolume(void);
81+
Real getMusicVolume(void);
82+
Real getMoneyTransactionVolume(void) const;
83+
Bool saveCameraInReplays(void);
84+
Bool useCameraInReplays(void);
85+
Bool getPlayerObserverEnabled() const;
86+
Int getStaticGameDetail(void);
87+
Int getIdealStaticGameDetail(void);
88+
Real getGammaValue(void);
89+
Int getTextureReduction(void);
90+
void getResolution(Int *xres, Int *yres);
91+
Bool get3DShadowsEnabled(void);
92+
Bool get2DShadowsEnabled(void);
93+
Bool getCloudShadowsEnabled(void);
94+
Bool getLightmapEnabled(void);
95+
Bool getSmoothWaterEnabled(void);
96+
Bool getTreesEnabled(void);
97+
Bool getExtraAnimationsDisabled(void);
98+
Bool getUseHeatEffects(void);
99+
Bool getDynamicLODEnabled(void);
100+
Bool getFPSLimitEnabled(void);
101+
Bool getBuildingOcclusionEnabled(void);
102+
Int getParticleCap(void);
103+
104+
Int getCampaignDifficulty(void);
105+
void setCampaignDifficulty(Int diff);
106+
107+
Int getNetworkLatencyFontSize(void);
108+
Int getRenderFpsFontSize(void);
109+
Int getSystemTimeFontSize(void);
110+
Int getGameTimeFontSize(void);
111+
Int getPlayerInfoListFontSize(void);
112+
113+
Real getResolutionFontAdjustment(void);
114+
115+
Bool getShowMoneyPerMinute(void) const;
116+
};

Core/GameEngine/Include/Common/Radar.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ class RadarObject : public MemoryPoolObject,
106106
const RadarObject *friend_getNext( void ) const { return m_next; }
107107

108108
Bool isTemporarilyHidden() const;
109-
static Bool isTemporarilyHidden(const Object* obj);
110109

111110
protected:
112111

@@ -260,12 +259,6 @@ class Radar : public Snapshot,
260259
* in exactly the same priority as the regular
261260
* object list for all other objects */
262261

263-
// TheSuperHackers @bugfix xezon 22/11/2025 Now stores local heroes in a separate list,
264-
// because they are treated with special icons but should otherwise work like all other
265-
// radar objects. In retail version, the cached hero object data was able to dangle
266-
// for a few frames and cause undefined behavior.
267-
RadarObject *m_localHeroObjectList; ///< list of hero objects for the local player
268-
269262
Real m_terrainAverageZ; ///< average Z for terrain samples
270263
Real m_waterAverageZ; ///< average Z for water samples
271264

0 commit comments

Comments
 (0)