- El minimapa es pinta millor

- Més gràfics de caixes i pareds
- Més habitacions
This commit is contained in:
2024-09-17 13:54:32 +02:00
parent 4ace433340
commit 87d7b4ce46
14 changed files with 442 additions and 90 deletions

View File

@@ -30,10 +30,10 @@ namespace modules
if ( (x>=-32) && (x<520) && (y>=-16) && (y<240) )
{
draw::color(RED);
if (minirooms[room].exits[XN] != 255) { draw::isoline(x,y,-1,-1,14); draw::isoline(x,y-1,-1,-1,14); draw::isoline(x,y+1,-1,-1,14); }
if (minirooms[room].exits[YN] != 255) { draw::isoline(x,y,+1,-1,14); draw::isoline(x,y-1,+1,-1,14); draw::isoline(x,y+1,+1,-1,14); }
if (minirooms[room].exits[XP] != 255) { draw::isoline(x,y,+1,+1,14); draw::isoline(x,y-1,+1,+1,14); draw::isoline(x,y+1,+1,+1,14); }
if (minirooms[room].exits[YP] != 255) { draw::isoline(x,y,-1,+1,14); draw::isoline(x,y-1,-1,+1,14); draw::isoline(x,y+1,-1,+1,14); }
if (minirooms[room].exits[XN] != 255) { draw::isoline(x,y,-1,-1,14); /*draw::isoline(x,y-1,-1,-1,14);*/ draw::isoline(x,y+1,-1,-1,14); }
if (minirooms[room].exits[YN] != 255) { draw::isoline(x,y,+1,-1,14); /*draw::isoline(x,y-1,+1,-1,14);*/ draw::isoline(x,y+1,+1,-1,14); }
if (minirooms[room].exits[XP] != 255) { draw::isoline(x,y,+1,+1,14); /*draw::isoline(x,y-1,+1,+1,14);*/ draw::isoline(x,y+1,+1,+1,14); }
if (minirooms[room].exits[YP] != 255) { draw::isoline(x,y,-1,+1,14); /*draw::isoline(x,y-1,-1,+1,14);*/ draw::isoline(x,y+1,-1,+1,14); }
}
if (minirooms[room].exits[XN] != 255) drawLines(minirooms[room].exits[XN], x-24, y-12);
if (minirooms[room].exits[XP] != 255) drawLines(minirooms[room].exits[XP], x+24, y+12);
@@ -41,29 +41,26 @@ namespace modules
if (minirooms[room].exits[YP] != 255) drawLines(minirooms[room].exits[YP], x-24, y+12);
}
void drawRoom(const int room, const int x, const int y)
void drawRoom(const int room, const int x, const int y, const bool shadow=false)
{
if (drawn[room]) return;
drawn[room] = true;
if ( (x>=-32) && (x<520) && (y>=-16) && (y<240) )
{
draw::stencil::set(room);
draw::swapcol(1, minirooms[room].color);
draw::swapcol(1, !shadow ? minirooms[room].color : 2);
draw::draw(x-16, y-8, 32, 16, minirooms[room].w*32, minirooms[room].h*16);
//draw::swapcol(1, RED);
//if (minirooms[room].exits[XN] != 255) draw::draw(x-4-(minirooms[room].w*2), y-5-(minirooms[room].w),4,5,0,64);
//if (minirooms[room].exits[YN] != 255) draw::draw(x+(minirooms[room].h*2), y-5-(minirooms[room].h),4,5,3,64);
//if (minirooms[room].exits[XP] != 255) draw::draw(x+(minirooms[room].w*2), y-3+(minirooms[room].w),4,5,0,64);
//if (minirooms[room].exits[YP] != 255) draw::draw(x-4-(minirooms[room].h*2), y-3+(minirooms[room].h),4,5,3,64);
char num[] = "00"; num[0] = 48+(room/10); num[1] = 48+(room%10);
draw::print(num, x-4, y-3, LIGHT+(room==current_room?YELLOW:WHITE), BLACK);
if (!shadow)
{
char num[] = "00"; num[0] = 48+(room/10); num[1] = 48+(room%10);
draw::print(num, x-4, y-3, LIGHT+(room==current_room?YELLOW:WHITE), BLACK);
}
}
if (minirooms[room].exits[XN] != 255) drawRoom(minirooms[room].exits[XN], x-24, y-12);
if (minirooms[room].exits[XP] != 255) drawRoom(minirooms[room].exits[XP], x+24, y+12);
if (minirooms[room].exits[YN] != 255) drawRoom(minirooms[room].exits[YN], x+24, y-12);
if (minirooms[room].exits[YP] != 255) drawRoom(minirooms[room].exits[YP], x-24, y+12);
if (minirooms[room].exits[XN] != 255) drawRoom(minirooms[room].exits[XN], x-24, y-12, shadow);
if (minirooms[room].exits[XP] != 255) drawRoom(minirooms[room].exits[XP], x+24, y+12, shadow);
if (minirooms[room].exits[YN] != 255) drawRoom(minirooms[room].exits[YN], x+24, y-12, shadow);
if (minirooms[room].exits[YP] != 255) drawRoom(minirooms[room].exits[YP], x-24, y+12, shadow);
}
void loadMiniRoom()
@@ -103,12 +100,11 @@ namespace modules
drawLines(room::getCurrent(), scroll.x, scroll.y);
draw::swapcol(1, RED);
for (int y=-1; y<=1; ++y)
for (int x=-1; x<=1; ++x)
{
for (int i=0;i<64;++i) drawn[i]=false;
drawRoom(room::getCurrent(), scroll.x+x, scroll.y+y);
drawRoom(room::getCurrent(), scroll.x+x, scroll.y+y, true);
}
}