Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,378 @@
// Bubble.cpp : implementation file
//
#include "stdafx.h"
#include "Bubble.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static CBitmap bmpShadow;
static CBrush brShadow;
#define SHADOW_SIZE 5
/////////////////////////////////////////////////////////////////////////////
// CBubble
// static members
CString CBubble::m_strClassName;
CBubble::CBubble()
{
m_iTextFormat = DT_CENTER;
m_iRowHeight = 0;
m_iImageWidth = 0;
m_iImageHeight = 0;
m_bShadow = FALSE;
}
CBubble::~CBubble()
{
}
BOOL CBubble::Create(CWnd* pWndParent, BOOL bShadow)
{
m_bShadow = bShadow;
// create our bubble window but leave it invisible
// do we need to register the class?
if (m_strClassName.IsEmpty ())
{
// first, create the background brush
CBrush brBrush;
try
{
brBrush.CreateSolidBrush (::GetSysColor (COLOR_INFOBK));
}
catch (CResourceException* pEx)
{
// brush creation failed
pEx->Delete ();
return 0;
}
// register the class name
m_strClassName = ::AfxRegisterWndClass (
CS_BYTEALIGNCLIENT | CS_SAVEBITS | CS_HREDRAW | CS_VREDRAW,
0,
(HBRUSH)brBrush.Detach ());
// we're we successful?
if (m_strClassName.IsEmpty ())
{
return 0;
}
}
// create the bubble window and set the created flag
CRect rect;
rect.SetRectEmpty();
HWND hwndParent = (pWndParent == NULL) ? NULL :
pWndParent->GetSafeHwnd ();
if (!CreateEx (0, m_strClassName, _T (""), WS_POPUP,
rect.left, rect.top, rect.right, rect.bottom,
hwndParent, (HMENU)NULL))
{
return FALSE;
}
if (bmpShadow.GetSafeHandle () == NULL)
{
ASSERT (brShadow.GetSafeHandle () == NULL);
int aPattern[] = {0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55};
bmpShadow.CreateBitmap (8, 8, 1, 1, aPattern);
brShadow.CreatePatternBrush (&bmpShadow);
}
return TRUE;
}
BEGIN_MESSAGE_MAP(CBubble, CWnd)
//{{AFX_MSG_MAP(CBubble)
ON_WM_PAINT()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_SETTEXT, OnSetText)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBubble message handlers
void CBubble::OnPaint()
{
CPaintDC dc(this); // device context for painting
// paint our text, centered in the window
CRect rect;
GetClientRect(rect);
if (m_bShadow)
{
rect.right -= SHADOW_SIZE;
rect.bottom -= SHADOW_SIZE;
}
dc.FillSolidRect (&rect, ::GetSysColor (COLOR_INFOBK));
dc.Draw3dRect (rect, GetSysColor (COLOR_3DSHADOW), GetSysColor (COLOR_3DDKSHADOW));
// select our font and setup for text painting
CFont *pOldFont = (CFont*) dc.SelectStockObject (DEFAULT_GUI_FONT);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(::GetSysColor (COLOR_INFOTEXT));
// paint our text
int y = rect.top + 3 * GetSystemMetrics(SM_CYBORDER);
int x;
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
for (POSITION pos = m_strTextRows.GetHeadPosition (); pos != NULL;)
{
CString strText = m_strTextRows.GetNext (pos);
x = m_iImageWidth + 5;
if (strText [0] == '\r') // Draw a line
{
dc.SelectStockObject (WHITE_PEN);
dc.MoveTo (x, y);
dc.LineTo (rect.right - x, y);
dc.SelectStockObject (BLACK_PEN);
dc.MoveTo (x, y + 1);
dc.LineTo (rect.right - 5, y + 1);
strText = strText.Right (strText.GetLength () - 1);
y += 5;
}
if (strText [0] == '\a' && // Next 2 digits - image number
m_Images.GetSafeHandle () != NULL)
{
int iImage = _ttol (strText.Mid (1, 2));
m_Images.Draw (&dc, iImage, CPoint (3, y), ILD_NORMAL);
strText = strText.Mid (3);
}
CRect rectText = rect;
rectText.top = y;
rectText.left = x;
rectText.bottom = y + tm.tmHeight + tm.tmExternalLeading;
int iFormat = m_iTextFormat | DT_SINGLELINE | DT_VCENTER;
dc.DrawText (strText, rectText, iFormat);
y += m_iRowHeight;
}
// Draw shadow:
if (m_bShadow)
{
dc.SetBkColor(RGB(255,255,255));
brShadow.UnrealizeObject ();
CBrush *pbrOld = (CBrush *) dc.SelectObject (&brShadow);
// bottom shadow
dc.PatBlt (rect.left + SHADOW_SIZE,
rect.bottom,
rect.Width (),
SHADOW_SIZE,
0xA000C9);
// right-side shadow
dc.PatBlt (rect.right,
rect.top + SHADOW_SIZE,
SHADOW_SIZE,
rect.Height (),
0xA000C9);
dc.SelectObject(pbrOld);
}
dc.SelectObject(pOldFont);
}
//*******************************************************************************************
BOOL CBubble::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
//*******************************************************************************************
afx_msg LONG CBubble::OnSetText(UINT, LONG lParam)
{
// resize the bubble window to fit the new string
int i;
m_iTextFormat = DT_CENTER;
//-----------------------------------------------------------
// Parse a text to get bitmaps + lines. For example, if text
// looks "<\a><image1-res-id>text1<\n><\a><image2-res-id>text2",
// we should create a bubble window with tow rows and draw in the
// beggining of each row a specific bitmap:
// (REMARK: image should be placed in the start of row only!)
//-----------------------------------------------------------
CString str ((LPCTSTR) lParam);
m_strTextRows.RemoveAll ();
// compute new size based on string x extent
CClientDC dc(this);
CFont *pOldFont = (CFont*) dc.SelectStockObject (DEFAULT_GUI_FONT);
// get the text metrics
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
m_iRowHeight = max (m_iImageHeight, tm.tmHeight + tm.tmExternalLeading);
int nBubbleHeight = 6*GetSystemMetrics(SM_CYBORDER);
int nMaxWidth = 0;
int nExtraHeight = 0;
CString strTmp = str;
while ((i = strTmp.Find ('\r')) != -1)
{
nExtraHeight += 5;
strTmp = strTmp.Right (strTmp.GetLength () - i - 1);
}
do
{
CString strCurrRow;
if ((i = str.Find ('\n')) == -1)
{
strCurrRow = str; // Whole string
}
else
{
m_iTextFormat = DT_LEFT;
strCurrRow = str.Left (i);
str = str.Right (str.GetLength () - i - 1);
}
if (strCurrRow.IsEmpty ())
{
strCurrRow = " ";
}
m_strTextRows.AddTail (strCurrRow);
int iCurrWidth = m_iImageWidth;
if (strCurrRow [0] == '\a')
{
strCurrRow = strCurrRow.Mid (3);
}
iCurrWidth += dc.GetTextExtent (strCurrRow).cx;
if (iCurrWidth > nMaxWidth)
{
nMaxWidth = iCurrWidth;
}
nBubbleHeight += m_iRowHeight;
}
while (i != -1);
CRect rect;
GetWindowRect(rect); // get current size and position
// compute width
rect.right = rect.left + nMaxWidth + (6*GetSystemMetrics(SM_CXBORDER)) + 10;
// set height
rect.bottom = rect.top + nBubbleHeight + nExtraHeight;
if (m_bShadow)
{
rect.right += SHADOW_SIZE;
rect.bottom += SHADOW_SIZE;
}
MoveWindow(&rect);
// clean up
dc.SelectObject(pOldFont);
// do the default processing
return CWnd::Default();
}
//*******************************************************************************************
void CBubble::Track(CPoint point, const CString& string)
{
if (m_strLastText == string &&
m_ptLastPoint == point)
{
return;
}
// set the text
SetWindowText(string);
// move the window
SetWindowPos(&wndTop, point.x, point.y, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
//-----------------------------------------------
// Adjust the window position by the screen size:
//-----------------------------------------------
CRect rectWindow;
GetWindowRect (rectWindow);
if (rectWindow.right > ::GetSystemMetrics (SM_CXFULLSCREEN))
{
point.x = ::GetSystemMetrics (SM_CXFULLSCREEN) - rectWindow.Width ();
SetWindowPos(&wndTop, point.x, point.y, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
}
if (rectWindow.bottom > ::GetSystemMetrics (SM_CYFULLSCREEN) - 20)
{
point.y = ::GetSystemMetrics (SM_CYFULLSCREEN) - rectWindow.Height () - 20;
SetWindowPos(&wndTop, point.x, point.y, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
}
// show the window
ShowWindow(SW_SHOWNOACTIVATE);
Invalidate ();
UpdateWindow ();
m_strLastText = string;
m_ptLastPoint = point;
}
//*******************************************************************************************
void CBubble::Hide()
{
// hide the bubble window
ShowWindow(SW_HIDE);
m_strLastText.Empty ();
}
//*******************************************************************************************
BOOL CBubble::SetImageList (UINT uiId, int iImageWidth, COLORREF cltTransparent)
{
if (!m_Images.Create (uiId, iImageWidth, 0, cltTransparent))
{
return FALSE;
}
IMAGEINFO info;
m_Images.GetImageInfo (0, &info);
CRect rect = info.rcImage;
m_iImageWidth = rect.Width () + 3;
m_iImageHeight = rect.Height ();
return TRUE;
}

View File

@@ -0,0 +1,81 @@
#if !defined(AFX_BUBBLE_H__BC6DC093_229B_11D1_8F0A_00A0C93A70EC__INCLUDED_)
#define AFX_BUBBLE_H__BC6DC093_229B_11D1_8F0A_00A0C93A70EC__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// Bubble.h : header file
//
#ifndef __AFXCMN_H__
#include <afxcmn.h>
#endif // __AFXCMN_H__
/////////////////////////////////////////////////////////////////////////////
// CBubble window
class CBubble : public CWnd
{
// Construction
public:
CBubble();
// Attributes
private:
static CString m_strClassName; // bubble window class name
CStringList m_strTextRows; // text rows
CString m_strLastText;
CPoint m_ptLastPoint;
CImageList m_Images;
int m_iRowHeight;
int m_iImageWidth;
int m_iImageHeight;
BOOL m_bShadow;
// Operations
public:
BOOL Create(CWnd* pWndParent = NULL, BOOL bShadow = FALSE); // create the bubble window
// request the bubble window to track with the specified text and string resource ID
void Track(CPoint pt, const CString& string);
void Hide(); // hide the bubble window
void SetTextFormat (int iFormat)
{
m_iTextFormat = iFormat;
}
int GetTextFormat () const
{
return m_iTextFormat;
}
BOOL SetImageList (UINT uiId, int iImageWidth = 15, COLORREF cltTransparent = RGB (255, 0, 255));
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBubble)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CBubble();
// Generated message map functions
protected:
//{{AFX_MSG(CBubble)
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
//}}AFX_MSG
afx_msg LONG OnSetText(UINT, LONG lParam);
DECLARE_MESSAGE_MAP()
int m_iTextFormat;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_BUBBLE_H__BC6DC093_229B_11D1_8F0A_00A0C93A70EC__INCLUDED_)

View File

@@ -0,0 +1,63 @@
// ChangeColor.cpp : implementation file
//
#include "stdafx.h"
#include "effecteditor.h"
#include "ChangeColor.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChangeColor dialog
CChangeColor::CChangeColor(CWnd* pParent /*=NULL*/)
: CDialog(CChangeColor::IDD, pParent)
{
//{{AFX_DATA_INIT(CChangeColor)
m_cBlue = 0;
m_cGreen = 0;
m_cRed = 0;
//}}AFX_DATA_INIT
}
void CChangeColor::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChangeColor)
DDX_Text(pDX, IDC_BLUE, m_cBlue);
DDV_MinMaxByte(pDX, m_cBlue, 0, 255);
DDX_Text(pDX, IDC_GREEN, m_cGreen);
DDV_MinMaxByte(pDX, m_cGreen, 0, 255);
DDX_Text(pDX, IDC_RED, m_cRed);
DDV_MinMaxByte(pDX, m_cRed, 0, 255);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChangeColor, CDialog)
//{{AFX_MSG_MAP(CChangeColor)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_CANCLE, OnCancle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChangeColor message handlers
void CChangeColor::OnOk()
{
// TODO: Add your control notification handler code here
UpdateData();
}
void CChangeColor::OnCancle()
{
// TODO: Add your control notification handler code here
}

View File

@@ -0,0 +1,49 @@
#if !defined(AFX_CHANGECOLOR_H__E7737817_C7D9_4A51_A9FF_6D9981E308A9__INCLUDED_)
#define AFX_CHANGECOLOR_H__E7737817_C7D9_4A51_A9FF_6D9981E308A9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ChangeColor.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CChangeColor dialog
class CChangeColor : public CDialog
{
// Construction
public:
CChangeColor(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CChangeColor)
enum { IDD = IDD_BACKCOLOR };
BYTE m_cBlue;
BYTE m_cGreen;
BYTE m_cRed;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChangeColor)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CChangeColor)
afx_msg void OnOk();
afx_msg void OnCancle();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHANGECOLOR_H__E7737817_C7D9_4A51_A9FF_6D9981E308A9__INCLUDED_)

View File

@@ -0,0 +1,27 @@
// Command.cpp: implementation of the CCommand class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effecteditor.h"
#include "Command.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCommand::CCommand()
{
}
CCommand::~CCommand()
{
}

View File

@@ -0,0 +1,93 @@
// Command.h: interface for the CCommand class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_COMMAND_H__F7E9296D_F9FB_4D18_BDA6_878E626C60FC__INCLUDED_)
#define AFX_COMMAND_H__F7E9296D_F9FB_4D18_BDA6_878E626C60FC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vector.h>
#include <vertex.h>
#include <quaternion.h>
#include <z3dmath.h>
#define COMMAND_INSERT 1
#define COMMAND_OLDDATA 2
#define COMMAND_NEWDATA 3
#define COMMAND_DELKEY 4
class CCommand
{
protected:
unsigned long m_dwKind;
unsigned long m_dwUID;
unsigned long m_dwFrame;
unsigned long m_dwCommand;
unsigned long m_dwDataKind;
unsigned long m_dwListKind;
float m_fData;
color m_lData;
vector3 m_vecData;
quaternion m_quatData;
public:
CCommand();
virtual ~CCommand();
void SetCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, float fData)
{
m_dwKind = dwKind;
m_dwUID = dwUID;
m_dwFrame = dwFrame;
m_dwCommand = dwCommand;
m_dwListKind = dwListKind;
m_dwDataKind = 0;
m_fData = fData;
}
void SetCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, color lData)
{
m_dwKind = dwKind;
m_dwUID = dwUID;
m_dwFrame = dwFrame;
m_dwCommand = dwCommand;
m_dwListKind = dwListKind;
m_dwDataKind = 1;
m_lData = lData;
}
void SetCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, vector3 vecData)
{
m_dwKind = dwKind;
m_dwUID = dwUID;
m_dwFrame = dwFrame;
m_dwCommand = dwCommand;
m_dwListKind = dwListKind;
m_dwDataKind = 2;
m_vecData = vecData;
}
void SetCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, quaternion quatData)
{
m_dwKind = dwKind;
m_dwUID = dwUID;
m_dwFrame = dwFrame;
m_dwCommand = dwCommand;
m_dwListKind = dwListKind;
m_dwDataKind = 3;
m_quatData = quatData;
}
unsigned long GetKind(void) { return m_dwKind; }
unsigned long GetUID(void) { return m_dwUID; }
unsigned long GetFrame(void) { return m_dwFrame; }
unsigned long GetCommand(void) { return m_dwCommand; }
unsigned long GetListKind(void) { return m_dwListKind; }
void GetData(float &fData) { fData = m_fData; }
void GetData(color &lData) { lData = m_lData; }
void GetData(vector3 &vecData) { vecData = m_vecData; }
void GetData(quaternion &quatData) { quatData = m_quatData; }
};
#endif // !defined(AFX_COMMAND_H__F7E9296D_F9FB_4D18_BDA6_878E626C60FC__INCLUDED_)

View File

@@ -0,0 +1,121 @@
// CommandManager.cpp: implementation of the CCommandManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effecteditor.h"
#include "CommandManager.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCommandManager::CCommandManager()
{
m_lBottom = 0;
m_lTop = 0;
m_lMemoryTop = 0;
m_lPresent = 0;
}
CCommandManager::~CCommandManager()
{
}
void CCommandManager::AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, float eData)
{
if(m_lPresent == m_lMemoryTop)
{
CCommand AddCommand;
AddCommand.SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lstCommand.Add(AddCommand);
m_lPresent = m_lTop = m_lMemoryTop = m_lstCommand.num;
} else
{
m_lstCommand[m_lPresent].SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lTop = ++m_lPresent;
}
}
void CCommandManager::AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, quaternion eData)
{
if(m_lPresent == m_lMemoryTop)
{
CCommand AddCommand;
AddCommand.SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lstCommand.Add(AddCommand);
m_lPresent = m_lTop = m_lMemoryTop = m_lstCommand.num;
} else
{
m_lstCommand[m_lPresent].SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lTop = ++m_lPresent;
}
}
void CCommandManager::AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, color eData)
{
if(m_lPresent == m_lMemoryTop)
{
CCommand AddCommand;
AddCommand.SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lstCommand.Add(AddCommand);
m_lPresent = m_lTop = m_lMemoryTop = m_lstCommand.num;
} else
{
m_lstCommand[m_lPresent].SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lTop = ++m_lPresent;
}
}
void CCommandManager::AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, vector3 eData)
{
if(m_lPresent == m_lMemoryTop)
{
CCommand AddCommand;
AddCommand.SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lstCommand.Add(AddCommand);
m_lPresent = m_lTop = m_lMemoryTop = m_lstCommand.num;
} else
{
m_lstCommand[m_lPresent].SetCommand(dwKind, dwUID, dwFrame, dwCommand, dwListKind, eData);
m_lTop = ++m_lPresent;
}
}
CCommand *CCommandManager::Undo(void)
{
if(m_lPresent != m_lBottom)
{
m_lPresent--;
if(m_lstCommand[m_lPresent].GetCommand() == COMMAND_NEWDATA)
{
m_lPresent--;
}
return &m_lstCommand[m_lPresent];
} else
{
return NULL;
}
}
CCommand *CCommandManager::Redo(void)
{
if(m_lPresent != m_lTop)
{
if(m_lstCommand[m_lPresent].GetCommand() == COMMAND_NEWDATA)
{
m_lPresent++;
}
return &m_lstCommand[m_lPresent++];
} else
{
return NULL;
}
}

View File

@@ -0,0 +1,37 @@
// CommandManager.h: interface for the CCommandManager class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_COMMANDMANAGER_H__9F8224F9_E04E_4378_8D23_5FC74C33A11E__INCLUDED_)
#define AFX_COMMANDMANAGER_H__9F8224F9_E04E_4378_8D23_5FC74C33A11E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma warning(disable:4786) // don't warn about browse name overflow.
#include "List.h"
#include "Command.h"
class CCommandManager
{
protected:
List<CCommand> m_lstCommand;
long m_lBottom, m_lTop, m_lMemoryTop;
long m_lPresent;
public:
CCommandManager();
virtual ~CCommandManager();
void AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, float eData);
void AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, quaternion eData);
void AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, color eData);
void AddCommand(unsigned long dwKind, unsigned long dwUID, unsigned long dwFrame, unsigned long dwCommand, unsigned long dwListKind, vector3 eData);
CCommand *Undo(void);
CCommand *Redo(void);
};
#endif // !defined(AFX_COMMANDMANAGER_H__9F8224F9_E04E_4378_8D23_5FC74C33A11E__INCLUDED_)

View File

@@ -0,0 +1,27 @@
// CommandProperty.cpp: implementation of the CCommandProperty class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effecteditor.h"
#include "CommandProperty.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCommandProperty::CCommandProperty()
{
}
CCommandProperty::~CCommandProperty()
{
}

View File

@@ -0,0 +1,35 @@
// CommandProperty.h: interface for the CCommandProperty class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_COMMANDPROPERTY_H__6ADC7B7E_1AE5_4E63_8A97_715D12DA3D16__INCLUDED_)
#define AFX_COMMANDPROPERTY_H__6ADC7B7E_1AE5_4E63_8A97_715D12DA3D16__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
template <typename ExecuteData>
class CCommandProperty
{
protected:
unsigned long m_dwKind;
unsigned long m_dwCommand;
ExecuteData m_Data;
public:
CCommandProperty() { };
virtual ~CCommandProperty() { };
void SetCommand(unsigned long dwKind, unsigned long dwCommand, ExecuteData Data)
{
m_dwKind = dwKind;
m_dwCommand = dwCommand;
m_Data = Data;
}
unsigned long GetKind(void) { return m_dwKind; }
unsigned long GetCommand(void) { return m_dwCommand; }
ExecuteData GetData(void) { return m_Data; }
};
#endif // !defined(AFX_COMMANDPROPERTY_H__6ADC7B7E_1AE5_4E63_8A97_715D12DA3D16__INCLUDED_)

View File

@@ -0,0 +1,144 @@
// CusEdit.cpp : implementation file
//
#include "stdafx.h"
#include "effectEditor.h"
#include "CusEdit.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCusEdit
CCusEdit::CCusEdit()
{
m_br = NULL;
}
CCusEdit::~CCusEdit()
{
if(m_br) DeleteObject(m_br);
}
BEGIN_MESSAGE_MAP(CCusEdit, CEdit)
//{{AFX_MSG_MAP(CCusEdit)
ON_WM_CTLCOLOR_REFLECT()
ON_WM_SETFOCUS()
ON_WM_KILLFOCUS()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCusEdit message handlers
HBRUSH CCusEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
if(m_bEnableBkColor)
{
pDC->SetBkColor(m_BkABGR);
pDC->SetTextColor(m_TextABGR);
return m_br;
}
return NULL;
}
void CCusEdit::OnSetFocus(CWnd* pOldWnd)
{
CEdit::OnSetFocus(pOldWnd);
// TODO: Add your message handler code here
Invalidate();
}
void CCusEdit::OnKillFocus(CWnd* pNewWnd)
{
CEdit::OnKillFocus(pNewWnd);
// TODO: Add your message handler code here
Invalidate();
}
void CCusEdit::SetBkColor(COLORREF BkABGR, COLORREF TextABGR)
{
if(m_br) DeleteObject(m_br);
m_br = CreateSolidBrush(BkABGR);
m_BkABGR = BkABGR;
m_TextABGR = TextABGR;
m_bEnableBkColor = TRUE;
}
void CCusEdit::DisableBkColor(void)
{
m_bEnableBkColor = FALSE;
}
void CCusEdit::SetValue(float fValue)
{
char strChar[256];
sprintf(strChar, "%f", fValue);
SetWindowText(strChar);
}
void CCusEdit::SetValue(unsigned char cValue)
{
char strChar[256];
sprintf(strChar, "%d", cValue);
SetWindowText(strChar);
}
void CCusEdit::SetValue(unsigned long dwValue)
{
char strChar[256];
sprintf(strChar, "%u", dwValue);
SetWindowText(strChar);
}
CCusEdit::operator float(void) const
{
CString strValue;
GetWindowText(strValue);
return (float)atof(strValue.GetBuffer(0));
}
CCusEdit::operator unsigned char(void) const
{
CString strValue;
GetWindowText(strValue);
return (unsigned char)atof(strValue.GetBuffer(0));
}
CCusEdit::operator unsigned long(void) const
{
CString strValue;
GetWindowText(strValue);
return (unsigned long)atof(strValue.GetBuffer(0));
}
CCusEdit::operator const char *(void) const
{
CString strValue;
GetWindowText(strValue);
return (const char *)strValue;
}
void CCusEdit::operator=(float const &rhs)
{
char strChar[256];
sprintf(strChar, "%f", rhs);
SetWindowText(strChar);
}
void CCusEdit::operator=(unsigned char const &rhs)
{
char strChar[256];
sprintf(strChar, "%d", rhs);
SetWindowText(strChar);
}

View File

@@ -0,0 +1,67 @@
#if !defined(AFX_CUSEDIT_H__CD4D8BC1_C9B7_4CA0_A75C_D61D9C79F29F__INCLUDED_)
#define AFX_CUSEDIT_H__CD4D8BC1_C9B7_4CA0_A75C_D61D9C79F29F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CusEdit.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CCusEdit window
class CCusEdit : public CEdit
{
// Construction
public:
CCusEdit();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCusEdit)
//}}AFX_VIRTUAL
// Implementation
public:
void SetValue(unsigned long dwValue);
void SetValue(unsigned char cValue);
void SetValue(float fValue);
void DisableBkColor(void);
void SetBkColor(COLORREF BkABGR = 0x00FFFFFF, COLORREF TextABGR = 0x00000000);
virtual ~CCusEdit();
operator float(void) const;
operator unsigned char(void) const;
operator unsigned long(void) const;
operator const char *(void) const;
void operator=(float const &rhs);
void operator=(unsigned char const &rhs);
// Generated message map functions
protected:
COLORREF m_TextABGR;
BOOL m_bEnableBkColor;
COLORREF m_BkABGR;
HBRUSH m_br;
//{{AFX_MSG(CCusEdit)
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
afx_msg void OnSetFocus(CWnd* pOldWnd);
afx_msg void OnKillFocus(CWnd* pNewWnd);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CUSEDIT_H__CD4D8BC1_C9B7_4CA0_A75C_D61D9C79F29F__INCLUDED_)

View File

@@ -0,0 +1,92 @@
// DialogBarEx.cpp : implementation file
//
#include "stdafx.h"
//#include "DialogbarDemo.h"
#include "DialogBarEx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDialogBarEx
/*
Class written by Sharad Kelkar drssk@ad1.vsnl.net.in
This is freeware without any kind of restriction on usage
and distribution.
*/
#define WM_INITDIALOGBAR WM_USER + 1
BEGIN_MESSAGE_MAP(CDialogBarEx, CDialogBar)
//{{AFX_MSG_MAP(CDialogBarEx)
ON_MESSAGE(WM_INITDIALOGBAR , InitDialogBarHandler )
ON_WM_CREATE()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CDialogBarEx::CDialogBarEx()
{
}
CDialogBarEx::~CDialogBarEx()
{
}
// Note from Sharad Kelkar
// We have manualy added entry ON_MESSAGE(WM_INITDIALOGBAR , InitDialogBarHandler)
// as there is not automatic help from Class Wizard
/////////////////////////////////////////////////////////////////////////////
// CDialogBarEx message handlers
int CDialogBarEx::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialogBar::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
// ---------
// We post WM_INITDIALOGBAR message here to dialog bar
PostMessage(WM_INITDIALOGBAR , 0 , 0 );
return 0;
}
LRESULT CDialogBarEx::InitDialogBarHandler(WPARAM wParam, LPARAM lParam)
{
UpdateData(FALSE);
OnInitDialogBar() ;
return S_OK;
}
// Notes from Sharad Kelkar
// OnInitDialogBar is Just empty function it is
// expected to be overriden from derived class
void CDialogBarEx::OnInitDialogBar()
{
// TODO
// Add your custom initialization code here.
}
void CDialogBarEx::OnDestroy()
{
Destory();
CDialogBar::OnDestroy();
// TODO: Add your message handler code here
}
void CDialogBarEx::Destory()
{
}

View File

@@ -0,0 +1,61 @@
#if !defined(AFX_DIALOGBAREX_H__D614B256_C5EC_11D2_B8C5_B41E04C10000__INCLUDED_)
#define AFX_DIALOGBAREX_H__D614B256_C5EC_11D2_B8C5_B41E04C10000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// DialogBarEx.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CDialogBarEx window
/*
Class written by Sharad Kelkar drssk@ad1.vsnl.net.in
This is freeware without any kind of restriction on usage
and distribution.
*/
class CDialogBarEx : public CDialogBar
{
// Construction
public:
CDialogBarEx();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDialogBarEx)
//}}AFX_VIRTUAL
// Implementation
public:
virtual void Destory();
virtual void OnInitDialogBar();
virtual ~CDialogBarEx();
// Generated message map functions
// Note from Sharad Kelkar
// We have manually added entry afx_msg InitDialogBarHandler
// as it was not done automatically by Class Wizard
protected:
//{{AFX_MSG(CDialogBarEx)
afx_msg LRESULT InitDialogBarHandler( WPARAM wParam , LPARAM lParam );
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DIALOGBAREX_H__D614B256_C5EC_11D2_B8C5_B41E04C10000__INCLUDED_)

View File

@@ -0,0 +1,42 @@
// EffectBar.cpp: implementation of the CEffectBar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "EffectEditor.h"
#include "EffectBar.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CEffectBar::CEffectBar()
{
}
CEffectBar::~CEffectBar()
{
}
void CEffectBar::Destory()
{
m_lpEffectSheet->DestroyWindow();
delete m_lpEffectSheet;
}
void CEffectBar::OnInitDialogBar()
{
m_lpEffectSheet=new CEffectSheet("Belldandy");
m_lpEffectSheet->Create(this, WS_CHILD | WS_VISIBLE, 0);
m_lpEffectSheet->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
m_lpEffectSheet->ModifyStyle(0, WS_TABSTOP);
m_lpEffectSheet->MoveWindow(0, 0, 1000, 1000);
}

View File

@@ -0,0 +1,25 @@
// EffectBar.h: interface for the CEffectBar class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EFFECTBAR_H__AA9A43DD_2BD7_41E6_A946_7B55DAEEF6B6__INCLUDED_)
#define AFX_EFFECTBAR_H__AA9A43DD_2BD7_41E6_A946_7B55DAEEF6B6__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "DialogBarEx.h"
#include "EffectSheet.h" // Added by ClassView
class CEffectBar : public CDialogBarEx
{
public:
CEffectSheet *m_lpEffectSheet;
CEffectBar();
virtual ~CEffectBar();
virtual void Destory();
virtual void OnInitDialogBar();
};
#endif // !defined(AFX_EFFECTBAR_H__AA9A43DD_2BD7_41E6_A946_7B55DAEEF6B6__INCLUDED_)

Binary file not shown.

View File

