2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-15 10:54:18 +00:00

Compare commits

..

39 Commits

Author SHA1 Message Date
b2521e0777 Merge branch 'ticket/42'
closes #42
2022-03-23 09:22:29 -06:00
f9d629cfc5 Expand thread memory allocations for stack and heap to 1.25MB 2022-03-22 13:52:03 -06:00
aba5e2562c Merge branch 'ticket/38'
closes #38
2022-03-19 21:39:41 -06:00
bff8203fbe Merge branch 'ticket/38' of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata into ticket/38 2022-03-19 22:15:28 -05:00
23ded3210f By popular demand, enable subtitles by default 2022-03-19 22:15:14 -05:00
9f9d510958 Merge branch 'ticket/38'
closes #38
2022-03-12 09:15:42 -07:00
ea4bb43623 Merge branch 'ticket/38' of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata into ticket/38 2022-03-11 10:59:08 -06:00
40bcaba9d8 Don't feed remaining subtitles when audio skips to past the end of last subtitle 2022-03-11 10:55:44 -06:00
e93db035ba Revert "Fixes bug where avatar run-lock state can get confused after alt-tabbing"
This reverts commit 69dac251b6.
2022-03-09 09:44:05 -07:00
94fab5996f Merge branch 'ticket/41'
closes #41
2022-03-09 09:42:23 -07:00
da7d2d0e5c Merge branch 'ticket/40'
closes #40
2022-03-09 09:41:57 -07:00
2e8dc81bf3 Merge branch 'ticket/38'
closes #38
2022-03-09 09:41:29 -07:00
838e3e51ad Merge branch 'ticket/38' of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata into ticket/38 2022-03-06 09:10:38 -06:00
40f200e066 Don't display previous subtitles all at once when subtitles are enabled mid-audio play 2022-03-06 09:04:27 -06:00
2f1bb87056 Ensure pyGUIControlListBox::GetElementW can't attempt to return a null pointer as a std::wstring 2022-03-05 13:34:52 -06:00
e512dd0c68 Prevent deferred link race conditions 2022-03-03 23:26:08 -06:00
4c76549fb3 Merge branch 'ticket/33'
closes #33
2022-03-01 14:42:05 -07:00
1a930cb47f Merge branch 'ticket/38'
closes #38
2022-03-01 11:02:25 -07:00
b9af23e458 Merge branch 'ticket/37'
closes #37
2022-03-01 11:02:04 -07:00
9e2e2d02e1 Merge branch 'ticket/36'
closes #36
2022-03-01 11:01:42 -07:00
7a73c2d8e3 Merge branch 'ticket/34'
closes #34
2022-03-01 11:01:03 -07:00
933cbe2fe7 Merge branch 'ticket/32'
closes #32
2022-03-01 11:00:22 -07:00
fe88f2e8a2 Merge branch 'ticket/31'
closes #31
2022-03-01 10:59:54 -07:00
9e308cbebe Fix another log string formatting issue found by Adam. 2022-02-26 20:22:41 -06:00
126d7511e0 Fix parentheses mistake for retrieving streaming audio timings and apply code fix suggestions from Adam 2022-02-26 19:16:00 -06:00
64323c6073 Apply code suggestions from rarified 2022-02-26 11:57:56 -06:00
8a2534dff6 Simplify SRT file path construction with suggestion from Hoikas 2022-02-25 14:34:30 -06:00
9a1b37e7f6 Turn std::strings into char* before doing PyObject_CallMethod with them 2022-02-25 12:14:44 -06:00
1012251d9a Add missing message dispatch registration 2022-02-25 01:07:40 -06:00
1d65c78097 Fix bad include, missing static declaration, SRT path directory, and formatting 2022-02-25 01:06:29 -06:00
c50bb08e8d Fix usage and overflow bug causing plWin32StreamingSound::GetActualTimeSec() to return absurd values. Needed fix for subtitle timings. 2022-02-23 21:46:02 -06:00
229883654e Initial pass at getting subtitle support in. Doesn't compile for unknown reasons 2022-02-23 21:35:03 -06:00
51b6b4750b Don't update to visible arrow when cursor should be hidden 2022-02-18 20:19:15 -06:00
69dac251b6 Fixes bug where avatar run-lock state can get confused after alt-tabbing 2022-02-18 18:11:37 -06:00
e81af06584 Fix error due to no Empty() 2022-01-24 19:06:23 -08:00
5f3a8644a7 Files for Allowing disabling avatar panic links 2022-01-24 14:22:04 -08:00
62089be53f Changes needed so climbing works correctly with wall 2022-01-07 11:31:11 -08:00
391bbaa4e7 Update error messages for new variable 2021-12-15 09:23:54 -08:00
b00c7729cc Ensure we don't try to get localized values for null objectnames 2021-12-03 20:08:31 -06:00
11 changed files with 83 additions and 27 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Internal|Win32">
@ -121,6 +121,8 @@
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<MapExports>true</MapExports>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<HeapReserveSize>0x140000</HeapReserveSize>
<StackReserveSize>0x140000</StackReserveSize>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -177,6 +179,8 @@
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<MapExports>true</MapExports>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<HeapReserveSize>0x140000</HeapReserveSize>
<StackReserveSize>0x140000</StackReserveSize>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -237,6 +241,8 @@
<TargetMachine>MachineX86</TargetMachine>
<MapExports>true</MapExports>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<HeapReserveSize>0x140000</HeapReserveSize>
<StackReserveSize>0x140000</StackReserveSize>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -298,6 +304,8 @@
<TargetMachine>MachineX86</TargetMachine>
<MapExports>true</MapExports>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<HeapReserveSize>0x140000</HeapReserveSize>
<StackReserveSize>0x140000</StackReserveSize>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -802,4 +810,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -2313,7 +2313,7 @@ void plClient::IDetectAudioVideoSettings()
WriteInt(stream, "Audio.SetChannelVolume Ambience", 1);
WriteInt(stream, "Audio.SetChannelVolume NPCVoice", 1);
WriteInt(stream, "Audio.EnableVoiceRecording", 1);
WriteInt(stream, "Audio.EnableSubtitles", false);
WriteInt(stream, "Audio.EnableSubtitles", true);
WriteString(stream, "Audio.SetDeviceName", deviceName );
stream->Close();
delete stream;

