Polished map editor. Fixed crop function.
This commit is contained in:
parent
697c9c6198
commit
6268c5f032
|
@ -0,0 +1,2 @@
|
|||
10 x 28
|
||||
FFFFFFFFFFFF FwwwwwwwwwwF FwwwwwwwwwwF RRRRRRRR |____D_| t t PPPPPPPP . PPPPPPPPPPPPPP . . . .
|
|
@ -0,0 +1,2 @@
|
|||
14 x 28
|
||||
FFFFFFFFFFFF FwwwwwwwwwwF FwwwwwwwwwwF RRRRRRRR |____D_| t t PPPPPPPP . PPPPPPPPPPPPPP . . . . vvvvvvvvvv vvvvvvvvvvvv
|
|
@ -0,0 +1,2 @@
|
|||
14 x 28
|
||||
FFFFFFFFFFFF FwwwwwwwwwwF o FwwwwwwwwwwF RRRRRRRR |____D_| t t PPPPPPPP . PPPPPPPPPPPPPP . . . . vvvvvvvvvv vvvvvvvvvvvv
|
|
@ -1,2 +0,0 @@
|
|||
55 x 55
|
||||
FFFFFFFFFFFF FwwwwwwwwwwF FwwwwwwwwwwF RRRRRRRR |____D_| t t PPPPPPPP . PPPPPPPPPPPPPP . . . . <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
Binary file not shown.
190
Source/editMap.c
190
Source/editMap.c
|
@ -36,110 +36,133 @@ char tile_W[8] = {'~','.',' ',' ',' ','.','~','^'};
|
|||
|
||||
int newMap()
|
||||
{
|
||||
char buffer1[256];
|
||||
char buffer1[256] = "";
|
||||
char buffer2[256];
|
||||
echo();
|
||||
mvprintw(1,0,"Map height: ");
|
||||
getnstr(buffer1, 256);
|
||||
mvprintw(2,0,"Map width: ");
|
||||
getnstr(buffer2, 256);
|
||||
mapYmax = atoi(buffer1);
|
||||
mapXmax = atoi(buffer2);
|
||||
|
||||
map = malloc(mapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < mapYmax; i++) map[i] = malloc(mapXmax*sizeof(uint8_t));
|
||||
if(map == NULL) exit(1);
|
||||
|
||||
//Blank our map
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
if(strcmp(buffer1, "") != 0)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) map[H][W] = ' ';
|
||||
mvprintw(2,0,"Map width: ");
|
||||
getnstr(buffer2, 256);
|
||||
mapYmax = atoi(buffer1);
|
||||
mapXmax = atoi(buffer2);
|
||||
|
||||
map = malloc(mapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < mapYmax; i++) map[i] = malloc(mapXmax*sizeof(uint8_t));
|
||||
if(map == NULL) exit(1);
|
||||
|
||||
//Blank our map
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) map[H][W] = ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int saveMap()
|
||||
{
|
||||
char buffer[256];
|
||||
char buffer[256] = "";
|
||||
echo();
|
||||
mvprintw(1,0,"Save name: ");
|
||||
getnstr(buffer, 256);
|
||||
FILE* fp = fopen(buffer,"w");
|
||||
|
||||
fprintf(fp, "%li x %li\n", mapYmax, mapXmax);
|
||||
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
if(strcmp(buffer, "") != 0)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) fputc(map[H][W], fp);
|
||||
FILE* fp = fopen(buffer,"w");
|
||||
if(fp == NULL) return 1;
|
||||
|
||||
fprintf(fp, "%li x %li\n", mapYmax, mapXmax);
|
||||
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) fputc(map[H][W], fp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
int loadMap()
|
||||
{
|
||||
char buffer[256];
|
||||
char buffer[256] = "";
|
||||
echo();
|
||||
mvprintw(1,0,"Load name: ");
|
||||
getnstr(buffer, 256);
|
||||
FILE* fp = fopen(buffer,"r");
|
||||
|
||||
fscanf(fp, "%li x %li\n", &mapYmax, &mapXmax);
|
||||
|
||||
map = malloc(mapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < mapYmax; i++) map[i] = malloc(mapXmax*sizeof(uint8_t));
|
||||
if(map == NULL) exit(1);
|
||||
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
if(strcmp(buffer, "") != 0)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) map[H][W] = fgetc(fp);
|
||||
FILE* fp = fopen(buffer,"r");
|
||||
if(fp == NULL) return 1;
|
||||
|
||||
fscanf(fp, "%li x %li\n", &mapYmax, &mapXmax);
|
||||
|
||||
map = malloc(mapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < mapYmax; i++) map[i] = malloc(mapXmax*sizeof(uint8_t));
|
||||
if(map == NULL) exit(1);
|
||||
|
||||
for(int H = 0;H < mapYmax;H++)
|
||||
{
|
||||
for(int W = 0;W < mapXmax;W++) map[H][W] = fgetc(fp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int cropMap()
|
||||
{
|
||||
char buffer1[256];
|
||||
char buffer1[256] = "";
|
||||
char buffer2[256];
|
||||
char buffer3[256];
|
||||
char buffer4[256];
|
||||
|
||||
int FX;
|
||||
int FY;
|
||||
int TX;
|
||||
int TY;
|
||||
int FX = 0;
|
||||
int FY = 0;
|
||||
int TX = 0;
|
||||
int TY = 0;
|
||||
|
||||
echo();
|
||||
mvprintw(1,0,"From X: ");
|
||||
getnstr(buffer1, 256);
|
||||
mvprintw(2,0,"From Y: ");
|
||||
getnstr(buffer2, 256);
|
||||
mvprintw(3,0,"To X: ");
|
||||
getnstr(buffer3, 256);
|
||||
mvprintw(4,0,"To X: ");
|
||||
getnstr(buffer4, 256);
|
||||
|
||||
FX = atoi(buffer1);
|
||||
FY = atoi(buffer2);
|
||||
TX = atoi(buffer3);
|
||||
TY = atoi(buffer4);
|
||||
|
||||
TmapXmax = TX-FX;
|
||||
TmapYmax = TY-FY;
|
||||
|
||||
Tmap = malloc(TmapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < TmapYmax; i++) Tmap[i] = malloc(TmapXmax*sizeof(uint8_t));
|
||||
if(Tmap == NULL) exit(1);
|
||||
|
||||
for(int W = FX;W < TX;W++)
|
||||
for(int H = FY;H < FY;H++)
|
||||
if(strcmp(buffer1, "") != 0)
|
||||
{
|
||||
mvprintw(2,0,"From Y: ");
|
||||
getnstr(buffer2, 256);
|
||||
mvprintw(3,0,"To X: ");
|
||||
getnstr(buffer3, 256);
|
||||
mvprintw(4,0,"To Y: ");
|
||||
getnstr(buffer4, 256);
|
||||
|
||||
FX = atoi(buffer1);
|
||||
FY = atoi(buffer2);
|
||||
TX = atoi(buffer3);
|
||||
TY = atoi(buffer4);
|
||||
|
||||
TmapXmax = TX-FX;
|
||||
TmapYmax = TY-FY;
|
||||
|
||||
Tmap = malloc(TmapYmax*sizeof(uint8_t*));
|
||||
for(int i=0; i < TmapYmax; i++) Tmap[i] = malloc(TmapXmax*sizeof(uint8_t));
|
||||
if(Tmap == NULL) exit(1);
|
||||
|
||||
for(int W = FX;W < TX;W++)
|
||||
{
|
||||
if((H >= 0) && (H <= mapYmax) && (W >= 0) && (W <= mapXmax))
|
||||
Tmap[H-FY][W-FX] = map[H][W];
|
||||
else
|
||||
Tmap[H-FY][W-FX] = ' ';
|
||||
for(int H = FY;H < TY;H++)
|
||||
{
|
||||
if((H >= 0) && (H < mapYmax) && (W >= 0) && (W < mapXmax))
|
||||
{
|
||||
Tmap[H-FY][W-FX] = map[H][W];
|
||||
}
|
||||
else
|
||||
{
|
||||
Tmap[H-FY][W-FX] = ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
memcpy(map, Tmap, sizeof(Tmap));
|
||||
mapXmax = TmapXmax;
|
||||
mapYmax = TmapYmax;
|
||||
|
||||
map = Tmap;
|
||||
mapXmax = TmapXmax;
|
||||
mapYmax = TmapYmax;
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
|
@ -207,6 +230,30 @@ int main()
|
|||
attron(COLOR_PAIR(6));
|
||||
mvprintw(H,W,"%c", ' ');
|
||||
break;
|
||||
case '^': //Path
|
||||
attron(COLOR_PAIR(4));
|
||||
mvprintw(H,W,"%c", '^');
|
||||
break;
|
||||
case 'v': //Path
|
||||
attron(COLOR_PAIR(4));
|
||||
mvprintw(H,W,"%c", 'v');
|
||||
break;
|
||||
case '<': //Path
|
||||
attron(COLOR_PAIR(4));
|
||||
mvprintw(H,W,"%c", '<');
|
||||
break;
|
||||
case '>': //Path
|
||||
attron(COLOR_PAIR(4));
|
||||
mvprintw(H,W,"%c", '>');
|
||||
break;
|
||||
case 'W': //Path
|
||||
attron(COLOR_PAIR(3));
|
||||
mvprintw(H,W,"%c", 'W');
|
||||
break;
|
||||
case 'o': //Path
|
||||
attron(COLOR_PAIR(9));
|
||||
mvprintw(H,W,"%c", 'o');
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -233,7 +280,16 @@ int main()
|
|||
else if(k == KEY_RIGHT) x++;
|
||||
|
||||
//Tool controls
|
||||
else if(k == ' ') map[ymax/2 +y][xmax/2 +x] = tip;
|
||||
else if((k == ' '))
|
||||
{
|
||||
if((ymax/2+y >= 0) && (ymax/2+y < mapYmax))
|
||||
{
|
||||
if((xmax/2+x >= 0) && (xmax/2+x < mapXmax))
|
||||
{
|
||||
map[ymax/2 +y][xmax/2 +x] = tip;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(k == KEY_F(5)) saveMap();
|
||||
else if(k == KEY_F(6)) loadMap();
|
||||
else if(k == KEY_F(7)) cropMap();
|
||||
|
@ -249,6 +305,12 @@ int main()
|
|||
else if(k == 'D') tip = 'D';
|
||||
else if(k == 'P') tip = 'P';
|
||||
else if(k == 'R') tip = 'R';
|
||||
else if(k == 'v') tip = 'v';
|
||||
else if(k == '^') tip = '^';
|
||||
else if(k == '<') tip = '<';
|
||||
else if(k == '>') tip = '>';
|
||||
else if(k == 'W') tip = 'W';
|
||||
else if(k == 'o') tip = 'o';
|
||||
}
|
||||
|
||||
endwin();
|
||||
|
|
|
@ -8,13 +8,14 @@ int initEngine()
|
|||
halfdelay(2);
|
||||
|
||||
init_pair(1, COLOR_WHITE, COLOR_BLACK);
|
||||
init_pair(2, COLOR_WHITE, COLOR_BLUE);
|
||||
init_pair(2, COLOR_WHITE, COLOR_BLUE);
|
||||
init_pair(3, COLOR_BLACK, COLOR_GREEN);
|
||||
init_pair(4, COLOR_RED, COLOR_GREEN);
|
||||
init_pair(5, COLOR_GREEN, COLOR_GREEN);
|
||||
init_pair(6, COLOR_WHITE, COLOR_WHITE);
|
||||
init_pair(7, COLOR_RED, COLOR_WHITE);
|
||||
init_pair(8, COLOR_BLACK, COLOR_WHITE);
|
||||
init_pair(9, COLOR_YELLOW,COLOR_GREEN);
|
||||
}
|
||||
|
||||
int joycon()
|
||||
|
|
Loading…
Reference in New Issue