Remove spawn object field remembering system. Broken and unnecessary

This commit is contained in:
MysterD 2022-03-24 18:08:05 -07:00
parent cb8bd36698
commit 8bc0abb6a2
4 changed files with 0 additions and 62 deletions

View file

@ -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;

View file

@ -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;
}

View file

@ -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);

View file

@ -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);