Browse Source

Merge branch 'master' into netlog

Michael Hansen 13 years ago
parent
commit
9d3665e0a6
  1. 1
      .gitignore
  2. 76
      Sources/Plasma/Apps/plClient/plClient.cpp
  3. 3
      Sources/Plasma/Apps/plClient/plClient.h
  4. 38
      Sources/Plasma/Apps/plClient/winmain.cpp
  5. 7
      Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp
  6. 3
      Sources/Plasma/CoreLibExe/hsExeError.cpp
  7. 6
      Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp
  8. 4
      Sources/Tools/MaxMain/CMakeLists.txt
  9. 15
      Sources/Tools/MaxMain/SimpleExport.rc

1
.gitignore vendored

@ -8,6 +8,7 @@ tags
*.swp
*.o
*.orig
*.pyc
Makefile
CMakeCache.txt

76
Sources/Plasma/Apps/plClient/plClient.cpp

@ -751,7 +751,7 @@ hsBool plClient::MsgReceive(plMessage* msg)
{
ISetGraphicsDefaults();
ResetDisplayDevice(plPipeline::fDefaultPipeParams.Width, plPipeline::fDefaultPipeParams.Height, plPipeline::fDefaultPipeParams.ColorDepth, plPipeline::fDefaultPipeParams.Windowed,
plPipeline::fDefaultPipeParams.AntiAliasingAmount, plPipeline::fDefaultPipeParams.AnisotropicLevel, plPipeline::fDefaultPipeParams.VSync, true);
plPipeline::fDefaultPipeParams.AntiAliasingAmount, plPipeline::fDefaultPipeParams.AnisotropicLevel, plPipeline::fDefaultPipeParams.VSync);
}
break;
@ -2150,54 +2150,60 @@ hsG3DDeviceModeRecord plClient::ILoadDevMode(const char* devModeFile)
return dmr;
}
void plClient::ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync, hsBool windowOnly)
void plClient::ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync)
{
if(!fPipeline) return;
int BorderWidth = 0, BorderHeight = 0, CaptionHeight = 0;
WindowActivate(false);
int ActualWidth;
int ActualHeight;
if( Windowed )
{
BorderWidth = GetSystemMetrics( SM_CXSIZEFRAME );
BorderHeight = GetSystemMetrics( SM_CYSIZEFRAME );
CaptionHeight = GetSystemMetrics( SM_CYCAPTION );
ActualWidth = Width + BorderWidth * 2;
ActualHeight = Height + BorderHeight * 2 + CaptionHeight;
SetWindowLong( fWindowHndl, GWL_STYLE,
WS_POPUP | WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE);
SetWindowLong(fWindowHndl, GWL_EXSTYLE, 0);
}
else
{
SetWindowLong(fWindowHndl, GWL_STYLE,
WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_MAXIMIZE | WS_VISIBLE);
ResizeDisplayDevice(Width, Height, Windowed);
SetWindowLong(fWindowHndl, GWL_EXSTYLE, WS_EX_APPWINDOW);
}
fPipeline->ResetDisplayDevice(Width, Height, ColorDepth, Windowed, NumAASamples, MaxAnisotropicSamples, VSync);
WindowActivate(true);
}
void plClient::ResizeDisplayDevice(int Width, int Height, hsBool Windowed)
{
if(!windowOnly)
fPipeline->ResetDisplayDevice(Width, Height, ColorDepth, Windowed, NumAASamples, MaxAnisotropicSamples, VSync);
if (plMouseDevice::Instance())
plMouseDevice::Instance()->SetDisplayResolution((float)Width, (float)Height);
float aspectratio = (float)Width / (float)Height;
plMouseDevice::Instance()->SetDisplayResolution((float)Width, (float)Height);
pfGameGUIMgr::GetInstance()->SetAspectRatio( aspectratio );
if (pfGameGUIMgr::GetInstance())
pfGameGUIMgr::GetInstance()->SetAspectRatio( aspectratio );
UINT flags = SWP_NOCOPYBITS | SWP_NOMOVE | SWP_SHOWWINDOW;
if(Windowed)
{
SetWindowPos( fWindowHndl, HWND_NOTOPMOST, 0, 0, ActualWidth, ActualHeight, flags );
}
else
UInt32 winStyle, winExStyle;
if( Windowed )
{
SetWindowPos( fWindowHndl, HWND_TOP, 0, 0, Width, Height, flags );
winStyle = WS_OVERLAPPEDWINDOW;
winExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
} else {
winStyle = WS_POPUP;
winExStyle = WS_EX_APPWINDOW;
}
SetWindowLong(fWindowHndl, GWL_STYLE, winStyle);
SetWindowLong(fWindowHndl, GWL_EXSTYLE, winExStyle);
WindowActivate(true);
}
UInt32 flags = SWP_NOCOPYBITS | SWP_SHOWWINDOW | SWP_FRAMECHANGED;
UInt32 OutsideWidth, OutsideHeight;
HWND insertAfter;
if( Windowed )
{
RECT winRect = { 0, 0, Width, Height };
AdjustWindowRectEx(&winRect, winStyle, false, winExStyle);
OutsideWidth = winRect.right - winRect.left;
OutsideHeight = winRect.bottom - winRect.top;
insertAfter = HWND_NOTOPMOST;
} else {
OutsideWidth = Width;
OutsideHeight = Height;
insertAfter = HWND_TOP;
}
SetWindowPos( fWindowHndl, insertAfter, 0, 0, OutsideWidth, OutsideHeight, flags );
}
void WriteBool(hsStream *stream, char *name, hsBool on )
{

3
Sources/Plasma/Apps/plClient/plClient.h

@ -276,7 +276,8 @@ public:
virtual hsBool WindowActive() const { return fWindowActive; }
void SetMessagePumpProc( plMessagePumpProc proc ) { fMessagePumpProc = proc; }
void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false, hsBool windowOnly = false);
void ResetDisplayDevice(int Width, int Height, int ColorDepth, hsBool Windowed, int NumAASamples, int MaxAnisotropicSamples, hsBool VSync = false);
void ResizeDisplayDevice(int Width, int Height, hsBool Windowed);
void IDetectAudioVideoSettings();
void IWriteDefaultGraphicsSettings(const wchar* destFile);

