Skip to content

Commit 6e074d2

Browse files
committed
Merge branch 'development' into gl-check-update
2 parents dd78608 + 537867f commit 6e074d2

File tree

86 files changed

+1214
-590
lines changed

Some content is hidden

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

86 files changed

+1214
-590
lines changed

.github/workflows/nightly.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ jobs:
127127
- name: Update tag pointing to the previous nightly release
128128
if: steps.check_nightly.outputs.release_exists
129129
run: |
130-
curl -X PATCH \
130+
curl --fail-with-body -X PATCH \
131131
-H "Authorization: Bearer ${{ secrets.WORKFLOW_TOKEN }}" \
132132
-H "Accept: application/vnd.github.v3+json" \
133133
https://api.github.com/repos/${{ github.repository }}/git/refs/tags/${{ env.PREV_TAG }} \

.gitignore

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@
77
*.vs
88
*.APS
99
*.user
10-
10+
# IDE files
1111
/.idea
1212

1313
compile_commands.json
14-
/.ccls-cache
14+
**/.ccls-cache
1515

16-
/build*
16+
**/build*
1717

1818
/enc_temp_folder
1919

20+
.vs/
2021
/.idea
2122
/_Bin
2223
/NATPunchServer/Server/NATCompleteServer/Debug
@@ -72,6 +73,7 @@ luac.out
7273
*.bat
7374
CortexCommand
7475
CortexCommand_debug
76+
CortexCommand.AppImage
7577

7678
# Debug databases
7779
*.pdb
@@ -84,10 +86,10 @@ CortexCommand_debug
8486
# MacOS stuff
8587
.DS_Store
8688

87-
.vs/
88-
Screenshots/
89+
# CortexCommand user files
90+
Screen[sS]hots/
8991
Mods/
90-
Userdata/
92+
User[dD]ata/
9193

9294
allegro.log
9395
AbortScreen.*

CHANGELOG.md

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,58 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
88

99
<details><summary><b>Added</b></summary>
1010

11-
- New music system, including a dynamic horizontal sequencing system, under the new music manager `MusicMan`.
11+
- New music system, including a dynamic horizontal sequencing system, under the new music manager `MusicMan`.
1212
`PlayDynamicSong(string songName, string songSectionName, bool playImmediately, bool playTransition, bool smoothFade)` to play a new DynamicSong.
13-
`SetNextDynamicSongSection(string songSectionName, bool playImmediately, bool playTransition, bool smoothFade)` to queue a new DynamicSongSection for the currently playing song.
14-
`PlayInterruptingMusic(SoundContainer soundContainer)` to start an interrupting piece of music which will pause any playing DynamicSong. Note that pause menu music happily overrides this currently.
15-
`EndInterruptingMusic()` to end any playing interrupting music, and resume any paused DynamicSongs.
16-
`EndDynamicMusic(bool fadeOut)` to end any currently playing dynamic music, optionally immediately fading it out. If not fading it out, the currently playing piece will play to completion.
13+
`SetNextDynamicSongSection(string songSectionName, bool playImmediately, bool playTransition, bool smoothFade)` to queue a new DynamicSongSection for the currently playing song.
14+
`PlayInterruptingMusic(SoundContainer soundContainer)` to start an interrupting piece of music which will pause any playing DynamicSong. Note that pause menu music happily overrides this currently.
15+
`EndInterruptingMusic()` to end any playing interrupting music, and resume any paused DynamicSongs.
16+
`EndDynamicMusic(bool fadeOut)` to end any currently playing dynamic music, optionally immediately fading it out. If not fading it out, the currently playing piece will play to completion.
1717
`ResetMusicState()` to immediately end all music and return the MusicMan to a blank state.
1818

19-
- New entities `DynamicSongSection` and `DynamicSong` which are used for organizing music to play using the new system.
20-
`DynamicSongSection` is made up of TransitionSoundContainers, SoundContainers, a string SectionType, and either randomnorepeat or shuffle SoundContainerSelectionCycleMode.
19+
- New entities `DynamicSongSection` and `DynamicSong` which are used for organizing music to play using the new system.
20+
`DynamicSongSection` is made up of TransitionSoundContainers, SoundContainers, a string SectionType, and either randomnorepeat or shuffle SoundContainerSelectionCycleMode.
2121
`DynamicSong` is a simple container of DynamicSongSections. It can have one DefaultSongSection and as many added sections as needed.
2222

