Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Sun Mar 25 21:08:57 2018 -0400
Add workaround for mouse handling bug in Win10 FCU
Windows 10 Fall Creators Update changed the behavior of SetCursorPos,
which no longer sends the expected WM_MOUSEMOVE message when
recentering the cursor. This adds a function to detect affected
versions of Windows and flags the necessity to manually send our own
message.
This workaround currently only detects the known affected version of
Win10, in the hope that it will be fixed and no further attention
will be required. If this regression is not fixed, additional Win10
versions can be added.
Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Tue Feb 5 18:59:20 2013 -0500
Reintroduce a fun hack
Yeah, looks like PhysX 2.6.4 has a bug with spawning stuff inside of
regions. So, let's bring back the hack that spawns the avatar at -2000
feet. The link-in process will set the correct position on the controller
and fire the appropriate detectors.
Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Fri Feb 8 00:15:56 2013 -0500
Fix crazy camera stack issues
Turns out, it was an artifact of us suspending the simulation during links
and partly because of Cyan's late adding of the avatar controller to the
sim. Now, we add the avatar as soon as the age data is loaded. This causes
the camera stack to be populated with whatever garbage PhysX decides on,
then xJourneyClothsGen2 is free to set the real stack after we get all the
SDL from the server.
Verified to fix Teledahn oddness and not display a regression in Kemo.
Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Mon Feb 6 21:17:08 2012 -0500
Fix an obvious memory leak.
This thing was pissing me off, which made me piss off a lot of other people,
which pissed off even more people, so the entire planet got pissed off and
nuclear warfare began. So, let's not do stupid crap and piss me off, okay?
Author: Adam Johnson
Date: Fri Feb 10 12:45:14 2012 -0500
More panic link fixes
Now, we check the armature mod to see if we're REALLY linked in (the screen
is not black). That way, we can be sure all delayed transforms and false
hits (like how we initially spawn into the AhnySphere04 panic region) don't
panic link us.
PhysX requires all of its actors to have cooked mesh data. This cooked
data is unfortunately not compatible with other versions of PhysX outside
of the minor branch. The format is also largely unknown. Therefore, it is
relevant to allow CWE prps to include an engine agnostic physical format
to reduce our dependencies on proprietary libraries.
All PhysX blobs thankfully begin with the magic string NXS\x01, so we now
abuse that by adding our own format that begins with the magic string
HSP\x01. These blobs are cooked on the fly while already cooked blobs are
passed directly on to PhysX.
Original commit: 392c5f5cad
author = "Adam Johnson <AdamJohnso@gmail.com>
This also allows for future expansion of new hash techniques to be added, of course the more hash techniques added the more delay at login for the lowest on the totem pole.
I have tested this against the MOULa shard that uses SHA-0 and it works, there is a slight flash of the "Connecting dialog" as it re-tries sending the login but if the user saves the password, there is no flash and no delay.
Don't crash the launcher when the HTTP request for getting the server status message fails
This should fix the crash in UruLauncher.exe after starting UruExplorer.exe, reported by Treehugger at http://forums.openuru.org/viewtopic.php?p=8976#p8976 . It is the same issue as addressed in pull request #31 for the login dialog.
Untested because testing it is hard when the launcher patches itself out.
Let ptVault.setAgePublic accept ptVaultAgeInfoNode in addition to ptAgeInfoStruct
In this case it now also works for non-owners of the age. Previously it only worked for owners because the ageInfoStruct does not contain the vault node ID, so it needed to be looked up somewhere, and that was in the AgesIOwnFolder.
Prerequisite for hood auto-bump (MOULSCRIPT-ou PR #22).
From H-uru/Plasma#461.
Shadowed Chat and Player List Text
This implements the (existing but unimplemented) plDynamicTextMap::kFontShadowed flag, making the text of the mini KI (player list and chat) better readable on light and patterned backgrounds.
For best results, an additional Python change is recommended: MOULSCRIPT-ou PR #23.
From H-uru/Plasma#392.
Fix for forgotten logins when removable media attached.
Incorporated suggestions from PR #32 which this replaces. Moved CloseHandle as suggested.
Addresses JIRA CWE-37 Corrects incorrect assignment of drive letter to the drive actually being interrogated and ignores removable drive types such as CD/DVD and USB Flash and HDs.
Alternative solution that moves login credentials to the registry is being prepared by Deledrius - H-uru/Plasma PR#448 may be a better long term fix - I'm simply offering what I have.
Don't crash when the HTTP request for getting the server status message fails
This fixes the crash that keeps Windows 7 users out of the game when support.cyanworlds.com is down, reported with some regularity e.g. at http://mystonline.com/forums/viewtopic.php?f=40&t=27352 .
Apparently on Windows 7, unlike on Windows XP and contrary to its documentation, WinHttpReadData() does not zero its lpdwNumberOfBytesRead argument when called with an invalid request, so the lack of error checking here bites.
Fix stuck-in-intro-cave bug
This reintroduces the plBinkPlayer stub removed in 8a1346b in order to fix the bug where a new player is stuck in the intro cave with the rotating wall until it occurs to them to press the esc key.
I have not spent much effort on checking that this is the correct and minimal change but it appears to work for me.
This is a quick fix, the definitive solution will be to port VP9/Opus support from https://github.com/H-uru/Plasma/pull/458.
and reenable as much USE_BINK_SDK stuff as empirically needed to get the Yeesha intro movie cave to disappear on its own, as before merging Cyan's Build 918.
Not the cleanest way, but I'm trying to minimize effort spent on this until we can get the proper solution, VP9 video support, from https://github.com/H-uru/Plasma/pull/458 .
In this case it now also works for non-owners of the age. Previously it only worked for owners because the ageInfoStruct does not contain the vault node ID, so it needed to be looked up somewhere, and that was in the AgesIOwnFolder.