Bomberman Multiplayer
Authoritative multiplayer networking layer for Bomberman.
Loading...
Searching...
No Matches
Const.h
Go to the documentation of this file.
1#ifndef BOMBERMAN_CONST_H
2#define BOMBERMAN_CONST_H
3
4#include <cstdint>
5
12enum class Tile : uint8_t
13{
14 Stone,
15 Grass,
16 Brick,
17 EmptyGrass,
18 Bomb,
19 Bang
20};
21
22namespace bomberman
23{
24 constexpr int playerStartX = 1;
25 constexpr int playerStartY = 1;
26
27 constexpr unsigned int kBrickSpawnRandomize = 10;
28 constexpr unsigned int brickSpawnRandomize = kBrickSpawnRandomize;
29 constexpr unsigned int doorSpawnRandomize = 10;
30 constexpr unsigned int bangSpawnCells = 5;
31 constexpr unsigned int minEnemiesOnLevel = 2;
32 constexpr unsigned int maxEnemiesOnLevel = 10;
33
34 constexpr int bangSpawnPositions[bangSpawnCells][2] = {
35 { 0, 0},
36 { 0, 1},
37 { 1, 0},
38 { 0, -1},
39 {-1, 0}
40 };
41 static_assert(bangSpawnCells == 5, "bangSpawnPositions row count must match bangSpawnCells");
42
43 constexpr unsigned int tileArrayWidth = 31;
44 constexpr unsigned int tileArrayHeight = 13;
45 constexpr unsigned int tileSize = 16;
46
47 constexpr Tile baseTiles[tileArrayHeight][tileArrayWidth] = {
48 {Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
49 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
50 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
51 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone},
52 {Tile::Stone, Tile::EmptyGrass, Tile::EmptyGrass, Tile::EmptyGrass, Tile::Grass, Tile::Grass, Tile::Grass,
53 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
54 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
55 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
56 Tile::Grass, Tile::EmptyGrass, Tile::Stone},
57 {Tile::Stone, Tile::EmptyGrass, Tile::Stone, Tile::EmptyGrass, Tile::Stone, Tile::Grass, Tile::Stone,
58 Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
59 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone,
60 Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
61 Tile::Stone, Tile::Grass, Tile::Stone},
62 {Tile::Stone, Tile::EmptyGrass, Tile::EmptyGrass, Tile::EmptyGrass, Tile::Grass, Tile::Grass, Tile::Grass,
63 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
64 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
65 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
66 Tile::Grass, Tile::Grass, Tile::Stone},
67 {Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
68 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
69 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
70 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone},
71 {Tile::Stone, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
72 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
73 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Brick, Tile::Grass, Tile::Grass, Tile::Grass,
74 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Stone},
75 {Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
76 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
77 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
78 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone},
79 {Tile::Stone, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
80 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
81 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
82 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Stone},
83 {Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
84 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
85 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass,
86 Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone, Tile::Grass, Tile::Stone},
87 {Tile::Stone, Tile::EmptyGrass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
88 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
89 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass,
90 Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::Grass, Tile::EmptyGrass, Tile::Stone},
91 {Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
92 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
93 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone,
94 Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone, Tile::Stone}
95 };
96} // namespace bomberman
97
98#endif // BOMBERMAN_CONST_H
constexpr unsigned int tileSize
Source sprite size in pixels (not scaled render size).
Definition Const.h:45
constexpr unsigned int kBrickSpawnRandomize
Shared brick-density knob for generated maps; lower means more bricks.
Definition Const.h:27
constexpr unsigned int tileArrayWidth
Tile map width in tiles.
Definition Const.h:43
constexpr unsigned int tileArrayHeight
Tile map height in tiles.
Definition Const.h:44
Tile
Tile type identifiers used in the tile map.
Definition Const.h:13
constexpr int playerStartY
Player spawn tile row.
Definition Const.h:25
constexpr unsigned int bangSpawnCells
Number of cells in the bang spread pattern.
Definition Const.h:30
constexpr unsigned int brickSpawnRandomize
Legacy alias kept for older call sites.
Definition Const.h:28
constexpr unsigned int doorSpawnRandomize
Door placement — lower value means door spawns further in.
Definition Const.h:29
constexpr int playerStartX
Player spawn tile column.
Definition Const.h:24