/* date = August 14th 2023 5:00 pm */ #ifndef VN_SCENE_VIEW_H #define VN_SCENE_VIEW_H struct textbox { string String; s64 Capacity; r32 CharsRevealedT; r32 CharsRevealed; }; struct scene_view_character_texture_info { render_handle Texture; r32 Scale; }; struct scene_view_character_data { string Name; scene_view_character_texture_info Info; b32 Active; r32 ActiveT; b32 Talking; r32 TalkingT; r32 PctP; }; struct scene_view { arena *SceneArena; //- sixten: state scene_runtime Runtime; textbox Textbox; u8 LastTalkingCharacterBuffer[32]; string LastTalkingCharacter; b32 CharacterIsTalking; r32 CharacterIsTalkingT; s32 OnscreenCharacterCount; scene_view_character_data OnscreenCharacters[16]; //- sixten: input per frame platform_event_list *EventList; r32 dtForFrame; //- sixten: temporary texture hub render_handle BackgroundTexture; render_handle TestHappy; render_handle TestNormal; render_handle MonikaLeaning; }; static void SV_SetState(scene_view *View); static scene_view *SV_GetState(); static void SV_NewFrame(scene_view *View, platform_event_list *EventList, r32 dtForFrame); static void SV_Reset(void); static void SV_SetCurrentSource(compiled_scene *Compiled); static void SV_Init(scene_view *View, arena *TextboxArena); static b32 SV_CurrentlyInProc(void); static void SV_BuildSceneView(vn_input *Input); static void SV_Update(arena *FrameArena); #endif //VN_SCENE_VIEW_H