Bomberman Multiplayer
Authoritative multiplayer networking layer for Bomberman.
Loading...
Searching...
No Matches
MultiplayerLevelSceneInternal.h File Reference

Internal helpers shared by the multiplayer scene implementation files. More...

#include <algorithm>
#include <cmath>
#include <cstdint>
#include <memory>
#include "Const.h"
#include "Core/Animation.h"
#include "Entities/Sprite.h"
#include "Net/NetCommon.h"
#include "Scenes/MultiplayerLevelScene/MultiplayerLevelScene.h"
#include "Sim/SimConfig.h"
#include "Sim/SpawnSlots.h"
#include "Util/PlayerColors.h"

Go to the source code of this file.

Functions

constexpr uint16_t bomberman::multiplayer_level_scene_internal::packCellKey (const uint8_t col, const uint8_t row)
 Pack a tile coordinate into one map key.
 
void bomberman::multiplayer_level_scene_internal::attachBombAnimation (const std::shared_ptr< Sprite > &bombSprite)
 Attach the looping bomb animation.
 
void bomberman::multiplayer_level_scene_internal::attachExplosionAnimation (const std::shared_ptr< Sprite > &explosionSprite)
 Attach the explosion animation.
 
void bomberman::multiplayer_level_scene_internal::attachBombSparkAnimation (const std::shared_ptr< Sprite > &bombSparkSprite)
 Attach the short local bomb spark animation.
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntryIsAlive (const net::MsgSnapshot::PlayerEntry &entry)
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntryInputLocked (const net::MsgSnapshot::PlayerEntry &entry)
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntryInvulnerable (const net::MsgSnapshot::PlayerEntry &entry)
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntryBombRangeBoost (const net::MsgSnapshot::PlayerEntry &entry)
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntryMaxBombsBoost (const net::MsgSnapshot::PlayerEntry &entry)
 
bool bomberman::multiplayer_level_scene_internal::snapshotEntrySpeedBoost (const net::MsgSnapshot::PlayerEntry &entry)
 
MovementDirection bomberman::multiplayer_level_scene_internal::inferDirectionFromDelta (const int dxQ, const int dyQ, const MovementDirection fallback)
 Infer visible facing from position delta.
 
int bomberman::multiplayer_level_scene_internal::computeTagPointSize (const int scaledTileSize)
 Derive a readable player-tag size from the current tile size.
 
MovementDirection bomberman::multiplayer_level_scene_internal::inferDirectionFromButtons (const uint8_t buttons)
 Infer facing directly from queued input buttons.
 

Variables

constexpr int bomberman::multiplayer_level_scene_internal::kMovementDeltaThresholdQ = 2
 
constexpr int bomberman::multiplayer_level_scene_internal::kNameTagOffsetPx = 6
 
constexpr int bomberman::multiplayer_level_scene_internal::kNameTagMinPointSize = 12
 
constexpr int bomberman::multiplayer_level_scene_internal::kNameTagMaxPointSize = 20
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kGameplayDegradedThresholdMs = 2000
 Silence window before gameplay is marked degraded.
 
constexpr int bomberman::multiplayer_level_scene_internal::kGameplayStatusOffsetY = 12
 
constexpr int bomberman::multiplayer_level_scene_internal::kDebugHudOffsetX = 12
 
constexpr int bomberman::multiplayer_level_scene_internal::kDebugHudOffsetY = 12
 
constexpr int bomberman::multiplayer_level_scene_internal::kDebugHudPointSize = 12
 
constexpr int bomberman::multiplayer_level_scene_internal::kDebugHudLineGapPx = 4
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kDebugHudRefreshIntervalMs = 250
 
constexpr int bomberman::multiplayer_level_scene_internal::kCenterBannerPointSize = 56
 
constexpr int bomberman::multiplayer_level_scene_internal::kCenterBannerDetailPointSize = 40
 
constexpr int bomberman::multiplayer_level_scene_internal::kCenterBannerLineGapPx = 10
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kCenterBannerDurationTicks = static_cast<uint32_t>(sim::kTickRate)
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kLivePredictionLogIntervalMs = 1000
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kSimulationTickMs = 1000u / static_cast<uint32_t>(sim::kTickRate)
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kPreStartReturnTimeoutMs = 7000
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kPowerupBlinkIntervalMs = 140
 
constexpr int bomberman::multiplayer_level_scene_internal::kBombAnimationFrameCount = 4
 
constexpr int bomberman::multiplayer_level_scene_internal::kBombSparkAnimationFrameCount = 5
 
constexpr int bomberman::multiplayer_level_scene_internal::kBombSparkFrameSizePx = 32
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kBombSparkAnimationIntervalMs = 50
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kBombSparkLifetimeMs = 250
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kPendingLocalBombPlacementLifetimeMs
 Lifetime of a pending local bomb reservation.
 
constexpr int bomberman::multiplayer_level_scene_internal::kBoostedBombExtraPx = 4
 
constexpr int bomberman::multiplayer_level_scene_internal::kExplosionAnimationStartFrame = 1
 
constexpr int bomberman::multiplayer_level_scene_internal::kExplosionAnimationFrameCount = 11
 
constexpr uint32_t bomberman::multiplayer_level_scene_internal::kExplosionLifetimeMs = 800
 

Detailed Description

Internal helpers shared by the multiplayer scene implementation files.

Variable Documentation

◆ kPendingLocalBombPlacementLifetimeMs

constexpr uint32_t bomberman::multiplayer_level_scene_internal::kPendingLocalBombPlacementLifetimeMs
inlineconstexpr
Initial value:
=
static_cast<uint32_t>((1000ull * sim::kDefaultBombFuseTicks) / sim::kTickRate)

Lifetime of a pending local bomb reservation.