View File

@ -777,4 +777,4 @@ void cyMisc::AddPlasmaMethods3(std::vector<PyMethodDef> &methods)
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetUserPath);
PYTHON_GLOBAL_METHOD_NOARGS(methods, PtGetInitPath);
}
}

View File

@ -853,4 +853,4 @@ void cyMisc::AddPlasmaMethods4(std::vector<PyMethodDef> &methods)
PYTHON_GLOBAL_METHOD(methods, PtGetAIAvatarsByModelName);
PYTHON_GLOBAL_METHOD(methods, PtForceVaultNodeUpdate);
PYTHON_GLOBAL_METHOD(methods, PtVaultDownload);
}
}

View File

@ -587,16 +587,17 @@ std::wstring pyGUIControlListBox::GetElementW( UInt16 idx )
{
// if its a text element type then it should be safe to cast it to a pfGUIListText
pfGUIListText* letext = (pfGUIListText*)le;
return letext->GetText();
return (letext->GetText() != nullptr) ? letext->GetText() : L"";
}
else if ( le->GetType() == pfGUIListElement::kTreeRoot )
{
pfGUIListTreeRoot* elroot = (pfGUIListTreeRoot*)le;
return elroot->GetTitle();
return (elroot->GetTitle() != nullptr) ? elroot->GetTitle() : L"";
}
}
}
}
return L"";
}

View File

@ -994,7 +994,7 @@ hsBool plgAudioSys::fInit = false;
hsBool plgAudioSys::fActive = false;
hsBool plgAudioSys::fUseHardware = false;
hsBool plgAudioSys::fMuted = true;
bool plgAudioSys::fEnableSubtitles = false;
bool plgAudioSys::fEnableSubtitles = true;
hsBool plgAudioSys::fDelayedActivate = false;
hsBool plgAudioSys::fEnableEAX = false;
hsWindowHndl plgAudioSys::fWnd = nil;

View File

