Commit Graph

2767 Commits (07541d0bbb03e8b3f3871e9ea8fe19e925e22a66)

Author SHA1 Message Date
Victor Vieux 11047ecd53 system_macosx.cpp: fix typo 2021-08-24 15:48:31 -07:00
lb_ii 91a290dade Assign team id to Alien eggs created during produce() 2021-08-25 01:09:58 +03:00
lb_ii ea62a449d4 Add optional team parameter to produce() function 2021-08-24 02:21:42 +03:00
Fiftytwo a5d9bae052 Fix missing AmphibiousTrainer in drive_type 2021-08-20 18:17:36 +02:00
Emxx52 efad9a4dae
Merge pull request #1438 from melex750/dev-cbot-fix-leaks
CBOT bug fixes and improved performance
2021-08-14 20:15:58 +02:00
melex750 55d6c431f2 Fix a bug in WriteStream and ReadStream
Added a unit test to confirm reliability of I/O
functions used by SaveState and RestoreState.
2021-06-25 18:50:15 -04:00
melex750 ce450d1c00 Fix save/load programs for insects from AlienEgg
fixes #1370
2021-06-25 18:47:25 -04:00
melex750 9f5ee21bbe Restore repeat(n) instruction
fixes #1403
2021-06-11 23:28:53 -04:00
melex750 27466a4223 Make all CBotStack data members non-static 2021-06-11 22:48:50 -04:00
melex750 a279541198 Make all CBotCStack data members non-static 2021-06-11 22:47:33 -04:00
melex750 309f80b25f Fix some bugs and memory leaks in CBOT
* Added CBotStack::StackOver() calls where it was possible
  to go out-of-bounds when calling CBotStack::AddStack().
* Fixed some bugs in CBotExternalCallClass
2021-06-11 22:46:23 -04:00
melex750 993a6adf6e Fix inherited data members not being saved
* Removed erroneous 'parent instance' from CBotVarClass.
* Fixed output of CBVarClass::GetValString()
2021-06-11 22:44:20 -04:00
Fiftytwo 8647deafc8 Merge branch dev into dev-gameplus 2021-03-21 22:30:23 +01:00
Mateusz Przybył 52446c1049
Merge pull request #1371 from jaladreips/dev-cmake
Fix MSVC building issues by correcting CMakeLists.txt
2021-02-22 20:49:27 +01:00
MrSimbax 404d2dbeb1 Fix segfault in CApp UT
I moved m_engine creation to the constructor.
However, it is not complete until after calling m_engine->Create().
The UT segfault because the pointer is not null and destructor calls
m_engine->Destroy() on an incomplete object.
(Yes, UTs test incomplete SUT.)

So I moved back the m_engine creation to CApp::Create() but before
the SDL initialization as m_engine holds the flag for vsync.
2021-02-07 13:38:29 +01:00
MrSimbax 9a04685101 Fix compile error 2021-02-07 13:03:12 +01:00
MrSimbax a7aaa07356 Update vsync list after user interaction
The vsync may immediately fallback to another option after change from
the user so the UI should reflect that.

