From 8bc0abb6a2e8f00bac67847088f0a76b98529431 Mon Sep 17 00:00:00 2001 From: MysterD Date: Thu, 24 Mar 2022 18:08:05 -0700 Subject: [PATCH] Remove spawn object field remembering system. Broken and unnecessary --- src/pc/lua/smlua_cobject.c | 3 -- src/pc/lua/utils/smlua_obj_utils.c | 34 ------------------- src/pc/lua/utils/smlua_obj_utils.h | 5 --- src/pc/network/packets/packet_spawn_objects.c | 20 ----------- 4 files changed, 62 deletions(-) diff --git a/src/pc/lua/smlua_cobject.c b/src/pc/lua/smlua_cobject.c index 4b2db6ea..c1ba1294 100644 --- a/src/pc/lua/smlua_cobject.c +++ b/src/pc/lua/smlua_cobject.c @@ -487,9 +487,6 @@ static int smlua__set_field(lua_State* L) { smlua_logline(); return 0; } - if (gSpawningObject) { - spawn_object_remember_field(data); - } } void* valuePointer = NULL; diff --git a/src/pc/lua/utils/smlua_obj_utils.c b/src/pc/lua/utils/smlua_obj_utils.c index e72aa425..a4237c9b 100644 --- a/src/pc/lua/utils/smlua_obj_utils.c +++ b/src/pc/lua/utils/smlua_obj_utils.c @@ -8,35 +8,6 @@ #include "smlua_model_utils.h" #include "pc/debuglog.h" -#define MAX_SPAWN_OBJECT_FIELDS 16 -struct LuaObjectField gSpawnObjectFields[MAX_SPAWN_OBJECT_FIELDS] = { 0 }; -u8 gSpawnObjectFieldCount = 0; -bool gSpawningObject = false; - -void spawn_object_remember_field(struct LuaObjectField* field) { - // make sure it's a field that isn't normally sent in spawn object packet - if (field->valueOffset < (sizeof(s32) * 80)) { - return; - } - - // make sure it's a field that can be transmitted - if (field->valueType != LVT_F32 && field->valueType != LVT_S32 && field->valueType != LVT_U32) { - return; - } - - // check for duplicates - for (int i = 0; i < gSpawnObjectFieldCount; i++) { - if (field->valueOffset == gSpawnObjectFields[i].valueOffset) { return; } - } - - // remember field - memcpy(&gSpawnObjectFields[gSpawnObjectFieldCount], field, sizeof(struct LuaObjectField)); - gSpawnObjectFieldCount++; - if (gSpawnObjectFieldCount >= MAX_SPAWN_OBJECT_FIELDS) { - gSpawnObjectFieldCount = MAX_SPAWN_OBJECT_FIELDS - 1; - } -} - static struct Object* spawn_object_internal(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction, bool doSync) { if (doSync) { // prevent spawning objects before area is synchronized @@ -82,8 +53,6 @@ static struct Object* spawn_object_internal(enum BehaviorId behaviorId, enum Mod if (!doSync) { obj->coopFlags |= COOP_OBJ_FLAG_NON_SYNC; } if (objSetupFunction != 0) { - gSpawningObject = true; - gSpawnObjectFieldCount = 0; lua_State* L = gLuaState; lua_rawgeti(L, LUA_REGISTRYINDEX, objSetupFunction); smlua_push_object(L, LOT_OBJECT, obj); @@ -103,9 +72,6 @@ static struct Object* spawn_object_internal(enum BehaviorId behaviorId, enum Mod network_send_spawn_objects(spawn_objects, models, 1); } - gSpawningObject = false; - gSpawnObjectFieldCount = 0; - return obj; } diff --git a/src/pc/lua/utils/smlua_obj_utils.h b/src/pc/lua/utils/smlua_obj_utils.h index 8f3a77d5..06eb18a0 100644 --- a/src/pc/lua/utils/smlua_obj_utils.h +++ b/src/pc/lua/utils/smlua_obj_utils.h @@ -5,11 +5,6 @@ #include "smlua_model_utils.h" #include "game/object_list_processor.h" -extern struct LuaObjectField gSpawnObjectFields[]; -extern u8 gSpawnObjectFieldCount; -extern bool gSpawningObject; -void spawn_object_remember_field(struct LuaObjectField* field); - struct Object* spawn_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction); struct Object* spawn_non_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction); diff --git a/src/pc/network/packets/packet_spawn_objects.c b/src/pc/network/packets/packet_spawn_objects.c index 57392162..e41a0156 100644 --- a/src/pc/network/packets/packet_spawn_objects.c +++ b/src/pc/network/packets/packet_spawn_objects.c @@ -90,13 +90,6 @@ void network_send_spawn_objects_to(u8 sendToLocalIndex, struct Object* objects[] packet_write(&p, &o->header.gfx.scale[2], sizeof(f32)); packet_write(&p, &o->globalPlayerIndex, sizeof(u8)); packet_write(&p, &extendedModelId, sizeof(u16)); - packet_write(&p, &gSpawnObjectFieldCount, sizeof(u8)); - for (u8 j = 0; j < gSpawnObjectFieldCount; j++) { - struct LuaObjectField* field = &gSpawnObjectFields[j]; - u64 valueOffset = field->valueOffset; - packet_write(&p, &valueOffset, sizeof(u64)); - packet_write(&p, (&o->rawData.asU32[0] + field->valueOffset), sizeof(u32)); - } } if (sendToLocalIndex == PACKET_DESTINATION_BROADCAST) { @@ -133,7 +126,6 @@ void network_receive_spawn_objects(struct Packet* p) { packet_read(p, &scale[2], sizeof(f32)); packet_read(p, &data.globalPlayerIndex, sizeof(u8)); packet_read(p, &data.extendedModelId, sizeof(u16)); - packet_read(p, &data.extraFieldCount, sizeof(u8)); struct Object* parentObj = NULL; if (data.parentId == (u8)-1) { @@ -192,18 +184,6 @@ void network_receive_spawn_objects(struct Packet* p) { // correct the temporary parent with the object itself if (data.parentId == (u8)-1) { o->parentObj = o; } - // get extra fields - for (int j = 0; j < data.extraFieldCount; j++) { - u64 valueOffset; - u32 value; - packet_read(p, &valueOffset, sizeof(u64)); - if (valueOffset < (u64)(&o->rawData.asU32[0] - &o->rawData.asU32[0x50])) { - packet_read(p, (&o->rawData.asU32[0] + valueOffset), sizeof(u32)); - } else { - packet_read(p, &value, sizeof(u32)); - } - } - if (o->oSyncID != 0 && o->oSyncID >= RESERVED_IDS_SYNC_OBJECT_OFFSET) { if (o->oSyncID >= MAX_SYNC_OBJECTS) { LOG_ERROR("Invalid spawn object sync id: %u", o->oSyncID);