Skip to content

Commit fc0367e

Browse files
committed
Merge remote-tracking branch 'god-team/main' into okji/feat/macos-port
2 parents 2c3a7ba + d48d6aa commit fc0367e

1,243 files changed

Lines changed: 18444 additions & 51348 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
@@ -695,13 +694,13 @@ set(GAMEENGINE_SRC
695694
Source/GameClient/ClientInstance.cpp
696695
Source/GameClient/Color.cpp
697696
Source/GameClient/Credits.cpp
698-
# Source/GameClient/Display.cpp
697+
Source/GameClient/Display.cpp
699698
Source/GameClient/DisplayString.cpp
700699
Source/GameClient/DisplayStringManager.cpp
701700
# Source/GameClient/Drawable.cpp
702-
# Source/GameClient/Drawable/Update/AnimatedParticleSysBoneClientUpdate.cpp
703-
# Source/GameClient/Drawable/Update/BeaconClientUpdate.cpp
704-
# Source/GameClient/Drawable/Update/SwayClientUpdate.cpp
701+
Source/GameClient/Drawable/Update/AnimatedParticleSysBoneClientUpdate.cpp
702+
Source/GameClient/Drawable/Update/BeaconClientUpdate.cpp
703+
Source/GameClient/Drawable/Update/SwayClientUpdate.cpp
705704
Source/GameClient/DrawGroupInfo.cpp
706705
# Source/GameClient/Eva.cpp
707706
Source/GameClient/FXList.cpp
@@ -726,17 +725,17 @@ set(GAMEENGINE_SRC
726725
# Source/GameClient/GUI/ControlBar/ControlBarUnderConstruction.cpp
727726
# Source/GameClient/GUI/DisconnectMenu/DisconnectMenu.cpp
728727
# Source/GameClient/GUI/EstablishConnectionsMenu/EstablishConnectionsMenu.cpp
729-
# Source/GameClient/GUI/Gadget/GadgetCheckBox.cpp
730-
# Source/GameClient/GUI/Gadget/GadgetComboBox.cpp
731-
# Source/GameClient/GUI/Gadget/GadgetHorizontalSlider.cpp
732-
# Source/GameClient/GUI/Gadget/GadgetListBox.cpp
733-
# Source/GameClient/GUI/Gadget/GadgetProgressBar.cpp
734-
# Source/GameClient/GUI/Gadget/GadgetPushButton.cpp
735-
# Source/GameClient/GUI/Gadget/GadgetRadioButton.cpp
736-
# Source/GameClient/GUI/Gadget/GadgetStaticText.cpp
737-
# Source/GameClient/GUI/Gadget/GadgetTabControl.cpp
738-
# Source/GameClient/GUI/Gadget/GadgetTextEntry.cpp
739-
# Source/GameClient/GUI/Gadget/GadgetVerticalSlider.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
740739
Source/GameClient/GUI/GameFont.cpp
741740
Source/GameClient/GUI/GameWindow.cpp
742741
Source/GameClient/GUI/GameWindowGlobal.cpp
@@ -824,13 +823,13 @@ set(GAMEENGINE_SRC
824823
Source/GameClient/SelectionInfo.cpp
825824
Source/GameClient/Snow.cpp
826825
Source/GameClient/Statistics.cpp
827-
# Source/GameClient/System/Anim2D.cpp
826+
Source/GameClient/System/Anim2D.cpp
828827
# Source/GameClient/System/CampaignManager.cpp
829828
Source/GameClient/System/Debug/AudioDebugDisplay.cpp
830-
# Source/GameClient/System/DebugDisplay.cpp
831-
# Source/GameClient/System/Image.cpp
829+
Source/GameClient/System/DebugDisplay.cpp
830+
Source/GameClient/System/Image.cpp
832831
Source/GameClient/System/ParticleSys.cpp
833-
# Source/GameClient/System/RayEffect.cpp
832+
Source/GameClient/System/RayEffect.cpp
834833
Source/GameClient/System/Smudge.cpp
835834
Source/GameClient/Terrain/TerrainRoads.cpp
836835
Source/GameClient/Terrain/TerrainVisual.cpp
@@ -1091,12 +1090,12 @@ set(GAMEENGINE_SRC
10911090
# Source/GameLogic/ScriptEngine/ScriptEngine.cpp
10921091
# Source/GameLogic/ScriptEngine/Scripts.cpp
10931092
# Source/GameLogic/ScriptEngine/VictoryConditions.cpp
1094-
# Source/GameLogic/System/CaveSystem.cpp
1095-
# Source/GameLogic/System/CrateSystem.cpp
1096-
# Source/GameLogic/System/Damage.cpp
1093+
Source/GameLogic/System/CaveSystem.cpp
1094+
Source/GameLogic/System/CrateSystem.cpp
1095+
Source/GameLogic/System/Damage.cpp
10971096
# Source/GameLogic/System/GameLogic.cpp
1098-
# Source/GameLogic/System/GameLogicDispatch.cpp
1099-
# Source/GameLogic/System/RankInfo.cpp
1097+
Source/GameLogic/System/GameLogicDispatch.cpp
1098+
Source/GameLogic/System/RankInfo.cpp
11001099
Source/GameNetwork/Connection.cpp
11011100
Source/GameNetwork/ConnectionManager.cpp
11021101
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
@@ -138,6 +138,8 @@ struct FileInfo {
138138
// TheSuperHackers @bugfix xezon 26/10/2025 Adds a mutex to the file exist map to try prevent
139139
// application hangs during level load after the file exist map was corrupted because of writes
140140
// from multiple threads.
141+
//
142+
// TheSuperHackers @feature Mauller 24/04/2026 Add extension removal functions
141143
//===============================
142144
class FileSystem : public SubsystemInterface
143145
{
@@ -162,6 +164,9 @@ class FileSystem : public SubsystemInterface
162164
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.
163165
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.
164166

167+
static bool removeExtension(AsciiString& path);
168+
static bool removeExtension(UnicodeString& path);
169+
165170
protected:
166171
#if ENABLE_FILESYSTEM_EXISTENCE_CACHE
167172
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)