Timer iznogoud.
This commit is contained in:
@@ -530,12 +530,12 @@ void Engine::DrawHud(float elapsedTime, BlockType bloc) {
|
||||
glPushMatrix();
|
||||
|
||||
int timer = GetCountdown(elapsedTime);
|
||||
for (int i = 1; i < WORLD_SIZE_X; i++) {
|
||||
/*for (int i = 1; i < WORLD_SIZE_X; i++) {
|
||||
if (timer <= COUNTDOWN - m_timerReductionChunk * i) {
|
||||
m_world.RemoveChunk(m_nbReductionChunk * i);
|
||||
m_renderer.RemoveChunk(m_nbReductionChunk * i);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
if (m_keyK) {
|
||||
SystemNotification(m_messageNotification);
|
||||
m_keyK = false;
|
||||
@@ -663,8 +663,8 @@ int Engine::GetCountdown(float elapsedTime) {
|
||||
m_countdown = m_time + COUNTDOWN;
|
||||
m_resetcountdown = false;
|
||||
}
|
||||
if (m_countdown < m_time)
|
||||
Stop();
|
||||
if (m_countdown < m_time) {}
|
||||
//Stop();
|
||||
if (!m_stopcountdown)
|
||||
m_time += elapsedTime;
|
||||
return m_countdown - (int)m_time;
|
||||
@@ -1409,10 +1409,12 @@ void Engine::Render(float elapsedTime) {
|
||||
|
||||
sendPackTo<Input>(m_conn.m_sock_udp, &input, &m_bufout, &m_conn.m_srvsockaddr);
|
||||
|
||||
std::cout << ".";
|
||||
|
||||
lsPck = recvPacks(m_conn.m_sock_udp, &m_buf);
|
||||
char* prevptr = nullptr;
|
||||
for (auto& pck : lsPck) { // We could make a few threads out of this.
|
||||
Sync sync; Output out; ChunkMod cmod; BulletAdd bull;
|
||||
Sync sync; Output out; ChunkMod cmod; BulletAdd bull; Chat chat;
|
||||
if (!prevptr)
|
||||
prevptr = m_buf.ptr;
|
||||
uint32_t bsize = m_buf.len - (pck - prevptr);
|
||||
@@ -1420,9 +1422,10 @@ void Engine::Render(float elapsedTime) {
|
||||
switch (getType(pck, 1)) {
|
||||
using enum PACKET_TYPE;
|
||||
case SYNC:
|
||||
std::cout << "snyc";
|
||||
if (Deserialize(&sync, pck, &bsize)) {
|
||||
if (sync.sid != m_conn.getId()) {
|
||||
std::cout << "syncsid be no good.";
|
||||
SystemNotification("syncsid be no good.");
|
||||
break;
|
||||
}
|
||||
if (m_syncs.count(sync.timestamp)) {
|
||||
@@ -1439,18 +1442,18 @@ void Engine::Render(float elapsedTime) {
|
||||
m_player.Move(-diff);
|
||||
}
|
||||
|
||||
// TODO: Syncer sync.timer avec le timer
|
||||
m_countdown = sync.timer;
|
||||
|
||||
m_syncs.erase(sync.timestamp);
|
||||
}
|
||||
else std::cout << "sync be no good.";
|
||||
else SystemNotification("sync be no good.");
|
||||
}
|
||||
break;
|
||||
case OUTPUT:
|
||||
std::cout << "out";
|
||||
if (Deserialize(&out, pck, &bsize)) {
|
||||
if (!m_players.contains(out.id)) {
|
||||
|
||||
std::cout << out.id << " is id no good." << std::endl;
|
||||
SystemNotification(std::to_string(out.id).append(" is id no good."));
|
||||
break;
|
||||
}
|
||||
RemotePlayer* rt = static_cast<RemotePlayer*>(m_players[out.id]);
|
||||
@@ -1458,6 +1461,7 @@ void Engine::Render(float elapsedTime) {
|
||||
}
|
||||
break;
|
||||
case CHUNKMOD:
|
||||
std::cout << "cmod";
|
||||
if (Deserialize(&cmod, pck, &bsize)) {
|
||||
if (!std::erase_if(m_chunkmod_manifest, // Efface le chunkmod du manifeste s'il est dedans et reset le countdown, sinon fait la modification.
|
||||
[cmod](ChunkMod* c) {
|
||||
@@ -1468,10 +1472,12 @@ void Engine::Render(float elapsedTime) {
|
||||
m_world.ChangeBlockAtPosition(cmod.b_type, cmod.pos);
|
||||
else cmod_acc = 0;
|
||||
}
|
||||
else SystemNotification("cmod iznogoud.");
|
||||
break;
|
||||
case BULLET:
|
||||
std::cout << "pow";
|
||||
if (Deserialize(&bull, pck, &bsize)) {
|
||||
Bullet* bult = new Bullet(bull.pos, bull.dir, bull.id);
|
||||
Bullet* bult = new Bullet(bull.pos, bull.dir);
|
||||
for (int x = 0; x < MAX_BULLETS; ++x) // Ajouter une balle dans l'array (aussi connu sous le nom de "faire pow pow").
|
||||
if (!m_bullets[x]) {
|
||||
m_bullets[x] = bult;
|
||||
@@ -1483,14 +1489,23 @@ void Engine::Render(float elapsedTime) {
|
||||
}
|
||||
m_audio.Create3DAudioObj(m_powpow, AUDIO_PATH "pow.wav", bull.pos, bull.dir * 10, false, .5f);
|
||||
}
|
||||
else SystemNotification("Bullet is kraput.");
|
||||
break;
|
||||
case CHAT:
|
||||
std::cout << "cat";
|
||||
if (Deserialize(&chat, pck, &bsize))
|
||||
SystemNotification(chat.mess);
|
||||
else SystemNotification("Chat iznogoud.");
|
||||
break;
|
||||
default:
|
||||
std::cout << "packet be no good.";
|
||||
std::cout << "wtf";
|
||||
SystemNotification("packet be no good.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
lsPck.clear();
|
||||
|
||||
|
||||
glDisable(GL_CULL_FACE);
|
||||
for (auto& [key, player] : m_players) {
|
||||
RemotePlayer* rt = static_cast<RemotePlayer*>(player);
|
||||
@@ -1607,6 +1622,8 @@ void Engine::KeyPressEvent(unsigned char key) {
|
||||
}
|
||||
break;
|
||||
case 36: // ESC - Quitter
|
||||
if (m_networkgame)
|
||||
break;
|
||||
if (m_gamestate == GameState::PLAY) {
|
||||
m_gamestate = GameState::PAUSE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user