diff --git a/.gitignore b/.gitignore index 98f7226..370f5ca 100644 --- a/.gitignore +++ b/.gitignore @@ -467,3 +467,4 @@ FodyWeavers.xsd .kateproject.build .vscode/settings.json +.idea diff --git a/main.cpp b/main.cpp index ac4955c..6ec0c31 100644 --- a/main.cpp +++ b/main.cpp @@ -7,8 +7,8 @@ /* This function runs once at startup. */ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) { - SDL_Window *window = NULL; - SDL_Renderer *renderer = NULL; + SDL_Window *window = nullptr; + SDL_Renderer *renderer = nullptr; SDL_SetAppMetadata("Example Input Joystick Polling", "1.0", "com.example.input-joystick-polling"); if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD)) { @@ -27,17 +27,15 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) return SDL_APP_CONTINUE; /* carry on with the program! */ } -/* This function runs when a new event (mouse input, keypresses, etc) occurs. */ +/* This function runs when a new event (mouse input, keypresses, etc.) occurs. */ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { - Game* game = (Game*) appstate; + Game* game = static_cast(appstate); switch(event->type) { case SDL_EVENT_QUIT: return SDL_APP_SUCCESS; /* end the program, reporting success to the OS. */ case SDL_EVENT_KEY_DOWN: - game->HandleKeyboardInput(*event); - break; case SDL_EVENT_KEY_UP: game->HandleKeyboardInput(*event); break; @@ -48,14 +46,14 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) game->RemoveGamepad(event->gdevice.which); break; case SDL_EVENT_GAMEPAD_BUTTON_DOWN: - game->HandleGamepadButton(*event); - break; case SDL_EVENT_GAMEPAD_BUTTON_UP: game->HandleGamepadButton(*event); break; case SDL_EVENT_GAMEPAD_AXIS_MOTION: game->HandleGamepadAxis(*event); break; + default: + break; } return SDL_APP_CONTINUE; /* carry on with the program! */ } @@ -63,7 +61,7 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) /* This function runs once per frame, and is the heart of the program. */ SDL_AppResult SDL_AppIterate(void *appstate) { - Game* game = (Game*) appstate; + Game* game = static_cast(appstate); game ->Run(); return SDL_APP_CONTINUE; /* carry on with the program! */ @@ -72,6 +70,6 @@ SDL_AppResult SDL_AppIterate(void *appstate) /* This function runs once at shutdown. */ void SDL_AppQuit(void *appstate, SDL_AppResult result) { - delete (Game*)appstate; + delete static_cast(appstate); /* SDL will clean up the window/renderer for us. */ } \ No newline at end of file diff --git a/src/Actors/Actor.cpp b/src/Actors/Actor.cpp index bfbf0dc..6a3f86f 100644 --- a/src/Actors/Actor.cpp +++ b/src/Actors/Actor.cpp @@ -2,7 +2,7 @@ void Actor::SetPosition(Vector2D position) { - //differenct = velocity vector to new position + //difference = velocity vector to new position Vector2D difference = position - m_Position; m_MoveHitbox.ApplyVelocity(difference); m_CombatHitbox.ApplyVelocity(difference); diff --git a/src/Actors/Actor.h b/src/Actors/Actor.h index f82150e..60b7a7f 100644 --- a/src/Actors/Actor.h +++ b/src/Actors/Actor.h @@ -2,7 +2,6 @@ #define ACTOR_H #include -#include #include "../DataStructures/Vector2D.h" #include "../DataStructures/Hitbox.h" @@ -14,9 +13,9 @@ public: void SetPosition(Vector2D position); void MoveBy(Vector2D velocity); - Vector2D GetPosition() {return m_Position;} - Hitbox GetMovementHitbox() {return m_MoveHitbox;} - Hitbox GetCombatHitbox() {return m_CombatHitbox;} + Vector2D GetPosition() const {return m_Position;} + Hitbox GetMovementHitbox() const {return m_MoveHitbox;} + Hitbox GetCombatHitbox() const {return m_CombatHitbox;} friend class ActorFactory; protected: diff --git a/src/Actors/ActorFactory.h b/src/Actors/ActorFactory.h index c32213f..916681b 100644 --- a/src/Actors/ActorFactory.h +++ b/src/Actors/ActorFactory.h @@ -2,7 +2,6 @@ #define ACTOR_FACTORY_H #include -#include #include "Actor.h" #include "MovingActor.h" diff --git a/src/Components/MoveComponent.cpp b/src/Components/MoveComponent.cpp index 40e67e9..86cd19a 100644 --- a/src/Components/MoveComponent.cpp +++ b/src/Components/MoveComponent.cpp @@ -1,6 +1,4 @@ #include "MoveComponent.h" -#include - void MoveComponent::Update(float deltaTime) { diff --git a/src/Components/MoveComponent.h b/src/Components/MoveComponent.h index 55d2d7d..38a8fb5 100644 --- a/src/Components/MoveComponent.h +++ b/src/Components/MoveComponent.h @@ -2,8 +2,6 @@ #define MOVE_COMPONENT_H #include -#include -#include #include "../Actors/Actor.h" #include "../DataStructures/NormalizedDirection.h" diff --git a/src/DataStructures/DirectionButtonStatus.cpp b/src/DataStructures/DirectionButtonStatus.cpp index bd701ff..5873509 100644 --- a/src/DataStructures/DirectionButtonStatus.cpp +++ b/src/DataStructures/DirectionButtonStatus.cpp @@ -3,7 +3,7 @@ #include "NormalizedDirection.h" -bool DirectionButtonStatus::GetDirection(NormalizedDirection & ref_direction) +bool DirectionButtonStatus::GetDirection(NormalizedDirection & ref_direction) const { SDL_Point direction = {0,0}; if(UpPressed) direction.y -= 1; @@ -11,8 +11,8 @@ bool DirectionButtonStatus::GetDirection(NormalizedDirection & ref_direction) if(LeftPressed) direction.x -= 1; if(RightPressed) direction.x += 1; - float x = (float)direction.x; - float y = (float)direction.y; + float x = static_cast(direction.x); + float y = static_cast(direction.y); if((direction.y == 1 || direction.y == -1) && (direction.x == 1 || direction.x == -1)) { diff --git a/src/DataStructures/DirectionButtonStatus.h b/src/DataStructures/DirectionButtonStatus.h index 0cd5363..a57ee2e 100644 --- a/src/DataStructures/DirectionButtonStatus.h +++ b/src/DataStructures/DirectionButtonStatus.h @@ -2,7 +2,6 @@ #define DIRECTION_BUTTON_STATUS_H #include -#include #include "NormalizedDirection.h" class DirectionButtonStatus @@ -12,9 +11,9 @@ public: bool DownPressed = false; bool LeftPressed = false; bool RightPressed = false; - const float c_NormalizedDiagonal = (float)(1.0 / sqrt(2)); + const float c_NormalizedDiagonal = static_cast(1.0 / sqrt(2)); - bool GetDirection(NormalizedDirection & ref_direction); + bool GetDirection(NormalizedDirection & ref_direction) const; }; #endif \ No newline at end of file diff --git a/src/DataStructures/Hitbox.cpp b/src/DataStructures/Hitbox.cpp index 73d7ddd..de7477a 100644 --- a/src/DataStructures/Hitbox.cpp +++ b/src/DataStructures/Hitbox.cpp @@ -1,10 +1,10 @@ #include "Hitbox.h" #include "Vector2D.h" -void Hitbox::ApplyVelocity(Vector2D vector) +void Hitbox::ApplyVelocity(Vector2D velocity) { - x += vector.x; - y += vector.y; + x += velocity.x; + y += velocity.y; } void Hitbox::SetPosition(Vector2D vector) @@ -13,7 +13,7 @@ void Hitbox::SetPosition(Vector2D vector) y = vector.y; } -Vector2D Hitbox::GetDirectionTo(const Hitbox & other) +Vector2D Hitbox::GetDirectionTo(const Hitbox & other) const { Vector2D vec; vec.x = other.x - x; diff --git a/src/DataStructures/Hitbox.h b/src/DataStructures/Hitbox.h index 6828201..762e7f4 100644 --- a/src/DataStructures/Hitbox.h +++ b/src/DataStructures/Hitbox.h @@ -14,7 +14,7 @@ public: void ApplyVelocity(Vector2D velocity); void SetPosition(Vector2D vector); - Vector2D GetDirectionTo(const Hitbox & other); + Vector2D GetDirectionTo(const Hitbox & other) const; }; #endif \ No newline at end of file diff --git a/src/DataStructures/NormalizedDirection.cpp b/src/DataStructures/NormalizedDirection.cpp index ef990e7..39b49ba 100644 --- a/src/DataStructures/NormalizedDirection.cpp +++ b/src/DataStructures/NormalizedDirection.cpp @@ -1,5 +1,5 @@ #include "NormalizedDirection.h" -#include +#include NormalizedDirection::NormalizedDirection(float x, float y, bool isNormalized) { @@ -10,18 +10,14 @@ NormalizedDirection::NormalizedDirection(float x, float y, bool isNormalized) } else { - float normalizeValue = (float)(1.0 / sqrt(pow(x,2) + pow(y,2))); + float normalizeValue = static_cast(1.0 / sqrt(pow(x, 2) + pow(y, 2))); m_Direction.x = x * normalizeValue; m_Direction.y = y * normalizeValue; } } -NormalizedDirection::NormalizedDirection(SDL_FPoint direction, bool isNormalized) -{ - NormalizedDirection(direction.x, direction.y, isNormalized); -} +NormalizedDirection::NormalizedDirection(SDL_FPoint direction, bool isNormalized): + NormalizedDirection(direction.x, direction.y, isNormalized) {} -NormalizedDirection::NormalizedDirection(Vector2D direction, bool isNormalized) -{ - NormalizedDirection(direction.x, direction.y, isNormalized); -} \ No newline at end of file +NormalizedDirection::NormalizedDirection(Vector2D direction, bool isNormalized) : + NormalizedDirection(direction.x, direction.y, isNormalized) {} \ No newline at end of file diff --git a/src/DataStructures/NormalizedDirection.h b/src/DataStructures/NormalizedDirection.h index 96ccf0f..9957e04 100644 --- a/src/DataStructures/NormalizedDirection.h +++ b/src/DataStructures/NormalizedDirection.h @@ -3,7 +3,6 @@ #include "Vector2D.h" #include -#include "Vector2D.h" class NormalizedDirection { @@ -13,9 +12,9 @@ public: NormalizedDirection(SDL_FPoint direction, bool isNormalized); NormalizedDirection(Vector2D direction, bool isNormalized); - float GetX() {return m_Direction.x;} - float GetY() {return m_Direction.y;} - Vector2D GetDirection() {return m_Direction;}; + float GetX() const {return m_Direction.x;} + float GetY() const {return m_Direction.y;} + Vector2D GetDirection() const {return m_Direction;}; private: Vector2D m_Direction; }; diff --git a/src/Game.cpp b/src/Game.cpp index a52808a..3ca4aea 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -32,7 +32,7 @@ Game::Game(SDL_Window *window, SDL_Renderer *renderer) : //TODO: read game settings from config file SetFps(60); - //TODO: read keybinds from config if it exists. otherwise initialze standard and write file + //TODO: read keybinds from config if it exists. otherwise initialize standard and write file m_KeyboardCommandMap.emplace(SDL_SCANCODE_ESCAPE, new EndGameCommand(this)); m_KeyboardCommandMap.emplace(SDL_SCANCODE_W, new MoveUpCommand(m_Player1DirectionButtonStatus)); m_KeyboardCommandMap.emplace(SDL_SCANCODE_A, new MoveLeftCommand(m_Player1DirectionButtonStatus)); @@ -79,7 +79,7 @@ float Game::GetDeltaTime() frameTicks = currentTicksNS - m_TickCount; } m_TickCount = currentTicksNS; - return frameTicks / c_NSPerSecond; + return static_cast(frameTicks) / static_cast(c_NSPerSecond); } void Game::HandleMovement() @@ -136,10 +136,10 @@ void Game::HandleGamepadButton(const SDL_Event &event) void Game::HandleGamepadAxis(const SDL_Event &event) { - auto commandIterator = m_Gamepad1AxisCommandMap.find((SDL_GamepadAxis)event.gaxis.axis); + auto commandIterator = m_Gamepad1AxisCommandMap.find(static_cast(event.gaxis.axis)); if(commandIterator != m_Gamepad1AxisCommandMap.end()) { - float value = (float)event.gaxis.value / std::numeric_limits::max(); + float value = static_cast(event.gaxis.value) / std::numeric_limits::max(); commandIterator->second->Execute(value); } } @@ -179,7 +179,7 @@ void Game::SetFps(uint16_t fps) void Game::EndGame() { - SDL_Event * event = new SDL_Event(); - event->type = SDL_EVENT_QUIT; - SDL_PushEvent(event); + SDL_Event event; + event.type = SDL_EVENT_QUIT; + SDL_PushEvent(&event); } \ No newline at end of file diff --git a/src/Game.h b/src/Game.h index 3286d3f..cb88931 100644 --- a/src/Game.h +++ b/src/Game.h @@ -26,7 +26,7 @@ public: void EndGame(); private: const float c_GamepadAxisDeadzone = 0.2f; //TODO: make this a setting? - const float c_NSPerSecond = 1000000000.0f; + const uint32_t c_NSPerSecond = 1000000000; bool m_running = true; uint64_t m_TickCount = 0;