Files
spacetris/src/core/Settings.h
Gregor Klevze 57eac01bcb feat(renderer): polish gameplay visuals — transport, starfield, sparkles, smooth piece motion
Add transport/transfer effect for NEXT → grid with cross-fade and preview swap
Integrate in-grid Starfield3D with magnet targeting tied to active piece
Spawn ambient sparkles and impact sparks (hard-drop crackle + burst on expiry)
Smooth horizontal/fall interpolation for active piece (configurable smooth scroll)
Refactor next panel / preview rendering and connector drawing
Tweak stats/score panel layout, progress bars and typography for compact view
Preserve safe alpha handling and restore renderer blend/scale state after overlays
2025-12-08 20:43:51 +01:00

60 lines
1.9 KiB
C++

#pragma once
#include <string>
/**
* Settings - Persistent game settings manager
* Handles loading/saving settings to settings.ini
*/
class Settings {
public:
// Singleton access
static Settings& instance();
// Load settings from file (returns true if file existed)
bool load();
// Save settings to file
bool save();
// Settings accessors
bool isFullscreen() const { return m_fullscreen; }
void setFullscreen(bool value) { m_fullscreen = value; }
bool isMusicEnabled() const { return m_musicEnabled; }
void setMusicEnabled(bool value) { m_musicEnabled = value; }
bool isSoundEnabled() const { return m_soundEnabled; }
void setSoundEnabled(bool value) { m_soundEnabled = value; }
bool isDebugEnabled() const { return m_debugEnabled; }
void setDebugEnabled(bool value) { m_debugEnabled = value; }
bool isSmoothScrollEnabled() const { return m_smoothScrollEnabled; }
void setSmoothScrollEnabled(bool value) { m_smoothScrollEnabled = value; }
// Rotation behavior: should pressing UP rotate clockwise? (true = clockwise)
bool isUpRotateClockwise() const { return m_upRotateClockwise; }
void setUpRotateClockwise(bool value) { m_upRotateClockwise = value; }
const std::string& getPlayerName() const { return m_playerName; }
void setPlayerName(const std::string& name) { m_playerName = name; }
// Get the settings file path
static std::string getSettingsPath();
private:
Settings(); // Private constructor for singleton
Settings(const Settings&) = delete;
Settings& operator=(const Settings&) = delete;
// Settings values
bool m_fullscreen = false;
bool m_musicEnabled = true;
bool m_soundEnabled = true;
bool m_debugEnabled = false;
bool m_smoothScrollEnabled = true;
std::string m_playerName = "Player";
// Default: UP rotates clockwise
bool m_upRotateClockwise = true;
};