@ -111,14 +111,18 @@ void plWin32Sound::IFreeBuffers( void )
void plWin32Sound::Update()
{
plSoundBuffer* buf = GetDataBuffer();
if (plgAudioSys::AreSubtitlesEnabled() && buf != nullptr) {
if (buf != nullptr) {
plSrtFileReader* srtReader = buf->GetSrtReader();
if (srtReader != nullptr) {
uint32_t currentTimeMs = (uint32_t)(GetActualTimeSec() * 1000.0f);
while (plSrtEntry* nextEntry = srtReader->GetNextEntryStartingBeforeTime(currentTimeMs)) {
// add a plSubtitleMsg to go... to whoever is listening (probably the KI)
plSubtitleMsg* msg = new plSubtitleMsg(nextEntry->GetSubtitleText(), nextEntry->GetSpeakerName());
msg->Send();
if (currentTimeMs <= srtReader->GetLastEntryEndTime()) {
while (plSrtEntry* nextEntry = srtReader->GetNextEntryStartingBeforeTime(currentTimeMs)) {
if (plgAudioSys::AreSubtitlesEnabled()) {
// add a plSubtitleMsg to go... to whoever is listening (probably the KI)
plSubtitleMsg* msg = new plSubtitleMsg(nextEntry->GetSubtitleText(), nextEntry->GetSpeakerName());
msg->Send();
}
}
}
}
}

View File

@ -184,4 +184,13 @@ plSrtEntry* plSrtFileReader::GetNextEntryEndingBeforeTime(uint32_t timeMs)
}
return nullptr;
}
uint32_t plSrtFileReader::GetLastEntryEndTime()
{
if (!fEntries.empty()) {
return fEntries.back().GetEndTimeMs();
}
return 0;
}

View File

@ -95,6 +95,7 @@ public:
void AdvanceToTime(uint32_t timeMs);
plSrtEntry* GetNextEntryStartingBeforeTime(uint32_t timeMs);
plSrtEntry* GetNextEntryEndingBeforeTime(uint32_t timeMs);
uint32_t GetLastEntryEndTime();
protected:

View File

@ -176,16 +176,19 @@ void plKeyboardDevice::HandleKeyEvent(plOSMsg message, plKeyDef key, bool bKeyDo
if (key == KEY_SHIFT)
{
fShiftKeyDown = bKeyDown;
// return;
}
if (key == KEY_CTRL)
{
fCtrlKeyDown = bKeyDown;
// return;
}
if (key == KEY_CAPSLOCK)
{
if (!bKeyRepeat)
// Keyboards toggle the light on key-down, so I'm going with that.
if (bKeyDown && !bKeyRepeat)
{
fCapsLockLock = (GetKeyState(KEY_CAPSLOCK) & 1) == 1;
fCapsLockLock = !fCapsLockLock;
plAvatarInputInterface::GetInstance()->ForceAlwaysRun(fCapsLockLock);
}
}
@ -205,8 +208,7 @@ void plKeyboardDevice::HandleWindowActivate(bool bActive, HWND hWnd)
{
if (bActive)
{
// Refresh the caps lock state
HandleKeyEvent(KEYDOWN, KEY_CAPSLOCK, nil, false);
fCtrlKeyDown = false;
}
else
{

View File

@ -504,25 +504,56 @@ bool plNetLinkingMgr::IProcessVaultNotifyMsg(plVaultNotifyMsg* msg)
return false;
}
if (cVaultLink != nil)
{
// This is something that Cyan does... >.<
// It's very useful though...
if (cVaultLink != nil) {
// Verify that if the Age vault already exists that it matches the requested
// deferred link. If it doesn't exist, well, I hope you're happy with the result.
VaultAgeLinkNode accLink(cVaultLink);
accLink.CopyTo(cur);
if (RelVaultNode* rvnInfo = cVaultLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1))
{
if (RelVaultNode* rvnInfo = cVaultLink->GetChildNodeIncRef(plVault::kNodeType_AgeInfo, 1)) {
plAgeInfoStruct dest;
VaultAgeInfoNode accInfo(rvnInfo);
accInfo.CopyTo(cur->GetAgeInfo());
accInfo.CopyTo(&dest);
if (!dest.IsEqualTo(fDeferredLink->GetAgeLink()->GetAgeInfo())) {
hsLogEntry(
plNetClientMgr::GetInstance()->DebugMsg(
"Waiting for a deferred link to '%s' but got AgeInfo for '%s' instead.",
fDeferredLink->GetAgeLink()->AsStdString().c_str(),
dest.AsStdString().c_str()
);
);
rvnInfo->DecRef();
return false;
}
rvnInfo->DecRef();
}
// If we're still here, that means the links match. Set the vault copy as our current
// AgeLink and AgeInfo. Note this mainly copies the AgeInfo.
accLink.CopyTo(cur);
hsLogEntry(
plNetClientMgr::GetInstance()->DebugMsg(
"Performing deferred link to '%s'",
cur->AsStdString().c_str()
);
);
// Steals fDeferredLink
IDoLink(fDeferredLink);
fDeferredLink = nil;
return true;
cVaultLink->DecRef();
}
return true;
} else {
hsLogEntry(
plNetClientMgr::GetInstance()->ErrorMsg(
"Waiting for a deferred link to '%s' but got a garbage link?",
fDeferredLink->GetAgeLink()->AsStdString().c_str()
)
);
}
return false;
}