mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-10-19 03:32:41 +00:00
Remove spawn object field remembering system. Broken and unnecessary
This commit is contained in:
parent
cb8bd36698
commit
8bc0abb6a2
4 changed files with 0 additions and 62 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue