summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-03-20 15:30:13 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-03-21 11:06:05 -0400
commite6e7f56c9bba3b2191583c4c1d0599370d1f00c7 (patch)
tree27476da693d9e75d920a698d57b74699f9f81c7a /src/game.cpp
parent9b39b4c8eab360e087423f06ecffb694a3b98b23 (diff)
pke: replace PkeArray with pk_arr_t
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 3189624..6283d5c 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1,10 +1,8 @@
#include "game.hpp"
-#include "array.hpp"
#include "camera.hpp"
#include "components.hpp"
-#include "dynamic-array.hpp"
#include "ecs.hpp"
#include "entities.hpp"
#include "event.hpp"
@@ -42,7 +40,7 @@ struct InstMapping {
InstanceHandle newInstHandle;
InstPos newInstance{};
};
-PkeArray<InstMapping> loadFileInstanceMappings{};
+pk_arr_t<InstMapping> loadFileInstanceMappings{};
const char *levelName = "demo-level";
@@ -161,8 +159,9 @@ void SerializeInstance(std::ostringstream &stream, const CompInstance &comp) {
}
}
-bool FindFirstInstanceHandle(const InstMapping &mapping, const InstanceHandle handle) {
- return mapping.origHandle == handle;
+bool FindFirstInstanceHandle(void *handle, void *mapping) {
+ InstMapping *inst_mapping = reinterpret_cast<InstMapping *>(mapping);
+ return inst_mapping->origHandle == *reinterpret_cast<InstanceHandle *>(handle);
}
void ParseCamera(PkeLevel *level, std::ifstream &stream) {
PkeCamera cam{};
@@ -173,10 +172,10 @@ void ParseCamera(PkeLevel *level, std::ifstream &stream) {
int64_t instanceIndex = -1, targetInstanceIndex = -1;
- instanceIndex = PkeArray_FindFirstIndex<InstMapping, InstanceHandle>(&loadFileInstanceMappings, FindFirstInstanceHandle, instanceHandle);
+ instanceIndex = pk_arr_find_first_index(&loadFileInstanceMappings, &instanceHandle, FindFirstInstanceHandle);
if (targetInstanceHandle != InstanceHandle_MAX) {
- targetInstanceIndex = PkeArray_FindFirstIndex<InstMapping, InstanceHandle>(&loadFileInstanceMappings, FindFirstInstanceHandle, targetInstanceHandle);
+ targetInstanceIndex = pk_arr_find_first_index(&loadFileInstanceMappings, &targetInstanceHandle, FindFirstInstanceHandle);
}
InstPos instPos;
@@ -186,7 +185,7 @@ void ParseCamera(PkeLevel *level, std::ifstream &stream) {
instPos.scale = btVector3(1.f, 1.f, 1.f);
fprintf(stdout, "[ParseCamera] Failed to find instance mapping. Is this an outdated parse?\n");
} else {
- instPos = loadFileInstanceMappings.data[instanceIndex].newInstance;
+ instPos = loadFileInstanceMappings[instanceIndex].newInstance;
}
auto &rCam = PkeCamera_Register(instPos);
rCam.type = cam.type;
@@ -195,7 +194,7 @@ void ParseCamera(PkeLevel *level, std::ifstream &stream) {
rCam.phys.targetInstHandle = targetInstanceHandle;
PkeLevel_RegisterCamera(level->levelHandle, rCam.camHandle);
if (targetInstanceIndex > -1) {
- PkeCamera_TargetInstance(rCam.camHandle, ECS_GetInstance(loadFileInstanceMappings.data[targetInstanceIndex].newInstHandle));
+ PkeCamera_TargetInstance(rCam.camHandle, ECS_GetInstance(loadFileInstanceMappings[targetInstanceIndex].newInstHandle));
}
if (rCam.isPrimary == true) {
ActiveCamera = &rCam;
@@ -297,12 +296,12 @@ void ParseInstance(Entity_Base *parentEntity, std::ifstream &stream) {
}
if (mapping.newEntHandle != EntityHandle_MAX) {
// TODO this is messy
- PkeArray<CompInstance *> instances{};
+ pk_arr_t<CompInstance *> instances{};
ECS_GetInstances(entity, instances);
assert(instances.next > 0);
- mapping.newInstHandle = instances.data[0]->instanceHandle;
+ mapping.newInstHandle = instances[0]->instanceHandle;
}
- PkeArray_Add(&loadFileInstanceMappings, mapping);
+ pk_arr_append(&loadFileInstanceMappings, &mapping);
break;
}
if (strstr(readLine, PKE_FILE_INSTANCE_ENTITY_HANDLE)) {
@@ -498,7 +497,7 @@ void Game_LoadSceneFile(PkeLevel *level, const char *sceneFilePath) {
}
f.close();
- PkeArray_SoftReset(&loadFileInstanceMappings);
+ pk_arr_clear(&loadFileInstanceMappings);
}
const int64_t consoleBufferCount = 30;
@@ -572,8 +571,7 @@ void Game_Tick(double delta) {
pke_ui_tick(delta);
FontType_Tick(delta);
- const auto pluginCount = LoadedPkePlugins.Count();
- for (long i = 0; i < pluginCount; ++i) {
+ for (long i = 0; i < LoadedPkePlugins.next; ++i) {
if (LoadedPkePlugins[i].OnTick != nullptr) {
LoadedPkePlugins[i].OnTick(delta);
}
@@ -607,8 +605,7 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) {
if (pkeSettings.args.pluginPath != nullptr) {
PkePlugin_Load(pkeSettings.args.pluginPath);
}
- const long pluginCount = LoadedPkePlugins.Count();
- for (long i = 0; i < pluginCount; ++i) {
+ for (long i = 0; i < LoadedPkePlugins.next; ++i) {
if (LoadedPkePlugins[i].OnInit != nullptr) {
LoadedPkePlugins[i].OnInit();
}
@@ -740,8 +737,7 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) {
#ifndef NDEBUG
pk_memory_debug_print();
#endif
- const auto pluginCount = LoadedPkePlugins.Count();
- for (long i = 0; i < pluginCount; ++i) {
+ for (long i = 0; i < LoadedPkePlugins.next; ++i) {
if (LoadedPkePlugins[i].OnTeardown) {
LoadedPkePlugins[i].OnTeardown();
}