Todo: show a popup in UI informing the user why their desired vsync
option couldn't be set. Right now the error message is visible only from
the logs.
2021-02-07 12:50:13 +01:00
MrSimbax 71ff89a803 Remove vsync disable/enable loop (fix #1383)
Also a small refactor due to repeated code.
The vsync flag in m_engine is now synchronized with the SDL state
during initial configuration of CApp.
2021-02-07 12:47:32 +01:00
jakac c336a67afa Fix MSVC building issues by correcting CMakeLists.txt 2021-01-03 15:46:01 +01:00
Fiftytwo 10ec454f6b Fix Target research() executing in ResearchCenter 2020-12-31 05:00:33 +01:00
MrSimbax 05de2baef5 Fix crashes in SatCom on some \button characters
The issue is that the \button fragments in SatCom are replaced with
invalid UTF-8 bytes, hence those bytes need to be handled as a special
case when checking for UTF-8 character length.

When the text is processed e.g. in `Gfx::CText::Justify`, there are
generally two arrays: `text` and `format`. The second one is interpreted
as a font for a given character, e.g. `text[i]` has font `format[i]`.

Now, in the loops the index for `text` is increased by the length of
the character, e.g. 1 to 4 bytes, whereas index for `format` is
only incremented. It seems there's an assumption that `format` treats
multibyte characters as one byte, which doesn't seem to be true by
looking at the process of filling up the `format` array. This can result
in using wrong font e.g. FONT_SATCOM for the \button character which
should be FONT_BUTTON, hence the `StrUtils::Utf8CharSizeAt` method
complains about unexpected continuation byte via exception, causing
the crash.

Incrementing the index by the UTF-8 length seems to have fixed the
issue. However, I am not sure if I haven't broken anything else by this
and if I analyzed the intended behaviour correctly.
Gfx::CText needs a major refactor IMHO.
2020-09-20 21:22:05 +02:00
Jeff Law ad2e3db92f Fix more dynamic casts for gcc-11
Signed-off-by: suve <veg@svgames.pl>
Jeff's patch was written for the 0.1.12 stable release.
Adapted to work with the "dev" branch (as of commit 13098ee).
2020-09-15 10:20:24 +02:00
Jeff Law 8c6ac4cd16 Fix dynamic casts to avoid gcc-11 diagnostics 2020-09-04 11:16:45 +02:00
tomangelo 2685a1eb60
Add cell capacity parameters (#1348) 2020-08-31 13:37:45 +02:00
tomangelo2 f08c67bef9 Fix warning regarding mismatched parameter types 2020-08-27 00:28:03 +02:00
Emxx52 1c9f5f3f64
Merge branch 'dev' into dev-mod-manager 2020-08-21 18:21:08 +02:00
tomangelo d7ec891ab8
Merge pull request #1346 from melex750/dev-cbot-fix-delete
Fix CBOT script hanging at delete()
2020-08-20 22:09:37 +02:00
tomangelo dbc13bad20
Merge pull request #1345 from melex750/dev-cbot-fix-abs
Fix abs() only working on floats
2020-08-17 19:28:35 +02:00
melex750 8d5cafecb3
Fix CBOT script hanging at delete() 2020-08-15 09:41:31 -04:00
melex750 d0961a517a
Fix abs() only working on floats 2020-08-15 09:29:45 -04:00
Fiftytwo 4c1d3eecd1 Add flag() and deflag() CBOT functions 2020-08-15 03:31:17 +02:00
Fiftytwo 56c99e741e Make Vault buildable 2020-08-08 20:51:56 +02:00
tomangelo2 4bb6f9f1b3 Remove unnecessary warning if there is no fonts.ini file 2020-08-08 15:41:07 +02:00
Fiftytwo b9305dfd45 Fix Mushroom SatCom links 2020-08-08 14:34:21 +02:00
Tomasz Kapuściński 4c14050b27 Fixed mipmaps being outdates after texture update. 2020-07-31 22:04:47 +02:00
Tomasz Kapuściński 33b7c893cb Allow length of the light direction vector to influence strength of the light source.
This fixes the issue with objects and terrain being darker than they should be. As it turns out, most levels have not normalized light direction which happens to make light brighter and this is the expected result. To keep in line with GL14 engine, newer engines should use the length of the vector to make light brighter.
2020-07-31 22:01:33 +02:00
Fiftytwo 2023756023 Fix factory() being able to produce non-bot units 2020-07-30 11:11:51 +02:00
Fiftytwo a92fa950e2 Make Sniffers able to plant flags 2020-07-30 11:03:12 +02:00
Fiftytwo e63afb3461 Add WayPoint animation in deletemark 2020-07-30 04:21:35 +02:00
Fiftytwo 25a8d7b5b5 Move flatground scan button from Sniffers to Builders 2020-07-30 03:48:31 +02:00
MrSimbax 9cb80daedf Improve sound reloading
Also some minor refactoring.

Since realoding may take a lot of time, modman no longer reloads
the whole app on entering/leaving the screen.
2020-07-27 15:59:33 +02:00
immibis 9e743e86af Fix crash when quick-saving with increased game speed 2020-07-26 14:55:56 +02:00
MrSimbax fd36ff3840 Fix crash when changing text with UTF-8 chars
The code left a byte from the previous text in CEdit UI control if
the new text is shorter than the old one. So an exception was thrown
because it's an invalid UTF-8 byte.
2020-07-25 21:20:19 +02:00
immibis 5eebe300fc
Support new-format text models through the same code path as old models; update Blender script (#1290) 2020-07-25 21:13:26 +02:00
MrSimbax 93f3abee1a Change mod version separator to dot
I don't know why I put comma in there and how I didn't notice this
earlier.
2020-07-24 12:57:45 +02:00
Mateusz Przybył fbe2191800
Allow producing objects with no keyword in CBOT (#1335) 2020-07-24 02:20:06 +02:00
MrSimbax b685d0060c Merge branch 'dev' into dev-mod-manager 2020-07-23 18:19:42 +02:00
MrSimbax 253cca379b List which level subdirectory a mod changes 2020-07-23 18:07:02 +02:00
MrSimbax 51668c12d7 Add changes listing to mods
It's just listing directories of a mod for now, but should give some
idea what the mod changes.

Also moved some functionality from pathman to modman.

Mods added with the `-mod` parameter are now managed by modman.
2020-07-23 17:44:38 +02:00
MrSimbax 16795e0d49 Use level parser instead of JSON for manifest 2020-07-22 21:40:13 +02:00
MrSimbax 62b770f7d3 Improve UI of mod manager a little
The arrow buttons are smaller and the up button is now above the down
button. What is more, the width of the back button is now the same as
in other places.
2020-07-22 17:50:19 +02:00
MrSimbax df415880d0 Fix linter issues 2020-07-22 17:26:46 +02:00
MrSimbax 1be69a0a51 Fix compile errors 2020-07-22 17:24:07 +02:00
MrSimbax 2b96eda86d Fix minor issues 2020-07-22 17:13:52 +02:00
MrSimbax f57da76ae8 Add handling of mods manifests
Also add Polish translations for mod manager related strings.
2020-07-22 16:35:47 +02:00
Mateusz Przybył a5c7187017
Fix crashes on SatCom in Moon missions (#1334) 2020-07-22 00:37:37 +02:00
MrSimbax 5112bf86df Fix linter issues 2020-07-21 21:11:08 +02:00
Mateusz Przybył 2d32e3a798
Merge pull request #1255 from timgott/smooth_shadows_gl21
Smooth shadows in gl21
2020-07-21 20:55:47 +02:00
Mateusz Przybył fd2b72b296
Merge pull request #1263 from nextghost/dev
Fix OpenGL specular lighting
2020-07-21 20:55:21 +02:00
MrSimbax eac74c23ec Fix linter issues 2020-07-21 20:39:00 +02:00
MrSimbax 242477e3ee Major UI change to mod manager
Move the button to the sidebar.

Add reordering option.

General improvements and refactoring.
2020-07-21 20:27:24 +02:00
Droog71 c4385961c4
Fix for issue #1163 (#1332)
* Clamped power variable before assignment to params in object manager. Attempted to fix formatting issues.

* Fixed Clamp function not implemented correctly.

* Fixed formatting issue, space after commas.

* Created ClampPower method in object_manager.h and implemented in object_manager.cpp, Removed similar code from robotmain.cpp

* Removed redundant call to ClampPower in object_manager.cpp

* Added second call to ClampPower back to object_manager.cpp. Made ClampPower method private. Attempted to fix whitespace issues.

* Fixed missing assignment to params.power in CreateObject method of object_manager.cpp

* fixed white space at end of line 182 in object_manager.h

* Fixed doxygen compatibility issue.
2020-07-20 21:55:44 +02:00
Fiftytwo 754dfefefd Add Missions+ gamemode 2020-07-20 18:35:31 +02:00
MrSimbax 7e6782a1be Try to improve font reloading 2020-07-19 16:07:27 +02:00
MrSimbax 56a8c5eb48 Fix build error on GCC 2020-07-19 15:16:39 +02:00
MrSimbax 63bf6bed08 Add saving mods list in colobot.ini 2020-07-19 15:02:35 +02:00
Droog71 d64d78acfc
Fix for issue #1221 (#1230)
* Fix for issue #1221

* Removed object array and implemented GetObjectName method in it's place.

* Fixed indentation issue.

* Fixed white space at end of lines 1571, 1572.
2020-07-19 10:55:55 +02:00
MrSimbax 69d2d39c36 Add ability to use arrays in colobot.ini 2020-07-18 18:06:14 +02:00
MrSimbax a0635ae400 Fix linter issues 2020-07-18 15:01:36 +02:00
MrSimbax dc64b95406 Fix build error 2020-07-18 14:47:18 +02:00
MrSimbax 8390d85e46 Refactor the mod manager
Moved list of mods logic to a new CModManager class.

The list of enabled mods is now managed by a flag instead of directory
names of mods.

Mods are now disabled by default.

Also general cleanup, fixing issues from the code review in
https://github.com/colobot/colobot/pull/1191 and fixing linter issues.

Regression: the state of enabled/disabled mods is now not persistent.
The plan is to use some kind of config file for this.
2020-07-18 14:30:50 +02:00
Fiftytwo 95cab790c1 Rename 'freemissions' back to 'free' 2020-07-17 19:33:53 +02:00
Fiftytwo b72bedaf60 Add BrownMushroom and GreenMushroom categories in CBOT 2020-07-17 18:00:36 +02:00
MrSimbax 5f76722ecb Add error dialogs for open path/url buttons 2020-07-17 17:27:09 +02:00
MrSimbax 4905abe30b Merge branch 'dev-mod-manager' of https://github.com/DavivaD/colobot into dev-mod-manager 2020-07-17 11:49:51 +02:00
Fiftytwo ac32e40003 Add Ruin, Bush, GraviPlant, and Crystal categories in CBOT 2020-07-17 03:37:13 +02:00
Emxx52 d29570c20a
Merge pull request #1331 from colobot/dev-heavyduty
Update Heavy bots, fix collisions
2020-07-14 22:52:08 +02:00
MrSimbax 73429315a7 Add USE_STATIC_RUNTIME option
Mainly useful for MSVC.
2020-07-14 20:43:42 +02:00
MrSimbax 167dd01bbe Revert "Fix CBotUT.FunctionRecursionStackOverflow test"
This reverts commit 004c861ba9.
2020-07-14 13:54:32 +02:00
MrSimbax df7cdd4b8e Fix some minor issues after CR 2020-07-14 13:51:07 +02:00
MrSimbax 2143f21828 Fix linter 2020-07-14 13:43:33 +02:00
MrSimbax 17e38bf66c Install PDB file if available 2020-07-13 23:39:11 +02:00
MrSimbax 634efbcabd Fix GLEW_STATIC redefinition warnings 2020-07-13 21:33:36 +02:00
MrSimbax f0ba8ec325 Revert "Fix warnings about redefining GLEW_STATIC"
This reverts commit 9cf30fd9bc.
2020-07-13 21:27:31 +02:00
Fiftytwo 83a32b36b3 Fix collision persistence of exploding Heavy bots 2020-07-13 20:27:40 +02:00
Fiftytwo c80a816808 Merge branch 'dev' into dev-heavyduty 2020-07-13 19:51:23 +02:00
Fiftytwo a2c62a9da6 Make Heavy bots destroy bushes on contact 2020-07-13 19:44:50 +02:00
MrSimbax c4037a885f Make CI Windows build with MSVC instead of MXE 2020-07-12 23:17:42 +02:00
immibis a2aeef0155 When game speed is 2 or higher, run multiple ticks. 2020-07-11 21:20:55 +02:00
MrSimbax 004c861ba9 Fix CBotUT.FunctionRecursionStackOverflow test
On MSVC it throws StackOverflow exception. I reduced the stack size to
make the test pass.
2020-07-11 12:17:20 +02:00
MrSimbax 81ddda4515 Make tests work with targets 2020-07-11 12:16:20 +02:00
Krzysztof Dermont 7d7a29117e Save audio settings when option changes
Mute/unmute option when game windowis in background relies on settings
being updates. This happens when users leaves Options screen. This
commit adds saving audio settings on each change.

This is a fix for #1315
2020-07-10 20:15:18 +02:00
MrSimbax 9cf30fd9bc Fix warnings about redefining GLEW_STATIC
I guess this flag is now set by CMake somehow so we no longer need
to define it ourselves.
2020-07-10 18:55:47 +02:00
MrSimbax df65862c49 Start using CMake targets instead of variables
Moved most of the variables to targets in the main src.

Made libraries in repo export targets.

Refactor STATIC flags a little and add more.

This commit definitely breaks a lot of things like tests
but the main game builds at least with MSVC.
2020-07-10 18:49:54 +02:00
MrSimbax 4ae0360640 Remove source grouping temporarily
It's probably not how it should be done with modern CMake, so I'm
removing this for now to focus on other changes first.
2020-07-10 13:03:23 +02:00
MrSimbax bf1982f4e4 Change `make update-pot` comment to cmake command
`make update-pot` only works if a generator producing Makefiles was
used with `cmake`. The `cmake` command to build a specific target
will work for any generator.
2020-07-10 11:01:47 +02:00
Fiftytwo 6a23e97533 Fix collisions of animated plants 2020-07-08 14:17:08 +02:00
MrSimbax 4bd6e01b65 Fix filename style of the particles generator 2020-07-07 21:30:21 +02:00
MrJohn10 35b22f7a7f
Refactor - Move UI mouse particles generation to a new class. (#1308)
* Move UI mouse particles generation to a new class.

* refactoring

* refactor - change variable name

* change backslashes to forward slashes in include directives

* remove & from variable

* Refactoring - fix linter issues

* Refactoring - fix linter issues

* refactoring - fix linter issues
2020-07-07 20:48:52 +02:00
tomangelo 37e4ed8029
Updated license headers (#1317)
* Updated headers

* Updated more headers
2020-07-07 10:19:36 +02:00