Update: Update delete component function

This commit is contained in:
Rodolfo Barcelli Jo 2026-01-19 13:53:21 +08:00
parent 4cb275434e
commit e698975a79

13
becs2.h
View file

@ -3,6 +3,7 @@
#include <stdint.h>
#include <stddef.h>
#include <string.h>
#define MAX_ENTITIES 100
#define NUM_COMPONENTS 2
@ -142,9 +143,19 @@ int32_t BECS_RemoveComponent(BECS_ECS *ecs, uint32_t entityID, uint32_t componen
return 0;
}
uint32_t lastEntityAdded = componentArray->sparseArray[componentArray->lastEntityAdded];
uint32_t lastEntityAddedIndex = componentArray->sparseArray[componentArray->lastEntityAdded];
uint32_t deletedCompIndex = componentArray->sparseArray[entityID];
uintptr_t denseArray = (uintptr_t)componentArray->denseArray;
uintptr_t lastEntityAdded = denseArray + (lastEntityAddedIndex * componentArray->unitSize);
uintptr_t deletedComp = denseArray + (lastEntityAddedIndex * componentArray->unitSize);
memcpy((void *)deletedComp, (void*)lastEntityAdded, componentArray->unitSize);
componentArray->denseArraylength--;
componentArray->sparseArray[entityID] = lastEntityAddedIndex;
return 0;
}