Vladislav Belov
4ae50fd4a4
Reduces memory peak during window resize
2026-09-10 15:38:55 +02:00
phosit
7bcee2ea0e
Remove XERO_ITER_EL
2026-09-08 10:32:51 +02:00
phosit
f8ea2c0d49
Remove XERO_ITER_ATTR
2026-09-08 10:32:51 +02:00
Vladislav Belov
551071c5a4
Replaces shared_ptr by span for LoadFile and Store
2026-09-05 12:33:46 +02:00
phosit
d37db2ba07
Remove CStr::ReverseFind
...
It was only used once. In this case a normal `std::string::find` can be
used.
2026-08-28 09:50:01 +02:00
phosit
89c7aa47ce
Remove CStr functions related to std::u16string
...
It wasn't used. The conversion to `std::u16string` wasn't even defined.
2026-08-28 09:50:01 +02:00
phosit
73d043fde5
Remove CStr::Pad
...
It was only used once. It can be replaced by fmt.
2026-08-28 09:50:01 +02:00
phosit
058cdf78d9
Remove CStr::Right
...
It was only a wrapper around `std::string::substr`. The interface
matches the usecase more. In some places it's better to use
`std::string::ends_with`.
2026-08-24 14:05:00 +02:00
phosit
60824e77b9
Remove CStr::Left
...
It was only a wrapper around `std::string::substr`. In some places it's
better to use `std::string::starts_with`.
2026-08-24 13:34:37 +02:00
phosit
d8bb617962
Remove CStr::Find(int, char)
...
It was only a wrapper around `std::string::find`. It is unused.
2026-08-23 17:47:02 +02:00
phosit
5071b27bb1
Remove CStr::Find(char)
...
It was only a wrapper around `std::string::find`. It is only used once.
2026-08-23 17:47:02 +02:00
phosit
982ede2a55
Remove CStr::Find(CStr)
...
It was only a wrapper around `std::string::find`. In some places it's
now better to use `std::string::starts_with`.
2026-08-23 17:46:52 +02:00
phosit
45ea0432a2
Remove CStr::FromDouble
...
In most places `fmt::format` is used because it's locale indidendant.
For the user reporter the locale dependant form of `fmt::format` is used
because it's shown to the user.
2026-08-23 12:01:33 +02:00
phosit
d6bdf51d83
Remove CStr::FromInt64$
...
For the usecase it's better to use `fmt::format`.
2026-08-06 18:03:05 +02:00
phosit
ae936e8177
Remove CStr::FromUInt
...
There is `std::to_string` which does the same. For most uses it's better
to use `fmt::format`.
2026-08-06 18:03:05 +02:00
phosit
06e199b12a
Remove CStr::FromInt
...
There is `std::to_string` which does the same. For most uses it's better
to use `fmt::format`.
2026-08-06 18:03:05 +02:00
phosit
e712601602
PreInitGame and InitGame in the Loader
...
This makes the frame before the simulation starts less stuttery. Doing
it in the Loader also allows to make the progressbar more acurate.
2026-08-02 14:03:28 +02:00
phosit
c7953026dd
Use switchPage in autostart
...
Autostart used `OpenChildPage` to open the loading page. Because it's
started as child page the program doesn't end when closing it.
2026-07-30 12:36:51 +02:00
phosit
4122f0bfb3
Use atomic instead of COMPILER_FENCE for Profiler2
2026-07-24 17:22:44 +02:00
Vantha
6456bccebe
Replace old GetState and SetState calls
...
966727b52e made the player state an enum and introduced more descriptive
functions to achieve the same thing, but it seems they were forgotten to
be replaced in a few places, which this patch fixes.
2026-07-22 23:51:49 +02:00
Ralph Sennhauser
6244d25f90
Don't generate SDL events on Atlas shutdown
...
WX may still generate mouse events after calling CVideoMode::Shutdown(),
so don't create SDL events triggering assertions.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-07-19 08:59:06 +02:00
Ralph Sennhauser
38d247467f
Handle incompatible mods for Atlas
...
In case of incompatible mods listed on the command line we can't launch
the mod selector from Atlas. Instead list the offending mods and launch
with the default mods.
Fixes : #8852
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-07-12 20:16:52 +02:00
Ralph Sennhauser
9add728945
Don't track fullscreen mode
...
SDL already does it.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-07-10 21:37:14 +02:00
Ralph Sennhauser
711a584d3e
Remove workaround for old SDL2 on Windows
...
This removes the workaround for a bug[1] @Stan confirmed was fixed
upstream in SDL2 2.20 in the mentioned bug report. On Windows we are
using 2.32.8 now.
[1] https://github.com/libsdl-org/SDL/issues/5033
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-07-09 16:24:09 +02:00
Ralph Sennhauser
99bbc24265
Remove global g_xres and x_yres
...
Instead query g_VideoMode where needed. As both g_xres and g_yres aren't
global anymore remove static from UpdateRenderer. While at it use more
desicriptive names: GetXRes -> GetWindowWidth, GetYRes ->
GetWindowHeight.
This reduces the amount of variables tracking width and height by one
each.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-07-08 11:35:46 +02:00
Vladislav Belov
46af67b5bd
Removes RenderPath
...
We can render the game only with shaders so we don't need to support
fixed function pipeline as a separate render path. We only need to know
when to warn a user.
Fixes #6244
2026-07-07 23:12:45 +02:00
Vladislav Belov
0538e95793
Makes GameView::GetCamera constant
2026-06-28 17:57:26 +02:00
Vladislav Belov
e0d131854d
Makes GameView returning reference on camera
2026-06-28 17:57:16 +02:00
Vladislav Belov
7790c0972b
Removes legacy timers
...
Modern profiling tools provide more details and more precise
measurements for more platforms. For simpler cases we have our in-game
profiler.
2026-06-28 13:34:01 +02:00
Ralph Sennhauser
9baa3bcd62
Drop DGA mouse workaround
...
Is no longer supported in SDL2, so this workaround does nothing anymore.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-28 09:49:25 +02:00
Ralph Sennhauser
0bfd703eda
Drop XInitThreads workaround
...
GTK used by wxWidgets on Unix calls it when creating an X11 window as
does SDL. As such this is no longer needed and we avoid a direct
dependency on X11.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-28 09:49:25 +02:00
vyordan
ec8b420abc
Move Script* classes to Script namespace
...
- Rename ScriptEngine, ScriptContext, ScriptInterface, ScriptRequest to
Script::Engine, Script::Context, Script::Interface, Script::Request
- Remove 'Script' prefix from filenames:
ScriptContext.* → Context.*
ScriptInterface.* → Interface.*
ScriptRequest.* → Request.*
ScriptEngine.* → Engine.*
ScriptConversions.* → Conversions.*
ScriptExceptions.* → Exceptions.*
ScriptForward.* → ForwardDeclarations.*
ScriptStats.* → Stats.*
- Update all includes, forward declarations, and friend classes
- Use namespace Script { ... } in .cpp definitions to avoid repetitive
Script:: prefix (keeping global callbacks outside)
- Rename internal implementation structs:
ScriptInterface_impl → Interface_impl
ScriptFunction → Function
- Update copyright year to 2026 in all touched files
- Suppress pre-existing cppcheck warnings (uninitvar, nullPointer, unknown
macro) by adding them to suppressions-list.txt (these are not caused
by this refactor)
Fixes #7516
2026-06-20 17:43:00 +02:00
Vladislav Belov
f72c0c1c09
Enables fragment PBR resolve shader in PostProc
2026-06-20 13:29:11 +02:00
Ralph Sennhauser
181a29597d
Remove helper function FileExists
...
Use std::filesystem at caller site instead.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-20 12:01:38 +02:00
Ralph Sennhauser
355c068068
Remove helper function FileSize
...
Use std::filesystem at caller site instead.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-20 09:00:57 +02:00
phosit
364d50e184
Move the gameView input handler to CGameView
...
`game_view_handler` isn't global anymore. That makes the interface
simpler and might make the compilation and the runtime faster.
2026-06-19 20:53:52 +02:00
phosit
3bf8e92ed4
Move the profileViewer handler to CProfileViewer
...
`CProfileViewer::InputThunk` isn't global anymore. That makes the
interface simpler and might make the compilation and the runtime faster.
2026-06-19 20:53:52 +02:00
phosit
80d5fd7a52
Move the gui input handler to CGUIManager
...
`gui_handler` isn't global anymore. That makes the interface simpler and
might make the compilation and the runtime faster.
2026-06-19 20:53:52 +02:00
phosit
b2a8f94a20
Move the console input handler to CConsole
...
`conInputHandler` isn't global anymore. That makes the interface simpler
and might make the compilation and the runtime faster.
2026-06-19 20:53:52 +02:00
phosit
596c0c2ddd
Split screenshot from main input handler
...
This enables the screenshot hotkeys in atlas.
2026-06-19 20:53:52 +02:00
phosit
464d40ab61
Split window from main event handler
...
Two globals can be removed.
2026-06-19 20:53:52 +02:00
phosit
3af4287f6d
Change the return type of event-handler
...
The return value is more strongly typed.
2026-06-19 20:53:52 +02:00
phosit
47e8a17a41
New input handling system
...
The new system allows to register all function objects as Input::Handler
not only function pointers.
To not get dangling references a handler is unsubscribed on it's
destruction.
The order in with the handlers are executed has to be specified by the
slot-argument, instead of the reverse order of registration.
2026-06-19 20:53:51 +02:00
Ralph Sennhauser
8336e679af
Replace all uses of POSIX realpath
...
Use `<filesystem>` instead of `realpath` and remove wrapper.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-16 14:08:02 +02:00
Ralph Sennhauser
518ed74496
Replace all use of POSIX unlink
...
Use `<filesystem>` instead of `unlink` and remove `unlink` portability
wrapper.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-06-15 15:33:59 +02:00
Vladislav Belov
4d83aa28e5
Uses SwapChain instead of direct Device calls
2026-06-08 18:27:06 +02:00
Ralph Sennhauser
a0bb103390
Unwrap SDL_Event
...
Since C++11 a C typedef'ed union can be forward declared, so the wrapper
is no longer needed.
While at it switch signatures to refs and convert C style casts.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2026-05-20 19:44:52 +02:00
Vladislav Belov
18a16aa135
Moves all rendering to material passes
...
Now we should use material passes instead of context and defines to
select a needed shader. It allows us to reduce the number of
shader combinations we use and reduce memory consumption.
2026-05-10 23:57:20 +02:00
Vladislav Belov
75bd640bd8
Removes context of terrain shadows and silhouettes
...
We were unnecessary passing all combinations of our scene shader context
even if we don't need it as for shadows and silhouettes for terrain
rendering. Since we only need to draw a solid color.
2026-05-10 23:56:57 +02:00
phosit
c042b3ca2c
Start the serializationtest at a specivic turn
...
This enables to only test critical game sections.
2026-05-10 14:18:48 +02:00