New events and consolidated event manager procs.
This commit is contained in:
@@ -267,69 +267,4 @@ make_gameplay_scene :: proc() -> Scene {
|
||||
type = .Gameplay,
|
||||
level = init_level(),
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Unified Scene Dispatchers
|
||||
// ------------------------------------------------------------------------------
|
||||
scene_render :: proc(scene: ^Scene) {
|
||||
if level, ok := scene.level.?; ok {
|
||||
render_level(level)
|
||||
render_hud(level)
|
||||
}
|
||||
|
||||
#partial switch scene.type {
|
||||
case .Pause_Menu:
|
||||
render_pause_menu(scene^)
|
||||
case .Game_Over:
|
||||
render_game_over(scene^)
|
||||
case .Main_Menu:
|
||||
render_main_menu(scene^)
|
||||
}
|
||||
}
|
||||
|
||||
scene_update :: proc(scene: ^Scene, game: ^Game, input: Input_Event, dt: f32) {
|
||||
#partial switch scene.type {
|
||||
case .Main_Menu:
|
||||
update_main_menu(scene, input)
|
||||
|
||||
case .Pause_Menu:
|
||||
update_pause_menu(scene, input)
|
||||
|
||||
case .Gameplay:
|
||||
level, level_ok := &scene.level.?
|
||||
assert(level_ok, "scene_update: .Gameplay scene is missing a Level component")
|
||||
update_level(level, input, dt)
|
||||
|
||||
if input.pause_pressed {
|
||||
emit_event(Event{ type = .Game_Pause })
|
||||
}
|
||||
|
||||
case .Game_Over:
|
||||
update_game_over(scene, input)
|
||||
}
|
||||
|
||||
for event in GLOBAL_EVENTS {
|
||||
#partial switch event.type {
|
||||
case .Game_Start:
|
||||
game.overlay_scene = nil
|
||||
game.scene = make_gameplay_scene()
|
||||
|
||||
case .Game_Pause:
|
||||
game.overlay_scene = make_pause_overlay()
|
||||
|
||||
case .Game_Resume:
|
||||
game.overlay_scene = nil
|
||||
|
||||
case .Game_Main_Menu:
|
||||
game.overlay_scene = nil
|
||||
game.scene = make_main_menu()
|
||||
|
||||
case .Game_Over:
|
||||
game.overlay_scene = make_game_over_overlay(event.winner_is_player)
|
||||
|
||||
case .Game_Quit:
|
||||
game.should_close = true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user