diff options
Diffstat (limited to 'src/crepe')
| -rw-r--r-- | src/crepe/Asset.cpp | 3 | ||||
| -rw-r--r-- | src/crepe/Particle.h | 2 | ||||
| -rw-r--r-- | src/crepe/SDLApp.cpp | 4 | ||||
| -rw-r--r-- | src/crepe/SDLContext.cpp | 8 | ||||
| -rw-r--r-- | src/crepe/api/Color.cpp | 1 | ||||
| -rw-r--r-- | src/crepe/api/Color.h | 2 | ||||
| -rw-r--r-- | src/crepe/api/Force.cpp | 4 | ||||
| -rw-r--r-- | src/crepe/api/ParticleEmitter.cpp | 8 | ||||
| -rw-r--r-- | src/crepe/api/Rigidbody.h | 1 | ||||
| -rw-r--r-- | src/crepe/api/Texture.h | 3 | ||||
| -rw-r--r-- | src/crepe/api/Transform.h | 13 | 
11 files changed, 41 insertions, 8 deletions
| diff --git a/src/crepe/Asset.cpp b/src/crepe/Asset.cpp index 3cbed0b..8a2a11c 100644 --- a/src/crepe/Asset.cpp +++ b/src/crepe/Asset.cpp @@ -5,7 +5,8 @@  using namespace crepe;  Asset::Asset(const std::string & src) { -	//this->src = std::filesystem::canonical(src); +	// FIXME: restore this +	// this->src = std::filesystem::canonical(src);  	this->src = src;  	this->file = std::ifstream(this->src, std::ios::in | std::ios::binary);  } diff --git a/src/crepe/Particle.h b/src/crepe/Particle.h index 6f689bd..21e691d 100644 --- a/src/crepe/Particle.h +++ b/src/crepe/Particle.h @@ -7,6 +7,8 @@ namespace crepe {  class Particle {  public:  	Position position; +	// FIXME: `Position` is an awkward name for a 2D vector. See FIXME comment in +	// api/Transform.h for fix proposal.  	Position velocity;  	float lifespan;  	bool active; diff --git a/src/crepe/SDLApp.cpp b/src/crepe/SDLApp.cpp index f408595..c6ddeaa 100644 --- a/src/crepe/SDLApp.cpp +++ b/src/crepe/SDLApp.cpp @@ -6,10 +6,12 @@ SDLApp::SDLApp(int window_width, int window_height)  	: window_width(window_width), window_height(window_height), window(nullptr),  	  renderer(nullptr) {} +// FIXME: why is there clean_up and ~SDLApp?  SDLApp::~SDLApp() { clean_up(); }  bool SDLApp::initialize() {  	if (SDL_Init(SDL_INIT_VIDEO) != 0) { +		// FIXME: throw exception  		std::cerr << "SDL Initialization Error: " << SDL_GetError()  				  << std::endl;  		return false; @@ -19,12 +21,14 @@ bool SDLApp::initialize() {  							  SDL_WINDOWPOS_CENTERED, window_width,  							  window_height, SDL_WINDOW_SHOWN);  	if (!window) { +		// FIXME: throw exception  		std::cerr << "Window Creation Error: " << SDL_GetError() << std::endl;  		return false;  	}  	renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);  	if (!renderer) { +		// FIXME: throw exception  		std::cerr << "Renderer Creation Error: " << SDL_GetError() << std::endl;  		return false;  	} diff --git a/src/crepe/SDLContext.cpp b/src/crepe/SDLContext.cpp index 5a93679..8bc5bc6 100644 --- a/src/crepe/SDLContext.cpp +++ b/src/crepe/SDLContext.cpp @@ -40,6 +40,9 @@ SDLContext::~SDLContext() {  		SDL_DestroyWindow(this->game_window);  	} +	// TODO: how are we going to ensure that these are called from the same +	// thread that SDL_Init() was called on? This has caused problems for me +	// before.  	IMG_Quit();  	SDL_Quit();  } @@ -48,8 +51,10 @@ void SDLContext::clear_screen() { SDL_RenderClear(this->game_renderer); }  SDLContext::SDLContext() {  	dbg_trace(); +	// FIXME: read window defaults from config manager  	if (SDL_Init(SDL_INIT_VIDEO) < 0) { +		// FIXME: throw exception  		std::cerr << "SDL could not initialize! SDL_Error: " << SDL_GetError()  				  << std::endl;  		return; @@ -59,6 +64,7 @@ SDLContext::SDLContext() {  		"Crepe Game Engine", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,  		1920, 1080, SDL_WINDOW_SHOWN);  	if (!this->game_window) { +		// FIXME: throw exception  		std::cerr << "Window could not be created! SDL_Error: "  				  << SDL_GetError() << std::endl;  	} @@ -66,6 +72,7 @@ SDLContext::SDLContext() {  	this->game_renderer  		= SDL_CreateRenderer(this->game_window, -1, SDL_RENDERER_ACCELERATED);  	if (!this->game_renderer) { +		// FIXME: throw exception  		std::cerr << "Renderer could not be created! SDL_Error: "  				  << SDL_GetError() << std::endl;  		SDL_DestroyWindow(this->game_window); @@ -74,6 +81,7 @@ SDLContext::SDLContext() {  	int img_flags = IMG_INIT_PNG;  	if (!(IMG_Init(img_flags) & img_flags)) { +		// FIXME: throw exception  		std::cout << "SDL_image could not initialize! SDL_image Error: "  				  << IMG_GetError() << std::endl;  	} diff --git a/src/crepe/api/Color.cpp b/src/crepe/api/Color.cpp index 71592da..fb5bd1a 100644 --- a/src/crepe/api/Color.cpp +++ b/src/crepe/api/Color.cpp @@ -11,6 +11,7 @@ Color Color::cyan = Color(0, 255, 255, 0);  Color Color::yellow = Color(255, 255, 0, 0);  Color Color::magenta = Color(255, 0, 255, 0); +// FIXME: do we really need double precision for color values?  Color::Color(double red, double green, double blue, double alpha) {  	this->a = alpha;  	this->r = red; diff --git a/src/crepe/api/Color.h b/src/crepe/api/Color.h index 207434e..36d91ef 100644 --- a/src/crepe/api/Color.h +++ b/src/crepe/api/Color.h @@ -4,6 +4,8 @@ namespace crepe::api {  class Color { +	// FIXME: can't these colors be defined as a `static constexpr const Color` +	// instead?  public:  	Color(double red, double green, double blue, double alpha);  	static const Color & get_white(); diff --git a/src/crepe/api/Force.cpp b/src/crepe/api/Force.cpp index 98649c1..e359adc 100644 --- a/src/crepe/api/Force.cpp +++ b/src/crepe/api/Force.cpp @@ -6,6 +6,10 @@ namespace crepe::api {  Force::Force(uint32_t game_object_id, uint32_t magnitude, uint32_t direction)  	: Component(game_object_id) { +	// TODO: A standard angle unit should be established for the entire engine +	// and assumed to be the default everywhere. Only conversion functions should +	// explicitly contain the unit (i.e. `deg_to_rad()` & `rad_to_deg()`) +  	// Convert direction from degrees to radians  	float radian_direction = static_cast<float>(direction) * (M_PI / 180.0f);  	force_x = static_cast<int32_t>( diff --git a/src/crepe/api/ParticleEmitter.cpp b/src/crepe/api/ParticleEmitter.cpp index 2e07562..0b3a9ee 100644 --- a/src/crepe/api/ParticleEmitter.cpp +++ b/src/crepe/api/ParticleEmitter.cpp @@ -18,9 +18,11 @@ ParticleEmitter::ParticleEmitter(uint32_t game_object_id,  	std::srand(  		static_cast<uint32_t>(std::time(nullptr))); // initialize random seed  	std::cout << "Create emitter" << std::endl; -	min_angle = (360 + angle - (angleOffset % 360)) % 360; // calculate minAngle -	max_angle = (360 + angle + (angleOffset % 360)) % 360; // calculate maxAngle -	position.x = 400; +	// FIXME: Why do these expressions start with `360 +`, only to be `% 360`'d +	// right after? This does not make any sense to me. +	min_angle = (360 + angle - (angleOffset % 360)) % 360; +	max_angle = (360 + angle + (angleOffset % 360)) % 360; +	position.x = 400; // FIXME: what are these magic values?  	position.y = 400;  	for (size_t i = 0; i < max_particles; i++) {  		this->particles.emplace_back(); diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h index 05cbb03..6079a76 100644 --- a/src/crepe/api/Rigidbody.h +++ b/src/crepe/api/Rigidbody.h @@ -6,6 +6,7 @@  namespace crepe::api { +// FIXME: can't this enum be defined inside the class declaration of Rigidbody?  enum class BodyType {  	//! Does not move (e.g. walls, ground ...)  	STATIC, diff --git a/src/crepe/api/Texture.h b/src/crepe/api/Texture.h index 7a2c755..f8481e3 100644 --- a/src/crepe/api/Texture.h +++ b/src/crepe/api/Texture.h @@ -1,5 +1,8 @@  #pragma once +// FIXME: this header can't be included because this is an API header, and SDL2 +// development headers won't be bundled with crepe. Why is this facade in the +// API namespace?  #include <SDL2/SDL_render.h>  #include <memory> diff --git a/src/crepe/api/Transform.h b/src/crepe/api/Transform.h index 7b74e43..c17ae34 100644 --- a/src/crepe/api/Transform.h +++ b/src/crepe/api/Transform.h @@ -9,13 +9,18 @@  namespace crepe::api {  class Transform : public Component { - +	// FIXME: What's the difference between the `Point` and `Position` +	// classes/structs? How about we replace both with a universal `Vec2` that +	// works similar (or the same) as those found in GLSL?  public:  	Transform(uint32_t id, Point &, double, double);  	~Transform(); -	Point position; // Translation (shift) -	double rotation; // Rotation, in radians -	double scale; // Multiplication factoh +	//! Translation (shift) +	Point position; +	//! Rotation, in radians +	double rotation; +	//! Multiplication factor +	double scale;  };  } // namespace crepe::api |