win32: tileview: fix palette index display

This commit is contained in:
zeromus 2010-06-22 03:15:36 +00:00
parent 60c5b06bc8
commit b2610dfe11
1 changed files with 27 additions and 7 deletions

View File

@ -27,20 +27,33 @@
#include "../MMU.h" #include "../MMU.h"
#include "../gpu.h" #include "../gpu.h"
typedef struct class tileview_struct
{ {
public:
tileview_struct()
: hwnd(NULL)
{}
u32 autoup_secs; u32 autoup_secs;
bool autoup; bool autoup;
HWND hwnd; HWND hwnd;
u32 target; u32 target;
u16 * pal; u16 * pal;
s16 palnum; void setPalnum(s16 num)
{
palnum = num;
if(hwnd == NULL) return;
char text[100];
sprintf(text, "Pal : %d", palnum);
SetDlgItemText(hwnd, IDC_PALNUM, text);
}
u16 tilenum; u16 tilenum;
u8 coul; u8 coul;
u32 x; u32 x;
u32 y; u32 y;
} tileview_struct; s16 palnum;
};
tileview_struct *TileView = NULL; tileview_struct *TileView = NULL;
@ -155,8 +168,6 @@ LRESULT TileViewBox_Pal256(HWND hwnd, tileview_struct * win, WPARAM wParam, LPAR
bitmap[x + (y*256) + (num*8) +(num2*256*8)] = pal[mem[x + (y*8) + (num*64) +(num2*2048)]]; bitmap[x + (y*256) + (num*8) +(num2*256*8)] = pal[mem[x + (y*8) + (num*64) +(num2*2048)]];
SetDIBitsToDevice(mem_dc, 0, 0, 256, 256, 0, 0, 0, 256, bitmap, (BITMAPINFO*)&bmi, DIB_RGB_COLORS); SetDIBitsToDevice(mem_dc, 0, 0, 256, 256, 0, 0, 0, 256, bitmap, (BITMAPINFO*)&bmi, DIB_RGB_COLORS);
} }
sprintf(text, "Pal : %d", win->palnum);
SetWindowText(GetDlgItem(hwnd, IDC_PALNUM), text);
} }
else else
TextOut(mem_dc, 3, 3, "Il n'y a pas de palette", 23); TextOut(mem_dc, 3, 3, "Il n'y a pas de palette", 23);
@ -231,8 +242,6 @@ LRESULT TileViewBox_Pal16(HWND hwnd, tileview_struct * win, WPARAM wParam, LPARA
} }
SetDIBitsToDevice(mem_dc, 0, 0, 512, 256, 0, 0, 0, 256, bitmap, (BITMAPINFO*)&bmi, DIB_RGB_COLORS); SetDIBitsToDevice(mem_dc, 0, 0, 512, 256, 0, 0, 0, 256, bitmap, (BITMAPINFO*)&bmi, DIB_RGB_COLORS);
} }
sprintf(text, "Pal : %d", win->palnum);
SetWindowText(GetDlgItem(hwnd, IDC_PALNUM), text);
} }
else else
TextOut(mem_dc, 3, 3, "Il n'y a pas de palette", 23); TextOut(mem_dc, 3, 3, "Il n'y a pas de palette", 23);
@ -438,11 +447,13 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
++(TileView->palnum); ++(TileView->palnum);
if(TileView->palnum>15) if(TileView->palnum>15)
TileView->palnum = 15; TileView->palnum = 15;
TileView->setPalnum(TileView->palnum);
break; break;
case SB_LINELEFT : case SB_LINELEFT :
--(TileView->palnum); --(TileView->palnum);
if(TileView->palnum<0) if(TileView->palnum<0)
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
break; break;
} }
InvalidateRect(hwnd, NULL, FALSE); InvalidateRect(hwnd, NULL, FALSE);
@ -563,24 +574,28 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 0 : case 0 :
TileView->pal = (u16 *)MMU.ARM9_VMEM; TileView->pal = (u16 *)MMU.ARM9_VMEM;
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE);
break; break;
case 1 : case 1 :
TileView->pal = ((u16 *)MMU.ARM9_VMEM) + 0x200; TileView->pal = ((u16 *)MMU.ARM9_VMEM) + 0x200;
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE);
break; break;
case 2 : case 2 :
TileView->pal = (u16 *)MMU.ARM9_VMEM + 0x100; TileView->pal = (u16 *)MMU.ARM9_VMEM + 0x100;
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE);
break; break;
case 3 : case 3 :
TileView->pal = ((u16 *)MMU.ARM9_VMEM) + 0x300; TileView->pal = ((u16 *)MMU.ARM9_VMEM) + 0x300;
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE);
break; break;
@ -590,6 +605,7 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 7 : case 7 :
TileView->pal = ((u16 *)(MMU.ExtPal[0][sel-4])); TileView->pal = ((u16 *)(MMU.ExtPal[0][sel-4]));
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_HIDE); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_HIDE);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), FALSE);
if(TileView->coul == 2) if(TileView->coul == 2)
@ -605,6 +621,7 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 11 : case 11 :
TileView->pal = ((u16 *)(MMU.ExtPal[1][sel-8])); TileView->pal = ((u16 *)(MMU.ExtPal[1][sel-8]));
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_HIDE); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_HIDE);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), FALSE);
if(TileView->coul == 2) if(TileView->coul == 2)
@ -618,6 +635,7 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 13 : case 13 :
TileView->pal = ((u16 *)(MMU.ObjExtPal[0][sel-12])); TileView->pal = ((u16 *)(MMU.ObjExtPal[0][sel-12]));
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
if(TileView->coul == 2) if(TileView->coul == 2)
{ {
SendMessage(GetDlgItem(hwnd, IDC_256COUL), BM_SETCHECK, TRUE, 0); SendMessage(GetDlgItem(hwnd, IDC_256COUL), BM_SETCHECK, TRUE, 0);
@ -629,6 +647,7 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 15 : case 15 :
TileView->pal = ((u16 *)(MMU.ObjExtPal[1][sel-14])); TileView->pal = ((u16 *)(MMU.ObjExtPal[1][sel-14]));
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
if(TileView->coul == 2) if(TileView->coul == 2)
{ {
SendMessage(GetDlgItem(hwnd, IDC_256COUL), BM_SETCHECK, TRUE, 0); SendMessage(GetDlgItem(hwnd, IDC_256COUL), BM_SETCHECK, TRUE, 0);
@ -642,6 +661,7 @@ BOOL CALLBACK ViewTilesProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
case 19 : case 19 :
TileView->pal = ((u16 *)(MMU.texInfo.texPalSlot[sel-16])); TileView->pal = ((u16 *)(MMU.texInfo.texPalSlot[sel-16]));
TileView->palnum = 0; TileView->palnum = 0;
TileView->setPalnum(TileView->palnum);
ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW); ShowWindow(GetDlgItem(hwnd, IDC_16COUL), SW_SHOW);
EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE); EnableWindow(GetDlgItem(hwnd, IDC_16COUL), TRUE);
break; break;