Commit Graph

546 Commits (aa6345ab5e2a0303cf3349774889a710a6ba7258)

Author SHA1 Message Date
Tomasz Kapuściński d944a55905 Optimized DrawPrimitives() in CGL21Device 2015-12-24 00:06:58 +01:00
Tomasz Kapuściński f2a295348c Optimized DrawPrimitives() in CGLDevice 2015-12-23 23:49:00 +01:00
Tomasz Kapuściński d82b5ef746 Added DrawPrimitives() for drawing multiple primitives (not optimized for now) 2015-12-23 23:23:10 +01:00
Tomasz Kapuściński 22e963e2c4 Added information about graphics card to error message 2015-12-20 17:34:55 +01:00
Tomasz Kapuściński aa2e14219e Added warnings and error messages to graphics devices regarding unsupported OpenGL version 2015-12-18 21:04:16 +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
Piotr Dziwinski 66ce745be0 Introduce forward declarations as suggested by colobot-lint 2015-09-27 16:28:14 +02:00
krzys-h 6a6025f557 Implemented force feedback 2015-09-27 00:34:03 +02:00
krzys-h 07df35ca01 Refactored mouse wheel 2015-09-25 22:54:48 +02:00
krzys-h a0034f8000 Finalized SDL2 migration 2015-09-25 21:26:49 +02:00
krzys-h dfa06dafcf Refactored window resize 2015-09-25 11:11:35 +02:00
krzys-h 53e4470dbf Started SDL2 migration 2015-09-24 21:09:46 +02:00
krzys-h 389aaaf132 Fixed 'invui' disabling too much 2015-09-12 11:51:03 +02:00
krzys-h 2792fa2c6c Fixed mouse cursor scaling (again)
How could I even miss the fact that my previous fix is not working at all? :P
2015-09-11 17:54:55 +02:00
krzys-h b058a6986b Minor improvments to plane camera 2015-09-06 20:33:04 +02:00
krzys-h 582e3c865f Allow controlling plane camera with number keys 2015-09-06 20:15:56 +02:00
krzys-h f6fdec1479 Allow controlling free camera with arrows when no object is selected 2015-09-06 20:09:47 +02:00
krzys-h 5fd1735678 Added option to move camera lookat point in free cam 2015-09-05 20:59:11 +02:00
krzys-h fb03a497d7 Added command to hide the UI 2015-09-04 19:16:21 +02:00
krzys-h e956311626 Moved free camera controls to numpad; added 'camtype %d', 'camspeed %f', 'freecam' 2015-09-04 19:04:42 +02:00
Tomasz Kapuściński 658e2ff1be Possible fix for issue #520 2015-09-02 21:35:43 +02:00
krzys-h c3d7876a5c Made CPauseManager not a singleton 2015-08-31 22:05:21 +02:00
krzys-h ff17961584 Refactored CPauseManager 2015-08-31 21:47:55 +02:00
krzys-h 2ec5e07080 Possible fix to #608 2015-08-31 12:06:14 +02:00
Piotr Dziwinski 3335be42de Fix MSVC compilation
Forgot to push this the last time
2015-08-30 22:11:30 +02:00
krzys-h d4b431adaa Recalculate camera projection matrix after aspect ratio change 2015-08-25 16:18:01 +02:00
krzys-h 844e7343e0 Possible fix to #601 2015-08-24 23:19:02 +02:00
krzys-h 6ed83bb63f Fixed Shielder not being destructible by OrgaMatter even when the shield is not active, closes #597 2015-08-24 21:12:06 +02:00
krzys-h f78f4854b4 Fixed failing assertion when turning objects into ruins, closes #598 2015-08-24 20:22:08 +02:00
krzys-h b5bd1b2d74 Destroy static buffers after resolution change
Under windows, changing the video mode causes SDL to destroy and recreate the OpenGL context, which invalidates all current static buffers.
It works on Linux because the actual SDL implementation here differs.

