From fbcfc338b2040c5c8d923eaab5f3a48b9c3d1f53 Mon Sep 17 00:00:00 2001 From: nemo Date: Wed, 23 Jul 2025 21:42:19 +0200 Subject: [PATCH] wlh jsplu --- histoire.h | 19 ++++++++++++++----- main.c | 41 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/histoire.h b/histoire.h index 251b81d..8fe1d61 100644 --- a/histoire.h +++ b/histoire.h @@ -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 = { diff --git a/main.c b/main.c index f51f0a7..e9786ee 100644 --- a/main.c +++ b/main.c @@ -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(); }