Skip to content

Commit e21bdcf

Browse files
committed
2 parents 28c93dd + bf8d5be commit e21bdcf

1,236 files changed

Lines changed: 16653 additions & 49639 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.

.github/workflows/ci.yml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,15 @@ jobs:
8080
# - preset: "win32-debug"
8181
# tools: true
8282
# extras: true
83-
# - preset: "win32-vcpkg"
84-
# tools: true
85-
# extras: true
86-
# - preset: "win32-vcpkg-profile"
87-
# tools: true
88-
# extras: true
89-
# - preset: "win32-vcpkg-debug"
90-
# tools: true
91-
# extras: true
83+
# #- preset: "win32-vcpkg"
84+
# # tools: true
85+
# # extras: true
86+
# #- preset: "win32-vcpkg-profile"
87+
# # tools: true
88+
# # extras: true
89+
# #- preset: "win32-vcpkg-debug"
90+
# # tools: true
91+
# # extras: true
9292
# fail-fast: false
9393
# uses: ./.github/workflows/build-toolchain.yml
9494
# with:
@@ -144,15 +144,15 @@ jobs:
144144
- preset: "win32-debug"
145145
tools: false
146146
extras: true
147-
# - preset: "win32-vcpkg"
148-
# tools: true
149-
# extras: true
150-
# - preset: "win32-vcpkg-profile"
151-
# tools: true
152-
# extras: true
153-
# - preset: "win32-vcpkg-debug"
154-
# tools: true
155-
# extras: true
147+
#- preset: "win32-vcpkg"
148+
# tools: true
149+
# extras: true
150+
#- preset: "win32-vcpkg-profile"
151+
# tools: true
152+
# extras: true
153+
#- preset: "win32-vcpkg-debug"
154+
# tools: true
155+
# extras: true
156156
fail-fast: false
157157
uses: ./.github/workflows/build-toolchain.yml
158158
with:

