first commit
This commit is contained in:
57
src/game/ecs/component/visual/component_dialogue.h
Normal file
57
src/game/ecs/component/visual/component_dialogue.h
Normal file
@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
|
||||
#include "component_text.h"
|
||||
|
||||
#include "../../entity/utility/entity_timer.h"
|
||||
|
||||
static const u32 COMPONENT_DIALOGUE_SPEED_DEFAULT = 3;
|
||||
static const u32 COMPONENT_DIALOGUE_SKIP_TIMER_VALUE = 1;
|
||||
|
||||
typedef struct ComponentDialogue
|
||||
{
|
||||
Component component;
|
||||
char string[COMPONENT_TEXT_STRING_MAX];
|
||||
u32 speed;
|
||||
u32 index;
|
||||
u32 length;
|
||||
bool isFinished;
|
||||
EntityID timerID;
|
||||
EntityID skipTimerID;
|
||||
} ComponentDialogue;
|
||||
|
||||
void component_dialogue_add(ComponentDialogue* self, ECS* ecs);
|
||||
void component_dialogue_delete(ComponentDialogue* self, ECS* ecs);
|
||||
void component_dialogue_tick(ComponentDialogue* self, ECS* ecs);
|
||||
void component_dialogue_string_set(ComponentDialogue* self, ECS* ecs);
|
||||
|
||||
void
|
||||
component_dialogue_init
|
||||
(
|
||||
ComponentDialogue* self,
|
||||
ECS* ecs,
|
||||
const char* string,
|
||||
u32 speed
|
||||
);
|
||||
|
||||
#define COMPONENT_DIALOGUE_DEPENDENCY_COUNT 1
|
||||
static const ComponentType COMPONENT_DIALOGUE_DEPENDENCIES[COMPONENT_DIALOGUE_DEPENDENCY_COUNT] =
|
||||
{
|
||||
COMPONENT_TEXT
|
||||
};
|
||||
|
||||
static const ComponentInfo COMPONENT_DIALOGUE_INFO =
|
||||
{
|
||||
.system =
|
||||
{
|
||||
.functions =
|
||||
{
|
||||
(ECSFunction)component_dialogue_add,
|
||||
(ECSFunction)component_dialogue_delete,
|
||||
(ECSFunction)component_dialogue_tick,
|
||||
NULL,
|
||||
NULL
|
||||
}
|
||||
},
|
||||
.type = COMPONENT_DIALOGUE,
|
||||
.size = sizeof(ComponentDialogue)
|
||||
};
|
Reference in New Issue
Block a user