47 lines
943 B
C++
47 lines
943 B
C++
// main.cpp
|
|
#include "Aquarium.h"
|
|
#ifdef __OpenBSD__
|
|
#include <unistd.h>
|
|
#endif
|
|
#include <chrono>
|
|
#include <iostream>
|
|
#include <thread>
|
|
|
|
int main() {
|
|
// Get the singleton instance
|
|
Aquarium &aquarium = Aquarium::getInstance();
|
|
|
|
#ifdef __OpenBSD__
|
|
// Most restrictive pledge - no file access needed!
|
|
if (pledge("stdio tty", NULL) == -1) {
|
|
perror("pledge");
|
|
return 1;
|
|
}
|
|
#endif
|
|
|
|
// Initialize the aquarium display
|
|
aquarium.resize(); // Setup initial entities
|
|
|
|
// Main game loop
|
|
while (true) {
|
|
// Check for user input
|
|
int input = aquarium.checkInput();
|
|
if (input == 'q' || input == 'Q' || input == 27) { // ESC key
|
|
break;
|
|
}
|
|
|
|
// Check if terminal was resized
|
|
if (aquarium.checkResize()) {
|
|
aquarium.resize();
|
|
}
|
|
|
|
// Redraw the aquarium
|
|
aquarium.redraw();
|
|
|
|
// Control frame rate (~20 FPS)
|
|
// std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
|
}
|
|
|
|
return 0;
|
|
}
|