feat: save world written
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
#include "../player.h"
|
||||
#include "../aabb.h"
|
||||
#include <SDL3/SDL_events.h>
|
||||
#include <SDL3/SDL_keycode.h>
|
||||
#include <SDL3/SDL_oldnames.h>
|
||||
|
||||
void UpdateWorld(F32 delta, World *world)
|
||||
{
|
||||
@@ -30,6 +32,9 @@ void UpdateNPCs(F32 delta, World *world)
|
||||
void ProcessEvents(SDL_Event *event, World *world)
|
||||
{
|
||||
PlayerInput(event, &world->player);
|
||||
if(event->type == SDL_EVENT_KEY_DOWN && event->key.key == SDLK_F5){
|
||||
SaveWorld(world->arena, world);
|
||||
}
|
||||
}
|
||||
|
||||
void RenderWorld(World *world, D_Context *draw) {
|
||||
@@ -69,3 +74,16 @@ void G_WorldDraw(G_State *game, World *world) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SaveWorld(M_Arena *arena, World *world) {
|
||||
printf("Saving world\n");
|
||||
World *saveWorld = M_ArenaPush(arena, World);
|
||||
NavMesh *saveNavMesh = M_ArenaPush(arena, NavMesh);
|
||||
M_CopySize(saveWorld, world, sizeof(World));
|
||||
M_CopySize(saveNavMesh, world->navMesh, sizeof(NavMesh));
|
||||
OS_Handle file =FS_FileOpen(S("world.sgdat"), FS_ACCESS_WRITE);
|
||||
FS_FileWrite(file, saveWorld, sizeof(World)+sizeof(NavMesh), 0);
|
||||
}
|
||||
|
||||
World *load(Str8 levelData) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user