Commit Graph

2767 Commits (438e4bba62a511ed7ad178a404c5698a129453da)

Author SHA1 Message Date
tomangelo2 92d2de5325 Fixed VSync options list
Now VSync list is aligned for same height as resolution list from the bottom, as it's very hard to align them from top on different screen resolutions.
2019-01-02 00:34:34 +01:00
tomangelo 9cf89db8af
Merge pull request #1213 from ananace/fix-xdg
Fix Linux savegame path issue, closes #1212
2018-12-23 16:43:59 +01:00
Fiftytwo 723c552783 Add Heavy and Amphibious trainer bots 2018-12-23 07:04:06 +01:00
Mateusz Przybył d57c45cbb2
Merge pull request #1211 from suve/limit-game-speeds
Add a minimum & maximum game speed limit
2018-12-22 15:49:53 +01:00
Mateusz Przybył 3db153f964
Merge pull request #1202 from colobot/dev-restext
Add a note mentioned in issue #1197
2018-12-22 15:17:28 +01:00
suve 508e7529d2 Use Math::Clamp() when limiting game speed 2018-11-27 19:25:56 +01:00
Alexander Olofsson d11404a6e9
Fix Linux savegame path issue, closes #1212 2018-11-25 14:49:01 +01:00
suve 4305f8de03 Add a minimum & maximum game speed limit 2018-11-18 21:09:11 +01:00
Bartosz Cieśla 7c88a6e667 Fix for #1194 2018-10-13 10:12:41 +02:00
Bartosz Cieśla abf1a60a86 Fix for #1203 2018-10-10 19:14:23 +02:00
tomangelo 3f6e84b418
Merge pull request #1167 from badernageral/dev
Translation to Brazilian Portuguese
2018-09-08 22:03:28 +02:00
tomangelo 9aa3773752
Merge pull request #1199 from CHmSID/fix-more-warnings
Fix another GCC 8.2.0 warning
2018-09-08 22:01:01 +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 aed74321cb
Merge pull request #1115 from B-CE/dev-tabMgt
fix #274 : pasting tabs
2018-09-08 22:00:18 +02:00
tomangelo2 ee0b46a278 Add a note mentioned in issue #1197 2018-08-21 21:28:45 +02:00
tomangelo 31b309fa24
Merge pull request #1186 from colobot/dev-switch-case
Fix switch case documentation shortcut
2018-08-21 12:16:41 +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
Jerzy B 6f0a294048 Give space for a null character in texture name 2018-08-18 09:11:46 +01:00
Jerzy B f3b30625ee Fix GCC 8 warning about sprintf overflow (#1192) 2018-08-12 07:49:45 +02:00
DavivaD e823c209fa Fix crash while loading mod and blank settings menu while paused game 2018-08-02 17:21:31 +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 cb701cacb8 Add a workaround for failed assertion in VS debugger
Assertion failed: ploc->_Mbcurmax == 1 || ploc->_Mbcurmax == 2

Apparently MS C/C++ library doesn't support UTF-8 locales, which causes the assertion to fail. My solution is to ignore the system locale and try to set the classic one.

LibreOffice seems to have this problem fixed in less simple way: https://gerrit.libreoffice.org/#/c/54110/
2018-07-25 21:44:31 +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
MrSimbax f93fd61c26 Rename OFFICIAL_BUILD to OFFICIAL_COLOBOT_BUILD
In order to avoid conflict with OFFICIAL_BUILD variable inside ntverp.h. It caused compilation error "invalid integer expression"

https://github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/shared/ntverp.h#L134
2018-07-25 21:34:39 +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 d84be03a83 Removed non-existing font from code
Forgot to check build on clean data directory
2018-07-23 14:10:27 +02:00
tomangelo2 df46bcfe2d Fix another linter warning 2018-07-23 14:03:59 +02:00
tomangelo2 14b6f7cafa Fixed some linter warnings in font_config files 2018-07-23 12:46:47 +02:00
tomangelo d90592f7b6
Merge pull request #1162 from AbigailBuccaneer/gl-cleanup
Clean up and improve CGLxxDevice code
2018-07-23 12:15:08 +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 fb00898035 Fix switch case documentation shortcut
Also some polishing of loops help texts
2018-07-21 00:09:37 +02:00
Fiftytwo 3f04654cd3 Make ruins destroyable 2018-07-13 13:16:30 +02:00
Fiftytwo 5b2b632de3 Add TargetBot research; make it fully operational 2018-07-13 00:03:20 +02:00
Fiftytwo 5b2f3111b6 Add trainer=1 SpaceShip 2018-07-12 20:54:58 +02:00
Fiftytwo 146581e44c Add trainer=1 AutoLab 2018-07-12 20:35:50 +02:00
Fiftytwo 02eb4623b9 Add trainer=1 ResearchCenter 2018-07-12 20:17:09 +02:00
Fiftytwo d0e29d4875 Add trainer=1 BotFactory 2018-07-12 19:55:31 +02:00
tomangelo2 4bfada2ad6 Better handling of VSync errors 2018-07-05 21:18:14 +02:00
tomangelo2 608d59f07b Moved VSync setting from Experimental to Setup 2018-07-05 20:56:38 +02:00
tomangelo2 359abf9a82 Add VSync switch to Device tab 2018-07-05 19:43:56 +02:00
Mateusz Przybył abb7d54ef5 Add support for VS CMake/vcpkg compilation (#1174)
* Add support for VS CMake/vcpkg compilation

* Fix system_windows.cpp compilation

* Add optimization and hidden console to MSVC release builds
2018-06-04 09:17:51 +02:00
José Robson Mariano Alves 0c16d9a272 Translation to Brazilian Portuguese 2018-05-16 10:22:57 -03:00
krzys-h 073191d1ea Small CPathManager refactoring 2018-05-16 13:28:06 +02:00
José Robson Mariano Alves dbd1f601da Translation to Brazilian Portuguese 2018-05-15 18:31:41 -03:00
José Robson Mariano Alves 2b933264fc Translation to Brazilian Portuguese 2018-05-15 16:07:03 -03:00
krzys-h f538b4f477 What did I say about commiting in a hurry 2018-05-10 11:32:33 +02:00
krzys-h 12cf57409c Support more buttonX.png files in other places than just buttons 2018-05-10 11:24:59 +02:00
krzys-h 05bc65a90b Add support for more buttonsX.png textures (for modders) 2018-05-10 11:12:45 +02:00
krzys-h 8095dc14f7 Add support for custom button= for View cameras 2018-05-10 11:12:22 +02:00
krzys-h ed397d2b0f Make sure aliens hatched from eggs are not selectable by default, closes #1054 2018-05-09 23:25:52 +02:00
krzys-h 319d8e6854 Fix delete() not returning sometimes, closes #1067 2018-05-09 23:12:26 +02:00
AbigailBuccaneer e481905a25 Do less state setting in gl14 and gl21 2018-05-09 21:03:08 +01:00
AbigailBuccaneer c9a8a242a0 Remove CGL14Device's support for display lists
Closes #1153.
2018-05-09 21:03:08 +01:00
AbigailBuccaneer f8ebc6ec21 Remove code for drawing dynamic vertex formats
It's unused, and it's a bad idea - it's important for authoring tools
and for performance that vertex formats are well-defined instead of
dynamically created.
2018-05-09 21:03:08 +01:00
AbigailBuccaneer 94b30c00a0 Remove code duplication in CGLxxDevice 2018-05-09 21:03:08 +01:00
krzys-h 10fc47476b Fix code style 2018-05-09 18:34:27 +02:00
krzys-h 85772376fa Merge ScoreboardSortType with main Scoreboard command 2018-05-09 18:33:27 +02:00
krzys-h 1ed3f4b215 Add EndMissionTeams immediateWin=true; make the teams on win screen sorted 2018-05-09 18:28:25 +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 abe489e294 Add EndMissionTimeout 2018-05-09 17:47:21 +02:00
krzys-h a3def6d683 Disallow firendly fire in ScoreboardKillRule 2018-05-08 23:57:13 +02:00
krzys-h 0baf9f8077 Don't commit code in a hurry like that... 2018-05-08 23:47:50 +02:00
krzys-h f03c3dbc10 Implement ScoreboardObjectRule 2018-05-08 23:44:23 +02:00
krzys-h dd40c4d4ee Make magnifyDamage=0 for fragile objects actually work
This fixes a bug in 36d2cf14b8
2018-05-08 19:54:25 +02:00
krzys-h db72a36315 Fix code style 2018-05-08 19:44:24 +02:00
Fiftytwo caf58c8ab8 Merge branch 'dev' of https://github.com/colobot/colobot into dev 2018-05-07 21:48:48 +02:00
krzys_h 5283865a5c
Merge pull request #1136 from colobot/dev-cbot-optimizations
Some CBot code optimizations
2018-05-07 20:53:52 +02: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 a54f65f71b
Merge pull request #1152 from AbigailBuccaneer/consistent-shadow-antialiasing
Improve shadow quality and performance in gl33
2018-05-07 20:53:21 +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 44f2684c70
Merge pull request #1148 from AbigailBuccaneer/text-batching
Improve text rendering performance
2018-05-07 20:52:50 +02:00
krzys-h 6e273e7e33 Declare CBotVar::m_token as const 2018-05-07 20:51:44 +02:00
krzys_h 05fe7431c4
Merge pull request #1143 from AbigailBuccaneer/fix/1087-positional-sounds
Fix global sounds being positioned at camera
2018-05-07 20:43:03 +02:00
krzys_h b36d40a509
Merge pull request #1151 from melex750/dev-savegame
Fix saving/loading "NewScript" programs for factory bots
2018-05-07 20:42:51 +02:00
krzys_h b9e2edce6c
Merge pull request #1146 from colobot/dev-scene-camera
Implement viewpoint feature
2018-05-07 20:42:18 +02:00
krzys_h 35640b8e3f
Merge branch 'dev' into dev-scoreboard-sort 2018-05-07 20:41:40 +02:00
krzys-h 36d2cf14b8 Make magnifyDamage influence fragile objects 2018-05-07 20:31:36 +02:00
krzys-h 1d09ee9b3c Fix transportable object damage rules
This makes the rules match the original Colobot like they were supposed to
2018-05-07 20:31:36 +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
AbigailBuccaneer 0d6fffd91f Improve shadow quality and performance in gl33
If CONFIG_QUALITY_SHADOWS is defined (which it always is) then the
fragment shader code that samples the shadow map will take five samples
in a cross shape around the point to be sampled, to apply antialiasing.

Currently, the offset of these samples is hardcoded to 0.00025× the
shadow map resolution. This is very inconsistent: if the shadow map
resolution is 128×128, then these samples are 0.032 texels apart, which
is a waste of four texture samples, and essentially means that no
antialiasing is applied. If the shadow map resolution is 8192×8192, then
these samples are 2.048 texels apart, which causes visual artefacts
around shadow edges, instead of giving smoother shadows.

The correct thing to do is to always sample exactly one texel away from
the original position. This is easy in GLSL 3.30, as it includes a
textureOffset function which offsets a texture fetch by an exact number
of texels. This is faster than manually calculating an offset ourselves,
it fixes visual artefacts at high resolutions, and it properly applies
antialiasing at low resolutions.
2018-05-02 16:30:45 +01:00
krzys-h 38a34829af Fix code style in #1150 2018-05-01 21:27:49 +02:00
melex750 a918fcabb4 Fix save/load NewScript programs for factory bots
Fixes #797
2018-04-30 13:43:03 -04: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
krzys_h db90fcd2ef
Merge pull request #1118 from nextghost/dev
Czech translation
2018-04-24 14:17:23 +02:00
krzys_h 64ab5e3308
Merge pull request #1053 from colobot/dev-a-thing
added a thing
2018-04-24 14:13:42 +02:00
krzys_h 8b86a1f222
Merge pull request #1142 from AbigailBuccaneer/Wmissing-declarations
Compile with -Wmissing-declarations
2018-04-24 14:12:43 +02:00
krzys_h 6289ea91b1
Merge pull request #1140 from AbigailBuccaneer/Wsuggest-override
Compile with -Wsuggest-override under GCC
2018-04-24 14:12:31 +02:00
krzys_h 289b6577d5
Merge pull request #1139 from AbigailBuccaneer/clang-7
Fix building under clang-7
2018-04-24 14:12:15 +02:00
AbigailBuccaneer 4bca2b2243 Fix global sounds being positioned at camera
Certain sounds - such as those coming from the UI - aren't supposed to
sound as if they're coming from a given position. This is currently
accomplished by positioning the OpenAL source at the camera position.
This works, but if the camera position drastically moves during the
sound being played then it's possible to hear the sound fade out.

This pull request makes camera movement no longer affect global sounds,
by specifying their position as being (0, 0, 0) relative to the listener
position.

The easiest way to test this is to start a mission, press E to grab when
there's nothing in front of you, and scroll the mouse wheel quickly.
Pressing E will show the nothing-to-grab message which plays a beep
sound, and scrolling will quickly move the camera. Prior to this pull
request, the sound will fade, after this pull request it won't.

Fixes #1087.
2018-04-24 11:43:11 +01:00
tomangelo2 5e8be5f6bc Better align of viewpoint UI 2018-04-23 08:12:33 +02: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 285350464f Remove platform-specific handling of times
Now all platforms use std::chrono::high_resolution_clock and
std::this_thread::sleep_for instead of platform-specific timestamp and
sleep methods.
2018-04-20 09:56:57 +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
krzys-h 9f1bd2176f Jenkinsfile: Run colobot-lint 2018-04-20 02:08:50 +02:00
AbigailBuccaneer 6978c28ee0 Compile with -Wsuggest-override under GCC
Clang by default compiles with -Winconsistent-missing-override, which
warns when a class declares virtual functions that override those in the
base class, and some but not all of them are explicitly declared
`override`.

GCC doesn't support this option, but has a stronger version,
-Wsuggest-override. In combination with -Werror, this means that any
virtual function that overrides another *must* be explicitly declared as
`override`.

This commit enables -Wsuggest-override where available. This means that
GCC users can't break the Clang build with inconsistent overrides (see
 #1113 and #1114) and consequently that any build that passes the pull
request CI build on Jenkins won't break because of inconsistent
overrides.
2018-04-19 19:58:44 +01:00
AbigailBuccaneer 5cec29f4e6 Fix building under clang-7
Currently the build fails because of -Wdelete-non-virtual-dtor warnings.
This catches when an object is destructed, has a non-virtual destructor,
and is an abstract base class or a non-final class with virtual
functions. The warning happens inside unique_ptr<T>::~unique_ptr.

The warning is to prevent somebody writing code like this:

    class MySceneEndCondition : public CSceneEndCondition {
        ~MySceneEndCondition() { /* some complex logic */ }
    };
    // this won't call MySceneEndCondition's destructor, potentially
    // leading to leaks or segfaults:
    std::unique_ptr<CSceneEndCondition> p{new MySceneEndCondition()};
2018-04-19 10:19:05 +01:00
tomangelo2 2f71cce9c9 Fix camera behaviour when switching to viewpoint 2018-04-15 00:06:04 +02:00
tomangelo2 b04d8d205b Added viewpoints feature
This allows you to set fixed viewpoints in specific location, without attaching to any object, enabling you to track the game from any location.
Proper camera handling will be implemented in next commits.
2018-04-11 21:24:20 +02:00
tomangelo2 ad6dd00275 Change new functions return type and switch to enum class
As suggested by @krzys_h
2018-04-08 23:43:22 +02:00
krzys-h 477dc0cae7 Some CBot code optimizations 2018-04-06 15:02:06 +02:00
B-CE da1b7e8c2d Fixes #274 : pasting tabs 2018-03-12 12:58:43 +01:00
B-CE 0e6d22a549 Fix clang compilation, fixes #1113 2018-03-12 12:42:22 +01:00
tomangelo2 d371338920 Fix scoreboard sorting parameters 2018-03-11 17:00:17 +01:00
tomangelo2 1b79e8409f Add switch to determine sort type
You can set it in scene file with ScoreboardSortType SortBy="Name" or "Points"
2018-03-07 21:25:35 +01:00
tomangelo2 ff0f22ef44 Sort scoreboard
First, the team with more points, then which team scored points faster
2018-03-07 15:46:30 +01:00
Martin Doucha 81b4d0e28b Add Czech translation 2018-02-24 20:39:29 +01:00
tomangelo2 5e606336ca Fixed TrackedTrainer tracks allignement 2018-02-12 15:11:14 +01:00
tomangelo2 f51f457023 Narrowed TrackedTrainer tracks
TrackedTrainers now have same width as other bots
2018-02-10 20:58:14 +01:00
Fiftytwo bd0c6d4344 Add PracticeBot helpfile 2017-12-22 17:02:37 +01:00
Fiftytwo a15b3e4dd4 Add Trainer icons 2017-12-22 16:51:25 +01:00
Fiftytwo 0fddd79501 Add PracticeBot alias detection in search() and detect() 2017-12-21 14:44:43 +01:00
Fiftytwo ca0ff013d4 Update Trainer bots 2017-12-21 01:49:56 +01:00
Fiftytwo 94aa76e7a1 Add auto object detection for takeoff, destroy, camerafocus 2017-11-30 20:41:44 +01:00
Fiftytwo e01a6bd0ef Add Builder documentation 2017-11-30 08:00:17 +01:00
Fiftytwo 7eb1df4119 Add aim recalibration during falling 2017-11-29 13:24:05 +01:00
Fiftytwo db23c6eecf Change Builder default camera type 2017-11-25 14:35:45 +01:00
Fiftytwo 5f8b7a8149 Update BotFactory interface 2017-11-25 12:30:16 +01:00
Fiftytwo e8b93f6cda Add Builder interface 2017-11-25 03:09:47 +01:00
Fiftytwo 614dc5e591 Builder research 2017-11-23 00:11:29 +01:00
krzys-h 7f6c0cd31e added a thing 2017-11-22 18:29:09 +01:00
Fiftytwo 03c7d2e7ee WingedBuilder full implementation; new aiming method, better particle alignment 2017-11-22 02:05:36 +01:00
Fiftytwo d06116eb49 Attached proper particles to the neutron gun 2017-11-21 19:09:38 +01:00
Fiftytwo b72e802ff7 Neutron gun now aims 2017-11-17 19:57:08 +01:00
Mateusz Przybył 46bef8fd92
Add button4.png drawing (builder icons) 2017-11-17 18:59:14 +01:00
Fiftytwo 0b36bdf37f Quick fix for 9a33551 since I broke sth 2017-11-17 12:00:49 +01:00
Fiftytwo 9a33551a03 Reverted factory() to its original design; reworked syntax of other object.functions() accordingly; improved compatibility with CeeBot4 SCHOOL 2017-11-17 11:32:50 +01:00
Fiftytwo b04d8ca99d Clean up redundant files 2017-11-16 20:32:10 +01:00
Fiftytwo a024866fd3 Builder bots base implementation 2017-11-16 18:43:45 +01:00
tomangelo2 f01e2b7e01 Moved fonts maps from header file to source file 2017-11-07 19:29:51 +01:00
krzys-h 5f5e5234fc Fix CEdit background margins, closes #1029
This mismatch happened after changes in 08d87fa975
2017-11-04 11:56:15 +01:00
krzys_h d3b969fb4d
Merge pull request #992 from DavivaD/dev-dmgalarm-st2
Damage Alarm Implementation (2th Stage)
2017-11-04 11:27:14 +01:00
krzys_h 17d47e9b63
Merge pull request #1040 from melex750/dev
Saved game bug fix
2017-11-04 11:24:09 +01:00
krzys-h 387b7b5396 Fix non-scoreboard code battles, closes #1023 2017-11-04 11:23:17 +01:00
tomangelo2 0179e4c786 Cleaned unused values from CFontConfig 2017-10-28 22:24:11 +02: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
melex750 d357de1438 Save object lifetime and abstime
Fixes #1006
2017-10-24 05:12:19 -04:00
melex750 1eee06d9f9 Keep mission history after loading a crashsave
Fixes #812
2017-10-24 04:55:22 -04:00
melex750 a9e0874abc Fix 'this' for object:: functions
Fixes #672
Fixes #1026
2017-10-24 04:46:07 -04:00
tomangelo2 3801ab87a2 Changed m_font map to const fontType map 2017-10-23 19:08:28 +02:00
krzys_h 6b1dd5dd8b Merge pull request #994 from DavivaD/dev-issue-658
Thumper & Recycler Enhancements.
2017-10-22 18:22:06 +02:00
krzys_h ee0f3ff5fd Merge pull request #1022 from immibis/dev
Fix horizontal scrolling of planets and background images
2017-10-22 18:21:49 +02:00
krzys_h 9448f6712f Merge pull request #1004 from melex750/dev-cbot
Escape codes for strings in CBOT
2017-10-22 18:20:50 +02:00
krzys_h 0a83508547 Merge pull request #985 from melex750/dev
Bug fix for CStudio
2017-10-22 18:20:35 +02:00
tomangelo2 1539e94b09 Changed defaultFont to const map 2017-10-18 20:40:07 +02:00
tomangelo2 76a8335501 Reworked GetFont method 2017-10-18 12:01:34 +02:00
DavivaD 2a0c2c38f0 Make shortcut blink in red 2017-10-17 02:35:33 +02:00
melex750 bf69b86233 Fixed shortcut not changing to normal state 2017-10-17 02:33:05 +02:00
tomangelo2 dab223e6ce Clamp energy level to standard values for OrgaShooters
Fix issue #1009
2017-10-16 20:29:59 +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 1e614d64d0 Removed unnecessary variable 2017-10-15 23:35:09 +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 f40756bc46 Fix turn(1) doesn't draining energy
Fix using @Melex750 example, thanks!
Fix issue #136
2017-10-11 18:50:57 +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
DavivaD ee35d35db3 Correct Small Mistake 2017-07-27 02:02:46 +02:00
DavivaD 959854ec59 'Make Thumper Great Again' 2017-07-26 23:05:53 +02:00
tomangelo2 0de347d430 Fixed goto() behaviour on 32-bit binaries
Closes issue #844
2017-07-26 14:54:04 +02:00
DavivaD a4482f1a7c Decrease radius of squashing items. 2017-07-24 23:20:21 +02:00
melex750 e3c44e956f Add syntax highlighting for escape codes 2017-07-22 14:30:05 -04:00
melex750 c03dfc1284 Add escape codes for string literals 2017-07-22 14:29:05 -04:00
DavivaD b5e0f9966f Make Recycler Recycle small Building Ruins. 2017-07-21 20:37:18 +02:00
DavivaD bef6e9eceb Make Thumper Squash transportable/small objects. 2017-07-21 20:36:31 +02:00
melex750 86870167a6 Fix moving and resizing open/save dialog
* Fixed buffer overflow when resizing
* Stop hard drive thrashing when moving/resizing
2017-06-26 14:19:53 -04:00
melex750 2d2990ff91 Fix moving and resizing editor/debugger window
* Stop hard drive thrashing when moving/resizing
* Also fixed #691.
2017-06-26 14:11:47 -04:00
DavivaD a29a4f93ac Damage Alert Implementation (2th Stage) 2017-06-20 23:35:33 +02:00
tomangelo2 75d9f8573b Display warning if no quicksave slot is found 2017-06-11 23:29:50 +02:00
tomangelo2 d63ed865f4 Added QuickSave/QuickLoad feature #929
Also rearranged a bit speed control buttons to make some space for it
F5 - QuickSave
F6 - lower speed (current/2)
F7 - reset speed
F8 - higher speed (current*2)
F9 - QuickLoad
2017-06-11 17:50:21 +02: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 bb35585194 Fix object.factory() code type detection, closes #938 2017-06-03 21:43:10 +02:00
krzys-h 4faabf2185 Apply shadow mapping performance counter patch from #923 2017-06-03 21:11:18 +02:00
krzys-h a95f736cbe Fix delete(this.id), closes #925 2017-06-03 20:05:54 +02:00
krzys_h bf94bd7130 Merge pull request #965 from melex750/dev
Improved search() and searchall()
2017-06-03 18:56:29 +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
melex750 15b8cf7f78 Update object variable when concatenating strings 2017-05-25 02:09:44 -04:00
melex750 30210d0de7 Add searchall() and improve search() function 2017-05-25 02:01:42 -04: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 28081bfd3e Fix clang builds
see #955
2017-05-24 14:00:34 +02:00
krzys-h 1f477bbc86 Fix error in edit.cpp in 08d87fa975 2017-05-24 12:46:30 +02:00
krzys-h 7216d8d12e Fix crash after exiting a code battle 2017-05-24 12:42:37 +02:00
krzys-h 08d87fa975 Make initial scoreboard values editable 2017-05-24 12:39:05 +02:00
krzys-h f60108f367 Prevent enforcement of ObligatoryToken for level controller scripts 2017-05-24 10:50:43 +02:00
krzys-h 935b789d02 Fix alien animations after 5d4dfd8cb5 2017-05-24 10:45:31 +02:00
krzys-h 5d4dfd8cb5 Fix scoreboard points sometimes being added multiple times 2017-05-23 22:25:40 +02:00
krzys-h d8b0bd4df8 Make TargetBots explode when they run into something 2017-05-23 22:02:00 +02:00
krzys-h 149d1f8156 Fix aliens not appearing on the minimap, closes #901 2017-05-23 20:51:37 +02:00
krzys-h 004106eb19 Don't limit types of objects visible on minimap with fixed image 2017-05-23 20:47:03 +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 904b7e580b Prevent giving scoreboard points to team 0 2017-05-23 20:20:46 +02:00
krzys-h 2d7911f155 Fix delete() in CBot not destroying PowerCells properly 2017-05-23 20:19:47 +02:00
MatiRg 417301ff06 Fix rendering glasses in FPP camera, closes #775 (#959) 2017-05-23 18:57:41 +02:00
krzys-h 108551c199 Fix @tomangelo2's code style
see 47a8f70f0f
2017-05-22 11:11:44 +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
DavivaD df12f87b47 Implement damage alarm (#916)
Implements part of #320
2017-05-22 11:01:36 +02:00
krzys_h cd808ac59f Merge pull request #920 from melex750/dev
Fix default arguments
2017-05-22 10:58:16 +02:00
MatiRg a0e5cc25e1 Allow ctrl + backspace in the editor. (#839) 2017-05-22 10:57:30 +02:00
krzys-h 7b328fbfc3 Make UraniumOre not destroyable, closes #777
This was likely a mistake during object interface refactoring
2017-05-21 21:45:46 +02:00
tomangelo2 47a8f70f0f Display warning if there is not enough energy to shoot
Fix issue #949
2017-05-20 20:41:30 +02:00
krzys-h 681d5203e5 Make code battle start button header translatable 2017-05-19 21:23:14 +02:00
krzys-h c68f5e276f Add live scoreboard display 2017-05-19 21:11:43 +02:00
krzys-h b3ea687d32 Minor documentation fixes 2017-05-19 20:15:13 +02:00
krzys-h 8948da0612 Add Barricade objects 2017-05-19 15:33:44 +02:00
krzys-h 327eafddb7 Add order= parameter for ScoreboardEndTakeRule 2017-05-18 20:39:32 +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 cf7c19ef62 Make teams and scoreboard translatable 2017-05-17 19:00:40 +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
melex750 f80db9e8fb Fix using negative numbers in default arguments
Issue #919
2017-03-03 02:11:10 -05:00
melex750 b032dad578 Fix execution of default arguments 2017-03-03 01:09:09 -05:00
tomangelo2 588bf30b94 Fixed some functions doesn't returning 0 if no error
Fix issue #917
2017-03-02 23:01:55 +01:00
krzys-h 9eae1e151d Fix Shooter target getting stuck on not selectable objects (#900) 2017-01-28 12:56:42 +01:00
krzys-h 7fadf7bad5 Fix aliens being selectable by default (#900)
Broken in 6a382830a9
This change also allows you to make selectable insects with selectable=1 in scene file
2017-01-28 12:53:28 +01:00
melex750 92a8c48953 Add syntax for parameters with default values
Also fixes #642
2017-01-24 15:19:03 -05:00
melex750 baba6081b3 Add checking for return statements in functions
issue #30
2017-01-24 14:41:22 -05:00
melex750 2ff8251a81 Fix game crashing with syntax errors 2017-01-24 13:47:00 -05:00
melex750 8e54f7ca9c Fix memory leaks in CBOT engine 2017-01-16 21:16:59 +01:00
melex750 64bc1f1afb Fix constructor/destructor and field syntax 2017-01-16 21:16:59 +01:00
melex750 8fc0151444 Fix increment and decrement syntax 2017-01-16 21:16:59 +01:00
piotrwalkusz1 d7fae300b9 Fix crash on class redefinition, closes #703 (#890) 2017-01-15 20:28:52 +01:00
Smok94 8a0c7279dc Command history for cheat console, closes #316 (PR #869)
Adds console command history. Browsable by up and down arrow keys.
2017-01-02 20:23:19 +01:00
piotrwalkusz1 6ec13017eb Fix apperance camera position, closes #802 (#880) 2017-01-02 18:43:19 +01:00
Tomasz Kapuściński 9bdd83771e Optimizations and changes in OpenGL 2.1 device.
* Limited number of lights to 4
* Only directional lights
* Per-pixel lighting
* Improved dynamic shadows a bit
2017-01-02 16:35:40 +01:00
krzys-h 7b3b257580 Fix code style 2017-01-02 14:54:38 +01:00
Tomasz Kapuściński 7bb3245092 Optimizations and changes in OpenGL 3.3 device.
* Limited number of lights to 4
* Only directional lights
* Per-pixel lighting
* Improved dynamic shadows a bit
* Optimized texture changes
2017-01-01 17:16:54 +01:00
krzys-h 46aa6fc907 Some CRobotMain cleanup
* improved documentation
* renamed cheat variables to include the word "cheat" to make it clearer what they do
* removed some useless members
2016-12-27 23:38:57 +01:00
krzys-h 6a382830a9 Allow selectinsect to select other objects with selectable=0 2016-12-27 22:20:58 +01:00
krzys-h 17511ddb6a Fix some code style 2016-12-27 15:54:52 +01:00
krzys-h f33ffaf18b Fix mission end before astronaut death scene is finished (#848) 2016-12-27 15:32:38 +01:00
krzys-h 5722fdb163 Fix bug (?) related to lost cutscenes
This was here since the original game, probably unused but I fixed it anyway
2016-12-27 15:21:49 +01:00
krzys-h 8d52e27c2b Add coordinates under cursor overlay and copy function (#868) 2016-12-27 14:58:41 +01:00
krzys-h b6cda6cd4c Add error when object is busy (#871) 2016-12-27 13:36:46 +01:00
krzys-h e325efa447 Fix crash after precompiling a CBot class with errors (#881) 2016-12-27 13:23:41 +01:00
tomangelo2 5dc38f1526 Objects outside BuildType list cannot be build anymore
Fix issue #863
2016-12-05 14:16:11 +01:00
krzys-h eb2a1857dc Fix goto() with multiple objects at the exact same position (#732) 2016-12-04 16:07:41 +01:00
krzys-h 88c6818cfd Fix code style issues 2016-11-26 13:48:12 +01:00
krzys-h 7190c8518e Fix destructors not being called when program execution ended, closes #859 2016-11-11 23:07:22 +01:00
krzys-h b49fbf0cd6 Another this==nullptr fix (#828) 2016-11-11 22:58:39 +01:00
krzys-h 48f703282e Refactor CBotCallMethode -> CBotExternalCall 2016-11-11 21:58:25 +01:00
krzys-h 6b7233c6ae Remove CBotLinkedList from CBotFunction
Fixup for 191151eb7b
No idea how I managed to forget that
2016-11-11 19:47:59 +01:00
krzys-h 35d60aaae5 Remove remaining occurences of "this == nullptr" (#828) 2016-11-11 19:45:57 +01:00
krzys-h 191151eb7b Refactor CBotClass and CBotFunction list to std::list 2016-11-11 19:37:19 +01:00
krzys-h 266b34d578 Make CBotFunction implement CBotLinkedList 2016-11-11 18:16:12 +01:00
krzys-h 8764d28e9e Remove remaining "this != nullptr" checks in CBOT, closes #828 2016-11-11 18:03:46 +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 856ee9a0fe Don't allow whitespace player names, closes #840 2016-11-11 17:13:32 +01:00
krzys-h 6e4764b97c Fix GroundSpot blending, closes #846 2016-11-11 17:06:53 +01:00
krzys-h 1b074bd94d Fix crash on loading saves with produce()d objects (#765)
Thanks @melex750!
2016-11-11 13:38:43 +01:00
Tomasz Kapuściński e7c41ae9e6 Correction in changing wrap mode in SetState 2016-11-10 13:00:42 +01:00
Tomasz Kapuściński 9fe85e280a Code simplification in CGL14Device 2016-11-10 12:34:30 +01:00
Unknown 3c71354b42 Fix MSVC2015 compilation error 2016-11-07 21:08:02 +01:00
Tomasz Kapuściński 5aa5d91ecb Fix compilation errors in half.cpp 2016-11-04 18:34:49 +01:00
Tomasz Kapuściński 993d9e9ed6 Added rendering with generic vertex formats 2016-11-04 14:13:16 +01:00
Tomasz Kapuściński ae3b2b8572 Added types and vertex format specification 2016-11-04 11:59:57 +01:00
Tomasz Kapuściński c5b5435b4a Added half-precision floating-point format implementation 2016-11-04 11:35:55 +01:00
krzys-h bb9d1c8265 Remove "this == nullptr" checks in CBOT, fixes #828 2016-10-02 21:36:59 +02:00
krzys-h a96835e35f Change CBot file log messages
Open mode is logged now. Additionally fixed incorrect file path in log when deleting files.
2016-09-30 17:08:37 +02:00
MatiRg d107605007 Add file append mode in CBot (#838) 2016-09-30 17:03:13 +02:00
krzys-h 73be03161f Fix infinite pause when cloning program with errors, closes #837 2016-09-27 18:57:24 +02: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
MatiRg dc415c3d2a Remove character limit in CEdit (#836) 2016-09-25 19:13:04 +02:00
krzys-h ca548e2902 Update CBotFieldExpr::ProtectionError docs 2016-09-24 17:04:47 +02:00
melex750 9ab7f7d140 Fix access to protected and private variables 2016-09-17 08:00:34 -04:00
melex750 3debfb9182 Fix finding in-class methods when searching by ID 2016-09-17 07:59:34 -04:00
melex750 4a14a44f3f Add implicit cast and null for passing arguments 2016-09-17 07:58:39 -04:00
krzys_h 84c98546df Merge pull request #819 from melex750/dev
Method chaining for constructor calls in CBOT
2016-09-09 19:37:37 +02:00
krzys_h 8dc03f40d5 Merge pull request #817 from CyborgMaster/radarall-equidistant-objects
radarall can return multiple objects with exactly the same distance
2016-09-09 19:17:40 +02:00
MrSimbax 514829de60 Normalize dir parameter when copying to clipboard 2016-08-20 13:22:53 +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
melex750 3146d4ef35 Add method chaining for class constructor calls 2016-08-14 16:56:17 -04:00
Jeremy Mickelson 859cec774a Added comment explaining container choice 2016-08-13 12:18:54 -06:00
Jeremy Mickelson 88227a3647 Allow multiple objects with exactly the same distance to be returned by `radarall` 2016-08-13 12:13:41 -06:00
krzys-h d411c5ebc0 Allow circular references from different classes (#814)
Conflicts:
	test/unit/CBot/CBot_test.cpp
2016-08-09 21:10:07 +02:00
krzys-h b9d4d57e33 Syntax sugar: Accessing members of returned objects (#808)
Conflicts:
	src/CBot/CBotInstr/CBotInstrMethode.h
2016-08-09 20:28:37 +02:00
krzys_h d83553ca14 Merge pull request #809 from melex750/dev
Fixes and unit tests for inheritance
2016-08-09 19:23:49 +02:00
krzys-h 0ecdee08cc Merge branch 'dev-async-music-load' (PR #801) 2016-08-09 19:20:46 +02:00
melex750 66218319dd Add support for circular references
Issue #433
2016-08-09 11:59:07 -04:00
Jeremy Mickelson 6b8e240d26 Fix implicit downcast with variable initialization 2016-08-07 08:27:01 -04:00
melex750 a205eace38 Add missing license headers 2016-08-06 16:29:02 -04:00
melex750 e48188b429 Fix failed assert when literal null is returned 2016-08-06 04:56:57 -04:00
krzys-h c03d8beb8b Import documentation from old dev wiki
I also updated all outdated information I could find, please tell me if I missed something

Model format documentation needs an update
2016-08-05 17:04:16 +02:00
melex750 fad38cd0e9 Add accessing members to function calls 2016-08-04 03:16:59 -04:00
melex750 c9c02f5461 Fix assigning instance to pointer for inheritance 2016-08-04 01:06:37 -04:00
melex750 860cdb0aea Fix calling multi-level inherited methods 2016-08-03 19:13:21 -04:00
melex750 d0a8a32a57 Fix RestoreMethode when calling inherited methods 2016-08-03 18:34:39 -04:00