Added support for new minifig accessory categories.

This commit is contained in:
leo 2012-07-20 21:32:27 +00:00
parent ad5351cbbf
commit f8fcf2ae58
6 changed files with 316 additions and 297 deletions

View file

@ -586,23 +586,6 @@ MinifigWizard::MinifigWizard (GLWindow *share)
ParseSettings(MemSettings); ParseSettings(MemSettings);
} }
const int ColorCodes[LC_MFW_NUMITEMS] = { 4, 14, 1, 7, 4, 4, 14, 14, 7, 7, 0, 0, 0, 7, 7 };
const char *pieces[LC_MFW_NUMITEMS] = { "3624", "3626BP01", "973", "None", "3819", "3818", "3820", "3820",
"None", "None", "3815", "3817", "3816", "None", "None" };
int i;
for (i = 0; i < LC_MFW_NUMITEMS; i++)
{
m_Colors[i] = lcGetColorIndex(ColorCodes[i]);
m_Angles[i] = 0;
m_Info[i] = lcGetPiecesLibrary()->FindPieceInfo(pieces[i]);
if (m_Info[i] != NULL)
m_Info[i]->AddRef();
}
Calculate();
m_MinifigCount = 0; m_MinifigCount = 0;
m_MinifigNames = NULL; m_MinifigNames = NULL;
m_MinifigTemplates = NULL; m_MinifigTemplates = NULL;
@ -647,18 +630,17 @@ MinifigWizard::MinifigWizard (GLWindow *share)
void MinifigWizard::OnInitialUpdate() void MinifigWizard::OnInitialUpdate()
{ {
const int ColorCodes[LC_MFW_NUMITEMS] = { 4, 14, 1, 7, 4, 4, 14, 14, 7, 7, 0, 0, 0, 7, 7 };
const char *pieces[LC_MFW_NUMITEMS] = { "3624", "3626BP01", "973", "None", "3819", "3818", "3820", "3820",
"None", "None", "3815", "3817", "3816", "None", "None" };
MakeCurrent(); MakeCurrent();
const int ColorCodes[LC_MFW_NUMITEMS] = { 4, 7, 14, 7, 1, 0, 7, 4, 4, 14, 14, 7, 7, 0, 0, 7, 7 };
const char* Pieces[LC_MFW_NUMITEMS] = { "3624", "None", "3626BP01", "None", "973", "3815", "None", "3819", "3818", "3820", "3820", "None", "None", "3817", "3816", "None", "None" };
for (int i = 0; i < LC_MFW_NUMITEMS; i++) for (int i = 0; i < LC_MFW_NUMITEMS; i++)
{ {
m_Colors[i] = lcGetColorIndex(ColorCodes[i]); m_Colors[i] = lcGetColorIndex(ColorCodes[i]);
m_Angles[i] = 0; m_Angles[i] = 0;
m_Info[i] = lcGetPiecesLibrary()->FindPieceInfo(pieces[i]); m_Info[i] = lcGetPiecesLibrary()->FindPieceInfo(Pieces[i]);
if (m_Info[i] != NULL) if (m_Info[i] != NULL)
m_Info[i]->AddRef(); m_Info[i]->AddRef();
} }
@ -719,21 +701,23 @@ void MinifigWizard::ParseSettings(lcFile& Settings)
{ {
const char* SectionNames[LC_MFW_NUMITEMS] = const char* SectionNames[LC_MFW_NUMITEMS] =
{ {
"[HATS]", // LC_MFW_HAT "[HATS]", // LC_MFW_HATS
"[HEAD]", // LC_MFW_HEAD "[HATS2]", // LC_MFW_HATS2
"[BODY]", // LC_MFW_TORSO "[HEAD]", // LC_MFW_HEAD
"[NECK]", // LC_MFW_NECK "[NECK]", // LC_MFW_NECK
"[RARM]", // LC_MFW_LEFT_ARM "[BODY]", // LC_MFW_BODY
"[LARM]", // LC_MFW_RIGHT_ARM "[BODY2]", // LC_MFW_BODY2
"[RHAND]", // LC_MFW_LEFT_HAND "[BODY3]", // LC_MFW_BODY3
"[LHAND]", // LC_MFW_RIGHT_HAND "[RARM]", // LC_MFW_RARM
"[RHANDA]", // LC_MFW_LEFT_TOOL "[LARM]", // LC_MFW_LARM
"[LHANDA]", // LC_MFW_RIGHT_TOOL "[RHAND]", // LC_MFW_RHAND
"[BODY2]", // LC_MFW_HIPS "[LHAND]", // LC_MFW_LHAND
"[RLEG]", // LC_MFW_LEFT_LEG "[RHANDA]", // LC_MFW_RHANDA
"[LLEG]", // LC_MFW_RIGHT_LEG "[LHANDA]", // LC_MFW_LHANDA
"[RLEGA]", // LC_MFW_LEFT_SHOE "[RLEG]", // LC_MFW_RLEG
"[LLEGA]", // LC_MFW_RIGHT_SHOE "[LLEG]", // LC_MFW_LLEG
"[RLEGA]", // LC_MFW_RLEGA
"[LLEGA]", // LC_MFW_LLEGA
}; };
for (int SectionIndex = 0; SectionIndex < LC_MFW_NUMITEMS; SectionIndex++) for (int SectionIndex = 0; SectionIndex < LC_MFW_NUMITEMS; SectionIndex++)
@ -881,11 +865,14 @@ void MinifigWizard::Calculate()
float HeadOffset = 0.0f; float HeadOffset = 0.0f;
lcMatrix44 Root, Mat, Mat2; lcMatrix44 Root, Mat, Mat2;
bool DroidTorso = m_Info[LC_MFW_TORSO] && !strcmp(m_Info[LC_MFW_TORSO]->m_strName, "30375"); bool DroidTorso = m_Info[LC_MFW_BODY] && !strcmp(m_Info[LC_MFW_BODY]->m_strName, "30375");
bool SkeletonTorso = m_Info[LC_MFW_TORSO] && !strcmp(m_Info[LC_MFW_TORSO]->m_strName, "6260"); bool SkeletonTorso = m_Info[LC_MFW_BODY] && !strcmp(m_Info[LC_MFW_BODY]->m_strName, "6260");
Root = lcMatrix44Translation(lcVector3(0, 0, 2.88f)); if (m_Info[LC_MFW_BODY3])
m_Matrices[LC_MFW_TORSO] = lcMul(mSettings[LC_MFW_TORSO][GetSelectionIndex(LC_MFW_TORSO)].Offset, Root); Root = lcMatrix44Translation(lcVector3(0, 0, 2.96f));
else
Root = lcMatrix44Translation(lcVector3(0, 0, 2.88f));
m_Matrices[LC_MFW_BODY] = lcMul(mSettings[LC_MFW_BODY][GetSelectionIndex(LC_MFW_BODY)].Offset, Root);
if (m_Info[LC_MFW_NECK]) if (m_Info[LC_MFW_NECK])
{ {
@ -901,123 +888,138 @@ void MinifigWizard::Calculate()
m_Matrices[LC_MFW_HEAD] = lcMul(Mat, Root); m_Matrices[LC_MFW_HEAD] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_HAT]) if (m_Info[LC_MFW_HATS])
{ {
Mat = lcMatrix44RotationZ(-LC_DTOR * m_Angles[LC_MFW_HAT]); Mat = lcMatrix44RotationZ(-LC_DTOR * m_Angles[LC_MFW_HATS]);
Mat = lcMul(mSettings[LC_MFW_HAT][GetSelectionIndex(LC_MFW_HAT)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_HATS][GetSelectionIndex(LC_MFW_HATS)].Offset, Mat);
m_Matrices[LC_MFW_HAT] = lcMul(Mat, m_Matrices[LC_MFW_HEAD]); m_Matrices[LC_MFW_HATS] = lcMul(Mat, m_Matrices[LC_MFW_HEAD]);
} }
if (m_Info[LC_MFW_RIGHT_ARM]) if (m_Info[LC_MFW_HATS2])
{ {
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RIGHT_ARM]); Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_HATS2]);
Mat = lcMul(mSettings[LC_MFW_HATS2][GetSelectionIndex(LC_MFW_HATS2)].Offset, Mat);
if (DroidTorso || SkeletonTorso) m_Matrices[LC_MFW_HATS2] = lcMul(Mat, m_Matrices[LC_MFW_HATS]);
Mat2 = lcMatrix44Identity();
else
Mat2 = lcMatrix44RotationY(LC_DTOR * 9.791f);
Mat2.SetTranslation(lcVector3(-0.62f, 0, -0.32f));
Mat = lcMul(mSettings[LC_MFW_RIGHT_ARM][GetSelectionIndex(LC_MFW_RIGHT_ARM)].Offset, Mat);
Mat = lcMul(Mat, Mat2);
m_Matrices[LC_MFW_RIGHT_ARM] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_RIGHT_HAND]) if (m_Info[LC_MFW_RARM])
{ {
Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_RIGHT_HAND]); Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RARM]);
Mat2 = lcMatrix44RotationX(LC_DTOR * 45);
Mat = lcMul(mSettings[LC_MFW_RIGHT_HAND][GetSelectionIndex(LC_MFW_RIGHT_HAND)].Offset, Mat);
Mat = lcMul(Mat, Mat2);
Mat.SetTranslation(lcVector3(-0.2f, -0.4f, -0.76f));
m_Matrices[LC_MFW_RIGHT_HAND] = lcMul(Mat, m_Matrices[LC_MFW_RIGHT_ARM]);
}
if (m_Info[LC_MFW_RIGHT_TOOL])
{
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RIGHT_TOOL]);
Mat.SetTranslation(lcVector3(0, -0.4f, 0));
Mat = lcMul(mSettings[LC_MFW_RIGHT_TOOL][GetSelectionIndex(LC_MFW_RIGHT_TOOL)].Offset, Mat);
m_Matrices[LC_MFW_RIGHT_TOOL] = lcMul(Mat, m_Matrices[LC_MFW_RIGHT_HAND]);
}
if (m_Info[LC_MFW_LEFT_ARM])
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LEFT_ARM]);
if (DroidTorso || SkeletonTorso) if (DroidTorso || SkeletonTorso)
Mat2 = lcMatrix44Identity(); Mat2 = lcMatrix44Identity();
else else
Mat2 = lcMatrix44RotationY(-LC_DTOR * 9.791f); Mat2 = lcMatrix44RotationY(-LC_DTOR * 9.791f);
Mat2.SetTranslation(lcVector3(0.62f, 0.0f, -0.32f)); Mat2.SetTranslation(lcVector3(0.62f, 0, -0.32f));
Mat = lcMul(mSettings[LC_MFW_LEFT_ARM][GetSelectionIndex(LC_MFW_LEFT_ARM)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_RARM][GetSelectionIndex(LC_MFW_RARM)].Offset, Mat);
Mat = lcMul(Mat, Mat2); Mat = lcMul(Mat, Mat2);
m_Matrices[LC_MFW_LEFT_ARM] = lcMul(Mat, Root); m_Matrices[LC_MFW_RARM] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_LEFT_HAND]) if (m_Info[LC_MFW_RHAND])
{ {
Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_LEFT_HAND]); Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_RHAND]);
Mat2 = lcMatrix44RotationX(LC_DTOR * 45); Mat2 = lcMatrix44RotationX(LC_DTOR * 45);
Mat = lcMul(mSettings[LC_MFW_LEFT_HAND][GetSelectionIndex(LC_MFW_LEFT_HAND)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_RHAND][GetSelectionIndex(LC_MFW_RHAND)].Offset, Mat);
Mat = lcMul(Mat, Mat2); Mat = lcMul(Mat, Mat2);
Mat.SetTranslation(lcVector3(0.2f, -0.4f, -0.76f)); Mat.SetTranslation(lcVector3(0.2f, -0.4f, -0.76f));
m_Matrices[LC_MFW_LEFT_HAND] = lcMul(Mat, m_Matrices[LC_MFW_LEFT_ARM]); m_Matrices[LC_MFW_RHAND] = lcMul(Mat, m_Matrices[LC_MFW_RARM]);
} }
if (m_Info[LC_MFW_LEFT_TOOL]) if (m_Info[LC_MFW_RHANDA])
{ {
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LEFT_TOOL]); Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RHANDA]);
Mat.SetTranslation(lcVector3(0, -0.4f, 0)); Mat.SetTranslation(lcVector3(0, -0.4f, 0));
Mat = lcMul(mSettings[LC_MFW_LEFT_TOOL][GetSelectionIndex(LC_MFW_LEFT_TOOL)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_RHANDA][GetSelectionIndex(LC_MFW_RHANDA)].Offset, Mat);
m_Matrices[LC_MFW_LEFT_TOOL] = lcMul(Mat, m_Matrices[LC_MFW_LEFT_HAND]); m_Matrices[LC_MFW_RHANDA] = lcMul(Mat, m_Matrices[LC_MFW_RHAND]);
} }
if (m_Info[LC_MFW_HIPS]) if (m_Info[LC_MFW_LARM])
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LARM]);
if (DroidTorso || SkeletonTorso)
Mat2 = lcMatrix44Identity();
else
Mat2 = lcMatrix44RotationY(LC_DTOR * 9.791f);
Mat2.SetTranslation(lcVector3(-0.62f, 0.0f, -0.32f));
Mat = lcMul(mSettings[LC_MFW_LARM][GetSelectionIndex(LC_MFW_LARM)].Offset, Mat);
Mat = lcMul(Mat, Mat2);
m_Matrices[LC_MFW_LARM] = lcMul(Mat, Root);
}
if (m_Info[LC_MFW_LHAND])
{
Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_LHAND]);
Mat2 = lcMatrix44RotationX(LC_DTOR * 45);
Mat = lcMul(mSettings[LC_MFW_LHAND][GetSelectionIndex(LC_MFW_LHAND)].Offset, Mat);
Mat = lcMul(Mat, Mat2);
Mat.SetTranslation(lcVector3(-0.2f, -0.4f, -0.76f));
m_Matrices[LC_MFW_LHAND] = lcMul(Mat, m_Matrices[LC_MFW_LARM]);
}
if (m_Info[LC_MFW_LHANDA])
{
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LHANDA]);
Mat.SetTranslation(lcVector3(0, -0.4f, 0));
Mat = lcMul(mSettings[LC_MFW_LHANDA][GetSelectionIndex(LC_MFW_LHANDA)].Offset, Mat);
m_Matrices[LC_MFW_LHANDA] = lcMul(Mat, m_Matrices[LC_MFW_LHAND]);
}
if (m_Info[LC_MFW_BODY2])
{ {
Mat = lcMatrix44Identity(); Mat = lcMatrix44Identity();
Mat.SetTranslation(lcVector3(0, 0, -1.28f)); Mat.SetTranslation(lcVector3(0, 0, -1.28f));
Mat = lcMul(mSettings[LC_MFW_HIPS][GetSelectionIndex(LC_MFW_HIPS)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_BODY2][GetSelectionIndex(LC_MFW_BODY2)].Offset, Mat);
m_Matrices[LC_MFW_HIPS] = lcMul(Mat, Root); m_Matrices[LC_MFW_BODY2] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_RIGHT_LEG]) if (m_Info[LC_MFW_BODY3])
{ {
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RIGHT_LEG]); Mat = lcMatrix44Identity();
Mat.SetTranslation(lcVector3(0, 0, -1.76f)); Mat.SetTranslation(lcVector3(0, 0, -1.28f));
Mat = lcMul(mSettings[LC_MFW_RIGHT_LEG][GetSelectionIndex(LC_MFW_RIGHT_LEG)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_BODY3][GetSelectionIndex(LC_MFW_BODY3)].Offset, Mat);
m_Matrices[LC_MFW_RIGHT_LEG] = lcMul(Mat, Root); m_Matrices[LC_MFW_BODY3] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_RIGHT_SHOE]) if (m_Info[LC_MFW_RLEG])
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RLEG]);
Mat.SetTranslation(lcVector3(0, 0, -1.76f));
Mat = lcMul(mSettings[LC_MFW_RLEG][GetSelectionIndex(LC_MFW_RLEG)].Offset, Mat);
m_Matrices[LC_MFW_RLEG] = lcMul(Mat, Root);
}
if (m_Info[LC_MFW_RLEGA])
{ {
lcVector3 Center(-0.4f, -0.04f, -1.12f); lcVector3 Center(-0.4f, -0.04f, -1.12f);
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RIGHT_SHOE]); Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RLEGA]);
Mat2 = mSettings[LC_MFW_RIGHT_SHOE][GetSelectionIndex(LC_MFW_RIGHT_SHOE)].Offset; Mat2 = mSettings[LC_MFW_RLEGA][GetSelectionIndex(LC_MFW_RLEGA)].Offset;
Mat2.SetTranslation(lcMul31(-Center, Mat2)); Mat2.SetTranslation(lcMul31(-Center, Mat2));
Mat = lcMul(Mat2, Mat); Mat = lcMul(Mat2, Mat);
Mat.SetTranslation(lcMul31(Center, Mat2)); Mat.SetTranslation(lcMul31(Center, Mat2));
m_Matrices[LC_MFW_RIGHT_SHOE] = lcMul(Mat, m_Matrices[LC_MFW_RIGHT_LEG]); m_Matrices[LC_MFW_RLEGA] = lcMul(Mat, m_Matrices[LC_MFW_RLEG]);
} }
if (m_Info[LC_MFW_LEFT_LEG]) if (m_Info[LC_MFW_LLEG])
{ {
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LEFT_LEG]); Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LLEG]);
Mat.SetTranslation(lcVector3(0, 0, -1.76f)); Mat.SetTranslation(lcVector3(0, 0, -1.76f));
Mat = lcMul(mSettings[LC_MFW_LEFT_LEG][GetSelectionIndex(LC_MFW_LEFT_LEG)].Offset, Mat); Mat = lcMul(mSettings[LC_MFW_LLEG][GetSelectionIndex(LC_MFW_LLEG)].Offset, Mat);
m_Matrices[LC_MFW_LEFT_LEG] = lcMul(Mat, Root); m_Matrices[LC_MFW_LLEG] = lcMul(Mat, Root);
} }
if (m_Info[LC_MFW_LEFT_SHOE]) if (m_Info[LC_MFW_LLEGA])
{ {
lcVector3 Center(0.4f, -0.04f, -1.12f); lcVector3 Center(0.4f, -0.04f, -1.12f);
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LEFT_SHOE]); Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LLEGA]);
Mat2 = mSettings[LC_MFW_LEFT_SHOE][GetSelectionIndex(LC_MFW_LEFT_SHOE)].Offset; Mat2 = mSettings[LC_MFW_LLEGA][GetSelectionIndex(LC_MFW_LLEGA)].Offset;
Mat2.SetTranslation(lcMul31(-Center, Mat2)); Mat2.SetTranslation(lcMul31(-Center, Mat2));
Mat = lcMul(Mat2, Mat); Mat = lcMul(Mat2, Mat);
Mat.SetTranslation(lcMul31(Center, Mat2)); Mat.SetTranslation(lcMul31(Center, Mat2));
m_Matrices[LC_MFW_LEFT_SHOE] = lcMul(Mat, m_Matrices[LC_MFW_LEFT_LEG]); m_Matrices[LC_MFW_LLEGA] = lcMul(Mat, m_Matrices[LC_MFW_LLEG]);
} }
} }

