-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuakeRecorder.cpp
111 lines (95 loc) · 2.96 KB
/
QuakeRecorder.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// QuakeRecorder.cpp: implementation of the CQuakeRecorder class.
//
// Pandora Bot v2.0
// By Darrin W. Cullop ([email protected])
//
// Copyright (c) 1998-1999 by Darrin W. Cullop. All Rights Reserved.
//
// Permission to use, copy and distribute unedited copies of this whole
// document is hereby granted, provided that no fee is charged for the
// use or availability of this document (other than the normal connection
// costs for on-line services, if applicable). The above copyright notice
// and this permission notice must be left intact in all copies of this
// document. Short excerpts of this document may be quoted in discussion
// groups or mailing list articles, as long as a reference to the full
// document is given.
//
// Commercial distribution of this document, in whole or in part,
// requires prior agreement with the author. Commercial distribution
// includes any means by which the user has to pay either for the support
// (e.g. book, newsletter or CD-ROM) or for the document itself.
//
// Unauthorized commercial distribution is prohibited.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Pandora.h"
#include "QuakeRecorder.h"
#include <io.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CQuakeRecorder::CQuakeRecorder()
{
m_bFileOpen = FALSE;
}
CQuakeRecorder::~CQuakeRecorder()
{
CloseFile();
}
//////////////////////////////////////////////////////////////////////
// Public Operations
//////////////////////////////////////////////////////////////////////
void CQuakeRecorder::OpenFile()
{
if ( !m_bFileOpen )
{
CString strFilename;
register int nCount;
BOOL bFindFile = FALSE;
nCount = 0;
while ( !bFindFile )
{
strFilename.Format("pandora%03d.dm2", nCount++);
bFindFile = _access(strFilename, 0);
}
if ( m_fDemoFile.Open(strFilename, CFile::modeWrite | CFile::modeCreate) )
{
m_bFileOpen = TRUE;
}
}
}
void CQuakeRecorder::CloseFile()
{
if ( m_bFileOpen )
{
UINT nClose = 0xFFFFFFFF;
m_fDemoFile.Write( &nClose, sizeof(nClose) );
m_fDemoFile.Close();
m_bFileOpen = FALSE;
}
}
void CQuakeRecorder::WriteBlock( CQuakePacket* pBlock )
{
if ( m_bFileOpen )
{
UINT nSize = pBlock->GetSize();
m_fDemoFile.Write( &nSize, sizeof(nSize) );
m_fDemoFile.Write( pBlock->GetDataPtr(), pBlock->GetSize() );
}
}
//////////////////////////////////////////////////////////////////////
// Private Operations
//////////////////////////////////////////////////////////////////////
void CQuakeRecorder::SetFileName()
{
m_fDemoFile.SetFilePath( m_strPath );
}
//////////////////////////////////////////////////////////////////////
// End of QuakeRecorder.cpp
//////////////////////////////////////////////////////////////////////