changed deltaTime to double

This commit is contained in:
Ethan Adams 2025-01-28 18:52:54 -05:00
parent 868ec3eb56
commit b11a99b0d4
21 changed files with 86 additions and 23 deletions

36
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/out/build/x64-debug/YuppleMayham/YuppleMayham.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/out/build/x64-debug/YuppleMayham/",
"environment": [],
"console": "externalTerminal"
},
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/YuppleMayham.exe",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
]
}

28
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,28 @@
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/nologo",
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}

View file

@ -47,7 +47,7 @@ public:
const std::shared_ptr<Shader> getShader() const { return shader; } const std::shared_ptr<Shader> getShader() const { return shader; }
// TODO: right now there is no default behavior, but eventually the Entity class will be expanded to handle physics // TODO: right now there is no default behavior, but eventually the Entity class will be expanded to handle physics
virtual void update(float deltaTime) = 0; virtual void update(double deltaTime) = 0;
virtual void render(const std::shared_ptr<Camera>& camera) = 0; virtual void render(const std::shared_ptr<Camera>& camera) = 0;
protected: protected:

View file

@ -27,7 +27,7 @@ public:
void handleInput(SDL_Event& e); void handleInput(SDL_Event& e);
void update(float deltaTime); void update(double deltaTime);
void render(); void render();
const unsigned getGameState() const { return game_state; } const unsigned getGameState() const { return game_state; }

View file

@ -25,7 +25,7 @@ public:
void addComponent(std::shared_ptr<Component> component); void addComponent(std::shared_ptr<Component> component);
void pickupWeapon(std::shared_ptr<Weapon> weapon); void pickupWeapon(std::shared_ptr<Weapon> weapon);
void hookEventManager(std::shared_ptr<EventManager> eventManager); void hookEventManager(std::shared_ptr<EventManager> eventManager);
void update(float deltaTime) override; void update(double deltaTime) override;
void render(const std::shared_ptr<Camera>& camera) override; void render(const std::shared_ptr<Camera>& camera) override;
const std::optional<std::shared_ptr<Weapon>> getHeldWeapon() const; const std::optional<std::shared_ptr<Weapon>> getHeldWeapon() const;

View file

@ -26,7 +26,7 @@ class Scene
public: public:
Scene(SceneType type, std::shared_ptr<ResourceManager> resources); Scene(SceneType type, std::shared_ptr<ResourceManager> resources);
void update(float deltaTime); void update(double deltaTime);
void render(); void render();
std::shared_ptr<GameActor> getPlayer() const; std::shared_ptr<GameActor> getPlayer() const;

View file

@ -35,7 +35,7 @@ public:
void addComponent(std::shared_ptr<Component> component); void addComponent(std::shared_ptr<Component> component);
void update(float deltaTime) override; void update(double deltaTime) override;
void render(const std::shared_ptr<Camera>& camera) override; void render(const std::shared_ptr<Camera>& camera) override;
float getBulletDrop() const { return bulletDrop; } float getBulletDrop() const { return bulletDrop; }

View file

@ -25,7 +25,7 @@ public:
const std::shared_ptr<Shader>& shader, const std::shared_ptr<Shader>& shader,
const std::shared_ptr<Component>& sprite); const std::shared_ptr<Component>& sprite);
void update(float deltaTime); void update(double deltaTime);
void render(const std::shared_ptr<Camera>& camera); void render(const std::shared_ptr<Camera>& camera);
void hookEventManager(const std::shared_ptr<EventManager>& eventManager); void hookEventManager(const std::shared_ptr<EventManager>& eventManager);

View file

@ -39,7 +39,7 @@ public:
void hookEventManager(const std::shared_ptr<EventManager>& eventManager); void hookEventManager(const std::shared_ptr<EventManager>& eventManager);
void shoot(); void shoot();
void reload(); void reload();
void update(float deltaTime); void update(double deltaTime);
void render(const std::shared_ptr<Camera>& camera); void render(const std::shared_ptr<Camera>& camera);
struct BulletData { struct BulletData {

View file

@ -23,11 +23,6 @@ private:
return result.valid(); return result.valid();
} }
void registerGlobalUserTypes(); void registerGlobalUserTypes();
void performIncrementalGC();
std::chrono::high_resolution_clock::time_point lastGCTime = std::chrono::high_resolution_clock::now();
std::chrono::milliseconds gcInterval = std::chrono::milliseconds(16);
const int gcStepSize = 500;
}; };
class AIScript : public Script { class AIScript : public Script {

View file

@ -23,8 +23,6 @@ void AI::attachBehaviourScript(const std::shared_ptr<AIScript>& behaviour)
patrolFunc = this->behaviour->lua["patrol"]; patrolFunc = this->behaviour->lua["patrol"];
if (this->behaviour->lua["alert"].valid()) if (this->behaviour->lua["alert"].valid())
alertFunc = this->behaviour->lua["alert"]; alertFunc = this->behaviour->lua["alert"];
this->behaviour->lua.set("actor", actor);
this->behaviour->lua.set("target", target);
} }
void AI::update() void AI::update()

View file