View file

@ -9,21 +9,23 @@ class PieceInfo;
enum LC_MFW_TYPES enum LC_MFW_TYPES
{ {
LC_MFW_HAT, LC_MFW_HATS,
LC_MFW_HATS2,
LC_MFW_HEAD, LC_MFW_HEAD,
LC_MFW_TORSO,
LC_MFW_NECK, LC_MFW_NECK,
LC_MFW_LEFT_ARM, LC_MFW_BODY,
LC_MFW_RIGHT_ARM, LC_MFW_BODY2,
LC_MFW_LEFT_HAND, LC_MFW_BODY3,
LC_MFW_RIGHT_HAND, LC_MFW_RARM,
LC_MFW_LEFT_TOOL, LC_MFW_LARM,
LC_MFW_RIGHT_TOOL, LC_MFW_RHAND,
LC_MFW_HIPS, LC_MFW_LHAND,
LC_MFW_LEFT_LEG, LC_MFW_RHANDA,
LC_MFW_RIGHT_LEG, LC_MFW_LHANDA,
LC_MFW_LEFT_SHOE, LC_MFW_RLEG,
LC_MFW_RIGHT_SHOE, LC_MFW_LLEG,
LC_MFW_RLEGA,
LC_MFW_LLEGA,
LC_MFW_NUMITEMS LC_MFW_NUMITEMS
}; };

