Moortiii icon

Untitled

Moortiii | PRO | 12/01/18 01:40:30 PM UTC | 0 ⭐ | 639 👁️ | Never ⏰ | []
C++ |

3.35 KB

|

None

|

0 👍

/

0 👎

void MinimapGUI::display() {
    int cellWidth = 10;
    int cellHeight = 10;
    
    for(int i = 0; i < roomGrid.size(); i++) {
        for(int j = 0; j < roomGrid[i].size(); j++) {
            if(roomGrid[i][j] != nullptr) {
                auto room = roomGrid[i][j];
                auto playerRoom = dungeon->getCurrentRoom();
 
                if(room->doorBottom && playerRoom == room && !roomGrid[i + 1][j]->explored) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 255, 0, 255);
                    SDL_Rect rect = {j * cellWidth, (i + 1) * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                    roomGrid[i + 1][j]->spotted = true;
                }
 
                if(room->doorTop && playerRoom == room && !roomGrid[i - 1][j]->explored) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 255, 0, 255);
                    SDL_Rect rect = {j * cellWidth, (i - 1) * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                    roomGrid[i - 1][j]->spotted = true;
                }
 
                if(room->doorLeft && playerRoom == room && !roomGrid[i][j - 1]->explored) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 255, 0, 255);
                    SDL_Rect rect = {(j - 1) * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                    roomGrid[i][j - 1]->spotted = true;
                }
 
                if(room->doorRight && playerRoom == room && !roomGrid[i][j + 1]->explored) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 255, 0, 255);
                    SDL_Rect rect = {(j + 1) * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                    roomGrid[i][j + 1]->spotted = true;
                }
 
                if(room->spotted) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 255, 0, 255);
                    SDL_Rect rect = {j * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                }
 
                // EXPLORED ROOMS ARE GREEN
                if(room->explored) {
                    SDL_SetRenderDrawColor(getRenderer(), 0, 255, 0, 255);
                    SDL_Rect rect = { j * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                }
 
                // STARTING ROOM IS BLUE
                if(roomGrid[i][j]->gridY == 0 && roomGrid[i][j]->gridX == 0) {
                    SDL_SetRenderDrawColor(getRenderer(), 0, 0, 255, 255);
                    SDL_Rect rect = { j * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                }
 
                // CURRENT ROOM IS RED
                if(room == playerRoom) {
                    SDL_SetRenderDrawColor(getRenderer(), 255, 0, 0, 255);
                    SDL_Rect rect = { j * cellWidth, i * cellHeight, cellWidth - 5, cellHeight - 5};
                    SDL_RenderFillRect(getRenderer(), &rect);
                }
            }
        }
    }
}

Comments