CMakePresets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@
126126
"inherits": "win32",
127127
"displayName": "Windows 32bit Profile",
128128
"cacheVariables": {
129-
"RTS_BUILD_OPTION_PROFILE": "ON"
129+
"RTS_BUILD_OPTION_PROFILE": "ON",
130+
"RTS_BUILD_OPTION_PROFILE_TRACY": "ON"
130131
}
131132
},
132133
{

CONTRIBUTING.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
To contribute, fork this repository to create your own copy that you can clone locally and push back to. You can use your fork to create pull requests for your code to be merged into this repository.
44

5+
6+
## Contribution guidelines
7+
8+
Prefer opening fewer high quality Pull Requests over many low quality ones. Prioritize polishing existing Pull Requests instead of creating new ones. Do not open Pull Requests as draft unless there are specific requirements that justify it, because draft Pull Requests are generally not looked at and pollute the Pull Request section.
9+
10+
11+
## AI code generation guidelines
12+
13+
Creating changes with LLM generated code is generally allowed. The author is responsible for verifying that all generated code is human readable, maintainable and logically correct. Furthermore, all generated code needs to be tested and verified. The author is not allowed to outsource the polishing of the generated code to the human code reviewers. In a Pull Request, generated code needs to be announced as such and to what extent it was polished by human intervention.
14+
15+
### New code contributors and AI generated code
16+
17+
New contributors are discouraged from submitting Pull Requests with thousands of lines changed or added with the help of LLMs, because human code reviewers cannot attend such volumes at the risk of wasting precious time with potentially poorly generated code.
18+
19+
520
## Code guidelines
621

722
### Scope of code changes

Core/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ target_sources(corei_libraries_include PRIVATE
2222
)
2323
target_link_libraries(corei_always INTERFACE
2424
core_config
25+
core_profile_tracy
2526
core_utility
2627
corei_libraries_include
2728
resources

Core/GameEngine/CMakeLists.txt

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ set(GAMEENGINE_SRC
120120
Include/Common/STLTypedefs.h
121121
Include/Common/StreamingArchiveFile.h
122122
Include/Common/SubsystemInterface.h
123-
# Include/Common/SystemInfo.h
124123
# Include/Common/Team.h
125124
# Include/Common/Terrain.h
126125
# Include/Common/TerrainTypes.h
@@ -142,7 +141,7 @@ set(GAMEENGINE_SRC
142141
Include/Common/XferDeepCRC.h
143142
Include/Common/XferLoad.h
144143
Include/Common/XferSave.h
145-
# Include/GameClient/Anim2D.h
144+
Include/GameClient/Anim2D.h
146145
# Include/GameClient/AnimateWindowManager.h
147146
# Include/GameClient/CampaignManager.h
148147
Include/GameClient/ChallengeGenerals.h
@@ -154,10 +153,10 @@ set(GAMEENGINE_SRC
154153
# Include/GameClient/ControlBarResizer.h
155154
# Include/GameClient/ControlBarScheme.h
156155
Include/GameClient/Credits.h
157-
# Include/GameClient/DebugDisplay.h
156+
Include/GameClient/DebugDisplay.h
158157
# Include/GameClient/Diplomacy.h
159158
# Include/GameClient/DisconnectMenu.h
160-
# Include/GameClient/Display.h
159+
Include/GameClient/Display.h
161160
Include/GameClient/DisplayString.h
162161
Include/GameClient/DisplayStringManager.h
163162
# Include/GameClient/Drawable.h
@@ -168,17 +167,17 @@ set(GAMEENGINE_SRC
168167
# Include/GameClient/ExtendedMessageBox.h
169168
# Include/GameClient/FontDesc.h
170169
Include/GameClient/FXList.h
171-
# Include/GameClient/Gadget.h
172-
# Include/GameClient/GadgetCheckBox.h
173-
# Include/GameClient/GadgetComboBox.h
174-
# Include/GameClient/GadgetListBox.h
175-
# Include/GameClient/GadgetProgressBar.h
176-
# Include/GameClient/GadgetPushButton.h
177-
# Include/GameClient/GadgetRadioButton.h
178-
# Include/GameClient/GadgetSlider.h
179-
# Include/GameClient/GadgetStaticText.h
180-
# Include/GameClient/GadgetTabControl.h
181-
# Include/GameClient/GadgetTextEntry.h
170+
Include/GameClient/Gadget.h
171+
Include/GameClient/GadgetCheckBox.h
172+
Include/GameClient/GadgetComboBox.h
173+
Include/GameClient/GadgetListBox.h
174+
Include/GameClient/GadgetProgressBar.h
175+
Include/GameClient/GadgetPushButton.h
176+
Include/GameClient/GadgetRadioButton.h
177+
Include/GameClient/GadgetSlider.h
178+
Include/GameClient/GadgetStaticText.h
179+
Include/GameClient/GadgetTabControl.h
180+
Include/GameClient/GadgetTextEntry.h
182181
# Include/GameClient/GameClient.h
183182
Include/GameClient/GameFont.h
184183
# Include/GameClient/GameInfoWindow.h
@@ -195,7 +194,7 @@ set(GAMEENGINE_SRC
195194
Include/GameClient/HeaderTemplate.h
196195
# Include/GameClient/HintSpy.h
197196
# Include/GameClient/HotKey.h
198-
# Include/GameClient/Image.h
197+
Include/GameClient/Image.h
199198
Include/GameClient/IMEManager.h
200199
# Include/GameClient/InGameUI.h
201200
Include/GameClient/Keyboard.h
@@ -207,16 +206,16 @@ set(GAMEENGINE_SRC
207206
Include/GameClient/MapUtil.h
208207
# Include/GameClient/MessageBox.h
209208
# Include/GameClient/MetaEvent.h
210-
# Include/GameClient/Module/AnimatedParticleSysBoneClientUpdate.h
211-
# Include/GameClient/Module/BeaconClientUpdate.h
212-
# Include/GameClient/Module/SwayClientUpdate.h
209+
Include/GameClient/Module/AnimatedParticleSysBoneClientUpdate.h
210+
Include/GameClient/Module/BeaconClientUpdate.h
211+
Include/GameClient/Module/SwayClientUpdate.h
213212
Include/GameClient/Mouse.h
214213
Include/GameClient/ParabolicEase.h
215214
Include/GameClient/ParticleSys.h
216215
# Include/GameClient/PlaceEventTranslator.h
217216
Include/GameClient/ProcessAnimateWindow.h
218217
Include/GameClient/RadiusDecal.h
219-
# Include/GameClient/RayEffect.h
218+
Include/GameClient/RayEffect.h
220219
Include/GameClient/SelectionInfo.h
221220
# Include/GameClient/SelectionXlat.h
222221
# Include/GameClient/Shadow.h
@@ -246,9 +245,9 @@ set(GAMEENGINE_SRC
246245
# Include/GameLogic/AITNGuard.h
247246
# Include/GameLogic/Armor.h
248247
# Include/GameLogic/ArmorSet.h
249-
# Include/GameLogic/CaveSystem.h
250-
# Include/GameLogic/CrateSystem.h
251-
# Include/GameLogic/Damage.h
248+
Include/GameLogic/CaveSystem.h
249+
Include/GameLogic/CrateSystem.h
250+
Include/GameLogic/Damage.h
252251
# Include/GameLogic/ExperienceTracker.h
253252
# Include/GameLogic/FiringTracker.h
254253
# Include/GameLogic/FPUControl.h
@@ -487,7 +486,7 @@ set(GAMEENGINE_SRC
487486
# Include/GameLogic/PartitionManager.h
488487
# Include/GameLogic/PolygonTrigger.h
489488
# Include/GameLogic/Powers.h
490-
# Include/GameLogic/RankInfo.h
489+
Include/GameLogic/RankInfo.h
491490
# Include/GameLogic/ScriptActions.h
492491
# Include/GameLogic/ScriptConditions.h
493492
# Include/GameLogic/ScriptEngine.h
@@ -694,13 +693,13 @@ set(GAMEENGINE_SRC
694693
Source/GameClient/ClientInstance.cpp
695694
Source/GameClient/Color.cpp
696695
Source/GameClient/Credits.cpp
697-
# Source/GameClient/Display.cpp
696+
Source/GameClient/Display.cpp
698697
Source/GameClient/DisplayString.cpp
699698
Source/GameClient/DisplayStringManager.cpp
700699
# Source/GameClient/Drawable.cpp
701-
# Source/GameClient/Drawable/Update/AnimatedParticleSysBoneClientUpdate.cpp
702-
# Source/GameClient/Drawable/Update/BeaconClientUpdate.cpp
703-
# Source/GameClient/Drawable/Update/SwayClientUpdate.cpp
700+
Source/GameClient/Drawable/Update/AnimatedParticleSysBoneClientUpdate.cpp
701+
Source/GameClient/Drawable/Update/BeaconClientUpdate.cpp
702+
Source/GameClient/Drawable/Update/SwayClientUpdate.cpp
704703
Source/GameClient/DrawGroupInfo.cpp
705704
# Source/GameClient/Eva.cpp
706705
Source/GameClient/FXList.cpp
@@ -725,17 +724,17 @@ set(GAMEENGINE_SRC
725724
# Source/GameClient/GUI/ControlBar/ControlBarUnderConstruction.cpp
726725
# Source/GameClient/GUI/DisconnectMenu/DisconnectMenu.cpp
727726
# Source/GameClient/GUI/EstablishConnectionsMenu/EstablishConnectionsMenu.cpp
728-
# Source/GameClient/GUI/Gadget/GadgetCheckBox.cpp
729-
# Source/GameClient/GUI/Gadget/GadgetComboBox.cpp
730-
# Source/GameClient/GUI/Gadget/GadgetHorizontalSlider.cpp
731-
# Source/GameClient/GUI/Gadget/GadgetListBox.cpp
732-
# Source/GameClient/GUI/Gadget/GadgetProgressBar.cpp
733-
# Source/GameClient/GUI/Gadget/GadgetPushButton.cpp
734-
# Source/GameClient/GUI/Gadget/GadgetRadioButton.cpp
735-
# Source/GameClient/GUI/Gadget/GadgetStaticText.cpp
736-
# Source/GameClient/GUI/Gadget/GadgetTabControl.cpp
737-
# Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp
738-
# Source/GameClient/GUI/Gadget/GadgetVerticalSlider.cpp
727+
Source/GameClient/GUI/Gadget/GadgetCheckBox.cpp
728+
Source/GameClient/GUI/Gadget/GadgetComboBox.cpp
729+
Source/GameClient/GUI/Gadget/GadgetHorizontalSlider.cpp
730+
Source/GameClient/GUI/Gadget/GadgetListBox.cpp
731+
Source/GameClient/GUI/Gadget/GadgetProgressBar.cpp
732+
Source/GameClient/GUI/Gadget/GadgetPushButton.cpp
733+
Source/GameClient/GUI/Gadget/GadgetRadioButton.cpp
734+
Source/GameClient/GUI/Gadget/GadgetStaticText.cpp
735+
Source/GameClient/GUI/Gadget/GadgetTabControl.cpp
736+
Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp
737+
Source/GameClient/GUI/Gadget/GadgetVerticalSlider.cpp
739738
Source/GameClient/GUI/GameFont.cpp
740739
Source/GameClient/GUI/GameWindow.cpp
741740
Source/GameClient/GUI/GameWindowGlobal.cpp
@@ -823,13 +822,13 @@ set(GAMEENGINE_SRC
823822
Source/GameClient/SelectionInfo.cpp
824823
Source/GameClient/Snow.cpp
825824
Source/GameClient/Statistics.cpp
826-
# Source/GameClient/System/Anim2D.cpp
825+
Source/GameClient/System/Anim2D.cpp
827826
# Source/GameClient/System/CampaignManager.cpp
828827
Source/GameClient/System/Debug/AudioDebugDisplay.cpp
829-
# Source/GameClient/System/DebugDisplay.cpp
830-
# Source/GameClient/System/Image.cpp
828+
Source/GameClient/System/DebugDisplay.cpp
829+
Source/GameClient/System/Image.cpp
831830
Source/GameClient/System/ParticleSys.cpp
832-
# Source/GameClient/System/RayEffect.cpp
831+
Source/GameClient/System/RayEffect.cpp
833832
Source/GameClient/System/Smudge.cpp
834833
Source/GameClient/Terrain/TerrainRoads.cpp
835834
Source/GameClient/Terrain/TerrainVisual.cpp
@@ -1090,12 +1089,12 @@ set(GAMEENGINE_SRC
10901089
# Source/GameLogic/ScriptEngine/ScriptEngine.cpp
10911090
# Source/GameLogic/ScriptEngine/Scripts.cpp
10921091
# Source/GameLogic/ScriptEngine/VictoryConditions.cpp
1093-
# Source/GameLogic/System/CaveSystem.cpp
1094-
# Source/GameLogic/System/CrateSystem.cpp
1095-
# Source/GameLogic/System/Damage.cpp
1092+
Source/GameLogic/System/CaveSystem.cpp
1093+
Source/GameLogic/System/CrateSystem.cpp
1094+
Source/GameLogic/System/Damage.cpp
10961095
# Source/GameLogic/System/GameLogic.cpp
1097-
# Source/GameLogic/System/GameLogicDispatch.cpp
1098-
# Source/GameLogic/System/RankInfo.cpp
1096+
Source/GameLogic/System/GameLogicDispatch.cpp
1097+
Source/GameLogic/System/RankInfo.cpp
10991098
Source/GameNetwork/Connection.cpp
11001099
Source/GameNetwork/ConnectionManager.cpp
11011100
Source/GameNetwork/DisconnectManager.cpp

Core/GameEngine/Include/Common/ArchiveFileSystem.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,7 @@ class ArchiveFileSystem : public SubsystemInterface
126126
ArchiveFileSystem();
127127
virtual ~ArchiveFileSystem() override;
128128

129-
virtual void init() = 0;
130-
virtual void update() = 0;
131-
virtual void reset() = 0;
132-
virtual void postProcessLoad() = 0;
129+
virtual void postProcessLoad() override = 0;
133130

134131
// ArchiveFile operations
135132
virtual ArchiveFile* openArchiveFile( const Char *filename ) = 0; ///< Create new or return existing Archive file from file name

Core/GameEngine/Include/Common/FileSystem.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ struct FileInfo {
134134
// TheSuperHackers @bugfix xezon 26/10/2025 Adds a mutex to the file exist map to try prevent
135135
// application hangs during level load after the file exist map was corrupted because of writes
136136
// from multiple threads.
137+
//
138+
// TheSuperHackers @feature Mauller 24/04/2026 Add extension removal functions
137139
//===============================
138140
class FileSystem : public SubsystemInterface
139141
{
@@ -158,6 +160,9 @@ class FileSystem : public SubsystemInterface
158160
static AsciiString normalizePath(const AsciiString& path); ///< normalizes a file path. The path can refer to a directory. File path must be absolute, but does not need to exist. Returns an empty string on failure.
159161
static Bool isPathInDirectory(const AsciiString& testPath, const AsciiString& basePath); ///< determines if a file path is within a base path. Both paths must be absolute, but do not need to exist.
160162

163+
static bool removeExtension(AsciiString& path);
164+
static bool removeExtension(UnicodeString& path);
165+
161166
protected:
162167
#if ENABLE_FILESYSTEM_EXISTENCE_CACHE
163168
struct FileExistData

Core/GameEngine/Include/Common/GameAudio.h

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,6 @@ class AudioManager : public SubsystemInterface
296296
// For the file cache to know when to remove files.
297297
virtual void closeAnySamplesUsingFile( const void *fileToClose ) = 0;
298298

299-
virtual Bool isMusicAlreadyLoaded() const;
300-
301299
Bool getDisallowSpeech() const { return m_disallowSpeech; }
302300
void setDisallowSpeech( Bool disallowSpeech ) { m_disallowSpeech = disallowSpeech; }
303301

@@ -383,55 +381,4 @@ class AudioManager : public SubsystemInterface
383381
Bool m_disallowSpeech : 1;
384382
};
385383

386-
// TheSuperHackers @feature helmutbuhler 17/05/2025
387-
// AudioManager that does nothing. Used for Headless Mode.
388-
class AudioManagerDummy : public AudioManager
389-
{
390-
#if defined(RTS_DEBUG)
391-
virtual void audioDebugDisplay(DebugDisplayInterface* dd, void* userData, FILE* fp) {}
392-
#endif
393-
virtual void stopAudio(AudioAffect which) override {}
394-
virtual void pauseAudio(AudioAffect which) override {}
395-
virtual void resumeAudio(AudioAffect which) override {}
396-
virtual void pauseAmbient(Bool shouldPause) override {}
397-
virtual void killAudioEventImmediately(AudioHandle audioEvent) override {}
398-
virtual void nextMusicTrack() override {}
399-
virtual void prevMusicTrack() override {}
400-
virtual Bool isMusicPlaying() const override { return false; }
401-
virtual Bool hasMusicTrackCompleted(const AsciiString& trackName, Int numberOfTimes) const override { return false; }
402-
virtual AsciiString getMusicTrackName() const override { return ""; }
403-
virtual void openDevice() override {}
404-
virtual void closeDevice() override {}
405-
virtual void* getDevice() override { return nullptr; }
406-
virtual void notifyOfAudioCompletion(UnsignedInt audioCompleted, UnsignedInt flags) override {}
407-
virtual UnsignedInt getProviderCount() const override { return 0; };
408-
virtual AsciiString getProviderName(UnsignedInt providerNum) const override { return ""; }
409-
virtual UnsignedInt getProviderIndex(AsciiString providerName) const override { return 0; }
410-
virtual void selectProvider(UnsignedInt providerNdx) override {}
411-
virtual void unselectProvider() override {}
412-
virtual UnsignedInt getSelectedProvider() const override { return 0; }
413-
virtual void setSpeakerType(UnsignedInt speakerType) override {}
414-
virtual UnsignedInt getSpeakerType() override { return 0; }
415-
virtual UnsignedInt getNum2DSamples() const override { return 0; }
416-
virtual UnsignedInt getNum3DSamples() const override { return 0; }
417-
virtual UnsignedInt getNumStreams() const override { return 0; }
418-
virtual Bool doesViolateLimit(AudioEventRTS* event) const override { return false; }
419-
virtual Bool isPlayingLowerPriority(AudioEventRTS* event) const override { return false; }
420-
virtual Bool isPlayingAlready(AudioEventRTS* event) const override { return false; }
421-
virtual Bool isObjectPlayingVoice(UnsignedInt objID) const override { return false; }
422-
virtual void adjustVolumeOfPlayingAudio(AsciiString eventName, Real newVolume) override {}
423-
virtual void removePlayingAudio(AsciiString eventName) override {}
424-
virtual void removeAllDisabledAudio() override {}
425-
virtual Bool has3DSensitiveStreamsPlaying() const override { return false; }
426-
virtual void* getHandleForBink() override { return nullptr; }
427-
virtual void releaseHandleForBink() override {}
428-
virtual void friend_forcePlayAudioEventRTS(const AudioEventRTS* eventToPlay) override {}
429-
virtual void setPreferredProvider(AsciiString providerNdx) override {}
430-
virtual void setPreferredSpeaker(AsciiString speakerType) override {}
431-
virtual Real getFileLengthMS(AsciiString strToLoad) const override { return -1; }
432-
virtual void closeAnySamplesUsingFile(const void* fileToClose) override {}
433-
virtual void setDeviceListenerPosition() override {}
434-
};
435-
436-
437384
extern AudioManager *TheAudio;

0 commit comments

Comments
 (0)