wlh jsplu

This commit is contained in:
nemo 2025-07-23 21:42:19 +02:00
parent 07476e1a9c
commit fbcfc338b2
2 changed files with 53 additions and 7 deletions

View File

@ -16,11 +16,11 @@ typedef enum PersonneId {
#define MAX_PERSONNE 5
int personne_idx = 0;
Personne personnes[MAX_PERSONNE] = {
[0] = { .name = "Viola" },
[1] = { .name = "Archie" },
[2] = { .name = "Minuit" },
[3] = { .name = "Phillip" },
[4] = { .name = "Ed" },
[VIOLA] = { .name = "Viola" },
[ARCHIE] = { .name = "Archie" },
[MINUIT] = { .name = "Minuit" },
[PHILLIP] = { .name = "Phillip" },
[ED] = { .name = "Ed" },
};
void init_personnes(void)
@ -54,6 +54,15 @@ typedef struct Histoire {
Branche branches[NB_BRANCHE];
} Histoire;
typedef struct Historique {
int idx_branche;
int branche[NB_BRANCHE];
int idx_conv;
int conversation[NB_CONVERSATION_MAX];
} Historique;
Historique historique = {0};
Histoire histoire = {
.nb_branche = 3,
.branches = {

41
main.c
View File

@ -10,6 +10,8 @@ int horloge_min = 9;
#include "histoire.h"
float timer = 0.0f;
#define CHOIX_PAD 2
#define CHOIX_COLOR WHITE
#define CHOIX_COLOR_HOVER LIGHTGRAY
@ -187,15 +189,20 @@ int main()
Texture phone_battery_tex = LoadTexture("data/phone-battery.png");
Texture left_arrow_tex = LoadTexture("data/left-arrow.png");
init_personnes();
historique.idx_branche = 1;
historique.branche[0] = 0;
historique.conversation[0] = 0;
while (!WindowShouldClose()) {
if (IsWindowResized()) {
window.x = GetScreenWidth();
window.y = GetScreenHeight();
}
timer += GetFrameTime();
Rectangle phone_box = {
window.x/2-window.y/3, 0,
window.y/3*2, window.y,
@ -226,6 +233,31 @@ int main()
}, 0, phone_battery_scale, WHITE
);
Branche branche = histoire.branches[historique.branche[historique.idx_branche-1]];
Conversation conv = branche.conversations[historique.conversation[historique.idx_conv-1]];
personnes[branche.personne].message = conv.question;
if (!personnes[branche.personne].active && timer > conv.read_time) {
personnes[branche.personne].active = 1;
}
if (IsKeyPressed(KEY_SPACE)) {
printf("idx branche = %d\n", historique.idx_branche);
printf("idx conv = %d\n", historique.idx_conv);
historique.idx_conv++;
historique.conversation[historique.idx_conv] = 0; // idx de la reponse
if (historique.idx_conv >= branche.nb_conversation) {
historique.idx_conv = 0;
historique.idx_branche++;
historique.branche[historique.idx_branche] =
historique.branche[historique.idx_branche-1]+1;
if (historique.idx_branche > histoire.nb_branche) {
printf("fin du monde\n");
}
}
}
static int choix_active = 0;
if (!choix_active) {
float size = header_box.height*0.42;
@ -321,9 +353,14 @@ int main()
case 3: r = draw_4_choix(choix_box, "choix 1", "choix 2", "choix 3", "choix 4"); break;
}
if (r) printf("%d\n", r);
if (timer > conv.read_time) {
DrawText(conv.question, 500, 500, 50, ORANGE);
}
}
DrawFPS(0,0);
DrawFPS(window.x - 100, 10);
DrawText(TextFormat("timer = %.01f", timer), 5, 25, 25, WHITE);
}
EndDrawing();
}