38
Sources/Plasma/Apps/plClient/winmain.cpp

@ -86,7 +86,6 @@ extern hsBool gUseBackgroundDownloader;
enum
{
kArgToDni,
kArgSkipLoginDialog,
kArgServerIni,
kArgLocalData,
@ -94,7 +93,6 @@ enum
};
static const CmdArgDef s_cmdLineArgs[] = {
{ kCmdArgFlagged | kCmdTypeBool, L"ToDni", kArgToDni },
{ kCmdArgFlagged | kCmdTypeBool, L"SkipLoginDialog", kArgSkipLoginDialog },
{ kCmdArgFlagged | kCmdTypeString, L"ServerIni", kArgServerIni },
{ kCmdArgFlagged | kCmdTypeBool, L"LocalData", kArgLocalData },
@ -769,11 +767,6 @@ bool InitClient( HWND hWnd )
#ifdef DETACH_EXE
hInstance = ((LPCREATESTRUCT) lParam)->hInstance;
#endif
// If in fullscreen mode, get rid of the window borders. Note: this won't take
// effect until the next SetWindowPos call
#ifdef DETACH_EXE
// This Function loads the EXE into Virtual memory...supposedly
HRESULT hr = DetachFromMedium(hInstance, DMDFM_ALWAYS | DMDFM_ALLPAGES);
@ -783,34 +776,7 @@ bool InitClient( HWND hWnd )
gClient->SetDone(true);
else
{
if( gClient->GetPipeline()->IsFullScreen() )
{
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP);
SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOPMOST);
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
gWinBorderDX = gWinBorderDY = gWinMenuDY = 0;
}
else {
SetWindowLong(hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION);
SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
int goodWidth = gClient->GetPipeline()->Width() + gWinBorderDX * 2;
int goodHeight = gClient->GetPipeline()->Height() + gWinBorderDY * 2 + gWinMenuDY;
SetWindowPos(
hWnd,
nil,
0,
0,
goodWidth,
goodHeight,
SWP_NOCOPYBITS
| SWP_NOMOVE
| SWP_NOOWNERZORDER
| SWP_NOZORDER
| SWP_FRAMECHANGED
);
gClient->ResizeDisplayDevice(gClient->GetPipeline()->Width(), gClient->GetPipeline()->Height(), !gClient->GetPipeline()->IsFullScreen());
}
if( gPendingActivate )
@ -1040,6 +1006,8 @@ BOOL CALLBACK UruTOSDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
SetDlgItemText(hwndDlg, IDC_URULOGIN_EULATEXT, eulaData);
delete [] eulaData;
}
else // no TOS found, go ahead
EndDialog(hwndDlg, true);
break;
}

7
Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp

