// Copyright (c) 2023 Alex Diener. All rights reserved.

#ifndef __RoomSavedState_H__
#define __RoomSavedState_H__

#include "utilities/ChunkArray.h"
#include <stdbool.h>

typedef struct RoomSavedState {
	ChunkArray entityStates;
} RoomSavedState;

RoomSavedState * RoomSavedState_create(void);
RoomSavedState * RoomSavedState_copy(RoomSavedState * save);
void RoomSavedState_dispose(RoomSavedState * save);

void RoomSavedState_encodeEntity(RoomSavedState * save, GameEntity * entity);
unsigned int RoomSavedState_getEntityCount(RoomSavedState * save);
GameEntity * RoomSavedState_decodeEntityAtIndex(RoomSavedState * save, unsigned int entityIndex, struct RoomState * roomState);

#endif