23-
- New `SoundContainer` features.
24-
Lua property `Paused` (R/W) to pause or unpause all sounds of a SoundContainer. Newly played sounds will not begin playback until unpaused.
25-
Lua function `GetAudibleVolume` to get the real audible volume of a SoundContainer's sounds as a float from 0 to 1. This accounts for literally everything, including game volume.
23+
- New `SoundContainer` features.
24+
Lua property `Paused` (R/W) to pause or unpause all sounds of a SoundContainer. Newly played sounds will not begin playback until unpaused.
25+
Lua function `GetAudibleVolume` to get the real audible volume of a SoundContainer's sounds as a float from 0 to 1. This accounts for literally everything, including game volume.
26+
27+
- Allow lua scripts to use LuaJIT's BitOp module (see https://bitop.luajit.org/api.html)
2628

2729
</details>
2830

2931
<details><summary><b>Changed</b></summary>
3032

3133
- Conquest activities will once again fall-back to using base dropships and rockets if a random selection of the selected tech's craft can't find one capable of carrying passengers and/or cargo.
3234

33-
- ALl music-related functionality from AudioMan has been removed due to the addition of the MusicMan. Generic DynamicSongs have been put in to use instead.
35+
- All music-related functionality from AudioMan has been removed due to the addition of the MusicMan. Generic DynamicSongs have been put in to use instead.
3436
Mod activities that used to queue up all the vanilla music should now instead call, for example, `MusicMan:PlayDynamicSong("Generic Battle Music")`
3537

36-
</details>
38+
- Increased fog-of-war resolution in all vanilla activities, and conquest, from 20x20 to 4x4.
39+
The Ronin Scrambler, the basic scanner, and `SceneMan:CastUnseenRay` have been changed to accomodate fog-of-war resolutions as fine as 1x1 and as course as 20x20.
40+
The fog-of-war revealing code is now multithreaded to increase performance.
3741

38-
<details><summary><b>Removed</b></summary>
42+
- All vanilla scenario activities have had their settings polished, respecting settings which make sense and disabling settings which don't.
43+
You can now have fog of war in the test scene, and can no longer require path to orbit in Zero-G Diggers-Only One Man Army.
44+
45+
- The Signal Hunt activity no longer has a preview image, as it was not formatted correctly and spoiled the interior structure of the cave.
46+
47+
- `MovableObject`'s `UniqueID` and `Age` fields are now persisted through game save/load.
3948

4049
</details>
4150

4251
<details><summary><b>Fixed</b></summary>
4352

53+
- Fixed a crash on launch that could occur depending on what Microsoft Visual C++ Redistributable the user has installed.
54+
4455
- Fixed an issue where palette index 255 was incorrectly showing as black.
4556

57+
- Fixed instances of `CameraMan:GetScrollTarget()` and `CameraMan:SetScrollTarget()` supplying a player index instead of a screen index. This could prevent the functions from working properly, or at all, when playing as a player other than 1, potentially screwing up camera effects.
58+
59+
- Fixed a bug in Decision Day that could cause an error when trying to set the camera's scroll target, in addition to the previous issue.
60+
61+
- Fixed a bug in Harvester and Massacre where setting deploy units would auto-assign units of the wrong tech.
62+
4663
</details>
4764

4865
## [Release v6.2.2] - 2024/02/24

Data/Base.rte/Activities.ini

Lines changed: 106 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
///////////////////////////////////////////////////////////////////////
22
// List of Activities or "Game Modes"
3+
//
4+
// Standard format as far as user switches is to define defaults in the order that they can be read in the GUI from left to right and top to bottom.
5+
// Switch enabled state follows in the same order.
36

47

58
AddActivity = GATutorial
@@ -11,6 +14,12 @@ AddActivity = GATutorial
1114
Team1Funds = 1500
1215
CPUTeam = 1
1316
MaxPlayerSupport = 1
17+
DefaultRequireClearPathToOrbit = 1
18+
DefaultFogOfWar = 0
19+
DefaultDeployUnits = 1
20+
RequireClearPathToOrbitSwitchEnabled = 0
21+
FogOfWarSwitchEnabled = 0
22+
DeployUnitsSwitchEnabled = 0
1423

1524

1625
AddActivity = GAScripted
@@ -25,8 +34,11 @@ AddActivity = GAScripted
2534
MinTeamsRequired = 2
2635
LuaClassName = SkirmishDefense
2736
DefaultRequireClearPathToOrbit = 1
28-
DeployUnitsSwitchEnabled = 1
37+
DefaultFogOfWar = 1
2938
DefaultDeployUnits = 0
39+
RequireClearPathToOrbitSwitchEnabled = 1
40+
FogOfWarSwitchEnabled = 1
41+
DeployUnitsSwitchEnabled = 1
3042

3143