@@ -0,0 +1,745 @@
; CLW file contains information for the MFC ClassWizard
[General Info]
Version=1
LastClass=CKeyPage
LastTemplate=CPropertyPage
NewFileInclude1=#include "stdafx.h"
NewFileInclude2=#include "effecteditor.h"
LastPage=0
ClassCount=19
Class1=CCusEdit
Class2=CDialogBarEx
Class3=CEffectEditorApp
Class4=CAboutDlg
Class5=CEffectEditorDoc
Class6=CEffectEditorView
Class7=CParticlePage
Class8=CBillboardPage
Class9=CCylinderPage
Class10=CPlanePage
Class11=CEffectSheet
Class12=CKeyPage
Class13=CScenarioPage
Class14=CKeySheet
Class15=CMainFrame
Class16=CSpherePage
ResourceCount=13
Resource1=IDD_ABOUTBOX
Resource2=IDD_BACKCOLOR (English (U.S.))
Resource3=IDD_KEYBAR (English (U.S.))
Resource4=IDD_KEY
Resource5=IDD_SPHERE (English (U.S.))
Resource6=IDD_CYLINDER
Resource7=IDD_PARTICLE (English (U.S.))
Resource8=IDD_EFFECTBAR (English (U.S.))
Resource9=IDD_SCENARIOBAR (English (U.S.))
Resource10=IDD_PLANE (English (U.S.))
Class17=CPointSlider
Resource11=IDR_MAINFRAME
Class18=CChangeColor
Resource12=IDD_BILLBOARD
Class19=CMeshPage
Resource13=IDD_MESH (English (U.S.))
[CLS:CCusEdit]
Type=0
BaseClass=CEdit
HeaderFile=CusEdit.h
ImplementationFile=CusEdit.cpp
LastObject=CCusEdit
[CLS:CDialogBarEx]
Type=0
BaseClass=CDialogBar
HeaderFile=DialogBarEx.h
ImplementationFile=DialogBarEx.cpp
[CLS:CEffectEditorApp]
Type=0
BaseClass=CWinApp
HeaderFile=EffectEditor.h
ImplementationFile=EffectEditor.cpp
[CLS:CAboutDlg]
Type=0
BaseClass=CDialog
HeaderFile=EffectEditor.cpp
ImplementationFile=EffectEditor.cpp
LastObject=CAboutDlg
[CLS:CEffectEditorDoc]
Type=0
BaseClass=CDocument
HeaderFile=EffectEditorDoc.h
ImplementationFile=EffectEditorDoc.cpp
[CLS:CEffectEditorView]
Type=0
BaseClass=CView
HeaderFile=EffectEditorView.h
ImplementationFile=EffectEditorView.cpp
Filter=C
VirtualFilter=VWC
LastObject=ID_CHAR_ROUND_SWING
[CLS:CParticlePage]
Type=0
BaseClass=CPropertyPage
HeaderFile=EffectPage.h
ImplementationFile=EffectPage.cpp
Filter=D
VirtualFilter=idWC
LastObject=CParticlePage
[CLS:CBillboardPage]
Type=0
BaseClass=CPropertyPage
HeaderFile=EffectPage.h
ImplementationFile=EffectPage.cpp
Filter=D
VirtualFilter=idWC
LastObject=CBillboardPage
[CLS:CCylinderPage]
Type=0
BaseClass=CPropertyPage
HeaderFile=EffectPage.h
ImplementationFile=EffectPage.cpp
Filter=D
VirtualFilter=idWC
LastObject=IDC_TEXFRAME
[CLS:CPlanePage]
Type=0
BaseClass=CPropertyPage
HeaderFile=EffectPage.h
ImplementationFile=EffectPage.cpp
Filter=D
VirtualFilter=idWC
LastObject=CPlanePage
[CLS:CEffectSheet]
Type=0
BaseClass=CPropertySheet
HeaderFile=EffectSheet.h
ImplementationFile=EffectSheet.cpp
[CLS:CKeyPage]
Type=0
BaseClass=CPropertyPage
HeaderFile=KeyPage.h
ImplementationFile=KeyPage.cpp
LastObject=IDC_WAV
Filter=D
VirtualFilter=idWC
[CLS:CScenarioPage]
Type=0
BaseClass=CPropertyPage
HeaderFile=KeyPage.h
ImplementationFile=KeyPage.cpp
[CLS:CKeySheet]
Type=0
BaseClass=CPropertySheet
HeaderFile=KeySheet.h
ImplementationFile=KeySheet.cpp
[CLS:CMainFrame]
Type=0
BaseClass=CFrameWnd
HeaderFile=MainFrm.h
ImplementationFile=MainFrm.cpp
LastObject=CMainFrame
[CLS:CSpherePage]
Type=0
BaseClass=CPropertyPage
HeaderFile=SpherePage.h
ImplementationFile=SpherePage.cpp
Filter=D
VirtualFilter=idWC
[DLG:IDD_ABOUTBOX]
Type=1
Class=CAboutDlg
ControlCount=4
Control1=IDC_STATIC,static,1342177283
Control2=IDC_STATIC,static,1342308480
Control3=IDC_STATIC,static,1342308352
Control4=IDOK,button,1342373889
[DLG:IDD_PARTICLE]
Type=1
Class=CParticlePage
[DLG:IDD_BILLBOARD]
Type=1
Class=CBillboardPage
ControlCount=59
Control1=IDC_TEXTURE,edit,1350631552
Control2=IDC_BROWSE,button,1342242816
Control3=IDC_AXISX,edit,1350631552
Control4=IDC_AXISY,edit,1350631552
Control5=IDC_AXISZ,edit,1350631552
Control6=IDC_CENX,edit,1350631552
Control7=IDC_CENY,edit,1350631552
Control8=IDC_CENZ,edit,1350631552
Control9=IDC_WIDTH,edit,1350631552
Control10=IDC_HEIGHT,edit,1350631552
Control11=IDC_ALPHA,edit,1350631552
Control12=IDC_COLR,edit,1350631552
Control13=IDC_COLG,edit,1350631552
Control14=IDC_COLB,edit,1350631552
Control15=IDC_STARTFRAME,edit,1350631552
Control16=IDC_ENDFRAME,edit,1350631552
Control17=IDC_STARTU,edit,1350631552
Control18=IDC_STARTV,edit,1350631552
Control19=IDC_TILEU,edit,1350631552
Control20=IDC_TILEV,edit,1350631552
Control21=IDC_CREATE,button,1342242816
Control22=IDC_DELETE,button,1342242816
Control23=IDC_STATIC,button,1342177287
Control24=IDC_STATIC,static,1342308352
Control25=IDC_STATIC,static,1342308352
Control26=IDC_STATIC,static,1342308352
Control27=IDC_STATIC,static,1342308352
Control28=IDC_STATIC,static,1342308352
Control29=IDC_STATIC,static,1342308352
Control30=IDC_STATIC,static,1342308352
Control31=IDC_STATIC,static,1342308352
Control32=IDC_STATIC,static,1342308352
Control33=IDC_STATIC,static,1342308352
Control34=IDC_STATIC,static,1342308352
Control35=IDC_STATIC,static,1342308352
Control36=IDC_STATIC,static,1342308352
Control37=IDC_STATIC,static,1342308352
Control38=IDC_STATIC,static,1342308352
Control39=IDC_STATIC,static,1342308352
Control40=IDC_STATIC,static,1342308352
Control41=IDC_STATIC,static,1342308352
Control42=IDC_STATIC,static,1342308354
Control43=IDC_STATIC,static,1342308354
Control44=IDC_STATIC,button,1342177287
Control45=IDC_STATIC,static,1342308354
Control46=IDC_STATIC,static,1342308354
Control47=IDC_TEXSTATIC,button,1342177289
Control48=IDC_TEXANI,button,1342177289
Control49=IDC_STATIC,static,1342308352
Control50=IDC_TEXFRAME,edit,1350631552
Control51=IDC_AXISALIGNED,button,1342242819
Control52=IDC_CBSRC,combobox,1344348163
Control53=IDC_CBADDRESSU,combobox,1344348163
Control54=IDC_CBDEST,combobox,1344348163
Control55=IDC_STATIC,static,1342308352
Control56=IDC_STATIC,static,1342308352
Control57=IDC_STATIC,static,1342308352
Control58=IDC_CBADDRESSV,combobox,1344348163
Control59=IDC_STATIC,static,1342308352
[DLG:IDD_CYLINDER]
Type=1
Class=CCylinderPage
ControlCount=62
Control1=IDC_TEXTURE,edit,1350631552
Control2=IDC_BROWSE,button,1342242816
Control3=IDC_AXISX,edit,1350631552
Control4=IDC_AXISY,edit,1350631552
Control5=IDC_AXISZ,edit,1350631552
Control6=IDC_CENX,edit,1350631552
Control7=IDC_CENY,edit,1350631552
Control8=IDC_CENZ,edit,1350631552
Control9=IDC_UPPERHEIGHT,edit,1350631552
Control10=IDC_LOWERHEIGHT,edit,1350631552
Control11=IDC_ALPHA,edit,1350631552
Control12=IDC_COLR,edit,1350631552
Control13=IDC_COLG,edit,1350631552
Control14=IDC_COLB,edit,1350631552
Control15=IDC_STARTFRAME,edit,1350631552
Control16=IDC_ENDFRAME,edit,1350631552
Control17=IDC_STARTU,edit,1350631552
Control18=IDC_STARTV,edit,1350631552
Control19=IDC_TILEU,edit,1350631552
Control20=IDC_TILEV,edit,1350631552
Control21=IDC_CREATE,button,1342242816
Control22=IDC_DELETE,button,1342242816
Control23=IDC_STATIC,button,1342177287
Control24=IDC_STATIC,static,1342308352
Control25=IDC_STATIC,static,1342308352
Control26=IDC_STATIC,static,1342308352
Control27=IDC_STATIC,static,1342308352
Control28=IDC_STATIC,static,1342308352
Control29=IDC_STATIC,static,1342308352
Control30=IDC_STATIC,static,1342308352
Control31=IDC_STATIC,static,1342308352
Control32=IDC_STATIC,static,1342308352
Control33=IDC_STATIC,static,1342308352
Control34=IDC_STATIC,static,1342308352
Control35=IDC_STATIC,static,1342308352
Control36=IDC_STATIC,static,1342308352
Control37=IDC_STATIC,static,1342308352
Control38=IDC_STATIC,static,1342308352
Control39=IDC_STATIC,static,1342308352
Control40=IDC_STATIC,static,1342308352
Control41=IDC_STATIC,static,1342308352
Control42=IDC_STATIC,static,1342308354
Control43=IDC_STATIC,static,1342308354
Control44=IDC_STATIC,button,1342177287
Control45=IDC_STATIC,static,1342308354
Control46=IDC_STATIC,static,1342308354
Control47=IDC_TEXSTATIC,button,1342177289
Control48=IDC_UPPERRADIUS,edit,1350631552
Control49=IDC_LOWERRADIUS,edit,1350631552
Control50=IDC_STATIC,static,1342308352
Control51=IDC_SIDEPLANE,edit,1350631552
Control52=IDC_TEXANI,button,1342177289
Control53=IDC_STATIC,static,1342308352
Control54=IDC_TEXFRAME,edit,1350631552
Control55=IDC_CBSRC,combobox,1344348163
Control56=IDC_CBADDRESSU,combobox,1344348163
Control57=IDC_CBDEST,combobox,1344348163
Control58=IDC_STATIC,static,1342308352
Control59=IDC_STATIC,static,1342308352
Control60=IDC_STATIC,static,1342308352
Control61=IDC_CBADDRESSV,combobox,1344348163
Control62=IDC_STATIC,static,1342308352
[DLG:IDD_PLANE]
Type=1
Class=CPlanePage
[DLG:IDD_KEY]
Type=1
Class=CKeyPage
ControlCount=20
Control1=IDC_STATIC,static,1342308352
Control2=IDC_TOTALFRAME,edit,1350631552
Control3=IDC_PREFRAME,edit,1350631552
Control4=IDC_KEYSLIDER,msctls_trackbar32,1342242820
Control5=IDC_PLAY,button,1342242816
Control6=IDC_STATIC,static,1342308352
Control7=IDC_FRAMESEC,edit,1350631552
Control8=IDC_STATIC,static,1342308352
Control9=IDC_LOOP,button,1342242819
Control10=IDC_STOP,button,1342242816
Control11=IDC_POINTSLIDER,msctls_trackbar32,1342242872
Control12=IDC_STATIC,static,1342308352
Control13=IDC_RED,edit,1350631552
Control14=IDC_GREEN,edit,1350631552
Control15=IDC_BLUE,edit,1350631552
Control16=IDC_STATIC,static,1342308352
Control17=IDC_INCFRAME,edit,1350631552
Control18=IDC_WAVNAME,edit,1350631552
Control19=IDC_STATIC,static,1342308352
Control20=IDC_WAV,button,1342242816
[DLG:IDD_SCENARIOBAR]
Type=1
Class=CScenarioPage
[DLG:IDD_SPHERE]
Type=1
Class=CSpherePage
[MNU:IDR_MAINFRAME]
Type=1
Class=?
Command1=ID_FILE_NEW
Command2=ID_FILE_OPEN
Command3=ID_FILE_SAVE
Command4=ID_FILE_SAVE_AS
Command5=ID_FILE_MRU_FILE1
Command6=ID_APP_EXIT
Command7=ID_CHAR_VISIBLE
Command8=ID_CHAR_INVISIBLE
Command9=ID_CHAR_NORMAL
Command10=ID_CHAR_BATTLE
Command11=ID_CHAR_NOWEAPONB
Command12=ID_CHAR_ONEHAND
Command13=ID_CHAR_TWOHAND
Command14=ID_CHAR_BLUNT
Command15=ID_CHAR_BOW
Command16=ID_CHAR_DAGGER
Command17=ID_CHAR_CROSSBOW
Command18=ID_CHAR_WAIT
Command19=ID_CHAR_WALK
Command20=ID_CHAR_BACK
Command21=ID_CHAR_LEFT
Command22=ID_CHAR_RIGHT
Command23=ID_CHAR_RUN
Command24=ID_CHAR_ATTACK
Command25=ID_CHAR_ATTACK_LEFT
Command26=ID_CHAR_ATTACK_RIGHT
Command27=ID_CHAR_ATTACK_ADVANCE
Command28=ID_CHAR_ATTACK_RETREAT
Command29=ID_CHAR_ATTACKED
Command30=ID_CHAR_FALLDOWN
Command31=ID_CHAR_STUN
Command32=ID_CHAR_CAST_BEGIN
Command33=ID_CHAR_CASTING
Command34=ID_CHAR_CASTING2
Command35=ID_CHAR_CRIP_WEAPON
Command36=ID_CHAR_TAKE_OUT_WEAPON
Command37=ID_CHAR_PUT_IN_WEAPON
Command38=ID_CHAR_RESTORE_HAND
Command39=ID_CHAR_SIT_DOWN
Command40=ID_CHAR_REST
Command41=ID_CHAR_GET_UP
Command42=ID_CHAR_M_CAST_BEGIN
Command43=ID_CHAR_M_CASTING1
Command44=ID_CHAR_M_CASTING2
Command45=ID_CHAR_BASH
Command46=ID_CHAR_BLOW
Command47=ID_CHAR_ROUND_SWING
Command48=ID_EDIT_UNDO
Command49=ID_EDIT_REDO
Command50=ID_EDIT_CUT
Command51=ID_EDIT_COPY
Command52=ID_EDIT_PASTE
Command53=ID_APP_ABOUT
CommandCount=53
[ACL:IDR_MAINFRAME]
Type=1
Class=?
Command1=ID_EDIT_REDO
Command2=ID_EDIT_COPY
Command3=ID_FILE_NEW
Command4=ID_FILE_OPEN
Command5=ID_FILE_SAVE
Command6=ID_EDIT_PASTE
Command7=ID_EDIT_CUT
Command8=ID_NEXT_PANE
Command9=ID_PREV_PANE
Command10=ID_EDIT_COPY
Command11=ID_EDIT_PASTE
Command12=ID_EDIT_CUT
Command13=ID_EDIT_UNDO
CommandCount=13
[DLG:IDD_PARTICLE (English (U.S.))]
Type=1
Class=?
ControlCount=84
Control1=IDC_STATIC,button,1342177287
Control2=IDC_STATIC,static,1342308352
Control3=IDC_STATIC,static,1342308352
Control4=IDC_STATIC,static,1342308352
Control5=IDC_STATIC,static,1342308352
Control6=IDC_STATIC,static,1342308352
Control7=IDC_STATIC,static,1342308352
Control8=IDC_STATIC,static,1342308354
Control9=IDC_STATIC,static,1342308354
Control10=IDC_STATIC,static,1342308354
Control11=IDC_STATIC,static,1342308354
Control12=IDC_STATIC,static,1342308352
Control13=IDC_STATIC,static,1342308352
Control14=IDC_STATIC,static,1342308352
Control15=IDC_STATIC,static,1342308354
Control16=IDC_STATIC,static,1342308354
Control17=IDC_STATIC,static,1342308352
Control18=IDC_STATIC,static,1342308352
Control19=IDC_STATIC,static,1342308352
Control20=IDC_STATIC,static,1342308352
Control21=IDC_TEXTURE,edit,1350631552
Control22=IDC_BROWSE,button,1342242816
Control23=IDC_AXISX,edit,1350631552
Control24=IDC_AXISY,edit,1350631552
Control25=IDC_AXISZ,edit,1350631552
Control26=IDC_CENX,edit,1350631552
Control27=IDC_CENY,edit,1350631552
Control28=IDC_CENZ,edit,1350631552
Control29=IDC_AMOUNT,edit,1350631552
Control30=IDC_POWER,edit,1350631552
Control31=IDC_ANGLE,edit,1350631552
Control32=IDC_ALPHA,edit,1350631552
Control33=IDC_STARTFRAME,edit,1350631552
Control34=IDC_ENDFRAME,edit,1350631552
Control35=IDC_EFORCEX,edit,1350631552
Control36=IDC_EFORCEY,edit,1350631552
Control37=IDC_EFORCEZ,edit,1350631552
Control38=IDC_CREATE,button,1342242816
Control39=IDC_DELETE,button,1342242816
Control40=IDC_STATIC,static,1342308352
Control41=IDC_STATIC,static,1342308352
Control42=IDC_STATIC,static,1342308352
Control43=IDC_LIFETIME,edit,1350631552
Control44=IDC_LIFETIMESEED,edit,1350631552
Control45=IDC_POWERSEED,edit,1350631552
Control46=IDC_VOLX,edit,1350631552
Control47=IDC_VOLY,edit,1350631552
Control48=IDC_VOLZ,edit,1350631552
Control49=IDC_NOVOLUME,button,1342177289
Control50=IDC_SQUAREVOLUME,button,1342177289
Control51=IDC_CIRCLEVOLUME,button,1342177289
Control52=IDC_RADIUS,edit,1350631552
Control53=IDC_INNERRADIUS,edit,1350631552
Control54=IDC_STATIC,static,1342308352
Control55=IDC_DIRX,edit,1350631552
Control56=IDC_DIRY,edit,1350631552
Control57=IDC_DIRZ,edit,1350631552
Control58=IDC_STATIC,button,1342177287
Control59=IDC_STATIC,static,1342308354
Control60=IDC_STATIC,static,1342308354
Control61=IDC_STATIC,static,1342308354
Control62=IDC_STATIC,static,1342308352
Control63=IDC_STATIC,static,1342308354
Control64=IDC_ROTATION,edit,1350631552
Control65=IDC_WIDTH,edit,1350631552
Control66=IDC_COLR,edit,1350631552
Control67=IDC_COLG,edit,1350631552
Control68=IDC_COLB,edit,1350631552
Control69=IDC_TEXSPEED,edit,1350631552
Control70=IDC_STATIC,static,1342308352
Control71=IDC_STATIC,static,1342308352
Control72=IDC_STATIC,static,1342308352
Control73=IDC_HEIGHT,edit,1350631552
Control74=IDC_STATIC,static,1342308352
Control75=IDC_SCEALPHA,edit,1350631552
Control76=IDC_CONTINUOUS,button,1342242819
Control77=IDC_CBSRC,combobox,1344348163
Control78=IDC_CBADDRESSU,combobox,1344348163
Control79=IDC_CBDEST,combobox,1344348163
Control80=IDC_STATIC,static,1342308352
Control81=IDC_STATIC,static,1342308352
Control82=IDC_STATIC,static,1342308352
Control83=IDC_CBADDRESSV,combobox,1344348163
Control84=IDC_STATIC,static,1342308352
[DLG:IDD_PLANE (English (U.S.))]
Type=1
Class=?
ControlCount=58
Control1=IDC_TEXTURE,edit,1350631552
Control2=IDC_BROWSE,button,1342242816
Control3=IDC_AXISX,edit,1350631552
Control4=IDC_AXISY,edit,1350631552
Control5=IDC_AXISZ,edit,1350631552
Control6=IDC_CENX,edit,1350631552
Control7=IDC_CENY,edit,1350631552
Control8=IDC_CENZ,edit,1350631552
Control9=IDC_WIDTH,edit,1350631552
Control10=IDC_HEIGHT,edit,1350631552
Control11=IDC_ALPHA,edit,1350631552
Control12=IDC_COLR,edit,1350631552
Control13=IDC_COLG,edit,1350631552
Control14=IDC_COLB,edit,1350631552
Control15=IDC_STARTFRAME,edit,1350631552
Control16=IDC_ENDFRAME,edit,1350631552
Control17=IDC_STARTU,edit,1350631552
Control18=IDC_STARTV,edit,1350631552
Control19=IDC_TILEU,edit,1350631552
Control20=IDC_TILEV,edit,1350631552
Control21=IDC_CREATE,button,1342242816
Control22=IDC_DELETE,button,1342242816
Control23=IDC_STATIC,button,1342177287
Control24=IDC_STATIC,static,1342308352
Control25=IDC_STATIC,static,1342308352
Control26=IDC_STATIC,static,1342308352
Control27=IDC_STATIC,static,1342308352
Control28=IDC_STATIC,static,1342308352
Control29=IDC_STATIC,static,1342308352
Control30=IDC_STATIC,static,1342308352
Control31=IDC_STATIC,static,1342308352
Control32=IDC_STATIC,static,1342308352
Control33=IDC_STATIC,static,1342308352
Control34=IDC_STATIC,static,1342308352
Control35=IDC_STATIC,static,1342308352
Control36=IDC_STATIC,static,1342308352
Control37=IDC_STATIC,static,1342308352
Control38=IDC_STATIC,static,1342308352
Control39=IDC_STATIC,static,1342308352
Control40=IDC_STATIC,static,1342308352
Control41=IDC_STATIC,static,1342308352
Control42=IDC_STATIC,static,1342308354
Control43=IDC_STATIC,static,1342308354
Control44=IDC_STATIC,button,1342177287
Control45=IDC_STATIC,static,1342308354
Control46=IDC_STATIC,static,1342308354
Control47=IDC_TEXSTATIC,button,1342177289
Control48=IDC_TEXANI,button,1342177289
Control49=IDC_STATIC,static,1342308352
Control50=IDC_TEXFRAME,edit,1350631552
Control51=IDC_CBSRC,combobox,1344348163
Control52=IDC_CBADDRESSU,combobox,1344348163
Control53=IDC_CBDEST,combobox,1344348163
Control54=IDC_STATIC,static,1342308352
Control55=IDC_STATIC,static,1342308352
Control56=IDC_STATIC,static,1342308352
Control57=IDC_CBADDRESSV,combobox,1344348163
Control58=IDC_STATIC,static,1342308352
[DLG:IDD_SCENARIOBAR (English (U.S.))]
Type=1
Class=?
ControlCount=3
Control1=IDC_KEYSLIDER,msctls_trackbar32,1342242820
Control2=IDC_STATIC,static,1342308352
Control3=IDC_PREPRO,edit,1350631552
[DLG:IDD_KEYBAR (English (U.S.))]
Type=1
Class=?
ControlCount=0
[DLG:IDD_EFFECTBAR (English (U.S.))]
Type=1
Class=?
ControlCount=0
[DLG:IDD_SPHERE (English (U.S.))]
Type=1
Class=?
ControlCount=72
Control1=IDC_TEXTURE,edit,1350631552
Control2=IDC_BROWSE,button,1342242816
Control3=IDC_AXISX,edit,1350631552
Control4=IDC_AXISY,edit,1350631552
Control5=IDC_AXISZ,edit,1350631552
Control6=IDC_CENX,edit,1350631552
Control7=IDC_CENY,edit,1350631552
Control8=IDC_CENZ,edit,1350631552
Control9=IDC_ALPHA,edit,1350631552
Control10=IDC_COLR,edit,1350631552
Control11=IDC_COLG,edit,1350631552
Control12=IDC_COLB,edit,1350631552
Control13=IDC_STARTFRAME,edit,1350631552
Control14=IDC_ENDFRAME,edit,1350631552
Control15=IDC_STARTU,edit,1350631552
Control16=IDC_STARTV,edit,1350631552
Control17=IDC_TILEU,edit,1350631552
Control18=IDC_TILEV,edit,1350631552
Control19=IDC_CREATE,button,1342242816
Control20=IDC_DELETE,button,1342242816
Control21=IDC_STATIC,button,1342177287
Control22=IDC_STATIC,static,1342308352
Control23=IDC_STATIC,static,1342308352
Control24=IDC_STATIC,static,1342308352
Control25=IDC_STATIC,static,1342308352
Control26=IDC_STATIC,static,1342308352
Control27=IDC_STATIC,static,1342308352
Control28=IDC_STATIC,static,1342308352
Control29=IDC_STATIC,static,1342308352
Control30=IDC_STATIC,static,1342308352
Control31=IDC_STATIC,static,1342308352
Control32=IDC_STATIC,static,1342308352
Control33=IDC_STATIC,static,1342308352
Control34=IDC_STATIC,static,1342308352
Control35=IDC_STATIC,static,1342308352
Control36=IDC_STATIC,static,1342308352
Control37=IDC_STATIC,static,1342308352
Control38=IDC_STATIC,static,1342308354
Control39=IDC_STATIC,static,1342308354
Control40=IDC_STATIC,button,1342177287
Control41=IDC_STATIC,static,1342308354
Control42=IDC_STATIC,static,1342308354
Control43=IDC_TEXSTATIC,button,1342177289
Control44=IDC_SEGMENT,edit,1350631552
Control45=IDC_SIDEPLANE,edit,1350631552
Control46=IDC_RADIUS,edit,1350631552
Control47=IDC_HEIGHTFACTOR,edit,1350631552
Control48=IDC_STATIC,static,1342308354
Control49=IDC_STATIC,static,1342308354
Control50=IDC_STATIC,static,1342308354
Control51=IDC_STATIC,static,1342308354
Control52=IDC_UPPERVIS,button,1342242819
Control53=IDC_LOWERVIS,button,1342242819
Control54=IDC_UPPERFACTOR,edit,1350631552
Control55=IDC_LOWERFACTOR,edit,1350631552
Control56=IDC_STATIC,static,1342308354
Control57=IDC_STATIC,static,1342308354
Control58=IDC_UPPERUP,button,1342242816
Control59=IDC_LOWERUP,button,1342242816
Control60=IDC_UPPERTEX,button,1342242819
Control61=IDC_LOWERTEX,button,1342242819
Control62=IDC_TEXANI,button,1342177289
Control63=IDC_STATIC,static,1342308352
Control64=IDC_TEXFRAME,edit,1350631552
Control65=IDC_CBSRC,combobox,1344348163
Control66=IDC_CBADDRESSU,combobox,1344348163
Control67=IDC_CBDEST,combobox,1344348163
Control68=IDC_STATIC,static,1342308352
Control69=IDC_STATIC,static,1342308352
Control70=IDC_STATIC,static,1342308352
Control71=IDC_CBADDRESSV,combobox,1344348163
Control72=IDC_STATIC,static,1342308352
[CLS:CPointSlider]
Type=0
HeaderFile=PointSlider.h
ImplementationFile=PointSlider.cpp
BaseClass=CStatic
Filter=W
VirtualFilter=WC
[DLG:IDD_BACKCOLOR (English (U.S.))]
Type=1
Class=CChangeColor
ControlCount=8
Control1=IDC_STATIC,static,1342308352
Control2=IDC_STATIC,static,1342308352
Control3=IDC_STATIC,static,1342308352
Control4=IDC_RED,edit,1350631552
Control5=IDC_GREEN,edit,1350631552
Control6=IDC_BLUE,edit,1350631552
Control7=IDC_OK,button,1342242816
Control8=IDC_CANCLE,button,1342242816
[CLS:CChangeColor]
Type=0
HeaderFile=ChangeColor.h
ImplementationFile=ChangeColor.cpp
BaseClass=CDialog
Filter=D
LastObject=IDC_CANCLE
VirtualFilter=dWC
[DLG:IDD_MESH (English (U.S.))]
Type=1
Class=CMeshPage
ControlCount=32
Control1=IDC_MESH,edit,1350631552
Control2=IDC_BROWSE,button,1342242816
Control3=IDC_OBECJTMAX,edit,1484849280
Control4=IDC_OBJECTNUM,edit,1350631552
Control5=IDC_ALPHA,edit,1350631552
Control6=IDC_COLR,edit,1350631552
Control7=IDC_COLG,edit,1350631552
Control8=IDC_COLB,edit,1350631552
Control9=IDC_STARTFRAME,edit,1350631552
Control10=IDC_ENDFRAME,edit,1350631552
Control11=IDC_CREATE,button,1342242816
Control12=IDC_DELETE,button,1342242816
Control13=IDC_CBSRC,combobox,1344348163
Control14=IDC_CBDEST,combobox,1344348163
Control15=IDC_STATIC,button,1342177287
Control16=IDC_STATIC,static,1342308352
Control17=IDC_STATIC,static,1342308352
Control18=IDC_STATIC,button,1342177287
Control19=IDC_STATIC,static,1342308352
Control20=IDC_STATIC,static,1342308352
Control21=IDC_STATIC,static,1342308352
Control22=IDC_STATIC,static,1342308352
Control23=IDC_STATIC,static,1342308352
Control24=IDC_STATIC,static,1342308352
Control25=IDC_STATIC,static,1342308352
Control26=IDC_STATIC,static,1342308352
Control27=IDC_STATIC,static,1342308352
Control28=IDC_STATIC,static,1342308352
Control29=IDC_TEXFRAME,edit,1350631552
Control30=IDC_STATIC,static,1342308352
Control31=IDC_STARTTEXFRAME,edit,1350631552
Control32=IDC_STATIC,static,1342308352
[CLS:CMeshPage]
Type=0
HeaderFile=meshpage.h
ImplementationFile=meshpage.cpp
BaseClass=CPropertyPage
Filter=D
LastObject=IDC_OBJECTNUM
VirtualFilter=idWC

View File

@@ -0,0 +1,160 @@
// EffectEditor.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "EffectEditor.h"
#include "MainFrm.h"
#include "EffectEditorDoc.h"
#include "EffectEditorView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorApp
BEGIN_MESSAGE_MAP(CEffectEditorApp, CWinApp)
//{{AFX_MSG_MAP(CEffectEditorApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorApp construction
CEffectEditorApp::CEffectEditorApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CEffectEditorApp object
CEffectEditorApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorApp initialization
BOOL CEffectEditorApp::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
// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CEffectEditorDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CEffectEditorView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it.
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void CEffectEditorApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorApp message handlers
BOOL CEffectEditorApp::OnIdle(LONG lCount)
{
// TODO: Add your specialized code here and/or call the base class
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->Render();
CWinApp::OnIdle(lCount);
return TRUE;
}

View File

@@ -0,0 +1,354 @@
# Microsoft Developer Studio Project File - Name="EffectEditor" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=EffectEditor - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "EffectEditor.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "EffectEditor.mak" CFG="EffectEditor - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "EffectEditor - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "EffectEditor - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""$/EffectEditor", NBEAAAAA"
# PROP Scc_LocalPath "."
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "EffectEditor - Win32 Release"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x412 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x412 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 d3dx8.lib d3d8.lib dxguid.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib"
# SUBTRACT LINK32 /pdb:none /nodefaultlib
!ELSEIF "$(CFG)" == "EffectEditor - Win32 Debug"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 5
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x412 /d "_DEBUG" /d "_AFXDLL"
# ADD RSC /l 0x412 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 d3dx8.lib d3d8.lib dxguid.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /pdbtype:sept
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "EffectEditor - Win32 Release"
# Name "EffectEditor - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\Bubble.cpp
# End Source File
# Begin Source File
SOURCE=.\Command.cpp
# End Source File
# Begin Source File
SOURCE=.\CommandManager.cpp
# End Source File
# Begin Source File
SOURCE=.\CusEdit.cpp
# End Source File
# Begin Source File
SOURCE=.\DialogBarEx.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectBar.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectEditor.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectEditor.rc
# End Source File
# Begin Source File
SOURCE=.\EffectEditorDoc.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectEditorView.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectPage.cpp
# End Source File
# Begin Source File
SOURCE=.\EffectSheet.cpp
# End Source File
# Begin Source File
SOURCE=.\EulerAngles.cpp
# End Source File
# Begin Source File
SOURCE=.\KeyBar.cpp
# End Source File
# Begin Source File
SOURCE=.\KeyPage.cpp
# End Source File
# Begin Source File
SOURCE=.\KeySheet.cpp
# End Source File
# Begin Source File
SOURCE=.\MainFrm.cpp
# End Source File
# Begin Source File
SOURCE=.\meshpage.cpp
# End Source File
# Begin Source File
SOURCE=.\MultiSlider.cpp
# End Source File
# Begin Source File
SOURCE=.\SpherePage.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# Begin Source File
SOURCE=.\X3DEditEffect.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEditObject.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditBillboard.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditCylinder.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditMesh.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditParticle.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditPlane.cpp
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditSphere.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\Bubble.h
# End Source File
# Begin Source File
SOURCE=.\Command.h
# End Source File
# Begin Source File
SOURCE=.\CommandManager.h
# End Source File
# Begin Source File
SOURCE=.\CusEdit.h
# End Source File
# Begin Source File
SOURCE=.\DialogBarEx.h
# End Source File
# Begin Source File
SOURCE=.\EffectBar.h
# End Source File
# Begin Source File
SOURCE=.\EffectEditor.h
# End Source File
# Begin Source File
SOURCE=.\EffectEditorDoc.h
# End Source File
# Begin Source File
SOURCE=.\EffectEditorView.h
# End Source File
# Begin Source File
SOURCE=.\EffectPage.h
# End Source File
# Begin Source File
SOURCE=.\EffectSheet.h
# End Source File
# Begin Source File
SOURCE=.\EulerAngles.h
# End Source File
# Begin Source File
SOURCE=.\KeyBar.h
# End Source File
# Begin Source File
SOURCE=.\KeyPage.h
# End Source File
# Begin Source File
SOURCE=.\KeySheet.h
# End Source File
# Begin Source File
SOURCE=.\MainFrm.h
# End Source File
# Begin Source File
SOURCE=.\meshpage.h
# End Source File
# Begin Source File
SOURCE=.\MultiSlider.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\SpherePage.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# Begin Source File
SOURCE=.\X3DEditEffect.h
# End Source File
# Begin Source File
SOURCE=.\X3DEditObject.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditBillboard.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditCylinder.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditMesh.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditParticle.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditPlane.h
# End Source File
# Begin Source File
SOURCE=.\X3DEffectEditSphere.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\res\EffectEditor.ico
# End Source File
# Begin Source File
SOURCE=.\res\EffectEditor.rc2
# End Source File
# Begin Source File
SOURCE=.\res\EffectEditorDoc.ico
# End Source File
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project

View File

@@ -0,0 +1,134 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "CharacterActionControl"=..\CHARACTERACTIONCONTROL\CharacterActionControl.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/CharacterActionControl", HAEAAAAA
..\characteractioncontrol
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Effect"=..\Effect\Effect.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Effect", ILCAAAAA
..\effect
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D Base Class
End Project Dependency
}}}
###############################################################################
Project: "EffectEditor"=.\EffectEditor.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/EffectEditor", NBEAAAAA
.
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D SceneClass
End Project Dependency
Begin Project Dependency
Project_Dep_Name SoundLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name CharacterActionControl
End Project Dependency
Begin Project Dependency
Project_Dep_Name Effect
End Project Dependency
}}}
###############################################################################
Project: "SoundLib"=..\soundlib\SoundLib.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/SoundLib", TNCAAAAA
..\soundlib
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Zalla3D Base Class"="..\ZALLA3D BASECLASS\Zalla3D Base Class.dsp" - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Zalla3D Base Class", BAAAAAAA
..\zalla3d baseclass
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Zalla3D SceneClass"="..\Zallad3D SceneClass\Zalla3D SceneClass.dsp" - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Zalla3D SceneClass", FCAAAAAA
..\zallad3d sceneclass
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D Base Class
End Project Dependency
Begin Project Dependency
Project_Dep_Name Effect
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -0,0 +1,50 @@
// EffectEditor.h : main header file for the EFFECTEDITOR application
//
#if !defined(AFX_EFFECTEDITOR_H__EEB8BC4C_89B2_4A9E_B57D_E2101C61DA9B__INCLUDED_)
#define AFX_EFFECTEDITOR_H__EEB8BC4C_89B2_4A9E_B57D_E2101C61DA9B__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
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorApp:
// See EffectEditor.cpp for the implementation of this class
//
class CEffectEditorApp : public CWinApp
{
public:
CEffectEditorApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEffectEditorApp)
public:
virtual BOOL InitInstance();
virtual BOOL OnIdle(LONG lCount);
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CEffectEditorApp)
afx_msg void OnAppAbout();
// 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_EFFECTEDITOR_H__EEB8BC4C_89B2_4A9E_B57D_E2101C61DA9B__INCLUDED_)

Binary file not shown.

View File

