This commit is contained in:
FluorescentCIAAfricanAmerican
2020-04-22 12:56:21 -04:00
commit 3bf9df6b27
15370 changed files with 5489726 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// ModelCheckIn.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "ModelCheckIn.h"
#include "ModelCheckInDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInApp
BEGIN_MESSAGE_MAP(CModelCheckInApp, CWinApp)
//{{AFX_MSG_MAP(CModelCheckInApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInApp construction
CModelCheckInApp::CModelCheckInApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CModelCheckInApp object
CModelCheckInApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInApp initialization
BOOL CModelCheckInApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CModelCheckInDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
+56
View File
@@ -0,0 +1,56 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// ModelCheckIn.h : main header file for the MODELCHECKIN application
//
#if !defined(AFX_MODELCHECKIN_H__05EE4104_1C0C_46E2_B5A2_C005630DCD19__INCLUDED_)
#define AFX_MODELCHECKIN_H__05EE4104_1C0C_46E2_B5A2_C005630DCD19__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInApp:
// See ModelCheckIn.cpp for the implementation of this class
//
class CModelCheckInApp : public CWinApp
{
public:
CModelCheckInApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CModelCheckInApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CModelCheckInApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MODELCHECKIN_H__05EE4104_1C0C_46E2_B5A2_C005630DCD19__INCLUDED_)
+196
View File
@@ -0,0 +1,196 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif //_WIN32\r\n"
"#include ""res\\ModelCheckIn.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "res\\ModelCheckIn.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_MODELCHECKIN_DIALOG DIALOGEX 0, 0, 221, 110
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Model Checker Inner"
MENU IDR_MENU
FONT 8, "MS Sans Serif"
BEGIN
EDITTEXT IDC_EDIT_USERNAME,68,13,100,14,ES_AUTOHSCROLL
LTEXT "User Name",IDC_STATIC_USER_NAME,15,15,49,9
LTEXT "HL2 Game Directory",IDC_STATIC_HL2_ROOT,15,52,68,11
EDITTEXT IDC_EDIT_HL2_GAME_DIRECTORY,97,50,92,16,ES_AUTOHSCROLL
LTEXT "TF2 Game Directory",IDC_STATIC_TF2_ROOT,15,73,68,11
EDITTEXT IDC_EDIT_TF2_GAME_DIRECTORY,97,70,92,16,ES_AUTOHSCROLL
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "ModelCheckIn MFC Application\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "ModelCheckIn\0"
VALUE "LegalCopyright", "Copyright (C) 2001\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "ModelCheckIn.EXE\0"
VALUE "ProductName", "ModelCheckIn Application\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_MODELCHECKIN_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 214
TOPMARGIN, 7
BOTTOMMARGIN, 103
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDR_MENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "Check &Out...", ID_FILE_CHECK_OUT
MENUITEM "Check &In...", ID_FILE_CHECK_IN
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_FILE_EXIT
END
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\ModelCheckIn.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
+55
View File
@@ -0,0 +1,55 @@
//-----------------------------------------------------------------------------
// MODELCHECKIN.VPC
//
// Project Script
//-----------------------------------------------------------------------------
$Macro SRCDIR "..\.."
$Macro OUTBINDIR "$SRCDIR\..\game\bin"
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_base.vpc"
$Configuration
{
$Compiler
{
$Create/UsePrecompiledHeader "Use Precompiled Header (/Yu)"
$PrecompiledHeaderFile "Debug/modelcheckin.pch"
}
}
$Project "ModelCheckIn"
{
$Folder "Source Files"
{
-$File "$SRCDIR\public\tier0\memoverride.cpp"
$File "ModelCheckIn.cpp"
$File "ModelCheckIn.rc"
$File "ModelCheckInDlg.cpp"
$File "StdAfx.cpp"
{
$Configuration
{
$Compiler
{
$Create/UsePrecompiledHeader "Create Precompiled Header (/Yc)"
}
}
}
}
$Folder "Header Files"
{
$File "ModelCheckIn.h"
$File "ModelCheckInDlg.h"
$File "Resource.h"
$File "StdAfx.h"
}
$Folder "Resources"
{
$File "res\ModelCheckIn.ico"
$File "res\ModelCheckIn.rc2"
}
}
+490
View File
@@ -0,0 +1,490 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// ModelCheckInDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ModelCheckIn.h"
#include "ModelCheckInDlg.h"
#include <direct.h>
#include <sys/stat.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInDlg dialog
CModelCheckInDlg::CModelCheckInDlg(CWnd* pParent /*=NULL*/)
: CDialog(CModelCheckInDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CModelCheckInDlg)
m_HL2GameDirectory = _T("");
m_TF2GameDirectory = _T("");
m_UserName = _T("");
m_HL2Radio = -1;
m_TF2Radio = -1;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CModelCheckInDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CModelCheckInDlg)
DDX_Text(pDX, IDC_EDIT_HL2_GAME_DIRECTORY, m_HL2GameDirectory);
DDX_Text(pDX, IDC_EDIT_TF2_GAME_DIRECTORY, m_TF2GameDirectory);
DDX_Text(pDX, IDC_EDIT_USERNAME, m_UserName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CModelCheckInDlg, CDialog)
//{{AFX_MSG_MAP(CModelCheckInDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_COMMAND(ID_FILE_CHECK_OUT, OnFileCheckOut)
ON_COMMAND(ID_FILE_CHECK_IN, OnFileCheckIn)
ON_COMMAND(ID_FILE_EXIT, OnFileExit)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInDlg message handlers
BOOL CModelCheckInDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Restore state
RestoreStateFromRegistry();
UpdateData( FALSE );
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CModelCheckInDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CModelCheckInDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
//-----------------------------------------------------------------------------
// Resets our last used directory
//-----------------------------------------------------------------------------
void CModelCheckInDlg::ResetDirectoryEntry( CString &fullPath, char *pRegEntry )
{
// reset the last directory...
CString temp = fullPath;
int i = temp.ReverseFind( '\\' );
int j = temp.ReverseFind( '/' );
if (i < j) i = j;
temp.SetAt(i, 0);
AfxGetApp()->WriteProfileString( MDL_CHECKOUT_REG_CLASS, pRegEntry, temp );
}
//-----------------------------------------------------------------------------
// Stores state
//-----------------------------------------------------------------------------
void CModelCheckInDlg::StoreStateIntoRegistry( )
{
AfxGetApp()->WriteProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_USER, m_UserName );
AfxGetApp()->WriteProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_HL2_PATH, m_HL2GameDirectory );
AfxGetApp()->WriteProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_TF2_PATH, m_TF2GameDirectory );
}
//-----------------------------------------------------------------------------
// Restores state
//-----------------------------------------------------------------------------
void CModelCheckInDlg::RestoreStateFromRegistry( )
{
m_UserName = AfxGetApp()->GetProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_USER, "" );
m_HL2GameDirectory = AfxGetApp()->GetProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_HL2_PATH, "u:/hl2/hl2" );
m_TF2GameDirectory = AfxGetApp()->GetProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_TF2_PATH, "u:/hl2/tf2" );
}
//-----------------------------------------------------------------------------
// Extensions of all files related to the model file
//-----------------------------------------------------------------------------
static char* s_ppExtensions[] =
{
".dx7_2bone.vtx",
".dx80.vtx",
".phy",
".mdl",
""
};
static char* s_ppProjectDir[] =
{
"$/HL2/release/dev/hl2/",
"$/TF2/release/dev/tf2/"
};
//-----------------------------------------------------------------------------
// Checks it out/ checks it in baby
//-----------------------------------------------------------------------------
void CModelCheckInDlg::PerformCheckoutCommand( ProjectType_t project,
char const* pRelativeDir, char const* pDestPath, char const* pFileName )
{
char error[1024];
char buf[1024];
int len = 0;
int currExtension;
for ( currExtension = 0; s_ppExtensions[currExtension][0]; ++currExtension )
{
// Check for the existence of the file in source safe...
sprintf( buf, "ss filetype %s%s/%s%s -O- -y%s\n",
s_ppProjectDir[project], pRelativeDir, pFileName, s_ppExtensions[currExtension],
(char const*)m_UserName );
int retVal = system( buf );
if (retVal > 0)
continue;
// It's there, try to check it out
sprintf( buf, "ss checkout %s%s/%s%s -GL%s -GWA -O- -y%s\n",
s_ppProjectDir[project], pRelativeDir, pFileName, s_ppExtensions[currExtension],
pDestPath, (char const*)m_UserName );
retVal = system( buf );
if (retVal > 0)
{
len += sprintf( &error[len], "*** SourceSafe error attempting to check out \"%s%s\"\n",
pFileName, s_ppExtensions[currExtension] );
}
}
if (len > 0)
{
MessageBox( error, "Error!" );
}
}
//-----------------------------------------------------------------------------
// Checks it out/ checks it in baby
//-----------------------------------------------------------------------------
void CModelCheckInDlg::PerformCheckinCommand( ProjectType_t project,
char const* pRelativeDir, char const* pDestPath, char const* pFileName )
{
char buf[1024];
char error[1024];
int len = 0;
int currExtension;
for ( currExtension = 0; s_ppExtensions[currExtension][0]; ++currExtension )
{
// Check for the existence of the file on disk. If it's not there, don't bother
sprintf( buf, "%s/%s%s", pDestPath, pFileName, s_ppExtensions[currExtension] );
struct _stat statbuf;
int result = _stat( buf, &statbuf );
if (result != 0)
continue;
// Check for the existence of the file in source safe...
sprintf( buf, "ss filetype %s%s/%s%s -O- -y%s\n",
s_ppProjectDir[project], pRelativeDir, pFileName, s_ppExtensions[currExtension],
(char const*)m_UserName );
int retVal = system( buf );
if (retVal > 0)
{
// Try to add the file to source safe...
sprintf( buf, "ss add %s%s/%s%s -GL%s -O- -y%s\n",
s_ppProjectDir[project], pRelativeDir, pFileName, s_ppExtensions[currExtension],
pDestPath, (char const*)m_UserName );
int retVal = system( buf );
if (retVal > 0)
{
len += sprintf( &error[len], "SourceSafe error attempting to add \"%s%s\"\n",
pFileName, s_ppExtensions[currExtension] );
}
}
else
{
// It's there, just check it in
sprintf( buf, "ss checkin %s%s/%s%s -GL%s -O- -y%s\n",
s_ppProjectDir[project], pRelativeDir, pFileName, s_ppExtensions[currExtension],
pDestPath, (char const*)m_UserName );
retVal = system( buf );
if (retVal > 0)
{
len += sprintf( &error[len], "SourceSafe error attempting to check in \"%s%s\"\n",
pFileName, s_ppExtensions[currExtension] );
}
}
}
if (len > 0)
{
MessageBox( error, "Error!" );
}
}
//-----------------------------------------------------------------------------
// Fixes up a filename
//-----------------------------------------------------------------------------
static int FixupFileName( char const* pInFile, char* pOutBuf )
{
if (!pInFile)
{
*pOutBuf = '\0';
return 0;
}
int len = strlen(pInFile);
for (int i = 0; i <= len; ++i)
{
pOutBuf[i] = tolower( pInFile[i] );
if (pOutBuf[i] == '\\')
pOutBuf[i] = '/';
}
// Make sure no trailing '/'
if (pOutBuf[len - 1] == '/')
pOutBuf[--len] = '\0';
return len;
}
//-----------------------------------------------------------------------------
// Gets the relative file name
//-----------------------------------------------------------------------------
CModelCheckInDlg::ProjectType_t CModelCheckInDlg::ComputeRelativeFileName( char const* pInFile, char* pRelativeFile )
{
// Depending on which project is selected, strip out the game directory
char tempIn[MAX_PATH];
char tempPath[MAX_PATH];
FixupFileName( pInFile, tempIn );
int len;
if (!m_HL2GameDirectory.IsEmpty())
{
len = FixupFileName( m_HL2GameDirectory, tempPath );
if (!strncmp( tempIn, m_HL2GameDirectory, len ))
{
strcpy( pRelativeFile, &tempIn[len+1] );
return PROJECT_HL2;
}
}
if (!m_TF2GameDirectory.IsEmpty())
{
len = FixupFileName( m_TF2GameDirectory, tempPath );
if (!strncmp( tempIn, m_TF2GameDirectory, len ))
{
strcpy( pRelativeFile, &tempIn[len+1] );
return PROJECT_TF2;
}
}
return PROJECT_ERROR;
}
//-----------------------------------------------------------------------------
// Have we typed in anything for our user name?
//-----------------------------------------------------------------------------
bool CModelCheckInDlg::CheckInfo()
{
if (m_UserName.IsEmpty())
{
MessageBox( "Please enter your user name.\n", "Error!" );
return false;
}
if (m_HL2GameDirectory.IsEmpty() && m_TF2GameDirectory.IsEmpty())
{
MessageBox( "Please enter the game directories for HL2 and/or TF2.\n", "Error!" );
return false;
}
return true;
}
//-----------------------------------------------------------------------------
// Resets our last used directory
//-----------------------------------------------------------------------------
CModelCheckInDlg::ProjectType_t CModelCheckInDlg::GetFileNames( char const* pTitle,
char*& pRelativePath, char*& pFileName, char*& pDestPath )
{
UpdateData( TRUE );
StoreStateIntoRegistry();
if (!CheckInfo())
return PROJECT_ERROR;
CFileDialog dlg( TRUE, ".mdl", "*.mdl", OFN_HIDEREADONLY,
"Model Files (*.mdl)|*.mdl||" );
// Set up initial paths
char pCwd[MAX_PATH];
_getcwd( pCwd, MAX_PATH );
// Setup the title and initial directory
CString temp = AfxGetApp()->GetProfileString( MDL_CHECKOUT_REG_CLASS,
MDL_CHECKOUT_REG_LAST_PATH, pCwd );
dlg.m_ofn.lpstrInitialDir = temp;
dlg.m_ofn.lpstrTitle = pTitle;
// Grab the data from the dialog...
if (dlg.DoModal() != IDOK)
return PROJECT_ERROR;
// Get the relative file name
static char relativeFile[MAX_PATH];
ProjectType_t projectType = ComputeRelativeFileName( dlg.GetPathName(), relativeFile );
if (projectType == PROJECT_ERROR)
{
char buf[MAX_PATH];
sprintf( buf, "%s\nwas not found under either game directory!\n", dlg.GetPathName() );
MessageBox( buf, "Error!" );
return PROJECT_ERROR;
}
// reset the last directory...
ResetDirectoryEntry( dlg.GetPathName(), MDL_CHECKOUT_REG_LAST_PATH );
// Split into relative file + path...
char* pSlash = strrchr( relativeFile, '/' );
if (pSlash)
{
*pSlash = 0;
pRelativePath = relativeFile;
pFileName = pSlash + 1;
}
else
{
pFileName = relativeFile;
pRelativePath = "";
}
// Remove extension
char* pExt = strchr( pFileName, '.' );
if (pExt)
*pExt = 0;
static char destPath[MAX_PATH];
FixupFileName( dlg.GetPathName(), destPath );
pSlash = strrchr( destPath, '/' );
if (pSlash)
*pSlash = 0;
else
destPath[0] = 0;
pDestPath = destPath;
return projectType;
}
//-----------------------------------------------------------------------------
// Does checkout and check-in
//-----------------------------------------------------------------------------
void CModelCheckInDlg::OnFileCheckOut()
{
char* pRelativePath;
char* pFileName;
char* pDestPath;
ProjectType_t projectType;
projectType = GetFileNames( "Select MDL file to check out...", pRelativePath,
pFileName, pDestPath );
if (projectType != PROJECT_ERROR)
{
PerformCheckoutCommand( projectType, pRelativePath, pDestPath, pFileName );
}
}
void CModelCheckInDlg::OnFileCheckIn()
{
char* pRelativePath;
char* pFileName;
char* pDestPath;
ProjectType_t projectType;
projectType = GetFileNames( "Select MDL file to check in...", pRelativePath,
pFileName, pDestPath );
if (projectType != PROJECT_ERROR)
{
PerformCheckinCommand( projectType, pRelativePath, pDestPath, pFileName );
}
}
void CModelCheckInDlg::OnFileExit()
{
PostQuitMessage(0);
}
+99
View File
@@ -0,0 +1,99 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// ModelCheckInDlg.h : header file
//
#if !defined(AFX_MODELCHECKINDLG_H__75541530_E85C_4FAB_8C76_6EE68353E2E2__INCLUDED_)
#define AFX_MODELCHECKINDLG_H__75541530_E85C_4FAB_8C76_6EE68353E2E2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CModelCheckInDlg dialog
class CModelCheckInDlg : public CDialog
{
// Construction
public:
CModelCheckInDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CModelCheckInDlg)
enum { IDD = IDD_MODELCHECKIN_DIALOG };
CString m_HL2GameDirectory;
CString m_TF2GameDirectory;
CString m_UserName;
int m_HL2Radio;
int m_TF2Radio;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CModelCheckInDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CModelCheckInDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
afx_msg void OnFileCheckIn();
afx_msg void OnFileCheckOut();
afx_msg void OnFileExit();
DECLARE_MESSAGE_MAP()
private:
enum ProjectType_t
{
PROJECT_ERROR = -1,
PROJECT_HL2 = 0,
PROJECT_TF2
};
bool CheckInfo();
bool SetCurrentSSProject( ProjectType_t project, char const* pRelativeDir );
ProjectType_t ComputeRelativeFileName( char const* pInFile, char* pRelativeFile );
void StoreStateIntoRegistry( );
void RestoreStateFromRegistry( );
ProjectType_t GetFileNames( char const* pTitle, char*& pRelativePath,
char*& pFileName, char*& pDestPath );
void ResetDirectoryEntry( CString &fullPath, char *pRegEntry );
void PerformCheckoutCommand( ProjectType_t project,
char const* pRelativeDir, char const* pDestPath, char const* pFileName );
void PerformCheckinCommand( ProjectType_t project,
char const* pRelativeDir, char const* pDestPath, char const* pFileName );
};
//-----------------------------------------------------------------------------
// registry info
//-----------------------------------------------------------------------------
#define MDL_CHECKOUT_REG_CLASS "HKEY_CURRENT_USER\\SOFTWARE\\Valve\\MDLCheckOut"
#define MDL_CHECKOUT_REG_LAST_PATH "Path"
#define MDL_CHECKOUT_REG_USER "User"
#define MDL_CHECKOUT_REG_HL2_PATH "HL2"
#define MDL_CHECKOUT_REG_TF2_PATH "TF2"
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MODELCHECKINDLG_H__75541530_E85C_4FAB_8C76_6EE68353E2E2__INCLUDED_)
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+13
View File
@@ -0,0 +1,13 @@
//
// MODELCHECKIN.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////
+35
View File
@@ -0,0 +1,35 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by ModelCheckIn.rc
//
#define IDD_MODELCHECKIN_DIALOG 102
#define IDR_MAINFRAME 128
#define IDR_MENU 129
#define IDC_EDIT_USERNAME 1000
#define IDC_STATIC_USER_NAME 1001
#define IDC_RADIO_TF2 1004
#define IDC_STATIC_HL2_ROOT 1005
#define IDC_EDIT_HL2_GAME_DIRECTORY 1006
#define IDC_STATIC_TF2_ROOT 1007
#define IDC_EDIT_TF2_GAME_DIRECTORY 1008
#define ID_FILE_CHECK_OUT 32771
#define ID_FILE_CHECK_IN 32772
#define ID_FILE_EXIT 32773
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 130
#define _APS_NEXT_COMMAND_VALUE 32774
#define _APS_NEXT_CONTROL_VALUE 1007
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
+15
View File
@@ -0,0 +1,15 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// stdafx.cpp : source file that includes just the standard includes
// ModelCheckIn.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
+33
View File
@@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__E1BDB0EE_61CC_4BD0_BD80_5B466703FB31__INCLUDED_)
#define AFX_STDAFX_H__E1BDB0EE_61CC_4BD0_BD80_5B466703FB31__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__E1BDB0EE_61CC_4BD0_BD80_5B466703FB31__INCLUDED_)