mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 10:37:41 -04:00
Merge branch 'ticket/38' of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata into ticket/38
This commit is contained in:
@ -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"";
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user