View file

@ -15,7 +15,7 @@ static char THIS_FILE[] = __FILE__;
CMinifigDlg::CMinifigDlg(void* param, CWnd* pParent /*=NULL*/) CMinifigDlg::CMinifigDlg(void* param, CWnd* pParent /*=NULL*/)
: CDialog(CMinifigDlg::IDD, pParent) : CDialog(CMinifigDlg::IDD, pParent)
{ {
m_pMinifig = (MinifigWizard*)param; m_pMinifig = (MinifigWizard*)param;
m_pMinifigWnd = NULL; m_pMinifigWnd = NULL;
//{{AFX_DATA_INIT(CMinifigDlg) //{{AFX_DATA_INIT(CMinifigDlg)
@ -27,21 +27,23 @@ void CMinifigDlg::DoDataExchange(CDataExchange* pDX)
{ {
CDialog::DoDataExchange(pDX); CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMinifigDlg) //{{AFX_DATA_MAP(CMinifigDlg)
DDX_Control(pDX, IDC_MF_HANDLCOLOR, m_clrHandLeft); DDX_Control(pDX, IDC_MF_HATSCOLOR, m_clrHats);
DDX_Control(pDX, IDC_MF_TORSOCOLOR, m_clrTorso); DDX_Control(pDX, IDC_MF_HATS2COLOR, m_clrHats2);
DDX_Control(pDX, IDC_MF_TOOLLCOLOR, m_clrToolLeft);
DDX_Control(pDX, IDC_MF_SHOELCOLOR, m_clrShoeLeft);
DDX_Control(pDX, IDC_MF_LEGLCOLOR, m_clrLegLeft);
DDX_Control(pDX, IDC_MF_HEADCOLOR, m_clrHead); DDX_Control(pDX, IDC_MF_HEADCOLOR, m_clrHead);
DDX_Control(pDX, IDC_MF_ARMLCOLOR, m_clrArmLeft);
DDX_Control(pDX, IDC_MF_TOOLRCOLOR, m_clrToolRight);
DDX_Control(pDX, IDC_MF_SHOERCOLOR, m_clrShoeRight);
DDX_Control(pDX, IDC_MF_LEGRCOLOR, m_clrLegRight);
DDX_Control(pDX, IDC_MF_HIPSCOLOR, m_clrHips);
DDX_Control(pDX, IDC_MF_HANDRCOLOR, m_clrHandRight);
DDX_Control(pDX, IDC_MF_ARMRCOLOR, m_clrArmRight);
DDX_Control(pDX, IDC_MF_NECKCOLOR, m_clrNeck); DDX_Control(pDX, IDC_MF_NECKCOLOR, m_clrNeck);
DDX_Control(pDX, IDC_MF_HATCOLOR, m_clrHat); DDX_Control(pDX, IDC_MF_BODYCOLOR, m_clrBody);
DDX_Control(pDX, IDC_MF_BODY2COLOR, m_clrBody2);
DDX_Control(pDX, IDC_MF_BODY3COLOR, m_clrBody3);
DDX_Control(pDX, IDC_MF_ARMLCOLOR, m_clrArmLeft);
DDX_Control(pDX, IDC_MF_ARMRCOLOR, m_clrArmRight);
DDX_Control(pDX, IDC_MF_HANDLCOLOR, m_clrHandLeft);
DDX_Control(pDX, IDC_MF_HANDRCOLOR, m_clrHandRight);
DDX_Control(pDX, IDC_MF_TOOLLCOLOR, m_clrToolLeft);
DDX_Control(pDX, IDC_MF_TOOLRCOLOR, m_clrToolRight);
DDX_Control(pDX, IDC_MF_LEGLCOLOR, m_clrLegLeft);
DDX_Control(pDX, IDC_MF_LEGRCOLOR, m_clrLegRight);
DDX_Control(pDX, IDC_MF_SHOELCOLOR, m_clrShoeLeft);
DDX_Control(pDX, IDC_MF_SHOERCOLOR, m_clrShoeRight);
//}}AFX_DATA_MAP //}}AFX_DATA_MAP
} }
@ -50,8 +52,8 @@ BEGIN_MESSAGE_MAP(CMinifigDlg, CDialog)
//{{AFX_MSG_MAP(CMinifigDlg) //{{AFX_MSG_MAP(CMinifigDlg)
//}}AFX_MSG_MAP //}}AFX_MSG_MAP
ON_MESSAGE(CPN_SELENDOK, OnColorSelEndOK) ON_MESSAGE(CPN_SELENDOK, OnColorSelEndOK)
ON_CONTROL_RANGE(CBN_SELENDOK, IDC_MF_HAT, IDC_MF_SHOER, OnPieceSelEndOK) ON_CONTROL_RANGE(CBN_SELENDOK, IDC_MF_HATS, IDC_MF_SHOER, OnPieceSelEndOK)
ON_CONTROL_RANGE(EN_CHANGE, IDC_MF_HATANGLE, IDC_MF_SHOERANGLE, OnChangeAngle) ON_CONTROL_RANGE(EN_CHANGE, IDC_MF_HATSANGLE, IDC_MF_SHOERANGLE, OnChangeAngle)
END_MESSAGE_MAP() END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@ -61,62 +63,61 @@ BOOL CMinifigDlg::OnInitDialog()
{ {
CDialog::OnInitDialog(); CDialog::OnInitDialog();
ModifyStyle (0, WS_CLIPCHILDREN, 0); ModifyStyle(0, WS_CLIPCHILDREN, 0);
RECT r; RECT r;
//RECT r = { 200, 15, 400, 320 }; ::GetWindowRect(::GetDlgItem(m_hWnd, IDC_PREVIEWSTATIC), &r);
::GetWindowRect (::GetDlgItem(m_hWnd, IDC_PREVIEWSTATIC), &r); ScreenToClient(&r);
ScreenToClient (&r);
HINSTANCE hInst = AfxGetInstanceHandle(); HINSTANCE hInst = AfxGetInstanceHandle();
WNDCLASS wndcls; WNDCLASS wndcls;
LRESULT CALLBACK GLWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
#define OPENGL_CLASSNAME _T("LeoCADOpenGLClass") #define OPENGL_CLASSNAME _T("LeoCADOpenGLClass")
#define MINIFIG_CLASSNAME _T("LeoCADMinifigOpenGLClass") #define MINIFIG_CLASSNAME _T("LeoCADMinifigOpenGLClass")
// check if our class is registered // check if our class is registered
if(!(GetClassInfo (hInst, MINIFIG_CLASSNAME, &wndcls))) if(!(GetClassInfo(hInst, MINIFIG_CLASSNAME, &wndcls)))
{ {
if (GetClassInfo (hInst, OPENGL_CLASSNAME, &wndcls)) if (GetClassInfo(hInst, OPENGL_CLASSNAME, &wndcls))
{ {
// set our class name // set our class name
wndcls.lpszClassName = MINIFIG_CLASSNAME; wndcls.lpszClassName = MINIFIG_CLASSNAME;
wndcls.lpfnWndProc = GLWindowProc; wndcls.lpfnWndProc = GLWindowProc;
// register class // register class
if (!AfxRegisterClass (&wndcls)) if (!AfxRegisterClass(&wndcls))
AfxThrowResourceException(); AfxThrowResourceException();
} }
else else
AfxThrowResourceException(); AfxThrowResourceException();
} }
m_pMinifigWnd = new CWnd; m_pMinifigWnd = new CWnd;
m_pMinifigWnd->CreateEx (0, MINIFIG_CLASSNAME, "LeoCAD", WS_BORDER | WS_CHILD | WS_VISIBLE, r, this, 0, m_pMinifig); m_pMinifigWnd->CreateEx(0, MINIFIG_CLASSNAME, "LeoCAD", WS_BORDER | WS_CHILD | WS_VISIBLE, r, this, 0, m_pMinifig);
for (int i = 0; i < LC_MFW_NUMITEMS; i++) for (int i = 0; i < LC_MFW_NUMITEMS; i++)
((CColorPicker*)GetDlgItem (IDC_MF_HATCOLOR+i))->SetColorIndex (m_pMinifig->m_Colors[i]); ((CColorPicker*)GetDlgItem(IDC_MF_HATSCOLOR+i))->SetColorIndex(m_pMinifig->m_Colors[i]);
for (int i = 0; i < LC_MFW_NUMITEMS; i++) for (int i = 0; i < LC_MFW_NUMITEMS; i++)
{ {
CComboBox* pCombo = (CComboBox*)GetDlgItem(i+IDC_MF_HAT); CComboBox* pCombo = (CComboBox*)GetDlgItem(i+IDC_MF_HATS);
ObjArray<lcMinifigPieceInfo>& Pieces = m_pMinifig->mSettings[i]; ObjArray<lcMinifigPieceInfo>& Pieces = m_pMinifig->mSettings[i];
for (int j = 0; j < Pieces.GetSize(); j++) for (int j = 0; j < Pieces.GetSize(); j++)
pCombo->AddString(Pieces[j].Description); pCombo->AddString(Pieces[j].Description);
} }
for (int i = 0; i < LC_MFW_NUMITEMS; i++) for (int i = 0; i < LC_MFW_NUMITEMS; i++)
{ {
CComboBox* pCombo = (CComboBox*)GetDlgItem(i+IDC_MF_HAT); CComboBox* pCombo = (CComboBox*)GetDlgItem(i + IDC_MF_HATS);
pCombo->SetCurSel(m_pMinifig->GetSelectionIndex(i)); pCombo->SetCurSel(m_pMinifig->GetSelectionIndex(i));
} }
for (int i = IDC_MF_HATSPIN; i <= IDC_MF_SHOERSPIN; i++) for (int i = IDC_MF_HATSSPIN; i <= IDC_MF_SHOERSPIN; i++)
((CSpinButtonCtrl*)GetDlgItem(i))->SetRange(-360, 360); ((CSpinButtonCtrl*)GetDlgItem(i))->SetRange(-360, 360);
return TRUE; // return TRUE unless you set the focus to a control return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE // EXCEPTION: OCX Property Pages should return FALSE
} }
@ -134,8 +135,8 @@ BOOL CMinifigDlg::DestroyWindow()
LONG CMinifigDlg::OnColorSelEndOK(UINT lParam, LONG wParam) LONG CMinifigDlg::OnColorSelEndOK(UINT lParam, LONG wParam)
{ {
m_pMinifig->SetColor(wParam-IDC_MF_HATCOLOR, lParam); m_pMinifig->SetColor(wParam - IDC_MF_HATSCOLOR, lParam);
m_pMinifig->Redraw (); m_pMinifig->Redraw();
return TRUE; return TRUE;
} }
@ -143,21 +144,21 @@ LONG CMinifigDlg::OnColorSelEndOK(UINT lParam, LONG wParam)
void CMinifigDlg::OnPieceSelEndOK(UINT nID) void CMinifigDlg::OnPieceSelEndOK(UINT nID)
{ {
CComboBox* Combo = (CComboBox*)GetDlgItem(nID); CComboBox* Combo = (CComboBox*)GetDlgItem(nID);
m_pMinifig->SetSelectionIndex(nID - IDC_MF_HAT, Combo->GetCurSel()); m_pMinifig->SetSelectionIndex(nID - IDC_MF_HATS, Combo->GetCurSel());
m_pMinifig->Redraw(); m_pMinifig->Redraw();
} }
void CMinifigDlg::OnChangeAngle(UINT nID) void CMinifigDlg::OnChangeAngle(UINT nID)
{ {
int index[] = { LC_MFW_HAT, LC_MFW_HEAD, LC_MFW_LEFT_ARM, LC_MFW_RIGHT_ARM, LC_MFW_LEFT_HAND, LC_MFW_RIGHT_HAND, int index[] = { LC_MFW_HATS, LC_MFW_HATS2, LC_MFW_HEAD, LC_MFW_RARM, LC_MFW_LARM, LC_MFW_RHAND, LC_MFW_LHAND,
LC_MFW_LEFT_TOOL, LC_MFW_RIGHT_TOOL, LC_MFW_LEFT_LEG, LC_MFW_RIGHT_LEG, LC_MFW_LEFT_SHOE, LC_MFW_RIGHT_SHOE }; LC_MFW_RHANDA, LC_MFW_LHANDA, LC_MFW_RLEG, LC_MFW_LLEG, LC_MFW_RLEGA, LC_MFW_LLEGA };
char tmp[65]; char tmp[65];
GetDlgItem(nID)->GetWindowText(tmp, 65); GetDlgItem(nID)->GetWindowText(tmp, 65);
if (m_pMinifigWnd) if (m_pMinifigWnd)
{ {
m_pMinifig->SetAngle(index[nID-IDC_MF_HATANGLE], (float)strtod(tmp, NULL)); m_pMinifig->SetAngle(index[nID-IDC_MF_HATSANGLE], (float)strtod(tmp, NULL));
m_pMinifig->Redraw(); m_pMinifig->Redraw();
} }
} }

View file

@ -23,21 +23,23 @@ public:
// Dialog Data // Dialog Data
//{{AFX_DATA(CMinifigDlg) //{{AFX_DATA(CMinifigDlg)
enum { IDD = IDD_MINIFIG }; enum { IDD = IDD_MINIFIG };
CColorPicker m_clrHandLeft; CColorPicker m_clrHats;
CColorPicker m_clrTorso; CColorPicker m_clrHats2;
CColorPicker m_clrToolLeft;
CColorPicker m_clrShoeLeft;
CColorPicker m_clrLegLeft;
CColorPicker m_clrHead; CColorPicker m_clrHead;
CColorPicker m_clrArmLeft;
CColorPicker m_clrToolRight;
CColorPicker m_clrShoeRight;
CColorPicker m_clrLegRight;
CColorPicker m_clrHips;
CColorPicker m_clrHandRight;
CColorPicker m_clrArmRight;
CColorPicker m_clrNeck; CColorPicker m_clrNeck;
CColorPicker m_clrHat; CColorPicker m_clrBody;
CColorPicker m_clrBody2;
CColorPicker m_clrBody3;
CColorPicker m_clrArmLeft;
CColorPicker m_clrArmRight;
CColorPicker m_clrHandLeft;
CColorPicker m_clrHandRight;
CColorPicker m_clrToolLeft;
CColorPicker m_clrToolRight;
CColorPicker m_clrLegLeft;
CColorPicker m_clrLegRight;
CColorPicker m_clrShoeLeft;
CColorPicker m_clrShoeRight;
//}}AFX_DATA //}}AFX_DATA
// Overrides // Overrides

View file

@ -688,68 +688,74 @@ BEGIN
PUSHBUTTON "Apply",IDAPPLY,71,28,35,11 PUSHBUTTON "Apply",IDAPPLY,71,28,35,11
END END
IDD_MINIFIG DIALOGEX 0, 0, 520, 235 IDD_MINIFIG DIALOGEX 0, 0, 530, 271
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Minifig Wizard" CAPTION "Minifig Wizard"
FONT 8, "MS Sans Serif", 0, 0, 0x0 FONT 8, "MS Sans Serif", 0, 0, 0x0
BEGIN BEGIN
DEFPUSHBUTTON "OK",IDOK,423,214,41,14 DEFPUSHBUTTON "OK",IDOK,433,250,41,14
PUSHBUTTON "Cancel",IDCANCEL,472,214,41,14 PUSHBUTTON "Cancel",IDCANCEL,482,250,41,14
COMBOBOX IDC_MF_HAT,7,11,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_HATS,7,11,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_HATCOLOR,136,11,22,12 PUSHBUTTON "",IDC_MF_HATSCOLOR,136,11,22,12
EDITTEXT IDC_MF_HATANGLE,162,12,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_HATSANGLE,162,12,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_HATSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,11,7,12 CONTROL "Spin1",IDC_MF_HATSSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,12,7,12
COMBOBOX IDC_MF_NECK,7,37,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_HATS2,7,37,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_NECKCOLOR,136,37,22,12 PUSHBUTTON "",IDC_MF_HATS2COLOR,136,37,22,12
COMBOBOX IDC_MF_ARMR,7,63,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_MF_HATS2ANGLE,162,38,28,12,ES_AUTOHSCROLL | ES_NUMBER
PUSHBUTTON "",IDC_MF_ARMRCOLOR,136,63,22,12 CONTROL "",IDC_MF_HATS2SPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,181,39,7,12
EDITTEXT IDC_MF_ARMRANGLE,162,64,28,12,ES_AUTOHSCROLL | ES_NUMBER COMBOBOX IDC_MF_NECK,7,63,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Spin1",IDC_MF_ARMRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,63,8,12 PUSHBUTTON "",IDC_MF_NECKCOLOR,136,63,22,12
COMBOBOX IDC_MF_HANDR,7,89,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_ARMR,7,89,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_HANDRCOLOR,136,89,22,12 PUSHBUTTON "",IDC_MF_ARMRCOLOR,136,89,22,12
EDITTEXT IDC_MF_HANDRANGLE,162,90,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_ARMRANGLE,162,90,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_HANDRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,89,8,12 CONTROL "Spin1",IDC_MF_ARMRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,90,8,12
COMBOBOX IDC_MF_TOOLR,7,115,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_HANDR,7,115,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_TOOLRCOLOR,136,115,22,12 PUSHBUTTON "",IDC_MF_HANDRCOLOR,136,115,22,12
EDITTEXT IDC_MF_TOOLRANGLE,162,116,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_HANDRANGLE,162,116,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_TOOLRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,115,8,12 CONTROL "Spin1",IDC_MF_HANDRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,116,8,12
COMBOBOX IDC_MF_HIPS,7,141,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_TOOLR,7,141,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_HIPSCOLOR,136,141,22,12 PUSHBUTTON "",IDC_MF_TOOLRCOLOR,136,141,22,12
COMBOBOX IDC_MF_LEGR,7,167,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_MF_TOOLRANGLE,162,142,28,12,ES_AUTOHSCROLL | ES_NUMBER
PUSHBUTTON "",IDC_MF_LEGRCOLOR,136,167,22,12 CONTROL "Spin1",IDC_MF_TOOLRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,142,8,12
EDITTEXT IDC_MF_LEGRANGLE,162,168,28,12,ES_AUTOHSCROLL | ES_NUMBER COMBOBOX IDC_MF_BODY2,7,167,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Spin1",IDC_MF_LEGRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,167,8,12 PUSHBUTTON "",IDC_MF_BODY2COLOR,136,167,22,12
COMBOBOX IDC_MF_SHOER,7,193,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_LEGR,7,193,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_SHOERCOLOR,136,193,22,12 PUSHBUTTON "",IDC_MF_LEGRCOLOR,136,193,22,12
EDITTEXT IDC_MF_SHOERANGLE,162,194,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_LEGRANGLE,162,194,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_SHOERSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,193,8,12 CONTROL "Spin1",IDC_MF_LEGRSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,194,8,12
EDITTEXT IDC_MF_HEADANGLE,330,12,28,12,ES_AUTOHSCROLL | ES_NUMBER COMBOBOX IDC_MF_SHOER,7,219,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Spin1",IDC_MF_HEADSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,12,7,12 PUSHBUTTON "",IDC_MF_SHOERCOLOR,136,219,22,12
PUSHBUTTON "",IDC_MF_HEADCOLOR,362,11,22,12 EDITTEXT IDC_MF_SHOERANGLE,162,220,28,12,ES_AUTOHSCROLL | ES_NUMBER
COMBOBOX IDC_MF_HEAD,388,11,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Spin1",IDC_MF_SHOERSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,184,220,8,12
PUSHBUTTON "",IDC_MF_TORSOCOLOR,362,37,22,12 EDITTEXT IDC_MF_HEADANGLE,340,12,28,12,ES_AUTOHSCROLL | ES_NUMBER
COMBOBOX IDC_MF_TORSO,388,37,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Spin1",IDC_MF_HEADSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,362,13,7,12
EDITTEXT IDC_MF_ARMLANGLE,330,64,28,12,ES_AUTOHSCROLL | ES_NUMBER PUSHBUTTON "",IDC_MF_HEADCOLOR,372,11,22,12
CONTROL "Spin1",IDC_MF_ARMLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,64,7,12 COMBOBOX IDC_MF_HEAD,398,11,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_ARMLCOLOR,362,63,22,12 PUSHBUTTON "",IDC_MF_BODYCOLOR,372,37,22,12
COMBOBOX IDC_MF_ARML,388,63,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_BODY,398,37,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_MF_HANDLANGLE,330,90,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_ARMLANGLE,340,90,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_HANDLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,90,7,12 CONTROL "Spin1",IDC_MF_ARMLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,362,90,7,12
PUSHBUTTON "",IDC_MF_HANDLCOLOR,362,89,22,12 PUSHBUTTON "",IDC_MF_ARMLCOLOR,372,89,22,12
COMBOBOX IDC_MF_HANDL,388,89,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_ARML,398,89,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_MF_TOOLLANGLE,330,116,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_HANDLANGLE,340,116,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_TOOLLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,116,7,12 CONTROL "Spin1",IDC_MF_HANDLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,361,116,7,12
PUSHBUTTON "",IDC_MF_TOOLLCOLOR,362,115,22,12 PUSHBUTTON "",IDC_MF_HANDLCOLOR,372,115,22,12
COMBOBOX IDC_MF_TOOLL,388,115,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_HANDL,398,115,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_MF_LEGLANGLE,330,168,28,12,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MF_TOOLLANGLE,340,142,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_LEGLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,168,7,12 CONTROL "Spin1",IDC_MF_TOOLLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,361,142,7,12
PUSHBUTTON "",IDC_MF_LEGLCOLOR,362,167,22,12 PUSHBUTTON "",IDC_MF_TOOLLCOLOR,372,141,22,12
COMBOBOX IDC_MF_LEGL,388,167,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MF_TOOLL,398,141,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_MF_SHOELANGLE,330,194,28,12,ES_AUTOHSCROLL | ES_NUMBER PUSHBUTTON "",IDC_MF_BODY3COLOR,372,167,22,12
CONTROL "Spin1",IDC_MF_SHOELSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,352,194,7,12 COMBOBOX IDC_MF_BODY3,398,167,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_MF_SHOELCOLOR,362,193,22,12 EDITTEXT IDC_MF_LEGLANGLE,340,194,28,12,ES_AUTOHSCROLL | ES_NUMBER
COMBOBOX IDC_MF_SHOEL,388,193,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Spin1",IDC_MF_LEGLSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,361,194,7,12
LTEXT "",IDC_PREVIEWSTATIC,194,12,131,195,NOT WS_VISIBLE | NOT WS_GROUP PUSHBUTTON "",IDC_MF_LEGLCOLOR,372,193,22,12
COMBOBOX IDC_MF_LEGL,398,193,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_MF_SHOELANGLE,340,220,28,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_MF_SHOELSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,361,220,7,12
PUSHBUTTON "",IDC_MF_SHOELCOLOR,372,219,22,12
COMBOBOX IDC_MF_SHOEL,398,219,125,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "",IDC_PREVIEWSTATIC,194,12,141,231,NOT WS_VISIBLE | NOT WS_GROUP
END END
IDD_HTML DIALOG 0, 0, 187, 172 IDD_HTML DIALOG 0, 0, 187, 172
@ -1252,9 +1258,9 @@ BEGIN
IDD_MINIFIG, DIALOG IDD_MINIFIG, DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 393 RIGHTMARGIN, 523
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 179 BOTTOMMARGIN, 264
END END
IDD_HTML, DIALOG IDD_HTML, DIALOG

View file

@ -298,100 +298,106 @@
#define IDC_SCNDLG_SKYCOLOR2 1186 #define IDC_SCNDLG_SKYCOLOR2 1186
#define IDC_LIBDLG_LIST 1186 #define IDC_LIBDLG_LIST 1186
#define IDC_SCNDLG_GRAD2 1186 #define IDC_SCNDLG_GRAD2 1186
#define IDC_MF_HATCOLOR 1189
#define IDC_MF_HEADCOLOR 1190
#define IDC_HTMDLG_HIGHLIGHT 1190 #define IDC_HTMDLG_HIGHLIGHT 1190
#define IDC_MF_TORSOCOLOR 1191
#define IDC_GRID 1191 #define IDC_GRID 1191
#define IDC_MF_NECKCOLOR 1192
#define IDC_MF_ARMLCOLOR 1193
#define IDC_MF_ARMRCOLOR 1194
#define IDC_MF_HANDLCOLOR 1195
#define IDC_MF_HANDRCOLOR 1196
#define IDC_MF_TOOLLCOLOR 1197
#define IDC_MF_TOOLRCOLOR 1198
#define IDC_MF_HIPSCOLOR 1199
#define IDC_MF_LEGLCOLOR 1200
#define IDC_TEROPT_XPAT 1200 #define IDC_TEROPT_XPAT 1200
#define IDC_MF_LEGRCOLOR 1201
#define IDC_TEROPT_YPAT 1201 #define IDC_TEROPT_YPAT 1201
#define IDC_MF_SHOELCOLOR 1202
#define IDC_TEROPT_XSIZE 1202 #define IDC_TEROPT_XSIZE 1202
#define IDC_MF_SHOERCOLOR 1203
#define IDC_TEROPT_YSIZE 1203 #define IDC_TEROPT_YSIZE 1203
#define IDC_MF_HAT 1204 #define IDC_MF_HATSCOLOR 1187
#define IDC_TEROPT_COLOR 1204 #define IDC_MF_HATS2COLOR 1188
#define IDC_MF_HEAD 1205 #define IDC_MF_HEADCOLOR 1189
#define IDC_TEROPT_TEXTURENAME 1205 #define IDC_MF_NECKCOLOR 1190
#define IDC_MF_TORSO 1206 #define IDC_MF_BODYCOLOR 1191
#define IDC_TEROPT_TEXTURE 1206 #define IDC_MF_BODY2COLOR 1192
#define IDC_MF_BODY3COLOR 1193
#define IDC_MF_ARMLCOLOR 1194
#define IDC_MF_ARMRCOLOR 1195
#define IDC_MF_HANDLCOLOR 1196
#define IDC_MF_HANDRCOLOR 1197
#define IDC_MF_TOOLLCOLOR 1198
#define IDC_MF_TOOLRCOLOR 1199
#define IDC_MF_LEGLCOLOR 1200
#define IDC_MF_LEGRCOLOR 1201
#define IDC_MF_SHOELCOLOR 1202
#define IDC_MF_SHOERCOLOR 1203
#define IDC_MF_HATS 1204
#define IDC_MF_HATS2 1205
#define IDC_MF_HEAD 1206
#define IDC_MF_NECK 1207 #define IDC_MF_NECK 1207
#define IDC_MF_BODY 1208
#define IDC_MF_BODY2 1209
#define IDC_MF_BODY3 1210
#define IDC_MF_ARML 1211
#define IDC_MF_ARMR 1212
#define IDC_MF_HANDL 1213
#define IDC_MF_HANDR 1214
#define IDC_MF_TOOLL 1215
#define IDC_MF_TOOLR 1216
#define IDC_MF_LEGL 1217
#define IDC_MF_LEGR 1218
#define IDC_MF_SHOEL 1219
#define IDC_MF_SHOER 1220
#define IDC_MF_HATSANGLE 1221
#define IDC_MF_HATS2ANGLE 1222
#define IDC_MF_HEADANGLE 1223
#define IDC_MF_ARMLANGLE 1224
#define IDC_MF_ARMRANGLE 1225
#define IDC_MF_HANDLANGLE 1226
#define IDC_MF_HANDRANGLE 1227
#define IDC_MF_TOOLLANGLE 1228
#define IDC_MF_TOOLRANGLE 1229
#define IDC_MF_LEGLANGLE 1230
#define IDC_MF_LEGRANGLE 1231
#define IDC_MF_SHOELANGLE 1232
#define IDC_MF_SHOERANGLE 1233
#define IDC_MF_HATSSPIN 1234
#define IDC_MF_HATS2SPIN 1235
#define IDC_MF_HEADSPIN 1236
#define IDC_MF_ARMLSPIN 1237
#define IDC_MF_ARMRSPIN 1238
#define IDC_MF_HANDLSPIN 1239
#define IDC_MF_HANDRSPIN 1240
#define IDC_MF_TOOLLSPIN 1241
#define IDC_MF_TOOLRSPIN 1242
#define IDC_MF_LEGLSPIN 1243
#define IDC_MF_LEGRSPIN 1244
#define IDC_MF_SHOELSPIN 1245
#define IDC_MF_SHOERSPIN 1246
#define IDC_TEROPT_COLOR 1204
#define IDC_TEROPT_TEXTURENAME 1205
#define IDC_TEROPT_TEXTURE 1206
#define IDC_TEROPT_TEXTUREBROWSE 1207 #define IDC_TEROPT_TEXTUREBROWSE 1207
#define IDC_MF_ARML 1208
#define IDC_TEROPT_SMOOTH 1208 #define IDC_TEROPT_SMOOTH 1208
#define IDC_MF_ARMR 1209
#define IDC_MF_HANDL 1210
#define IDC_EDIT1 1210 #define IDC_EDIT1 1210
#define IDC_MF_HANDR 1211
#define IDC_TEROPT_FLAT 1211 #define IDC_TEROPT_FLAT 1211
#define IDC_TRANSDLG_GY 1211 #define IDC_TRANSDLG_GY 1211
#define IDC_CATDLG_KEYWORDS 1211 #define IDC_CATDLG_KEYWORDS 1211
#define IDC_MF_TOOLL 1212
#define IDC_EDIT2 1212 #define IDC_EDIT2 1212
#define IDC_SCNDLG_SOLID 1212 #define IDC_SCNDLG_SOLID 1212
#define IDC_TRANSDLG_GZ 1212 #define IDC_TRANSDLG_GZ 1212
#define IDC_MF_TOOLR 1213
#define IDC_SCNDLG_GRADIENT 1213 #define IDC_SCNDLG_GRADIENT 1213
#define IDC_TRANSDLG_OY 1213 #define IDC_TRANSDLG_OY 1213
#define IDC_MF_HIPS 1214
#define IDC_SCNDLG_IMAGE 1214 #define IDC_SCNDLG_IMAGE 1214
#define IDC_TREE 1214 #define IDC_TREE 1214
#define IDC_TRANSDLG_OZ 1214 #define IDC_TRANSDLG_OZ 1214
#define IDC_MF_LEGL 1215 #define IDC_PREVIEWSTATIC 1186
#define IDC_MF_LEGR 1216
#define IDC_MF_SHOEL 1217
#define IDC_MF_SHOER 1218
#define IDC_PREVIEWSTATIC 1219
#define IDC_MF_HATANGLE 1221
#define IDC_MF_HEADANGLE 1222
#define IDC_MF_ARMLANGLE 1223
#define IDC_HTMLDLG_HTMLEXT 1223 #define IDC_HTMLDLG_HTMLEXT 1223
#define IDC_MF_ARMRANGLE 1224
#define IDC_MF_HANDLANGLE 1225
#define ID_LIBTEX_ADD 1225 #define ID_LIBTEX_ADD 1225
#define IDC_MF_HANDRANGLE 1226
#define ID_LIBTEX_REMOVE 1226 #define ID_LIBTEX_REMOVE 1226
#define IDC_MF_TOOLLANGLE 1227
#define IDC_MF_TOOLRANGLE 1228
#define ID_LIBTEX_LIST 1228 #define ID_LIBTEX_LIST 1228
#define IDC_MF_LEGLANGLE 1229
#define IDC_ABTDLG_HOMEPAGE 1229 #define IDC_ABTDLG_HOMEPAGE 1229
#define IDC_MF_LEGRANGLE 1230
#define IDC_KEYDLG_CMDLIST 1230 #define IDC_KEYDLG_CMDLIST 1230
#define IDC_MF_SHOELANGLE 1231
#define IDC_MF_SHOERANGLE 1232
#define IDC_KEYDLG_REMOVE 1233 #define IDC_KEYDLG_REMOVE 1233
#define IDC_MF_HATSPIN 1234
#define IDC_MF_HEADSPIN 1235
#define IDC_MF_ARMLSPIN 1236
#define IDC_KEYDLG_RESET 1236 #define IDC_KEYDLG_RESET 1236
#define IDC_MF_ARMRSPIN 1237
#define IDC_KEYDLG_KEYEDIT 1237 #define IDC_KEYDLG_KEYEDIT 1237
#define IDC_MF_HANDLSPIN 1238
#define IDC_KEYDLG_ASSIGN 1238 #define IDC_KEYDLG_ASSIGN 1238
#define IDC_MF_HANDRSPIN 1239
#define IDC_KEYDLG_COMBO 1239 #define IDC_KEYDLG_COMBO 1239
#define IDC_MF_TOOLLSPIN 1240
#define IDC_KEYDLG_SAVE 1240 #define IDC_KEYDLG_SAVE 1240
#define IDC_MF_TOOLRSPIN 1241
#define IDC_KEYDLG_LOAD 1241 #define IDC_KEYDLG_LOAD 1241
#define IDC_MF_LEGLSPIN 1242
#define IDC_KEYDLG_FILENAME 1242 #define IDC_KEYDLG_FILENAME 1242
#define IDC_MF_LEGRSPIN 1243
#define IDC_ABTDLG_VERSION 1243 #define IDC_ABTDLG_VERSION 1243
#define IDC_MF_SHOELSPIN 1244
#define IDC_GENDLG_UPDATES 1244 #define IDC_GENDLG_UPDATES 1244
#define IDC_MF_SHOERSPIN 1245
#define IDC_TRANSDLG_GX 1245 #define IDC_TRANSDLG_GX 1245
#define IDC_TRANSDLG_OX 1246 #define IDC_TRANSDLG_OX 1246
#define IDC_CATDLG_NAME 1246 #define IDC_CATDLG_NAME 1246