Skip to content

Commit 416ece3

Browse files
committed
Refractor palette into seperate class
1 parent 799ab0f commit 416ece3

21 files changed

+438
-456
lines changed

callback_gui.cpp

+15-38
Original file line numberDiff line numberDiff line change
@@ -61,45 +61,32 @@ void set_game_system(Fl_Widget*,void* selection){
6161
}
6262
unsigned bd=getBitdepthcurSys();
6363
unsigned bdold=bd;
64-
unsigned perRow,rows;
64+
unsigned perRow=currentProject->pal->perRow,rows=currentProject->pal->rowCntPal+currentProject->pal->rowCntPalalt;
6565
uint32_t gold=currentProject->gameSystem;
6666
uint32_t sold=currentProject->subSystem;
67-
switch(sel){
68-
case sega_genesis:
69-
perRow=16;
70-
rows=4;
71-
break;
72-
case NES:
73-
perRow=4;
74-
rows=4;
75-
break;
76-
default:
77-
show_default_error
78-
return;
79-
}
80-
perRow=perRow*rows/currentProject->rowCntPal;//Handle unequal row amounts
81-
memset(currentProject->palType,0,perRow*rows);
67+
perRow=perRow*rows/(currentProject->pal->rowCntPal+currentProject->pal->rowCntPalalt);//Handle unequal row amounts
68+
memset(currentProject->pal->palType,0,perRow*rows);
8269
uint8_t*tmpPalRGB=(uint8_t*)alloca(perRow*rows*3);
83-
if(perRow>=palEdit.perRow){
84-
for(unsigned i=0,j=0;i<currentProject->colorCnt*3;i+=palEdit.perRow*3,j+=perRow*3){
85-
memcpy(tmpPalRGB+j,currentProject->rgbPal+i,palEdit.perRow*3);
86-
memset(tmpPalRGB+j+((palEdit.perRow)*3),0,(perRow-palEdit.perRow)*3);
70+
if(perRow>=currentProject->pal->perRow){
71+
for(unsigned i=0,j=0;i<currentProject->pal->colorCnt*3;i+=currentProject->pal->perRow*3,j+=perRow*3){
72+
memcpy(tmpPalRGB+j,currentProject->pal->rgbPal+i,currentProject->pal->perRow*3);
73+
memset(tmpPalRGB+j+((currentProject->pal->perRow)*3),0,(perRow-currentProject->pal->perRow)*3);
8774
}
8875
}else{
8976
uint8_t*nPtr=tmpPalRGB;
90-
uint8_t*rgbPtr=currentProject->rgbPal;
77+
uint8_t*rgbPtr=currentProject->pal->rgbPal;
9178
for(unsigned k=0;k<rows;++k){
9279
//Preserve background color
9380
*nPtr++=rgbPtr[0];
9481
*nPtr++=rgbPtr[1];
9582
*nPtr++=rgbPtr[2];
9683
rgbPtr+=palEdit.perRow/perRow*3;
97-
for(unsigned j=(palEdit.perRow/perRow)*3;j<palEdit.perRow*3;j+=(palEdit.perRow/perRow)*3){
84+
for(unsigned j=(currentProject->pal->perRow/perRow)*3;j<currentProject->pal->perRow*3;j+=(currentProject->pal->perRow/perRow)*3){
9885
unsigned type=0;
9986
double Lv,Cv,Hv;
10087
Rgb2Lch255(&Lv,&Cv,&Hv,rgbPtr[0],rgbPtr[1],rgbPtr[2]);
10188
rgbPtr+=3;
102-
for(unsigned i=1;i<palEdit.perRow/perRow;++i){
89+
for(unsigned i=1;i<currentProject->pal->perRow/perRow;++i){
10390
double L,C,H;
10491
Rgb2Lch255(&L,&C,&H,rgbPtr[0],rgbPtr[1],rgbPtr[2]);
10592
if(type){
@@ -200,21 +187,11 @@ void set_game_system(Fl_Widget*,void* selection){
200187
break;
201188
}
202189
uint8_t*nPtr=tmpPalRGB;
203-
for(unsigned i=0;i<currentProject->colorCnt;++i,nPtr+=3)
204-
rgbToEntry(nPtr[0],nPtr[1],nPtr[2],i);
205-
if(currentProject->haveAltspritePal){
206-
memcpy(currentProject->rgbPal+(currentProject->colorCnt*3),currentProject->rgbPal,std::min(currentProject->colorCnt,currentProject->colorCntalt)*3);
207-
unsigned esize;
208-
switch(currentProject->gameSystem){
209-
case sega_genesis:
210-
fl_alert("Error the sega genesis does not support an alternative sprite palette");
211-
esize=0;
212-
break;
213-
case NES:
214-
esize=1;
215-
break;
216-
}
217-
memcpy(currentProject->palDat+(currentProject->colorCnt*esize),currentProject->palDat,std::min(currentProject->colorCnt,currentProject->colorCntalt)*esize);
190+
for(unsigned i=0;i<currentProject->pal->colorCnt;++i,nPtr+=3)
191+
currentProject->pal->rgbToEntry(nPtr[0],nPtr[1],nPtr[2],i);
192+
if(currentProject->pal->haveAlt){
193+
memcpy(currentProject->pal->rgbPal+(currentProject->pal->colorCnt*3),currentProject->pal->rgbPal,std::min(currentProject->pal->colorCnt,currentProject->pal->colorCntalt)*3);
194+
memcpy(currentProject->pal->palDat+(currentProject->pal->colorCnt*currentProject->pal->esize),currentProject->pal->palDat,std::min(currentProject->pal->colorCnt,currentProject->pal->colorCntalt)*currentProject->pal->esize);
218195
}
219196
window->redraw();
220197
uint32_t gnew=currentProject->gameSystem;

callbacks_palette.cpp

+28-29
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void save_palette(Fl_Widget*, void* start_end){
7575
uint8_t*bufptr=bufskip;
7676
for(unsigned i=start;i<end;++i){
7777
if((i&3)||(i==0)){
78-
*bufptr++=currentProject->palDat[i];
78+
*bufptr++=currentProject->pal->palDat[i];
7979
++szskip;
8080
}
8181
}
@@ -121,7 +121,7 @@ void save_palette(Fl_Widget*, void* start_end){
121121
return;
122122
}
123123
}else{
124-
if (!saveBinAsText(currentProject->palDat+start,end-start,myfile,type,comment,"palDat",bits)){
124+
if (!saveBinAsText(currentProject->pal->palDat+start,end-start,myfile,type,comment,"palDat",bits)){
125125
fl_alert("Error: can not save file %s",the_file.c_str());
126126
return;
127127
}
@@ -137,7 +137,7 @@ void save_palette(Fl_Widget*, void* start_end){
137137
return;
138138
}
139139
}else{
140-
if (fwrite(currentProject->palDat+start,1,end-start,myfile)==0){
140+
if (fwrite(currentProject->pal->palDat+start,1,end-start,myfile)==0){
141141
fl_alert("Error: can not save file %s",the_file.c_str());
142142
return;
143143
}
@@ -166,8 +166,8 @@ void update_palette(Fl_Widget* o, void* v){
166166
break;
167167
case spriteEditor:
168168
temp_entry=spritePal.getEntry();
169-
if(currentProject->haveAltspritePal)
170-
temp_entry+=currentProject->colorCnt;
169+
if(currentProject->pal->haveAlt)
170+
temp_entry+=currentProject->pal->colorCnt;
171171
break;
172172
default:
173173
show_default_error
@@ -181,27 +181,27 @@ void update_palette(Fl_Widget* o, void* v){
181181
uint8_t temp2=(uint8_t)s->value();
182182
switch ((uintptr_t)v){
183183
case 0://red
184-
temp_var=currentProject->palDat[(temp_entry*2)+1];//get the green value we need to save it for later
184+
temp_var=currentProject->pal->palDat[(temp_entry*2)+1];//get the green value we need to save it for later
185185
temp_var&=0xF0;
186186
temp_var|=temp2;
187-
currentProject->palDat[(temp_entry*2)+1]=temp_var;
187+
currentProject->pal->palDat[(temp_entry*2)+1]=temp_var;
188188
//now convert the new red value
189-
currentProject->rgbPal[temp_entry*3]=palTab[(temp2>>1)+palTypeGen];
189+
currentProject->pal->rgbPal[temp_entry*3]=palTab[(temp2>>1)+palTypeGen];
190190
break;
191191
case 1://green
192192
//this is very similar to what I just did above
193-
temp_var=currentProject->palDat[(temp_entry*2)+1];
193+
temp_var=currentProject->pal->palDat[(temp_entry*2)+1];
194194
temp_var&=15;//get only the red value
195195
//now OR the new green value to it
196196
temp_var|=temp2<<4;
197-
currentProject->palDat[(temp_entry*2)+1]=temp_var;
197+
currentProject->pal->palDat[(temp_entry*2)+1]=temp_var;
198198
//now convert the new green value
199-
currentProject->rgbPal[(temp_entry*3)+1]=palTab[(temp2>>1)+palTypeGen];
199+
currentProject->pal->rgbPal[(temp_entry*3)+1]=palTab[(temp2>>1)+palTypeGen];
200200
break;
201201
case 2:
202202
//blue is the most trivial conversion to do
203-
currentProject->palDat[temp_entry*2]=temp2;
204-
currentProject->rgbPal[(temp_entry*3)+2]=palTab[(temp2>>1)+palTypeGen];
203+
currentProject->pal->palDat[temp_entry*2]=temp2;
204+
currentProject->pal->rgbPal[(temp_entry*3)+2]=palTab[(temp2>>1)+palTypeGen];
205205
break;
206206
}
207207
}
@@ -218,21 +218,21 @@ void update_palette(Fl_Widget* o, void* v){
218218
*/
219219
case 0://Hue
220220
//first read out value
221-
pal=currentProject->palDat[temp_entry];
221+
pal=currentProject->pal->palDat[temp_entry];
222222
pal&=48;
223223
pal|=(uint8_t)s->value();
224224
break;
225225
case 1://Value
226-
pal=currentProject->palDat[temp_entry];
226+
pal=currentProject->pal->palDat[temp_entry];
227227
pal&=15;
228228
pal|=((uint8_t)s->value())<<4;
229229
break;
230230
}
231-
currentProject->palDat[temp_entry]=pal;
231+
currentProject->pal->palDat[temp_entry]=pal;
232232
rgb_out=MakeRGBcolor(pal);
233-
currentProject->rgbPal[temp_entry*3+2]=rgb_out&255;//blue
234-
currentProject->rgbPal[temp_entry*3+1]=(rgb_out>>8)&255;//green
235-
currentProject->rgbPal[temp_entry*3]=(rgb_out>>16)&255;//red
233+
currentProject->pal->rgbPal[temp_entry*3+2]=rgb_out&255;//blue
234+
currentProject->pal->rgbPal[temp_entry*3+1]=(rgb_out>>8)&255;//green
235+
currentProject->pal->rgbPal[temp_entry*3]=(rgb_out>>16)&255;//red
236236
}
237237
if (mode_editor == tile_edit)
238238
currentProject->tileC->truecolor_to_tile(tileEdit_pal.theRow,currentProject->tileC->current_tile,false);//update tile
@@ -270,7 +270,7 @@ void loadPalette(Fl_Widget*, void*){
270270
}
271271
//read the palette to the buffer
272272
rewind(fi);
273-
fread(currentProject->palDat+offset,1,file_size,fi);
273+
fread(currentProject->pal->palDat+offset,1,file_size,fi);
274274
fclose(fi);
275275
//now convert each value to rgb
276276
switch (currentProject->gameSystem){
@@ -314,15 +314,15 @@ void set_tile_row(Fl_Widget*,void* row){
314314
void setPalType(Fl_Widget*,void*type){
315315
switch (mode_editor){
316316
case pal_edit:
317-
currentProject->palType[palEdit.getEntry()]=(uintptr_t)type;
317+
currentProject->pal->palType[palEdit.getEntry()]=(uintptr_t)type;
318318
palEdit.updateSlider();
319319
break;
320320
case tile_edit:
321-
currentProject->palType[tileEdit_pal.getEntry()]=(uintptr_t)type;
321+
currentProject->pal->palType[tileEdit_pal.getEntry()]=(uintptr_t)type;
322322
tileEdit_pal.updateSlider();
323323
break;
324324
case tile_place:
325-
currentProject->palType[tileMap_pal.getEntry()]=(uintptr_t)type;
325+
currentProject->pal->palType[tileMap_pal.getEntry()]=(uintptr_t)type;
326326
tileMap_pal.updateSlider();
327327
break;
328328
default:
@@ -341,16 +341,16 @@ void rgb_pal_to_entry(Fl_Widget*,void*){
341341
}
342342
unsigned ent=tileEdit_pal.getEntry();
343343
pushPaletteEntry(ent);
344-
rgbToEntry(window->rgb_red->value(),window->rgb_green->value(),window->rgb_blue->value(),ent);
344+
currentProject->pal->rgbToEntry(window->rgb_red->value(),window->rgb_green->value(),window->rgb_blue->value(),ent);
345345
tileEdit_pal.updateSlider();
346346
currentProject->tileC->truecolor_to_tile(tileEdit_pal.theRow,currentProject->tileC->current_tile,false);
347347
window->redraw();
348348
}
349349
void entryToRgb(Fl_Widget*,void*){
350350
unsigned en=tileEdit_pal.getEntry()*3;
351-
truecolor_temp[0]=currentProject->rgbPal[en];
352-
truecolor_temp[1]=currentProject->rgbPal[en+1];
353-
truecolor_temp[2]=currentProject->rgbPal[en+2];
351+
truecolor_temp[0]=currentProject->pal->rgbPal[en];
352+
truecolor_temp[1]=currentProject->pal->rgbPal[en+1];
353+
truecolor_temp[2]=currentProject->pal->rgbPal[en+2];
354354
window->rgb_red->value(truecolor_temp[0]);
355355
window->rgb_green->value(truecolor_temp[1]);
356356
window->rgb_blue->value(truecolor_temp[2]);
@@ -359,8 +359,7 @@ void entryToRgb(Fl_Widget*,void*){
359359
void clearPalette(Fl_Widget*,void*){
360360
if(fl_ask("This will set all colors to 0 are you sure you want to do this?\nYou can undo this by pressing pressing CTRL+Z")){
361361
pushPaletteAll();
362-
memset(currentProject->palDat,0,128);
363-
memset(currentProject->rgbPal,0,192);
362+
currentProject->pal->clear();
364363
window->damage(FL_DAMAGE_USER1);
365364
palEdit.updateSlider();
366365
tileEdit_pal.updateSlider();

class_global.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,9 @@ int editor::handle(int event){
471471
temp_two=(Fl::event_y()-tile_edit_offset_y)/tiles_size;
472472
unsigned get_pal=tileEdit_pal.getEntry()*3;
473473
pushTilePixel(currentProject->tileC->current_tile,temp_one,temp_two,tTypeTruecolor);
474-
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,0,currentProject->tileC->current_tile)]=currentProject->rgbPal[get_pal];//red
475-
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,1,currentProject->tileC->current_tile)]=currentProject->rgbPal[get_pal+1];//green
476-
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,2,currentProject->tileC->current_tile)]=currentProject->rgbPal[get_pal+2];//blue
474+
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,0,currentProject->tileC->current_tile)]=currentProject->pal->rgbPal[get_pal];//red
475+
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,1,currentProject->tileC->current_tile)]=currentProject->pal->rgbPal[get_pal+1];//green
476+
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,2,currentProject->tileC->current_tile)]=currentProject->pal->rgbPal[get_pal+2];//blue
477477
currentProject->tileC->truetDat[cal_offset_truecolor(temp_one,temp_two,3,currentProject->tileC->current_tile)]=255;
478478
pushTile(currentProject->tileC->current_tile,tTypeTile);
479479
currentProject->tileC->truecolor_to_tile(tileEdit_pal.theRow,currentProject->tileC->current_tile,false);

class_palette.cpp

+18-34
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,7 @@ unsigned palette_bar::getEntry(void){
2727
return box_sel+(theRow*perRow);
2828
}
2929
void palette_bar::setSysColCnt(void){
30-
switch (currentProject->gameSystem){
31-
case sega_genesis:
32-
perRow=16;
33-
currentProject->colorCnt=64;
34-
currentProject->colorCntalt=currentProject->rowCntPalalt=0;
35-
currentProject->rowCntPal=4;
36-
currentProject->haveAltspritePal=false;
37-
break;
38-
case NES:
39-
perRow=4;
40-
currentProject->colorCnt=currentProject->colorCntalt=16;
41-
currentProject->rowCntPal=currentProject->rowCntPalalt=4;
42-
currentProject->haveAltspritePal=true;
43-
break;
44-
default:
45-
show_default_error
46-
}
30+
currentProject->pal->setVars(currentProject->gameSystem);
4731
}
4832
void palette_bar::more_init(uint8_t x,uint16_t offsetx,uint16_t offsety,bool altset,unsigned ln,bool tiny){
4933
alt=altset;
@@ -102,7 +86,7 @@ void palette_bar::updateSize(void){
10286
void palette_bar::check_box(int x,int y){
10387
/*!
10488
This function is in charge of seeing if the mouse click is on a box and what box it is
105-
for x and y pass the mouser cordinace
89+
for x and y pass the mouser coordinate
10690
*/
10791
unsigned boxSize=window->pal_size->value();
10892
x-=offx;
@@ -132,21 +116,21 @@ void palette_bar::draw_boxes(void){
132116
uint16_t loc_x,loc_y;
133117
loc_x=(double)((double)window->w()/800.0)*(double)palette_preview_box_x;
134118
loc_y=(double)((double)window->h()/600.0)*(double)palette_preview_box_y;
135-
fl_rectf(loc_x,loc_y,box_size*4,box_size*4,currentProject->rgbPal[(box_sel*3)+(theRow*a)],currentProject->rgbPal[(box_sel*3)+(theRow*a)+1],currentProject->rgbPal[(box_sel*3)+(theRow*a)+2]);//this will show larger preview of current color
119+
fl_rectf(loc_x,loc_y,box_size*4,box_size*4,currentProject->pal->rgbPal[(box_sel*3)+(theRow*a)],currentProject->pal->rgbPal[(box_sel*3)+(theRow*a)+1],currentProject->pal->rgbPal[(box_sel*3)+(theRow*a)+2]);//this will show larger preview of current color
136120
}
137121
if (theRow >= rows){
138-
uint8_t*rgbPtr=currentProject->rgbPal+(a*theRow);
122+
uint8_t*rgbPtr=currentProject->pal->rgbPal+(a*theRow);
139123
if(alt&&(currentProject->gameSystem==NES))
140-
rgbPtr+=currentProject->colorCnt*3;
124+
rgbPtr+=currentProject->pal->colorCnt*3;
141125
for (x=0;x<perRow;++x){
142126
fl_rectf(offx+(x*box_size),offy,box_size,box_size,*rgbPtr,*(rgbPtr+1),*(rgbPtr+2));
143127
rgbPtr+=3;
144128
}
145129
fl_draw_box(FL_EMBOSSED_FRAME,box_sel*box_size+offx,offy,box_size,box_size,0);
146130
}else{
147-
uint8_t*rgbPtr=currentProject->rgbPal;
131+
uint8_t*rgbPtr=currentProject->pal->rgbPal;
148132
if(alt&&(currentProject->gameSystem==NES))
149-
rgbPtr+=currentProject->colorCnt*3;
133+
rgbPtr+=currentProject->pal->colorCnt*3;
150134
for (y=0;y<rows;++y){
151135
for (x=0;x<perRow;++x){
152136
fl_rectf(offx+(x*box_size),offy+(y*box_size),box_size,box_size,*rgbPtr,*(rgbPtr+1),*(rgbPtr+2));
@@ -161,7 +145,7 @@ void palette_bar::changeRow(uint8_t r){
161145
updateSlider();
162146
}
163147
void palette_bar::updateSlider(){
164-
if (currentProject->palType[box_sel+(theRow*perRow)]){
148+
if (currentProject->pal->palType[box_sel+(theRow*perRow)]){
165149
pal_b->hide();
166150
pal_g->hide();
167151
pal_r->hide();
@@ -171,26 +155,26 @@ void palette_bar::updateSlider(){
171155
pal_r->show();
172156
switch (currentProject->gameSystem){
173157
case sega_genesis:
174-
pal_b->value(currentProject->palDat[(box_sel*2)+(theRow*32)]);
175-
pal_g->value(currentProject->palDat[1+(box_sel*2)+(theRow*32)]>>4);
176-
pal_r->value(currentProject->palDat[1+(box_sel*2)+(theRow*32)]&15);
158+
pal_b->value(currentProject->pal->palDat[(box_sel*2)+(theRow*32)]);
159+
pal_g->value(currentProject->pal->palDat[1+(box_sel*2)+(theRow*32)]>>4);
160+
pal_r->value(currentProject->pal->palDat[1+(box_sel*2)+(theRow*32)]&15);
177161
break;
178162
case NES:
179163
if(alt){
180-
pal_r->value(currentProject->palDat[box_sel+(theRow*4)+16]&15);
181-
pal_g->value((currentProject->palDat[box_sel+(theRow*4)+16]>>4)&3);
164+
pal_r->value(currentProject->pal->palDat[box_sel+(theRow*4)+16]&15);
165+
pal_g->value((currentProject->pal->palDat[box_sel+(theRow*4)+16]>>4)&3);
182166
}else{
183-
pal_r->value(currentProject->palDat[box_sel+(theRow*4)]&15);
184-
pal_g->value((currentProject->palDat[box_sel+(theRow*4)]>>4)&3);
167+
pal_r->value(currentProject->pal->palDat[box_sel+(theRow*4)]&15);
168+
pal_g->value((currentProject->pal->palDat[box_sel+(theRow*4)]>>4)&3);
185169
}
186170
break;
187171
default:
188172
show_default_error
189173
}
190174
}
191-
window->palType[currentProject->palType[box_sel+(theRow*perRow)]]->setonly();
192-
window->palType[currentProject->palType[box_sel+(theRow*perRow)]+3]->setonly();
193-
window->palType[currentProject->palType[box_sel+(theRow*perRow)]+6]->setonly();
175+
window->palType[currentProject->pal->palType[box_sel+(theRow*perRow)]]->setonly();
176+
window->palType[currentProject->pal->palType[box_sel+(theRow*perRow)]+3]->setonly();
177+
window->palType[currentProject->pal->palType[box_sel+(theRow*perRow)]+6]->setonly();
194178
}
195179
void palette_bar::changeSystem(){
196180
if(sysCache!=currentProject->gameSystem){

class_tiles.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -357,19 +357,19 @@ void tiles::draw_tile(int x_off,int y_off,uint32_t tile_draw,int zoom,uint8_t pa
357357
temp_1=temp>>4;//first pixel
358358
temp_2=temp&15;//second pixel
359359
//now based on the temp_1 and temp_2 get the two colors
360-
red_temp=currentProject->rgbPal[(pal_row*48)+(temp_1*3)];
361-
green_temp=currentProject->rgbPal[(pal_row*48)+(temp_1*3)+1];
362-
blue_temp=currentProject->rgbPal[(pal_row*48)+(temp_1*3)+2];
360+
red_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_1*3)];
361+
green_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_1*3)+1];
362+
blue_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_1*3)+2];
363363
for (c=0;c<zoom;c++){//ha ha c++ bad programming pun
364364
for (d=0;d<zoom;d++){
365365
temp_img_ptr[cal_offset_zoom_rgb(((x*zoom)*2)+d,(y*zoom)+c,zoom,0)]=red_temp;
366366
temp_img_ptr[cal_offset_zoom_rgb(((x*zoom)*2)+d,(y*zoom)+c,zoom,1)]=green_temp;
367367
temp_img_ptr[cal_offset_zoom_rgb(((x*zoom)*2)+d,(y*zoom)+c,zoom,2)]=blue_temp;
368368
}
369369
}
370-
red_temp=currentProject->rgbPal[(pal_row*48)+(temp_2*3)];
371-
green_temp=currentProject->rgbPal[(pal_row*48)+(temp_2*3)+1];
372-
blue_temp=currentProject->rgbPal[(pal_row*48)+(temp_2*3)+2];
370+
red_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_2*3)];
371+
green_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_2*3)+1];
372+
blue_temp=currentProject->pal->rgbPal[(pal_row*48)+(temp_2*3)+2];
373373
for (c=0;c<zoom;++c){
374374
for (d=0;d<zoom;++d){
375375
temp_img_ptr[cal_offset_zoom_rgb(((x*zoom)*2)+d+zoom,(y*zoom)+c,zoom,0)]=red_temp;
@@ -386,7 +386,7 @@ void tiles::draw_tile(int x_off,int y_off,uint32_t tile_draw,int zoom,uint8_t pa
386386
uint8_t temp;
387387
temp=(tileTemp[y]>>(7-x))&1;
388388
temp|=((tileTemp[y+8]>>(7-x))&1)<<1;
389-
uint8_t*rgbPtr=currentProject->rgbPal;
389+
uint8_t*rgbPtr=currentProject->pal->rgbPal;
390390
if(isSprite)
391391
rgbPtr+=48;
392392
red_temp=rgbPtr[(pal_row*12)+(temp*3)];

0 commit comments

Comments
 (0)