Commit Graph
1060 Commits
Author SHA1 Message Date
JohnAFernandez bd0e6bb990 Add an update interval for client update packets (#4796) 2022-10-18 21:54:16 +09:00
Goober5000 61ceeff893 and also for wings 2022-10-03 19:36:27 -04:00
Goober5000 0702a38e1c Merge pull request #4750 from Goober5000/lua_mission_music_scores
add getMusicScore and setMusicScore
2022-10-03 19:09:56 -04:00
Goober5000 064d3a7549 add getMusicScore and setMusicScore
Two new Lua API methods, plus some minor refactoring.
2022-10-03 17:14:33 -04:00
BMagnu 979d305afe Add screenToBlob scripting function (#4738)
* extract base64 routines

* Add screenToBlob scripting method

* Fix variable shadow

* Fix variable shadow again

* Fix usused variable
2022-10-03 07:33:46 +09:00
JohnAFernandez c2895ba8a4 Fix subsystem health and comparison frames (#4666)
* Fix subsystem change handling code

Make sure that subsystem help actually gets updated.

* change from pointer to literal

I had decided to use `new` in the past when I was less experienced.  So this changes it back to regular angle variables.

(And White space fix requested by Wookie)
2022-10-02 16:52:36 +00:00
MjnMixael ef850ad302 Handle errors from create_wings() in an API friendly way (#4730) 2022-09-30 16:46:45 +09:00
MjnMixael 384e228347 Reset loadout to default and handle commit mission error returns (#4719)
* Reset loadout to default and handle commit mission error returns

* Return enum instead of int codes

* comment
2022-09-29 22:35:09 +09:00
JohnAFernandezandwookieejedi 2e3ff7410c Add corrections in multi ship record (#4650)
The ship record for player ships is not always accurate.  So as to correct entries as valid packets are received.

Also, remove a case where null vectors were being passed to the physics engine.

Co-Authored-By: wookieejedi <[email protected]>

Co-authored-by: wookieejedi <[email protected]>
2022-09-26 22:14:08 -04:00
Goober5000 d92496ee02 convert event-related timestamps to new system
This change covers just the timestamps associated with goals and events, for better review and isolation purposes.

Follow-up to #4569.
2022-09-15 18:38:53 -04:00
JohnAFernandez f2038a8a1a Merge pull request #4613 from JohnAFernandez/Add-Interpolate-Matrices-For-Multi
Add interpolate matrices for multi
2022-09-05 19:40:36 -04:00
John Fernandez a93eeebff0 Fixes for Matrix interp 2022-09-05 19:05:12 -04:00
BMagnu 74ba7899fd Virtual / Modular POFs (#4590)
* Integrate Barebones Framework

* further integration

* Add brak in read

* Defer subsystem generation

* Unentangle pof parsing and subsystem info writing

* finalize modelreplace skeleton

* Begin submodel copying

* First prototype of modular pofs demonstratable

* Allow Submodel Renaming

* Add copy children and set offset

* properly handle depth

* Add header modification

* Fix issues with parsing

* Fix Warnings

* incorporate feedback

* de std-ify

* Incorporate Feedback 2

* Fix macro

* Remove ref

* Enhance error messages
2022-09-03 22:15:56 +09:00
Taylor Richards bb06c75cb4 handle irc motd error to prevent connection hang (#4610)
A MOTD missing (422) message is non-fatal and should be handled the
same as a MOTD end (376) message to prevent the chat connection
process from hanging.
2022-09-01 05:57:01 -04:00
Taylor Richards ea2d9d9167 prepend PXO game identity to chat lobby window (#4606)
For help with troubleshooting, list what game/mod PXO identifies
this instance is running in the chat lobby stream.
2022-09-01 05:56:24 -04:00
John Fernandez 5d267307b2 Change last orient to sensible value
Previously this could be set to bad data, since the last orient calculated could be based on stale data.
2022-08-31 15:54:56 -04:00
John Fernandez dc625bca33 Change to interpolating matrices
Should create a steadier interpolation
2022-08-31 13:33:25 -04:00
Goober5000 67729990e3 we don't need to bump the multi version yet 2022-08-27 13:10:05 -04:00
Goober5000 a1215c6d6f infrastructure for handling submodel translations - maintaining, colliding, rendering 2022-08-27 13:10:05 -04:00
JohnAFernandez d1d63a912a Prioritize players in object update (#4575)
* Make sure that players are updated the more often

Mitigates the increased latency from multiple clients getting each other's positions.

And Adjust update times:

Because LAN settings are now widely used even on non-LAN connections, shift High to a little bit less frequently in some situations, and adjust LAN settings so that it doesn't take quite as much bandwidth for updating ships that are `rear_medium` or `rear_far`.

Also update comments.

* Remove unused define

This was used in the previous version of the object update code and doesn't need to be here anymore.
2022-08-21 11:15:47 -04:00
JohnAFernandez 9d6cdd9d84 Multi collision fix (ship-ship) collisions (#4542)
Change Interpolation function to bool

And calculate last position instead of just setting it

This should help FSO prevent some very odd collision issues when two ships collide
2022-08-17 09:14:07 -04:00
wookieejedi 8420e00ee1 Allow Mods to specific default multi update speeds (#4531)
Previosuly, the default object update speed setting for new players was `High`. Many mods, such as Fate of the Galaxy, do multiplayer tests where we have to ensure players are using the highest object update speed, which is LAN. This extra step is cumbersome and prone to players' forgetfulness.

This PR allows mods to set the default multiplayer object update speed for new pilots to mitigate this issue. Tested and works as expected.
2022-08-13 08:57:18 -04:00
Goober5000 dfeb15f8e5 more cleanup in preparation for model translation (#4443)
* more cleanup in preparation for model translation

1) Clean up stepped rotation, fixing some logic, adding safeguards for invalid values, and allowing rotations to go in the opposite direction
2) Add more specific SEXP error checking for AWACS and rotating subsystems
3) Assorted refactoring and polishing

* address feedback, plus a bit of extra cleanup
2022-08-11 08:17:17 -04:00
JohnAFernandez e8d379a91c Fix an nprintf being in the wrong logic branch (#4485) 2022-07-11 21:29:06 -04:00
Goober5000 f96a27feb4 Merge pull request #4370 from JohnAFernandez/Ensure-obj_team-is_called_safely
Do our best to avoid invalid types in obj_team
2022-07-09 23:06:11 -04:00
Taylor Richards bf1a9f192a fix memset() on nullptr in psnet_get_addr()
"addr" is optional and allowed to be null, so we've got to check
it before zeroing
2022-07-08 13:24:58 -04:00
John Fernandez 390ddb3fc8 Do our best to avoid invalid types in obj_team 2022-07-08 12:09:52 -04:00
Taylor Richards 20094df4cd address issues causing network connectivity failures on macOS (#4473) 2022-07-07 03:15:27 -04:00
Taylor Richards 9de4a49c42 stop non-printable keys adding text to multi msg buffer (#4433)
Arrow, function, Ctrl, Alt ... and any other non-ascii keys
would previously add a blank space to the multi msg buffer.
This prevents that from happening, making sure that it's an
ascii character before appending it to the buffer.

(Retail bug??)
2022-06-23 05:55:52 -04:00
John Fernandez 01331436c9 Fix the standalone ship being added to ship list
While it may seem counterintuitive, we have to keep the standalone bogus ship from being added to the ship list so that we don't have to exclude it from all the places it could cause crashes or mysterious AI behaviors.  Both were being observed, and this should fix them.
2022-06-13 21:39:03 -04:00
Taylor Richards e1ddbd5875 save PXO stats to local pilot file (#4354)
Retail saved tracker stats to the local pilot file after read, however
the newer pilot file code doesn't work the same way. This adds the
ability to properly update the pilot file with multiplayer stats from
the tracker during login.

NOTE: This will always overwrite multi stats in the pilot file with
the stats from the tracker!
2022-06-06 15:04:16 -04:00
Goober5000 e3ad6664e0 Cached subsystem indexing (#4316)
* add subsystem indexer and ensure that ship_get_indexed_subsys and ship_get_first_subsys are independent

* also add reverse lookup from subsys to index

* update indexer to accommodate subsystem pointers being changed

* use clearer function names, and fix the type of subsys_list_indexer

* add assertions

* address latest feedbcak
2022-06-05 08:44:54 -05:00
JohnAFernandez 9abfb1e3f3 Merge pull request #4349 from JohnAFernandez/Multi-Bump
Multi Bump for 22.2 release
2022-06-05 00:55:15 -04:00
JohnAFernandez 2004d00588 Merge pull request #4144 from JohnAFernandez/Interpolation-Overhaul2
Interpolation Overhaul 2
2022-06-05 00:55:09 -04:00
JohnAFernandez abb8bbaf68 Merge pull request #4264 from notimaginative/multi_sexp_fixes
Multi sexp fixes
2022-06-05 00:55:03 -04:00
John Fernandez a6cb299f28 Feedback 2022-06-04 23:06:56 -04:00
JohnAFernandez 88c788a7b4 Interpolation Overhaul
Add files to partition interpolation code, base interpolation timing on Missiontime on remote instance vs. Mission time on the local instance.
2022-06-04 12:55:13 -04:00
John Fernandez f18c4d39cc Bump for 22.2 release 2022-06-04 02:17:51 -04:00
John Fernandez ba5406f13c Add safety checks for bad ref objects
This will allow FSO to fall back to the old system when the reference object is somehow not a ship.
2022-06-04 01:58:01 -04:00
John Fernandez 779594b66a Feedback 2022-06-04 01:48:51 -04:00
John Fernandez 2163cfc5d3 Remove superfluous buggy check plus two more fixes
1. Also include number of frames variable

2. remove stale comment
2022-06-04 01:48:51 -04:00
John Fernandez b4c1c83a84 Fix further problems with time calc +
One other fix
2022-06-04 01:48:51 -04:00
John Fernandez d0d12b572a Check for collisions, and cull collided bolts
Add a function that removes colliders after collision detection so that we don't have dup collisions after rollback resim ends
2022-06-04 01:48:51 -04:00
John Fernandez 7b61f20eda Add old_position to rollback to fix rb collision 2022-06-04 01:48:51 -04:00
Taylor Richards 7fb8e64434 log non-psnet packets for debugging (#4339)
Previously, debug builds would assert if a packet was not a psnet packet
type. Port scans and general traffic checks could trigger this for any
public server. So we should just log these events instead, taking into
account that some of this traffic could be malicious in nature.
2022-06-03 14:16:49 -04:00
Taylor Richards f5cbed9cdb use proper buffer size for PXO chat line (#4318)
fixes #4285
2022-05-28 08:53:48 -04:00
Taylor Richards 5e79021da3 use SCP_string for constructing multi/event log lines (#4284) 2022-05-18 13:56:37 -04:00
Taylor Richards b4f95c3b0c Merge pull request #4266 from notimaginative/fix_multi_timestamps
address multiple timestamp issues with multi
2022-05-17 20:07:09 -04:00
Taylor Richards df6cf572ac convert multi timestamp()'s to ui_timestamp() where appropriate
A bit overkill for some of this but just covering the bases.

 * fix issues with in-game join
 * fix multi messaging and multi pause screen
 * make sure maintenance stuff (pings, voice, file xfer, etc.) isn't
   affected by pausing or time compression
2022-05-17 07:50:50 -04:00
Taylor Richards a8618a569c add improvements to aid in multi troubleshooting:
- report when multi.cfg is missing
 - add game version, multi version, cmdline, and PXO status
   to multi.log
 - use non-interactive mode by default on standalone and
   enable it as soon as possible
2022-05-16 15:47:30 -04:00