@@ -0,0 +1,554 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: Effect - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP375.tmp" with contents
[
/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"Release/Effect.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\Ryl\Effect\CGemRender.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP375.tmp"
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP376.tmp" with contents
[
/nologo /out:"Release\Effect.lib"
.\Release\CEffscript.obj
.\Release\CGemRender.obj
.\Release\CLightning.obj
.\Release\EffDebugLog.obj
.\Release\MemoryPool.obj
.\Release\X3DEffect.obj
.\Release\X3DEffectBase.obj
.\Release\X3DEffectBillboard.obj
.\Release\X3DEffectCylinder.obj
.\Release\X3DEffectManager.obj
.\Release\X3DEffectMesh.obj
.\Release\X3DEffectParticle.obj
.\Release\X3DEffectPlane.obj
.\Release\X3DEffectSphere.obj
"\Ryl\ZALLA3D BASECLASS\Release\Zalla3D Base Class.lib"
]
Creating command line "link.exe -lib @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP376.tmp"
<h3>Output Window</h3>
Compiling...
CGemRender.cpp
C:\Ryl\Effect\CGemRender.cpp(877) : warning C4101: 'i' : unreferenced local variable
C:\Ryl\Effect\CGemRender.cpp(2188) : warning C4700: local variable 'alpha1' used without having been initialized
C:\Ryl\Effect\CGemRender.cpp(2189) : warning C4700: local variable 'alpha2' used without having been initialized
Creating library...
<h3>
--------------------Configuration: Zalla3D SceneClass - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP377.tmp" with contents
[
/nologo /out:"Release\Zalla3D SceneClass.lib"
".\Release\AmbienceStruct.obj"
".\Release\BGMController.obj"
".\Release\BoidScene2.obj"
".\Release\BspScene.obj"
".\Release\CaldronHouseCacheMgr.obj"
".\Release\CharacterLightShadowManager.obj"
".\Release\ChristmasParticle.obj"
".\Release\CollisionDetection.obj"
".\Release\DataCasher.obj"
".\Release\FogScene.obj"
".\Release\FullSceneEffect.obj"
".\Release\FullScenePShader.obj"
".\Release\FullSceneShader.obj"
".\Release\FullSceneVShader.obj"
".\Release\Glare.obj"
".\Release\GlareManager.obj"
".\Release\GrassManager.obj"
".\Release\GrassScene.obj"
".\Release\H3DOutfitTable.obj"
".\Release\H3DWeaponTable.obj"
".\Release\HazeScene.obj"
".\Release\HeightFieldScene.obj"
".\Release\HouseNameObject.obj"
".\Release\HouseObject.obj"
".\Release\HouseObjectContainer.obj"
".\Release\HouseObjectScene.obj"
".\Release\hristmasParticleManager.obj"
".\Release\InHouseObjectMap.obj"
".\Release\InitValue.obj"
".\Release\InstanceObjectManager.obj"
".\Release\LightContainer.obj"
".\Release\LightEffectManager.obj"
".\Release\LightObject.obj"
".\Release\LightObjectScene.obj"
".\Release\LodMeshObject.obj"
".\Release\MapStorage.obj"
".\Release\MeshObject.obj"
".\Release\MeshObjectContainer.obj"
".\Release\NatureParticle.obj"
".\Release\ObjectContainer.obj"
".\Release\ObjectScene.obj"
".\Release\Octree.obj"
".\Release\OctreeContainer.obj"
".\Release\OctreeScene.obj"
".\Release\Particle.obj"
".\Release\PerlinNoise.obj"
".\Release\QShader.obj"
".\Release\RainParticle.obj"
".\Release\RBspScene.obj"
".\Release\RBspSceneManager.obj"
".\Release\RegionTrigger.obj"
".\Release\ScatterParticle.obj"
".\Release\SceneLayerError.obj"
".\Release\SceneManager.obj"
".\Release\SceneNode.obj"
".\Release\SceneStateMgr.obj"
".\Release\SectorDungeonMap.obj"
".\Release\SectorEffectMap.obj"
".\Release\SectorFallMap.obj"
".\Release\SectorHeightMap.obj"
".\Release\SectorHouseMap.obj"
".\Release\SectorLandscapeEffectMap.obj"
".\Release\SectorLight.obj"
".\Release\SectorMeshMap.obj"
".\Release\SectorMustDivideVertexMap.obj"
".\Release\SectorPlantMap.obj"
".\Release\SectorScene.obj"
".\Release\SectorSoundMap.obj"
".\Release\SectorWaterMap.obj"
".\Release\SectorWideMap.obj"
".\Release\Shader.obj"
".\Release\Shader_BumpSpec.obj"
".\Release\Shader_BumpSpecP.obj"
".\Release\Shader_BumpSpecV.obj"
".\Release\Shader_ClassicBumpSpec.obj"
".\Release\Shader_ClassicBumpSpecP.obj"
".\Release\Shader_ClassicBumpSpecV.obj"
".\Release\Shader_Glare.obj"
".\Release\Shader_GlareP.obj"
".\Release\Shader_Rain.obj"
".\Release\Shader_RainV.obj"
".\Release\Shader_SalfShadowP.obj"
".\Release\Shader_SelfShadow.obj"
".\Release\Shader_SelfShadowP.obj"
".\Release\Shader_SelfShadowV.obj"
".\Release\ShaderManager.obj"
".\Release\ShaderScene.obj"
".\Release\ShadowVolume.obj"
".\Release\SimpleParser.obj"
".\Release\SkyScene.obj"
".\Release\SmokeParticle.obj"
".\Release\SnowFall.obj"
".\Release\SunScene.obj"
".\Release\TextureUtils.obj"
".\Release\TreeScene.obj"
".\Release\TriggerEvent.obj"
".\Release\TriTreeNode.obj"
".\Release\ViewFrustum.obj"
".\Release\WaterScene.obj"
".\Release\WaterW.obj"
".\Release\WaveLine.obj"
".\Release\WBEnvPlaneTex.obj"
".\Release\WBLightMap.obj"
".\Release\WBLightMapBuild.obj"
".\Release\WBLightMapGenerator.obj"
".\Release\WBLightMapTex.obj"
".\Release\WBWaterNormalTexGenerator.obj"
".\Release\WBWaterNormalTexGenPAni1.obj"
".\Release\WBWaterNormalTexGenPAni2.obj"
".\Release\WBWaterNormalTexGenPEqualCom.obj"
".\Release\WBWaterNormalTexGenPShader.obj"
".\Release\WBWaterNormalTexGenShader.obj"
".\Release\WBWaterNormalTexGenVShader.obj"
".\Release\WBWaterPShader.obj"
".\Release\WBWaterShader.obj"
".\Release\WBWaterVShader.obj"
".\Release\WeatherManager.obj"
".\Release\Z3D_CONSTANTS.obj"
".\Release\Z3D_GLOBALS.obj"
".\Release\Z3DAniHolder.obj"
".\Release\Z3DAniKeyPack.obj"
".\Release\Z3DAnimationController.obj"
".\Release\Z3DAniMixer.obj"
".\Release\Z3DAttachment.obj"
".\Release\Z3DBladeTrail.obj"
".\Release\Z3DCharacterModel.obj"
".\Release\Z3DChrEventGenerator.obj"
".\Release\Z3DGCMDS.obj"
".\Release\Z3DGeneralChrModel.obj"
".\Release\Z3DManagedObject.obj"
".\Release\Z3DMapTok2FileName.obj"
".\Release\Z3DMaskedStream.obj"
".\Release\Z3DMath.obj"
".\Release\Z3DMultipartPortion.obj"
".\Release\Z3DMultipartSkin.obj"
".\Release\Z3DObject.obj"
".\Release\Z3DRenderable.obj"
".\Release\Z3DSkeletonObject.obj"
".\Release\Z3DStringTable.obj"
".\Release\Z3DTexture.obj"
".\Release\Z3DTexturePiece.obj"
".\Release\Z3DWeapon.obj"
".\Release\DataDefine.obj"
".\Release\RenderOption.obj"
"\Ryl\ZALLA3D BASECLASS\Release\Zalla3D Base Class.lib"
"\Ryl\Effect\Release\Effect.lib"
]
Creating command line "link.exe -lib @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP377.tmp"
<h3>Output Window</h3>
Creating library...
Effect.lib(WinInput.obj) : warning LNK4006: "public: __thiscall CWinInput::CWinInput(void)" (??0CWinInput@@QAE@XZ) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(WinInput.obj) : warning LNK4006: "public: __thiscall CWinInput::~CWinInput(void)" (??1CWinInput@@QAE@XZ) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(WinInput.obj) : warning LNK4006: "public: void __thiscall CWinInput::UpdateInfo(void)" (?UpdateInfo@CWinInput@@QAEXXZ) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(WinInput.obj) : warning LNK4006: "public: void __thiscall CWinInput::GetMouseState(unsigned int,unsigned int,long)" (?GetMouseState@CWinInput@@QAEXIIJ@Z) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(WinInput.obj) : warning LNK4006: "public: void __thiscall CWinInput::Init(void)" (?Init@CWinInput@@QAEXXZ) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(WinInput.obj) : warning LNK4006: "class CWinInput g_DeviceInput" (?g_DeviceInput@@3VCWinInput@@A) already defined in Zalla3D Base Class.lib(WinInput.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: __thiscall CViewCamera::CViewCamera(void)" (??0CViewCamera@@QAE@XZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: virtual __thiscall CViewCamera::~CViewCamera(void)" (??1CViewCamera@@UAE@XZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::BuildFrustum(float,float,float,float)" (?BuildFrustum@CViewCamera@@QAEXMMMM@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::Render(struct IDirect3DDevice8 *)" (?Render@CViewCamera@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::MoveFrustum(void)" (?MoveFrustum@CViewCamera@@QAEXXZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::InterfaceFreelook(int,int)" (?InterfaceFreelook@CViewCamera@@QAEXHH@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::InterfaceCharlook(int,int,float)" (?InterfaceCharlook@CViewCamera@@QAEXHHM@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::InterfaceCharlook2(int,int)" (?InterfaceCharlook2@CViewCamera@@QAEXHH@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::InterfaceFreeCamera(int,int)" (?InterfaceFreeCamera@CViewCamera@@QAEXHH@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::LookAt(struct vector3,struct vector3,struct vector3)" (?LookAt@CViewCamera@@QAEXUvector3@@00@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::PlayAnimate(void)" (?PlayAnimate@CViewCamera@@QAEXXZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::StartPlay(void)" (?StartPlay@CViewCamera@@QAEXXZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::Load(char *)" (?Load@CViewCamera@@QAEXPAD@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::Save(char *)" (?Save@CViewCamera@@QAEXPAD@Z) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::Unload(void)" (?Unload@CViewCamera@@QAEXXZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: void __thiscall CViewCamera::EndPlay(void)" (?EndPlay@CViewCamera@@QAEXXZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: struct vector3 __thiscall CViewCamera::GetViewTowardVector(void)" (?GetViewTowardVector@CViewCamera@@QAE?AUvector3@@XZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(ViewCamera.obj) : warning LNK4006: "public: struct vector3 __thiscall CViewCamera::GetViewUpVector(void)" (?GetViewUpVector@CViewCamera@@QAE?AUvector3@@XZ) already defined in Zalla3D Base Class.lib(ViewCamera.obj); second definition ignored
Effect.lib(VertexBuffer.obj) : warning LNK4006: "public: __thiscall CVertexBuffer::CVertexBuffer(void)" (??0CVertexBuffer@@QAE@XZ) already defined in Zalla3D Base Class.lib(VertexBuffer.obj); second definition ignored
Effect.lib(VertexBuffer.obj) : warning LNK4006: "public: virtual __thiscall CVertexBuffer::~CVertexBuffer(void)" (??1CVertexBuffer@@UAE@XZ) already defined in Zalla3D Base Class.lib(VertexBuffer.obj); second definition ignored
Effect.lib(VertexBuffer.obj) : warning LNK4006: "public: void __thiscall CVertexBuffer::Create(void)" (?Create@CVertexBuffer@@QAEXXZ) already defined in Zalla3D Base Class.lib(VertexBuffer.obj); second definition ignored
Effect.lib(VertexBuffer.obj) : warning LNK4006: "public: void __thiscall CVertexBuffer::Render(struct IDirect3DDevice8 *,unsigned short *,long &)" (?Render@CVertexBuffer@@QAEXPAUIDirect3DDevice8@@PAGAAJ@Z) already defined in Zalla3D Base Class.lib(VertexBuffer.obj); second definition ignored
Effect.lib(VertexBuffer.obj) : warning LNK4006: "private: static struct IDirect3D8 * CVertexBuffer::m_pD3D" (?m_pD3D@CVertexBuffer@@0PAUIDirect3D8@@A) already defined in Zalla3D Base Class.lib(VertexBuffer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: __thiscall CTextureContainer::CTextureContainer(void)" (??0CTextureContainer@@QAE@XZ) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: virtual __thiscall CTextureContainer::~CTextureContainer(void)" (??1CTextureContainer@@UAE@XZ) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: void __thiscall CTextureContainer::AddTexture(char const *,struct IDirect3DBaseTexture8 * const)" (?AddTexture@CTextureContainer@@QAEXPBDQAUIDirect3DBaseTexture8@@@Z) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: int __thiscall CTextureContainer::FindTexture(char *)" (?FindTexture@CTextureContainer@@QAEHPAD@Z) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: struct IDirect3DBaseTexture8 * __thiscall CTextureContainer::AddUsedTexture(int)" (?AddUsedTexture@CTextureContainer@@QAEPAUIDirect3DBaseTexture8@@H@Z) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: void __thiscall CTextureContainer::DeleteTexture(char *)" (?DeleteTexture@CTextureContainer@@QAEXPAD@Z) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(TextureContainer.obj) : warning LNK4006: "public: void __thiscall CTextureContainer::DeleteAllTexture(void)" (?DeleteAllTexture@CTextureContainer@@QAEXXZ) already defined in Zalla3D Base Class.lib(TextureContainer.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "int __cdecl GetNumberOfBits(int)" (?GetNumberOfBits@@YAHH@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: __thiscall CTexture::CTexture(void)" (??0CTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: virtual __thiscall CTexture::~CTexture(void)" (??1CTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: static void __cdecl CTexture::Init(struct IDirect3DDevice8 *)" (?Init@CTexture@@SAXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: virtual void __thiscall CTexture::LoadNotMessage(char *,unsigned long)" (?LoadNotMessage@CTexture@@UAEXPADK@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::LoadNotCache(char *,unsigned long)" (?LoadNotCache@CTexture@@QAEXPADK@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: virtual void __thiscall CTexture::Load(char *,unsigned long)" (?Load@CTexture@@UAEXPADK@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: int __thiscall CTexture::ReadDDSTextureNotMessage(struct IDirect3DBaseTexture8 * &,int)" (?ReadDDSTextureNotMessage@CTexture@@QAEHAAPAUIDirect3DBaseTexture8@@H@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::ReadDDSTexture(struct IDirect3DBaseTexture8 * &,int)" (?ReadDDSTexture@CTexture@@QAEXAAPAUIDirect3DBaseTexture8@@H@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::DeleteTexture(void)" (?DeleteTexture@CTexture@@QAEXXZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::CreateEmpty(long,long,enum _D3DFORMAT,enum _D3DPOOL,long)" (?CreateEmpty@CTexture@@QAEXJJW4_D3DFORMAT@@W4_D3DPOOL@@J@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::FillColor(unsigned long)" (?FillColor@CTexture@@QAEXK@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: long __thiscall CTexture::LoadAllMipSurfaces(struct IDirect3DBaseTexture8 *,long,struct _iobuf *)" (?LoadAllMipSurfaces@CTexture@@QAEJPAUIDirect3DBaseTexture8@@JPAU_iobuf@@@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void * __thiscall CTexture::Lock(void)" (?Lock@CTexture@@QAEPAXXZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::Unlock(void)" (?Unlock@CTexture@@QAEXXZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::Unload(void)" (?Unload@CTexture@@QAEXXZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: static void __cdecl CTexture::ChangeTextureIntension(unsigned char *,int,float)" (?ChangeTextureIntension@CTexture@@SAXPAEHM@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::CreateEmptyTexture(unsigned int,unsigned int,unsigned int,enum _D3DFORMAT,enum _D3DPOOL)" (?CreateEmptyTexture@CTexture@@QAEXIIIW4_D3DFORMAT@@W4_D3DPOOL@@@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::FillTexture(unsigned char *)" (?FillTexture@CTexture@@QAEXPAE@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: void __thiscall CTexture::SetBitTexture(int,int,unsigned short *)" (?SetBitTexture@CTexture@@QAEXHHPAG@Z) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: static void __cdecl CTexture::DeleteAllCashTexture(void)" (?DeleteAllCashTexture@CTexture@@SAXXZ) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "private: static unsigned char * CTexture::m_pReadBuffer" (?m_pReadBuffer@CTexture@@0PAEA) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "public: static int CTexture::m_SkipMipLevel" (?m_SkipMipLevel@CTexture@@2HA) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "protected: static class CTextureContainer CTexture::m_TextureContainer" (?m_TextureContainer@CTexture@@1VCTextureContainer@@A) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "protected: static char * CTexture::m_strPath" (?m_strPath@CTexture@@1PADA) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(Texture.obj) : warning LNK4006: "protected: static struct IDirect3DDevice8 * CTexture::m_pd3dDevice" (?m_pd3dDevice@CTexture@@1PAUIDirect3DDevice8@@A) already defined in Zalla3D Base Class.lib(Texture.obj); second definition ignored
Effect.lib(StateLog.obj) : warning LNK4006: "public: __thiscall CStateLog::CStateLog(void)" (??0CStateLog@@QAE@XZ) already defined in Zalla3D Base Class.lib(StateLog.obj); second definition ignored
Effect.lib(StateLog.obj) : warning LNK4006: "public: virtual __thiscall CStateLog::~CStateLog(void)" (??1CStateLog@@UAE@XZ) already defined in Zalla3D Base Class.lib(StateLog.obj); second definition ignored
Effect.lib(StateLog.obj) : warning LNK4006: "public: static void __cdecl CStateLog::Create(char *)" (?Create@CStateLog@@SAXPAD@Z) already defined in Zalla3D Base Class.lib(StateLog.obj); second definition ignored
Effect.lib(StateLog.obj) : warning LNK4006: "public: static void __cdecl CStateLog::Message(char *,char *,int)" (?Message@CStateLog@@SAXPAD0H@Z) already defined in Zalla3D Base Class.lib(StateLog.obj); second definition ignored
Effect.lib(StateLog.obj) : warning LNK4006: "private: static struct _iobuf * CStateLog::m_fp" (?m_fp@CStateLog@@0PAU_iobuf@@A) already defined in Zalla3D Base Class.lib(StateLog.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: __thiscall CSphere::CSphere(void)" (??0CSphere@@QAE@XZ) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: __thiscall CSphere::~CSphere(void)" (??1CSphere@@QAE@XZ) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: void __thiscall CSphere::Create(struct IDirect3DDevice8 *,unsigned int,unsigned int)" (?Create@CSphere@@QAEXPAUIDirect3DDevice8@@II@Z) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: void __thiscall CSphere::Destroy(void)" (?Destroy@CSphere@@QAEXXZ) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: void __thiscall CSphere::SetPosition(float,float,float)" (?SetPosition@CSphere@@QAEXMMM@Z) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: void __thiscall CSphere::SetColor(float,float,float)" (?SetColor@CSphere@@QAEXMMM@Z) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "long __cdecl SetShader(struct IDirect3DDevice8 *,unsigned long)" (?SetShader@@YAJPAUIDirect3DDevice8@@K@Z) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(Sphere.obj) : warning LNK4006: "public: void __thiscall CSphere::Render(void)" (?Render@CSphere@@QAEXXZ) already defined in Zalla3D Base Class.lib(Sphere.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: __thiscall CShadowMap::CShadowMap(void)" (??0CShadowMap@@QAE@XZ) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: virtual __thiscall CShadowMap::~CShadowMap(void)" (??1CShadowMap@@UAE@XZ) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: void __thiscall CShadowMap::Create(long,long)" (?Create@CShadowMap@@QAEXJJ@Z) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: void __thiscall CShadowMap::Begin(struct IDirect3DDevice8 *)" (?Begin@CShadowMap@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: void __thiscall CShadowMap::End(struct IDirect3DDevice8 *)" (?End@CShadowMap@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: static struct IDirect3DSurface8 * CShadowMap::m_pTempRenderZBuffer" (?m_pTempRenderZBuffer@CShadowMap@@2PAUIDirect3DSurface8@@A) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: static struct _D3DVIEWPORT8 CShadowMap::m_pTempViewPort" (?m_pTempViewPort@CShadowMap@@2U_D3DVIEWPORT8@@A) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(ShadowMap.obj) : warning LNK4006: "public: static struct IDirect3DSurface8 * CShadowMap::m_pTempRenderSurface" (?m_pTempRenderSurface@CShadowMap@@2PAUIDirect3DSurface8@@A) already defined in Zalla3D Base Class.lib(ShadowMap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: __thiscall CRenderTextureMipmap::CRenderTextureMipmap(void)" (??0CRenderTextureMipmap@@QAE@XZ) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: virtual __thiscall CRenderTextureMipmap::~CRenderTextureMipmap(void)" (??1CRenderTextureMipmap@@UAE@XZ) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: void __thiscall CRenderTextureMipmap::Create(int,int)" (?Create@CRenderTextureMipmap@@QAEXHH@Z) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: struct IDirect3DTexture8 * __thiscall CRenderTextureMipmap::GetTexture(int)" (?GetTexture@CRenderTextureMipmap@@QAEPAUIDirect3DTexture8@@H@Z) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: void __thiscall CRenderTextureMipmap::GenerateMipmap(struct IDirect3DDevice8 *)" (?GenerateMipmap@CRenderTextureMipmap@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTextureMipmap.obj) : warning LNK4006: "public: struct IDirect3DSurface8 * __thiscall CRenderTextureMipmap::GetSurface(void)" (?GetSurface@CRenderTextureMipmap@@QAEPAUIDirect3DSurface8@@XZ) already defined in Zalla3D Base Class.lib(RenderTextureMipmap.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: __thiscall CRenderTexture::CRenderTexture(void)" (??0CRenderTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: virtual __thiscall CRenderTexture::~CRenderTexture(void)" (??1CRenderTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: void __thiscall CRenderTexture::Create(long,long)" (?Create@CRenderTexture@@QAEXJJ@Z) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: void __thiscall CRenderTexture::Begin(struct IDirect3DDevice8 *)" (?Begin@CRenderTexture@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: void __thiscall CRenderTexture::End(struct IDirect3DDevice8 *)" (?End@CRenderTexture@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: void * __thiscall CRenderTexture::Lock(void)" (?Lock@CRenderTexture@@QAEPAXXZ) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "public: void __thiscall CRenderTexture::Unlock(void)" (?Unlock@CRenderTexture@@QAEXXZ) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "private: static struct IDirect3DTexture8 * CRenderTexture::m_pCopyLockTexture" (?m_pCopyLockTexture@CRenderTexture@@0PAUIDirect3DTexture8@@A) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "private: static struct IDirect3DSurface8 * CRenderTexture::m_pCopyLockSurface" (?m_pCopyLockSurface@CRenderTexture@@0PAUIDirect3DSurface8@@A) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTexture.obj) : warning LNK4006: "private: static struct IDirect3DSurface8 * CRenderTexture::m_pRenderZBuffer" (?m_pRenderZBuffer@CRenderTexture@@0PAUIDirect3DSurface8@@A) already defined in Zalla3D Base Class.lib(RenderTexture.obj); second definition ignored
Effect.lib(RenderTargetTexture.obj) : warning LNK4006: "public: __thiscall CRenderTargetTexture::CRenderTargetTexture(void)" (??0CRenderTargetTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(RenderTargetTexture.obj); second definition ignored
Effect.lib(RenderTargetTexture.obj) : warning LNK4006: "public: virtual __thiscall CRenderTargetTexture::~CRenderTargetTexture(void)" (??1CRenderTargetTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(RenderTargetTexture.obj); second definition ignored
Effect.lib(RenderTargetTexture.obj) : warning LNK4006: "public: static void __cdecl CRenderTargetTexture::Create(struct IDirect3DDevice8 *,int,int)" (?Create@CRenderTargetTexture@@SAXPAUIDirect3DDevice8@@HH@Z) already defined in Zalla3D Base Class.lib(RenderTargetTexture.obj); second definition ignored
Effect.lib(RenderTargetTexture.obj) : warning LNK4006: "public: static struct IDirect3DTexture8 * __cdecl CRenderTargetTexture::GetTexture(struct IDirect3DDevice8 *,struct tagRECT)" (?GetTexture@CRenderTargetTexture@@SAPAUIDirect3DTexture8@@PAUIDirect3DDevice8@@UtagRECT@@@Z) already defined in Zalla3D Base Class.lib(RenderTargetTexture.obj); second definition ignored
Effect.lib(RenderTargetTexture.obj) : warning LNK4006: "private: static struct IDirect3DTexture8 * CRenderTargetTexture::m_pTexture" (?m_pTexture@CRenderTargetTexture@@0PAUIDirect3DTexture8@@A) already defined in Zalla3D Base Class.lib(RenderTargetTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "struct D3DXMATRIX __cdecl D3DUtil_GetCubeMapViewMatrix(unsigned long)" (?D3DUtil_GetCubeMapViewMatrix@@YA?AUD3DXMATRIX@@K@Z) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "public: __thiscall CRenderEnvTexture::CRenderEnvTexture(void)" (??0CRenderEnvTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "public: virtual __thiscall CRenderEnvTexture::~CRenderEnvTexture(void)" (??1CRenderEnvTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "public: void __thiscall CRenderEnvTexture::RenderCubeMap(struct IDirect3DDevice8 *)" (?RenderCubeMap@CRenderEnvTexture@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "public: void __thiscall CRenderEnvTexture::RenderSkymap(struct IDirect3DDevice8 *)" (?RenderSkymap@CRenderEnvTexture@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderEnvTexture.obj) : warning LNK4006: "public: void __thiscall CRenderEnvTexture::Create(struct IDirect3DDevice8 *,char * const,char * const,bool)" (?Create@CRenderEnvTexture@@QAEXPAUIDirect3DDevice8@@QAD1_N@Z) already defined in Zalla3D Base Class.lib(RenderEnvTexture.obj); second definition ignored
Effect.lib(RenderDevice.obj) : warning LNK4006: "public: __thiscall CRenderDevice::CRenderDevice(void)" (??0CRenderDevice@@QAE@XZ) already defined in Zalla3D Base Class.lib(RenderDevice.obj); second definition ignored
Effect.lib(RenderDevice.obj) : warning LNK4006: "public: virtual __thiscall CRenderDevice::~CRenderDevice(void)" (??1CRenderDevice@@UAE@XZ) already defined in Zalla3D Base Class.lib(RenderDevice.obj); second definition ignored
Effect.lib(RenderDevice.obj) : warning LNK4006: "public: void __thiscall CRenderDevice::Init(struct IDirect3DDevice8 *)" (?Init@CRenderDevice@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(RenderDevice.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::XRotation(float)" (?XRotation@matrix@@QAEXM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::YRotation(float)" (?YRotation@matrix@@QAEXM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::ZRotation(float)" (?ZRotation@matrix@@QAEXM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::MakeIdent(void)" (?MakeIdent@matrix@@QAEXXZ) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::AxisAngle(struct vector3 const &,float)" (?AxisAngle@matrix@@QAEXABUvector3@@M@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::CameraLookAt(struct vector3 const &,struct vector3 const &,struct vector3 const &)" (?CameraLookAt@matrix@@QAEXABUvector3@@00@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::Translation(struct vector3 const &)" (?Translation@matrix@@QAEXABUvector3@@@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::Inverse(struct matrix const &)" (?Inverse@matrix@@QAEXABU1@@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: struct vector3 const __thiscall matrix::GetLoc(void)const " (?GetLoc@matrix@@QBE?BUvector3@@XZ) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::MakeProjection(float,float,float,float)" (?MakeProjection@matrix@@QAEXMMMM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "struct matrix __cdecl operator*(struct matrix const &,struct matrix const &)" (??D@YA?AUmatrix@@ABU0@0@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "struct vector3 __cdecl operator*(struct matrix const &,struct vector3 const &)" (??D@YA?AUvector3@@ABUmatrix@@ABU0@@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "bool __cdecl operator==(struct matrix const &,struct matrix const &)" (??8@YA_NABUmatrix@@0@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::Rotation(struct vector3,float)" (?Rotation@matrix@@QAEXUvector3@@M@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::MakeAdjustedProjectionMatrix(float,float,float,float,float,float,float,float)" (?MakeAdjustedProjectionMatrix@matrix@@QAEXMMMMMMMM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::SetFrustumMatrix(float,float,float,float,float,float)" (?SetFrustumMatrix@matrix@@QAEXMMMMMM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::MakeNoProjection(float,float,float,float,float)" (?MakeNoProjection@matrix@@QAEXMMMMM@Z) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(matrix.obj) : warning LNK4006: "public: void __thiscall matrix::Transpose(void)" (?Transpose@matrix@@QAEXXZ) already defined in Zalla3D Base Class.lib(matrix.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: __thiscall CIntersection::CIntersection(void)" (??0CIntersection@@QAE@XZ) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: virtual __thiscall CIntersection::~CIntersection(void)" (??1CIntersection@@UAE@XZ) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PolygonRay(struct vector3,struct vector3,struct vector3 *,float &)" (?PolygonRay@CIntersection@@SAHUvector3@@0PAU2@AAM@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PolygonToPolygon(struct vector3 *,struct vector3 *)" (?PolygonToPolygon@CIntersection@@SAHPAUvector3@@0@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::BoxToRay(struct vector3,struct vector3,struct vector3 * * const,float &)" (?BoxToRay@CIntersection@@SAHUvector3@@0QAPAU2@AAM@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static bool __cdecl CIntersection::PlanePoint(struct vector3 *,struct vector3 &)" (?PlanePoint@CIntersection@@SA_NPAUvector3@@AAU2@@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PolygonQuad(struct vector3 *,struct vector3 *)" (?PolygonQuad@CIntersection@@SAHPAUvector3@@0@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static float __cdecl CIntersection::PolygonRay2(struct vector3,struct vector3,struct vector3 *,float &)" (?PolygonRay2@CIntersection@@SAMUvector3@@0PAU2@AAM@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PlaneSphere(struct vector3 &,float &,struct vector3 *)" (?PlaneSphere@CIntersection@@SAHAAUvector3@@AAMPAU2@@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::SplitPolygonPolygon(struct vector3 *,struct vector3 *,struct vector3 *)" (?SplitPolygonPolygon@CIntersection@@SAHPAUvector3@@00@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PolygonSphere(struct vector3 &,float,struct vector3 *,struct vector3 *,int &)" (?PolygonSphere@CIntersection@@SAHAAUvector3@@MPAU2@1AAH@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static float __cdecl CIntersection::PlaneAABBBox(struct vector3 *,struct vector3 &,struct vector3 &,struct vector3 &)" (?PlaneAABBBox@CIntersection@@SAMPAUvector3@@AAU2@11@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static float __cdecl CIntersection::PointFromPlane(struct vector3 *,struct vector3 &)" (?PointFromPlane@CIntersection@@SAMPAUvector3@@AAU2@@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static float __cdecl CIntersection::PointFromPlane(struct vector3 &,struct vector3 &,struct vector3 &)" (?PointFromPlane@CIntersection@@SAMAAUvector3@@00@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(Intersection.obj) : warning LNK4006: "public: static int __cdecl CIntersection::PlaneSphereNormal(struct vector3 &,float &,struct vector3 &,struct vector3 &)" (?PlaneSphereNormal@CIntersection@@SAHAAUvector3@@AAM00@Z) already defined in Zalla3D Base Class.lib(Intersection.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: __thiscall CIMEFont::CIMEFont(void)" (??0CIMEFont@@QAE@XZ) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: virtual __thiscall CIMEFont::~CIMEFont(void)" (??1CIMEFont@@UAE@XZ) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: void __thiscall CIMEFont::Render(struct IDirect3DDevice8 *)" (?Render@CIMEFont@@QAEXPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: void __thiscall CIMEFont::Create(struct IDirect3DDevice8 *,long,long)" (?Create@CIMEFont@@QAEXPAUIDirect3DDevice8@@JJ@Z) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: void __thiscall CIMEFont::PrintToTexture(char *,long)" (?PrintToTexture@CIMEFont@@QAEXPADJ@Z) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: bool __thiscall CIMEFont::isRewirte(void)" (?isRewirte@CIMEFont@@QAE_NXZ) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: void __thiscall CIMEFont::MakeTexture(void)" (?MakeTexture@CIMEFont@@QAEXXZ) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(IMEFont.obj) : warning LNK4006: "public: void __thiscall CIMEFont::Render(struct IDirect3DDevice8 *,unsigned long)" (?Render@CIMEFont@@QAEXPAUIDirect3DDevice8@@K@Z) already defined in Zalla3D Base Class.lib(IMEFont.obj); second definition ignored
Effect.lib(GraphicLayerError.obj) : warning LNK4006: "public: __thiscall CGraphicLayerError::CGraphicLayerError(void)" (??0CGraphicLayerError@@QAE@XZ) already defined in Zalla3D Base Class.lib(GraphicLayerError.obj); second definition ignored
Effect.lib(GraphicLayerError.obj) : warning LNK4006: "public: virtual __thiscall CGraphicLayerError::~CGraphicLayerError(void)" (??1CGraphicLayerError@@UAE@XZ) already defined in Zalla3D Base Class.lib(GraphicLayerError.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: __thiscall CGlareTexture::CGlareTexture(void)" (??0CGlareTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: virtual __thiscall CGlareTexture::~CGlareTexture(void)" (??1CGlareTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: void __thiscall CGlareTexture::GenerateGlareTexture(struct IDirect3DDevice8 *,struct IDirect3DBaseTexture8 *,struct vector3,int)" (?GenerateGlareTexture@CGlareTexture@@QAEXPAUIDirect3DDevice8@@PAUIDirect3DBaseTexture8@@Uvector3@@H@Z) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: void __thiscall CGlareTexture::Create(int)" (?Create@CGlareTexture@@QAEXH@Z) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: void __thiscall CGlareTexture::CreateAndWriteUVOffsets(int,int)" (?CreateAndWriteUVOffsets@CGlareTexture@@QAEXHH@Z) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: void __thiscall CGlareTexture::ProcedualGenerateGlareTexture(struct IDirect3DDevice8 *,struct IDirect3DBaseTexture8 *,struct vector3,int)" (?ProcedualGenerateGlareTexture@CGlareTexture@@QAEXPAUIDirect3DDevice8@@PAUIDirect3DBaseTexture8@@Uvector3@@H@Z) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "public: void __thiscall CGlareTexture::GenerateGlareTexture2(struct IDirect3DDevice8 *,struct IDirect3DBaseTexture8 *,struct vector3,int)" (?GenerateGlareTexture2@CGlareTexture@@QAEXPAUIDirect3DDevice8@@PAUIDirect3DBaseTexture8@@Uvector3@@H@Z) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "private: static struct IDirect3DSurface8 * CGlareTexture::m_pRenderZBuffer" (?m_pRenderZBuffer@CGlareTexture@@0PAUIDirect3DSurface8@@A) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "char * strBlurPixelShader" (?strBlurPixelShader@@3PADA) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(GlareTexture.obj) : warning LNK4006: "char * strBlurVertexShader" (?strBlurVertexShader@@3PADA) already defined in Zalla3D Base Class.lib(GlareTexture.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: __thiscall CFrameTimer::CFrameTimer(void)" (??0CFrameTimer@@QAE@XZ) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: virtual __thiscall CFrameTimer::~CFrameTimer(void)" (??1CFrameTimer@@UAE@XZ) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static void __cdecl CFrameTimer::Create(void)" (?Create@CFrameTimer@@SAXXZ) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static void __cdecl CFrameTimer::UpdateTime(void)" (?UpdateTime@CFrameTimer@@SAXXZ) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static int __cdecl CFrameTimer::Regist(float)" (?Regist@CFrameTimer@@SAHM@Z) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static float __cdecl CFrameTimer::GetUpdateTimer(int)" (?GetUpdateTimer@CFrameTimer@@SAMH@Z) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static unsigned long CFrameTimer::m_dwLastUpdateTime" (?m_dwLastUpdateTime@CFrameTimer@@2KA) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static unsigned long CFrameTimer::m_dwTickTime" (?m_dwTickTime@CFrameTimer@@2KA) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static class std::vector<float,class std::allocator<float> > CFrameTimer::m_fTimeRemainList" (?m_fTimeRemainList@CFrameTimer@@2V?$vector@MV?$allocator@M@std@@@std@@A) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "class CFrameTimer g_FrameTimer" (?g_FrameTimer@@3VCFrameTimer@@A) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static class std::vector<float,class std::allocator<float> > CFrameTimer::m_fUpdateTimeList" (?m_fUpdateTimeList@CFrameTimer@@2V?$vector@MV?$allocator@M@std@@@std@@A) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FrameTimer.obj) : warning LNK4006: "public: static class std::vector<float,class std::allocator<float> > CFrameTimer::m_fPerSecondUpdateList" (?m_fPerSecondUpdateList@CFrameTimer@@2V?$vector@MV?$allocator@M@std@@@std@@A) already defined in Zalla3D Base Class.lib(FrameTimer.obj); second definition ignored
Effect.lib(FileLoad.obj) : warning LNK4006: "public: __thiscall CFileLoad::CFileLoad(void)" (??0CFileLoad@@QAE@XZ) already defined in Zalla3D Base Class.lib(FileLoad.obj); second definition ignored
Effect.lib(FileLoad.obj) : warning LNK4006: "public: virtual __thiscall CFileLoad::~CFileLoad(void)" (??1CFileLoad@@UAE@XZ) already defined in Zalla3D Base Class.lib(FileLoad.obj); second definition ignored
Effect.lib(FileLoad.obj) : warning LNK4006: "public: void __thiscall CFileLoad::Load(char *)" (?Load@CFileLoad@@QAEXPAD@Z) already defined in Zalla3D Base Class.lib(FileLoad.obj); second definition ignored
Effect.lib(FileLoad.obj) : warning LNK4006: "public: void __thiscall CFileLoad::GetData(void *,unsigned int)" (?GetData@CFileLoad@@QAEXPAXI@Z) already defined in Zalla3D Base Class.lib(FileLoad.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: __thiscall CFastMath::CFastMath(void)" (??0CFastMath@@QAE@XZ) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: virtual __thiscall CFastMath::~CFastMath(void)" (??1CFastMath@@UAE@XZ) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static void __cdecl CFastMath::Init(void)" (?Init@CFastMath@@SAXXZ) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned char __cdecl CFastMath::BiToHe(char)" (?BiToHe@CFastMath@@SAED@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static void __cdecl CFastMath::AcToHe(char *,char *,int)" (?AcToHe@CFastMath@@SAXPAD0H@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static char __cdecl CFastMath::StrToHex08(char *)" (?StrToHex08@CFastMath@@SADPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned short __cdecl CFastMath::StrToHex16(char *)" (?StrToHex16@CFastMath@@SAGPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned long __cdecl CFastMath::StrToHex32(char *)" (?StrToHex32@CFastMath@@SAKPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static __int64 __cdecl CFastMath::StrToHex64(char *)" (?StrToHex64@CFastMath@@SA_JPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static char __cdecl CFastMath::Atoc(char *)" (?Atoc@CFastMath@@SADPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned short __cdecl CFastMath::Atos(char *)" (?Atos@CFastMath@@SAGPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned int __cdecl CFastMath::Atoi(char *)" (?Atoi@CFastMath@@SAIPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static __int64 __cdecl CFastMath::Atol64(char *)" (?Atol64@CFastMath@@SA_JPAD@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static void __cdecl CFastMath::SRand(unsigned int)" (?SRand@CFastMath@@SAXI@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static int __cdecl CFastMath::Rand(void)" (?Rand@CFastMath@@SAHXZ) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "public: static unsigned long __cdecl CFastMath::ComplexRandom(int)" (?ComplexRandom@CFastMath@@SAKH@Z) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "private: static long CFastMath::m_HoldRand" (?m_HoldRand@CFastMath@@0JA) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "private: static unsigned short * CFastMath::m_FastHeToBi" (?m_FastHeToBi@CFastMath@@0PAGA) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(FastMath.obj) : warning LNK4006: "private: static unsigned int * CFastMath::m_FastSqrtTable" (?m_FastSqrtTable@CFastMath@@0PAIA) already defined in Zalla3D Base Class.lib(FastMath.obj); second definition ignored
Effect.lib(Error.obj) : warning LNK4006: "public: __thiscall CError::CError(void)" (??0CError@@QAE@XZ) already defined in Zalla3D Base Class.lib(Error.obj); second definition ignored
Effect.lib(Error.obj) : warning LNK4006: "public: virtual __thiscall CError::~CError(void)" (??1CError@@UAE@XZ) already defined in Zalla3D Base Class.lib(Error.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "int __cdecl SortModesCallback(void const *,void const *)" (?SortModesCallback@@YAHPBX0@Z) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: __thiscall CEnumD3D::CEnumD3D(void)" (??0CEnumD3D@@QAE@XZ) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: virtual __thiscall CEnumD3D::~CEnumD3D(void)" (??1CEnumD3D@@UAE@XZ) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static long __cdecl CEnumD3D::Enum(void)" (?Enum@CEnumD3D@@SAJXZ) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static int __cdecl CEnumD3D::FindDepthStencilFormat(unsigned int,enum _D3DDEVTYPE,enum _D3DFORMAT,enum _D3DFORMAT *)" (?FindDepthStencilFormat@CEnumD3D@@SAHIW4_D3DDEVTYPE@@W4_D3DFORMAT@@PAW43@@Z) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static long __cdecl CEnumD3D::ConfirmDevice(struct _D3DCAPS8 *,unsigned long,enum _D3DFORMAT)" (?ConfirmDevice@CEnumD3D@@SAJPAU_D3DCAPS8@@KW4_D3DFORMAT@@@Z) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static struct IDirect3D8 * CEnumD3D::m_pD3D" (?m_pD3D@CEnumD3D@@2PAUIDirect3D8@@A) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static long CEnumD3D::m_nMode" (?m_nMode@CEnumD3D@@2JA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static int CEnumD3D::m_bUseDepthBuffer" (?m_bUseDepthBuffer@CEnumD3D@@2HA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static unsigned long CEnumD3D::m_dwNumAdapters" (?m_dwNumAdapters@CEnumD3D@@2KA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static long CEnumD3D::m_nDevice" (?m_nDevice@CEnumD3D@@2JA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "private: static int CEnumD3D::m_bWindowed" (?m_bWindowed@CEnumD3D@@0HA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static struct D3DAdapterInfo * CEnumD3D::m_Adapters" (?m_Adapters@CEnumD3D@@2PAUD3DAdapterInfo@@A) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static unsigned long CEnumD3D::m_dwAdapter" (?m_dwAdapter@CEnumD3D@@2KA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "private: static long CEnumD3D::m_dwMinDepthBits" (?m_dwMinDepthBits@CEnumD3D@@0JA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "public: static long CEnumD3D::m_nAdapter" (?m_nAdapter@CEnumD3D@@2JA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(EnumD3D.obj) : warning LNK4006: "private: static long CEnumD3D::m_dwMinStencilBits" (?m_dwMinStencilBits@CEnumD3D@@0JA) already defined in Zalla3D Base Class.lib(EnumD3D.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "char const * __cdecl DXUtil_GetDXSDKMediaPath(void)" (?DXUtil_GetDXSDKMediaPath@@YAPBDXZ) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_FindMediaFile(char *,char *)" (?DXUtil_FindMediaFile@@YAJPAD0@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_ReadStringRegKey(struct HKEY__ *,char *,char *,unsigned long,char *)" (?DXUtil_ReadStringRegKey@@YAJPAUHKEY__@@PAD1K1@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_WriteStringRegKey(struct HKEY__ *,char *,char *)" (?DXUtil_WriteStringRegKey@@YAJPAUHKEY__@@PAD1@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_ReadIntRegKey(struct HKEY__ *,char *,unsigned long *,unsigned long)" (?DXUtil_ReadIntRegKey@@YAJPAUHKEY__@@PADPAKK@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_WriteIntRegKey(struct HKEY__ *,char *,unsigned long)" (?DXUtil_WriteIntRegKey@@YAJPAUHKEY__@@PADK@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_ReadBoolRegKey(struct HKEY__ *,char *,int *,int)" (?DXUtil_ReadBoolRegKey@@YAJPAUHKEY__@@PADPAHH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_WriteBoolRegKey(struct HKEY__ *,char *,int)" (?DXUtil_WriteBoolRegKey@@YAJPAUHKEY__@@PADH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_ReadGuidRegKey(struct HKEY__ *,char *,struct _GUID *,struct _GUID &)" (?DXUtil_ReadGuidRegKey@@YAJPAUHKEY__@@PADPAU_GUID@@AAU2@@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl DXUtil_WriteGuidRegKey(struct HKEY__ *,char *,struct _GUID)" (?DXUtil_WriteGuidRegKey@@YAJPAUHKEY__@@PADU_GUID@@@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "float __stdcall DXUtil_Timer(enum TIMER_COMMAND)" (?DXUtil_Timer@@YGMW4TIMER_COMMAND@@@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertAnsiStringToWide(unsigned short *,char const *,int)" (?DXUtil_ConvertAnsiStringToWide@@YAXPAGPBDH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertWideStringToAnsi(char *,unsigned short const *,int)" (?DXUtil_ConvertWideStringToAnsi@@YAXPADPBGH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertGenericStringToAnsi(char *,char const *,int)" (?DXUtil_ConvertGenericStringToAnsi@@YAXPADPBDH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertGenericStringToWide(unsigned short *,char const *,int)" (?DXUtil_ConvertGenericStringToWide@@YAXPAGPBDH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertAnsiStringToGeneric(char *,char const *,int)" (?DXUtil_ConvertAnsiStringToGeneric@@YAXPADPBDH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_ConvertWideStringToGeneric(char *,unsigned short const *,int)" (?DXUtil_ConvertWideStringToGeneric@@YAXPADPBGH@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "long __cdecl _DbgOut(char *,unsigned long,long,char *)" (?_DbgOut@@YAJPADKJ0@Z) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(dxutil.obj) : warning LNK4006: "void __cdecl DXUtil_Trace(char *,...)" (?DXUtil_Trace@@YAXPADZZ) already defined in Zalla3D Base Class.lib(dxutil.obj); second definition ignored
Effect.lib(DeviceInputError.obj) : warning LNK4006: "public: __thiscall CDeviceInputError::CDeviceInputError(void)" (??0CDeviceInputError@@QAE@XZ) already defined in Zalla3D Base Class.lib(DeviceInputError.obj); second definition ignored
Effect.lib(DeviceInputError.obj) : warning LNK4006: "public: virtual __thiscall CDeviceInputError::~CDeviceInputError(void)" (??1CDeviceInputError@@UAE@XZ) already defined in Zalla3D Base Class.lib(DeviceInputError.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: __thiscall CDeviceInput::CDeviceInput(void)" (??0CDeviceInput@@QAE@XZ) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: virtual __thiscall CDeviceInput::~CDeviceInput(void)" (??1CDeviceInput@@UAE@XZ) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: static void __cdecl CDeviceInput::Create(struct HWND__ *)" (?Create@CDeviceInput@@SAXPAUHWND__@@@Z) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: static void __cdecl CDeviceInput::Acquire(void)" (?Acquire@CDeviceInput@@SAXXZ) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: static void __cdecl CDeviceInput::UnAcquire(void)" (?UnAcquire@CDeviceInput@@SAXXZ) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "public: void __thiscall CDeviceInput::UpdateInput(void)" (?UpdateInput@CDeviceInput@@QAEXXZ) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct tagPOINT CDeviceInput::m_MousePos" (?m_MousePos@CDeviceInput@@0UtagPOINT@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct IDirectInputDevice8A * CDeviceInput::m_pKeyboard" (?m_pKeyboard@CDeviceInput@@0PAUIDirectInputDevice8A@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static char * CDeviceInput::m_aryKeyOldState" (?m_aryKeyOldState@CDeviceInput@@0PADA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool * CDeviceInput::m_MouseButton" (?m_MouseButton@CDeviceInput@@0PA_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isLeftMouseDown" (?m_isLeftMouseDown@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static float CDeviceInput::m_MouseSpeed" (?m_MouseSpeed@CDeviceInput@@0MA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isLeftMousePress" (?m_isLeftMousePress@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isLeftMouseClick" (?m_isLeftMouseClick@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isRightMousePress" (?m_isRightMousePress@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct IDirectInput8A * CDeviceInput::m_pDI" (?m_pDI@CDeviceInput@@0PAUIDirectInput8A@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static char * CDeviceInput::m_aryKeyState" (?m_aryKeyState@CDeviceInput@@0PADA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct IDirectInputDevice8A * CDeviceInput::m_pMouse" (?m_pMouse@CDeviceInput@@0PAUIDirectInputDevice8A@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static int CDeviceInput::m_MouseZPos" (?m_MouseZPos@CDeviceInput@@0HA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct tagRECT CDeviceInput::m_rcMouseMove" (?m_rcMouseMove@CDeviceInput@@0UtagRECT@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isRightMouseClick" (?m_isRightMouseClick@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isMidMousePress" (?m_isMidMousePress@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isMouseMove" (?m_isMouseMove@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static struct tagPOINT CDeviceInput::m_MouseMovePos" (?m_MouseMovePos@CDeviceInput@@0UtagPOINT@@A) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isRightMouseDown" (?m_isRightMouseDown@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(DeviceInput.obj) : warning LNK4006: "private: static bool CDeviceInput::m_isRightMouseUp" (?m_isRightMouseUp@CDeviceInput@@0_NA) already defined in Zalla3D Base Class.lib(DeviceInput.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: __thiscall CD3DFont::CD3DFont(char *,unsigned long,unsigned long)" (??0CD3DFont@@QAE@PADKK@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: __thiscall CD3DFont::~CD3DFont(void)" (??1CD3DFont@@QAE@XZ) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::InitDeviceObjects(struct IDirect3DDevice8 *)" (?InitDeviceObjects@CD3DFont@@QAEJPAUIDirect3DDevice8@@@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::RestoreDeviceObjects(void)" (?RestoreDeviceObjects@CD3DFont@@QAEJXZ) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::InvalidateDeviceObjects(void)" (?InvalidateDeviceObjects@CD3DFont@@QAEJXZ) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::DeleteDeviceObjects(void)" (?DeleteDeviceObjects@CD3DFont@@QAEJXZ) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::GetTextExtent(char *,struct tagSIZE *)" (?GetTextExtent@CD3DFont@@QAEJPADPAUtagSIZE@@@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::DrawTextScaled(float,float,float,float,float,unsigned long,char *,unsigned long)" (?DrawTextScaled@CD3DFont@@QAEJMMMMMKPADK@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::DrawTextA(float,float,unsigned long,char *,unsigned long)" (?DrawTextA@CD3DFont@@QAEJMMKPADK@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(d3dfont.obj) : warning LNK4006: "public: long __thiscall CD3DFont::Render3DText(char *,unsigned long)" (?Render3DText@CD3DFont@@QAEJPADK@Z) already defined in Zalla3D Base Class.lib(d3dfont.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: __thiscall CConvertTexture::CConvertTexture(void)" (??0CConvertTexture@@QAE@XZ) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: virtual __thiscall CConvertTexture::~CConvertTexture(void)" (??1CConvertTexture@@UAE@XZ) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: void __thiscall CConvertTexture::Compress(enum _D3DFORMAT)" (?Compress@CConvertTexture@@QAEXW4_D3DFORMAT@@@Z) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: void __thiscall CConvertTexture::GenerateMipMaps(bool)" (?GenerateMipMaps@CConvertTexture@@QAEX_N@Z) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: void __thiscall CConvertTexture::SaveDDS(char *)" (?SaveDDS@CConvertTexture@@QAEXPAD@Z) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(ConvertTexture.obj) : warning LNK4006: "public: void __thiscall CConvertTexture::SaveDDS(char *,int,int)" (?SaveDDS@CConvertTexture@@QAEXPADHH@Z) already defined in Zalla3D Base Class.lib(ConvertTexture.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: __thiscall BaseGraphicsLayer::BaseGraphicsLayer(void)" (??0BaseGraphicsLayer@@QAE@XZ) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: virtual __thiscall BaseGraphicsLayer::~BaseGraphicsLayer(void)" (??1BaseGraphicsLayer@@UAE@XZ) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::Create(struct HWND__ *,bool,bool,long,long)" (?Create@BaseGraphicsLayer@@QAEXPAUHWND__@@_N1JJ@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::GetPickPoint(long,long,float &,float &,float &)" (?GetPickPoint@BaseGraphicsLayer@@QAEXJJAAM00@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::Flip(void)" (?Flip@BaseGraphicsLayer@@QAEXXZ) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::PrefareRender(void)" (?PrefareRender@BaseGraphicsLayer@@QAEXXZ) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::ShowState(void)" (?ShowState@BaseGraphicsLayer@@QAEXXZ) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static bool __cdecl BaseGraphicsLayer::TransformVector(struct vector3 &,struct vector3 &,float &)" (?TransformVector@BaseGraphicsLayer@@SA_NAAUvector3@@0AAM@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: void __thiscall BaseGraphicsLayer::ManyTransformVector(struct vector3 *,struct vector3 *,float *)" (?ManyTransformVector@BaseGraphicsLayer@@QAEXPAUvector3@@0PAM@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static bool __cdecl BaseGraphicsLayer::ProjectiveTextureMapping(struct vector3,float &,float &)" (?ProjectiveTextureMapping@BaseGraphicsLayer@@SA_NUvector3@@AAM1@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static long __cdecl BaseGraphicsLayer::CheckResourceFormatSupport(enum _D3DFORMAT,enum _D3DRESOURCETYPE,unsigned long)" (?CheckResourceFormatSupport@BaseGraphicsLayer@@SAJW4_D3DFORMAT@@W4_D3DRESOURCETYPE@@K@Z) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static bool BaseGraphicsLayer::m_VoodooOption" (?m_VoodooOption@BaseGraphicsLayer@@2_NA) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static struct color BaseGraphicsLayer::m_ClearColor" (?m_ClearColor@BaseGraphicsLayer@@2Ucolor@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static long BaseGraphicsLayer::m_lScreenSy" (?m_lScreenSy@BaseGraphicsLayer@@2JA) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "private: static struct IDirect3D8 * BaseGraphicsLayer::m_pD3D" (?m_pD3D@BaseGraphicsLayer@@0PAUIDirect3D8@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static long BaseGraphicsLayer::m_lScreenSx" (?m_lScreenSx@BaseGraphicsLayer@@2JA) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static class CViewCamera BaseGraphicsLayer::m_ViewCamera" (?m_ViewCamera@BaseGraphicsLayer@@2VCViewCamera@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "private: static struct HWND__ * BaseGraphicsLayer::m_hWnd" (?m_hWnd@BaseGraphicsLayer@@0PAUHWND__@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "private: static struct IDirect3DDevice8 * BaseGraphicsLayer::m_pd3dDevice" (?m_pd3dDevice@BaseGraphicsLayer@@0PAUIDirect3DDevice8@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
Effect.lib(BaseGraphicsLayer.obj) : warning LNK4006: "public: static struct _D3DPRESENT_PARAMETERS_ BaseGraphicsLayer::m_d3dpp" (?m_d3dpp@BaseGraphicsLayer@@2U_D3DPRESENT_PARAMETERS_@@A) already defined in Zalla3D Base Class.lib(BaseGraphicsLayer.obj); second definition ignored
<h3>
--------------------Configuration: EffectEditor - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP378.tmp" with contents
[
d3dx8.lib d3d8.lib dxguid.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/EffectEditor.pdb" /machine:I386 /nodefaultlib:"libc.lib" /out:"Release/EffectEditor.exe"
.\Release\Bubble.obj
.\Release\Command.obj
.\Release\CommandManager.obj
.\Release\CusEdit.obj
.\Release\DialogBarEx.obj
.\Release\EffectBar.obj
.\Release\EffectEditor.obj
.\Release\EffectEditorDoc.obj
.\Release\EffectEditorView.obj
.\Release\EffectPage.obj
.\Release\EffectSheet.obj
.\Release\EulerAngles.obj
.\Release\KeyBar.obj
.\Release\KeyPage.obj
.\Release\KeySheet.obj
.\Release\MainFrm.obj
.\Release\meshpage.obj
.\Release\MultiSlider.obj
.\Release\SpherePage.obj
.\Release\StdAfx.obj
.\Release\X3DEditEffect.obj
.\Release\X3DEditObject.obj
.\Release\X3DEffectEditBillboard.obj
.\Release\X3DEffectEditCylinder.obj
.\Release\X3DEffectEditMesh.obj
.\Release\X3DEffectEditParticle.obj
.\Release\X3DEffectEditPlane.obj
.\Release\X3DEffectEditSphere.obj
.\Release\EffectEditor.res
"\Ryl\Zallad3D SceneClass\Release\Zalla3D SceneClass.lib"
\Ryl\soundlib\Release\SoundLib.lib
\Ryl\CHARACTERACTIONCONTROL\Release\CharacterActionControl.lib
\Ryl\Effect\Release\Effect.lib
]
Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP378.tmp"
<h3>Output Window</h3>
Linking...
LINK : warning LNK4089: all references to "DSOUND.dll" discarded by /OPT:REF
<h3>Results</h3>
EffectEditor.exe - 0 error(s), 307 warning(s)
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,109 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Effect"=..\..\Effect\Effect.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Effect", ILCAAAAA
..\..\effect
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D Base Class
End Project Dependency
}}}
###############################################################################
Project: "EffectEditor"=..\EffectEditor.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/EffectEditor", NBEAAAAA
..
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D SceneClass
End Project Dependency
}}}
###############################################################################
Project: "SoundLib"=..\..\soundlib\SoundLib.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/SoundLib", TNCAAAAA
..\..\soundlib
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Zalla3D Base Class"="..\..\ZALLA3D BASECLASS\Zalla3D Base Class.dsp" - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Zalla3D Base Class", BAAAAAAA
..\..\zalla3d baseclass
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Zalla3D SceneClass"="..\..\Zallad3D SceneClass\Zalla3D SceneClass.dsp" - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Zalla3D SceneClass", FCAAAAAA
..\..\zallad3d sceneclass
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Zalla3D Base Class
End Project Dependency
Begin Project Dependency
Project_Dep_Name Effect
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

Binary file not shown.

View File

@@ -0,0 +1,84 @@
// EffectEditorDoc.cpp : implementation of the CEffectEditorDoc class
//
#include "stdafx.h"
#include "EffectEditor.h"
#include "EffectEditorDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorDoc
IMPLEMENT_DYNCREATE(CEffectEditorDoc, CDocument)
BEGIN_MESSAGE_MAP(CEffectEditorDoc, CDocument)
//{{AFX_MSG_MAP(CEffectEditorDoc)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorDoc construction/destruction
CEffectEditorDoc::CEffectEditorDoc()
{
// TODO: add one-time construction code here
}
CEffectEditorDoc::~CEffectEditorDoc()
{
}
BOOL CEffectEditorDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorDoc serialization
void CEffectEditorDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorDoc diagnostics
#ifdef _DEBUG
void CEffectEditorDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CEffectEditorDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CEffectEditorDoc commands

View File

@@ -0,0 +1,57 @@
// EffectEditorDoc.h : interface of the CEffectEditorDoc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_EFFECTEDITORDOC_H__FE026A79_AE40_48CE_A140_0A1436D7085B__INCLUDED_)
#define AFX_EFFECTEDITORDOC_H__FE026A79_AE40_48CE_A140_0A1436D7085B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CEffectEditorDoc : public CDocument
{
protected: // create from serialization only
CEffectEditorDoc();
DECLARE_DYNCREATE(CEffectEditorDoc)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEffectEditorDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CEffectEditorDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CEffectEditorDoc)
// 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_EFFECTEDITORDOC_H__FE026A79_AE40_48CE_A140_0A1436D7085B__INCLUDED_)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,163 @@
// EffectEditorView.h : interface of the CEffectEditorView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_EFFECTEDITORVIEW_H__189D2A6E_DA39_453F_81A5_2D2C3523F799__INCLUDED_)
#define AFX_EFFECTEDITORVIEW_H__189D2A6E_DA39_453F_81A5_2D2C3523F799__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <d3d8.h>
#include <d3dx8.h>
#include "X3DEditEffect.h" // Added by ClassView
#include "Z3DGeneralChrModel.h"
struct LVERTEX
{
D3DXVECTOR3 position; // The position
D3DCOLOR color; // The color
float tu, tv; // The texture coordinates
};
//#define D3DFVF_LVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1)
#define KeyPressed( key ) HIBYTE( GetAsyncKeyState( key ) )
class CEffectEditorView : public CView
{
protected: // create from serialization only
CEffectEditorView();
DECLARE_DYNCREATE(CEffectEditorView)
// Attributes
public:
CEffectEditorDoc* GetDocument();
LPDIRECT3DDEVICE8 m_lpD3DDevice;
unsigned long m_dwPickEffect;
unsigned long m_dwPreFrame;
// Operations
public:
unsigned char m_cBackBlue;
unsigned char m_cBackGreen;
unsigned char m_cBackRed;
CX3DEditEffect *m_lpEffect;
float m_fPlayFrame;
unsigned long m_dwOldTick, m_dwTick;
CZ3DGeneralChrModel* m_pChr;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEffectEditorView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual void OnInitialUpdate();
protected:
virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
//}}AFX_VIRTUAL
// Implementation
public:
char m_strWeaponSeet[MAX_PATH];
char m_strMotion[MAX_PATH];
float m_fRange;
float m_fYaw;
void MoveCamera(void);
void DrawGrid(void);
HRESULT InitGrid(void);
void SetupMatrices(void);
void Render(void);
virtual ~CEffectEditorView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
BOOL m_bCharVisible;
BOOL m_bActivite;
CPoint m_pointMouseMove;
BOOL m_bLButtonDown;
BOOL m_bRButtonDown;
LPDIRECT3D8 m_lpD3D;
LVertex m_lpGrid[6];
float m_fCameraX, m_fCameraY, m_fCameraZ;
float m_fCameraRotX, m_fCameraRotY, m_fCameraRotZ;
//{{AFX_MSG(CEffectEditorView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnDestroy();
afx_msg void OnFileOpen();
afx_msg void OnFileSave();
afx_msg void OnEditRedo();
afx_msg void OnEditUndo();
afx_msg void OnFileNew();
afx_msg void OnCharVisible();
afx_msg void OnCharInvisible();
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnCharWait();
afx_msg void OnCharWalk();
afx_msg void OnCharAttack();
afx_msg void OnCharAttackAdvance();
afx_msg void OnCharAttackLeft();
afx_msg void OnCharAttackRetreat();
afx_msg void OnCharAttackRight();
afx_msg void OnCharAttacked();
afx_msg void OnCharBack();
afx_msg void OnCharBash();
afx_msg void OnCharCasting();
afx_msg void OnCharCripWeapon();
afx_msg void OnCharEnd();
afx_msg void OnCharFalldown();
afx_msg void OnCharGetUp();
afx_msg void OnCharLeft();
afx_msg void OnCharPutInWeapon();
afx_msg void OnCharRest();
afx_msg void OnCharRestoreHand();
afx_msg void OnCharRight();
afx_msg void OnCharRun();
afx_msg void OnCharSitDown();
afx_msg void OnCharStun();
afx_msg void OnCharTakeOutWeapon();
afx_msg void OnCharNormal();
afx_msg void OnCharBattle();
afx_msg void OnCharBlunt();
afx_msg void OnCharBow();
afx_msg void OnCharCrossbow();
afx_msg void OnCharDagger();
afx_msg void OnCharNoweaponb();
afx_msg void OnCharOnehand();
afx_msg void OnCharTwohand();
afx_msg void OnCharMCastBegin();
afx_msg void OnCharMCasting1();
afx_msg void OnCharMCasting2();
afx_msg void OnCharCastBegin();
afx_msg void OnCharCasting2();
afx_msg void OnCharBlow();
afx_msg void OnCharRoundSwing();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in EffectEditorView.cpp
inline CEffectEditorDoc* CEffectEditorView::GetDocument()
{ return (CEffectEditorDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_EFFECTEDITORVIEW_H__189D2A6E_DA39_453F_81A5_2D2C3523F799__INCLUDED_)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,354 @@
// EffectPage.h : header file
//
#ifndef __EFFECTPAGE_H__
#define __EFFECTPAGE_H__
#include "X3DEffectEditParticle.h"
#include "X3DEffectEditCylinder.h"
#include "X3DEffectEditBillboard.h"
#include "X3DEffectEditPlane.h"
#include "EulerAngles.h"
#include "CommandManager.h"
#include "CusEdit.h"
extern CCommandManager g_CommandManager;
/////////////////////////////////////////////////////////////////////////////
// CParticlePage dialog
class CParticlePage : public CPropertyPage
{
DECLARE_DYNCREATE(CParticlePage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void InitValue(void);
void Undo(CCommand *UndoCommand);
void SetKeyInfo();
BOOL m_bAuto;
BOOL m_bScenario;
BOOL m_bNone;
BOOL m_bSquare;
BOOL m_bCircle;
CParticlePage();
~CParticlePage();
// Dialog Data
//{{AFX_DATA(CParticlePage)
enum { IDD = IDD_PARTICLE };
CComboBox m_cbSrc;
CComboBox m_cbDest;
CComboBox m_cbAddressV;
CComboBox m_cbAddressU;
CCusEdit m_edtWidth;
CCusEdit m_edtSceAlpha;
CCusEdit m_edtPower;
CCusEdit m_edtHeight;
CCusEdit m_edtEForceZ;
CCusEdit m_edtEForceY;
CCusEdit m_edtEForceX;
CCusEdit m_edtDirZ;
CCusEdit m_edtDirY;
CCusEdit m_edtDirX;
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtCenZ;
CCusEdit m_edtCenY;
CCusEdit m_edtCenX;
CCusEdit m_edtAxisZ;
CCusEdit m_edtAxisY;
CCusEdit m_edtAxisX;
CCusEdit m_edtAngle;
CCusEdit m_edtAmount;
CCusEdit m_edtAlpha;
CString m_strTexture;
DWORD m_dwStartFrame;
DWORD m_dwEndFrame;
float m_fRotation;
float m_fTexSpeed;
float m_fLifetime;
float m_fLifetimeSeed;
float m_fPowerSeed;
float m_fRadius;
float m_fVolX;
float m_fVolY;
float m_fVolZ;
float m_fInnerRadius;
BOOL m_bContinuous;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CParticlePage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CParticlePage)
afx_msg void OnCreate();
afx_msg void OnDelete();
afx_msg void OnBrowse();
afx_msg void OnNovolume();
afx_msg void OnCirclevolume();
afx_msg void OnSquarevolume();
virtual BOOL OnInitDialog();
afx_msg void OnAuto();
afx_msg void OnContinuous();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
afx_msg void OnSelchangeCbaddressu();
afx_msg void OnSelchangeCbaddressv();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CBillboardPage dialog
class CBillboardPage : public CPropertyPage
{
DECLARE_DYNCREATE(CBillboardPage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void Undo(CCommand *UndoCommand);
void InitValue(void);
void SetKeyInfo();
BOOL m_bTexAni;
BOOL m_bTexStatic;
CBillboardPage();
~CBillboardPage();
// Dialog Data
//{{AFX_DATA(CBillboardPage)
enum { IDD = IDD_BILLBOARD };
CComboBox m_cbSrc;
CComboBox m_cbDest;
CComboBox m_cbAddressV;
CComboBox m_cbAddressU;
CCusEdit m_edtTexFrame;
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtAlpha;
CCusEdit m_edtCenZ;
CCusEdit m_edtCenY;
CCusEdit m_edtCenX;
CCusEdit m_edtAxisZ;
CCusEdit m_edtAxisY;
CCusEdit m_edtAxisX;
CCusEdit m_edtTileV;
CCusEdit m_edtTileU;
CCusEdit m_edtStartV;
CCusEdit m_edtStartU;
CCusEdit m_edtWidth;
CCusEdit m_edtHeight;
CString m_strTexture;
DWORD m_dwEndFrame;
DWORD m_dwStartFrame;
BOOL m_bAxisAligned;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CBillboardPage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CBillboardPage)
afx_msg void OnCreate();
afx_msg void OnBrowse();
afx_msg void OnDelete();
afx_msg void OnTexstatic();
afx_msg void OnTexani();
virtual BOOL OnInitDialog();
afx_msg void OnAxisaligned();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
afx_msg void OnSelchangeCbaddressu();
afx_msg void OnSelchangeCbaddressv();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CCylinderPage dialog
class CCylinderPage : public CPropertyPage
{
DECLARE_DYNCREATE(CCylinderPage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void InitValue(void);
void Undo(CCommand *UndoCommand);
BOOL m_bTexAni;
BOOL m_bTexStatic;
void SetKeyInfo(void);
CCylinderPage();
~CCylinderPage();
// Dialog Data
//{{AFX_DATA(CCylinderPage)
enum { IDD = IDD_CYLINDER };
CComboBox m_cbAddressV;
CComboBox m_cbSrc;
CComboBox m_cbDest;
CComboBox m_cbAddressU;
CCusEdit m_edtUpperRadius;
CCusEdit m_edtUpperHeight;
CCusEdit m_edtTileV;
CCusEdit m_edtTileU;
CCusEdit m_edtTexFrame;
CCusEdit m_edtStartV;
CCusEdit m_edtStartU;
CCusEdit m_edtLowerRadius;
CCusEdit m_edtLowerHeight;
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtCenZ;
CCusEdit m_edtCenY;
CCusEdit m_edtCenX;
CCusEdit m_edtAxisZ;
CCusEdit m_edtAxisY;
CCusEdit m_edtAxisX;
CCusEdit m_edtAlpha;
DWORD m_dwEndFrame;
DWORD m_dwSidePlane;
DWORD m_dwStartFrame;
CString m_strTexture;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CCylinderPage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CCylinderPage)
afx_msg void OnCreate();
afx_msg void OnDelete();
afx_msg void OnBrowse();
virtual BOOL OnInitDialog();
afx_msg void OnTexstatic();
afx_msg void OnTexani();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
afx_msg void OnSelchangeCbaddressu();
afx_msg void OnSelchangeCbaddressv();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CPlanePage dialog
class CPlanePage : public CPropertyPage
{
DECLARE_DYNCREATE(CPlanePage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void Undo(CCommand *UndoCommand);
void InitValue(void);
BOOL m_bTexAni;
BOOL m_bTexStatic;
void SetKeyInfo(void);
CPlanePage();
~CPlanePage();
// Dialog Data
//{{AFX_DATA(CPlanePage)
enum { IDD = IDD_PLANE };
CComboBox m_cbSrc;
CComboBox m_cbDest;
CComboBox m_cbAddressV;
CComboBox m_cbAddressU;
CCusEdit m_edtWidth;
CCusEdit m_edtTileV;
CCusEdit m_edtTileU;
CCusEdit m_edtTexFrame;
CCusEdit m_edtStartV;
CCusEdit m_edtStartU;
CCusEdit m_edtHeight;
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtCenZ;
CCusEdit m_edtCenY;
CCusEdit m_edtCenX;
CCusEdit m_edtAxisZ;
CCusEdit m_edtAxisY;
CCusEdit m_edtAxisX;
CCusEdit m_edtAlpha;
CString m_strTexture;
DWORD m_dwEndFrame;
DWORD m_dwStartFrame;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CPlanePage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CPlanePage)
afx_msg void OnCreate();
afx_msg void OnBrowse();
afx_msg void OnDelete();
afx_msg void OnTexstatic();
afx_msg void OnTexani();
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
afx_msg void OnSelchangeCbaddressu();
afx_msg void OnSelchangeCbaddressv();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // __EFFECTPAGE_H__

View File

@@ -0,0 +1,53 @@
// EffectSheet.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "EffectSheet.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEffectSheet
IMPLEMENT_DYNAMIC(CEffectSheet, CPropertySheet)
CEffectSheet::CEffectSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
CEffectSheet::CEffectSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
// Add all of the property pages here. Note that
// the order that they appear in here will be
// the order they appear in on screen. By default,
// the first page of the set is the active one.
// One way to make a different property page the
// active one is to call SetActivePage().
AddPage(&m_Page1);
AddPage(&m_Page2);
AddPage(&m_Page3);
AddPage(&m_Page4);
AddPage(&m_Page5);
AddPage(&m_Page6);
}
CEffectSheet::~CEffectSheet()
{
}
BEGIN_MESSAGE_MAP(CEffectSheet, CPropertySheet)
//{{AFX_MSG_MAP(CEffectSheet)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEffectSheet message handlers

View File

@@ -0,0 +1,57 @@
// EffectSheet.h : header file
//
// CEffectSheet is a modeless property sheet that is
// created once and not destroyed until the application
// closes. It is initialized and controlled from
// CEffectFrame.
#ifndef __EFFECTSHEET_H__
#define __EFFECTSHEET_H__
#include "EffectPage.h"
#include "SpherePage.h"
#include "MeshPage.h"
/////////////////////////////////////////////////////////////////////////////
// CEffectSheet
class CEffectSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CEffectSheet)
// Construction
public:
CEffectSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CEffectSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
// Attributes
public:
CParticlePage m_Page1;
CBillboardPage m_Page2;
CCylinderPage m_Page3;
CPlanePage m_Page4;
CSpherePage m_Page5;
CMeshPage m_Page6;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEffectSheet)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CEffectSheet();
// Generated message map functions
protected:
//{{AFX_MSG(CEffectSheet)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
#endif // __EFFECTSHEET_H__

View File

@@ -0,0 +1,161 @@
/**** EulerAngles.c - Convert Euler angles to/from matrix or quat ****/
/* Ken Shoemake, 1993 */
#include "EulerAngles.h"
quaternion Eul_(float ai, float aj, float ah, int order)
{
quaternion ea;
ea.x = ai; ea.y = aj; ea.z = ah;
ea.w = order;
return (ea);
}
/* Construct quaternion from Euler angles (in radians). */
quaternion Eul_ToQuat(quaternion ea)
{
quaternion qu;
double a[3], ti, tj, th, ci, cj, ch, si, sj, sh, cc, cs, sc, ss;
int i,j,k,h,n,s,f;
EulGetOrd(ea.w,i,j,k,h,n,s,f);
if(f == EulFrmR)
{
float t = ea.x;
ea.x = ea.z;
ea.z = t;
}
if(n == EulParOdd) ea.y = -ea.y;
ti = ea.x*0.5; tj = ea.y*0.5; th = ea.z*0.5;
ci = cos(ti); cj = cos(tj); ch = cos(th);
si = sin(ti); sj = sin(tj); sh = sin(th);
cc = ci*ch; cs = ci*sh; sc = si*ch; ss = si*sh;
if(s==EulRepYes)
{
a[i] = cj*(cs + sc); /* Could speed up with */
a[j] = sj*(cc + ss); /* trig identities. */
a[k] = sj*(cs - sc);
qu.w = cj*(cc - ss);
} else {
a[i] = cj*sc - sj*cs;
a[j] = cj*ss + sj*cc;
a[k] = cj*cs - sj*sc;
qu.w = cj*cc + sj*ss;
}
if(n == EulParOdd) a[j] = -a[j];
qu.x = a[0]; qu.y = a[1]; qu.z = a[2];
return (qu);
}
/* Construct matrix from Euler angles (in radians). */
void Eul_ToMatrix(quaternion ea, matrix M)
{
double ti, tj, th, ci, cj, ch, si, sj, sh, cc, cs, sc, ss;
int i,j,k,h,n,s,f;
EulGetOrd(ea.w,i,j,k,h,n,s,f);
if(f == EulFrmR)
{
float t = ea.x;
ea.x = ea.z;
ea.z = t;
}
if(n == EulParOdd)
{
ea.x = -ea.x;
ea.y = -ea.y;
ea.z = -ea.z;
}
ti = ea.x; tj = ea.y; th = ea.z;
ci = cos(ti); cj = cos(tj); ch = cos(th);
si = sin(ti); sj = sin(tj); sh = sin(th);
cc = ci*ch; cs = ci*sh; sc = si*ch; ss = si*sh;
if(s == EulRepYes)
{
M.m[i][i] = cj; M.m[i][j] = sj*si; M.m[i][k] = sj*ci;
M.m[j][i] = sj*sh; M.m[j][j] = -cj*ss+cc; M.m[j][k] = -cj*cs-sc;
M.m[k][i] = -sj*ch; M.m[k][j] = cj*sc+cs; M.m[k][k] = cj*cc-ss;
} else {
M.m[i][i] = cj*ch; M.m[i][j] = sj*sc-cs; M.m[i][k] = sj*cc+ss;
M.m[j][i] = cj*sh; M.m[j][j] = sj*ss+cc; M.m[j][k] = sj*cs-sc;
M.m[k][i] = -sj; M.m[k][j] = cj*si; M.m[k][k] = cj*ci;
}
M.m[3][0]=M.m[3][1]=M.m[3][2]=M.m[0][3]=M.m[1][3]=M.m[2][3]=0.0; M.m[3][3]=1.0;
}
/* Convert matrix to Euler angles (in radians). */
quaternion Eul_FromMatrix(matrix M, int order)
{
quaternion ea;
int i,j,k,h,n,s,f;
EulGetOrd(order,i,j,k,h,n,s,f);
if(s == EulRepYes)
{
double sy = sqrt(M.m[i][j]*M.m[i][j] + M.m[i][k]*M.m[i][k]);
if(sy > 16*FLT_EPSILON)
{
ea.x = atan2(M.m[i][j], M.m[i][k]);
ea.y = atan2(sy, M.m[i][i]);
ea.z = atan2(M.m[j][i], -M.m[k][i]);
} else {
ea.x = atan2(-M.m[j][k], M.m[j][j]);
ea.y = atan2(sy, M.m[i][i]);
ea.z = 0;
}
} else {
double cy = sqrt(M.m[i][i]*M.m[i][i] + M.m[j][i]*M.m[j][i]);
if(cy > 16*FLT_EPSILON)
{
ea.x = atan2(M.m[k][j], M.m[k][k]);
ea.y = atan2(-M.m[k][i], cy);
ea.z = atan2(M.m[j][i], M.m[i][i]);
} else {
ea.x = atan2(-M.m[j][k], M.m[j][j]);
ea.y = atan2(-M.m[k][i], cy);
ea.z = 0;
}
}
if(n == EulParOdd)
{
ea.x = -ea.x;
ea.y = - ea.y;
ea.z = -ea.z;
}
if(f == EulFrmR)
{
float t = ea.x;
ea.x = ea.z;
ea.z = t;
}
ea.w = order;
return (ea);
}
/* Convert quaternion to Euler angles (in radians). */
quaternion Eul_FromQuat(quaternion q, int order)
{
matrix M;
double Nq = q.x*q.x+q.y*q.y+q.z*q.z+q.w*q.w;
double s = (Nq > 0.0) ? (2.0 / Nq) : 0.0;
double xs = q.x*s, ys = q.y*s, zs = q.z*s;
double wx = q.w*xs, wy = q.w*ys, wz = q.w*zs;
double xx = q.x*xs, xy = q.x*ys, xz = q.x*zs;
double yy = q.y*ys, yz = q.y*zs, zz = q.z*zs;
M.m[0][0] = 1.0 - (yy + zz); M.m[0][1] = xy - wz; M.m[0][2] = xz + wy;
M.m[1][0] = xy + wz; M.m[1][1] = 1.0 - (xx + zz); M.m[1][2] = yz - wx;
M.m[2][0] = xz - wy; M.m[2][1] = yz + wx; M.m[2][2] = 1.0 - (xx + yy);
M.m[3][0]=M.m[3][1]=M.m[3][2]=M.m[0][3]=M.m[1][3]=M.m[2][3]=0.0; M.m[3][3]=1.0;
return (Eul_FromMatrix(M, order));
}

View File

@@ -0,0 +1,75 @@
/**** EulerAngles.h - Support for 24 angle schemes ****/
/* Ken Shoemake, 1993 */
#ifndef _H_EulerAngles
#define _H_EulerAngles
#include "quaternion.h"
#include "matrix.h"
/*** Order type constants, constructors, extractors ***/
/* There are 24 possible conventions, designated by: */
/* o EulAxI = axis used initially */
/* o EulPar = parity of axis permutation */
/* o EulRep = repetition of initial axis as last */
/* o EulFrm = frame from which axes are taken */
/* Axes I,J,K will be a permutation of X,Y,Z. */
/* Axis H will be either I or K, depending on EulRep. */
/* Frame S takes axes from initial static frame. */
/* If ord = (AxI=X, Par=Even, Rep=No, Frm=S), then */
/* {a,b,c,ord} means Rz(c)Ry(b)Rx(a), where Rz(c)v */
/* rotates v around Z by c radians. */
#define EulFrmS 0
#define EulFrmR 1
#define EulFrm(ord) ((unsigned)(ord)&1)
#define EulRepNo 0
#define EulRepYes 1
#define EulRep(ord) (((unsigned)(ord)>>1)&1)
#define EulParEven 0
#define EulParOdd 1
#define EulPar(ord) (((unsigned)(ord)>>2)&1)
#define EulSafe "\000\001\002\000"
#define EulNext "\001\002\000\001"
#define EulAxI(ord) ((int)(EulSafe[(((unsigned)(ord)>>3)&3)]))
#define EulAxJ(ord) ((int)(EulNext[EulAxI(ord)+(EulPar(ord)==EulParOdd)]))
#define EulAxK(ord) ((int)(EulNext[EulAxI(ord)+(EulPar(ord)!=EulParOdd)]))
#define EulAxH(ord) ((EulRep(ord)==EulRepNo)?EulAxK(ord):EulAxI(ord))
/* EulGetOrd unpacks all useful information about order simultaneously. */
#define EulGetOrd(ord,i,j,k,h,n,s,f) {unsigned o=ord;f=o&1;o>>=1;s=o&1;o>>=1;\
n=o&1;o>>=1;i=EulSafe[o&3];j=EulNext[i+n];k=EulNext[i+1-n];h=s?k:i;}
/* EulOrd creates an order value between 0 and 23 from 4-tuple choices. */
#define EulOrd(i,p,r,f) (((((((i)<<1)+(p))<<1)+(r))<<1)+(f))
/* Static axes */
#define EulOrdXYZs EulOrd(0,EulParEven,EulRepNo,EulFrmS)
#define EulOrdXYXs EulOrd(0,EulParEven,EulRepYes,EulFrmS)
#define EulOrdXZYs EulOrd(0,EulParOdd,EulRepNo,EulFrmS)
#define EulOrdXZXs EulOrd(0,EulParOdd,EulRepYes,EulFrmS)
#define EulOrdYZXs EulOrd(1,EulParEven,EulRepNo,EulFrmS)
#define EulOrdYZYs EulOrd(1,EulParEven,EulRepYes,EulFrmS)
#define EulOrdYXZs EulOrd(1,EulParOdd,EulRepNo,EulFrmS)
#define EulOrdYXYs EulOrd(1,EulParOdd,EulRepYes,EulFrmS)
#define EulOrdZXYs EulOrd(2,EulParEven,EulRepNo,EulFrmS)
#define EulOrdZXZs EulOrd(2,EulParEven,EulRepYes,EulFrmS)
#define EulOrdZYXs EulOrd(2,EulParOdd,EulRepNo,EulFrmS)
#define EulOrdZYZs EulOrd(2,EulParOdd,EulRepYes,EulFrmS)
/* Rotating axes */
#define EulOrdZYXr EulOrd(0,EulParEven,EulRepNo,EulFrmR)
#define EulOrdXYXr EulOrd(0,EulParEven,EulRepYes,EulFrmR)
#define EulOrdYZXr EulOrd(0,EulParOdd,EulRepNo,EulFrmR)
#define EulOrdXZXr EulOrd(0,EulParOdd,EulRepYes,EulFrmR)
#define EulOrdXZYr EulOrd(1,EulParEven,EulRepNo,EulFrmR)
#define EulOrdYZYr EulOrd(1,EulParEven,EulRepYes,EulFrmR)
#define EulOrdZXYr EulOrd(1,EulParOdd,EulRepNo,EulFrmR)
#define EulOrdYXYr EulOrd(1,EulParOdd,EulRepYes,EulFrmR)
#define EulOrdYXZr EulOrd(2,EulParEven,EulRepNo,EulFrmR)
#define EulOrdZXZr EulOrd(2,EulParEven,EulRepYes,EulFrmR)
#define EulOrdXYZr EulOrd(2,EulParOdd,EulRepNo,EulFrmR)
#define EulOrdZYZr EulOrd(2,EulParOdd,EulRepYes,EulFrmR)
quaternion Eul_(float ai, float aj, float ah, int order);
quaternion Eul_ToQuat(quaternion ea);
void Eul_ToMatrix(quaternion ea, matrix M);
quaternion Eul_FromMatrix(matrix M, int order);
quaternion Eul_FromQuat(quaternion q, int order);
#endif

View File

@@ -0,0 +1,42 @@
// KeyBar.cpp: implementation of the CKeyBar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "EffectEditor.h"
#include "KeyBar.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CKeyBar::CKeyBar()
{
}
CKeyBar::~CKeyBar()
{
}
void CKeyBar::Destory()
{
m_lpKeySheet->DestroyWindow();
delete m_lpKeySheet;
}
void CKeyBar::OnInitDialogBar()
{
m_lpKeySheet=new CKeySheet("Belldandy");
m_lpKeySheet->Create(this, WS_CHILD | WS_VISIBLE, 0);
m_lpKeySheet->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
m_lpKeySheet->ModifyStyle(0, WS_TABSTOP);
m_lpKeySheet->MoveWindow(0, 0, 1000, 500);
}

View File

@@ -0,0 +1,25 @@
// KeyBar.h: interface for the CKeyBar class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_KEYBAR_H__50B9697B_67A3_4B6C_BCF6_2A126B804584__INCLUDED_)
#define AFX_KEYBAR_H__50B9697B_67A3_4B6C_BCF6_2A126B804584__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "DialogBarEx.h"
#include "KeySheet.h" // Added by ClassView
class CKeyBar : public CDialogBarEx
{
public:
CKeySheet *m_lpKeySheet;
CKeyBar();
virtual ~CKeyBar();
virtual void Destory();
virtual void OnInitDialogBar();
};
#endif // !defined(AFX_KEYBAR_H__50B9697B_67A3_4B6C_BCF6_2A126B804584__INCLUDED_)

View File

@@ -0,0 +1,379 @@
// KeyPage.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "KeyPage.h"
#include "MainFrm.h"
#include "EffectEditorDoc.h"
#include "EffectEditorView.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CKeyPage, CPropertyPage)
IMPLEMENT_DYNCREATE(CScenarioPage, CPropertyPage)
/////////////////////////////////////////////////////////////////////////////
// CKeyPage property page
CKeyPage::CKeyPage() : CPropertyPage(CKeyPage::IDD)
{
float fFrameTick;
CMainFrame *mf = (CMainFrame*)AfxGetApp()->m_pMainWnd;
//{{AFX_DATA_INIT(CKeyPage)
m_dwPreFrame = 1;
m_dwTotalFrame = 30;
m_fFrameSec = 40.0f;
m_bLoop = FALSE;
m_cBlue = 0;
m_cGreen = 0;
m_cRed = 0;
m_fIncFrame = 1.0f;
m_WavName.Empty();
m_pSbuffer = NULL;
m_pSmanager = NULL;
//}}AFX_DATA_INIT
fFrameTick = 1000 / m_fFrameSec;
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrameTick((unsigned long) fFrameTick);
}
CKeyPage::~CKeyPage()
{
}
void CKeyPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKeyPage)
DDX_Control(pDX, IDC_POINTSLIDER, m_sldPoint);
DDX_Control(pDX, IDC_KEYSLIDER, m_sldKeyFrame);
DDX_Text(pDX, IDC_PREFRAME, m_dwPreFrame);
DDX_Text(pDX, IDC_TOTALFRAME, m_dwTotalFrame);
DDX_Text(pDX, IDC_FRAMESEC, m_fFrameSec);
DDX_Check(pDX, IDC_LOOP, m_bLoop);
DDX_Text(pDX, IDC_BLUE, m_cBlue);
DDV_MinMaxByte(pDX, m_cBlue, 0, 255);
DDX_Text(pDX, IDC_GREEN, m_cGreen);
DDV_MinMaxByte(pDX, m_cGreen, 0, 255);
DDX_Text(pDX, IDC_RED, m_cRed);
DDV_MinMaxByte(pDX, m_cRed, 0, 255);
DDX_Text(pDX, IDC_INCFRAME, m_fIncFrame);
DDX_Text(pDX, IDC_WAVNAME, m_WavName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKeyPage, CPropertyPage)
//{{AFX_MSG_MAP(CKeyPage)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_PLAY, OnPlay)
ON_BN_CLICKED(IDC_LOOP, OnLoop)
ON_BN_CLICKED(IDC_STOP, OnStop)
ON_BN_CLICKED(IDC_WAV, OnWav)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CScenarioPage property page
CScenarioPage::CScenarioPage() : CPropertyPage(CScenarioPage::IDD)
{
//{{AFX_DATA_INIT(CScenarioPage)
m_fPrePro = 1.0f;
//}}AFX_DATA_INIT
}
CScenarioPage::~CScenarioPage()
{
}
void CScenarioPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CScenarioPage)
DDX_Control(pDX, IDC_KEYSLIDER, m_sldKeyFrame);
DDX_Text(pDX, IDC_PREPRO, m_fPrePro);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CScenarioPage, CPropertyPage)
//{{AFX_MSG_MAP(CScenarioPage)
ON_WM_HSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CKeyPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_sldKeyFrame.SetRange(0, 29);
m_sldKeyFrame.SetPos(0);
m_sldPoint.Init(0, 29, 30, NULL, MLTSLD_DISPLAY_TOOLTIPS | MLTSLD_INTEGERS);
// CSoundManager & smanager = CSoundManager::GetInstance();
// m_pSmanager = &smanager;
// m_pSmanager->Create(GetSafeHwnd());
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CKeyPage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if(pScrollBar == (CScrollBar *)&m_sldKeyFrame)
{
nPos = m_sldKeyFrame.GetPos();
m_sldKeyFrame.SetPos(nPos);
m_dwPreFrame = nPos + 1;
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
{
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
switch(pEffect->GetEffectKind())
{
case EFFECT_PARTICLE:
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
break;
case EFFECT_BILLBOARD:
mf->m_EffectBar.m_lpEffectSheet->m_Page2.SetKeyInfo();
break;
case EFFECT_CYLINDER:
mf->m_EffectBar.m_lpEffectSheet->m_Page3.SetKeyInfo();
break;
case EFFECT_PLANE:
mf->m_EffectBar.m_lpEffectSheet->m_Page4.SetKeyInfo();
break;
case EFFECT_SPHERE:
mf->m_EffectBar.m_lpEffectSheet->m_Page5.SetKeyInfo();
break;
case EFFECT_MESH:
mf->m_EffectBar.m_lpEffectSheet->m_Page6.SetKeyInfo();
break;
}
}
UpdateData(FALSE);
}
CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}
BOOL CKeyPage::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
CMainFrame *mf = (CMainFrame*)AfxGetApp()->m_pMainWnd;
float fFrameTick;
unsigned long temp;
UpdateData();
switch(::GetDlgCtrlID(pMsg->hwnd))
{
case IDC_TOTALFRAME:
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetMaxFrame(m_dwTotalFrame);
temp = m_sldKeyFrame.GetPos();
m_sldKeyFrame.SetRange(0, m_dwTotalFrame - 1);
m_sldPoint.SetRanges(0, m_dwTotalFrame - 1);
if(temp > (m_dwTotalFrame - 1))
{
m_sldKeyFrame.SetPos(0);
m_dwPreFrame = m_sldKeyFrame.GetPos() + 1;
UpdateData(FALSE);
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
}
UpdateData(FALSE);
break;
case IDC_FRAMESEC:
fFrameTick = 1000 / m_fFrameSec;
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrameTick((unsigned long) fFrameTick);
break;
case IDC_INCFRAME:
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetIncFrame(m_fIncFrame);
break;
case IDC_RED:
case IDC_GREEN:
case IDC_BLUE:
((CEffectEditorView*)mf->GetActiveView())->m_cBackRed = m_cRed;
((CEffectEditorView*)mf->GetActiveView())->m_cBackGreen = m_cGreen;
((CEffectEditorView*)mf->GetActiveView())->m_cBackBlue = m_cBlue;
break;
}
}
return CPropertyPage::PreTranslateMessage(pMsg);
}
void CKeyPage::OnPlay()
{
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_fPlayFrame = 0.0f;
((CEffectEditorView*)mf->GetActiveView())->m_dwOldTick = GetTickCount() - 33;
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetFrame(0.0f);
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetPlay(TRUE);
// ((CEffectEditorView*)mf->GetActiveView())->m_pChr->SetMotion(((CEffectEditorView*)mf->GetActiveView())->m_strMotion);
// ((CEffectEditorView*)mf->GetActiveView())->m_pChr->SetMotionSheet(((CEffectEditorView*)mf->GetActiveView())->m_strWeaponSeet);
//wav file name input
/* if(!m_WavName.IsEmpty()) {
CSoundBuffer & sbuffer = m_pSmanager->GetBuffer(m_WavName,false,false);
m_pSbuffer = &sbuffer;
sbuffer.Play((bool)m_bLoop);
}*/
}
void CKeyPage::OnLoop()
{
// TODO: Add your control notification handler code here
UpdateData();
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetLoop(m_bLoop);
}
void CKeyPage::OnStop()
{
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetPlay(FALSE);
if(m_pSbuffer) {
m_pSbuffer->Destroy();
m_pSbuffer = NULL;
}
}
BOOL CScenarioPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_sldKeyFrame.SetRange(0, 99);
m_sldKeyFrame.SetPos(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CScenarioPage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
if(pScrollBar == (CScrollBar *)&m_sldKeyFrame)
{
nPos = m_sldKeyFrame.GetPos();
m_sldKeyFrame.SetPos(nPos);
m_fPrePro = nPos + 1;
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
{
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
switch(pEffect->GetEffectKind())
{
case 0:
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
break;
}
}
UpdateData(FALSE);
}
CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CKeyPage::SetKeyFrame(unsigned long dwFrame)
{
m_sldKeyFrame.SetPos(dwFrame);
m_dwPreFrame = dwFrame + 1;
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame = m_dwPreFrame - 1;
if(0xFFFFFFFF != ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect)
{
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectBase *pEffect = (CX3DEffectBase *)((CX3DEffect *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect)->GetEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
switch(pEffect->GetEffectKind())
{
case 0:
mf->m_EffectBar.m_lpEffectSheet->m_Page1.SetKeyInfo();
break;
case 1:
mf->m_EffectBar.m_lpEffectSheet->m_Page2.SetKeyInfo();
break;
case 2:
mf->m_EffectBar.m_lpEffectSheet->m_Page3.SetKeyInfo();
break;
case 3:
mf->m_EffectBar.m_lpEffectSheet->m_Page4.SetKeyInfo();
break;
case 4:
mf->m_EffectBar.m_lpEffectSheet->m_Page5.SetKeyInfo();
break;
}
}
UpdateData(FALSE);
}
void CKeyPage::SetMaxFrame(unsigned long dwTotalFrame)
{
m_dwTotalFrame = dwTotalFrame;
m_sldPoint.SetRanges(0, m_dwTotalFrame - 1);
UpdateData(FALSE);
}
void CKeyPage::SetMarker(unsigned long dwMarker)
{
m_sldPoint.SetMaker(dwMarker);
}
void CKeyPage::ClearMarker()
{
m_sldPoint.ResetMarkers();
}
void CKeyPage::OnWav()
{
// TODO: Add your control notification handler code here
CString strFilter = "Wave Files (*.wav)|*.wav|All Files (*.*)|*.*||";
CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this);
filedia.DoModal();
m_WavName=filedia.GetFileName();
UpdateData(false);
}

View File

@@ -0,0 +1,111 @@
// KeyPage.h : header file
//
#ifndef __KEYPAGE_H__
#define __KEYPAGE_H__
#include "MultiSlider.h"
#include "SoundBuffer.h"
#include "SoundManager.h"
/////////////////////////////////////////////////////////////////////////////
// CKeyPage dialog
class CKeyPage : public CPropertyPage
{
DECLARE_DYNCREATE(CKeyPage)
// Construction
public:
void ClearMarker(void);
void SetMarker(unsigned long dwMarker);
void SetMaxFrame(unsigned long dwTotalFrame);
void SetKeyFrame(unsigned long dwFrame);
CKeyPage();
~CKeyPage();
// Dialog Data
//{{AFX_DATA(CKeyPage)
enum { IDD = IDD_KEY };
CMultiSlider m_sldPoint;
CSliderCtrl m_sldKeyFrame;
DWORD m_dwPreFrame;
DWORD m_dwTotalFrame;
float m_fFrameSec;
BOOL m_bLoop;
BYTE m_cBlue;
BYTE m_cGreen;
BYTE m_cRed;
float m_fIncFrame;
CString m_WavName;
CSoundBuffer *m_pSbuffer;
CSoundManager *m_pSmanager;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CKeyPage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CKeyPage)
virtual BOOL OnInitDialog();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnPlay();
afx_msg void OnLoop();
afx_msg void OnStop();
afx_msg void OnWav();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CScenarioPage dialog
class CScenarioPage : public CPropertyPage
{
DECLARE_DYNCREATE(CScenarioPage)
// Construction
public:
CScenarioPage();
~CScenarioPage();
// Dialog Data
//{{AFX_DATA(CScenarioPage)
enum { IDD = IDD_SCENARIOBAR };
CSliderCtrl m_sldKeyFrame;
float m_fPrePro;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CScenarioPage)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CScenarioPage)
virtual BOOL OnInitDialog();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // __KEYPAGE_H__

View File

@@ -0,0 +1,49 @@
// KeySheet.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "KeySheet.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CKeySheet
IMPLEMENT_DYNAMIC(CKeySheet, CPropertySheet)
CKeySheet::CKeySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
CKeySheet::CKeySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
// Add all of the property pages here. Note that
// the order that they appear in here will be
// the order they appear in on screen. By default,
// the first page of the set is the active one.
// One way to make a different property page the
// active one is to call SetActivePage().
AddPage(&m_Page1);
AddPage(&m_Page2);
}
CKeySheet::~CKeySheet()
{
}
BEGIN_MESSAGE_MAP(CKeySheet, CPropertySheet)
//{{AFX_MSG_MAP(CKeySheet)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKeySheet message handlers

View File

@@ -0,0 +1,51 @@
// KeySheet.h : header file
//
// CKeySheet is a modeless property sheet that is
// created once and not destroyed until the application
// closes. It is initialized and controlled from
// CKeyFrame.
#ifndef __KEYSHEET_H__
#define __KEYSHEET_H__
#include "KeyPage.h"
/////////////////////////////////////////////////////////////////////////////
// CKeySheet
class CKeySheet : public CPropertySheet
{
DECLARE_DYNAMIC(CKeySheet)
// Construction
public:
CKeySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CKeySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
// Attributes
public:
CKeyPage m_Page1;
CScenarioPage m_Page2;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CKeySheet)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CKeySheet();
// Generated message map functions
protected:
//{{AFX_MSG(CKeySheet)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
#endif // __KEYSHEET_H__

View File

@@ -0,0 +1,97 @@
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "EffectEditor.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code !
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if(!m_EffectBar.Create(this, IDD_EFFECTBAR, CBRS_RIGHT, IDD_EFFECTBAR))
{
return -1;
}
m_EffectBar.SetWindowText("Effect Bar");
m_EffectBar.EnableDocking(CBRS_ALIGN_RIGHT);
EnableDocking(CBRS_ALIGN_RIGHT);
DockControlBar(&m_EffectBar);
if(!m_KeyBar.Create(this, IDD_KEYBAR, CBRS_BOTTOM, IDD_KEYBAR))
{
return -1;
}
m_KeyBar.SetWindowText("Keyframe Bar");
m_KeyBar.EnableDocking(CBRS_ALIGN_BOTTOM);
EnableDocking(CBRS_ALIGN_BOTTOM);
DockControlBar(&m_KeyBar);
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style = WS_OVERLAPPED | WS_CAPTION | WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers

View File

@@ -0,0 +1,59 @@
// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAINFRM_H__5452CC45_ABE5_4B34_A347_D25B84D016CC__INCLUDED_)
#define AFX_MAINFRM_H__5452CC45_ABE5_4B34_A347_D25B84D016CC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "KeyBar.h"
#include "EffectBar.h"
class CMainFrame : public CFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
CKeyBar m_KeyBar;
CEffectBar m_EffectBar;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// 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_MAINFRM_H__5452CC45_ABE5_4B34_A347_D25B84D016CC__INCLUDED_)

View File

@@ -0,0 +1,904 @@
// MultiSlider.cpp : implementation file
//
#include "stdafx.h"
#include "MultiSlider.h"
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMultiSlider
/*! \fn CMultiSlider::CMultiSlider(int LayoutMask)
\brief Class costructor: initializes class variables anc layout; if none is passed a default layout
is used.*/
CMultiSlider::CMultiSlider(int LayoutMask)
{
m_hCursorArrow = ::LoadCursor(NULL, IDC_ARROW);
m_MarkersNum = 1;
m_TTRect.SetRectEmpty();
fInit = false;
m_LayoutMask = LayoutMask;
m_RangeDir = 1;
iToolTipEventDelay = 1000;
uiToolTipEventId = 2;
m_bDragBoth = false;
m_pdraggedMarker = NULL;
m_pnewMarker = NULL;
m_pSelectedMarker = NULL;
m_pTTMarker = NULL;
m_DragStartingPos = 0;
m_wndInfo.Create (this, TRUE /* Shadow */);
m_wndInfo.SetOwner (this);
m_wndInfo.Hide ();
}
/*! \fn CMultiSlider::~CMultiSlider()
\brief Class destructor: resets class variables (using CleanUp()) and releases resources.*/
CMultiSlider::~CMultiSlider()
{
m_wndInfo.DestroyWindow();
CleanUp ();
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
BEGIN_MESSAGE_MAP(CMultiSlider, CSliderCtrl)
//{{AFX_MSG_MAP(CMultiSlider)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_TIMER()
ON_WM_RBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif
/////////////////////////////////////////////////////////////////////////////
// CMultiSlider message handlers
/*! \fn void CMultiSlider::OnPaint()
\brief Draws the control components.
Manages all possible orientations of the control; at the present moment the codew is not very elegant and
concise... sorry!*/
void CMultiSlider::OnPaint()
{
CPaintDC dc(this); // device context for painting
if(!fInit) Initialize();
BOOL m_bMemDC = FALSE;
CDC* pDC = &dc;
CDC dcMem;
CBitmap bmp, *pOldBmp = NULL;
POSITION pos;
//Try to create memory dc and bitmap
if(dcMem.CreateCompatibleDC(&dc) && bmp.CreateCompatibleBitmap(&dc, clientRect.Width(), clientRect.Height()))
{
m_bMemDC = TRUE;
pOldBmp = dcMem.SelectObject(&bmp);
pDC = &dcMem;
}
// Fill background, draw border and thumb
pDC->FillSolidRect(&clientRect, GetSysColor(COLOR_WINDOW));
pDC->DrawEdge(&clientRect, BDR_SUNKENOUTER|BDR_SUNKENINNER, BF_RECT);
// Draw thumb in the specific way depending on style (ILIC)
/////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
// ½½¶óÀÌ´õ Âï´Â ºÎºÐ
for(pos=m_Markers.GetHeadPosition();pos != NULL;)
{
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
ASSERT(pMarker != NULL);
pDC->Ellipse(&pMarker->m_mainRect);
/////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
}
// Draw thumb in the specific way depending on style (ILIC)
if(m_bMemDC)
{
CRect clipRect;
dc.GetClipBox(&clipRect);
dc.BitBlt(clipRect.left, clipRect.top, clipRect.Width(), clipRect.Height(),
&dcMem, clipRect.left, clipRect.top, SRCCOPY);
dcMem.SelectObject(pOldBmp);
}
// Do not call CSliderCtrl::OnPaint() for painting messages
}
/*! \fn void CMultiSlider::OnLButtonDown(UINT nFlags, CPoint point)
\brief Depending on Layout configuration, manages different possible actions.
Clicking on a marker allows the user to start dragging it; if <Ctrl> is pressed and there are only
two markers, both will be dragged contemporarily. If one clicks out of the markers area, a new
markers is created - but only if the total number of markers [set with Init()] has not been reached yet.*/
void CMultiSlider::OnLButtonDown(UINT nFlags, CPoint point)
{
CString strText;
CPoint pt;
m_wndInfo.Hide ();
m_TTRect.SetRectEmpty ();
if(sliderRect.PtInRect(point))
{
m_pdraggedMarker = MarkerHitTest(point);
if(m_pdraggedMarker)
{
int ActualMarkersNum = m_Markers.GetCount();
if(nFlags & MK_CONTROL) m_bDragBoth = true;
m_DragStartingPos = m_pdraggedMarker->m_Pos;
GetMinMax(point);
if(m_LayoutMask & MLTSLD_DISPLAY_TOOLTIPS)
{
BuildTooltipText(m_pdraggedMarker, strText);
::GetCursorPos (&pt);
pt += CPoint (GetSystemMetrics (SM_CXCURSOR) / 2, GetSystemMetrics (SM_CYCURSOR) / 2);
m_wndInfo.Track (pt, strText);
}
}
}
// CSliderCtrl::OnLButtonDown(nFlags, point);
}
/*! \fn void CMultiSlider::OnLButtonUp(UINT nFlags, CPoint point)
\brief Manages the end of an (eventual) marker dragging.
Checks whether a Marker is being dragged; if so, following actions can be taken depending on layout
and marker position:
\arg If marker has beeen dragged out of the control and MLTSLD_REMOVE_OUTGOING is included in the layout, the
marker is deleted, otherwise it is simply fixed to the correct extreme of the ChannelRect.
\arg If the dragged marker has position equal to the minimum one and that marker is not the first, dragging
is considered invalid and marker is set back to its original position (otherwise it would be impossible to
get control of it later, due to precedence with which markers are "captured").
Other features (such as preventing markers crossing) are also considered, even if the greatest of the management
is done in OnMouseMove().
*/
void CMultiSlider::OnLButtonUp(UINT nFlags, CPoint point)
{
int x;
int SliderMin, SliderWidth;
SetFocus ();
m_wndInfo.Hide ();
::SetCursor (m_hCursorArrow);
if (m_pdraggedMarker != NULL)
{
ReleaseCapture();
}
// Disable multiple dragging
m_bDragBoth = false;
SetSliderValues(&SliderMin, &SliderWidth);
// ILIC Just slightly different... :-)
if (m_StyleIdx & SLIDER_VERT)
x = (int)(((float)(point.y - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + m_RangeMin);
else
x = (int)(((float)(point.x - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + m_RangeMin);
if(m_pdraggedMarker != NULL)
{
if(x < m_RangeMin) x = m_RangeMin;
if(x > m_RangeMax) x = m_RangeMax;
// We need to avoid superposition with first marker in the origin
POSITION MyPos = m_Markers.Find(m_pdraggedMarker);
if(m_Markers.GetCount() > 1)
{
if (MyPos != m_Markers.GetHeadPosition())
if (x == m_RangeMin) x = m_DragStartingPos;
}
if(x <= m_RangeMax && x >= m_RangeMin)
{
NMHDR nmhdr;
nmhdr.hwndFrom = m_hWnd;
nmhdr.idFrom = GetDlgCtrlID();
nmhdr.code = TB_THUMBPOSITION;
GetParent()->SendMessage(WM_NOTIFY, GetDlgCtrlID(), (LPARAM) &nmhdr);
}
m_pdraggedMarker = NULL;
}
CSliderCtrl::OnLButtonUp(nFlags, point);
}
/*! \fn CMarker* CMultiSlider::MarkerHitTest(CPoint pt)
\brief Checks if the input point is inside the area of one of the markers and returns a pointer to it (or NULL
if no matching marker is found).*/
CMarker* CMultiSlider::MarkerHitTest(CPoint pt)
{
CRect mainRect;
POSITION pos;
if(m_Markers.GetCount() == 0) return NULL;
for(pos = m_Markers.GetHeadPosition();pos!=NULL;)
{
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
mainRect = pMarker->m_mainRect;
if(pMarker->m_mainRect.PtInRect(pt))
{
return pMarker;
}
}
return NULL;
}
/*! \fn void CMultiSlider::OnMouseMove(UINT nFlags, CPoint point)
\brief Manages the markers dragging.
Changes the cursor if a marker ig going to be dragged away, blocks the dragged marker if MLTSLD_PREVENT_CROSSING
is active and there is superposition of two objects... and finally sets new position of the marker (or othe the TWO
markers in case of multiple dragging.*/
void CMultiSlider::OnMouseMove(UINT nFlags, CPoint point)
{
// CSliderCtrl::OnMouseMove(nFlags, point);
/* float x;
int SliderMin, SliderWidth;
if(m_pdraggedMarker == NULL)
{
// SetInfoWindow (point);
return;
}
SetSliderValues(&SliderMin, &SliderWidth);
CRect oldRect, newRect;
if(m_pdraggedMarker != NULL)
{
if(sliderRect.PtInRect(point))
{
if (m_StyleIdx & SLIDER_VERT)
x = ((float)(point.y - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + (float)m_RangeMin;
else
x = ((float)(point.x - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + (float)m_RangeMin;
bool bInRange = true;
float DeltaPos = x - m_pdraggedMarker->m_Pos;
// if(DeltaPos <= 0.0f) { DeltaPos -= 0.5f; } else { DeltaPos += 0.5f; }
// floorf(DeltaPos);
if (m_bDragBoth)
{
for (POSITION pos = m_Markers.GetHeadPosition (); pos != NULL;)
{
CMarker *pTmpMarker = (CMarker*) m_Markers.GetNext (pos);
int TmpNewPos = pTmpMarker->m_Pos + (int)DeltaPos;
if (TmpNewPos < m_RangeMin || TmpNewPos > m_RangeMax)
{
bInRange = false;
break;
}
}
}
else
bInRange = (x >= m_RangeMin && x <= m_RangeMax);
if (bInRange)
{
CMarker *pToMove = m_pdraggedMarker;
do
{
CMarker newMarker/*(pToMove->m_Index)*/;
/* oldRect = pToMove->m_mainRect;
newMarker.m_Pos = (int)(pToMove->m_Pos + DeltaPos);
SetRectangles(&newMarker);
pToMove->m_mainRect = newRect = newMarker.m_mainRect;
pToMove->m_Pos = newMarker.m_Pos;
if(oldRect != newRect)
{
Invalidate(FALSE);
UpdateWindow();
SetInfoWindow (point);
}
// We are not using multiple dragging, or we are over with it
if (!m_bDragBoth || pToMove != m_pdraggedMarker)
pToMove = NULL;
else
{
for (POSITION pos = m_Markers.GetHeadPosition (); pos != NULL;)
{
pToMove = (CMarker*) m_Markers.GetNext (pos);
// We are looking fo the other one...
if (pToMove != m_pdraggedMarker)
break;
}
}
} while (pToMove);
}
GetParent()->SendMessage(WM_HSCROLL, (WPARAM)(0x0000FFFF | (short)x << 16), (LPARAM)this->m_hWnd);
}
}*/
}
/*! \fn void CMultiSlider::BuildTooltipText(CMarker* pMI, CString &text)
\brief Builds tooltip text - quite straightforward, isn't it?!? ;-).*/
void CMultiSlider::BuildTooltipText(CMarker* pMI, CString &text)
{
if(pMI == NULL)
return;
text = _T("");
if(m_LayoutMask & MLTSLD_INTEGERS)
text.Format(_T("%d"), pMI->m_Pos);
else
text.Format(_T("%d"), pMI->m_Pos);
}
/*! \fn void CMultiSlider::SetInfoWindow(CPoint &point)
\brief Builds the window for the tooltip, if this feature is included in the layout.*/
void CMultiSlider::SetInfoWindow(CPoint &point)
{
CRect rectI;
BOOL bShowInfo = TRUE;
CMarker* pMI;
if (m_pdraggedMarker != NULL && (m_LayoutMask & MLTSLD_DISPLAY_TOOLTIPS) && !m_bDragBoth)
{
CString strText;
BuildTooltipText (m_pdraggedMarker, strText);
m_wndInfo.SetWindowText (strText);
m_wndInfo.ShowWindow(SW_SHOWNOACTIVATE);
m_wndInfo.Invalidate ();
m_wndInfo.UpdateWindow ();
return;
}
if (m_TTRect.PtInRect (point))
return;
m_TTRect.SetRectEmpty();
if ((pMI = MarkerHitTest(point)) == NULL)
bShowInfo = FALSE;
else
{
rectI = GetMarkerRect(pMI);
bShowInfo = rectI.PtInRect (point);
}
if (!bShowInfo)
{
ReleaseCapture ();
m_wndInfo.Hide ();
KillTimer (uiToolTipEventId);
rectI.SetRectEmpty ();
}
else
SetTimer (uiToolTipEventId, iToolTipEventDelay, NULL);
m_TTRect = rectI;
m_pTTMarker = pMI;
}
/*! \fn void CMultiSlider::OnTimer(UINT nIDEvent)
\brief For displaying Tooltips with a reasonable frequency.*/
void CMultiSlider::OnTimer(UINT nIDEvent)
{
CPaintDC dc(this);
CPoint pt;
if (m_pTTMarker != NULL && (m_LayoutMask & MLTSLD_DISPLAY_TOOLTIPS) && !m_bDragBoth)
{
CString strText;
TEXTMETRIC tm;
CSize length;
int width;
dc.GetTextMetrics(&tm);
int nTextHeight = tm.tmHeight + 2;
int nTextWidth = tm.tmMaxCharWidth + 2;
if(m_LayoutMask & MLTSLD_INTEGERS)
strText.Format("%d", m_pTTMarker->m_Pos);
else
strText.Format("%d", m_pTTMarker->m_Pos);
length = dc.GetTextExtent(strText);
width = length.cx;
BuildTooltipText(m_pTTMarker, strText);
CPoint ptCursor;
::GetCursorPos (&ptCursor);
ptCursor += CPoint (
GetSystemMetrics (SM_CXCURSOR) / 2,
GetSystemMetrics (SM_CYCURSOR) / 2);
m_wndInfo.Track (ptCursor, strText);
SetCapture ();
}
else
{
m_wndInfo.Hide ();
m_TTRect.SetRectEmpty ();
}
KillTimer (uiToolTipEventId);
CSliderCtrl::OnTimer(nIDEvent);
}
/*! \fn void CMultiSlider::Initialize()
\brief Sets various rects (overwriting base class configuration and checks for markers intial positions.*/
void CMultiSlider::Initialize()
{
int max, min;
CPoint pt;
POSITION pos;
CPaintDC dc(this);
dc.SetMapMode(MM_TEXT);
//Get control rect, channel rect and thumb rect
GetClientRect(&clientRect);
GetThumbRect(&thumbRect);
// ILIC: Retrieve control style
DWORD Style = GetStyle();
m_StyleIdx = 0;
/* long Correction; // To make it look perfect ;-)
if (Style & TBS_VERT)
{
m_StyleIdx += 1;
Correction = -2;
CRect TmpRect;
TmpRect.top = clientRect.left;
TmpRect.bottom = clientRect.right;
TmpRect.left = clientRect.top + Correction;
TmpRect.right = clientRect.bottom + Correction;
thumbRect.left += Correction;
thumbRect.right += Correction;
channelRect = TmpRect;
}*/
// ILIC: Retrieve control style (END)
min = m_RangeMin;
max = m_RangeMax;
sliderRect = clientRect;
sliderRect.DeflateRect(2, 0);
for(pos = m_Markers.GetHeadPosition();pos!=NULL;)
{
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
//Remove any out of range (here no test on MLTSLD in needed as we are at the beginning...)
if((pMarker->m_Pos > m_RangeMax || pMarker->m_Pos < m_RangeMin))
RemoveLevelMarker(pMarker);
else
SetRectangles(pMarker); //Reset rectangles
}
fInit = true;
}
/*! \fn bool CMultiSlider::SetRanges(float min, float max, int MarkersNum, float *NewPos)
\brief Updates the controls after a on-the-fly change of its extremes and/or number of markers.
\param min New lower extreme of the control;
\param max New higher extreme of the control;
\param MarkersNum new total number of markers in the control;
\param NewPos vector containing starting positions for markers.
This function resets the control, sets the new extremes and inserts new markers if a list of
positions is passed. Consistency between MarkersNum and lenght of the vector NewPos relies on caller's
resposibility. \b WARNING: Color list for intervals must be eventually updated with correct functions.
*/
bool CMultiSlider::SetRanges(int min, int max, int MarkersNum, int *NewPos)
{
m_RangeMax = max;
m_RangeMin = min;
m_RangeWidth = m_RangeMax - m_RangeMin;
int i=0;
// Beware: if you change number of Markers, you should eventually update the list of colors!
if (NewPos && MarkersNum)
{
CMarker *pNewMarker;
ResetMarkers();
for (i=0; i<MarkersNum; i++)
{
pNewMarker = new CMarker;
if (!pNewMarker)
break;
pNewMarker->m_Pos = NewPos[i];
InsertMarker(pNewMarker);
}
if (i != MarkersNum)
{
ResetMarkers();
return false;
}
}
fInit = false;
Invalidate();
UpdateWindow();
return true;
}
/*! \fn bool CMultiSlider::GetRanges(float &min, float &max)
\brief Returns lower and higher extremes of the control.*/
bool CMultiSlider::GetRanges(int &min, int &max)
{
min = m_RangeMin;
max = m_RangeMax;
return true;
}
/*! \fn bool CMultiSlider::RemoveLevelMarker(CMarker *pRemoved)
\brief Removes a marker, usually because it has been dragged out of the control.*/
bool CMultiSlider::RemoveLevelMarker(CMarker *pRemoved)
{
ASSERT (pRemoved != NULL);
bool AllIsOk = false;
CRect rectTI;
rectTI = pRemoved->m_mainRect;
for (POSITION pos = m_Markers.GetHeadPosition (); pos != NULL;)
{
POSITION posSave = pos;
CMarker* pTI = (CMarker*) m_Markers.GetNext (pos);
ASSERT (pTI != NULL);
if (pTI == pRemoved)
{
m_Markers.RemoveAt (posSave);
delete pRemoved;
InvalidateRect(rectTI);
AllIsOk = true;
}
}
return AllIsOk;
}
/*! \fn int CMultiSlider::InsertMarker(CMarker *pNewMarker)
\brief Inserts a new marker into the control; starting position must me already sored in the input pointer.*/
int CMultiSlider::InsertMarker(CMarker *pNewMarker)
{
bool bInserted = false;
int i = 0;
int iIndex = -1;
for(POSITION pos = m_Markers.GetHeadPosition(); pos != NULL && !bInserted; i++)
{
POSITION posSave = pos;
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
ASSERT(pMarker != NULL);
if(pMarker->m_Pos >= pNewMarker->m_Pos)
{
m_Markers.InsertBefore(posSave, pNewMarker);
iIndex = i;
bInserted = true;
}
}
if(!bInserted)
{
m_Markers.AddTail(pNewMarker);
iIndex = m_Markers.GetCount() - 1;
}
return iIndex;
}
/*! \fn void CMultiSlider::ResetMarkers()
\brief Removes all markers and sets auxiliar pointers to NULL.*/
void CMultiSlider::ResetMarkers()
{
while (!m_Markers.IsEmpty ())
{
delete m_Markers.RemoveHead();
}
m_pnewMarker = NULL;
m_pdraggedMarker = NULL;
m_pSelectedMarker = NULL;
m_pTTMarker = NULL;
}
/*! \fn void CMultiSlider::SetRectangles(CMarker *pMarker)
\brief Builds the three rectangles necessary to draw a Marker (...unfortunately some "emprical" corrections
were necessary for different configurations...).*/
void CMultiSlider::SetRectangles(CMarker *pMarker)
{
int SliderMin, SliderWidth;
CRect top;
int x;
m_RangeMin = m_RangeMin;
m_RangeMax = m_RangeMax;
m_RangeWidth = m_RangeMax - m_RangeMin;
SetSliderValues(&SliderMin, &SliderWidth);
x = (int)((((pMarker->m_Pos - (float)m_RangeMin) / (float)m_RangeWidth) * (float)SliderWidth) + SliderMin);
// ILIC Rectangle must now be prepared in specific way depending on style...
top = clientRect;
if (m_StyleIdx & SLIDER_VERT)
{
top.top = x - 6;
top.bottom = x + 6;
top.left += 2;
top.right -= 2;
}
else
{
top.top += 2;
top.bottom -= 2;
top.left = x - 6;
top.right = x + 6;
}
// ILIC Rectangle must now be prepared in specific way depending on style... (END)
pMarker->m_mainRect = top;
}
/*! \fn int CMultiSlider::GetMarkers(float *value)
\brief Returns in input pointer \b value a list of the markers' actual positions.*/
int CMultiSlider::GetMarkers(int *value)
{
int count = 0;
POSITION pos;
for(pos=m_Markers.GetHeadPosition();pos != NULL;)
{
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
ASSERT(pMarker != NULL);
value[count] = pMarker->m_Pos;
count++;
}
return count;
}
/*! \fn CRect CMultiSlider::GetMarkerRect(CMarker *pMI)
\brief Returns the rect occupied by the input marker.*/
CRect CMultiSlider::GetMarkerRect(CMarker *pMI)
{
CRect rect;
rect = pMI->m_mainRect;
rect.bottom = clientRect.bottom;
return rect;
}
/*! \fn void CMultiSlider::OnRButtonUp(UINT nFlags, CPoint point)
\brief Allows to set marker position and/or intervals' colors; necessary tests (e.g. MLTSLD_PREVENT_CROSSING) are done.*/
void CMultiSlider::OnRButtonUp(UINT nFlags, CPoint point)
{
int SliderMin, SliderWidth;
CRect tempRect;
CPoint pt;
SetSliderValues(&SliderMin, &SliderWidth);
m_wndInfo.Hide ();
m_TTRect.SetRectEmpty ();
if(sliderRect.PtInRect(point)) //Verify in window
{
m_pSelectedMarker = MarkerHitTest(point);
SetMaker(10);
}
CSliderCtrl::OnRButtonUp(nFlags, point);
}
/*! \fn void CMultiSlider::GetMinMax(CPoint point)
\brief Returns extremal positions of markers actually present in the control.*/
void CMultiSlider::GetMinMax(CPoint point)
{
int i, count;
int x;
int SliderMin, SliderWidth;
int *values;
values = (int*)malloc(sizeof(int) * m_MarkersNum);
SetSliderValues(&SliderMin, &SliderWidth);
// ILIC Just slightly different... :-)
if (m_StyleIdx & SLIDER_VERT)
x = (int)(((float)(point.y - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + m_RangeMin);
else
x = (int)(((float)(point.x - SliderMin)/(float)SliderWidth * (float)m_RangeWidth) + m_RangeMin);
prevMin = m_RangeMin;
prevMax = m_RangeMax;
count = GetMarkers(values);
for(i=0;i<count;i++)
{
if(values[i] < x)
prevMin = values[i];
}
for(i=count-1;i>=0;i--)
{
if(values[i] > x)
prevMax = values[i];
}
free(values);
return;
}
/*! \fn void CMultiSlider::Init(float Min, float Max, int TicFreq, int MarkersNum, float *InitPos, COLORREF* ColorsList, int LayoutMask)
\brief Initializes the control with various parameters.
\param Min Lower extreme of the marker;
\param Max Higher extreme of the marker;
\param TicFreq Number of tickmarks (... I'm noto sure about that in this moment!);
\param MarkersNum Maximum number of markers which will be inserted in the control;
\param InitPos List of initial positions of markers;
\param ColorsList List of colors to be used for intervals (obviously you need MarkersNum-1 colors...);
\param LayoutMask Mask with options for the layout.
This function allows you to initialize the control, inserting automatically all the markers at the specified conditions.
The pointers MUST point to list whose length is coherent with MarkersNum (you can't set MarkersNum to 5 and then initialize
and insert only three markers... For details about layout mask, see documentation in header file.*/
void CMultiSlider::Init(int Min, int Max, int MarkersNum, int *InitPos, int LayoutMask)
{
fInit = false;
m_RangeMin = Min;
m_RangeMax = Max;
m_RangeWidth = m_RangeMax - m_RangeMin;
if (LayoutMask != -1) m_LayoutMask = LayoutMask;
m_MarkersNum = MarkersNum;
for (int i=0; i<MarkersNum; i++)
{
if (InitPos) // Adds Markers immediately
{
CMarker *pMarker = new CMarker/*(i)*/;
pMarker->m_Pos = InitPos[i];
InsertMarker(pMarker);
}
}
Invalidate();
UpdateWindow();
}
/*! \fn void CMultiSlider::SetSliderValues(float *SliderMin, float *SliderWidth)
\brief Returns data for drawing the control.*/
void CMultiSlider::SetSliderValues(int *SliderMin, int *SliderWidth)
{
int SliderMax;
if (m_StyleIdx & SLIDER_VERT)
{
SliderMax = sliderRect.top;
*SliderMin = sliderRect.bottom;
}
else
{
SliderMax = sliderRect.right;
*SliderMin = sliderRect.left;
}
*SliderWidth = (SliderMax - *SliderMin); // in order to compensate possible sign change.
}
/*! \fn CMarker *CMultiSlider::GetNextMarker(POSITION &Pos)
\brief Returns pointer to next marker in the list.
Markers are ordered in the list by thier position in the control (from lower to higher), so this function
can be used both for ciclying over the list and for determining marker following in the slider.*/
CMarker *CMultiSlider::GetNextMarker(POSITION &Pos)
{
POSITION OrgPos = Pos;
m_Markers.GetNext(Pos);
CMarker *pTheMarker = (CMarker *) m_Markers.GetNext(Pos);
// restore Pos
Pos = OrgPos;
return pTheMarker;
}
/*! \fn CMarker *CMultiSlider::GetPrevMarker(POSITION &Pos)
\brief Returns pointer to next marker in the list.
Markers are ordered in the list by thier position in the control (from lower to higher), so this function
can be used both for ciclying over the list and for determining marker following in the slider.*/
CMarker *CMultiSlider::GetPrevMarker(POSITION &Pos)
{
POSITION OrgPos = Pos;
m_Markers.GetPrev(Pos);
CMarker *pTheMarker = (CMarker *) m_Markers.GetPrev(Pos);
// restore Pos
Pos = OrgPos;
return pTheMarker;
}
void CMultiSlider::SetMaker(int nPos)
{
if(m_RangeMin <= (float)nPos && (float)nPos <= m_RangeMax)
{
if(m_Markers.GetCount() < m_MarkersNum)
{
m_pnewMarker = new CMarker;
m_pnewMarker->m_Pos = nPos;
m_DragStartingPos = nPos;
SetRectangles(m_pnewMarker);
InsertMarker(m_pnewMarker);
Invalidate();
m_pnewMarker = NULL;
}
}
}
BOOL CMultiSlider::FindMarker(int nPos)
{
POSITION pos;
for(pos = m_Markers.GetHeadPosition();pos!=NULL;)
{
CMarker* pMarker = (CMarker*)m_Markers.GetNext(pos);
if(pMarker->m_Pos == nPos)
{
return TRUE;
}
}
return FALSE;
}

View File

@@ -0,0 +1,187 @@
#if !defined(AFX_MULTISLIDER_H__AC2B03B4_ABE0_11D3_9121_006008682811__INCLUDED_)
#define AFX_MULTISLIDER_H__AC2B03B4_ABE0_11D3_9121_006008682811__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MultiSlider.h : header file
//
#ifndef __AFXTEMPL_H__
#include "afxtempl.h"
#endif
#include "bubble.h"
/////////////////////////////////////////////////////////////////////////////
// CMultiSlider window
class CMarker : public CObject
{
public:
CMarker (/*int Idx*/)
{
m_Pos = -1;
m_mainRect.SetRectEmpty();
}
CMarker (const CMarker& src)
{
m_Pos = src.m_Pos;
m_mainRect = src.m_mainRect;
}
int m_Pos;
CRect m_mainRect;
const BOOL operator == (const CMarker& other)
{
return other.m_Pos == m_Pos && other.m_mainRect == m_mainRect;
}
const BOOL operator != (const CMarker& other)
{
return !(*this == other);
}
const CMarker& operator=(const CMarker& src)
{
m_Pos = src.m_Pos;
m_mainRect = src.m_mainRect;
return *this;
}
};
/*! \brief To recognize quicly if slider is vertical or not.*/
#define SLIDER_VERT 1
/*! \brief Layout mask element to decide whether to use integer or float (one digit after comma) format for numbers.*/
#define MLTSLD_INTEGERS 0x004
/*! \brief Layout mask element to decide whether displaying tooltips or not.*/
#define MLTSLD_DISPLAY_TOOLTIPS 0x008
/*! \class AFX_EXT_CLASS CMultiSlider : public CSliderCtrl
\brief Class for a slider with multiple markers.
This object is the excellent class by Terri Braxton, enhanced (I hope!) with some more features:
- Control now supports all possible orientations and configurations
- You can set a \b Layout \b mask defining several features of the control, included the possibility of
enabling (disabling) markers removal and marker crossing, the possibility of changing intervals run-time colours
(always possible in original control). You can also decide whether to use tooltips and focus rect, which sometimes
may be disturbing.
- Multiple dragging is introduced: if you have two markers in your control and you click on one of them holding
down CTRL button, both will be dragged, keeping their distance constant.
- A notification from the control is added, so that Parent window may consequentely update itself.
- The code has been slightly documented in standard Doxygen format.
LIMITS: I haven't tested it on all possible operating systems; it is possible that layout is not perfect in all possible
configurations. In addition to that the onPaint code is horribly huge and not modular - sorry for that, they don't pay me
for taking care only of this control!!! ;-)*/
class CMultiSlider : public CSliderCtrl
{
// Construction
public:
CMultiSlider(int LayoutMask = MLTSLD_DISPLAY_TOOLTIPS);
// Attributes
public:
CObList m_Markers;
CMarker* m_pnewMarker;
CMarker* m_pdraggedMarker;
CMarker* m_pSelectedMarker;
CMarker* m_pTTMarker;
CRect m_TTRect;
int prevMin, prevMax;
UINT uiToolTipEventId;
int iToolTipEventDelay;
bool fInit;
CRect m_TTWindow;
protected:
/*! \brief Set of flags concerning control appearance and behaviour.*/
int m_LayoutMask;
/*! \brief Number of markers.*/
int m_MarkersNum;
/*! \brief Orientation of the control, starting from TBS_BOTTOM (Idx=0) and proceeding Anticlockwise up to TBS_LEFT (Idx=3).*/
char m_StyleIdx;
/*! \brief Standard Windows cursor.*/
HCURSOR m_hCursorArrow;
/*! \brief Quite nice tooltip.*/
CBubble m_wndInfo;
/*! \brief Rectangle */
CRect sliderRect;
/*! \brief Control client area.*/
CRect clientRect;
/*! \brief Dimensions of a marker.*/
CRect thumbRect;
/*! \brief Flag allowing to invert the "direction" of the control (1 = right-to-left/downwards; -1 = left-to-right/upwards.*/
char m_RangeDir;
int m_RangeMax;
int m_RangeMin;
int m_RangeWidth;
bool m_bDragBoth;
int m_DragStartingPos;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMultiSlider)
protected:
//}}AFX_VIRTUAL
// Implementation
public:
BOOL FindMarker(int nPos);
void SetMaker(int nPos);
int GetMarkers(int *value);
int GetMarkersNum() { return m_Markers.GetCount(); }
void SetMarkersNum(int MarkersNum) {m_MarkersNum = MarkersNum;}
int GetMaxRange() { return m_RangeMax; }
int GetMinRange() { return m_RangeMin; }
bool GetRanges(int &min, int &max);
bool SetRanges(int min, int max, int MarkersNum = 0, int *NewPos = NULL);
virtual ~CMultiSlider();
void SetLayout(int LayoutMask) {m_LayoutMask = LayoutMask;}
bool GetLayoutFeature(int Feature) {return (m_LayoutMask & Feature) ? true : false;}
/*! \brief Added just to make the "Update slider" a bit safer ;-).*/
void Init(int Min, int Max, int MarkersNum, int *InitPos, int LayoutMask = -1);
// Generated message map functions
void ResetMarkers();
protected:
void GetMinMax(CPoint pt);
CRect GetMarkerRect(CMarker* pMI);
void SetRectangles(CMarker* pMarker);
void CleanUp() { ResetMarkers(); }
int InsertMarker(CMarker *pMarker);
bool RemoveLevelMarker(CMarker *pRemoved);
void Initialize();
void SetInfoWindow(CPoint &point);
void BuildTooltipText(CMarker* pMI, CString &text);
CMarker* MarkerHitTest(CPoint pt); //returns index of interval or -1 if not an interval
CMarker* GetNextMarker(POSITION &Pos);
CMarker* GetPrevMarker(POSITION &Pos);
void SetSliderValues(int *SliderMin, int *SliderWidth);
//{{AFX_MSG(CMultiSlider)
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MULTISLIDER_H__AC2B03B4_ABE0_11D3_9121_006008682811__INCLUDED_)

View File

@@ -0,0 +1,189 @@
// PointSlider.cpp : implementation file
//
#include "stdafx.h"
#include "effecteditor.h"
#include "PointSlider.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPointSlider
CPointSlider::CPointSlider()
{
m_nPointSize = 10;
m_nBoundaryMax = 100;
m_nBoundaryMin = 0;
m_nSelectPoint = -1;
}
CPointSlider::~CPointSlider()
{
}
BEGIN_MESSAGE_MAP(CPointSlider, CStatic)
//{{AFX_MSG_MAP(CPointSlider)
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPointSlider message handlers
int CPointSlider::GetWidth()
{
RECT rcRect;
GetClientRect(&rcRect);
return rcRect.right - rcRect.left;
}
int CPointSlider::GetHeight()
{
RECT rcRect;
GetClientRect(&rcRect);
return rcRect.bottom - rcRect.top;
}
void CPointSlider::SetPoint(int nPoint)
{
list<int>::iterator it;
BOOL bExist = FALSE;
for(it = m_lstPoint.begin(); it != m_lstPoint.end(); it++)
{
if((*it) == nPoint) { bExist = TRUE; break; }
}
if(!bExist)
{
m_lstPoint.push_back(nPoint);
Invalidate(TRUE);
}
}
void CPointSlider::SetBoundary(int nMin, int nMax)
{
m_nBoundaryMax = nMax;
m_nBoundaryMin = nMin;
}
void CPointSlider::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CDC memDC;
CBitmap memBmp, *oldBmp;
list<int>::iterator it;
int nPoint, nCenter, nSize = m_nPointSize / 2;
memDC.CreateCompatibleDC(&dc);
memBmp.CreateCompatibleBitmap(&dc, GetWidth(), GetHeight());
oldBmp = (CBitmap *)memDC.SelectObject(&memBmp);
memDC.FillSolidRect(0, 0, GetWidth(), GetHeight(), 0x00444444);
HBRUSH red, white, *old;
red = CreateSolidBrush(0x000000FF);
white = CreateSolidBrush(0x00FFFFFF);
old = (HBRUSH *)memDC.SelectObject(white);
for(it = m_lstPoint.begin(); it != m_lstPoint.end(); it++)
{
nPoint = *(it);
nCenter = (int)(((float)GetWidth() / (float)(m_nBoundaryMax - m_nBoundaryMin)) * nPoint);
if(m_nSelectPoint > -1 && m_nSelectPoint == nPoint)
{
memDC.SelectObject(red);
memDC.Ellipse(nCenter - nSize, 0, nCenter + nSize, GetHeight());
} else
{
memDC.SelectObject(white);
memDC.Ellipse(nCenter - nSize, 0, nCenter + nSize, GetHeight());
}
}
memDC.SelectObject(old);
DeleteObject(white);
DeleteObject(red);
dc.BitBlt(0, 0, GetWidth(), GetHeight(), &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(oldBmp);
// Do not call CStatic::OnPaint() for painting messages
}
void CPointSlider::DeletePoint(int nPoint)
{
list<int>::iterator it;
for(it = m_lstPoint.begin(); it != m_lstPoint.end(); it++)
{
if((*it) == nPoint) { m_lstPoint.erase(it); break; }
}
}
void CPointSlider::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatic::OnMouseMove(nFlags, point);
}
void CPointSlider::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
list<int>::iterator it;
int nSize = m_nPointSize / 2, nCenter;
BOOL bSelect = FALSE;
for(it = m_lstPoint.begin(); it != m_lstPoint.end(); it++)
{
nCenter = (int)(((float)GetWidth() / (float)(m_nBoundaryMax - m_nBoundaryMin)) * (*it));
if(nCenter - nSize <= point.x && point.x <= nCenter + nSize)
{
m_nSelectPoint = (*it);
bSelect = TRUE;
Invalidate(TRUE);
long wP = ((short)m_nSelectPoint << 16) | 0x0000FFFF;
long lP = (long)this->m_hWnd;
::SendMessage(this->GetParent()->m_hWnd, WM_HSCROLL, wP, lP);
break;
}
}
if(!bSelect)
{
m_nSelectPoint = -1;
Invalidate(TRUE);
}
CStatic::OnLButtonDown(nFlags, point);
}
void CPointSlider::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatic::OnLButtonUp(nFlags, point);
}
BOOL CPointSlider::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
MessageBox("!423","135");
}
return CStatic::PreTranslateMessage(pMsg);
}

View File

@@ -0,0 +1,72 @@
#if !defined(AFX_POINTSLIDER_H__85139495_A6E7_41E1_B083_335CADF31F84__INCLUDED_)
#define AFX_POINTSLIDER_H__85139495_A6E7_41E1_B083_335CADF31F84__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// PointSlider.h : header file
//
#pragma warning(disable:4786) // don't warn about browse name overflow.
#include <list>
using namespace std;
/////////////////////////////////////////////////////////////////////////////
// CPointSlider window
class CPointSlider : public CStatic
{
// Construction
public:
CPointSlider();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPointSlider)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_VIRTUAL
// Implementation
public:
void DeletePoint(int nPoint);
int GetNumPoint(void) { return m_lstPoint.size(); }
void SetPointSize(int nPointSize) { m_nPointSize = nPointSize; }
void Clear(void) { m_lstPoint.clear(); }
void SetBoundary(int nMin, int nMax);
void SetPoint(int nPoint);
int GetHeight(void);
int GetWidth(void);
virtual ~CPointSlider();
// Generated message map functions
protected:
int m_nSelectPoint;
int m_nPointSize;
list<int> m_lstPoint;
int m_nBoundaryMax;
int m_nBoundaryMin;
//{{AFX_MSG(CPointSlider)
afx_msg void OnPaint();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_POINTSLIDER_H__85139495_A6E7_41E1_B083_335CADF31F84__INCLUDED_)

View File

@@ -0,0 +1,99 @@
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : EffectEditor
========================================================================
AppWizard has created this EffectEditor application for you. This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your EffectEditor application.
EffectEditor.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
EffectEditor.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CEffectEditorApp application class.
EffectEditor.cpp
This is the main application source file that contains the application
class CEffectEditorApp.
EffectEditor.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
EffectEditor.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\EffectEditor.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file EffectEditor.rc.
res\EffectEditor.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
/////////////////////////////////////////////////////////////////////////////
For the main frame window:
MainFrm.h, MainFrm.cpp
These files contain the frame class CMainFrame, which is derived from
CFrameWnd and controls all SDI frame features.
/////////////////////////////////////////////////////////////////////////////
AppWizard creates one document type and one view:
EffectEditorDoc.h, EffectEditorDoc.cpp - the document
These files contain your CEffectEditorDoc class. Edit these files to
add your special document data and to implement file saving and loading
(via CEffectEditorDoc::Serialize).
EffectEditorView.h, EffectEditorView.cpp - the view of the document
These files contain your CEffectEditorView class.
CEffectEditorView objects are used to view CEffectEditorDoc objects.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named EffectEditor.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC42XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
For example, MFC42DEU.DLL contains resources translated to German.) If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.
/////////////////////////////////////////////////////////////////////////////

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,107 @@
#if !defined(AFX_SPHEREPAGE_H__157C6911_44AB_44A5_85E4_FFB9BD2EB66D__INCLUDED_)
#define AFX_SPHEREPAGE_H__157C6911_44AB_44A5_85E4_FFB9BD2EB66D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SpherePage.h : header file
//
#include "CusEdit.h"
#include "CommandManager.h"
#include "X3DEffectEditSphere.h"
/////////////////////////////////////////////////////////////////////////////
// CSpherePage dialog
class CSpherePage : public CPropertyPage
{
DECLARE_DYNCREATE(CSpherePage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void InitValue(void);
void Undo(CCommand *UndoCommand);
CSpherePage();
~CSpherePage();
BOOL m_bUpperUp;
BOOL m_bLowerUp;
BOOL m_bTexAni;
BOOL m_bTexStatic;
void SetKeyInfo(void);
// Dialog Data
//{{AFX_DATA(CSpherePage)
enum { IDD = IDD_SPHERE };
CComboBox m_cbSrc;
CComboBox m_cbDest;
CComboBox m_cbAddressV;
CComboBox m_cbAddressU;
CCusEdit m_edtUpperFactor;
CCusEdit m_edtTileV;
CCusEdit m_edtTileU;
CCusEdit m_edtTexFrame;
CCusEdit m_edtStartV;
CCusEdit m_edtStartU;
CCusEdit m_edtRadius;
CCusEdit m_edtLowerFactor;
CCusEdit m_edtHeightFactor;
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtCenZ;
CCusEdit m_edtCenY;
CCusEdit m_edtCenX;
CCusEdit m_edtAxisZ;
CCusEdit m_edtAxisY;
CCusEdit m_edtAxisX;
CCusEdit m_edtAlpha;
DWORD m_dwEndFrame;
BOOL m_bLowerVis;
DWORD m_dwSegment;
DWORD m_dwSidePlane;
DWORD m_dwStartFrame;
CString m_strTexture;
BOOL m_bUpperVis;
BOOL m_bUpperTex;
BOOL m_bLowerTex;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CSpherePage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CSpherePage)
afx_msg void OnCreate();
afx_msg void OnDelete();
afx_msg void OnBrowse();
afx_msg void OnTexstatic();
afx_msg void OnTexani();
afx_msg void OnUppervis();
afx_msg void OnLowervis();
virtual BOOL OnInitDialog();
afx_msg void OnUpperup();
afx_msg void OnLowerup();
afx_msg void OnUppertex();
afx_msg void OnLowertex();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
afx_msg void OnSelchangeCbaddressu();
afx_msg void OnSelchangeCbaddressv();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // !defined(AFX_SPHEREPAGE_H__157C6911_44AB_44A5_85E4_FFB9BD2EB66D__INCLUDED_)

View File

@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// EffectEditor.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

View File

@@ -0,0 +1,26 @@
// 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__7F14E5AF_8E43_46AC_AC6C_63D3914D81FC__INCLUDED_)
#define AFX_STDAFX_H__7F14E5AF_8E43_46AC_AC6C_63D3914D81FC__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__7F14E5AF_8E43_46AC_AC6C_63D3914D81FC__INCLUDED_)

View File

@@ -0,0 +1,372 @@
// X3DEditEffect.cpp: implementation of the CX3DEditEffect class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "EffectEditor.h"
#include "X3DEditEffect.h"
#include "X3DEffectEditParticle.h"
#include "X3DEffectEditBillboard.h"
#include "X3DEffectEditCylinder.h"
#include "X3DEffectEditPlane.h"
#include "X3DEffectEditSphere.h"
#include "X3DEffectEditMesh.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEditEffect::CX3DEditEffect()
{
m_dwUIDCounter = 0;
}
CX3DEditEffect::~CX3DEditEffect()
{
m_lstEditEffectObject.clear();
m_dwUIDCounter = 0;
}
void CX3DEditEffect::RenderPicked(unsigned long dwEffectNumber, unsigned long dwFrame)
{
list<CX3DEditObject *>::iterator it;
CX3DEditObject *pEffect;
unsigned long dwEffectCount = 0;
m_lpD3DDevice->SetVertexShader(LVERTEXFVF);
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
if(dwEffectCount == dwEffectNumber)
{
pEffect = (CX3DEditObject *)(*it);
pEffect->RenderNoTexture(dwFrame);
break;
}
dwEffectCount++;
}
}
unsigned long CX3DEditEffect::Pick(vector3 &vecStart, vector3 &vecEnd, unsigned long &dwEffectNumber)
{
list<CX3DEditObject *>::iterator it;
CX3DEditObject *pEffect;
unsigned long dwEffectKind, dwEffectKindTemp, dwCount = 0;
float fMinLength = 100000.0f, fLength;
dwEffectNumber = dwEffectKind = 0xFFFFFFFF;
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
pEffect = (CX3DEditObject *)(*it);
dwEffectKindTemp = pEffect->GetPick(vecStart, vecEnd, fLength);
if(fLength && (fLength < fMinLength))
{
fMinLength = fLength;
dwEffectNumber = dwCount;
dwEffectKind = dwEffectKindTemp;
}
dwCount++;
}
return dwEffectKind;
}
unsigned long CX3DEditEffect::AddEditObject(CX3DEditObject *pNewEffect)
{
pNewEffect->SetUID(++m_dwUIDCounter);
m_lstEditEffectObject.push_back(pNewEffect);
return m_lstEffect.size() - 1;
}
CX3DEditObject *CX3DEditEffect::GetEditObject(unsigned long dwEffectNumber)
{
list<CX3DEditObject *>::iterator it;
unsigned long dwEffectCount = 0;
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
if(dwEffectCount == dwEffectNumber) { return (CX3DEditObject *)(*it); }
dwEffectCount++;
}
return NULL;
}
CX3DEditObject *CX3DEditEffect::GetFindEditObject(unsigned long dwUID)
{
list<CX3DEditObject *>::iterator it;
CX3DEditObject *lpEffect;
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
lpEffect = (CX3DEditObject *)(*it);
if(lpEffect->GetUID() == dwUID) { return lpEffect; }
}
return NULL;
}
CX3DEffectBase *CX3DEditEffect::GetEffect(unsigned long dwKind, unsigned long dwEffectNumber)
{
list<CX3DEffectBase *>::iterator it;
CX3DEffectBase *lpEffect;
unsigned long dwEffectCount = 0;
for(it = m_lstEffect.begin(); it != m_lstEffect.end(); it++)
{
if(dwEffectCount == dwEffectNumber)
{
lpEffect = (CX3DEffectBase *)(*it);
if(lpEffect->GetEffectKind() == dwKind)
return lpEffect;
else
return NULL;
}
dwEffectCount++;
}
return NULL;
}
BOOL CX3DEditEffect::DeleteEditObject(unsigned long dwEffectNumber)
{
list<CX3DEditObject *>::iterator it;
unsigned long dwEffectCount = 0;
CX3DEditObject *pEffect;
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
if(dwEffectCount == dwEffectNumber)
{
pEffect = (CX3DEditObject *)(*it);
m_lstEditEffectObject.erase(it);
return TRUE;
}
dwEffectCount++;
}
return FALSE;
}
void CX3DEditEffect::Load(const char *strFilePath, const char *strFileName)
{
FILE *fp;
char strFile[MAX_PATH];
strcpy(strFile, strFilePath);
strcat(strFile, strFileName);
fp = fopen(strFile, "rb");
if(!fp) return;
CX3DEffectEditParticle *lpParticle;
CX3DEffectEditBillboard *lpBillboard;
CX3DEffectEditCylinder *lpCylinder;
CX3DEffectEditPlane *lpPlane;
CX3DEffectEditSphere *lpSphere;
CX3DEffectEditMesh *lpMesh;
unsigned short Size, Kind;
unsigned long i, dwStartFrame, dwEndFrame;
unsigned char len;
char strTextureFile[MAX_PATH], strTemp[MAX_PATH];
fread(&m_dwMaxFrame, 4, 1, fp);
fread(&m_dwFrameTick, 4, 1, fp);
fread(&m_fIncFrame, 4, 1, fp);
fread(&Size, 2, 1, fp);
for(i = 0; i < Size; i++)
{
fread(&Kind, 2, 1, fp);
fread(&len, 1, 1, fp);
if(len)
{
fread(strTemp, len, 1, fp);
strcpy(strTextureFile, strFilePath);
strcat(strTextureFile, strTemp);
char *tm = strrchr(strTemp,'\\');
strcpy(strTextureFile, tm);
} else
{
strcpy(strTextureFile, "");
}
switch(Kind)
{
case EFFECT_PARTICLE:
lpParticle = new CX3DEffectEditParticle;
AddEffect(lpParticle);
AddEditObject(lpParticle);
if(strTextureFile) lpParticle->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpParticle->Create(dwStartFrame, dwEndFrame);
lpParticle->SetVisibility(true);
lpParticle->SetEffectKind(Kind);
lpParticle->Load(fp, strFilePath);
lpParticle->CreateBuffer();
break;
case EFFECT_BILLBOARD:
lpBillboard = new CX3DEffectEditBillboard;
AddEffect(lpBillboard);
AddEditObject(lpBillboard);
if(strTextureFile) lpBillboard->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpBillboard->Create(dwStartFrame, dwEndFrame);
lpBillboard->SetEffectKind(Kind);
lpBillboard->SetVisibility(true);
lpBillboard->Load(fp, strFilePath);
lpBillboard->CreateBuffer();
break;
case EFFECT_CYLINDER:
lpCylinder = new CX3DEffectEditCylinder;
AddEffect(lpCylinder);
AddEditObject(lpCylinder);
if(strTextureFile) lpCylinder->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpCylinder->Create(dwStartFrame, dwEndFrame);
lpCylinder->SetEffectKind(Kind);
lpCylinder->SetVisibility(true);
lpCylinder->Load(fp, strFilePath);
lpCylinder->CreateBuffer();
break;
case EFFECT_PLANE:
lpPlane = new CX3DEffectEditPlane;
AddEffect(lpPlane);
AddEditObject(lpPlane);
if(strTextureFile) lpPlane->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpPlane->Create(dwStartFrame, dwEndFrame);
lpPlane->SetEffectKind(Kind);
lpPlane->SetVisibility(true);
lpPlane->Load(fp, strFilePath);
lpPlane->CreateBuffer();
break;
case EFFECT_SPHERE:
lpSphere = new CX3DEffectEditSphere;
AddEffect(lpSphere);
AddEditObject(lpSphere);
if(strTextureFile) lpSphere->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpSphere->Create(dwStartFrame, dwEndFrame);
lpSphere->SetVisibility(true);
lpSphere->SetEffectKind(Kind);
lpSphere->Load(fp, strFilePath);
lpSphere->CreateBuffer();
break;
case EFFECT_MESH:
lpMesh = new CX3DEffectEditMesh;
AddEffect(lpMesh);
AddEditObject(lpMesh);
if(strTextureFile) lpMesh->LoadTexture(strTextureFile);
fread(&dwStartFrame, 4, 1, fp);
fread(&dwEndFrame, 4, 1, fp);
lpMesh->Create(dwStartFrame, dwEndFrame);
lpMesh->SetVisibility(true);
lpMesh->SetEffectKind(Kind);
lpMesh->Load(fp, strFilePath);
lpMesh->CreateBuffer();
break;
default:
MessageBox(NULL, "에러", "에러", MB_OK);
fclose(fp);
return;
}
}
fclose(fp);
}
void CX3DEditEffect::Save(const char *strFilePath, const char *strFileName)
{
FILE *fp;
char strFile[MAX_PATH];
strcpy(strFile, strFilePath);
strcat(strFile, strFileName);
fp = fopen(strFile, "wb");
if(!fp) return;
list<CX3DEffectBase *>::iterator it;
CX3DEffectBase *pEffect;
unsigned short Size = m_lstEffect.size(), Kind;
unsigned char len;
unsigned long StartFrame, EndFrame;
char strTemp[MAX_PATH] , strTexture[MAX_PATH];
fwrite(&m_dwMaxFrame, 4, 1, fp);
fwrite(&m_dwFrameTick, 4, 1, fp);
fwrite(&m_fIncFrame, 4, 1, fp);
fwrite(&Size, 2, 1, fp);
for(it = m_lstEffect.begin(); it != m_lstEffect.end(); it++)
{
pEffect = (CX3DEffectBase *)(*it);
Kind = (unsigned short)pEffect->GetEffectKind();
StartFrame = pEffect->GetStartFrame();
EndFrame = pEffect->GetEndFrame();
fwrite(&Kind, 2, 1, fp);
if(strlen(pEffect->GetTextureFileName()))
{
strcpy(strTexture, pEffect->GetTextureFileName());
if(1)//strncmp(strTexture, strFilePath, strlen(strFilePath)))
{
//strcpy(strTemp, &strTexture[strlen(strFilePath)]);
sprintf(strTemp,"effectdds\\%s",strTexture);
} else {
MessageBox(NULL, "텍스쳐 폴더가 잘못됐으", "Effect Editor", MB_OK);
return;
}
len = strlen(strTemp) + 1;
fwrite(&len, 1, 1, fp);
fwrite(strTemp, len, 1, fp);
} else
{
len = 0;
fwrite(&len, 1, 1, fp);
}
fwrite(&StartFrame, 4, 1, fp);
fwrite(&EndFrame, 4, 1, fp);
pEffect->Save(fp, strFilePath);
}
fclose(fp);
}
unsigned long CX3DEditEffect::GetEffectKind(unsigned long dwEffectNumber)
{
list<CX3DEffectBase *>::iterator it;
unsigned long dwEffectCount = 0;
for(it = m_lstEffect.begin(); it != m_lstEffect.end(); it++)
{
if(dwEffectCount == dwEffectNumber) { return ((CX3DEffectBase *)(*it))->GetEffectKind(); }
dwEffectCount++;
}
return 0xFFFFFFFF;
}

View File

@@ -0,0 +1,54 @@
// X3DEditEffect.h: interface for the CX3DEditEffect class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEDITEFFECT_H__ED759873_905C_4457_A2E5_16103E6019E8__INCLUDED_)
#define AFX_X3DEDITEFFECT_H__ED759873_905C_4457_A2E5_16103E6019E8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffect.h"
#include "X3DEditObject.h"
class CX3DEditEffect : public CX3DEffect
{
protected:
list<CX3DEditObject *> m_lstEditEffectObject;
BOOL m_bPlay;
unsigned long m_dwUIDCounter;
public:
void Save(const char *strFilePath, const char *strFileName);
void Load(const char *strFilePath, const char *strFileName);
CX3DEditEffect();
virtual ~CX3DEditEffect();
unsigned long AddEditObject(CX3DEditObject *pNewEditObject);
CX3DEditObject *GetEditObject(unsigned long dwEffectNumber);
CX3DEffectBase *GetEffect(unsigned long dwKind, unsigned long dwEffectNumber);
CX3DEditObject *GetFindEditObject(unsigned long dwUID);
BOOL DeleteEditObject(unsigned long dwEffectNumber);
unsigned long GetEffectSize(void) { return m_lstEditEffectObject.size(); }
unsigned long GetEffectKind(unsigned long dwEffectNumber);
void SetPlay(BOOL bPlay)
{
m_bPlay = bPlay;
list<CX3DEditObject *>::iterator it;
for(it = m_lstEditEffectObject.begin(); it != m_lstEditEffectObject.end(); it++)
{
(*it)->SetPlay(m_bPlay);
}
}
BOOL GetPlay(void) { return m_bPlay; }
void RenderPicked(unsigned long dwEffectNumber, unsigned long dwFrame);
unsigned long Pick(vector3 &vecStart, vector3 &vecEnd, unsigned long &dwEffectNumber);
};
#endif // !defined(AFX_X3DEDITEFFECT_H__ED759873_905C_4457_A2E5_16103E6019E8__INCLUDED_)

View File

@@ -0,0 +1,28 @@
// X3DEditObject.cpp: implementation of the CX3DEditObject class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEditObject.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEditObject::CX3DEditObject()
{
}
CX3DEditObject::~CX3DEditObject()
{
}

View File

@@ -0,0 +1,31 @@
// X3DEditObject.h: interface for the CX3DEditObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEDITOBJECT_H__E0D946DC_8D68_49EC_A807_C34D30C45060__INCLUDED_)
#define AFX_X3DEDITOBJECT_H__E0D946DC_8D68_49EC_A807_C34D30C45060__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <z3dmath.h>
class CX3DEditObject
{
protected:
unsigned long m_dwUID;
public:
CX3DEditObject();
virtual ~CX3DEditObject();
unsigned long GetUID(void) { return m_dwUID; }
void SetUID(unsigned long dwUID) { m_dwUID = dwUID; }
virtual void SetPlay(BOOL bPlay) = 0;
virtual void RenderNoTexture(unsigned long dwFrame) = 0; // ¿¡µðÅÍ ¿ë
virtual unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength) = 0; // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEDITOBJECT_H__E0D946DC_8D68_49EC_A807_C34D30C45060__INCLUDED_)

View File

@@ -0,0 +1,96 @@
// X3DEffectEditBillboard.cpp: implementation of the CX3DEffectEditBillboard class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEffectEditBillboard.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditBillboard::CX3DEffectEditBillboard()
{
}
CX3DEffectEditBillboard::~CX3DEffectEditBillboard()
{
}
void CX3DEffectEditBillboard::RenderNoTexture(unsigned long dwFrame)
{
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, m_dwSrcBlending);
m_lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, m_dwDestBlending);
m_lpD3DDevice->SetStreamSource(0, m_lpVertices, sizeof(LVertex));
m_lpD3DDevice->SetVertexShader(LVERTEXFVF);
m_lpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
}
unsigned long CX3DEffectEditBillboard::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
vector3 vecVertices[3];
LVertex *pVertices;
if(FAILED( m_lpVertices->Lock( 0, 4 * sizeof(LVertex), (unsigned char **)&pVertices, 0 ) ) ) return FALSE;
vecVertices[0] = pVertices[0].v;
vecVertices[1] = pVertices[1].v;
vecVertices[2] = pVertices[2].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
vecVertices[0] = pVertices[1].v;
vecVertices[1] = pVertices[2].v;
vecVertices[2] = pVertices[3].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
m_lpVertices->Unlock();
fLength = 0.0f;
return 0xFFFFFFFF;
}
/*void CX3DEffectEditBillboard::EditFrame(unsigned long dwFrame, unsigned long dwNewFrame)
{
LPPlaneKey pPlaneKey;
if(!m_lstAniKey.empty())
{
PlaneKeyList::iterator it = m_lstAniKey.find(dwFrame);
if(it != m_lstAniKey.end())
{
pPlaneKey = (LPPlaneKey)((*it).second);
m_lstAniKey.erase(it);
pPlaneKey->dwFrame = dwNewFrame;
m_lstAniKey.insert(PL_VT(pPlaneKey->dwFrame, pPlaneKey));
}
}
}*/
BOOL CX3DEffectEditBillboard::ArrangementTexture(const char *strPathName)
{
if(!strncmp(m_strTextureFile, strPathName, strlen(strPathName)))
{
strcpy(m_strTextureFile, &m_strTextureFile[strlen(strPathName)]);
return TRUE;
} else
return FALSE;
}

View File

@@ -0,0 +1,29 @@
// X3DEffectEditBillboard.h: interface for the CX3DEffectEditBillboard class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITBILLBOARD_H__26B44C18_4E5A_42C3_9117_FBB6FE72D79B__INCLUDED_)
#define AFX_X3DEFFECTEDITBILLBOARD_H__26B44C18_4E5A_42C3_9117_FBB6FE72D79B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffectBillboard.h"
#include "X3DEditObject.h"
class CX3DEffectEditBillboard :
public CX3DEffectBillboard,
public CX3DEditObject
{
public:
BOOL ArrangementTexture(const char *strPathName);
CX3DEffectEditBillboard();
~CX3DEffectEditBillboard();
void SetPlay(BOOL bPlay) { };
void RenderNoTexture(unsigned long dwFrame); // ¿¡µðÅÍ ¿ë
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEFFECTEDITBILLBOARD_H__26B44C18_4E5A_42C3_9117_FBB6FE72D79B__INCLUDED_)

View File

@@ -0,0 +1,89 @@
// X3DEffectEditCylinder.cpp: implementation of the CX3DEffectEditCylinder class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEffectEditCylinder.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditCylinder::CX3DEffectEditCylinder()
{
}
CX3DEffectEditCylinder::~CX3DEffectEditCylinder()
{
}
void CX3DEffectEditCylinder::RenderNoTexture(unsigned long dwFrame)
{
if(m_lpVertices == NULL) return;
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, m_dwSrcBlending);
m_lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, m_dwDestBlending);
m_lpD3DDevice->SetStreamSource(0, m_lpVertices, sizeof(LVertex));
m_lpD3DDevice->SetVertexShader(LVERTEXFVF);
m_lpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, m_dwPrimitive);
}
unsigned long CX3DEffectEditCylinder::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
vector3 vecVertices[3];
unsigned long i;
LVertex *pVertices;
if(FAILED( m_lpVertices->Lock( 0, ((m_dwSidePlane + 1) * 2) * sizeof(LVertex), (unsigned char **)&pVertices, 0 ) ) )
return FALSE;
for(i = 0; i < m_dwSidePlane; i++)
{
vecVertices[0] = pVertices[i * 2 + 0].v;
vecVertices[1] = pVertices[i * 2 + 1].v;
vecVertices[2] = pVertices[i * 2 + 2].v;
if(!(vecVertices[0] == vecVertices[1] || vecVertices[0] == vecVertices[2] || vecVertices[1] == vecVertices[2]))
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
vecVertices[0] = pVertices[i * 2 + 1].v;
vecVertices[1] = pVertices[i * 2 + 3].v;
vecVertices[2] = pVertices[i * 2 + 2].v;
if(!(vecVertices[0] == vecVertices[1] || vecVertices[0] == vecVertices[2] || vecVertices[1] == vecVertices[2]))
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
}
m_lpVertices->Unlock();
fLength = 0.0f;
return 0xFFFFFFFF;
}
BOOL CX3DEffectEditCylinder::ArrangementTexture(const char *strPathName)
{
if(!strncmp(m_strTextureFile, strPathName, strlen(strPathName)))
{
strcpy(m_strTextureFile, &m_strTextureFile[strlen(strPathName)]);
return TRUE;
} else
return FALSE;
}

View File

@@ -0,0 +1,29 @@
// X3DEffectEditCylinder.h: interface for the CX3DEffectEditCylinder class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITCYLINDER_H__DC5A2311_8922_4F75_9C00_FBA601D5367F__INCLUDED_)
#define AFX_X3DEFFECTEDITCYLINDER_H__DC5A2311_8922_4F75_9C00_FBA601D5367F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffectCylinder.h"
#include "X3DEditObject.h"
class CX3DEffectEditCylinder :
public CX3DEffectCylinder,
public CX3DEditObject
{
public:
BOOL ArrangementTexture(const char *strPathName);
CX3DEffectEditCylinder();
~CX3DEffectEditCylinder();
void SetPlay(BOOL bPlay) { };
void RenderNoTexture(unsigned long dwFrame); // ¿¡µðÅÍ ¿ë
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEFFECTEDITCYLINDER_H__DC5A2311_8922_4F75_9C00_FBA601D5367F__INCLUDED_)

View File

@@ -0,0 +1,51 @@
// X3DEffectEditMesh.cpp: implementation of the CX3DEffectEditMesh class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effecteditor.h"
#include "X3DEffect.h"
#include "X3DEffectEditMesh.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditMesh::CX3DEffectEditMesh()
{
}
CX3DEffectEditMesh::~CX3DEffectEditMesh()
{
}
BOOL CX3DEffectEditMesh::ArrangementMesh(const char *strPathName)
{
return TRUE;
}
void CX3DEffectEditMesh::RenderNoTexture(unsigned long dwFrame)
{
//Mesh->SetNullTexture(TRUE);
m_GemRender->SetNullTexture(true);
D3DXVECTOR3 *vecCenter = (D3DXVECTOR3 *)((CX3DEffect *)m_lpLocalEffect)->GetCenter();
m_GemRender->SetEffectPos(*vecCenter);
m_GemRender->Render();
m_GemRender->SetNullTexture(false);
//Mesh->Render(m_lpD3DDevice, *vecCenter);
//Mesh->SetNullTexture(FALSE);
}
unsigned long CX3DEffectEditMesh::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
fLength = 1.0f;
return m_dwEffectKind;
}

View File

@@ -0,0 +1,61 @@
// X3DEffectEditMesh.h: interface for the CX3DEffectEditMesh class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITMESH_H__45EB7FF1_B319_4EBA_99A9_E57437B77970__INCLUDED_)
#define AFX_X3DEFFECTEDITMESH_H__45EB7FF1_B319_4EBA_99A9_E57437B77970__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffectMesh.h"
#include "X3DEditObject.h"
class CX3DEffectEditMesh :
public CX3DEffectMesh,
public CX3DEditObject
{
public:
BOOL ArrangementMesh(const char *strPathName);
CX3DEffectEditMesh();
virtual ~CX3DEffectEditMesh();
unsigned char GetObjectRColor(unsigned long dwFrame, unsigned long dwNum)
{
m_moMesh[dwNum].m_lstColor.InterpolationC(dwFrame, m_lColor);
return m_lColor.r;
}
unsigned char GetObjectGColor(unsigned long dwFrame, unsigned long dwNum)
{
m_moMesh[dwNum].m_lstColor.InterpolationC(dwFrame, m_lColor);
return m_lColor.g;
}
unsigned char GetObjectBColor(unsigned long dwFrame, unsigned long dwNum)
{
m_moMesh[dwNum].m_lstColor.InterpolationC(dwFrame, m_lColor);
return m_lColor.b;
}
unsigned char GetObjectAlpha(unsigned long dwFrame, unsigned long dwNum)
{
m_moMesh[dwNum].m_lstColor.InterpolationC(dwFrame, m_lColor);
return m_lColor.a;
}
void SetPlay(BOOL bPlay)
{
if(bPlay)
{
m_GemRender->SetStartTexAni(true);
// Mesh->StartTexAni(true);
} else
{
m_GemRender->SetStartTexAni(false);
// Mesh->StartTexAni(false);
}
}
void RenderNoTexture(unsigned long dwFrame); // ¿¡µðÅÍ ¿ë
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEFFECTEDITMESH_H__45EB7FF1_B319_4EBA_99A9_E57437B77970__INCLUDED_)

View File

@@ -0,0 +1,280 @@
// X3DEffectEditParticle.cpp: implementation of the CX3DEffectEditParticle class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEffectEditParticle.h"
#include "X3DEditEffect.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditParticle::CX3DEffectEditParticle()
{
unsigned long i;
m_verEmitter[0].diff = color(rand() % 256, rand() % 256, rand() % 256);
m_verEmitter[0].diff.a = 120;
m_verEmitter[0].spec = color(0xFF, 0xFF, 0xFF, 0xFF);
m_verEmitter[0].tu = m_verEmitter[0].tv = 0.0f;
for(i = 1; i < 8; i++)
{
m_verEmitter[i].diff = m_verEmitter[0].diff;
m_verEmitter[i].spec = m_verEmitter[0].spec;
m_verEmitter[i].tu = m_verEmitter[i].tv = 0.0f;
}
m_dwEmitterIndex[ 0] = 0; m_dwEmitterIndex[ 1] = 1; m_dwEmitterIndex[ 2] = 2;
m_dwEmitterIndex[ 3] = 1; m_dwEmitterIndex[ 4] = 3; m_dwEmitterIndex[ 5] = 2;
m_dwEmitterIndex[ 6] = 3; m_dwEmitterIndex[ 7] = 1; m_dwEmitterIndex[ 8] = 7;
m_dwEmitterIndex[ 9] = 1; m_dwEmitterIndex[10] = 5; m_dwEmitterIndex[11] = 7;
m_dwEmitterIndex[12] = 5; m_dwEmitterIndex[13] = 4; m_dwEmitterIndex[14] = 7;
m_dwEmitterIndex[15] = 4; m_dwEmitterIndex[16] = 6; m_dwEmitterIndex[17] = 7;
m_dwEmitterIndex[18] = 0; m_dwEmitterIndex[19] = 2; m_dwEmitterIndex[20] = 4;
m_dwEmitterIndex[21] = 4; m_dwEmitterIndex[22] = 2; m_dwEmitterIndex[23] = 6;
m_dwEmitterIndex[24] = 2; m_dwEmitterIndex[25] = 3; m_dwEmitterIndex[26] = 7;
m_dwEmitterIndex[27] = 2; m_dwEmitterIndex[28] = 7; m_dwEmitterIndex[29] = 6;
m_dwEmitterIndex[30] = 0; m_dwEmitterIndex[31] = 4; m_dwEmitterIndex[32] = 5;
m_dwEmitterIndex[33] = 0; m_dwEmitterIndex[34] = 5; m_dwEmitterIndex[35] = 1;
m_verVolume[0].diff = color(0xFF, 0xFF, 0xFF);
m_verVolume[0].spec = color(0xFF, 0xFF, 0xFF, 0xFF);
m_verVolume[0].tu = m_verVolume[0].tv = 0.0f;
for(i = 1; i < 32; i++)
{
m_verVolume[i].diff = m_verVolume[0].diff;
m_verVolume[i].spec = m_verVolume[0].spec;
m_verVolume[i].tu = m_verVolume[i].tv = 0.0f;
}
m_dwVolumeIndex[ 0] = 0; m_dwVolumeIndex[ 1] = 1;
m_dwVolumeIndex[ 2] = 1; m_dwVolumeIndex[ 3] = 2;
m_dwVolumeIndex[ 4] = 2; m_dwVolumeIndex[ 5] = 3;
m_dwVolumeIndex[ 6] = 3; m_dwVolumeIndex[ 7] = 4;
m_dwVolumeIndex[ 8] = 4; m_dwVolumeIndex[ 9] = 5;
m_dwVolumeIndex[10] = 5; m_dwVolumeIndex[11] = 6;
m_dwVolumeIndex[12] = 6; m_dwVolumeIndex[13] = 7;
m_dwVolumeIndex[14] = 7; m_dwVolumeIndex[15] = 8;
m_dwVolumeIndex[16] = 8; m_dwVolumeIndex[17] = 9;
m_dwVolumeIndex[18] = 9; m_dwVolumeIndex[19] = 10;
m_dwVolumeIndex[20] = 10; m_dwVolumeIndex[21] = 11;
m_dwVolumeIndex[22] = 11; m_dwVolumeIndex[23] = 12;
m_dwVolumeIndex[24] = 12; m_dwVolumeIndex[25] = 13;
m_dwVolumeIndex[26] = 13; m_dwVolumeIndex[27] = 14;
m_dwVolumeIndex[28] = 14; m_dwVolumeIndex[29] = 15;
m_dwVolumeIndex[30] = 15; m_dwVolumeIndex[31] = 0;
m_dwVolumeIndex[32] = 16; m_dwVolumeIndex[33] = 17;
m_dwVolumeIndex[34] = 17; m_dwVolumeIndex[35] = 18;
m_dwVolumeIndex[36] = 18; m_dwVolumeIndex[37] = 19;
m_dwVolumeIndex[38] = 19; m_dwVolumeIndex[39] = 20;
m_dwVolumeIndex[40] = 20; m_dwVolumeIndex[41] = 21;
m_dwVolumeIndex[42] = 21; m_dwVolumeIndex[43] = 22;
m_dwVolumeIndex[44] = 22; m_dwVolumeIndex[45] = 23;
m_dwVolumeIndex[46] = 23; m_dwVolumeIndex[47] = 24;
m_dwVolumeIndex[48] = 24; m_dwVolumeIndex[49] = 25;
m_dwVolumeIndex[50] = 25; m_dwVolumeIndex[51] = 26;
m_dwVolumeIndex[52] = 26; m_dwVolumeIndex[53] = 27;
m_dwVolumeIndex[54] = 27; m_dwVolumeIndex[55] = 28;
m_dwVolumeIndex[56] = 28; m_dwVolumeIndex[57] = 29;
m_dwVolumeIndex[58] = 29; m_dwVolumeIndex[59] = 30;
m_dwVolumeIndex[60] = 30; m_dwVolumeIndex[61] = 31;
m_dwVolumeIndex[62] = 31; m_dwVolumeIndex[63] = 16;
}
CX3DEffectEditParticle::~CX3DEffectEditParticle()
{
}
void CX3DEffectEditParticle::RenderNoTexture(unsigned long dwFrame)
{
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 24, 12,
m_dwEmitterIndex, D3DFMT_INDEX16, m_verEmitter, sizeof(LVertex));
}
unsigned long CX3DEffectEditParticle::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
vector3 vecVertices[3];
for(unsigned long i = 0; i < 12; i++)
{
vecVertices[0] = m_verEmitter[m_dwEmitterIndex[i * 3 + 0]].v;
vecVertices[1] = m_verEmitter[m_dwEmitterIndex[i * 3 + 1]].v;
vecVertices[2] = m_verEmitter[m_dwEmitterIndex[i * 3 + 2]].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength)) return m_dwEffectKind;
}
fLength = 0.0f;
return 0xFFFFFFFF;
}
void CX3DEffectEditParticle::Render(void)
{
if(m_lpVertices == NULL) return;
if(((CX3DEditEffect *)m_lpLocalEffect)->GetPlay())
{
CX3DEffectParticle::Render();
return;
}
m_verEmitter[0].v = vector3(-5.0f, 5.0f, 5.0f);
m_verEmitter[1].v = vector3( 5.0f, 5.0f, 5.0f);
m_verEmitter[2].v = vector3(-5.0f, 5.0f, -5.0f);
m_verEmitter[3].v = vector3( 5.0f, 5.0f, -5.0f);
m_verEmitter[4].v = vector3(-5.0f, -5.0f, 5.0f);
m_verEmitter[5].v = vector3( 5.0f, -5.0f, 5.0f);
m_verEmitter[6].v = vector3(-5.0f, -5.0f, -5.0f);
m_verEmitter[7].v = vector3( 5.0f, -5.0f, -5.0f);
z3d::VectorRotate(m_verEmitter[0].v, m_verEmitter[0].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[1].v, m_verEmitter[1].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[2].v, m_verEmitter[2].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[3].v, m_verEmitter[3].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[4].v, m_verEmitter[4].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[5].v, m_verEmitter[5].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[6].v, m_verEmitter[6].v, m_quatAxis);
z3d::VectorRotate(m_verEmitter[7].v, m_verEmitter[7].v, m_quatAxis);
m_verEmitter[0].v += m_vecCenter;
m_verEmitter[1].v += m_vecCenter;
m_verEmitter[2].v += m_vecCenter;
m_verEmitter[3].v += m_vecCenter;
m_verEmitter[4].v += m_vecCenter;
m_verEmitter[5].v += m_vecCenter;
m_verEmitter[6].v += m_vecCenter;
m_verEmitter[7].v += m_vecCenter;
m_verEmitter[0].diff.a = 255; m_verEmitter[1].diff.a = 255;
m_verEmitter[2].diff.a = 255; m_verEmitter[3].diff.a = 255;
m_verEmitter[4].diff.a = 255; m_verEmitter[5].diff.a = 255;
m_verEmitter[6].diff.a = 255; m_verEmitter[7].diff.a = 255;
m_verEmitter[7].diff.a *= m_fAlpha;
m_verEmitter[0].diff.a = m_verEmitter[1].diff.a = m_verEmitter[2].diff.a = m_verEmitter[3].diff.a =
m_verEmitter[4].diff.a = m_verEmitter[5].diff.a = m_verEmitter[6].diff.a = m_verEmitter[7].diff.a;
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 24, 12,
m_dwEmitterIndex, D3DFMT_INDEX16, m_verEmitter, sizeof(LVertex));
switch(m_dwVolumeType)
{
case 1:
m_verVolume[ 0].v = m_verVolume[ 4].v = vector3(-m_fVolX / 2, m_fVolY / 2, m_fVolZ / 2);
m_verVolume[ 3].v = m_verVolume[ 7].v = vector3( m_fVolX / 2, m_fVolY / 2, m_fVolZ / 2);
m_verVolume[ 1].v = m_verVolume[13].v = vector3(-m_fVolX / 2, m_fVolY / 2, -m_fVolZ / 2);
m_verVolume[ 2].v = m_verVolume[14].v = vector3( m_fVolX / 2, m_fVolY / 2, -m_fVolZ / 2);
m_verVolume[ 5].v = m_verVolume[11].v = vector3(-m_fVolX / 2, -m_fVolY / 2, m_fVolZ / 2);
m_verVolume[ 6].v = m_verVolume[ 8].v = vector3( m_fVolX / 2, -m_fVolY / 2, m_fVolZ / 2);
m_verVolume[10].v = m_verVolume[12].v = vector3(-m_fVolX / 2, -m_fVolY / 2, -m_fVolZ / 2);
m_verVolume[ 9].v = m_verVolume[15].v = vector3( m_fVolX / 2, -m_fVolY / 2, -m_fVolZ / 2);
z3d::VectorRotate(m_verVolume[ 0].v, m_verVolume[ 0].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 1].v, m_verVolume[ 1].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 2].v, m_verVolume[ 2].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 3].v, m_verVolume[ 3].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 4].v, m_verVolume[ 4].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 5].v, m_verVolume[ 5].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 6].v, m_verVolume[ 6].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 7].v, m_verVolume[ 7].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 8].v, m_verVolume[ 8].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[ 9].v, m_verVolume[ 9].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[10].v, m_verVolume[10].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[11].v, m_verVolume[11].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[12].v, m_verVolume[12].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[13].v, m_verVolume[13].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[14].v, m_verVolume[14].v, m_quatAxis);
z3d::VectorRotate(m_verVolume[15].v, m_verVolume[15].v, m_quatAxis);
m_verVolume[ 0].v += m_vecCenter;
m_verVolume[ 1].v += m_vecCenter;
m_verVolume[ 2].v += m_vecCenter;
m_verVolume[ 3].v += m_vecCenter;
m_verVolume[ 4].v += m_vecCenter;
m_verVolume[ 5].v += m_vecCenter;
m_verVolume[ 6].v += m_vecCenter;
m_verVolume[ 7].v += m_vecCenter;
m_verVolume[ 8].v += m_vecCenter;
m_verVolume[ 9].v += m_vecCenter;
m_verVolume[10].v += m_vecCenter;
m_verVolume[11].v += m_vecCenter;
m_verVolume[12].v += m_vecCenter;
m_verVolume[13].v += m_vecCenter;
m_verVolume[14].v += m_vecCenter;
m_verVolume[15].v += m_vecCenter;
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINELIST, 0, 30, 15,
m_dwVolumeIndex, D3DFMT_INDEX16, m_verVolume, sizeof(LVertex));
break;
case 2:
{
unsigned long i;
float degree;
for(i = 0; i < 16; i++)
{
degree = FLOAT_DEG(i * 22.5f);
m_verVolume[i].v = vector3(m_fRadius * cosf(degree), 0, m_fRadius * sinf(degree));
z3d::VectorRotate(m_verVolume[i].v, m_verVolume[i].v, m_quatAxis);
m_verVolume[i].v += m_vecCenter;
m_verVolume[i + 16].v = vector3(m_fInnerRadius * cosf(degree), 0, m_fInnerRadius * sinf(degree));
z3d::VectorRotate(m_verVolume[i + 16].v, m_verVolume[i + 16].v, m_quatAxis);
m_verVolume[i + 16].v += m_vecCenter;
}
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->DrawIndexedPrimitiveUP(D3DPT_LINELIST, 0, 64, 32,
m_dwVolumeIndex, D3DFMT_INDEX16, m_verVolume, sizeof(LVertex));
}
break;
}
}
BOOL CX3DEffectEditParticle::Interpolation(float fFrame)
{
if(m_lpVertices == NULL) return FALSE;
///////////////////////////////////////////////////////////////////////////////////
if(((CX3DEditEffect *)m_lpLocalEffect)->GetPlay())
{
if(!CX3DEffectParticle::Interpolation(fFrame)) return FALSE;
return TRUE;
}
m_lstCenter.Interpolation(fFrame, m_vecCenter);
m_lstEForce.Interpolation(fFrame, m_vecEForce);
m_lstAlpha.Interpolation(fFrame, m_fAlpha);
m_lstAxis.InterpolationQ(fFrame, m_quatAxis);
m_lstDirection.InterpolationQ(fFrame, m_quatDir);
m_lstPower.Interpolation(fFrame, m_fPower);
m_lstAngle.Interpolation(fFrame, m_fAngle);
///////////////////////////////////////////////////////////////////////////////////
return TRUE;
}
BOOL CX3DEffectEditParticle::ArrangementTexture(const char *strPathName)
{
if(!strncmp(m_strTextureFile, strPathName, strlen(strPathName)))
{
strcpy(m_strTextureFile, &m_strTextureFile[strlen(strPathName)]);
return TRUE;
} else
return FALSE;
}

View File

@@ -0,0 +1,38 @@
// X3DEffectEditParticle.h: interface for the CX3DEffectEditParticle class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITPARTICLE_H__B7F8F329_65B9_4EAF_94F4_654C29D9BE9C__INCLUDED_)
#define AFX_X3DEFFECTEDITPARTICLE_H__B7F8F329_65B9_4EAF_94F4_654C29D9BE9C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffectParticle.h"
#include "X3DEditObject.h"
class CX3DEffectEditParticle :
public CX3DEffectParticle,
public CX3DEditObject
{
protected:
// Editor용 버퍼
LVertex m_verEmitter[8]; // 이미터 버텍스 정보
unsigned short m_dwEmitterIndex[36]; // 이미터 버텍스 인덱스 정보
LVertex m_verVolume[32]; // 볼륨 버텍스 정보
unsigned short m_dwVolumeIndex[64]; // 볼륨 버텍스 인덱스 정보
public:
BOOL ArrangementTexture(const char *strPathName);
BOOL Interpolation(float fFrame);
void Render(void);
CX3DEffectEditParticle();
~CX3DEffectEditParticle();
void SetPlay(BOOL bPlay) { };
void RenderNoTexture(unsigned long dwFrame); // 에디터 용
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // 에디터 용
};
#endif // !defined(AFX_X3DEFFECTEDITPARTICLE_H__B7F8F329_65B9_4EAF_94F4_654C29D9BE9C__INCLUDED_)

View File

@@ -0,0 +1,79 @@
// X3DEffectEditPlane.cpp: implementation of the CX3DEffectEditPlane class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEffectEditPlane.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditPlane::CX3DEffectEditPlane()
{
}
CX3DEffectEditPlane::~CX3DEffectEditPlane()
{
}
void CX3DEffectEditPlane::RenderNoTexture(unsigned long dwFrame)
{
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, m_dwSrcBlending);
m_lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, m_dwDestBlending);
m_lpD3DDevice->SetStreamSource(0, m_lpVertices, sizeof(LVertex));
m_lpD3DDevice->SetVertexShader(LVERTEXFVF);
m_lpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
}
unsigned long CX3DEffectEditPlane::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
vector3 vecVertices[3];
LVertex *pVertices;
if(FAILED( m_lpVertices->Lock( 0, 4 * sizeof(LVertex), (unsigned char **)&pVertices, 0 ) ) ) return FALSE;
vecVertices[0] = pVertices[0].v;
vecVertices[1] = pVertices[1].v;
vecVertices[2] = pVertices[2].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
vecVertices[0] = pVertices[1].v;
vecVertices[1] = pVertices[2].v;
vecVertices[2] = pVertices[3].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVertices->Unlock();
return m_dwEffectKind;
}
m_lpVertices->Unlock();
fLength = 0.0f;
return 0xFFFFFFFF;
}
BOOL CX3DEffectEditPlane::ArrangementTexture(const char *strPathName)
{
if(!strncmp(m_strTextureFile, strPathName, strlen(strPathName)))
{
strcpy(m_strTextureFile, &m_strTextureFile[strlen(strPathName)]);
return TRUE;
} else
return FALSE;
}

View File

@@ -0,0 +1,29 @@
// X3DEffectEditPlane.h: interface for the CX3DEffectEditPlane class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITPLANE_H__1614E0F3_9513_49C6_A289_1CDA713F2A12__INCLUDED_)
#define AFX_X3DEFFECTEDITPLANE_H__1614E0F3_9513_49C6_A289_1CDA713F2A12__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEffectPlane.h"
#include "X3DEditObject.h"
class CX3DEffectEditPlane :
public CX3DEffectPlane,
public CX3DEditObject
{
public:
BOOL ArrangementTexture(const char *strPathName);
CX3DEffectEditPlane();
~CX3DEffectEditPlane();
void SetPlay(BOOL bPlay) { };
void RenderNoTexture(unsigned long dwFrame); // ¿¡µðÅÍ ¿ë
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEFFECTEDITPLANE_H__1614E0F3_9513_49C6_A289_1CDA713F2A12__INCLUDED_)

View File

@@ -0,0 +1,93 @@
// X3DEffectEditSphere.cpp: implementation of the CX3DEffectEditSphere class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "effectEditor.h"
#include "X3DEffectEditSphere.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CX3DEffectEditSphere::CX3DEffectEditSphere()
{
}
CX3DEffectEditSphere::~CX3DEffectEditSphere()
{
}
void CX3DEffectEditSphere::RenderNoTexture(unsigned long dwFrame)
{
if(m_lpVertices == NULL) return;
m_lpD3DDevice->SetTexture(0, NULL);
m_lpD3DDevice->SetRenderState(D3DRS_SRCBLEND, m_dwSrcBlending);
m_lpD3DDevice->SetRenderState(D3DRS_DESTBLEND, m_dwDestBlending);
m_lpD3DDevice->SetStreamSource(0, m_lpVertices, sizeof(LVertex));
m_lpD3DDevice->SetVertexShader(LVERTEXFVF);
m_lpD3DDevice->SetIndices(m_lpVerticeIndex, 0);
m_lpD3DDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, m_dwNumVertex, 0, m_dwPrimitive);
}
unsigned long CX3DEffectEditSphere::GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength)
{
vector3 vecVertices[3];
unsigned long i;
LVertex *pVertices;
if(FAILED( m_lpVertices->Lock( 0, (m_dwSidePlane + 1) * (m_dwSegment + 1) * 2 * sizeof(LVertex), (unsigned char **)&pVertices, 0 ) ) )
return FALSE;
unsigned short *pVerticeIndex;
m_lpVerticeIndex->Lock(0, m_dwSidePlane * m_dwTotalSegment * 2 * 3 * sizeof(unsigned short), (unsigned char **)&pVerticeIndex, 0);
for(i = 0; i < m_dwSidePlane * m_dwTotalSegment; i++)
{
vecVertices[0] = pVertices[pVerticeIndex[i * 6 + 0]].v;
vecVertices[1] = pVertices[pVerticeIndex[i * 6 + 1]].v;
vecVertices[2] = pVertices[pVerticeIndex[i * 6 + 2]].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVerticeIndex->Unlock();
m_lpVertices->Unlock();
return m_dwEffectKind;
}
vecVertices[0] = pVertices[pVerticeIndex[i * 6 + 3]].v;
vecVertices[1] = pVertices[pVerticeIndex[i * 6 + 4]].v;
vecVertices[2] = pVertices[pVerticeIndex[i * 6 + 5]].v;
if(CIntersection::PolygonRay(vecStart, vecEnd, vecVertices, fLength))
{
m_lpVerticeIndex->Unlock();
m_lpVertices->Unlock();
return m_dwEffectKind;
}
}
fLength = 0.0f;
m_lpVerticeIndex->Unlock();
m_lpVertices->Unlock();
return 0xFFFFFFFF;
}
BOOL CX3DEffectEditSphere::ArrangementTexture(const char *strPathName)
{
if(!strncmp(m_strTextureFile, strPathName, strlen(strPathName)))
{
strcpy(m_strTextureFile, &m_strTextureFile[strlen(strPathName)]);
return TRUE;
} else
return FALSE;
}

View File

@@ -0,0 +1,29 @@
// X3DEffectEditSphere.h: interface for the CX3DEffectEditSphere class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_X3DEFFECTEDITSPHERE_H__FA4E9494_866A_44C6_9F77_3AD04233C268__INCLUDED_)
#define AFX_X3DEFFECTEDITSPHERE_H__FA4E9494_866A_44C6_9F77_3AD04233C268__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "X3DEditObject.h"
#include "X3DEffectSphere.h"
class CX3DEffectEditSphere :
public CX3DEffectSphere,
public CX3DEditObject
{
public:
BOOL ArrangementTexture(const char *strPathName);
CX3DEffectEditSphere();
~CX3DEffectEditSphere();
void SetPlay(BOOL bPlay) { };
void RenderNoTexture(unsigned long dwFrame); // ¿¡µðÅÍ ¿ë
unsigned long GetPick(vector3 &vecStart, vector3 &vecEnd, float &fLength); // ¿¡µðÅÍ ¿ë
};
#endif // !defined(AFX_X3DEFFECTEDITSPHERE_H__FA4E9494_866A_44C6_9F77_3AD04233C268__INCLUDED_)

View File

@@ -0,0 +1,501 @@
// meshpage.cpp : implementation file
//
#include "stdafx.h"
#include "effecteditor.h"
#include "meshpage.h"
#include "MainFrm.h"
#include "EffectEditorDoc.h"
#include "EffectEditorView.h"
#include "Z3DMath.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMeshPage property page
IMPLEMENT_DYNCREATE(CMeshPage, CPropertyPage)
CMeshPage::CMeshPage() : CPropertyPage(CMeshPage::IDD)
{
//{{AFX_DATA_INIT(CMeshPage)
m_strMesh = _T("");
m_dwEndFrame = 0;
m_dwStartFrame = 0;
m_dwObjectMax = 0;
m_dwObjectNum = 0;
m_fTexFrame = 0.0f;
m_fStartTexFrame = 0.0f;
//}}AFX_DATA_INIT
}
CMeshPage::~CMeshPage()
{
}
void CMeshPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMeshPage)
DDX_Control(pDX, IDC_COLR, m_edtColR);
DDX_Control(pDX, IDC_COLG, m_edtColG);
DDX_Control(pDX, IDC_COLB, m_edtColB);
DDX_Control(pDX, IDC_ALPHA, m_edtAlpha);
DDX_Control(pDX, IDC_CBSRC, m_cbSrc);
DDX_Control(pDX, IDC_CBDEST, m_cbDest);
DDX_Text(pDX, IDC_MESH, m_strMesh);
DDX_Text(pDX, IDC_ENDFRAME, m_dwEndFrame);
DDX_Text(pDX, IDC_STARTFRAME, m_dwStartFrame);
DDX_Text(pDX, IDC_OBECJTMAX, m_dwObjectMax);
DDX_Text(pDX, IDC_OBJECTNUM, m_dwObjectNum);
DDX_Text(pDX, IDC_TEXFRAME, m_fTexFrame);
DDX_Text(pDX, IDC_STARTTEXFRAME, m_fStartTexFrame);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMeshPage, CPropertyPage)
//{{AFX_MSG_MAP(CMeshPage)
ON_BN_CLICKED(IDC_CREATE, OnCreate)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
ON_CBN_SELCHANGE(IDC_CBSRC, OnSelchangeCbsrc)
ON_CBN_SELCHANGE(IDC_CBDEST, OnSelchangeCbdest)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMeshPage message handlers
void CMeshPage::Redo(CCommand *RedoCommand)
{
}
void CMeshPage::InitValue(void)
{
m_strMesh = _T("");
m_dwEndFrame = 30;
m_dwStartFrame = 1;
m_dwObjectMax = 0;
m_dwObjectNum = 0;
m_fTexFrame = 1.0f;
m_fStartTexFrame = 0.0f;
m_edtAlpha.SetValue((unsigned char)255);
m_edtAlpha.DisableBkColor();
m_edtColB.SetValue((unsigned char)255);
m_edtColB.DisableBkColor();
m_edtColG.SetValue((unsigned char)255);
m_edtColG.DisableBkColor();
m_edtColR.SetValue((unsigned char)255);
m_edtColR.DisableBkColor();
}
void CMeshPage::Undo(CCommand *UndoCommand)
{
}
void CMeshPage::SetKeyInfo(void)
{
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
unsigned long dwFrame = mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwPreFrame - 1;
if(pMesh)
{
pMesh->Interpolation(dwFrame);
// m_strTexture = pMesh->GetTextureFileName();
m_dwObjectMax = pMesh->m_dwObjectNum;
m_dwEndFrame = pMesh->GetEndFrame();
m_dwStartFrame = pMesh->GetStartFrame();
if(m_dwObjectNum < m_dwObjectMax)
{
m_fTexFrame = pMesh->GetTexFrame(m_dwObjectNum);
m_fStartTexFrame = pMesh->GetStartTexFrame(m_dwObjectNum);
m_edtAlpha = pMesh->GetObjectAlpha(dwFrame, m_dwObjectNum);
m_edtColB = pMesh->GetObjectBColor(dwFrame, m_dwObjectNum);
m_edtColG = pMesh->GetObjectGColor(dwFrame, m_dwObjectNum);
m_edtColR = pMesh->GetObjectRColor(dwFrame, m_dwObjectNum);
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame))
{
m_edtAlpha.SetBkColor(0x000000FF, 0x00FFFFFF);
m_edtColB.SetBkColor(0x000000FF, 0x00FFFFFF);
m_edtColG.SetBkColor(0x000000FF, 0x00FFFFFF);
m_edtColR.SetBkColor(0x000000FF, 0x00FFFFFF);
} else
{
m_edtAlpha.DisableBkColor();
m_edtColB.DisableBkColor();
m_edtColG.DisableBkColor();
m_edtColR.DisableBkColor();
}
} else
{
/* m_fTexFrame = 0.0f;
m_fStartTexFrame = 0.0f;
m_edtAlpha = (char)0;
m_edtColB = (char)0;
m_edtColG = (char)0;
m_edtColR = (char)0;
m_edtAlpha.DisableBkColor();
m_edtColB.DisableBkColor();
m_edtColG.DisableBkColor();
m_edtColR.DisableBkColor();*/
}
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
mf->m_KeyBar.m_lpKeySheet->m_Page1.ClearMarker();
for(int i = 0; i < mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwTotalFrame; i++)
{
if(m_dwObjectNum < m_dwObjectMax) {
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(i))
{
if(!mf->m_KeyBar.m_lpKeySheet->m_Page1.m_sldPoint.FindMarker(i))
{
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMarker(i);
}
}
}
}
m_cbSrc.SetCurSel(pMesh->GetSrcBlending() - D3DBLEND_ZERO);
m_cbDest.SetCurSel(pMesh->GetDestBlending() - D3DBLEND_ZERO);
UpdateData(FALSE);
Invalidate(FALSE);
}
}
BOOL CMeshPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_cbSrc.AddString("ZERO");
m_cbSrc.AddString("ONE");
m_cbSrc.AddString("SRCCOLOR");
m_cbSrc.AddString("INVSRCCOLOR");
m_cbSrc.AddString("SRCALPHA");
m_cbSrc.AddString("INVSRCALPHA");
m_cbSrc.AddString("DESTALPHA");
m_cbSrc.AddString("INVDESTALPHA");
m_cbSrc.AddString("DESTCOLOR");
m_cbSrc.AddString("INVDESTCOLOR");
m_cbSrc.AddString("SRCALPHASAT");
m_cbSrc.AddString("BOTHSRCALPHA");
m_cbSrc.AddString("BOTHINVSRCALPHA");
m_cbSrc.SetCurSel(4);
m_cbDest.AddString("ZERO");
m_cbDest.AddString("ONE");
m_cbDest.AddString("SRCCOLOR");
m_cbDest.AddString("INVSRCCOLOR");
m_cbDest.AddString("SRCALPHA");
m_cbDest.AddString("INVSRCALPHA");
m_cbDest.AddString("DESTALPHA");
m_cbDest.AddString("INVDESTALPHA");
m_cbDest.AddString("DESTCOLOR");
m_cbDest.AddString("INVDESTCOLOR");
m_cbDest.AddString("SRCALPHASAT");
m_cbDest.AddString("BOTHSRCALPHA");
m_cbDest.AddString("BOTHINVSRCALPHA");
m_cbDest.SetCurSel(1);
InitValue();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMeshPage::OnCreate()
{
// TODO: Add your control notification handler code here
UpdateData();
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame > m_dwStartFrame)
{
m_dwStartFrame = ((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame;
}
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame > m_dwEndFrame)
{
m_dwEndFrame = ((CEffectEditorView*)mf->GetActiveView())->m_dwPreFrame;
}
if(((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() < m_dwStartFrame)
{
m_dwStartFrame = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() + 1;
}
if(((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() < m_dwEndFrame)
{
m_dwEndFrame = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetMaxFrame() + 1;
}
CX3DEffectEditMesh *pMesh;
pMesh = new CX3DEffectEditMesh;
unsigned long dwStartFrame = m_dwStartFrame - 1;
unsigned long dwEndFrame = m_dwEndFrame - 1;
pMesh->Create(dwStartFrame, dwEndFrame);
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->AddEffect(pMesh);
((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect = ((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->AddEditObject(pMesh);
{
pMesh->LoadFile(m_strMesh.GetBuffer(m_strMesh.GetLength()));
for(long i = 0; i < pMesh->m_dwObjectNum; i++)
{
SetKey(dwStartFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
pMesh->SetTexFrame(i, 1.0f);
pMesh->SetStartTexFrame(i, 0.0f);
}
pMesh->SetSrcBlending(D3DBLEND_ZERO + m_cbSrc.GetCurSel());
pMesh->SetDestBlending(D3DBLEND_ZERO + m_cbDest.GetCurSel());
pMesh->SetEffectKind(EFFECT_MESH);
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->SetMaxFrame(pMesh->GetMaxFrame());
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMaxFrame(pMesh->GetMaxFrame());
mf->m_KeyBar.m_lpKeySheet->m_Page1.m_sldKeyFrame.SetRange(0, pMesh->GetMaxFrame() - 1);
SetKeyInfo();
}
}
void CMeshPage::OnDelete()
{
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
if(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect != 0xFFFFFFFF)
{
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->DeleteEffect(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->DeleteEditObject(((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
}
((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect = 0xFFFFFFFF;
InitValue();
UpdateData(FALSE);
}
void CMeshPage::OnBrowse()
{
// TODO: Add your control notification handler code here
char strFilter[50] = "GEM 파일(*.gem)|*.gem||";
CFileDialog dlg(TRUE, "*.gem", "", OFN_HIDEREADONLY | OFN_LONGNAMES, strFilter);
if(dlg.DoModal() == IDOK)
{
m_strMesh = dlg.GetPathName();
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
if(pMesh)
{
pMesh->LoadFile(m_strMesh.GetBuffer(m_strMesh.GetLength()));
mf->m_KeyBar.m_lpKeySheet->m_Page1.SetMaxFrame(pMesh->GetMaxFrame());
}
UpdateData(FALSE);
}
}
void CMeshPage::OnSelchangeCbsrc()
{
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
if(pMesh)
{
pMesh->SetSrcBlending(D3DBLEND_ZERO + m_cbSrc.GetCurSel());
}
}
void CMeshPage::OnSelchangeCbdest()
{
// TODO: Add your control notification handler code here
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
if(pMesh)
{
pMesh->SetDestBlending(D3DBLEND_ZERO + m_cbDest.GetCurSel());
}
}
BOOL CMeshPage::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
UpdateData();
CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CX3DEffectEditMesh *pMesh = (CX3DEffectEditMesh *)((CEffectEditorView*)mf->GetActiveView())->m_lpEffect->GetEffect(EFFECT_MESH, ((CEffectEditorView*)mf->GetActiveView())->m_dwPickEffect);
unsigned long dwFrame = mf->m_KeyBar.m_lpKeySheet->m_Page1.m_dwPreFrame - 1;
switch(::GetDlgCtrlID(pMsg->hwnd))
{
/* case IDC_TEXTURE:
if(pMesh)
{
pMesh->LoadTexture(m_strTexture);
}
break;
*/
case IDC_ALPHA:
case IDC_COLR:
case IDC_COLG:
case IDC_COLB:
if(pMesh)
{
color lData;
if(m_dwObjectNum >= m_dwObjectMax)
{
for(int i = 0; i < m_dwObjectMax; i++)
{
if(!strcmp(m_edtColR, "") || !strcmp(m_edtColG, "") || !strcmp(m_edtColB, "") || !strcmp(m_edtAlpha, ""))
{
if(pMesh->m_moMesh[i].m_lstColor.Find(dwFrame, lData))
{
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_DELKEY, 2, lData);
pMesh->m_moMesh[i].m_lstColor.Erase(dwFrame);
break;
}
}
if(pMesh->m_moMesh[i].m_lstColor.Find(dwFrame, lData))
{
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_OLDDATA, 2, lData);
SetKey(dwFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_NEWDATA, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
} else
{
SetKey(dwFrame, pMesh->m_moMesh[i].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_INSERT, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
}
}
break;
}
if(!strcmp(m_edtColR, "") || !strcmp(m_edtColG, "") || !strcmp(m_edtColB, "") || !strcmp(m_edtAlpha, ""))
{
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame, lData))
{
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_DELKEY, 2, lData);
pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Erase(dwFrame);
break;
}
}
if(pMesh->m_moMesh[m_dwObjectNum].m_lstColor.Find(dwFrame, lData))
{
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_OLDDATA, 2, lData);
SetKey(dwFrame, pMesh->m_moMesh[m_dwObjectNum].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_NEWDATA, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
} else
{
SetKey(dwFrame, pMesh->m_moMesh[m_dwObjectNum].m_lstColor, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
g_CommandManager.AddCommand(EFFECT_MESH, pMesh->GetUID(), dwFrame, COMMAND_INSERT, 2, color(m_edtColR, m_edtColG, m_edtColB, m_edtAlpha));
}
}
break;
case IDC_OBJECTNUM:
if(pMesh)
{
if(m_dwObjectNum >= m_dwObjectMax)
{
break;
}
pMesh->SetObjectColor(m_dwObjectNum);
}
break;
case IDC_TEXFRAME:
if(pMesh)
{
if(m_dwObjectNum >= m_dwObjectMax)
{
if(m_fTexFrame < 1.0f)
{
MessageBox("1.0 밑으로는 못 내려감.");
break;
}
for(int i = 0; i < m_dwObjectMax; i++)
{
pMesh->SetTexFrame(i, m_fTexFrame);
}
break;
}
if(m_fTexFrame < 1.0f)
{
MessageBox("1.0 밑으로는 못 내려감.");
break;
}
pMesh->SetTexFrame(m_dwObjectNum, m_fTexFrame);
}
break;
case IDC_STARTTEXFRAME:
if(pMesh)
{
if(m_dwObjectNum >= m_dwObjectMax)
{
for(int i = 0; i < m_dwObjectMax; i++)
{
pMesh->SetStartTexFrame(i, m_fStartTexFrame);
}
break;
}
pMesh->SetStartTexFrame(m_dwObjectNum, m_fStartTexFrame);
}
break;
/*
case IDC_STARTFRAME:
if(pParticle)
{
// pParticle->EditFrame(pParticle->GetStartFrame(), m_dwStartFrame);
pParticle->SetStartFrame(m_dwStartFrame);
if(pParticle->GetEndFrame() < m_dwStartFrame)
{
pParticle->SetEndFrame(m_dwStartFrame);
m_dwEndFrame = m_dwStartFrame;
UpdateData(FALSE);
}
}
break;
case IDC_ENDFRAME:
if(pParticle)
{
if(pParticle->GetStartFrame() > m_dwEndFrame)
{
m_dwEndFrame = pParticle->GetStartFrame();
UpdateData(FALSE);
}
pParticle->SetEndFrame(m_dwEndFrame);
}
break;*/
}
SetKeyInfo();
}
return CPropertyPage::PreTranslateMessage(pMsg);
}

View File

@@ -0,0 +1,76 @@
#if !defined(AFX_MESHPAGE_H__14CCA930_9221_4A83_9F88_87EC5DA389F0__INCLUDED_)
#define AFX_MESHPAGE_H__14CCA930_9221_4A83_9F88_87EC5DA389F0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// meshpage.h : header file
//
#include "CusEdit.h"
#include "CommandManager.h"
#include "X3DEffectEditMesh.h"
/////////////////////////////////////////////////////////////////////////////
// CMeshPage dialog
class CMeshPage : public CPropertyPage
{
DECLARE_DYNCREATE(CMeshPage)
// Construction
public:
void Redo(CCommand *RedoCommand);
void InitValue(void);
void Undo(CCommand *UndoCommand);
CMeshPage();
~CMeshPage();
void SetKeyInfo(void);
// Dialog Data
//{{AFX_DATA(CMeshPage)
enum { IDD = IDD_MESH };
CCusEdit m_edtColR;
CCusEdit m_edtColG;
CCusEdit m_edtColB;
CCusEdit m_edtAlpha;
CComboBox m_cbSrc;
CComboBox m_cbDest;
CString m_strMesh;
DWORD m_dwEndFrame;
DWORD m_dwStartFrame;
DWORD m_dwObjectMax;
DWORD m_dwObjectNum;
float m_fTexFrame;
float m_fStartTexFrame;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CMeshPage)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CMeshPage)
virtual BOOL OnInitDialog();
afx_msg void OnCreate();
afx_msg void OnDelete();
afx_msg void OnBrowse();
afx_msg void OnSelchangeCbsrc();
afx_msg void OnSelchangeCbdest();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MESHPAGE_H__14CCA930_9221_4A83_9F88_87EC5DA389F0__INCLUDED_)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,13 @@
//
// EFFECTEDITOR.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...
/////////////////////////////////////////////////////////////////////////////

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,170 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by EffectEditor.rc
//
#define IDD_ABOUTBOX 100
#define IDD_PARTICLE1 101
#define IDS_PROPSHT_CAPTION 102
#define IDD_PROPPAGE1 103
#define IDD_PARTICLE 103
#define IDD_PROPPAGE2 104
#define IDD_CYLINDER 104
#define IDD_PROPPAGE3 105
#define IDD_BILLBOARD 105
#define IDD_PROPPAGE4 106
#define IDD_PLANE 106
#define IDS_PROPSHT_CAPTION1 107
#define IDD_MESH 107
#define IDD_KEY 108
#define IDD_SCENARIOBAR 109
#define IDR_MAINFRAME 128
#define IDR_EFFECTTYPE 129
#define IDD_KEYBAR 130
#define IDD_EFFECTBAR 131
#define IDD_SPHERE 132
#define IDC_TEXTURE 1000
#define IDC_WIDTH 1001
#define IDC_HEIGHT 1002
#define IDC_CENX 1007
#define IDC_CENY 1008
#define IDC_CENZ 1009
#define IDC_ALPHA 1010
#define IDC_COLR 1011
#define IDC_COLG 1012
#define IDC_COLB 1013
#define IDC_BROWSE 1014
#define IDC_CREATE 1015
#define IDC_STARTFRAME 1016
#define IDC_ENDFRAME 1017
#define IDC_EFORCEX 1018
#define IDC_DELETE 1019
#define IDC_TILEU 1020
#define IDC_EFORCEY 1020
#define IDC_TILEV 1021
#define IDC_EFORCEZ 1021
#define IDC_SCEALPHA 1022
#define IDC_TOTALFRAME 1023
#define IDC_PREFRAME 1024
#define IDC_KEYSLIDER 1025
#define IDC_STARTU 1028
#define IDC_STARTV 1029
#define IDC_TEXSTATIC 1030
#define IDC_TEXANI 1031
#define IDC_TEXFRAME 1032
#define IDC_TEXSPEED 1033
#define IDC_STARTTEXFRAME 1033
#define IDC_ANGLE 1036
#define IDC_ROTATION 1038
#define IDC_AMOUNT 1041
#define IDC_POWER 1042
#define IDC_PLAY 1043
#define IDC_LIFETIME 1044
#define IDC_STOP 1044
#define IDC_FRAMESEC 1046
#define IDC_LIFETIMESEED 1047
#define IDC_POWERSEED 1048
#define IDC_LOOP 1048
#define IDC_VOLX 1049
#define IDC_VOLY 1050
#define IDC_VOLZ 1051
#define IDC_NOVOLUME 1052
#define IDC_SQUAREVOLUME 1053
#define IDC_CIRCLEVOLUME 1054
#define IDC_RADIUS 1056
#define IDC_INNERRADIUS 1057
#define IDC_AXISX 1058
#define IDC_AXISY 1059
#define IDC_AXISZ 1060
#define IDC_DIRX 1061
#define IDC_DIRY 1062
#define IDC_PREPRO 1062
#define IDC_DIRZ 1063
#define IDC_SCENARIO 1067
#define IDC_AUTO 1068
#define IDC_AUTOTIME 1069
#define IDC_SPAWNNING 1070
#define IDC_UPPERHEIGHT 1071
#define IDC_LOWERHEIGHT 1072
#define IDC_UPPERRADIUS 1073
#define IDC_LOWERRADIUS 1074
#define IDC_SIDEPLANE 1075
#define IDC_SEGMENT 1076
#define IDC_UPPERVIS 1080
#define IDC_UPPERUP 1081
#define IDC_LOWERVIS 1082
#define IDC_LOWERUP 1083
#define IDC_UPPERFACTOR 1084
#define IDC_LOWERFACTOR 1085
#define IDC_HEIGHTFACTOR 1086
#define IDC_UPPERTEX 1089
#define IDC_LOWERTEX 1090
#define IDC_TEST 1092
#define IDC_POINTSLIDER 1095
#define IDC_AXISALIGNED 1096
#define IDC_CONTINUOUS 1097
#define IDC_RED 1098
#define IDC_GREEN 1099
#define IDC_BLUE 1100
#define IDC_CBSRC 1105
#define IDC_CBADDRESSU 1106
#define IDC_MESH 1106
#define IDC_CBDEST 1107
#define IDC_CBADDRESSV 1108
#define IDC_OBECJTMAX 1108
#define IDC_OBJECTNUM 1109
#define IDC_INCFRAME 1111
#define IDC_WAVNAME 1112
#define IDC_WAV 1113
#define ID_CHAR_VISIBLE 32771
#define ID_CHAR_INVISIBLE 32772
#define ID_CHAR_WAIT 32775
#define ID_CHAR_WALK 32776
#define ID_CHAR_RUN 32777
#define ID_CHAR_ATTACK 32778
#define ID_CHAR_BACK 32779
#define ID_CHAR_LEFT 32780
#define ID_CHAR_RIGHT 32781
#define ID_CHAR_ATTACKED 32782
#define ID_CHAR_FALLDOWN 32783
#define ID_CHAR_STUN 32784
#define ID_CHAR_CAST_BEGIN 32785
#define ID_CHAR_CASTING 32786
#define ID_CHAR_CASTING2 32787
#define ID_CHAR_CRIP_WEAPON 32789
#define ID_CHAR_TAKE_OUT_WEAPON 32790
#define ID_CHAR_PUT_IN_WEAPON 32791
#define ID_CHAR_RESTORE_HAND 32792
#define ID_CHAR_ATTACK_LEFT 32793
#define ID_CHAR_ATTACK_RIGHT 32794
#define ID_CHAR_ATTACK_ADVANCE 32795
#define ID_CHAR_ATTACK_RETREAT 32796
#define ID_CHAR_SIT_DOWN 32797
#define ID_CHAR_REST 32798
#define ID_CHAR_GET_UP 32799
#define ID_CHAR_BASH 32801
#define ID_CHAR_NORMAL 32802
#define ID_CHAR_BATTLE 32803
#define ID_CHAR_NOWEAPONB 32804
#define ID_CHAR_ONEHAND 32805
#define ID_CHAR_TWOHAND 32806
#define ID_CHAR_BLUNT 32807
#define ID_CHAR_BOW 32808
#define ID_CHAR_DAGGER 32809
#define ID_CHAR_CROSSBOW 32810
#define ID_CHAR_M_CAST_BEGIN 32811
#define ID_CHAR_M_CASTING1 32812
#define ID_CHAR_M_CASTING2 32813
#define ID_CHAR_BLOW 32814
#define ID_CHAR_ROUND_SWING 32815
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 138
#define _APS_NEXT_COMMAND_VALUE 32816
#define _APS_NEXT_CONTROL_VALUE 1114
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif