mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 10:09:43 +01:00
135 lines
3.2 KiB
C++
135 lines
3.2 KiB
C++
string currentarea;
|
|
PALLETE dummypal;
|
|
BITMAP *buffer, *biggerbuffer, *page[3];
|
|
BITMAP *worldmap;
|
|
int state, gt;
|
|
int currentpage;
|
|
BITMAP *tiles[4000];
|
|
BITMAP *tiles2[4000];
|
|
int tileset;
|
|
|
|
bool test;
|
|
string teststring;
|
|
|
|
int areamap[20][20];
|
|
|
|
int mapcontents[40][30];
|
|
int mapcopycontents[40][30];
|
|
int maptileset;
|
|
|
|
int xp, yp, ctile;
|
|
int reversekey;
|
|
int mapx, mapy;
|
|
int savednote;
|
|
int temp, temp2, temp3, p;
|
|
|
|
int tileselectdelay;
|
|
int paraadjustdelay;
|
|
string tempstring;
|
|
|
|
bool fullscreen;
|
|
|
|
//Some helpful functions!
|
|
string its(int t, int s=0){
|
|
string te;
|
|
ostringstream *its_temp;
|
|
its_temp = new ostringstream;
|
|
(*its_temp) << t;
|
|
te = (*its_temp).str();
|
|
delete its_temp;
|
|
if(s==0){ return te;
|
|
}else{
|
|
int d;
|
|
d=s-te.length();
|
|
if(d<0){
|
|
return te;
|
|
}else{
|
|
while(d>0){
|
|
te = "0" + te;
|
|
d--;
|
|
}
|
|
return te;
|
|
}
|
|
}
|
|
}
|
|
|
|
int sti(string s){
|
|
istringstream stringbuf(s);
|
|
int t;
|
|
stringbuf >> t;
|
|
return t;
|
|
}
|
|
|
|
void drawtile(int xp, int yp, int t){
|
|
if(tileset==0){
|
|
blit(tiles[t], buffer, 0, 0, xp, yp, 16, 16);
|
|
}else{
|
|
blit(tiles2[t], buffer, 0, 0, xp, yp, 16, 16);
|
|
}
|
|
}
|
|
|
|
void print(BITMAP* bmp, int x, int y, string t, int r, int g, int b, bool c=false){
|
|
const char* txt=t.c_str();
|
|
if(c){x=160-(t.length()*4);}
|
|
textout_ex(bmp, font, txt, x-1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x+1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y-1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y+1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y, makecol(r,g,b), -1);
|
|
}
|
|
|
|
void rprint(BITMAP* bmp, int x, int y, string t, int r, int g, int b, bool c=false){
|
|
const char* txt=t.c_str();
|
|
if(c){x=160-(t.length()*4);}
|
|
x=640-x-t.length()*8;
|
|
textout_ex(bmp, font, txt, x-1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x+1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y-1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y+1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y, makecol(r,g,b), -1);
|
|
}
|
|
|
|
void r2print(BITMAP* bmp, int x, int y, string t, int r, int g, int b, bool c=false){
|
|
const char* txt=t.c_str();
|
|
if(c){x=160-(t.length()*4);}
|
|
x=320-x-t.length()*8;
|
|
textout_ex(bmp, font, txt, x-1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x+1, y, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y-1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y+1, makecol(0,0,0), -1);
|
|
textout_ex(bmp, font, txt, x, y, makecol(r,g,b), -1);
|
|
}
|
|
|
|
void change_fullscreen(){
|
|
destroy_bitmap(page[0]);
|
|
destroy_bitmap(page[1]);
|
|
destroy_bitmap(page[2]);
|
|
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0);
|
|
clear_bitmap(screen);
|
|
|
|
|
|
page[0]=create_video_bitmap(640, 480);
|
|
page[1]=create_video_bitmap(640, 480);
|
|
page[2]=create_video_bitmap(640, 480);
|
|
}
|
|
|
|
void change_windowed(){
|
|
destroy_bitmap(page[0]);
|
|
destroy_bitmap(page[1]);
|
|
destroy_bitmap(page[2]);
|
|
|
|
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
|
|
clear_bitmap(screen);
|
|
|
|
|
|
page[0]=create_video_bitmap(640, 480);
|
|
page[1]=create_video_bitmap(640, 480);
|
|
page[2]=create_video_bitmap(640, 480);
|
|
}
|
|
|
|
void savescreen(BITMAP* bmp){
|
|
if (bitmap_color_depth(bmp) == 8)
|
|
set_palette(dummypal);
|
|
tempstring="minimap.png";
|
|
save_bitmap(tempstring.c_str(), bmp, dummypal);
|
|
}
|