sound is so buggy.
This commit is contained in:
parent
becf8602d7
commit
550556e0e4
12 changed files with 303 additions and 160 deletions
|
|
@ -14,7 +14,7 @@ namespace game {
|
|||
|
||||
// angles are supplied in degrees and are CCW
|
||||
Missile *missile = new Missile(
|
||||
state->generateMissileId(),
|
||||
state->generateId(),
|
||||
player,
|
||||
player->ship->position,
|
||||
-util::deg2rad(m_angle),
|
||||
|
|
@ -30,7 +30,8 @@ namespace game {
|
|||
{
|
||||
(void) state;
|
||||
|
||||
return player->alive && player->energy >= player->speed;
|
||||
//return player->alive && player->energy >= player->speed;
|
||||
return player->alive;
|
||||
}
|
||||
|
||||
void ChangeNameCommand::apply(Player *player, State *state) const
|
||||
|
|
@ -76,6 +77,8 @@ namespace game {
|
|||
|
||||
void DeveloperCommand::apply(Player *player, State *state) const
|
||||
{
|
||||
(void) player;
|
||||
|
||||
if (!state->developerMode()) {
|
||||
std::cout<<"ignoring dev command while not in developer mode: '"
|
||||
<< m_payload << "'" << std::endl;
|
||||
|
|
@ -96,6 +99,7 @@ namespace game {
|
|||
|
||||
void SetDeveloperModeCommand::apply(Player *player, State *state) const
|
||||
{
|
||||
(void) player;
|
||||
// TODO: check if player is admin
|
||||
|
||||
state->setDeveloperMode(m_enable);
|
||||
|
|
|
|||
|
|
@ -32,9 +32,6 @@ namespace game {
|
|||
|
||||
// TODO: clear shots etc. too
|
||||
|
||||
m_nextPlayerId = 0;
|
||||
m_nextMissileId = 0;
|
||||
m_nextShipId = 0;
|
||||
m_time = 0.0;
|
||||
m_shipRadius = 0.02;
|
||||
m_maxMissileDistance = 2.0;
|
||||
|
|
@ -42,7 +39,6 @@ namespace game {
|
|||
m_defaultEnergy = 10.0;
|
||||
m_maxNumTraces = 10;
|
||||
m_developerMode = devMode;
|
||||
m_nextExplosionId = 0;
|
||||
|
||||
setPlayingFieldCenter(0, 0);
|
||||
|
||||
|
|
@ -144,7 +140,7 @@ namespace game {
|
|||
return false;
|
||||
}
|
||||
|
||||
Ship *ship = new Ship(m_nextShipId++, spawnPos, m_shipRadius);
|
||||
Ship *ship = new Ship(generateId(), spawnPos, m_shipRadius);
|
||||
player->ship = ship;
|
||||
ships.push_back(ship);
|
||||
|
||||
|
|
@ -157,7 +153,7 @@ namespace game {
|
|||
|
||||
size_t State::addPlayer()
|
||||
{
|
||||
Player *player = new Player(m_nextPlayerId++);
|
||||
Player *player = new Player(generateId());
|
||||
players.push_back(player);
|
||||
return player->id;
|
||||
}
|
||||
|
|
@ -483,7 +479,7 @@ namespace game {
|
|||
}
|
||||
|
||||
Explosion *explosion = new Explosion(
|
||||
m_nextExplosionId++, evt->position,
|
||||
generateId(), evt->position,
|
||||
evt->missileVelocity, evt->hit);
|
||||
|
||||
explosions.push_back(explosion);
|
||||
|
|
@ -519,9 +515,9 @@ namespace game {
|
|||
m_playingFieldSize = glm::vec2(width, height);
|
||||
}
|
||||
|
||||
size_t State::generateMissileId()
|
||||
size_t State::generateId()
|
||||
{
|
||||
return m_nextMissileId++;
|
||||
return m_ids.makeNextId();
|
||||
}
|
||||
|
||||
void State::applyAndClearAllOldStateUpdates()
|
||||
|
|
@ -532,8 +528,8 @@ namespace game {
|
|||
case EventType::Explosion:
|
||||
{
|
||||
ExplosionEvent *ee = static_cast<ExplosionEvent*>(evt);
|
||||
//std::cout<<"got explosion delete event, finally deleting explosion #"
|
||||
// << ee->explosion->id << std::endl;
|
||||
std::cout<<"got explosion delete event, finally deleting explosion #"
|
||||
<< ee->object()->id << std::endl;
|
||||
|
||||
delete(ee->object());
|
||||
}
|
||||
|
|
@ -542,8 +538,8 @@ namespace game {
|
|||
case EventType::Missile:
|
||||
{
|
||||
auto *me = static_cast<MissileEvent*>(evt);
|
||||
//std::cout<<"got missile delete event, finally deleting missile #"
|
||||
// << me->missile->id << std::endl;
|
||||
std::cout<<"got missile delete event, finally deleting missile #"
|
||||
<< me->object()->id << std::endl;
|
||||
|
||||
delete(me->object());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,25 @@ namespace game {
|
|||
class Trace;
|
||||
class Explosion;
|
||||
|
||||
class IdGenerator {
|
||||
public:
|
||||
IdGenerator() : m_nextId(0)
|
||||
{
|
||||
}
|
||||
|
||||
size_t makeNextId()
|
||||
{
|
||||
return m_nextId++;
|
||||
if (m_nextId == 0) {
|
||||
std::cerr << "note: id counter just wrapped to 0, "
|
||||
"funny things can happen now." << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
size_t m_nextId;
|
||||
};
|
||||
|
||||
class State {
|
||||
public:
|
||||
/*************************************************************************/
|
||||
|
|
@ -105,7 +124,7 @@ namespace game {
|
|||
void setPlayingFieldSize(int width, int height);
|
||||
void setPlayingFieldCenter(int width, int height);
|
||||
|
||||
size_t generateMissileId();
|
||||
size_t generateId();
|
||||
|
||||
void applyAndClearAllOldStateUpdates();
|
||||
|
||||
|
|
@ -159,10 +178,7 @@ namespace game {
|
|||
float m_shipRadius;
|
||||
float m_defaultEnergy;
|
||||
int m_maxNumTraces;
|
||||
size_t m_nextPlayerId;
|
||||
size_t m_nextExplosionId;
|
||||
size_t m_nextMissileId;
|
||||
size_t m_nextShipId;
|
||||
IdGenerator m_ids;
|
||||
float m_time;
|
||||
bool m_developerMode;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue