From 6c791d6c9d72c31cf09c038ad3bcbb3d25d62fc1 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Mon, 13 Sep 2021 17:06:04 -0400 Subject: [PATCH] Add More Missing Sound Events --- VERSION | 2 +- docs/CHANGELOG.md | 4 ++++ images/start.png | Bin 31440 -> 31470 bytes media-layer/core/src/audio/file.cpp | 1 + mods/src/sound/repository.cpp | 27 +++++++++++++++++++++- mods/src/sound/sound.cpp | 15 ++++++------ symbols/include/symbols/minecraft.h | 34 +++++++++++++++++++--------- 7 files changed, 63 insertions(+), 20 deletions(-) diff --git a/VERSION b/VERSION index c043eea7..b1b25a5f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.1 +2.2.2 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 5018b78e..5682ed8f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +**2.2.2** +* Add More Missing Sound Events +* Make Missing Sound Event Cause Warning Rather Than Crash + **2.2.1** * Prevent `random.burp` Sound From Crashing Game * Always Cleanup Media Layer, Even On Crash diff --git a/images/start.png b/images/start.png index d3e926e0be631faac0e5203834ce64bb7087335b..ff3aa47f6cbd84468ad7ad4bfaa79c488aea888c 100644 GIT binary patch literal 31470 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ᦪR7NbrvR;yf4<#xZv{cjEi1&SY#!z8|mi#vm+ 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 G`2PW8S(V}d diff --git a/media-layer/core/src/audio/file.cpp b/media-layer/core/src/audio/file.cpp index f3bad107..1dab96c5 100644 --- a/media-layer/core/src/audio/file.cpp +++ b/media-layer/core/src/audio/file.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include diff --git a/mods/src/sound/repository.cpp b/mods/src/sound/repository.cpp index fdc0cf5b..5d7a6de1 100644 --- a/mods/src/sound/repository.cpp +++ b/mods/src/sound/repository.cpp @@ -321,6 +321,30 @@ static std::unordered_map> repository = { { "PCM_burp" } + }, + { + "random.fizz", + { + "PCM_fizz" + } + }, + { + "random.drink", + { + "PCM_drink" + } + }, + { + "random.chestopen", + { + "PCM_chestopen" + } + }, + { + "random.chestclosed", + { + "PCM_chestclosed" + } } } }; @@ -337,7 +361,8 @@ std::string _sound_pick(std::string sound) { return options[rand() % options.size()]; } else { // Invalid Sound - ERR("Invalid Sound: %s", sound.c_str()); + WARN("Invalid Sound Event: %s", sound.c_str()); + return ""; } } diff --git a/mods/src/sound/sound.cpp b/mods/src/sound/sound.cpp index a438d2d7..1f63122b 100644 --- a/mods/src/sound/sound.cpp +++ b/mods/src/sound/sound.cpp @@ -62,17 +62,18 @@ std::string _sound_get_source_file() { // Play Sound // The pitch value is unsued because it causes glitchy sounds, it is seemingly unused in MCPE as well. -static void SoundEngine_playUI_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, __attribute__((unused)) float pitch, float volume) { +static void play(std::string name, float x, float y, float z, float volume, bool is_ui) { std::string source = _sound_get_source_file(); - if (source.size() > 0) { - media_audio_play(source.c_str(), _sound_pick(name).c_str(), 0.0f, 0.0f, 0.0f, 1.0f, volume, 1); + std::string resolved_name = _sound_pick(name); + if (source.size() > 0 && resolved_name.size() > 0) { + media_audio_play(source.c_str(), resolved_name.c_str(), x, y, z, 1.0f, volume, is_ui); } } +static void SoundEngine_playUI_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, __attribute__((unused)) float pitch, float volume) { + play(name, 0, 0, 0, volume, true); +} static void SoundEngine_play_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, float x, float y, float z, __attribute__((unused)) float pitch, float volume) { - std::string source = _sound_get_source_file(); - if (source.size() > 0) { - media_audio_play(source.c_str(), _sound_pick(name).c_str(), x, y, z, 1.0f, volume, 0); - } + play(name, x, y, z, volume, false); } // Refresh Data diff --git a/symbols/include/symbols/minecraft.h b/symbols/include/symbols/minecraft.h index 97ec0aeb..8ce53c87 100644 --- a/symbols/include/symbols/minecraft.h +++ b/symbols/include/symbols/minecraft.h @@ -164,6 +164,14 @@ static void *LoginPacket_read_vtable_addr = (void *) 0x108dcc; static uint32_t LoginPacket_username_property_offset = 0xc; // RakString +// StartGamePacket + +typedef void (*StartGamePacket_read_t)(unsigned char *packet, unsigned char *bit_stream); +static StartGamePacket_read_t StartGamePacket_read = (StartGamePacket_read_t) 0x72c58; +static void *StartGamePacket_read_vtable_addr = (void *) 0x109264; + +static uint32_t StartGamePacket_game_mode_property_offset = 0x14; // int32_t + // ChatPacket static uint32_t ChatPacket_message_property_offset = 0xc; // char * @@ -206,17 +214,6 @@ typedef ItemInstance *(*ItemInstance_constructor_extra_t)(ItemInstance *item_ins static ItemInstance_constructor_extra_t ItemInstance_constructor_tile_extra = (ItemInstance_constructor_extra_t) 0x99918; static ItemInstance_constructor_extra_t ItemInstance_constructor_item_extra = (ItemInstance_constructor_extra_t) 0x99960; -// Player - -typedef int (*Player_isUsingItem_t)(unsigned char *player); -static Player_isUsingItem_t Player_isUsingItem = (Player_isUsingItem_t) 0x8f15c; - -typedef void (*Player_drop_t)(unsigned char *player, ItemInstance *item_instance, bool is_death); -static uint32_t Player_drop_vtable_offset = 0x208; - -static uint32_t Player_username_property_offset = 0xbf4; // char * -static uint32_t Player_inventory_property_offset = 0xbe0; // Inventory * - // Entity typedef void (*Entity_die_t)(unsigned char *entity, unsigned char *cause); @@ -237,8 +234,23 @@ typedef void (*Mob_actuallyHurt_t)(unsigned char *entity, int32_t damage); static Mob_actuallyHurt_t Mob_actuallyHurt = (Mob_actuallyHurt_t) 0x7f11c; static uint32_t Mob_actuallyHurt_vtable_offset = 0x16c; +typedef float (*Mob_getWalkingSpeedModifier_t)(unsigned char *entity); + static uint32_t Mob_health_property_offset = 0xec; // int32_t +// Player + +typedef int (*Player_isUsingItem_t)(unsigned char *player); +static Player_isUsingItem_t Player_isUsingItem = (Player_isUsingItem_t) 0x8f15c; + +typedef void (*Player_drop_t)(unsigned char *player, ItemInstance *item_instance, bool is_death); +static uint32_t Player_drop_vtable_offset = 0x208; + +static Mob_getWalkingSpeedModifier_t Player_getWalkingSpeed = (Mob_getWalkingSpeedModifier_t) 0x8ea0c; + +static uint32_t Player_username_property_offset = 0xbf4; // char * +static uint32_t Player_inventory_property_offset = 0xbe0; // Inventory * + // LocalPlayer static Mob_actuallyHurt_t LocalPlayer_actuallyHurt = (Mob_actuallyHurt_t) 0x44010;