-
-
Notifications
You must be signed in to change notification settings - Fork 475
[Multiplayer] Voice chat ported from OMP #1913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yohjimane
wants to merge
36
commits into
OpenXRay:yohji/feat/multiplayer
Choose a base branch
from
yohjimane:yohji/feat/multiplayer-pt2
base: yohji/feat/multiplayer
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[Multiplayer] Voice chat ported from OMP #1913
yohjimane
wants to merge
36
commits into
OpenXRay:yohji/feat/multiplayer
from
yohjimane:yohji/feat/multiplayer-pt2
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ported from OMP commit 62b3da92837c44b3bae66b7f07677e56fee9c83b
Ported from OMP commit 41d8c755a81dd93c342dc5945ad20149908d7028
…ects Ported from OMP commit df2fbd07b8b58c25693b2617da01250a7d043fc5
Ported from OMP commit 6b2a0d57be1510ebfec4c842e2a8f20478299e5d
…all bypassing parent class Ported from OMP commit 1828ca4810a7c10abc746f9a3986ca416f68bdec
Ported from OMP commit 04ebdfeba25a1fc8fed8ab3c8ab9d44e13865c6c
Ported from OMP commit 5803358d8beae8511593ae307573fe983069bf09
I think the audio input selection is a little bugged, but I'm able to transmit my voice in any multiplayer mode and hear it on my wife's PC with this update 😃 |
- Move upgrade manager from alife_simulator to Level for MP support - Add inventory::upgrade::Manager to Level class - Initialize upgrade manager in OnAlifeSimulatorLoaded for server/single - Initialize upgrade manager in Load_GameSpecific_Before for clients - Add proper cleanup in Level destructor Source: OMP commit 37300539
- Remove ai().get_alife() checks from UIActorMenuInitialize.cpp - Remove ai().get_alife() checks from UIInvUpgradeProperty.cpp - Remove ai().get_alife() checks from UIInventoryUpgradeWnd.cpp - Update inventory_item_upgrade.cpp to use Level().UpgradeManager() - Remove single player only restriction from net_Spawn_install_upgrades Source: OMP commit b70a5582
- Add game_cl_freemp_messages.cpp for client-side repair success handling - Add game_sv_freemp_upgrade_and_repair.cpp for server-side repair logic - Add TranslateGameMessage method to game_cl_freemp.h/cpp - Add OnPlayerRepairItem method to game_sv_freemp.h/cpp - Add GE_REPAIR_ITEM case to inventory_item.cpp OnEvent method - Add OnSuccessRepairMP method to UIActorMenu.h and UIActorMenuUpgrade.cpp - Modify UIActorMenu_script.cpp RepairEffect_CurItem for MP support - Add GE_REPAIR_ITEM, GAME_EVENT_MP_REPAIR, GAME_EVENT_MP_REPAIR_SUCCESS constants - Add GE_REPAIR_ITEM server processing in xrServer_process_event.cpp Source: OMP commit 5ede6c85
- Comment out m_preconditions() call to prevent crash during testing - Comment out m_effects() call to prevent crash during testing - Comment out m_prerequisites() call to prevent crash during testing - These calls were apparently for testing function validity only Source: OMP commit f86314c9
- Add OnPlayerInstallUpgrade server-side handling in game_sv_freemp - Add client-side upgrade success handling in game_cl_freemp_messages - Add GAME_EVENT_MP_INSTALL_UPGRADE and GAME_EVENT_MP_INSTALL_UPGRADE_SUCCESS - Add OnSuccessUpgradeInstallMP method to UIActorMenu - Add upgrade_install_mp method to inventory upgrade manager - Modify net_Spawn_install_upgrades to use MP-specific upgrade installation - Add can_upgrade_install method to upgrade manager - Update init_install to handle both single and multiplayer modes Source: OMP commit 686fef02
- Add GE_WPN_UNLOAD_AMMO and GE_WPN_UPDATE_AMMO message types - Modify UnloadMagazine to handle MP with proper ammo synchronization - Add OnEvent method to CWeaponMagazined for MP ammo handling - Add UnloadWeapon method to UIActorMenu for client-server communication - Remove IsGameTypeSingle() restriction from weapon unload UI - Update weapon unload calls to use new UnloadWeapon method - Add server broadcast for weapon unload events Source: OMP commit 24dfa253
Port of OMP commit d4fb5f79e3c2db47fb1b01843bfe138e96dfcb0c
Added M_VOICE_MESSAGE handling with distance-based voice chat relay. Includes OnVoiceMessage method that forwards voice packets to nearby players. Port of OMP commit c30024739a81730dcef9a96e97dc043e3ba4da74
Added voice chat UI elements for multiplayer: - Microphone icon with active/inactive states - Voice distance text display - SetActiveVoiceIcon and SetVoiceDistance methods Port of OMP commit af9b7c6ed86da3722a2dea7c1ba2abe6106712bb
Added method to check if any dialogs are currently shown. Returns true if ActorMenu, PdaMenu, or TalkMenu is shown. Port of OMP commit e39534a6b64e0e1262bc0497e07cefef882c2f93
Added button actions for voice chat functionality: - kVOICE_CHAT for activating voice chat - kVOICE_DISTANCE for switching voice distance Port of OMP commit 4c8baf78230ec3e786fd2dad9bee6ccfbcfdd5cc
Class for sending voice packets over network with distance settings. Implements IVoicePacketSender interface for voice chat system. Port of OMP commit b2d3e8320ab895c81a584ebbfe18a6fb9b1db000
Created VoiceChat class for handling voice communication in multiplayer. Added AF_DISPLAY_VOICE_ICON actor flag for voice indicator display. VoiceChat includes distance switching, message handling, and voice icons. Combined ports of OMP commits: - d53e7c2d12ea600a078a05dc8d1469dbc37b4952 (actor flag) - 9c544b1101af66b9ea7ce89f6bc812269ec888f1 (VoiceChat class)
Added complete voice chat functionality to FreeMP game mode: - Voice message handling in Level_network_messages - OnVoiceMessage virtual method in game_cl_base - VoiceChat integration in game_cl_freemp with keyboard controls - Distance switching, voice icons, and network message processing Port of OMP commit 5d7198eeeda7d7e2719655c61733debd00119ce9
Added OnScreenResolutionChanged virtual method to game_cl_base and implemented it in game_cl_freemp to restore voice distance UI after screen resolution changes. HUDManager already calls Game().OnScreenResolutionChanged(). Port of OMP commit d2832530849f39b93a8f3fcb1359a71b33fa8873
fbaefcf
to
aab3c02
Compare
Added SpeexDSP libraries for voice chat audio preprocessing: - 64-bit and 32-bit Windows DLLs (libspeexdsp-1.dll) - Import libraries (speexdsp.lib) - Complete header files for echo cancellation, preprocessing, and resampling This enables voice chat audio processing capabilities for multiplayer voice communication features.
- Added opus headers (opus.h, opus_custom.h, opus_defines.h, opus_multistream.h, opus_projection.h, opus_types.h) - Added opus libraries for x64 and x86 architectures - Added opus DLL binaries for x64 and x86 architectures - Required for voice chat audio compression in multiplayer mode Ported from OMP engine commit 981dde9d677a51bb99fa6a49cf21e2972fc5331c
- Add ISoundVoiceChat forward declaration to Sound.h - Add GetSoundVoiceChat() method to ISoundManager interface - Add SoundVoiceChat member to CSoundRender_CoreA class - Initialize SoundVoiceChat in _initialize() and cleanup in _clear() - Override update() method in CSoundRender_CoreA to call SoundVoiceChat::Update() - Fix SoundVoiceChat.h to use proper <al.h>/<alc.h> includes - Add missing ISoundRecorder.h and IStreamPlayer.h to xrSound.vcxproj - Minor cleanup in SoundVoiceChat.cpp and VoiceChat.cpp This enables xrGame to access voice chat functionality through the sound system via GetSoundVoiceChat() method, providing the foundation for voice communication in multiplayer gameplay. Ported from OMP commit: 4bf5824db4d7a36a878b960f0d802f73b778e0c5
aab3c02
to
c9e0fa4
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
External (3rd party)
This issue is related to external component used by our project.
Game assets
A feature or an issue that involves gamedata change
Sound
UI
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Core Features
kVOICE_CHAT
,kVOICE_DISTANCE
)Technical Implementation
VoiceChat
- Main voice chat managementVoiceSender
- Voice transmission handlingxrServer
UIMainIngameWnd
andUIGameCustom