Commit Graph

583 Commits (38058512556e6786370668e46ceb0a8dc025282f)

Author SHA1 Message Date
tomangelo 37e4ed8029
Updated license headers (#1317)
* Updated headers

* Updated more headers
2020-07-07 10:19:36 +02:00
Fiftytwo 373d8de7d0 Make burning and destroyed objects physical 2020-06-13 16:08:06 +02:00
Fiftytwo 7f9efea0a2 Remove unnecessary whitespaces 2020-05-15 20:29:48 +02:00
Fiftytwo 0b9673029d Merge dev into dev-builders and resolve conflicts 2020-05-15 15:06:37 +02:00
Emxx52 00d72d8d7b
Merge pull request #1265 from DavivaD/dev-thumper-patch
Thumper Patch
2020-04-24 21:09:04 +02:00
Fiftytwo ddab760624 Add rollert.png to OldModelManager 2020-04-07 14:35:59 +02:00
Fiftytwo 0c69dc8d30 Make Ants and Spiders able to destroy TargetBot 2020-04-05 16:05:57 +02:00
DavivaD 190e04fdd7 Move PT_FRAGV to the end of the pyro_type.h list + Undo reordering 2019-07-26 17:33:04 +02:00
DavivaD 9c2ea5f488 Undo some changes + space fixes 2019-07-22 17:04:15 +02:00
DavivaD b8b2d32bc1 Thumper Patch 2019-07-22 01:15:11 +02:00
B-CE 17d85eb434 Translate french comments + correct typo 2019-06-19 08:50:47 +02:00
tomangelo2 0f6e1d7d4a Style fix 2019-02-18 14:43:56 +01:00
tomangelo bc3fbd21d0
Merge pull request #1231 from colobot/dev-issue-1128
Potential fix for issue #1128
2019-02-07 01:12:10 +01:00
tomangelo2 be97167994 Potential fix for issue #1128 2019-01-02 01:18:45 +01:00
Fiftytwo 723c552783 Add Heavy and Amphibious trainer bots 2018-12-23 07:04:06 +01:00
Bartosz Cieśla 7c88a6e667 Fix for #1194 2018-10-13 10:12:41 +02:00
tomangelo a76bbe49ed
Merge pull request #1189 from colobot/dev-msvc
Add some Visual Studio specific fixes
2018-09-08 22:00:47 +02:00
tomangelo 7d46ee762a
Merge pull request #1181 from colobot/dev-vsync
Add VSync switch to Device tab
2018-08-21 12:16:03 +02:00
DavivaD 1b47cf76d3 Implement Mod Manager 2018-08-02 07:38:32 +02:00
MrSimbax 7e19622b85 Allow both F11 and F12 for stats 2018-07-25 23:45:15 +02:00
MrSimbax 32d3d1eb92 Change key for debug menu to F10 and for stats to F11
F12 is used by Visual Studio debugger to trigger a breakpoint and apparently it cannot be changed:

"The F12 key is reserved for use by the debugger at all times, so it should not be registered as a hot key. Even when you are not debugging an application, F12 is reserved in case a kernel-mode debugger or a just-in-time debugger is resident."
Source: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646309.aspx?f=255&MSPPError=-2147217396
2018-07-25 21:38:47 +02:00
tomangelo 5080cb46b1
Merge pull request #1031 from tomangelo2/dev
Added fonts configurability by a separate file
2018-07-25 19:51:55 +02:00
tomangelo2 3383532752 Changed font_config to font_loader
Apparently linter doesn't like files with `config` in its name
2018-07-25 00:44:06 +02:00
tomangelo2 df46bcfe2d Fix another linter warning 2018-07-23 14:03:59 +02:00
tomangelo 5041aa377d
Merge pull request #1156 from AbigailBuccaneer/redundant-shadowmap-renderbuffer
Don't create a color renderbuffer for shadow map
2018-07-23 12:14:45 +02:00
tomangelo2 359abf9a82 Add VSync switch to Device tab 2018-07-05 19:43:56 +02:00
krzys-h 12cf57409c Support more buttonX.png files in other places than just buttons 2018-05-10 11:24:59 +02:00
AbigailBuccaneer c027b54add Don't create a color renderbuffer for shadow map
When rendering the shadow map offscreen using framebuffer objects, it's
not necessary to create a color renderbuffer. Currently
FramebufferParams only lets you choose between a renderbuffer and a
texture for both color and depth attachments. This changes that, and now
you can ask for a texture, a renderbuffer, or nothing.

This improves performance. On my computer, with an 8192x8192 shadow map,
this improves overall frame time by 8.0%.
2018-05-09 17:25:52 +01:00
krzys_h 182c4c5cbf
Merge pull request #1154 from AbigailBuccaneer/shadow-shimmering
Fix shadow shimmering
2018-05-07 20:53:28 +02:00
krzys_h 50ed675acd
Merge pull request #1150 from AbigailBuccaneer/debug-rendering
Add generic debug rendering functions
2018-05-07 20:53:12 +02:00
krzys_h f146d2885b
Merge pull request #1149 from AbigailBuccaneer/tighter-visibility-checking
Improve object visibility culling with tighter bounding spheres
2018-05-07 20:53:00 +02:00
krzys-h 6ccf32ec68 fixup! Fix code style in #1150 2018-05-07 20:28:31 +02:00
AbigailBuccaneer abeb7fceb2 Fix shadow shimmering
Shadow shimmering is a visual artefact where the outlines of shadow
mapped objects don't stay stable when the camera is moved or rotated.
The reason is that as the shadow map's origin moves, the objects
rendered to the shadow map have temporal aliasing around their edges.

The solution is to only move the shadow map in texel-sized increments.
Because the shadow map's projection is orthographic, moving the shadow
map origin in texel increments ensures that objects that aren't moving
don't show any temporal aliasing, as the position of the samples of the
object in worldspace stay the same.
2018-05-04 10:56:37 +01:00
krzys-h 38a34829af Fix code style in #1150 2018-05-01 21:27:49 +02:00
AbigailBuccaneer 6f6cfb136a Batch draw calls from CText to improve performance
This significantly speeds up text rendering. On my computer, looking at
the program editor with a full screen of text, this commit takes the
framerate from under 30 to 60 (hitting vsync).

Performance could be further improved in the gl33 renderer by using
instancing or glPrimitiveRestartIndex instead of glMultiDrawArrays, but
that would be a more invasive change.

All of the interface rendering could use a unified quad batching system,
instead of it being limited to CText, but that would require some
refactoring in CText as it currently draws using a different coordinate
space to the rest of the interface.

Fixes #1104.
2018-04-30 10:18:51 +01:00
AbigailBuccaneer c445d7d9a9 Add generic debug rendering functions
Currently the engine can draw debug spheres to show crash sphere
positions. This extends this to draw arbitrary spheres and cuboids,
transformed arbitrarily. With these in place it's now very quick and
easy to create a debug visualisation - for example, it's a one-line code
change to render the bounding box or sphere of every EngineObject.
2018-04-29 23:41:53 +01:00
AbigailBuccaneer 282a793a13 Improve object vis with tighter bounding spheres
This commit improves rendering performance by doing a better job of
checking whether an object is visible via its bounding sphere or not.

The engine maintains a bounding box for each EngineBaseObject that's
exactly large enough to fit every vertex. From this, it computes a
bounding sphere, and only draws objects if the sphere is within the view
frustum. Previously, the bounding sphere was always centered on the
EngineBaseObject's origin, even for models where the bounding box center
is significantly offset from the origin. Now, the bounding sphere is
always the tightest sphere which fits the bounding box.
2018-04-29 19:35:02 +01:00
AbigailBuccaneer c49c815ea5 Set uniforms less often during text rendering
We now call SetWindowCoordinates and SetInterfaceCoordinates once per
string, rather than once or twice per character.
2018-04-27 10:43:26 +01:00
AbigailBuccaneer ea64edaa0b Compile with -Wmissing-declarations
-Wmissing-declarations enforces that every function (except for static
functions) must be declared separately before it's defined. This
essentially enforces that every function must be either static, or
declared in a header elsewhere.

This helps the optimizer, as it can do a better job of inlining if it
knows that a function won't be used outside of a given file. It also
helps -Wunused-function (which is enabled by -Wall) find more unused
functions.

Note that Clang spells this option -Wmissing-prototypes, which
confusingly is the name of a related but different warning option under
GCC.
2018-04-21 16:49:27 +01:00
AbigailBuccaneer 4119e669d1 Remove central tracking of SystemTimeStamp
SystemTimeStamp used to be an opaque class, as it was provided by
`system_{linux/other/windows}.h`. Because of this, code dealt in
SystemTimeStamp pointers, and getting the current timestamp required a
memory allocation. Now SystemTimeStamp is just a
`std::chrono::time_point`, we can make the code cleaner and faster by
just directly keeping SystemTimeStamp instead of pointers around.
2018-04-20 09:57:10 +01:00
AbigailBuccaneer 2a003a27b1 Use C++11 threads, mutexes and condition variables 2018-04-20 09:56:57 +01:00
krzys-h e964d3e48c Fix colobot-lint warnings 2018-04-20 02:21:12 +02:00
krzys-h 1c2bdc9cab Update license headers 2018-04-20 02:08:50 +02:00
Mateusz Przybył 46bef8fd92
Add button4.png drawing (builder icons) 2017-11-17 18:59:14 +01:00
Fiftytwo a024866fd3 Builder bots base implementation 2017-11-16 18:43:45 +01:00
tomangelo2 ff97df74c6 Added support for italic and bold variants of studio and satcom fonts
They aren't currently used anywhere
2017-10-28 22:22:22 +02:00
tomangelo2 94cacdae96 Removed singletone from FontConfig
Also renamed class so it now matches better with class file name
2017-10-15 23:46:15 +02:00
tomangelo2 52d9330114 Replaced multiple methods with one 2017-10-15 23:31:06 +02:00
tomangelo2 dd9439aed2 Renamed font_file to font_config 2017-10-15 22:47:32 +02:00
tomangelo2 054d1c3e54 Changed in-engine fonts names 2017-10-11 17:10:04 +02:00
tomangelo2 cf46c2457a Moved file font.ini to /fonts/ directory
Separated SatCom font from Colobot font
2017-10-11 17:02:09 +02:00
tomangelo2 250c934b9e Added fonts configurability by a separate file 2017-10-09 00:36:31 +02:00
immibis 8b0ccf6667 Fix horizontal scrolling of background images. 2017-08-05 20:08:00 +12:00
immibis 2e8798b33d Make planets stay in one place in the sky - at least in the X direction. 2017-08-05 20:08:00 +12:00
immibis 2751db3245 Add horizontal FoV to CEngine 2017-08-05 19:45:08 +12:00
krzys-h d860a08d21 Merge long first frame rendering fix from #898
Also did some changes to make sure the "F1 to open SatCom" appears immediately (not after 0.1s),
and that mission timer won't start ticking in the first simulation frame (mainly for code battle initial pause)
2017-06-04 13:10:50 +02:00
krzys-h 4faabf2185 Apply shadow mapping performance counter patch from #923 2017-06-03 21:11:18 +02:00
Abigail f4614658cf Fix -Wundefined-var-template warning (#963)
This avoids specializing CSingleton<T>::m_instance for each type, and
instead just defines it once in the header. This is allowed by the
standard, multiple definitions are merged in the same way that inline
functions are.
2017-05-29 20:46:11 +02:00
krzys-h 02aa281d30 Remove unnecessary m_instance declarations
They don't do anything at all in gcc and clang, but cause compile errors in MSVC
see #955
2017-05-24 14:00:34 +02:00
krzys-h 648dfd75c4 Fix handling of particle 'father' objects when they are destroyed 2017-05-23 20:31:55 +02:00
krzys-h 2d7911f155 Fix delete() in CBot not destroying PowerCells properly 2017-05-23 20:19:47 +02:00
Abigail 11d950221b Fix all compiler warnings and enable -Werror (#955)
This removes all compilation warnings on:
* g++ 4.7.4, 4.8.5, 4.9.4, 5.4.1, 6.3.0, 7.0.1-svn246759
* clang++ 3.9.1, 4.0.0, 5.0.0-svn303007
2017-05-22 11:10:35 +02:00
krzys-h 6bebbb3f70 Fix sky rendering artifact 2017-05-18 19:03:19 +02:00
krzys-h f6cc629054 Log correct terrain relief resolution 2017-05-18 18:32:22 +02:00
krzys-h 880f31a7c6 Add basics of scoreboard implementation; better support for multiple teams 2017-05-17 18:22:58 +02:00
krzys-h 6cd72543c4 Fix amount of damage from OrgaShooters
I messed it up in previous commit, 0.002/2 is 0.001 not 0.0005 :P
2017-04-29 13:18:01 +02:00
krzys-h fda58a6008 Change bullet collision logic to allow for collisions with non-damageable objects
For now, you have to add bulletWall=true to objects you want bullets to collide with.
It's ugly but will work for now. This is needed mostly for compatibility
with exercises which use barriers to block movement but not bullets.

I also made the collision checks run more often because otherwise the bullets
would sometimes miss the objects (but only visually)
2017-04-29 13:14:10 +02:00
piotrwalkusz1 6ec13017eb Fix apperance camera position, closes #802 (#880) 2017-01-02 18:43:19 +01:00
krzys-h 88c6818cfd Fix code style issues 2016-11-26 13:48:12 +01:00
krzys-h 3bac0aabd9 Fix buffer overrun when rendering goto() debug texture, closes #841 2016-11-11 17:26:37 +01:00
krzys-h 6e4764b97c Fix GroundSpot blending, closes #846 2016-11-11 17:06:53 +01:00
Tomasz Kapuściński e7c41ae9e6 Correction in changing wrap mode in SetState 2016-11-10 13:00:42 +01:00
krzys-h 3472ec6613 Revert CParticle::CheckChannel changes
I misinterpreted this as being a bug, while actually it seems to be an explicit CParticle design choice (maybe not the best one, but whatever). We DO need better docs for some old code like this :/

Fixes #806

This reverts commit 99a831a03b.
2016-09-27 18:34:54 +02:00
MrSimbax 92b1e544ec Remove default lambda parameters
They cause compilation error on MSVC and should give errors, as it's explicitly stated in the C++11 standard: http://stackoverflow.com/questions/6281472/why-does-a-default-argument-for-a-lambda-argument-trigger-a-pedantic-gcc-warni
2016-08-18 10:02:54 +02:00
krzys-h dbe7fd6ef0 Added performance counter for UI particles 2016-07-24 18:19:37 +02:00
krzys-h ffd688e2d7 Do not render the shadow map when pause blur is active 2016-07-24 16:56:47 +02:00
krzys-h 2c3e90b126 Added CBot performance counter 2016-07-24 16:36:13 +02:00
krzys-h 5fea22ff03 Moved performance counters to a separate class 2016-07-24 16:18:25 +02:00
krzys-h 81b7bcc5bc Moved system modules from app/ to common/system/ 2016-07-24 14:38:49 +02:00
krzys-h 9e545d0d39 Fixed colobot-lint warnings 2016-07-09 20:39:18 +02:00
krzys-h 8a17bc901c Added pause blur config setting, enabled by default 2016-07-09 12:13:51 +02:00
krzys-h 3b9b9b322a Changed mouse scaling (again) 2016-06-21 13:07:40 +02:00
krzys-h bd4362e26c Fixed dynamic textures not being reloaded properly 2016-06-19 19:57:55 +02:00
Tomasz Kapuściński a0b3f7a769 Fixed problem with pause blur after changing some graphic settings 2016-06-19 16:52:01 +02:00
krzys-h 125d1a32c7 Fixed pause blur blinking for one frame
issue #656
2016-06-19 12:23:57 +02:00
krzys-h 9d9131c3fb Fixed pause blur with MSAA
issue #656
2016-06-19 11:45:59 +02:00
krzys-h 9017e5a25b Fixed links in CBot listings in SatCom 2016-06-17 21:13:16 +02:00
krzys-h 0e101debe0 Removed CAM_TYPE_INFO 2016-05-28 18:52:30 +02:00
krzys-h 646e5104f6 Some CCamera cleanup and docs 2016-05-28 18:44:38 +02:00
krzys-h bef27c3b36 Removed unused parameter from CEngine::SetViewParams 2016-05-28 16:48:36 +02:00
krzys-h d80fa387b9 Fixed some particle crashes after 99a831a03b 2016-05-28 16:16:48 +02:00
krzys-h 2dd7ba7e9b Added camera keybindings (#653) 2016-05-28 15:41:01 +02:00
krzys-h ebc2e6e26c Added camera joystick bindings (#653) 2016-05-28 13:50:41 +02:00
krzys-h 942f746a21 Removed CAM_TYPE_DIALOG 2016-05-28 12:50:32 +02:00
krzys-h aa159bc9b0 Don't scale mouse cursor with resolution 2016-05-28 00:43:14 +02:00
krzys-h 99a831a03b Fixed CParticle::CheckChannel "errors"
Not really errors, but I fixed them anyway
2016-05-28 00:26:56 +02:00
krzys-h 5ab99429d4 Fixed FIX camera up/down movement 2016-05-28 00:00:08 +02:00
krzys-h bd72086704 Unified all camera inputs
Until now each camera type had separate code for handling camera input, and some new features were missing in some of them.

The camera controls are as follows:
* RMB+mouse and numpad keys - horizontal/vertical rotation
* mouse wheel and +/- keys - zoom (in free camera - move eye up/down)
* CTRL or MMB + horizontal controls - pan left/right
* CTRL or MMB + zoom controls - move lookat up/down (free camera only)
2016-05-27 22:38:44 +02:00
krzys-h 59c106f7a7 Fixed pause blur image not updating correctly on resolution change 2016-05-21 19:03:53 +02:00
Tomasz Kapuściński 213fd6b203 Added blur effect when the game is paused (issue #656)
Might be unstable, needs more testing. To enable, add PauseBlur=1 to [Experimental] section in colobot.ini
2016-05-21 14:27:35 +02:00
tomangelo2 9870cfe8a8 Clamp FogStart value to 0 if negative
Should fix issue #766
2016-05-02 01:27:07 +02:00
Piotr Dziwinski c6c01c332f Fix displaying of text highlights (#738) 2016-04-08 21:24:14 +12:00
Piotr Dziwinski 71a77c77f6 Hack to finally fix #738
Text rendering is now done in window coordinates corresponding to window
pixels to avoid floating-point rounding errors that show up as rendering
artifacts
2016-04-06 23:08:50 +12:00
Piotr Dziwinski 72f966b118 Fix for #738
Add one-pixel boundary and fix texture coordinates for font characters
This should finally fix the issue of pixelated text
2016-04-03 21:40:33 +12:00
krzys-h 427bbfa630 Changed CParticle::CheckChannel log message 2016-03-28 23:04:24 +02:00
krzys-h e24d77bde8 goto() bitmap debugger 2016-03-28 21:42:25 +02:00
krzys-h d38ddcbc41 goto() path debugger 2016-03-28 20:25:07 +02:00
krzys-h e4f9360e63 Resources debug mode 2016-03-28 17:58:31 +02:00
krzys-h 4af02c86f8 Debug menu 2016-03-28 17:58:31 +02:00
krzys-h 6585ee9ae8 Refactor some references to CRobotMain from CEngine 2016-03-26 18:55:39 +01:00
krzys-h 16c1f34a07 Removed unnecessary LoadAllTextures call 2016-03-25 17:14:20 +01:00
krzys-h d812db19f8 Fixed ground spots not working after changing texture params; use UpdateTexture instead of destroy and recreate 2016-03-25 17:06:01 +01:00
Piotr Dziwinski 4e331f1f54 Possible workaround for #738
Align text rendering to character, not tile size
2016-03-25 15:50:13 +13:00
Tomasz Kapuściński b31353cf75 Optimized crash sphere rendering 2016-03-20 19:17:15 +01:00
Piotr Dziwinski 720705bd6b Some colobot-lint fixes 2016-03-19 12:33:54 +13:00
Piotr Dziwinski 8baccb08a7 Optimize use of textures in text rendering, closes #215 2016-03-19 12:00:56 +13:00
Piotr Dziwinski 15c9cbd228 Debug mode for displaying crash spheres, closes #400 2016-03-19 11:54:58 +13:00
krzys-h effd349449 Fixed cutscene camera animation, closes #731 2016-03-15 21:09:21 +01:00
krzys-h cbdda57288 Merge branch 'dev-right-click-camera' into dev 2016-03-13 14:52:17 +01:00
Tomasz Kapuściński 8deeddffe0 Corrected OpenGL 2.1 engine's error spam and added experimental terrain shadowing 2016-03-10 10:50:54 +01:00
Tomasz Kapuściński e6a2fc9671 Rewritten shadow mapping implementation 2016-03-07 18:33:19 +01:00
Tomasz Kapuściński 9effa308ce Small change in enabling/disabling shadow mapping 2016-03-06 20:25:50 +01:00
krzys-h f67d76fed4 Merge branch 'dev' into dev-right-click-camera 2016-03-05 21:09:00 +01:00
krzys-h 4e50f36214 Merge branch 'dev' into dev-right-click-camera 2016-03-02 20:00:57 +01:00
Tomasz Kapuściński 78e877d9a8 Changes in framebuffer creation, framebuffer error detection and small other graphical things 2016-02-29 16:42:01 +01:00
Tomasz Kapuściński 0bb5f96d7a Changed depth of shadow map texture to 32 2016-02-28 23:17:25 +01:00
krzys-h b97070bbad stupid whitespace 2016-02-28 20:57:39 +01:00
krzys-h 282cd65a2d Fix reloading changed ground spot textures (closes #404) 2016-02-28 20:22:05 +01:00
krzys-h 643c40e778 Revert "Get rid of "blacklisting shadowXX.png" logs"
This disabled loading of those textures completly

This reverts commit 60f0a7b45c.

 #BlamePiotrdzAgain
2016-02-28 20:17:35 +01:00
Tomasz Kapuściński 14d6ee74a3 Removed dirt from water surface 2016-02-27 15:29:41 +01:00
krzys-h 9c32f705b6 FIXED ALL GOLD EDITION LIGHTING PROBLEMS!! Yay! 2016-02-21 15:35:52 +01:00
krzys-h 3de6794835 Allow both right and middle mouse button for camera movement 2016-02-19 17:27:55 +01:00
krzys-h 700f3ad448 Edge camera speed fix 2016-02-19 17:22:20 +01:00
krzys-h b15666f48e Restored old camera scroll as a config option 2016-02-19 17:14:08 +01:00
krzys-h 1efa4b132c Fixed mouse invert settings; removed camera scroll setting 2016-02-19 17:14:08 +01:00
krzys-h 47d39e5b22 Right click camera; minor CCamera cleanups 2016-02-19 17:14:08 +01:00
krzys-h d9ccd6edf3 Camera smoothness adjustment 2016-02-19 17:14:08 +01:00
krzys-h 0256b1aa39 Add logging in font loading 2016-02-18 18:07:29 +01:00
krzys-h 977607a934 Updated license headers 2016-02-13 14:11:30 +01:00
Tomasz Kapuściński 6b7e6cbc75 Added rendering modes and implemented additional OpenGL 2.1 shaders 2016-02-13 03:54:49 +01:00
Krzysztof Dermont c780148b77 Fix crash related to TTF and PHYSFS
TTF fonts will be loaded to memory instead of file pointers

Added new class CSDLMemoryWrapper that loads data from PHYSFS into memory block
and closes file after. This closes issues #519, #708 and #619
2016-02-11 16:12:16 +01:00
Tomasz Kapuściński a924cf6a75 Fix for fog distance 2016-01-31 00:38:24 +01:00
Tomasz Kapuściński 15c5e69199 Fix for visibility distance setting 2016-01-30 23:58:26 +01:00
Piotr Dziwinski d11ebc891c Bring to zero some types of issues reported by colobot-lint 2015-10-04 00:09:10 +02:00
krzys-h 3815ef0bd6 Refactored CPauseManager (again) 2015-10-01 18:55:41 +02:00
krzys-h 58035f3cd1 Fixed rendering camera overlay color, closes #157 2015-09-30 21:41:00 +02:00
krzys-h 95f1e3f19a Fixed water/lava moving and waves (#659) 2015-09-30 20:31:09 +02:00
krzys-h 2f0ec3fe75 Fixed lava particle effects (#659) 2015-09-30 20:21:25 +02:00
Piotr Dziwinski 61a3ba2800 Fix undefined function colobot-lint issues 2015-09-29 21:44:24 +02:00
krzys-h 2cb2782c9d Restored old Ceebot-Teen objects
In preparations for new programming course
2015-09-28 22:08:59 +02:00