Skip to content

Commit

Permalink
minor version bump again to 0.87.2-beta
Browse files Browse the repository at this point in the history
* fix major UTF8 conversion bug accidentally introduced into speech system upon adding of speech dispatcher

* Trying to load a plugin multiple times results in no errors and the plugin only being loaded once.

* changelog
  • Loading branch information
samtupy committed Jun 17, 2024
1 parent 0ac228d commit 01b638a
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 4 deletions.
9 changes: 9 additions & 0 deletions doc/src/appendix/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# Changelog
This document lists all major changes that have taken place in NVGT since we started keeping track.

## New in 0.87.2-beta (06/17/2024):
* Hopefully removed the need for the user to run `xattr -c` on the mac app bundle!
* Fix an accidental UTF8 conversion issue introduced into screen reader speech that took place when implementing speech dispatcher.
* NVGT will no longer fail if a plugin pragma with the same plugin name gets encountered multiple times.
* Fix minor error in bgt_compat's set_sound_storage function where the filename stored was not caching for display properly.
* Improve the downloads page to include release dates and headings for old versions as well as file sizes, yes we do still intend to integrate with github releases.
* A fun little aside, visit https://nvtt.zip/windows, /mac or /linux to instantly download the latest NVGT for that platform!

## New in 0.87.1-beta (06/16/2024):
* This patches an issue with the speech dispatcher support on linux where calling screen_reader_unload() would cause a segmentation fault if it had not loaded to begin with due to no libspeechd being available.
* Fixed a severe lack of debugging information issue where if a plugin could not load on linux, no error information was printed and instead the app silently exited.
Expand All @@ -27,6 +35,7 @@ This document lists all major changes that have taken place in NVGT since we sta
* There should hoefully be no more cases where a compilation error dialog can show up after a script executes successfully and throws an exception. Instead if the user enables the warnings display, they should properly see warnings before the script executes.
* Set up the infrastructure to be able to store a bit of extra encrypted information along side the bytecode payload in compiled programs, for now using that to more securely store the list of enabled plugins as well as the serialized Angelscript properties.
* Scripts no longer compile if they do not contain a valid entry point.
* Updated to the latest Angelscript WIP code which resolves a bytecode load error that had been reported.
* Revert the code changes to mixer::set_fx back to NVGT's first public release as the refactor did not go well and continued introducing unwanted side effects.
* Fixed bugs in find_directories and find_files on Unix platforms, the functions should now behave like on windows.
* Adds idle_time() function (works on windows and MacOS at present) which returns the number of milliseconds since the user has been idle.
Expand Down
1 change: 1 addition & 0 deletions install/make_dmg.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def make_app_bundle(bundle_name, release_path):
os.rename(bundle_basename + "/MacOS/stub", bundle_basename + "/Resources/stub")
shutil.copy("macos_info.plist", bundle_basename + "/info.plist")
shutil.copy("macos_icon.icns", bundle_basename + "/Resources/unicon.icns")
subprocess.check_call(["xattr", "-c", bundle_name])

def make_dmg(src_dir, filename):
if os.path.isfile(filename): os.remove(filename)
Expand Down
3 changes: 2 additions & 1 deletion src/nvgt_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ std::unordered_map<std::string, nvgt_plugin_entry*>* static_plugins = NULL; // C
bool load_nvgt_plugin(const std::string& name, void* user) {
nvgt_plugin_entry* entry = NULL;
void* obj = NULL;
if (static_plugins && static_plugins->find(name) != static_plugins->end())
if (loaded_plugins.contains(name)) return true; // plugin already loaded
if (static_plugins && static_plugins->contains(name))
entry = (nvgt_plugin_entry*)(*static_plugins)[name];
else {
std::string dllname = name;
Expand Down
7 changes: 5 additions & 2 deletions src/srspeech.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#endif
#include <string>
#include <Poco/AtomicFlag.h>
#include <Poco/UnicodeConverter.h>
#include "srspeech.h"

Poco::AtomicFlag g_SRSpeechLoaded;
Expand Down Expand Up @@ -160,7 +161,8 @@ bool ScreenReaderIsSpeaking() {
bool ScreenReaderOutput(std::string& text, bool interrupt) {
if (!ScreenReaderLoad()) return false;
#if defined(_WIN32)
std::wstring textW(text.begin(), text.end());
std::wstring textW;
Poco::UnicodeConverter::convert(text, textW);
return Tolk_Output(textW.c_str(), interrupt);
#elif defined(__APPLE__)
return voice_over_speak(text, interrupt);
Expand All @@ -178,7 +180,8 @@ bool ScreenReaderOutput(std::string& text, bool interrupt) {
bool ScreenReaderSpeak(std::string& text, bool interrupt) {
if (!ScreenReaderLoad()) return false;
#if defined(_WIN32)
std::wstring textW(text.begin(), text.end());
std::wstring textW;
Poco::UnicodeConverter::convert(text, textW);
return Tolk_Speak(textW.c_str(), interrupt);
#elif defined(__APPLE__)
return voice_over_speak(text, interrupt);
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.87.1-beta
0.87.2-beta

0 comments on commit 01b638a

Please sign in to comment.