185 lines
5 KiB
C
185 lines
5 KiB
C
|
// AssimilateDoc.h : interface of the CAssimilateDoc class
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#if !defined(AFX_ASSIMILATEDOC_H__2CCA554A_2AD3_11D3_82E0_0000C0366FF2__INCLUDED_)
|
||
|
#define AFX_ASSIMILATEDOC_H__2CCA554A_2AD3_11D3_82E0_0000C0366FF2__INCLUDED_
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
TK_AS_GRABINIT = TK_USERDEF,
|
||
|
TK_AS_GRAB,
|
||
|
TK_AS_GRAB_GLA,
|
||
|
TK_AS_FILL,
|
||
|
TK_AS_ACTION,
|
||
|
TK_AS_SOUND,
|
||
|
TK_AS_ENUM,
|
||
|
TK_AS_GRABFINALIZE,
|
||
|
TK_AS_CONVERT,
|
||
|
TK_AS_CONVERTMDX,
|
||
|
TK_AS_CONVERTMDX_NOASK,
|
||
|
TK_AS_FRAMES,
|
||
|
TK_AS_PLAYERPARMS,
|
||
|
TK_AS_SCALE,
|
||
|
TK_AS_PCJ,
|
||
|
TK_AS_KEEPMOTION,
|
||
|
TK_AS_ORIGIN,
|
||
|
TK_AS_SMOOTH,
|
||
|
TK_AS_LOSEDUPVERTS,
|
||
|
TK_AS_MAKESKIN,
|
||
|
TK_AS_IGNOREBASEDEVIATIONS,
|
||
|
TK_AS_SKEW90,
|
||
|
TK_AS_NOSKEW90,
|
||
|
TK_AS_SKEL,
|
||
|
TK_AS_MAKESKEL,
|
||
|
TK_AS_LOOP,
|
||
|
TK_AS_ADDITIONAL,
|
||
|
TK_AS_PREQUAT,
|
||
|
TK_AS_FRAMESPEED,
|
||
|
TK_AS_QDSKIPSTART, // useful so qdata can quickly skip extra stuff without having to know the syntax of what to skip
|
||
|
TK_AS_QDSKIPSTOP,
|
||
|
TK_AS_GENLOOPFRAME,
|
||
|
TK_DOLLAR,
|
||
|
TK_UNDERSCORE,
|
||
|
TK_DASH,
|
||
|
TK_DOT,
|
||
|
TK_SLASH,
|
||
|
TK_BACKSLASH,
|
||
|
};
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
AS_NOTHING,
|
||
|
AS_NEWFILE,
|
||
|
AS_DELETECONTENTS,
|
||
|
AS_FILESUPDATED,
|
||
|
};
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
TABLE_ANY,
|
||
|
TABLE_QDT,
|
||
|
TABLE_GRAB,
|
||
|
TABLE_CONVERT,
|
||
|
};
|
||
|
|
||
|
class CAssimilateDoc : public CDocument
|
||
|
{
|
||
|
protected: // create from serialization only
|
||
|
CAssimilateDoc();
|
||
|
DECLARE_DYNCREATE(CAssimilateDoc)
|
||
|
|
||
|
// Attributes
|
||
|
public:
|
||
|
static LPCTSTR GetKeyword(int token, int table = 0);
|
||
|
|
||
|
// Operations
|
||
|
public:
|
||
|
|
||
|
int GetNumModels();
|
||
|
CModel* GetFirstModel();
|
||
|
void Resequence();
|
||
|
|
||
|
// Overrides
|
||
|
// ClassWizard generated virtual function overrides
|
||
|
//{{AFX_VIRTUAL(CAssimilateDoc)
|
||
|
public:
|
||
|
virtual BOOL OnNewDocument();
|
||
|
virtual void Serialize(CArchive& ar);
|
||
|
virtual void DeleteContents();
|
||
|
virtual BOOL DoFileSave();
|
||
|
virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
|
||
|
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
|
||
|
virtual BOOL OnOpenDocument_Actual(LPCTSTR lpszPathName, bool bCheckOut) ;
|
||
|
virtual void OnCloseDocument();
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
// Implementation
|
||
|
public:
|
||
|
virtual ~CAssimilateDoc();
|
||
|
#ifdef _DEBUG
|
||
|
virtual void AssertValid() const;
|
||
|
virtual void Dump(CDumpContext& dc) const;
|
||
|
#endif
|
||
|
|
||
|
void ClearModelUserSelectionBools();
|
||
|
CModel *GetCurrentUserSelectedModel();
|
||
|
void DeleteModel(CModel *deleteModel);
|
||
|
|
||
|
protected:
|
||
|
void Init();
|
||
|
|
||
|
void Parse(CFile* file);
|
||
|
void Parse(LPCSTR psFilename);
|
||
|
void Write(CFile* file);
|
||
|
|
||
|
void AddFile(LPCTSTR name);
|
||
|
CModel* AddModel();
|
||
|
void EndModel();
|
||
|
void ParseGrab(CTokenizer* tokenizer, int iGrabType);
|
||
|
void ParseConvert(CTokenizer* tokenizer, int iTokenType);
|
||
|
void AddComment(LPCTSTR comment);
|
||
|
bool Validate(bool bInfoBoxAllowed = false, int iLODLevel = 0);
|
||
|
bool Build(bool bAllowedToShowSuccessBox, int iLODLevel, bool bSkipSave);
|
||
|
bool WriteCFGFiles(bool bPromptForNames, bool &bCFGWritten);
|
||
|
|
||
|
CComment* m_comments;
|
||
|
CModel* m_modelList;
|
||
|
CModel* m_curModel; // fixme: update this in either usage or label to say only Mike's code uses it during loading, not elsewhere
|
||
|
CModel* m_lastModel;
|
||
|
|
||
|
static keywordArray_t s_Symbols[];
|
||
|
static keywordArray_t s_Keywords[];
|
||
|
static keywordArray_t s_grabKeywords[];
|
||
|
static keywordArray_t s_convertKeywords[];
|
||
|
|
||
|
// Generated message map functions
|
||
|
protected:
|
||
|
//{{AFX_MSG(CAssimilateDoc)
|
||
|
afx_msg void OnAddfiles();
|
||
|
afx_msg void OnExternal();
|
||
|
afx_msg void OnResequence();
|
||
|
afx_msg void OnBuild();
|
||
|
afx_msg void OnBuildMultiLOD();
|
||
|
afx_msg void OnValidate();
|
||
|
afx_msg void OnCarWash();
|
||
|
afx_msg void OnCarWashActual();
|
||
|
afx_msg void OnValidateMultiLOD();
|
||
|
afx_msg void OnViewAnimEnums();
|
||
|
afx_msg void OnUpdateViewAnimEnums(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnViewFrameDetails();
|
||
|
afx_msg void OnUpdateViewFrameDetails(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateResequence(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateExternal(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateValidate(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateBuild(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnEditBuildall();
|
||
|
afx_msg void OnEditBuildDependant();
|
||
|
afx_msg void OnViewFramedetailsonadditionalsequences();
|
||
|
afx_msg void OnUpdateViewFramedetailsonadditionalsequences(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnUpdateEditBuilddependant(CCmdUI* pCmdUI);
|
||
|
afx_msg void OnEditLaunchmodviewoncurrent();
|
||
|
afx_msg void OnUpdateEditLaunchmodviewoncurrent(CCmdUI* pCmdUI);
|
||
|
//}}AFX_MSG
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_INSERT_LOCATION}}
|
||
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||
|
|
||
|
extern bool gbCarWash_YesToXSIScan;
|
||
|
extern bool gbCarWash_DoingScan;
|
||
|
extern CString strCarWashErrors;
|
||
|
bool SendToNotePad(LPCSTR psWhatever, LPCSTR psLocalFileName);
|
||
|
|
||
|
|
||
|
#endif // !defined(AFX_ASSIMILATEDOC_H__2CCA554A_2AD3_11D3_82E0_0000C0366FF2__INCLUDED_)
|