diff options
Diffstat (limited to 'src/level-main.cpp')
| -rw-r--r-- | src/level-main.cpp | 68 |
1 files changed, 50 insertions, 18 deletions
diff --git a/src/level-main.cpp b/src/level-main.cpp index 71999ce..a852f7d 100644 --- a/src/level-main.cpp +++ b/src/level-main.cpp @@ -1,6 +1,7 @@ #include "level-main.hpp" +#include "level-import.hpp" #include "pke-at-common.hpp" #include "pke-at-settings.hpp" @@ -9,6 +10,7 @@ struct pke_level_main_master { pke_level *level = nullptr; struct pke_level_main_master_ui { + pke_ui_box *root_btn_import = nullptr; pke_ui_box *ctrls = nullptr; pke_ui_box *btn_play_pause = nullptr; pke_ui_box *btn_stop = nullptr; @@ -99,6 +101,17 @@ void pke_at_level_main_recalc_ui() { box->pos_top_left.x = 0; box->pos_top_left.y = 0; + box = main_mstr.ui.root_btn_import; + box->flags |= PKE_UI_BOX_FLAG_POSITION_TYPE_STATIC; + box->color_border = glm::vec4(1,1,1,1); + box->color_background = glm::vec4(.2,.2,.2,1); + box->min_size.x = 300; + box->min_size.y = 34; + box->max_size.x = 300; + box->max_size.y = 34; + box->pos_top_left.x = Extent.width - 300; + box->pos_top_left.y = 0; + pke_ui_force_recalc(); } @@ -115,15 +128,15 @@ void pke_at_level_main_btn_play_pause_cb(void *ev_data, void *cb_data, void *em_ (void)em_data; if (!PK_HAS_FLAG(g_at.rt.flags, PKE_AT_RUNTIME_FLAG_PLAYING)) { g_at.rt.flags |= PKE_AT_RUNTIME_FLAG_PLAYING; - FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_render_handle, cstring_to_pk_cstr("Pause")); + FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_type_render, cstring_to_pk_cstr("Pause")); return; } if (!PK_HAS_FLAG(g_at.rt.flags, PKE_AT_RUNTIME_FLAG_PAUSED)) { g_at.rt.flags |= PKE_AT_RUNTIME_FLAG_PAUSED; - FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_render_handle, cstring_to_pk_cstr("Resume")); + FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_type_render, cstring_to_pk_cstr("Resume")); } else { g_at.rt.flags &= ~PKE_AT_RUNTIME_FLAG_PAUSED; - FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_render_handle, cstring_to_pk_cstr("Pause")); + FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_type_render, cstring_to_pk_cstr("Pause")); } } @@ -133,7 +146,7 @@ void pke_at_level_main_btn_stop_cb(void *ev_data, void *cb_data, void *em_data) (void)em_data; g_at.rt.flags &= ~(PKE_AT_RUNTIME_FLAG_PLAYING | PKE_AT_RUNTIME_FLAG_PAUSED); pke_at_bpm_reset(g_at.bpm.target); - FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_render_handle, cstring_to_pk_cstr("Play")); + FontType_UpdateStringRenderText(main_mstr.ui.btn_play_pause->type_data->button_text.font_type_render, cstring_to_pk_cstr("Play")); } void pke_at_level_main_btn_next_cb(void *ev_data, void *cb_data, void *em_data) { @@ -143,63 +156,82 @@ void pke_at_level_main_btn_next_cb(void *ev_data, void *cb_data, void *em_data) // TODO } +void pke_at_level_main_btn_import_cb(void *ev_data, void *cb_data, void *em_data) { + (void)ev_data; + (void)cb_data; + (void)em_data; + pkeSettings.rt.nextLevel = pke_at_level_import_create(); +} + void pke_at_level_main_init() { FontRenderSettings frs{}; pke_ui_box *ctrls = pke_ui_box_new_root(); + pke_ui_box *root_btn_import = pke_ui_box_new_root(PKE_UI_BOX_TYPE_BUTTON_TEXT); pke_level_register_root_ui_box(main_mstr.level, ctrls); + pke_level_register_root_ui_box(main_mstr.level, root_btn_import); main_mstr.ui.ctrls = ctrls; + main_mstr.ui.root_btn_import = root_btn_import; pke_ui_box *btn_prev_track = pke_ui_box_new_child(ctrls, PKE_UI_BOX_TYPE_BUTTON_TEXT); main_mstr.ui.btn_prev_track = btn_prev_track; - frs.char_scale = 12; + frs.char_scale = 16; frs.color_background = glm::vec4(0,0,0,1); frs.color_foreground = glm::vec4(1,0,0,1); frs.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_CENTER_BOTH; - FontRenderHandle fr_prev = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" < "), &frs); - btn_prev_track->type_data->button_text.font_render_handle = fr_prev; + FontTypeRender fr_prev = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" < "), &frs); + btn_prev_track->type_data->button_text.font_type_render = fr_prev; pke_component_event *prev_ev = ECS_CreateEv(btn_prev_track, pk_uuid_max); pk_ev_register_cb(prev_ev->ev_mgr_id, prev_ev->ev_id, pke_at_level_main_btn_prev_cb, nullptr); btn_prev_track->type_data->button_text.pke_event_handle = prev_ev->pke_event_handle; pke_ui_box *btn_play_pause = pke_ui_box_new_child(ctrls, PKE_UI_BOX_TYPE_BUTTON_TEXT); main_mstr.ui.btn_play_pause = btn_play_pause; - frs.char_scale = 12; + frs.char_scale = 16; frs.color_background = glm::vec4(0,0,0,1); frs.color_foreground = glm::vec4(0,1,0,1); frs.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_CENTER_BOTH; - FontRenderHandle fr_play = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" Play "), &frs); - btn_play_pause->type_data->button_text.font_render_handle = fr_play; + FontTypeRender fr_play = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" Play "), &frs); + btn_play_pause->type_data->button_text.font_type_render = fr_play; pke_component_event *play_pause_ev = ECS_CreateEv(btn_play_pause, pk_uuid_max); pk_ev_register_cb(play_pause_ev->ev_mgr_id, play_pause_ev->ev_id, pke_at_level_main_btn_play_pause_cb, nullptr); btn_play_pause->type_data->button_text.pke_event_handle = play_pause_ev->pke_event_handle; pke_ui_box *btn_stop = pke_ui_box_new_child(ctrls, PKE_UI_BOX_TYPE_BUTTON_TEXT); main_mstr.ui.btn_stop = btn_stop; - frs.char_scale = 12; + frs.char_scale = 16; frs.color_background = glm::vec4(0,0,0,1); frs.color_foreground = glm::vec4(0.5,0.5,0,1); frs.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_CENTER_BOTH; - FontRenderHandle fr_stop = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" Stop "), &frs); - btn_stop->type_data->button_text.font_render_handle = fr_stop; + FontTypeRender fr_stop = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" Stop "), &frs); + btn_stop->type_data->button_text.font_type_render = fr_stop; pke_component_event *stop_ev = ECS_CreateEv(btn_stop, pk_uuid_max); pk_ev_register_cb(stop_ev->ev_mgr_id, stop_ev->ev_id, pke_at_level_main_btn_stop_cb, nullptr); btn_stop->type_data->button_text.pke_event_handle = stop_ev->pke_event_handle; pke_ui_box *btn_next_track = pke_ui_box_new_child(ctrls, PKE_UI_BOX_TYPE_BUTTON_TEXT); main_mstr.ui.btn_next_track = btn_next_track; - frs.char_scale = 12; + frs.char_scale = 16; frs.color_background = glm::vec4(0,0,0,1); frs.color_foreground = glm::vec4(0,0,1,1); frs.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_CENTER_BOTH; - FontRenderHandle fr_next = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" > "), &frs); - btn_next_track->type_data->button_text.font_render_handle = fr_next; + FontTypeRender fr_next = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr(" > "), &frs); + btn_next_track->type_data->button_text.font_type_render = fr_next; pke_component_event *next_ev = ECS_CreateEv(btn_next_track, pk_uuid_max); pk_ev_register_cb(next_ev->ev_mgr_id, next_ev->ev_id, pke_at_level_main_btn_next_cb, nullptr); btn_next_track->type_data->button_text.pke_event_handle = next_ev->pke_event_handle; + frs.char_scale = 16; + frs.color_background = glm::vec4(0,0,0,1); + frs.color_foreground = glm::vec4(1,1,1,1); + frs.surface_area_type_flags = FONT_RENDER_SURFACE_AREA_TYPE_FLAGS_CENTER_BOTH; + pke_component_event *import_ev = ECS_CreateEv(main_mstr.ui.root_btn_import, pk_uuid_max); + main_mstr.ui.root_btn_import->type_data->button_text.pke_event_handle = import_ev->pke_event_handle; + pk_ev_register_cb(import_ev->ev_mgr_id, import_ev->ev_id, pke_at_level_main_btn_import_cb, nullptr); + main_mstr.ui.root_btn_import->type_data->button_text.font_type_render = FontType_AddStringRender(FontTypeIndex{0}, cstring_to_pk_cstr("IMPORT"), &frs); + pke_at_bpm_reset(120); - g_at.mtrnm.beep = pke_at_audio_get_or_generate_sawtooth(440.f, 0.30); - g_at.mtrnm.beep_accent = pke_at_audio_get_or_generate_sawtooth(440.f * (3/2.f), 0.30); + g_at.mtrnm.beep = g_keys[PKE_AT_KEY_INDEX_B].mtrnm_beat_asset_handle; + g_at.mtrnm.beep_accent = g_keys[PKE_AT_KEY_INDEX_B].mtrnm_down_beat_asset_handle; pke_audio_set_volume(pke_audio_source_sfx, 0.25); g_at.rt.flags = PKE_AT_RUNTIME_FLAG_NONE; |
