So, it appears that once our dialog is created, the DialogBox windowproc
is nuked. So, to hack around this, any errors that occur while it is open
are cached and reported out after we close everything down. It sucks, but
it works. I blame Microsoft.
This is the crowning feature: the whole point of this exercise. You can
now update redists from the client launcher itself. To activate this
functionality, you will need to flag the file 0x10 in the manifest. I
recommend listing your redists in the patcher manifests.
This adds a license-stopgap "feature" ... You can now update only the game
data by using the -Repair argument on the launcher. You'll need to specify
a stripped down MOULa server.ini with the GateKeeperSrv keys/host.
This argument works just like it does in Guild Wars. It checks all the
files (using Cyan's evil "Internal" and "External" manifests) for changes.
Expect this to take a decent amount of time.
ONE PATCH! This commit brings us to half of the patching goal: on launch
of the client, we only show ONE "Updating..." message before we enter the
game proper. Go us!
Now we render titles above the progress bar and the status below (in the
same color as the progress bar!). Also, introduce a new info field that is
guaranteed to be right justified.
This fixes the stutter when adding a buddy to the KI. The return value was
never used, according to grep. There is a delay between hitting enter and the player being added, but that's acceptable.
And Hoikas said, "I cannot tell a difference in the skinning times on my
not-crappy computer with only a tenth of a millisecond resolution." So we
now have hundredth of a millisecond in the profiling display. These are
the kinds of problems you have when developing with a machine that doesn't
suck. It would be nice if players didn't try to run the game on machines
from before the exctinction event that ended the Permian era.
This should help people realize that things are happening... Even if
whatever server they're connected to takes a very long time to process a
join request. At some point in the future, the linking process should be
de-serialized.