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:
378
GameTools/EffectEditor/Bubble.cpp
Normal file
378
GameTools/EffectEditor/Bubble.cpp
Normal 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;
|
||||
}
|
||||
81
GameTools/EffectEditor/Bubble.h
Normal file
81
GameTools/EffectEditor/Bubble.h
Normal 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_)
|
||||
63
GameTools/EffectEditor/ChangeColor.cpp
Normal file
63
GameTools/EffectEditor/ChangeColor.cpp
Normal 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
|
||||
|
||||
}
|
||||
49
GameTools/EffectEditor/ChangeColor.h
Normal file
49
GameTools/EffectEditor/ChangeColor.h
Normal 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_)
|
||||
27
GameTools/EffectEditor/Command.cpp
Normal file
27
GameTools/EffectEditor/Command.cpp
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
93
GameTools/EffectEditor/Command.h
Normal file
93
GameTools/EffectEditor/Command.h
Normal 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_)
|
||||
121
GameTools/EffectEditor/CommandManager.cpp
Normal file
121
GameTools/EffectEditor/CommandManager.cpp
Normal 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;
|
||||
}
|
||||
}
|
||||
37
GameTools/EffectEditor/CommandManager.h
Normal file
37
GameTools/EffectEditor/CommandManager.h
Normal 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_)
|
||||
27
GameTools/EffectEditor/CommandProperty.cpp
Normal file
27
GameTools/EffectEditor/CommandProperty.cpp
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
35
GameTools/EffectEditor/CommandProperty.h
Normal file
35
GameTools/EffectEditor/CommandProperty.h
Normal 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_)
|
||||
144
GameTools/EffectEditor/CusEdit.cpp
Normal file
144
GameTools/EffectEditor/CusEdit.cpp
Normal 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);
|
||||
}
|
||||
67
GameTools/EffectEditor/CusEdit.h
Normal file
67
GameTools/EffectEditor/CusEdit.h
Normal 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_)
|
||||
92
GameTools/EffectEditor/DialogBarEx.cpp
Normal file
92
GameTools/EffectEditor/DialogBarEx.cpp
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
61
GameTools/EffectEditor/DialogBarEx.h
Normal file
61
GameTools/EffectEditor/DialogBarEx.h
Normal 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_)
|
||||
42
GameTools/EffectEditor/EffectBar.cpp
Normal file
42
GameTools/EffectEditor/EffectBar.cpp
Normal 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);
|
||||
}
|
||||
25
GameTools/EffectEditor/EffectBar.h
Normal file
25
GameTools/EffectEditor/EffectBar.h
Normal 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_)
|
||||
BIN
GameTools/EffectEditor/EffectEditor.aps
Normal file
BIN
GameTools/EffectEditor/EffectEditor.aps
Normal file
Binary file not shown.
745
GameTools/EffectEditor/EffectEditor.clw
Normal file
745
GameTools/EffectEditor/EffectEditor.clw
Normal 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
|
||||
|
||||
160
GameTools/EffectEditor/EffectEditor.cpp
Normal file
160
GameTools/EffectEditor/EffectEditor.cpp
Normal 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;
|
||||
}
|
||||
354
GameTools/EffectEditor/EffectEditor.dsp
Normal file
354
GameTools/EffectEditor/EffectEditor.dsp
Normal 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
|
||||
134
GameTools/EffectEditor/EffectEditor.dsw
Normal file
134
GameTools/EffectEditor/EffectEditor.dsw
Normal 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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
50
GameTools/EffectEditor/EffectEditor.h
Normal file
50
GameTools/EffectEditor/EffectEditor.h
Normal 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_)
|
||||
BIN
GameTools/EffectEditor/EffectEditor.opt
Normal file
BIN
GameTools/EffectEditor/EffectEditor.opt
Normal file
Binary file not shown.
554
GameTools/EffectEditor/EffectEditor.plg
Normal file
554
GameTools/EffectEditor/EffectEditor.plg
Normal 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>
|
||||
1005
GameTools/EffectEditor/EffectEditor.rc
Normal file
1005
GameTools/EffectEditor/EffectEditor.rc
Normal file
File diff suppressed because it is too large
Load Diff
109
GameTools/EffectEditor/EffectEditor/EffectEditor.dsw
Normal file
109
GameTools/EffectEditor/EffectEditor/EffectEditor.dsw
Normal 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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
BIN
GameTools/EffectEditor/EffectEditor/EffectEditor.opt
Normal file
BIN
GameTools/EffectEditor/EffectEditor/EffectEditor.opt
Normal file
Binary file not shown.
84
GameTools/EffectEditor/EffectEditorDoc.cpp
Normal file
84
GameTools/EffectEditor/EffectEditorDoc.cpp
Normal 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
|
||||
57
GameTools/EffectEditor/EffectEditorDoc.h
Normal file
57
GameTools/EffectEditor/EffectEditorDoc.h
Normal 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_)
|
||||
1274
GameTools/EffectEditor/EffectEditorView.cpp
Normal file
1274
GameTools/EffectEditor/EffectEditorView.cpp
Normal file
File diff suppressed because it is too large
Load Diff
163
GameTools/EffectEditor/EffectEditorView.h
Normal file
163
GameTools/EffectEditor/EffectEditorView.h
Normal 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_)
|
||||
4791
GameTools/EffectEditor/EffectPage.cpp
Normal file
4791
GameTools/EffectEditor/EffectPage.cpp
Normal file
File diff suppressed because it is too large
Load Diff
354
GameTools/EffectEditor/EffectPage.h
Normal file
354
GameTools/EffectEditor/EffectPage.h
Normal 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__
|
||||
53
GameTools/EffectEditor/EffectSheet.cpp
Normal file
53
GameTools/EffectEditor/EffectSheet.cpp
Normal 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
|
||||
57
GameTools/EffectEditor/EffectSheet.h
Normal file
57
GameTools/EffectEditor/EffectSheet.h
Normal 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__
|
||||
161
GameTools/EffectEditor/EulerAngles.cpp
Normal file
161
GameTools/EffectEditor/EulerAngles.cpp
Normal 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));
|
||||
}
|
||||
75
GameTools/EffectEditor/EulerAngles.h
Normal file
75
GameTools/EffectEditor/EulerAngles.h
Normal 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
|
||||
42
GameTools/EffectEditor/KeyBar.cpp
Normal file
42
GameTools/EffectEditor/KeyBar.cpp
Normal 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);
|
||||
}
|
||||
25
GameTools/EffectEditor/KeyBar.h
Normal file
25
GameTools/EffectEditor/KeyBar.h
Normal 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_)
|
||||
379
GameTools/EffectEditor/KeyPage.cpp
Normal file
379
GameTools/EffectEditor/KeyPage.cpp
Normal 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);
|
||||
}
|
||||
111
GameTools/EffectEditor/KeyPage.h
Normal file
111
GameTools/EffectEditor/KeyPage.h
Normal 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__
|
||||
49
GameTools/EffectEditor/KeySheet.cpp
Normal file
49
GameTools/EffectEditor/KeySheet.cpp
Normal 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
|
||||
51
GameTools/EffectEditor/KeySheet.h
Normal file
51
GameTools/EffectEditor/KeySheet.h
Normal 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__
|
||||
97
GameTools/EffectEditor/MainFrm.cpp
Normal file
97
GameTools/EffectEditor/MainFrm.cpp
Normal 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
|
||||
|
||||
59
GameTools/EffectEditor/MainFrm.h
Normal file
59
GameTools/EffectEditor/MainFrm.h
Normal 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_)
|
||||
904
GameTools/EffectEditor/MultiSlider.cpp
Normal file
904
GameTools/EffectEditor/MultiSlider.cpp
Normal 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;
|
||||
}
|
||||
187
GameTools/EffectEditor/MultiSlider.h
Normal file
187
GameTools/EffectEditor/MultiSlider.h
Normal 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_)
|
||||
189
GameTools/EffectEditor/PointSlider.cpp
Normal file
189
GameTools/EffectEditor/PointSlider.cpp
Normal 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);
|
||||
}
|
||||
72
GameTools/EffectEditor/PointSlider.h
Normal file
72
GameTools/EffectEditor/PointSlider.h
Normal 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_)
|
||||
99
GameTools/EffectEditor/ReadMe.txt
Normal file
99
GameTools/EffectEditor/ReadMe.txt
Normal 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.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
1390
GameTools/EffectEditor/SpherePage.cpp
Normal file
1390
GameTools/EffectEditor/SpherePage.cpp
Normal file
File diff suppressed because it is too large
Load Diff
107
GameTools/EffectEditor/SpherePage.h
Normal file
107
GameTools/EffectEditor/SpherePage.h
Normal 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_)
|
||||
8
GameTools/EffectEditor/StdAfx.cpp
Normal file
8
GameTools/EffectEditor/StdAfx.cpp
Normal 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"
|
||||
|
||||
|
||||
|
||||
26
GameTools/EffectEditor/StdAfx.h
Normal file
26
GameTools/EffectEditor/StdAfx.h
Normal 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_)
|
||||
372
GameTools/EffectEditor/X3DEditEffect.cpp
Normal file
372
GameTools/EffectEditor/X3DEditEffect.cpp
Normal 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;
|
||||
}
|
||||
54
GameTools/EffectEditor/X3DEditEffect.h
Normal file
54
GameTools/EffectEditor/X3DEditEffect.h
Normal 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_)
|
||||
28
GameTools/EffectEditor/X3DEditObject.cpp
Normal file
28
GameTools/EffectEditor/X3DEditObject.cpp
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
31
GameTools/EffectEditor/X3DEditObject.h
Normal file
31
GameTools/EffectEditor/X3DEditObject.h
Normal 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_)
|
||||
96
GameTools/EffectEditor/X3DEffectEditBillboard.cpp
Normal file
96
GameTools/EffectEditor/X3DEffectEditBillboard.cpp
Normal 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;
|
||||
}
|
||||
29
GameTools/EffectEditor/X3DEffectEditBillboard.h
Normal file
29
GameTools/EffectEditor/X3DEffectEditBillboard.h
Normal 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_)
|
||||
89
GameTools/EffectEditor/X3DEffectEditCylinder.cpp
Normal file
89
GameTools/EffectEditor/X3DEffectEditCylinder.cpp
Normal 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;
|
||||
}
|
||||
29
GameTools/EffectEditor/X3DEffectEditCylinder.h
Normal file
29
GameTools/EffectEditor/X3DEffectEditCylinder.h
Normal 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_)
|
||||
51
GameTools/EffectEditor/X3DEffectEditMesh.cpp
Normal file
51
GameTools/EffectEditor/X3DEffectEditMesh.cpp
Normal 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;
|
||||
}
|
||||
61
GameTools/EffectEditor/X3DEffectEditMesh.h
Normal file
61
GameTools/EffectEditor/X3DEffectEditMesh.h
Normal 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_)
|
||||
280
GameTools/EffectEditor/X3DEffectEditParticle.cpp
Normal file
280
GameTools/EffectEditor/X3DEffectEditParticle.cpp
Normal 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;
|
||||
}
|
||||
38
GameTools/EffectEditor/X3DEffectEditParticle.h
Normal file
38
GameTools/EffectEditor/X3DEffectEditParticle.h
Normal 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_)
|
||||
79
GameTools/EffectEditor/X3DEffectEditPlane.cpp
Normal file
79
GameTools/EffectEditor/X3DEffectEditPlane.cpp
Normal 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;
|
||||
}
|
||||
29
GameTools/EffectEditor/X3DEffectEditPlane.h
Normal file
29
GameTools/EffectEditor/X3DEffectEditPlane.h
Normal 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_)
|
||||
93
GameTools/EffectEditor/X3DEffectEditSphere.cpp
Normal file
93
GameTools/EffectEditor/X3DEffectEditSphere.cpp
Normal 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;
|
||||
}
|
||||
29
GameTools/EffectEditor/X3DEffectEditSphere.h
Normal file
29
GameTools/EffectEditor/X3DEffectEditSphere.h
Normal 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_)
|
||||
501
GameTools/EffectEditor/meshpage.cpp
Normal file
501
GameTools/EffectEditor/meshpage.cpp
Normal 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);
|
||||
}
|
||||
76
GameTools/EffectEditor/meshpage.h
Normal file
76
GameTools/EffectEditor/meshpage.h
Normal 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_)
|
||||
BIN
GameTools/EffectEditor/res/EffectEditor.ico
Normal file
BIN
GameTools/EffectEditor/res/EffectEditor.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
13
GameTools/EffectEditor/res/EffectEditor.rc2
Normal file
13
GameTools/EffectEditor/res/EffectEditor.rc2
Normal 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...
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
BIN
GameTools/EffectEditor/res/EffectEditorDoc.ico
Normal file
BIN
GameTools/EffectEditor/res/EffectEditorDoc.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
170
GameTools/EffectEditor/resource.h
Normal file
170
GameTools/EffectEditor/resource.h
Normal 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
|
||||
Reference in New Issue
Block a user