vn/code/vn_scene_view.h

78 lines
1.5 KiB
C
Raw Normal View History

2023-08-22 03:19:51 +00:00
/* 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;
2023-08-22 03:19:51 +00:00
r32 CharsRevealed;
};
struct scene_view_character_texture_info
{
render_handle Texture;
r32 Scale;
};
2023-10-04 17:21:15 +00:00
struct scene_view_character_data
{
string Name;
scene_view_character_texture_info Info;
2023-10-04 17:21:15 +00:00
b32 Active;
2023-10-04 17:21:15 +00:00
r32 ActiveT;
b32 Talking;
2023-10-04 17:21:15 +00:00
r32 TalkingT;
2023-10-04 17:21:15 +00:00
r32 PctP;
};
2023-08-22 03:19:51 +00:00
struct scene_view
{
arena *SceneArena;
2023-10-04 17:21:15 +00:00
//- sixten: state
2023-08-22 03:19:51 +00:00
scene_runtime Runtime;
textbox Textbox;
2023-10-04 17:21:15 +00:00
u8 LastTalkingCharacterBuffer[32];
string LastTalkingCharacter;
2023-10-04 17:21:15 +00:00
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;
2023-10-04 17:21:15 +00:00
render_handle TestHappy;
render_handle TestNormal;
render_handle MonikaLeaning;
2023-10-04 17:21:15 +00:00
2023-08-22 03:19:51 +00:00
};
static void SV_SetState(scene_view *View);
static scene_view *SV_GetState();
2023-10-04 17:21:15 +00:00
static void SV_NewFrame(scene_view *View, platform_event_list *EventList, r32 dtForFrame);
static void SV_Reset(void);
2023-08-22 03:19:51 +00:00
static void SV_SetCurrentSource(compiled_scene *Compiled);
static void SV_Init(scene_view *View, arena *TextboxArena);
static b32 SV_CurrentlyInProc(void);
2023-08-22 03:19:51 +00:00
static void SV_BuildSceneView(vn_input *Input);
static void SV_Update(arena *FrameArena);
2023-08-22 03:19:51 +00:00
#endif //VN_SCENE_VIEW_H