@ -38,7 +38,7 @@ void Entity::addPhysicsComponent(const std::shared_ptr<PhysicsComponent>& physic
this->physics = physics; this->physics = physics;
} }
void Entity::update(float deltaTime) void Entity::update(double deltaTime)
{ {
if (physics && physics->rigidBody.velocity != glm::vec3(0.0f)) if (physics && physics->rigidBody.velocity != glm::vec3(0.0f))
{ {

View file

@ -81,7 +81,7 @@ void Game::handleInput(SDL_Event& e)
inputHandler->handleInput(); inputHandler->handleInput();
} }
void Game::update(float deltaTime) void Game::update(double deltaTime)
{ {
if (currentScene) if (currentScene)
currentScene->update(deltaTime); currentScene->update(deltaTime);

View file

@ -47,7 +47,7 @@ void GameActor::setRotation(const float& rotation)
updateModelMatrix(); updateModelMatrix();
} }
void GameActor::update(float deltaTime) void GameActor::update(double deltaTime)
{ {
Entity::update(deltaTime); Entity::update(deltaTime);

View file

@ -123,7 +123,7 @@ std::shared_ptr<GameActor> Scene::getPlayer() const
return (!player) ? nullptr : player; return (!player) ? nullptr : player;
} }
void Scene::update(float deltaTime) void Scene::update(double deltaTime)
{ {
for (const auto& [id, e] : entities) for (const auto& [id, e] : entities)
{ {

View file

@ -9,7 +9,7 @@ void Bullet::addComponent(std::shared_ptr<Component> component)
components.push_back(component); components.push_back(component);
} }
void Bullet::update(float deltaTime) void Bullet::update(double deltaTime)
{ {
Entity::update(deltaTime); Entity::update(deltaTime);

View file

@ -39,7 +39,7 @@ void BulletManager::addBullet(const unsigned int owner, const glm::vec3& fireFro
bullets.emplace_back(bullet); bullets.emplace_back(bullet);
} }
void BulletManager::update(float deltaTime) void BulletManager::update(double deltaTime)
{ {
for (auto& bullet : bullets) for (auto& bullet : bullets)
{ {

View file

@ -148,7 +148,7 @@ void Weapon::onHitCallback(std::shared_ptr<GameActor> target, std::shared_ptr<Ph
} }
} }
void Weapon::update(float deltaTime) void Weapon::update(double deltaTime)
{ {
Entity::update(deltaTime); Entity::update(deltaTime);
if (wielded) if (wielded)

View file

@ -43,8 +43,8 @@ int main(int argc, char* args[])
while (game->getGameState() & GAME_RUNNING) while (game->getGameState() & GAME_RUNNING)
{ {
Uint64 curCounter = SDL_GetPerformanceCounter(); Uint64 curCounter = SDL_GetPerformanceCounter();
float deltaTime = ((curCounter - lastCounter) / freq); double deltaTime = ((curCounter - lastCounter) / freq);
deltaTime = (deltaTime < 1.f) ? deltaTime : 1.f; deltaTime = (deltaTime < 1.0) ? deltaTime : 1.0;
SDL_PollEvent(&e); SDL_PollEvent(&e);
if (e.type == SDL_QUIT) if (e.type == SDL_QUIT)
game->quit(); game->quit();

View file

@ -1,4 +1,5 @@
#include "utility/ftfont.h" #include "utility/ftfont.h"
#include "utility/logger.h"
#include <glad/glad.h> #include <glad/glad.h>
#include <glm/gtc/type_ptr.hpp> #include <glm/gtc/type_ptr.hpp>
@ -97,6 +98,9 @@ bool Text::loadFonts(const std::string& font_folder)
} }
// load every font in the fonts folder then create corresponding textures for each character of each font. // load every font in the fonts folder then create corresponding textures for each character of each font.
std::filesystem::path folder(font_folder); std::filesystem::path folder(font_folder);
if (!std::filesystem::exists(folder) || !std::filesystem::is_directory(font_folder))
ERROR_LOG("{} folder does not exist!", font_folder);
for (auto& file : std::filesystem::directory_iterator(folder)) for (auto& file : std::filesystem::directory_iterator(folder))
{ {
if (!file.path().has_extension() || !file.path().has_filename() || !file.exists() || file.is_directory()) if (!file.path().has_extension() || !file.path().has_filename() || !file.exists() || file.is_directory())

View file

@ -9,6 +9,8 @@
bool XMLLoader::loadScenes(const char* sceneFolder) bool XMLLoader::loadScenes(const char* sceneFolder)
{ {
std::filesystem::path folder(sceneFolder); std::filesystem::path folder(sceneFolder);
if (!std::filesystem::exists(folder) || !std::filesystem::is_directory(folder))
ERROR_LOG("'{}' folder not found!", sceneFolder);
for (auto& file : std::filesystem::directory_iterator(folder)) for (auto& file : std::filesystem::directory_iterator(folder))
{ {
if (!file.path().has_extension() || !file.path().has_filename() || !file.exists() || file.is_directory()) if (!file.path().has_extension() || !file.path().has_filename() || !file.exists() || file.is_directory())