diff options
author | talha <sarcxd@gmail.com> | 2025-02-10 18:42:25 +0500 |
---|---|---|
committer | talha <sarcxd@gmail.com> | 2025-02-10 18:42:25 +0500 |
commit | 58b969041c5135ea067f64a7e2009a178b2461a9 (patch) | |
tree | 8958f5c58f1965fe62a5a0b5f337faf21861fc42 | |
parent | cd423cbf547b72d6360fa574664ca7bc612e3cc2 (diff) |
updated level loading logic
-rwxr-xr-x | source/main.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/source/main.cpp b/source/main.cpp index 67571df..9e5d160 100755 --- a/source/main.cpp +++ b/source/main.cpp @@ -1180,7 +1180,16 @@ int main(int argc, char* argv[]) Str256 _level_name = str256(level_names[state.level_index]); Str256 level_path = base; str_push256(&level_path, _level_name); - load_level(&state, &level_arena, level_path); + { + // setup level state + load_level(&state, &level_arena, level_path); + // put camera on player + Entity player = state.game_level.entities[state.player.index]; + renderer.cam_pos.x = player.position.x; + renderer.cam_pos.y = player.position.y; + effective_force = 0.0f; + player_velocity = Vec2{0.0f, 0.0f}; + } // gameplay camera movement stuff Vec2 cam_lt_limit = {0}; @@ -1290,8 +1299,16 @@ int main(int argc, char* argv[]) // @todo: fix this janky manual camera movement if (ev.key.keysym.sym == SDLK_F5) { - load_level(&state, &level_arena, level_path); - renderer.cam_update = true; + { + // setup level state + load_level(&state, &level_arena, level_path); + // put camera on player + Entity player = state.game_level.entities[state.player.index]; + renderer.cam_pos.x = player.position.x; + renderer.cam_pos.y = player.position.y; + effective_force = 0.0f; + player_velocity = Vec2{0.0f, 0.0f}; + } } #if CAM_MANUAL_MOVE if (ev.key.keysym.sym == SDLK_LEFT) @@ -1354,7 +1371,16 @@ int main(int argc, char* argv[]) Str256 _level_name = str256(level_names[state.level_index]); Str256 level_path = base; str_push256(&level_path, _level_name); - load_level(&state, &level_arena, level_path); + { + // setup level state + load_level(&state, &level_arena, level_path); + // put camera on player + Entity player = state.game_level.entities[state.player.index]; + renderer.cam_pos.x = player.position.x; + renderer.cam_pos.y = player.position.y; + effective_force = 0.0f; + player_velocity = Vec2{0.0f, 0.0f}; + } } // @section: input processing |