See http://sdl.beuc.net/sdl.wiki/SDL_SetVideoMode for details:
> Also note that, in Windows, setting the video mode resets the current OpenGL context. You must execute again the OpenGL initialization code (set the clear color or the shade model, or reload textures, for example) after calling SDL_SetVideoMode. In Linux, however, it works fine, and the initialization code only needs to be executed after the first call to SDL_SetVideoMode (although there is no harm in executing the initialization code after each call to SDL_SetVideoMode, for example for a multiplatform application).
2015-08-24 19:43:06 +02:00
Piotr Dziwinski 60f0a7b45c Get rid of "blacklisting shadowXX.png" logs 2015-08-22 18:17:57 +02:00
Piotr Dziwinski b93f610930 Fix license header in all files 2015-08-22 16:40:02 +02:00
krzys-h 8421189716 Merge branch 'dev-cbot-syntax-highlighting' into dev (#575) 2015-08-18 23:01:02 +02:00
krzys-h e91ecbbb01 Removed unused references to effect03.png from the code 2015-08-18 22:59:31 +02:00
krzys-h 1c0fc21e2b Made all colors a bit darker 2015-08-18 22:12:00 +02:00
krzys-h c5da68d516 New CBot syntax highlighting 2015-08-18 22:12:00 +02:00
krzys-h 371621ced4 Render trace colors in the code instead of using texture 2015-08-18 22:11:04 +02:00
krzys-h a5c84b9a1e Removed unused OBJECT_FIX and OBJECT_FRET 2015-08-18 11:43:41 +02:00
Piotr Dziwinski a63a959dbe Apply clang-modernize -use-nullptr 2015-08-17 22:40:52 +02:00
Piotr Dziwinski ba3284b8b8 Apply clang-modernize -add-override 2015-08-17 22:12:09 +02:00
krzys-h 2dbacc28b5 Fixed too small AlienAnt damage 2015-08-17 22:05:26 +02:00
krzys-h 1185bd4c36 Fixed OrgaMatter destroying itself and the wasp 2015-08-17 19:12:58 +02:00
krzys-h 1059ae37c1 Shielder subclass 2015-08-17 14:06:31 +02:00
krzys-h 75de19f10e COldObjectInterface::SetViewFromHere -> CControllableObject::AdjustCamera 2015-08-17 11:53:34 +02:00
krzys-h e11d2ec33e Refactor object dying status and GetActive 2015-08-16 20:24:48 +02:00
krzys-h b2e7815001 Fixed AlienSpider explosion
#fail
2015-08-16 18:12:34 +02:00
Piotr Dziwinski 2289d69735 Replace NULL -> nullptr 2015-08-16 12:43:42 +02:00
Piotr Dziwinski d703eb7165 Compile fixes for MSVC2013 2015-08-16 00:39:08 +02:00
Piotr Dziwinski dd227f5fba Fix some stupid mistakes connected with implicit bool casts 2015-08-15 19:17:15 +02:00
krzys-h 9a15db1bea Split global.h 2015-08-15 14:02:07 +02:00
krzys-h 9d8bef877d Renamed old-style shadows to shadow spots in the code 2015-08-14 13:37:40 +02:00
krzys-h 78a279b479 Better shadow type selection UI 2015-08-14 13:37:27 +02:00
krzys-h eda7435eb6 Removed a lot of useless settings (#556) 2015-08-14 13:04:05 +02:00
krzys-h 1d6c3cc748 Fixed CEngine trying to use unsupported values as defaults, closes #552
Also fixed the settings buttons not being disabled properly
2015-08-14 12:03:53 +02:00
krzys-h 92591c23b6 When flushing texture cache, also remove device textures 2015-08-13 23:49:01 +02:00
krzys-h 1c461ce1c8 Prevent reloading background if not needed 2015-08-13 23:44:08 +02:00
Piotr Dziwinski 0258b63d39 Fix memory leak in creating textures 2015-08-13 23:42:27 +02:00
krzys-h c399e5e246 Somehow missed some more Scraps :/ 2015-08-13 19:53:03 +02:00
krzys-h 08afa4b134 Fixed falling OrgaMatter object destruction 2015-08-13 19:04:15 +02:00
krzys-h bfd3a5b23c Refactored ExplodeObject 2015-08-13 18:54:44 +02:00
krzys-h e5e1d4973f CDestroyableObject, CFragileObject, CShieldedObject and CShieldedAutoRegenObject 2015-08-13 13:41:25 +02:00
krzys-h ff957afefc Moved files not directly related to CObject into src/level/ directory 2015-08-13 11:47:32 +02:00
krzys-h e937db94c8 Moved GetPhysics() and GetMotion() to CMovableObject; moved trace drawing to CTraceDrawingObject 2015-08-13 10:49:45 +02:00
Piotr Dziwinski 93a06c0c23 Remove manual memory management from graphics classes 2015-08-12 21:07:16 +02:00
krzys-h 63d83185b5 Move GetTooltipText and Get/SetLock to CObject; remove Get/SetEnable 2015-08-12 00:16:57 +02:00
krzys-h 15c1c7ee03 CMovableObject, CControllableObject 2015-08-10 23:21:15 +02:00
krzys-h 6b4610e808 Improved stats display 2015-08-09 15:20:38 +02:00
krzys-h 0ed11e0e7d Fixed "unable to open shadow??.png texture" errors again 2015-08-07 22:48:26 +02:00
krzys-h 0468c3efdb Fixed ULTRA LONG loading time bug introduced in 5593f427f6
Well... that escalated quickly :P
And it remained unnoticed for so long!
2015-08-07 22:36:50 +02:00
krzys-h 57469533b6 Implemented loading progress bar 2015-08-07 20:48:55 +02:00
krzys-h f90bb63520 Hide some things in save screenshots
Save indicator, mouse cursor, CDisplayText and interface particles
2015-08-07 15:59:05 +02:00
krzys-h 7da6f1b704 More random virus particles 2015-08-07 15:18:04 +02:00
krzys-h 9bf53e48e8 Changed TAB character rendering to be red, like in the original game 2015-08-07 14:16:10 +02:00
krzys-h 4d5b4c47a2 Use CText for virus particle rendering
As suggested by @RaptorParkowsky on Trello - https://trello.com/c/56MszsWA/66-texture-remastering-checklist
2015-08-07 13:29:29 +02:00
Piotr Dziwinski e9e1c8d4dd Add proper initializations and remove manual memory management in app classes 2015-08-07 10:16:46 +02:00
krzys-h 22415e183d Remove unneeded empty map.png file 2015-08-06 23:06:36 +02:00
krzys-h 0d00952b10 Rename text.png to effect03.png 2015-08-06 22:41:54 +02:00
krzys-h 1e97d41a2d Fixed RedArrow and BlackArrow transparency (#545) 2015-08-06 22:39:06 +02:00
Piotr Dziwinski f95980456a Replace anonymous union in Event with pointer to appropriate struct 2015-08-06 19:11:50 +02:00
krzys-h ec3ded75b8 Removed unused LOD level setting 2015-08-06 18:35:56 +02:00
Piotr Dziwinski f29a826ad2 Fix Clang warnings about use of abs() 2015-08-06 14:31:40 +02:00
Piotr Dziwinski 61ec101b11 Replace size_t with std::size_t
For some reason Clang's AST API doesn't like size_t
2015-08-06 14:31:40 +02:00
krzys-h b20d589c87 Check available texture units in shadow mapping settings 2015-08-06 13:47:42 +02:00
Piotr Dziwinski 4faeffa77d Fix for cursor particles in main menu 2015-08-06 13:25:56 +02:00
krzys-h dc85aa2138 Moved all UI controls to a subdirectory 2015-08-06 13:25:24 +02:00
krzys-h 2b4210dcbc Separated CMainUserInterface from CMainDialog 2015-08-06 12:59:09 +02:00
Piotr Dziwinski 0c9cf51d81 Address comments on commit d7bc28a 2015-08-06 11:17:54 +02:00
Piotr Dziwinski bdeeaf690b Get rid of memsets 2015-08-06 09:37:25 +02:00
Piotr Dziwinski 0c9e745213 Add proper initializations in remaining graphics classes 2015-08-06 09:33:27 +02:00
Piotr Dziwinski c339838cd2 Add proper initializations in CWater, CTerrain and CCloud
Also make associated structs private
2015-08-06 08:22:11 +02:00
Piotr Dziwinski d7bc28a595 Add proper initializations in CPlanet and refactor planet mode 2015-08-06 08:22:11 +02:00
Piotr Dziwinski 111d279de5 Add proper initializations in OpenGL classes 2015-08-06 08:22:11 +02:00
Piotr Dziwinski 91658c7df0 Add proper initializations in basic graphics structures 2015-08-06 08:22:11 +02:00
Piotr Dziwinski c38ecd67ea Fix crash in glDeleteTexture 2015-08-05 23:06:54 +02:00
Piotr Dziwinski c2387b4b56 Class naming fix 2015-08-04 20:58:03 +02:00
Piotr Dziwinski 18f9bfb575 Make saving screenshot thread- and exception-safe
* introduce ResourceOwningThread wrapper for safely passing resources
   to new threads
 * make CEventQueue thread-safe
 * start screenshot saving thread using ResourceOwningThread
 * change direct call at end of writing screenshot to thread-safe
   event communication
2015-08-04 20:37:15 +02:00
krzys-h 4b271cee2d Moved settings out of CMainDialog into a separate class
Also fixed some problems with resolution list selection after starting game
2015-08-04 12:46:54 +02:00
krzys-h 04960035c1 Save screenshot image in a separate background thread (#546) 2015-08-03 21:40:30 +02:00
krzys-h 5e4a423bf0 Cleaned up "textures/"+something, fixed more possible occurences of #531 2015-08-03 20:55:33 +02:00
Piotr Dziwinski 11b0398c03 Include refactoring
* reordered includes according to correct style
 * removed some unnecessary includes
2015-08-02 17:49:07 +02:00
Piotr Dziwinski 7d8b56d9ab More style fixes 2015-08-02 12:06:14 +02:00
Piotr Dziwinski 3b585d9f51 Some style and whitespace fixes 2015-08-02 11:36:36 +02:00
krzys-h 6818e32150 Fixed shadow mapping disable when not supported (#522) 2015-07-29 22:30:44 +02:00
krzys-h 083f216529 Team object recoloring (#514) 2015-07-22 12:45:50 +02:00
krzys-h 72b9738eb9 Fixed possible problems when trying to use shadow maps in unsupported configuraions (#522) 2015-07-20 22:34:39 +02:00
krzys-h 52a3e0b24f Fixed minimap texture disappearing on texture settings change
Bug mentioned by @erihel in #505
2015-07-20 21:22:34 +02:00
krzys-h 4741118b61 Added new options to configuration presets 2015-07-20 20:47:44 +02:00
krzys-h 5593f427f6 Proper fix to #94 (finally!!!!)
It was so simple, wasn't it?
Additionaly:
* fixed texture recoloring after changing texture settings while simulation is running
* fixed annoying "could not open textures/shadow*.png" messages
* don't ChangeColor() if not in simulation to reduce lag in settings
2015-07-20 19:35:20 +02:00
krzys-h 7b3ae32626 Shadow mapping now disables old shadows 2015-07-20 18:56:15 +02:00
krzys-h f03734d17f Added shadow mapping to settings screen 2015-07-20 18:42:09 +02:00
krzys-h e2ebcb769e Added MSAA to settings screen 2015-07-20 16:29:09 +02:00
krzys-h 90756f8b34 Added FilterMode, MipmapLevel and Anisotropy to settings screen 2015-07-20 13:56:45 +02:00
krzys-h a879e496f5 Removed unused texture quality setting 2015-07-20 12:21:16 +02:00
krzys-h d3c3f47b19 Fixed particle rendering (#518)
Introduced in 5a1c6d19ff - I'm so dumb D:
I kinda recently noticed some of the SpaceShip particles were missing...
2015-07-19 21:17:58 +02:00
krzys-h 02c24fbf27 CProfile -> CConfigFile 2015-07-19 16:05:09 +02:00
Tomasz Kapuściński 644f5b4d7f Corrected some problems with dynamic shadows 2015-07-19 00:07:59 +02:00
Tomasz Kapuściński 1d69021e94 Potential fix to #511 2015-07-18 02:02:38 +02:00
Piotr Dziwinski b3b6435039 Use MakeUnique with level parser classes 2015-07-17 20:38:21 +02:00
Piotr Dziwinski a872ea128b Add MakeUnique template to avoid use of naked new 2015-07-17 20:06:59 +02:00
krzys-h 2b9811d225 Movie lock refactoring 2015-07-16 22:09:50 +02:00
Piotr Dziwinski 8ca77f27a1 Extracted CSDLFileHandler from CResourceManager
This also possibly fixes some rare error cases (e.g. #439)
2015-07-16 21:13:38 +02:00
Piotr Dziwinski 94ea1ff106 DeselList refactoring
Make CRobotMain hold selected object history instead of
every object holding some part of it
2015-07-15 18:09:23 +02:00
Piotr Dziwinski d5da68d59a Refactor old Get/SetAngle/Zoom -> Get/SetPartRotation/Scale 2015-07-14 21:35:43 +02:00
Piotr Dziwinski 1183ed1980 Refactor old Get/SetPosition -> Get/SetPartPosition 2015-07-14 19:40:39 +02:00
Piotr Dziwinski 7c229b4e83 Fix reading new model format with CRLF line endings 2015-07-14 19:40:07 +02:00
Piotr Dziwinski 0d1b97510d Add exception handling when creating new objects on level loading 2015-07-14 18:28:42 +02:00
krzys-h 62fddd6d4f Made pendown() trace opaque 2015-07-14 17:38:29 +02:00
krzys-h 5a1c6d19ff Removed unused particle types 2015-07-14 14:16:19 +02:00
Piotr Dziwinski 20dbb8320b Remove unused reset code 2015-07-13 22:46:51 +02:00
krzys-h 6e404f5aa2 Better mouse scaling on widescreen resolutions 2015-07-13 11:58:52 +02:00
Piotr Dziwinski 9a7c1961a4 GetPostion(), GetRotation() and GetScale() in CObject interface
Also replace old calls like GetPosition(0) to GetPosition()
2015-07-12 11:05:50 +02:00
Piotr Dziwinski fcbbbcb83c Fix some more CObject interface issues
* fix mission 1.3
 * fix saving/loading missions
 * fix compile warnings
2015-07-12 00:03:57 +02:00
Piotr Dziwinski e8582d214c CStaticObject subclass using new model framework
* added reading/writing working version of new model format V3
 * added CStaticObject with minial interface intended for
   non-interactive static objects like trees
 * converted first model, tree0, to new format
2015-07-11 19:52:38 +02:00
Piotr Dziwinski 6dcef71802 GlobalSphere -> CameraCollisionSphere refactoring 2015-07-11 13:52:04 +02:00
Piotr Dziwinski f4b2f3468d CPoweredObject interface 2015-07-11 13:38:27 +02:00
krzys-h 36d08e852c Better splashscreen scaling on widescreen resolutions 2015-07-11 12:57:18 +02:00
Piotr Dziwinski 4c10730f87 CCarrierObject interface 2015-07-10 23:16:55 +02:00
Piotr Dziwinski 93479af188 CTransportableObject interface 2015-07-10 19:51:49 +02:00
krzys-h ad08d50bea Renamed some CAuto and CMotion classes 2015-07-10 12:18:21 +02:00
krzys-h e6c6b77be2 Removed old Teen objects
The models for them were removed a looong time ago, but the code was left for no reason
2015-07-10 11:37:32 +02:00
Piotr Dziwinski b0ac2f8326 Refactor CObject interface related to crash spheres 2015-07-10 09:38:53 +02:00
Piotr Dziwinski c585922a45 Use boost::lexical_cast instead of std::to_string 2015-07-09 22:53:58 +02:00
Piotr Dziwinski 93e950584a Refactor model-related code
* refactored model loading code based on code from dev-models
 * support new model format V2 (without LOD levels)
 * removed LOD levels support in CEngine and from model files
 * preparations for new model format V3:
   - support for multiple meshes in one model file
   - support for saving crash spheres and shadow spots
   - removed all direct dependencies on CEngine enum values
   - quantized model rendering states to new flags and enums
2015-07-09 21:37:04 +02:00
Piotr Dziwinski 9b232ee3f5 Sound enum refactoring
* rename Sound -> SoundType
 * add parsing string to SoundType
2015-07-09 21:32:25 +02:00