@ -153,6 +153,13 @@ static void ManifestCallback (
return;
}
#ifndef PLASMA_EXTERNAL_RELEASE
if (entryCount == 0) { // dataserver does not contain a patcher
s_downloadComplete = true;
return;
}
#endif
char ansi[MAX_PATH];
// MD5 check current patcher against value in manifest

3
Sources/Plasma/CoreLibExe/hsExeError.cpp

@ -136,8 +136,7 @@ void ErrorMinimizeAppWindow () {
// If the application's topmost window is a fullscreen
// popup window, minimize it before displaying an error
HWND appWindow = GetActiveWindow();
if ( ((GetWindowLong(appWindow, GWL_STYLE) & WS_POPUP) != 0) &&
((GetWindowLong(appWindow, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0) )
if ( ((GetWindowLong(appWindow, GWL_STYLE) & WS_POPUP) != 0) )
SetWindowPos(
appWindow,
HWND_NOTOPMOST,

6
Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp

@ -944,7 +944,7 @@ bool ManifestRequestTrans::Recv (
dword numFiles = reply.numFiles;
dword wcharCount = reply.wcharCount;
const wchar* curChar = reply.manifestData;
const wchar* curChar = reply.manifestData; // the pointer is not yet dereferenced here!
// tell the server we got the data
Cli2File_ManifestEntryAck manifestAck;
@ -955,9 +955,9 @@ bool ManifestRequestTrans::Recv (
m_conn->Send(&manifestAck, manifestAck.messageBytes);
// if wcharCount is 2, the data only contains the terminator "\0\0" and we
// if wcharCount is 2 or less, the data only contains the terminator "\0\0" and we
// don't need to convert anything (and we are done)
if ((IS_NET_ERROR(reply.result)) || (wcharCount == 2)) {
if ((IS_NET_ERROR(reply.result)) || (wcharCount <= 2)) {
// we have a problem... or we have nothing to so, so we're done
m_result = reply.result;
m_state = kTransStateComplete;

4
Sources/Tools/MaxMain/CMakeLists.txt

@ -96,6 +96,7 @@ endif()
target_link_libraries(MaxMain ${EXPAT_LIBRARY})
target_link_libraries(MaxMain ${DirectX_LIBRARIES})
target_link_libraries(MaxMain ${JPEG_LIBRARY})
target_link_libraries(MaxMain ${PNG_LIBRARY})
target_link_libraries(MaxMain ${Ogg_LIBRARIES})
target_link_libraries(MaxMain ${OPENAL_LIBRARY})
target_link_libraries(MaxMain ${OPENSSL_LIBRARIES})
@ -105,7 +106,7 @@ target_link_libraries(MaxMain optimized ${PYTHON_LIBRARY})
target_link_libraries(MaxMain ${Speex_LIBRARY})
target_link_libraries(MaxMain ${Vorbis_LIBRARIES})
# Carbon copy from MaxMain
# Carbon copy from plClient
# TODO: Maybe see if some of these can be removed?
target_link_libraries(MaxMain CoreLib)
target_link_libraries(MaxMain CoreLibExe)
@ -135,6 +136,7 @@ target_link_libraries(MaxMain plAudioCore)
target_link_libraries(MaxMain plAvatar)
target_link_libraries(MaxMain plCompression)
target_link_libraries(MaxMain plContainer)
target_link_libraries(MaxMain plClientResMgr)
target_link_libraries(MaxMain plDrawable)
target_link_libraries(MaxMain plEncryption)
target_link_libraries(MaxMain plFile)

15
Sources/Tools/MaxMain/SimpleExport.rc

@ -449,21 +449,6 @@ BEGIN
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_CURSOR_UP BITMAP "../../Plasma/Apps/plClient/res/cursor_up.bmp"
IDB_CURSOR_DOWN BITMAP "../../Plasma/Apps/plClient/res/cursor_down.bmp"
IDB_CURSOR_RIGHT BITMAP "../../Plasma/Apps/plClient/res/cursor_right.bmp"
IDB_CURSOR_LEFT BITMAP "../../Plasma/Apps/plClient/res/cursor_left.bmp"
IDB_CURSOR_OPEN BITMAP "../../Plasma/Apps/plClient/res/cursor_open.bmp"
IDB_CURSOR_GRAB BITMAP "../../Plasma/Apps/plClient/res/cursor_grab.bmp"
IDB_CURSOR_CLICKED BITMAP "../../Plasma/Apps/plClient/res/cursor_clicked.bmp"
IDB_CURSOR_POISED BITMAP "../../Plasma/Apps/plClient/res/cursor_poised.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Menu

Loading…
Cancel
Save