summaryrefslogtreecommitdiff
path: root/src/project.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/project.cpp')
-rw-r--r--src/project.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/project.cpp b/src/project.cpp
index 4412522..1c5572d 100644
--- a/src/project.cpp
+++ b/src/project.cpp
@@ -67,13 +67,13 @@ void Proj_SerializeEntityType(std::ofstream &stream, const EntityType &et) {
NULL_CHAR_ARR(handleStr, 19);
NULL_CHAR_ARR(modelAssetKey, AssetKeyLength + 1);
NULL_CHAR_ARR(textureAssetKey, AssetKeyLength + 1);
- snprintf(handleStr, 19, "0x%016lX", et.handle.hash);
+ snprintf(handleStr, 19, "0x%08X 0x%08X", et.handle.bucketIndex, et.handle.itemIndex);
snprintf(modelAssetKey, AssetKeyLength + 1, "%s", et.modelAssetKey);
EntityType e{};
if (modelAssetKey[0] != '\0')
stream << PKE_PROJ_FILE_ENTITY_TYPE_MODEL_ASSET_KEY << modelAssetKey << std::endl;
- if (et.entityTypeCode != e.entityTypeCode)
- stream << PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE << et.entityTypeCode << std::endl;
+ if (et.entityTypeCode.val != e.entityTypeCode.val)
+ stream << PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE << et.entityTypeCode.val << std::endl;
if (et.handle != e.handle)
stream << PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_HANDLE << handleStr << std::endl;
if (et.createInstanceCallback.name[0] != '\0') {
@@ -127,7 +127,7 @@ void Proj_ParseProjectSettings(std::ifstream &stream) {
if (strncmp(projReadLine, PKE_PROJ_FILE_PROJ_SETTINGS_DEFAULT_SCENE_NAME, strlen(PKE_PROJ_FILE_PROJ_SETTINGS_DEFAULT_SCENE_NAME)) == 0) {
uint64_t prefixLen = strlen(PKE_PROJ_FILE_PROJ_SETTINGS_DEFAULT_SCENE_NAME);
uint64_t len = strlen(projReadLine + prefixLen) + 1;
- char *val = Pke_New<char>(len);
+ char *val = pk_new<char>(len);
memset(reinterpret_cast<void *>(val), '\0', len);
memcpy(val, projReadLine + prefixLen, len);
pkeProjectSettings.defaultSceneName = val;
@@ -138,13 +138,13 @@ void Proj_ParseProjectSettings(std::ifstream &stream) {
while (stream.getline(projReadLine, projReadLineLength)) {
if (strcmp(PKE_PROJ_FILE_PROJ_SETTINGS_SCENES_END, projReadLine) == 0) {
pkeProjectSettings.sceneCount = sceneFiles.Count();
- pkeProjectSettings.scenes = Pke_New<cpkstr>(sceneFiles.Count());
+ pkeProjectSettings.scenes = pk_new<cpkstr>(sceneFiles.Count());
memcpy(reinterpret_cast<void *>(pkeProjectSettings.scenes), reinterpret_cast<void *>(sceneFiles.GetPtr()), sizeof(cpkstr) * sceneFiles.Count());
break;
}
pkeProjectSettings.sceneCount += 1;
uint64_t len = strlen(projReadLine) + 1;
- char *val = Pke_New<char>(len);
+ char *val = pk_new<char>(len);
memset(val, '\0', len);
memcpy(val, projReadLine, len - 1);
auto &str = sceneFiles.Push();
@@ -165,7 +165,7 @@ void Proj_ParseEntityType(std::ifstream &stream) {
int64_t detailCount = 0;
while (stream.getline(projReadLine, projReadLineLength)) {
if (strcmp(PKE_PROJ_FILE_OBJ_END, projReadLine) == 0) {
- EntityType *existingPtr = EntityType_FindByTypeCode(et.entityTypeCode);
+ EntityType *existingPtr = EntityType_FindByTypeCode(et.entityTypeCode.val);
if (existingPtr != nullptr) {
// TODO leaks et.EntityTypeCode
continue;
@@ -203,16 +203,19 @@ void Proj_ParseEntityType(std::ifstream &stream) {
if (strstr(projReadLine, PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE)) {
uint64_t prefixLen = strlen(PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE);
uint64_t len = strlen(projReadLine + prefixLen) + 1;
- char *val = Pke_New<char>(len);
+ char *val = pk_new<char>(len);
memset(reinterpret_cast<void *>(val), '\0', len);
memcpy(val, projReadLine + prefixLen, len);
- et.entityTypeCode = val;
+ et.entityTypeCode.val = val;
continue;
}
if (strstr(projReadLine, PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_HANDLE)) {
uint64_t prefixLen = strlen(PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_HANDLE);
- STR2NUM_ERROR result = str2num(et.handle.hash, projReadLine + prefixLen);
- assert(result == STR2NUM_ERROR::SUCCESS);
+ // 0x00000000 0x00000000
+ STR2NUM_ERROR result1 = str2num(et.handle.bucketIndex, projReadLine + prefixLen);
+ STR2NUM_ERROR result2 = str2num(et.handle.itemIndex, projReadLine + prefixLen + 11);
+ assert(result1 == STR2NUM_ERROR::SUCCESS);
+ assert(result2 == STR2NUM_ERROR::SUCCESS);
continue;
}
if (strstr(projReadLine, PKE_PROJ_FILE_ENTITY_TYPE_CREATE_INSTANCE_CALLBACK_SIGNATURE)) {
@@ -372,10 +375,10 @@ void PkeProject_Save(const char *filePath) {
}
const auto entBucketCount = EntityType_GetBucketCount();
- for (PkeHandleBucketIndex_T b = 0; b < entBucketCount; ++b) {
- PkeHandleItemIndex_T itemCount = 0;
+ for (pk_handle_bucket_index_T b = 0; b < entBucketCount; ++b) {
+ pk_handle_item_index_T itemCount = 0;
auto *entities = EntityType_GetEntityTypes(b, itemCount);
- for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) {
+ for (pk_handle_item_index_T i = 0; i < itemCount; ++i) {
if (entities[i].modelAssetKey[0] == '\0') {
continue;
}