Commit Graph

361 Commits

Author SHA1 Message Date
Joonas Rikkonen d831654690 Fixed linux build 2018-07-17 21:37:44 +03:00
Joonas Rikkonen 23e0a76f37 Character head & gender settings are saved. Closes #474 2018-07-17 13:38:21 +03:00
Joonas Rikkonen b61898b16f Fixed clients assigning a wrong name to submarines with dots in their name (e.g. Sub Mk.Iv), because the part after the dots was considered a file extension and stripped out in the submarine constructor. Closes #472 2018-07-16 21:09:01 +03:00
Joonas Rikkonen ac5bad3011 Dedicated server can give clients the permission to use commands that only exist in the client project (los, lights, control, etc). Closes #476 2018-07-16 11:43:50 +03:00
Joonas Rikkonen 734b86bfba Fixed clients being unable to give non-permanent or range bans. Closes #481 2018-07-16 11:24:24 +03:00
Joonas Rikkonen 015eacbcb0 Fixed GameAnalytics thread becoming active despite user statistics being disabled, causing the game to stay active in the background when quitting. 2018-07-13 11:29:11 +03:00
Joonas Rikkonen 809fc74ddd Merge branch 'analytics' 2018-07-11 10:37:33 +03:00
Joonas Rikkonen b01826e4f8 Fixed crashing if LightManager.UpdateObstructVision is called before ViewTarget has been set. Closes #466 2018-07-11 10:34:53 +03:00
Joonas Rikkonen c7e220d222 Collecting some more usage statistics: selected game mode, mission, submarine, content package, traitors on/off, kills 2018-07-10 15:49:08 +03:00
Joonas Rikkonen 51f2455ada Added GameAnalytics framework which can be used to collect usage statistics. When starting the game for the first time, the player can select whether they want to send usage data or not. Atm only used to collect crash reports. 2018-07-10 13:40:54 +03:00
Joonas Rikkonen 847078f1ec Added a filename case check to sprite loading 2018-07-08 19:48:47 +03:00
Joonas Rikkonen bb31fd1e73 Moved some client-specific limb code to the client project, dripping water particles when characters get out from water 2018-05-21 19:17:34 +03:00
Joonas Rikkonen f931d81aed Mission refactoring (mission prefabs) and option to select which types of missions can be selected when mission type is set to random (TODO: a way to set the allowed types from the UI). 2018-05-17 23:45:29 +03:00
Joonas Rikkonen 244acd3ec5 Fixed character getting spawned at a random spawnpoint in any sub if no spawpoint that fits the character's job is found, making it possible for them to spawn inside the respawn shuttle. Closes #408 2018-05-17 19:56:36 +03:00
Joonas Rikkonen e61dc5ae5f Option to log debug console output to a file. Closes #318 2018-04-20 20:11:01 +03:00
Joonas Rikkonen c6f3d0c1b8 Attempt to fix characters occasionally getting launched out of the sub at lightspeed when the sub crashes into something (even if the impact doesn't appear to be that hard): impacts don't increase the velocity of the characters above 20 units/s. 2018-04-18 17:24:10 +03:00
Joonas Rikkonen edf5bacc89 Fixed EndRound music looping forever. Closes #334 2018-04-18 11:02:58 +03:00
Joonas Rikkonen 9a8f13140e Cherry-picked [ab78991]: Rendering tiled sprites with scaling works correctly now (I think?), added option to edit the offset of structure textures 2018-04-17 14:06:40 +03:00
Joonas Rikkonen 607acb6e8a Fixed wall sections being rendered incorrectly if texture scale is changed, fixed gaps between tiles due to the width/height of the tile being rounded down as a result of texture scaling 2018-04-10 22:28:14 +03:00
Joonas Rikkonen 8c4531188b Fixed scrollable area of GUIListBoxes not changing when children are hidden (e.g. when filtering messages in the server log), fixed new log messages appearing in the server log even if the type of message has been filtered out. 2018-04-09 17:31:03 +03:00
Joonas Rikkonen 324b7f8edd Fixed background fish not being rendered, added scale parameter to bg fish and made them a little smaller and faster. Closes #362 2018-04-09 16:01:38 +03:00
itchyOwl a34a024f58 Revert to the old tiling logic. Insert texture scale logic in between. Turn the silhouette code block into a separate method. 2018-04-09 09:54:26 +03:00
itchyOwl 22c3af6af6 Enable editing of the texture scale of the structures. 2018-04-06 16:07:17 +03:00
itchyOwl 9fc65298e8 Reduce duplicate code in Sprite constructors. 2018-04-06 15:56:32 +03:00
itchyOwl 1d30cbfac7 Add a null check. Simplify. 2018-04-06 15:11:04 +03:00
itchyOwl 061c7d17f1 Clean up a bit. 2018-04-06 14:21:29 +03:00
itchyOwl b86b8cd377 Use a single method with optional parameters for drawing tiled textures. 2018-04-06 11:54:41 +03:00
itchyOwl d7d69616e3 Simplify checks and casts, use pattern matching. Add a todo note. 2018-04-06 11:50:54 +03:00
Joonas Rikkonen 807ec87694 Fixed items in cloned/copypasted inventories not being saved. Closes #342 and #38 2018-04-05 13:45:21 +03:00
itchyOwl b599206294 Add a GUI slider for setting the auto ban duration. Define the max auto ban length in the server settings. (Issue #128) 2018-03-27 11:29:36 +03:00
Joonas Rikkonen 3f8ead6ad2 Name tag and healthpor positions are clamped inside the hull a character is inside. Closes #158 2018-03-09 19:16:38 +02:00
juanjp600 82dcbc3ae8 Light sources now follow the direction of parent Turrets + changed Controller's output signal and Turret's input signal to an angle 2018-03-07 22:53:28 -03:00
Joonas Rikkonen 3bcf7a849b Fix LOS effect on linux. Not sure why the parameter names are different in the OpenGL shader but this seems to work ¯\_(ツ)_/¯ 2018-03-07 20:40:00 +02:00
Joonas Rikkonen dd701e981e Fixed MP round summary always showing the game over text if the sub didn't progress to the next location. Closes #314 2018-03-06 17:26:58 +02:00
Joonas Rikkonen 10ce4bd20d Fixed messageboxes opened by the mp campaign setup UI not being shown until the UI is closed (e.g. shuttle & incompatible content package warnings), renamed MultiplayerCampaign -> MultiPlayerCampaign for consistency. See #315 2018-03-06 16:43:36 +02:00
Joonas Rikkonen dda8854b58 Fixed campaign view button staying visible in the server lobby after the campaign has been exited. (See #315) 2018-03-06 15:44:15 +02:00
Joonas Rikkonen 366d57b98d Crash reports & main menu show a "debug build" text in debug builds 2018-03-06 14:35:09 +02:00
Joonas Rikkonen 08ade1dc6f Fixed clients not being notified when a campaign is exited and a new one started, causing them to think they still have up-to-date save files for the new campaign and get kicked out due to desync as soon as a round starts. (See #315) 2018-03-06 14:18:37 +02:00
Joonas Rikkonen 8c04722385 Lighting optimization: lightsources mark convex hulls that are within range but not visible as hidden and don't recalculate the light volume when these convex hulls change (= e.g. when opening/closing a door, only the lightsources that cast light to the door have to recalculated). 2018-03-05 23:22:28 +02:00
Joonas Rikkonen d57102271d Fixed exceptions when trying to render LOS with no convex hulls within the view 2018-03-05 18:16:51 +02:00
Joonas Rikkonen 4f32a90e62 Fixed mouserects of the back and tab buttons being clamped in mp campaign UI. Closes #305 2018-03-05 11:26:34 +02:00
Joonas Rikkonen a04842705a Fixed crashing when clicking the "refreshing server list" text. Closes #312 2018-03-04 21:24:17 +02:00
Joonas Rikkonen da7ea779b7 LOS effect optimization/changes:
- Rendering the shadows instead of light volumes to avoid the expensive raycasts needed to calculate the light volume.
- The LOS shadows are now rendered in two passes (fully obscured + penumbra) instead of each convex hull taking up 2 passes.

TODO: fix linux
2018-03-03 21:57:36 +02:00
Joonas Rikkonen 07d3d69040 Equipped items can be swapped by double-clicking, fixed inventories getting messed up when swapping multi-slot items fails (e.g. drag a jumpsuit on an equipped diving suit). 2018-03-02 15:24:54 +02:00
Joonas Rikkonen f1f190a997 Added a light to diving suits (requires a battery to work). Closes #233 2018-03-02 13:11:28 +02:00
Joonas Rikkonen cc41f0cd9e Fixed items held in left hand taking the sprite depth from the left arm instead of the hand 2018-03-02 10:38:10 +02:00
Joonas Rikkonen 10189254b5 GrabLimb type is written in character network messages as byte instead of UInt16 2018-03-01 23:43:10 +02:00
Joonas Rikkonen cd6fc87eb4 Fixed object header issues and "trying to read past the buffer size" errors caused by NetEntityEvents for removed entities.
EntityEventManager sends an empty event with an ID of 0 if the entity doesn't exist anymore when writing the event. The recipient should simply skip over these messages and read the next one, but clients only did so if the event is the next unreceived one, causing the rest of the messages to be read incorrectly (which could lead to various sorts of problems in addition to the header and buffer size errors). The server didn't deal with the empty events correctly either, it increased the last received ID even if the received event was not the one the server is waiting for, potentially causing other non-empty events to be ignored.

+ Added an error message if the size of an NetEntityEvent is larger than 255 bytes. Not only is that excessively large for an event, but the length of the event is written as a byte and larger ones may again cause messages to be read incorrectly. Most events should be nowhere near 255 bytes, but now that the descriptions and tags of a spawned item are included in the item spawn messages there's the possibility that some events are too large.
2018-03-01 19:30:27 +02:00
Joonas Rikkonen 2880ca3adb Contained items drawn by ItemContainer.Draw use the sprite color of the item. Closes #300 2018-03-01 15:57:57 +02:00
Joonas Rikkonen 55a5e9e968 Syringes are recolored according to the color of the contained medical item. Closes #256 2018-03-01 11:26:04 +02:00