summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp2
-rw-r--r--src/plugin-types.hpp20
2 files changed, 19 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 8c2bc2a..bca8bb2 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -219,12 +219,14 @@ void ParseCamera(PkeLevel *level, std::ifstream &stream) {
uint64_t prefixLen = strlen(PKE_FILE_CAMERA_INSTANCE_HANDLE);
STR2NUM_ERROR result = str2num(instanceHandle.hash, readLine + prefixLen);
assert(result == STR2NUM_ERROR::SUCCESS);
+ // TODO add to global list
continue;
}
if (strstr(readLine, PKE_FILE_CAMERA_TARGET_INSTANCE_HANDLE)) {
uint64_t prefixLen = strlen(PKE_FILE_CAMERA_TARGET_INSTANCE_HANDLE);
STR2NUM_ERROR result = str2num(targetInstanceHandle.hash, readLine + prefixLen);
assert(result == STR2NUM_ERROR::SUCCESS);
+ // TODO find and set
continue;
}
if (strncmp(readLine, PKE_FILE_CAMERA_IS_PRIMARY, strlen(PKE_FILE_CAMERA_IS_PRIMARY)) == 0) {
diff --git a/src/plugin-types.hpp b/src/plugin-types.hpp
index 22f9707..10139b0 100644
--- a/src/plugin-types.hpp
+++ b/src/plugin-types.hpp
@@ -2,6 +2,21 @@
#define PKE_PLUGIN_TYPES_HPP
#include <cstdint>
+#include <fstream>
+
+constexpr int64_t CallbackSignatureLength = 16;
+using CallbackSignature = char[CallbackSignatureLength];
+
+typedef void (*ParseDelegate)(std::ifstream *stream);
+typedef void (*SerializeDelegate)(std::ifstream *stream);
+typedef void (*CollisionDelegate)(const void *entHandleLeft, const void *entHandleRight);
+
+struct PkeEntityTypeInterface {
+ void (*OnParse)(std::ifstream *stream) = nullptr;
+ void (*OnSerialize)(std::ostringstream *stream, void *obj) = nullptr;
+ void (*OnEntityTypeCollision)(const void *entHandleLeft, const void *entHandleRight) = nullptr;
+ void (*OnEntityInstanceCollision)(const void *entHandleLeft, const void *entHandleRight) = nullptr;
+};
struct PKEPluginInterface {
// for internal use only
@@ -10,11 +25,10 @@ struct PKEPluginInterface {
void (*OnTick)(double delta) = nullptr;
void (*OnTeardown)() = nullptr;
void (*OnImGuiRender)() = nullptr;
+ void *PkeEntityInterface = nullptr;
+ std::size_t PkeEntityInterfaceCount = 0;
};
-constexpr int64_t CallbackSignatureLength = 16;
-using CallbackSignature = char[CallbackSignatureLength];
-
struct PkeCallback {
// the 16 char signature(name) of a function
CallbackSignature name = {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'};