3244
AddActivity = GAScripted
@@ -40,6 +52,11 @@ AddActivity = GAScripted
4052
Team2Name = Green Team
4153
MinTeamsRequired = 2
4254
DefaultRequireClearPathToOrbit = 1
55+
DefaultFogOfWar = 1
56+
DefaultDeployUnits = 0
57+
RequireClearPathToOrbitSwitchEnabled = 1
58+
FogOfWarSwitchEnabled = 1
59+
DeployUnitsSwitchEnabled = 1
4360
4461
4562
AddActivity = GAScripted
@@ -63,8 +80,11 @@ AddActivity = GAScripted
6380
Team1Name = Attackers
6481
Team2Name = Defenders
6582
DefaultRequireClearPathToOrbit = 1
66-
DeployUnitsSwitchEnabled = 1
83+
DefaultFogOfWar = 1
6784
DefaultDeployUnits = 1
85+
RequireClearPathToOrbitSwitchEnabled = 1
86+
FogOfWarSwitchEnabled = 1
87+
DeployUnitsSwitchEnabled = 1
6888
6989
7090
AddActivity = GAScripted
@@ -83,22 +103,29 @@ AddActivity = GAScripted
83103
DefaultGoldHardDifficulty = 3000
84104
DefaultGoldNutsDifficulty = 2000
85105
DefaultGoldMaxDifficulty = 350
86-
DefaultDeployUnits = 1
106+
DefaultRequireClearPathToOrbit = 1
87107
DefaultFogOfWar = 1
88-
DeployUnitsSwitchEnabled = 0
108+
DefaultDeployUnits = 0
109+
RequireClearPathToOrbitSwitchEnabled = 1
110+
FogOfWarSwitchEnabled = 1
111+
DeployUnitsSwitchEnabled = 1
89112
90113
91114
AddActivity = GAScripted
92115
PresetName = Survival
93116
Description = Build a base, then survive until the time is up!
94117
SceneName = Ketanot Hills
95118
ScriptPath = Base.rte/Activities/Survival.lua
96-
TeamOfPlayer1 = 0
97-
CPUTeam = 1
119+
TeamOfPlayer1 = 1
120+
CPUTeam = 0
98121
LuaClassName = Survival
99122
DefaultRequireClearPathToOrbit = 1
100-
DeployUnitsSwitchEnabled = 1
123+
DefaultFogOfWar = 1
101124
DefaultDeployUnits = 0
125+
GoldSwitchEnabled = 1
126+
RequireClearPathToOrbitSwitchEnabled = 1
127+
FogOfWarSwitchEnabled = 1
128+
DeployUnitsSwitchEnabled = 1
102129
103130
104131
AddActivity = GAScripted
@@ -109,8 +136,19 @@ AddActivity = GAScripted
109136
TeamOfPlayer1 = 0
110137
CPUTeam = 1
111138
LuaClassName = OneManArmy
112-
DeployUnitsSwitchEnabled = 1
139+
DefaultGoldCakeDifficulty = 0
140+
DefaultGoldEasyDifficulty = 0
141+
DefaultGoldMediumDifficulty = 0
142+
DefaultGoldHardDifficulty = 0
143+
DefaultGoldNutsDifficulty = 0
144+
DefaultGoldMaxDifficulty = 0
145+
DefaultRequireClearPathToOrbit = 0
146+
DefaultFogOfWar = 1
113147
DefaultDeployUnits = 0
148+
GoldSwitchEnabled = 0
149+
RequireClearPathToOrbitSwitchEnabled = 0
150+
FogOfWarSwitchEnabled = 1
151+
DeployUnitsSwitchEnabled = 1
114152
115153
116154
AddActivity = GAScripted
@@ -121,8 +159,20 @@ AddActivity = GAScripted
121159
TeamOfPlayer1 = 0
122160
CPUTeam = 1
123161
LuaClassName = OneManArmy
124-
DeployUnitsSwitchEnabled = 1
162+
DefaultGoldCakeDifficulty = 0
163+
DefaultGoldEasyDifficulty = 0
164+
DefaultGoldMediumDifficulty = 0
165+
DefaultGoldHardDifficulty = 0
166+
DefaultGoldNutsDifficulty = 0
167+
DefaultGoldMaxDifficulty = 0
125168
DefaultDeployUnits = 0
169+
DefaultFogOfWar = 1
170+
DefaultRequireClearPathToOrbit = 0
171+
GoldSwitchEnabled = 0
172+
RequireClearPathToOrbitSwitchEnabled = 0
173+
FogOfWarSwitchEnabled = 1
174+
DeployUnitsSwitchEnabled = 1
175+
126176
127177
128178
AddActivity = GAScripted
@@ -134,10 +184,21 @@ AddActivity = GAScripted
134184
CPUTeam = 1
135185
LuaClassName = OneManArmyZeroG
136186
SceneName = Zero-G Battle
137-
DeployUnitsSwitchEnabled = 1
187+
DefaultGoldCakeDifficulty = 0
188+
DefaultGoldEasyDifficulty = 0
189+
DefaultGoldMediumDifficulty = 0
190+
DefaultGoldHardDifficulty = 0
191+
DefaultGoldNutsDifficulty = 0
192+
DefaultGoldMaxDifficulty = 0
193+
DefaultRequireClearPathToOrbit = 0
194+
DefaultFogOfWar = 0
138195
DefaultDeployUnits = 0
196+
GoldSwitchEnabled = 0
197+
RequireClearPathToOrbitSwitchEnabled = 0
198+
FogOfWarSwitchEnabled = 0
199+
DeployUnitsSwitchEnabled = 0
139200
140-
201+
// Path to orbit guaranteed by currently being in orbit.
141202
AddActivity = GAScripted
142203
PresetName = One-Man Army (Diggers, 0-G)
143204
Description = Survive with only one unit and no backups in a Zero-G void! The enemy will only use diggers, but the harder the difficulty the less potent weaponry you start out with, and the longer you have to survive.
@@ -147,34 +208,51 @@ AddActivity = GAScripted
147208
CPUTeam = 1
148209
LuaClassName = OneManArmyZeroG
149210
SceneName = Zero-G Battle
150-
DeployUnitsSwitchEnabled = 1
211+
DefaultGoldCakeDifficulty = 0
212+
DefaultGoldEasyDifficulty = 0
213+
DefaultGoldMediumDifficulty = 0
214+
DefaultGoldHardDifficulty = 0
215+
DefaultGoldNutsDifficulty = 0
216+
DefaultGoldMaxDifficulty = 0
217+
DefaultRequireClearPathToOrbit = 0
218+
DefaultFogOfWar = 0
151219
DefaultDeployUnits = 0
220+
GoldSwitchEnabled = 0
221+
RequireClearPathToOrbitSwitchEnabled = 0
222+
FogOfWarSwitchEnabled = 0
223+
DeployUnitsSwitchEnabled = 0
152224
153225
154226
AddActivity = GAScripted
155227
PresetName = Massacre
156228
Description = Build a base, then kill all the enemies!
157229
SceneName = Ketanot Hills
158230
ScriptPath = Base.rte/Activities/Massacre.lua
159-
TeamOfPlayer1 = 0
160-
CPUTeam = 1
231+
TeamOfPlayer1 = 1
232+
CPUTeam = 0
161233
LuaClassName = Massacre
162234
DefaultRequireClearPathToOrbit = 1
163-
DeployUnitsSwitchEnabled = 1
235+
DefaultFogOfWar = 1
164236
DefaultDeployUnits = 0
237+
RequireClearPathToOrbitSwitchEnabled = 1
238+
FogOfWarSwitchEnabled = 1
239+
DeployUnitsSwitchEnabled = 1
165240
166241
167242
AddActivity = GAScripted
168243
PresetName = Harvester
169244
Description = Build a base, then dig up as much gold as you can!
170245
SceneName = Ketanot Hills
171246
ScriptPath = Base.rte/Activities/Harvester.lua
172-
TeamOfPlayer1 = 0
173-
CPUTeam = 1
247+
TeamOfPlayer1 = 1
248+
CPUTeam = 0
174249
LuaClassName = Harvester
175250
DefaultRequireClearPathToOrbit = 1
176-
DeployUnitsSwitchEnabled = 1
251+
DefaultFogOfWar = 1
177252
DefaultDeployUnits = 0
253+
RequireClearPathToOrbitSwitchEnabled = 1
254+
FogOfWarSwitchEnabled = 1
255+
DeployUnitsSwitchEnabled = 1
178256
179257
180258
AddActivity = GAScripted
@@ -186,8 +264,12 @@ AddActivity = GAScripted
186264
CPUTeam = 1
187265
MaxPlayerSupport = 1
188266
LuaClassName = KeepieUppie
189-
DeployUnitsSwitchEnabled = 1
267+
DefaultRequireClearPathToOrbit = 0
268+
DefaultFogOfWar = 1
190269
DefaultDeployUnits = 0
270+
RequireClearPathToOrbitSwitchEnabled = 0
271+
FogOfWarSwitchEnabled = 1
272+
DeployUnitsSwitchEnabled = 1
191273
192274
193275
///////////////////////////////////////////////////////////////////////
@@ -203,10 +285,14 @@ AddActivity = GAScripted
203285
TeamOfPlayer4 = 0
204286
MinTeamsRequired = 1
205287
Team1Funds = 100000
206-
DeployUnitsSwitchEnabled = 1
207288
ScriptPath = Base.rte/Activities/Test.lua
208289
LuaClassName = Test
290+
DefaultRequireClearPathToOrbit = 0
291+
DefaultFogOfWar = 0
209292
DefaultDeployUnits = 0
293+
RequireClearPathToOrbitSwitchEnabled = 1
294+
FogOfWarSwitchEnabled = 1
295+
DeployUnitsSwitchEnabled = 1
210296
211297
212298
/*

0 commit comments

Comments
 (0)