summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/camera.cpp4
-rw-r--r--common/globals.cpp128
-rw-r--r--common/globals.h4
-rw-r--r--common/piece.cpp4
-rw-r--r--common/piece.h4
-rw-r--r--common/pieceinf.cpp6
-rw-r--r--common/project.cpp2
-rw-r--r--linux/toolbar.cpp57
-rw-r--r--win/Clrpick.cpp2
-rw-r--r--win/Clrpopup.cpp8
-rw-r--r--win/Colorlst.cpp6
-rw-r--r--win/Print.cpp4
-rw-r--r--win/Tools.cpp6
13 files changed, 142 insertions, 93 deletions
diff --git a/common/camera.cpp b/common/camera.cpp
index 03791ec..fa21983 100644
--- a/common/camera.cpp
+++ b/common/camera.cpp
@@ -797,7 +797,7 @@ void Camera::Render(float fLineWidth)
if (IsEyeSelected())
{
glLineWidth(fLineWidth*2);
- glColor3fv (FlatColorArray[(m_nState & LC_CAMERA_FOCUSED) != 0 ? LC_COL_FOCUSED : LC_COL_SELECTED]);
+ glColor3ubv(FlatColorArray[(m_nState & LC_CAMERA_FOCUSED) != 0 ? LC_COL_FOCUSED : LC_COL_SELECTED]);
glCallList(m_nList);
glLineWidth(fLineWidth);
}
@@ -810,7 +810,7 @@ void Camera::Render(float fLineWidth)
if (IsTargetSelected())
{
glLineWidth(fLineWidth*2);
- glColor3fv (FlatColorArray[(m_nState & LC_CAMERA_TARGET_FOCUSED) != 0 ? LC_COL_FOCUSED : LC_COL_SELECTED]);
+ glColor3ubv(FlatColorArray[(m_nState & LC_CAMERA_TARGET_FOCUSED) != 0 ? LC_COL_FOCUSED : LC_COL_SELECTED]);
glCallList(_nTargetList);
glLineWidth(fLineWidth);
}
diff --git a/common/globals.cpp b/common/globals.cpp
index 9f6af1b..da7e42d 100644
--- a/common/globals.cpp
+++ b/common/globals.cpp
@@ -20,68 +20,68 @@ const char* altcolornames[LC_MAXCOLORS] = { "Red", "Orange", "Green",
"ClearBlue", "ClearLightBlue", "ClearYellow", "ClearWhite",
"LightGray", "Tan", "LightBrown", "LightPink", "Turquoise", "Silver" };
-float FlatColorArray[31][3] = {
- { 0.65f,0.1f, 0.1f }, // 0 - Red
- { 1.0f, 0.5f, 0.2f }, // 1 - Orange
- { 0.1f, 0.4f, 0.1f }, // 2 - Green
- { 0.3f, 0.6f, 0.3f }, // 3 - Light Green
- { 0.0f, 0.2f, 0.7f }, // 4 - Blue
- { 0.2f, 0.4f, 0.9f }, // 5 - Light Blue
- { 0.8f, 0.8f, 0.0f }, // 6 - Yellow
- { 0.95f,0.95f,0.95f}, // 7 - White
- { 0.33f,0.3f, 0.3f }, // 8 - Dark Gray
- { 0.2f, 0.2f, 0.2f }, // 9 - Black
- { 0.4f, 0.2f, 0.2f }, //10 - Brown
- { 0.7f, 0.3f, 0.6f }, //11 - Pink
- { 0.6f, 0.2f, 0.6f }, //12 - Purple
- { 0.9f, 0.7f, 0.2f }, //13 - Gold
- { 0.6f, 0.1f, 0.1f }, //14 - Clear Red
- { 1.0f, 0.6f, 0.3f }, //15 - Clear Orange
- { 0.1f, 0.4f, 0.1f }, //16 - Clear Green
- { 0.6f, 0.7f, 0.3f }, //17 - Clear Light Green
- { 0.0f, 0.0f, 0.5f }, //18 - Clear Blue
- { 0.2f, 0.4f, 0.9f }, //19 - Clear Light Blue
- { 0.9f, 0.9f, 0.0f }, //20 - Clear Yellow
- { 0.9f, 0.9f, 0.9f }, //21 - Clear White
- { 0.55f,0.55f,0.55f}, //22 - Light Gray
- { 0.8f, 0.8f, 0.7f }, //23 - Tan
- { 0.6f, 0.4f, 0.4f }, //24 - Light Brown
- { 0.9f, 0.7f, 0.9f }, //25 - Light Pink
- { 0.1f, 0.7f, 0.8f }, //26 - Turquoise
- { 0.8f, 0.8f, 0.8f }, //27 - Silver
- { 0.0f, 0.0f, 0.0f }, //28 - Edges
- { 0.9f, 0.3f, 0.4f }, //29 - Selected
- { 0.4f, 0.3f, 0.9f }}; //30 - Focused
+unsigned char FlatColorArray[31][3] = {
+ { 166, 25, 25 }, // 0 - Red
+ { 255, 127, 51 }, // 1 - Orange
+ { 25, 102, 25 }, // 2 - Green
+ { 76, 153, 76 }, // 3 - Light Green
+ { 0, 51, 178 }, // 4 - Blue
+ { 51, 102, 229 }, // 5 - Light Blue
+ { 204, 204, 0 }, // 6 - Yellow
+ { 242, 242, 242 }, // 7 - White
+ { 84, 76, 76 }, // 8 - Dark Gray
+ { 51, 51, 51 }, // 9 - Black
+ { 102, 51, 51 }, //10 - Brown
+ { 178, 76, 153 }, //11 - Pink
+ { 153, 51, 153 }, //12 - Purple
+ { 229, 178, 51 }, //13 - Gold
+ { 153, 25, 25 }, //14 - Clear Red
+ { 255, 153, 76 }, //15 - Clear Orange
+ { 25, 102, 25 }, //16 - Clear Green
+ { 153, 178, 76 }, //17 - Clear Light Green
+ { 0, 0, 127 }, //18 - Clear Blue
+ { 51, 102, 229 }, //19 - Clear Light Blue
+ { 229, 229, 0 }, //20 - Clear Yellow
+ { 229, 229, 229 }, //21 - Clear White
+ { 140, 140, 140 }, //22 - Light Gray
+ { 204, 204, 178 }, //23 - Tan
+ { 153, 102, 102 }, //24 - Light Brown
+ { 229, 178, 229 }, //25 - Light Pink
+ { 25, 178, 204 }, //26 - Turquoise
+ { 204, 204, 204 }, //27 - Silver
+ { 0, 0, 0 }, //28 - Edges
+ { 229, 76, 102 }, //29 - Selected
+ { 102, 76, 229 }}; //30 - Focused
-float ColorArray[31][4] = {
- { 0.65f,0.1f, 0.1f, 1.0f }, // 0 - Red
- { 1.0f, 0.5f, 0.2f, 1.0f }, // 1 - Orange
- { 0.1f, 0.4f, 0.1f, 1.0f }, // 2 - Green
- { 0.3f, 0.6f, 0.3f, 1.0f }, // 3 - Light Green
- { 0.0f, 0.2f, 0.7f, 1.0f }, // 4 - Blue
- { 0.2f, 0.4f, 0.9f, 1.0f }, // 5 - Light Blue
- { 0.8f, 0.8f, 0.0f, 1.0f }, // 6 - Yellow
- { 0.95f,0.95f,0.95f,1.0f }, // 7 - White
- { 0.3f, 0.3f, 0.3f, 1.0f }, // 8 - Dark Gray
- { 0.1f, 0.1f, 0.1f, 1.0f }, // 9 - Black
- { 0.4f, 0.2f, 0.2f, 1.0f }, //10 - Brown
- { 0.7f, 0.3f, 0.6f, 1.0f }, //11 - Pink
- { 0.6f, 0.2f, 0.6f, 1.0f }, //12 - Purple
- { 0.9f, 0.7f, 0.2f, 1.0f }, //13 - Gold
- { 0.6f, 0.1f, 0.1f, 0.6f }, //14 - Clear Red
- { 1.0f, 0.6f, 0.3f, 0.6f }, //15 - Clear Orange
- { 0.1f, 0.4f, 0.1f, 0.6f }, //16 - Clear Green
- { 0.6f, 0.7f, 0.3f, 0.6f }, //17 - Clear Light Green
- { 0.0f, 0.0f, 0.5f, 0.6f }, //18 - Clear Blue
- { 0.2f, 0.4f, 0.9f, 0.6f }, //19 - Clear Light Blue
- { 0.9f, 0.9f, 0.0f, 0.6f }, //20 - Clear Yellow
- { 0.9f, 0.9f, 0.9f, 0.6f }, //21 - Clear White
- { 0.5f, 0.5f, 0.5f, 1.0f }, //22 - Light Gray
- { 0.8f, 0.8f, 0.7f, 1.0f }, //23 - Tan
- { 0.6f, 0.4f, 0.4f, 1.0f }, //24 - Light Brown
- { 0.9f, 0.7f, 0.9f, 1.0f }, //25 - Light Pink
- { 0.1f, 0.7f, 0.8f, 1.0f }, //26 - Turquoise
- { 0.8f, 0.8f, 0.8f, 1.0f }, //27 - Silver
- { 0.2f, 0.2f, 0.2f, 1.0f }, //28 - Edges
- { 0.9f, 0.3f, 0.4f, 1.0f }, //29 - Selected
- { 0.4f, 0.3f, 0.9f, 1.0f }}; //30 - Focused
+unsigned char ColorArray[31][4] = {
+ { 166, 25, 25, 255 }, // 0 - Red
+ { 255, 127, 51, 255 }, // 1 - Orange
+ { 25, 102, 25, 255 }, // 2 - Green
+ { 76, 153, 76, 255 }, // 3 - Light Green
+ { 0, 51, 178, 255 }, // 4 - Blue
+ { 51, 102, 229, 255 }, // 5 - Light Blue
+ { 204, 204, 0, 255 }, // 6 - Yellow
+ { 242, 242, 242, 255 }, // 7 - White
+ { 76, 76, 76, 255 }, // 8 - Dark Gray
+ { 25, 25, 25, 255 }, // 9 - Black
+ { 102, 51, 51, 255 }, //10 - Brown
+ { 178, 76, 153, 255 }, //11 - Pink
+ { 153, 51, 153, 255 }, //12 - Purple
+ { 229, 178, 51, 255 }, //13 - Gold
+ { 153, 25, 25, 153 }, //14 - Clear Red
+ { 255, 153, 76, 153 }, //15 - Clear Orange
+ { 25, 102, 25, 153 }, //16 - Clear Green
+ { 153, 178, 76, 153 }, //17 - Clear Light Green
+ { 0, 0, 127, 153 }, //18 - Clear Blue
+ { 51, 102, 229, 153 }, //19 - Clear Light Blue
+ { 229, 229, 0, 153 }, //20 - Clear Yellow
+ { 229, 229, 229, 153 }, //21 - Clear White
+ { 127, 127, 127, 255 }, //22 - Light Gray
+ { 204, 204, 178, 255 }, //23 - Tan
+ { 153, 102, 102, 255 }, //24 - Light Brown
+ { 229, 178, 229, 255 }, //25 - Light Pink
+ { 25, 178, 204, 255 }, //26 - Turquoise
+ { 204, 204, 204, 255 }, //27 - Silver
+ { 51, 51, 51, 255 }, //28 - Edges
+ { 229, 76, 102, 255 }, //29 - Selected
+ { 102, 76, 229, 255 }}; //30 - Focused
diff --git a/common/globals.h b/common/globals.h
index 39154cd..7267e95 100644
--- a/common/globals.h
+++ b/common/globals.h
@@ -6,7 +6,7 @@ extern Project* project;
#include "defines.h"
-extern float FlatColorArray[31][3];
-extern float ColorArray[31][4];
+extern unsigned char FlatColorArray[31][3];
+extern unsigned char ColorArray[31][4];
extern const char* colornames[LC_MAXCOLORS];
extern const char* altcolornames[LC_MAXCOLORS];
diff --git a/common/piece.cpp b/common/piece.cpp
index 99fcef9..348c1d8 100644
--- a/common/piece.cpp
+++ b/common/piece.cpp
@@ -44,9 +44,9 @@ static PIECE_KEY* AddNode (PIECE_KEY *node, unsigned short nTime, unsigned char
inline static void SetCurrentColor(unsigned char nColor, bool* bTrans, bool bLighting, bool bNoAlpha)
{
if (bLighting || !bNoAlpha)
- glColor4fv(ColorArray[nColor]);
+ glColor4ubv(ColorArray[nColor]);
else
- glColor3fv(FlatColorArray[nColor]);
+ glColor3ubv(FlatColorArray[nColor]);
if (nColor > 27)
return;
diff --git a/common/piece.h b/common/piece.h
index bf6089d..c163480 100644
--- a/common/piece.h
+++ b/common/piece.h
@@ -121,7 +121,7 @@ public:
if (bHilite && ((m_nState & LC_PIECE_SELECTED) != 0))
{
- glColor3fv(FlatColorArray[m_nState & LC_PIECE_FOCUSED ? LC_COL_FOCUSED : LC_COL_SELECTED]);
+ glColor3ubv(FlatColorArray[m_nState & LC_PIECE_FOCUSED ? LC_COL_FOCUSED : LC_COL_SELECTED]);
glLineWidth(2*fLineWidth);
glPushAttrib(GL_POLYGON_BIT);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
@@ -131,7 +131,7 @@ public:
}
else
{
- glColor3fv (FlatColorArray[m_nColor]);
+ glColor3ubv(FlatColorArray[m_nColor]);
glCallList(m_nBoxList);
}
glPopMatrix();
diff --git a/common/pieceinf.cpp b/common/pieceinf.cpp
index 5b1e5d0..b123403 100644
--- a/common/pieceinf.cpp
+++ b/common/pieceinf.cpp
@@ -1584,7 +1584,7 @@ void PieceInfo::RenderPiece(int nColor)
m_pTextures[sh].texture->MakeCurrent();
if (m_pTextures[sh].color == LC_COL_DEFAULT)
- glColor3fv(FlatColorArray[nColor]);
+ glColor3ubv(FlatColorArray[nColor]);
if (nColor > 13 && nColor < 22)
{
// glEnable (GL_POLYGON_STIPPLE);
@@ -1634,7 +1634,7 @@ void PieceInfo::RenderPiece(int nColor)
curcolor = (unsigned short)*info;
info++;
- glColor3fv(FlatColorArray[curcolor]);
+ glColor3ubv(FlatColorArray[curcolor]);
if (curcolor > 13 && curcolor < 22)
{
// glEnable (GL_POLYGON_STIPPLE);
@@ -1675,7 +1675,7 @@ void PieceInfo::RenderPiece(int nColor)
curcolor = *info;
info++;
- glColor3fv(FlatColorArray[curcolor]);
+ glColor3ubv(FlatColorArray[curcolor]);
if (curcolor > 13 && curcolor < 22)
{
// glEnable (GL_POLYGON_STIPPLE);
diff --git a/common/project.cpp b/common/project.cpp
index fcbffa2..13da7e9 100644
--- a/common/project.cpp
+++ b/common/project.cpp
@@ -3807,7 +3807,7 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
FILE* mat = fopen(buf, "wt");
fputs("# Colors used by LeoCAD\n# You need to add transparency values\n#\n\n", mat);
for (i = 0; i < LC_MAXCOLORS; i++)
- fprintf(mat, "newmtl %s\nKd %.2f %.2f %.2f\n\n", altcolornames[i], FlatColorArray[i][0], FlatColorArray[i][1], FlatColorArray[i][2]);
+ fprintf(mat, "newmtl %s\nKd %.2f %.2f %.2f\n\n", altcolornames[i], (float)FlatColorArray[i][0]/255, (float)FlatColorArray[i][1]/255, (float)FlatColorArray[i][2]/255);
fclose(mat);
for (pPiece = m_pPieces; pPiece; pPiece = pPiece->m_pNext)
diff --git a/linux/toolbar.cpp b/linux/toolbar.cpp
index d7a6231..c27d251 100644
--- a/linux/toolbar.cpp
+++ b/linux/toolbar.cpp
@@ -373,7 +373,7 @@ static void selection_made(GtkWidget *clist, gint row, gint column, GdkEventButt
gtk_widget_draw(piecepreview, NULL);
}
-// Add a new piece to the list
+// Add a new piece to the combobox
void piececombo_add(char* string)
{
if (string == NULL)
@@ -410,6 +410,51 @@ void piececombo_add(char* string)
}
}
+static void piececombo_changed(GtkWidget *widget, GtkWidget *entry)
+{
+ char* str;
+ str = gtk_entry_get_text(GTK_ENTRY(entry));
+}
+
+static void piececombo_select(GtkList *list, GtkWidget *widget, gpointer data)
+{
+ int i;
+ gchar* str;
+
+ gtk_label_get(GTK_LABEL(GTK_BIN(widget)->child), &str);
+ // printf("%s\n", str);
+
+ for (i = 0; i < project->GetPieceLibraryCount(); i++)
+ {
+ PieceInfo* pInfo = project->GetPieceInfo(i);
+
+ if (strcmp (str, pInfo->m_strDescription) == 0)
+ {
+ // Check if we need to change the current group
+ if ((list_groups) && (pInfo->m_nGroups != 0))
+ if ((pInfo->m_nGroups & (1 << list_curgroup)) == 0)
+ {
+ unsigned long d = 1;
+ for (int k = 1; k < 32; k++)
+ {
+ if ((pInfo->m_nGroups & d) != 0)
+ {
+ groupsbar_set(k-1);
+ k = 32;
+ }
+ else
+ d <<= 1;
+ }
+ }
+
+ // Select the piece
+ i = gtk_clist_find_row_from_data (GTK_CLIST(piecelist), pInfo);
+ gtk_clist_select_row (GTK_CLIST(piecelist), i, 0);
+
+ return;
+ }
+ }
+}
static void colorlist_draw_pixmap(GtkWidget *widget)
{
@@ -433,9 +478,9 @@ static void colorlist_draw_pixmap(GtkWidget *widget)
else
rect.x = widget->allocation.width * (i-14) / 14;
- c.red = (gushort)(FlatColorArray[i][0]*0xFFFF);
- c.green = (gushort)(FlatColorArray[i][1]*0xFFFF);
- c.blue = (gushort)(FlatColorArray[i][2]*0xFFFF);
+ c.red = (gushort)(FlatColorArray[i][0]*0xFF);
+ c.green = (gushort)(FlatColorArray[i][1]*0xFF);
+ c.blue = (gushort)(FlatColorArray[i][2]*0xFF);
gdk_color_alloc(gtk_widget_get_colormap(widget), &c);
gdk_gc_set_foreground(gc, &c);
@@ -688,6 +733,10 @@ void create_piecebar(GtkWidget *window, GtkWidget *hbox)
// Piece combo
piececombo = gtk_combo_new();
+ gtk_signal_connect(GTK_OBJECT(GTK_COMBO(piececombo)->entry), "changed",
+ GTK_SIGNAL_FUNC(piececombo_changed), GTK_COMBO(piececombo)->entry);
+ gtk_signal_connect(GTK_OBJECT(GTK_COMBO(piececombo)->list), "select-child",
+ GTK_SIGNAL_FUNC(piececombo_select), GTK_COMBO(piececombo)->list);
gtk_box_pack_start(GTK_BOX(vbox1), piececombo, FALSE, TRUE, 0);
gtk_widget_show(piececombo);
diff --git a/win/Clrpick.cpp b/win/Clrpick.cpp
index 1a6581f..496a48e 100644
--- a/win/Clrpick.cpp
+++ b/win/Clrpick.cpp
@@ -184,7 +184,7 @@ int CColorPicker::GetColorIndex()
void CColorPicker::SetColorIndex(int nColor)
{
if (nColor != -1)
- m_crColor = RGB(FlatColorArray[nColor][0]*255, FlatColorArray[nColor][1]*255, FlatColorArray[nColor][2]*255);
+ m_crColor = RGB(FlatColorArray[nColor][0], FlatColorArray[nColor][1], FlatColorArray[nColor][2]);
if (m_nColor != nColor)
{
diff --git a/win/Clrpopup.cpp b/win/Clrpopup.cpp
index efab891..41007a8 100644
--- a/win/Clrpopup.cpp
+++ b/win/Clrpopup.cpp
@@ -31,7 +31,7 @@ CColorPopup::CColorPopup()
COLORREF CColorPopup::GetColor(int nIndex)
{
- return RGB(FlatColorArray[nIndex][0]*255, FlatColorArray[nIndex][1]*255, FlatColorArray[nIndex][2]*255);
+ return RGB(FlatColorArray[nIndex][0], FlatColorArray[nIndex][1], FlatColorArray[nIndex][2]);
}
CColorPopup::CColorPopup(CPoint p, COLORREF crColor, CWnd* pParentWnd, BOOL bDefaultText, BOOL bCustomText)
@@ -83,9 +83,9 @@ void CColorPopup::Initialise()
for (int i = 0; i < NUM_COLORS; i++)
{
- pLogPalette->palPalEntry[i].peRed = (BYTE)(FlatColorArray[i][0]*255);
- pLogPalette->palPalEntry[i].peGreen = (BYTE)(FlatColorArray[i][1]*255);
- pLogPalette->palPalEntry[i].peBlue = (BYTE)(FlatColorArray[i][2]*255);
+ pLogPalette->palPalEntry[i].peRed = FlatColorArray[i][0];
+ pLogPalette->palPalEntry[i].peGreen = FlatColorArray[i][1];
+ pLogPalette->palPalEntry[i].peBlue = FlatColorArray[i][2];
pLogPalette->palPalEntry[i].peFlags = 0;
}
diff --git a/win/Colorlst.cpp b/win/Colorlst.cpp
index afb7918..06eb038 100644
--- a/win/Colorlst.cpp
+++ b/win/Colorlst.cpp
@@ -49,13 +49,13 @@ void CColorsList::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
if (m_bLowRes)
{
- HBRUSH hbr = CreateSolidBrush(RGB(255*FlatColorArray[x][0], 255*FlatColorArray[x][1], 255*FlatColorArray[x][2]));
+ HBRUSH hbr = CreateSolidBrush(RGB(FlatColorArray[x][0], FlatColorArray[x][1], FlatColorArray[x][2]));
FillRect(lpDIS->hDC, &lpDIS->rcItem, hbr);
DeleteObject (hbr);
}
else
{
- SetBkColor(lpDIS->hDC, RGB(255*FlatColorArray[x][0], 255*FlatColorArray[x][1], 255*FlatColorArray[x][2]));
+ SetBkColor(lpDIS->hDC, RGB(FlatColorArray[x][0], FlatColorArray[x][1], FlatColorArray[x][2]));
ExtTextOut(lpDIS->hDC, 0, 0, ETO_OPAQUE, &lpDIS->rcItem, NULL, 0, NULL);
}
@@ -79,7 +79,7 @@ void CColorsList::DrawItem(LPDRAWITEMSTRUCT lpDIS)
if ((lpDIS->itemState & ODS_SELECTED) &&
(lpDIS->itemAction & (ODA_SELECT | ODA_DRAWENTIRE)))
{
- HBRUSH hbr = CreateSolidBrush(RGB(255*(1-FlatColorArray[x][0]), 255*(1-FlatColorArray[x][1]), 255*(1-FlatColorArray[x][2])));
+ HBRUSH hbr = CreateSolidBrush(RGB(255-FlatColorArray[x][0], 255-FlatColorArray[x][1], 255-FlatColorArray[x][2]));
FrameRect(lpDIS->hDC, &lpDIS->rcItem, hbr);
DeleteObject (hbr);
}
diff --git a/win/Print.cpp b/win/Print.cpp
index 06c52dd..158a0ab 100644
--- a/win/Print.cpp
+++ b/win/Print.cpp
@@ -286,7 +286,7 @@ static void PrintCatalogThread (CWnd* pParent, CFrameWnd* pMainFrame)
glDisable (GL_DITHER);
glShadeModel (GL_FLAT);
- glColor3fv (FlatColorArray[project->GetCurrentColor()]);
+ glColor3ubv(FlatColorArray[project->GetCurrentColor()]);
// dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_DOCNAME, node->name);
node = node->next;
@@ -678,7 +678,7 @@ static void PrintPiecesThread(void* pv)
glDisable (GL_DITHER);
glShadeModel (GL_FLAT);
- glColor3fv (FlatColorArray[project->m_nCurColor]);
+ glColor3ubv(FlatColorArray[project->m_nCurColor]);
PieceInfo* pInfo = project->GetPieceInfo(node->actual);
node = node->next;
diff --git a/win/Tools.cpp b/win/Tools.cpp
index 5960091..3f9f431 100644
--- a/win/Tools.cpp
+++ b/win/Tools.cpp
@@ -395,9 +395,9 @@ void Export3DStudio()
InitMaterial3ds(&matr);
sprintf(matr->name, "Material%02d", i);
- matr->ambient.r = matr->diffuse.r = FlatColorArray[i][0];
- matr->ambient.g = matr->diffuse.g = FlatColorArray[i][1];
- matr->ambient.b = matr->diffuse.b = FlatColorArray[i][2];
+ matr->ambient.r = matr->diffuse.r = (float)FlatColorArray[i][0]/255;
+ matr->ambient.g = matr->diffuse.g = (float)FlatColorArray[i][1]/255;
+ matr->ambient.b = matr->diffuse.b = (float)FlatColorArray[i][2]/255;
matr->specular.r = 0.9f;
matr->specular.g = 0.9f;
matr->specular.b = 0.9f;