diff options
| -rw-r--r-- | src/game.cpp | 30 | ||||
| -rw-r--r-- | src/renderer.cpp | 6 |
2 files changed, 29 insertions, 7 deletions
| diff --git a/src/game.cpp b/src/game.cpp index 9d557e3..08c96ee 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
| @@ -283,6 +283,7 @@ void Game::recalculateRender() { | |||
| 283 | { | 283 | { |
| 284 | if (map.at(x,y).dirtyRender) { | 284 | if (map.at(x,y).dirtyRender) { |
| 285 | map.at(x,y).dirtyRender = false; | 285 | map.at(x,y).dirtyRender = false; |
| 286 | map.at(x,y).renderId = -1; | ||
| 286 | 287 | ||
| 287 | if (map.tile(x,y) == Tile::Floor) { | 288 | if (map.tile(x,y) == Tile::Floor) { |
| 288 | int renderDesc = 0; | 289 | int renderDesc = 0; |
| @@ -313,12 +314,11 @@ void Game::recalculateRender() { | |||
| 313 | map.at(x,y).sign = false; | 314 | map.at(x,y).sign = false; |
| 314 | } | 315 | } |
| 315 | } else { | 316 | } else { |
| 316 | map.at(x,y).renderId = -1; | ||
| 317 | map.at(x,y).sign = false; | 317 | map.at(x,y).sign = false; |
| 318 | } | 318 | } |
| 319 | } else if (map.tile(x,y) == Tile::Wall) { | 319 | } else if (map.tile(x,y) == Tile::Wall) { |
| 320 | static bool initWalls = false; | 320 | static bool initWalls = false; |
| 321 | static std::vector<int> wallRenders(256, TilesetIndex(0, 0)); | 321 | static std::vector<int> wallRenders(256, TilesetIndex(21, 12)); |
| 322 | if (!initWalls) { | 322 | if (!initWalls) { |
| 323 | initWalls = true; | 323 | initWalls = true; |
| 324 | 324 | ||
| @@ -327,41 +327,51 @@ void Game::recalculateRender() { | |||
| 327 | wallRenders[0b00111100] = TilesetIndex(16, 14); | 327 | wallRenders[0b00111100] = TilesetIndex(16, 14); |
| 328 | wallRenders[0b00011110] = TilesetIndex(16, 14); | 328 | wallRenders[0b00011110] = TilesetIndex(16, 14); |
| 329 | wallRenders[0b00111110] = TilesetIndex(16, 14); | 329 | wallRenders[0b00111110] = TilesetIndex(16, 14); |
| 330 | wallRenders[0b00111101] = TilesetIndex(16, 14); | ||
| 331 | wallRenders[0b10011101] = TilesetIndex(16, 14); | ||
| 330 | 332 | ||
| 331 | wallRenders[0b00011111] = TilesetIndex(17, 14); | 333 | wallRenders[0b00011111] = TilesetIndex(17, 14); |
| 332 | wallRenders[0b10011111] = TilesetIndex(17, 14); | 334 | wallRenders[0b10011111] = TilesetIndex(17, 14); |
| 333 | wallRenders[0b00111111] = TilesetIndex(17, 14); | 335 | wallRenders[0b00111111] = TilesetIndex(17, 14); |
| 334 | wallRenders[0b10111111] = TilesetIndex(17, 14); | 336 | wallRenders[0b10111111] = TilesetIndex(17, 14); |
| 337 | wallRenders[0b01011111] = TilesetIndex(17, 14); | ||
| 335 | 338 | ||
| 336 | wallRenders[0b00000111] = TilesetIndex(18, 14); | 339 | wallRenders[0b00000111] = TilesetIndex(18, 14); |
| 337 | wallRenders[0b00001111] = TilesetIndex(18, 14); | 340 | wallRenders[0b00001111] = TilesetIndex(18, 14); |
| 338 | wallRenders[0b10000111] = TilesetIndex(18, 14); | 341 | wallRenders[0b10000111] = TilesetIndex(18, 14); |
| 339 | wallRenders[0b10001111] = TilesetIndex(18, 14); | 342 | wallRenders[0b10001111] = TilesetIndex(18, 14); |
| 343 | wallRenders[0b10101111] = TilesetIndex(18, 14); | ||
| 340 | 344 | ||
| 341 | wallRenders[0b01111100] = TilesetIndex(16, 15); | 345 | wallRenders[0b01111100] = TilesetIndex(16, 15); |
| 342 | wallRenders[0b11111100] = TilesetIndex(16, 15); | 346 | wallRenders[0b11111100] = TilesetIndex(16, 15); |
| 343 | wallRenders[0b01111110] = TilesetIndex(16, 15); | 347 | wallRenders[0b01111110] = TilesetIndex(16, 15); |
| 344 | wallRenders[0b11111110] = TilesetIndex(16, 15); | 348 | wallRenders[0b11111110] = TilesetIndex(16, 15); |
| 349 | wallRenders[0b01111101] = TilesetIndex(16, 15); | ||
| 345 | 350 | ||
| 346 | wallRenders[0b11000111] = TilesetIndex(18, 15); | 351 | wallRenders[0b11000111] = TilesetIndex(18, 15); |
| 347 | wallRenders[0b11001111] = TilesetIndex(18, 15); | 352 | wallRenders[0b11001111] = TilesetIndex(18, 15); |
| 348 | wallRenders[0b11100111] = TilesetIndex(18, 15); | 353 | wallRenders[0b11100111] = TilesetIndex(18, 15); |
| 349 | wallRenders[0b11101111] = TilesetIndex(18, 15); | 354 | wallRenders[0b11101111] = TilesetIndex(18, 15); |
| 355 | wallRenders[0b11010111] = TilesetIndex(18, 15); | ||
| 350 | 356 | ||
| 351 | wallRenders[0b01110000] = TilesetIndex(16, 16); | 357 | wallRenders[0b01110000] = TilesetIndex(16, 16); |
| 352 | wallRenders[0b01111000] = TilesetIndex(16, 16); | 358 | wallRenders[0b01111000] = TilesetIndex(16, 16); |
| 353 | wallRenders[0b11110000] = TilesetIndex(16, 16); | 359 | wallRenders[0b11110000] = TilesetIndex(16, 16); |
| 354 | wallRenders[0b11111000] = TilesetIndex(16, 16); | 360 | wallRenders[0b11111000] = TilesetIndex(16, 16); |
| 361 | wallRenders[0b11111010] = TilesetIndex(16, 16); | ||
| 355 | 362 | ||
| 356 | wallRenders[0b11110001] = TilesetIndex(17, 16); | 363 | wallRenders[0b11110001] = TilesetIndex(17, 16); |
| 357 | wallRenders[0b11110011] = TilesetIndex(17, 16); | 364 | wallRenders[0b11110011] = TilesetIndex(17, 16); |
| 358 | wallRenders[0b11111001] = TilesetIndex(17, 16); | 365 | wallRenders[0b11111001] = TilesetIndex(17, 16); |
| 359 | wallRenders[0b11111011] = TilesetIndex(17, 16); | 366 | wallRenders[0b11111011] = TilesetIndex(17, 16); |
| 367 | wallRenders[0b11110101] = TilesetIndex(17, 16); | ||
| 360 | 368 | ||
| 361 | wallRenders[0b11000001] = TilesetIndex(18, 16); | 369 | wallRenders[0b11000001] = TilesetIndex(18, 16); |
| 362 | wallRenders[0b11000011] = TilesetIndex(18, 16); | 370 | wallRenders[0b11000011] = TilesetIndex(18, 16); |
| 363 | wallRenders[0b11100001] = TilesetIndex(18, 16); | 371 | wallRenders[0b11100001] = TilesetIndex(18, 16); |
| 364 | wallRenders[0b11100011] = TilesetIndex(18, 16); | 372 | wallRenders[0b11100011] = TilesetIndex(18, 16); |
| 373 | wallRenders[0b11001001] = TilesetIndex(18, 16); | ||
| 374 | wallRenders[0b11011001] = TilesetIndex(18, 16); | ||
| 365 | 375 | ||
| 366 | 376 | ||
| 367 | wallRenders[0b11110111] = TilesetIndex(21, 14); | 377 | wallRenders[0b11110111] = TilesetIndex(21, 14); |
| @@ -382,8 +392,20 @@ void Game::recalculateRender() { | |||
| 382 | 392 | ||
| 383 | map.at(x,y).renderId = wallRenders.at(renderDesc); | 393 | map.at(x,y).renderId = wallRenders.at(renderDesc); |
| 384 | 394 | ||
| 385 | if (wallRenders.at(renderDesc) == 0 && renderDesc != 255) { | 395 | if (wallRenders.at(renderDesc) == TilesetIndex(21, 12) && renderDesc != 255) { |
| 386 | std::cout << renderDesc << std::endl; | 396 | //std::cout << renderDesc << std::endl; |
| 397 | std::cout << ((renderDesc & (1 << 7)) ? 'X' : 'O'); | ||
| 398 | std::cout << ((renderDesc & (1 << 6)) ? 'X' : 'O'); | ||
| 399 | std::cout << ((renderDesc & (1 << 5)) ? 'X' : 'O'); | ||
| 400 | std::cout << std::endl; | ||
| 401 | std::cout << ((renderDesc & (1 << 0)) ? 'X' : 'O'); | ||
| 402 | std::cout << ' '; | ||
| 403 | std::cout << ((renderDesc & (1 << 4)) ? 'X' : 'O'); | ||
| 404 | std::cout << " " << renderDesc << std::endl; | ||
| 405 | std::cout << ((renderDesc & (1 << 1)) ? 'X' : 'O'); | ||
| 406 | std::cout << ((renderDesc & (1 << 2)) ? 'X' : 'O'); | ||
| 407 | std::cout << ((renderDesc & (1 << 3)) ? 'X' : 'O'); | ||
| 408 | std::cout << std::endl; | ||
| 387 | } | 409 | } |
| 388 | } | 410 | } |
| 389 | } | 411 | } |
| diff --git a/src/renderer.cpp b/src/renderer.cpp index 9744e70..10027dd 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp | |||
| @@ -173,7 +173,7 @@ void Renderer::renderGame( | |||
| 173 | 173 | ||
| 174 | if (draw) | 174 | if (draw) |
| 175 | { | 175 | { |
| 176 | if (game.map.tile(x,y) != Tile::Wall) { | 176 | /*if (game.map.tile(x,y) != Tile::Wall)*/ { |
| 177 | SDL_Rect tileRect {17 * 16, 15 * 16, 16, 16}; | 177 | SDL_Rect tileRect {17 * 16, 15 * 16, 16, 16}; |
| 178 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); | 178 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); |
| 179 | 179 | ||
| @@ -182,7 +182,7 @@ void Renderer::renderGame( | |||
| 182 | tileRect.y = game.map.at(x,y).renderId / 25 * 16; | 182 | tileRect.y = game.map.at(x,y).renderId / 25 * 16; |
| 183 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); | 183 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); |
| 184 | } | 184 | } |
| 185 | } else { | 185 | }/* else { |
| 186 | SDL_Rect tileRect { | 186 | SDL_Rect tileRect { |
| 187 | game.map.at(x,y).renderId % 25 * 16, | 187 | game.map.at(x,y).renderId % 25 * 16, |
| 188 | game.map.at(x,y).renderId / 25 * 16, | 188 | game.map.at(x,y).renderId / 25 * 16, |
| @@ -190,7 +190,7 @@ void Renderer::renderGame( | |||
| 190 | 16}; | 190 | 16}; |
| 191 | 191 | ||
| 192 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); | 192 | SDL_RenderCopy(ren_.get(), tileset_.get(), &tileRect, &rect); |
| 193 | } | 193 | }*/ |
| 194 | 194 | ||
| 195 | if (game.map.tile(x,y) == Tile::Lamp) { | 195 | if (game.map.tile(x,y) == Tile::Lamp) { |
| 196 | SDL_RenderCopy(ren_.get(), lamp_.get(), nullptr, &rect); | 196 | SDL_RenderCopy(ren_.get(), lamp_.get(), nullptr, &rect); |
