mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-29 21:25:54 +01:00
164 lines
5.1 KiB
C
164 lines
5.1 KiB
C
|
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
|
||
|
|
||
|
// SeriousSkaStudio.h : main header file for the SERIOUSSKASTUDIO application
|
||
|
//
|
||
|
|
||
|
#if !defined(AFX_SERIOUSSKASTUDIO_H__0D873E27_F3AF_4EC5_B1AE_B0F330DB5848__INCLUDED_)
|
||
|
#define AFX_SERIOUSSKASTUDIO_H__0D873E27_F3AF_4EC5_B1AE_B0F330DB5848__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
|
||
|
|
||
|
#include "DlgClient.h"
|
||
|
#include "SeriousSkaStudioDoc.h"
|
||
|
#include "SeriousSkaStudioView.h"
|
||
|
#include "DlgBarTreeView.h"
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CSeriousSkaStudioApp:
|
||
|
// See SeriousSkaStudio.cpp for the implementation of this class
|
||
|
//
|
||
|
#define FILTER_ASCII "ASCII files (*.aal,*.asl,*.aml)\0*.aal;*.aml;*.asl\0"
|
||
|
#define FILTER_MESH "Mesh ASCII files (*.am)\0*.am;\0"
|
||
|
#define FILTER_SKELETON "Skeleton ASCII files (*.as)\0*.as;\0"
|
||
|
#define FILTER_ANIMATION "Animation ASCII files (*.aa)\0*.aa;\0"
|
||
|
#define FILTER_TEXTURE "Texture files (*.tex)\0*.tex;\0"
|
||
|
#define FILTER_MESH_LIST "Mesh list files (*.aml)\0*.aml;\0"
|
||
|
#define FILTER_SKELETON_LIST "Skeleton list files (*.asl)\0*.asl;\0"
|
||
|
#define FILTER_ANIMSET_LISTS "AnimSet list files (*.aal)\0*.aal;\0"
|
||
|
|
||
|
#define STRETCH_BUTTON_INDEX 22
|
||
|
|
||
|
#define NT_MODELINSTANCE 0
|
||
|
#define NT_MESHLODLIST 1
|
||
|
#define NT_MESHLOD 2
|
||
|
#define NT_TEXINSTANCE 3
|
||
|
#define NT_SKELETONLODLIST 4
|
||
|
#define NT_SKELETONLOD 5
|
||
|
#define NT_BONE 6
|
||
|
#define NT_ANIMSET 7
|
||
|
#define NT_ANIMATION 8
|
||
|
#define NT_ANIM_BONEENV 9
|
||
|
#define NT_COLISIONBOX 10
|
||
|
#define NT_ALLFRAMESBBOX 11
|
||
|
#define NT_MESHSURFACE 12
|
||
|
|
||
|
class CSeriousSkaStudioApp : public CWinApp
|
||
|
{
|
||
|
public:
|
||
|
CMultiDocTemplate* m_pdtDocTemplate;
|
||
|
CSeriousSkaStudioApp();
|
||
|
BOOL SubInitInstance();
|
||
|
CSeriousSkaStudioDoc *GetDocument();
|
||
|
CSeriousSkaStudioView *GetActiveView(void);
|
||
|
void NotificationMessage(const char *strFormat, ...);
|
||
|
void ErrorMessage(const char *strFormat, ...);
|
||
|
|
||
|
void ReloadRootModelInstance();
|
||
|
void UpdateRootModelInstance();
|
||
|
void ReselectCurrentItem();
|
||
|
void DisableRendering();
|
||
|
void EnableRendering();
|
||
|
INDEX GetDisableRenderRequests();
|
||
|
|
||
|
CModelInstance *OnAddNewModelInstance();
|
||
|
CModelInstance *OnOpenExistingInstance(CTString strModelInstance);
|
||
|
void AddEmptyListsToModelInstance(CModelInstance &mi);
|
||
|
|
||
|
// save root model instance with children and all binary files
|
||
|
void SaveRootModel();
|
||
|
// save as different smc file
|
||
|
void SaveRootModelAs();
|
||
|
// save model instance with children and all binary files
|
||
|
void SaveModel(CModelInstance &mi);
|
||
|
BOOL SaveModelAs(CModelInstance *pmi);
|
||
|
|
||
|
void SaveSmcFile(CModelInstance &mi,BOOL bSaveChildren);
|
||
|
BOOL SaveMeshListFile(MeshInstance &mshi, BOOL bConvert);
|
||
|
BOOL SaveSkeletonListFile(CSkeleton &skl, BOOL bConvert);
|
||
|
BOOL SaveAnimSetFile(CAnimSet &as, BOOL bConvert);
|
||
|
|
||
|
void SaveShaderParams_t(MeshLOD *pmlod,CTFileName fnShaderParams);
|
||
|
void SaveModelInstance_t(CModelInstance *pmi,CModelInstance *pmiParent,CTFileStream &ostrFile,BOOL bSaveChildren);
|
||
|
void SaveMeshInstance_t(MeshInstance &mshi,CTFileStream &ostrFile);
|
||
|
void SaveSkeletonList_t(CSkeleton &skl,CTFileStream &ostrFile);
|
||
|
void SaveAnimSet_t(CAnimSet &as,CTFileStream &ostrFile);
|
||
|
BOOL ConvertAnimationInAnimSet(CAnimSet *pas,Animation *pan);
|
||
|
|
||
|
BOOL ConvertMesh(CTFileName fnMesh);
|
||
|
BOOL ConvertSkeleton(CTFileName fnSkeleton);
|
||
|
BOOL ConvertAnimSet(CTFileName fnAnimSet);
|
||
|
|
||
|
// get pointer to error listctrl
|
||
|
CListCtrl *GetErrorList();
|
||
|
BOOL IsErrorDlgVisible();
|
||
|
SIZE GetLogDlgSize();
|
||
|
INDEX GetErrorDlgWidth();
|
||
|
void ShowErrorDlg(BOOL bShow);
|
||
|
|
||
|
// dockable dialog that with tree
|
||
|
CDlgBarTreeView m_dlgBarTreeView;
|
||
|
// CDlgTemplate m_dlgErrorList;
|
||
|
CDialogBar m_dlgErrorList;
|
||
|
|
||
|
|
||
|
BOOL bAppInitialized;
|
||
|
// array that holds info about every node in tree view
|
||
|
CStaticStackArray<struct NodeInfo> aNodeInfo;
|
||
|
|
||
|
// currently selected bone
|
||
|
INDEX iSelectedBoneID;
|
||
|
// is flag for showing colision boxes tured on
|
||
|
BOOL bShowAnimQueue;
|
||
|
CTextureObject toGroundTexture;
|
||
|
|
||
|
// if a child is maximized only it is draw
|
||
|
BOOL bChildrenMaximized;
|
||
|
|
||
|
CModelInstance *pmiLight;
|
||
|
|
||
|
private:
|
||
|
INDEX ctNoRenderRequests;
|
||
|
|
||
|
|
||
|
// Overrides
|
||
|
// ClassWizard generated virtual function overrides
|
||
|
//{{AFX_VIRTUAL(CSeriousSkaStudioApp)
|
||
|
public:
|
||
|
virtual BOOL InitInstance();
|
||
|
virtual BOOL OnIdle(LONG lCount);
|
||
|
virtual int Run();
|
||
|
virtual int ExitInstance();
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
// Implementation
|
||
|
//{{AFX_MSG(CSeriousSkaStudioApp)
|
||
|
afx_msg void OnAppAbout();
|
||
|
afx_msg void OnFileOpen();
|
||
|
afx_msg void OnFileNew();
|
||
|
afx_msg void OnImportConvert();
|
||
|
//}}AFX_MSG
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
};
|
||
|
|
||
|
extern CSeriousSkaStudioApp theApp;
|
||
|
extern BOOL StartParser(CTString fnParseFile);
|
||
|
|
||
|
// selected model instance in tree view
|
||
|
extern CModelInstance *pmiSelected;
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_INSERT_LOCATION}}
|
||
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||
|
|
||
|
#endif // !defined(AFX_SERIOUSSKASTUDIO_H__0D873E27_F3AF_4EC5_B1AE_B0F330DB5848__INCLUDED_)
|