MiniDevil As beautiful as a shell
waifu.c
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* waifu.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: baelgadi <baelgadi@student.42.fr> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2026/02/17 17:48:29 by zotaj-di #+# #+# */
9 /* Updated: 2026/03/04 06:40:16 by baelgadi ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #include "minishell_ui.h"
14 
21 void update_waifu_mood(t_ui *ui, int mood)
22 {
23  ui->waifu.mood = mood;
24 }
25 
33 static void render_waifu_mood(t_ui *ui, int y, int x)
34 {
35  if (ui->waifu.mood == MOOD_UPSET)
36  draw_upset(y, x);
37  else if (ui->waifu.mood == MOOD_PROUD)
38  draw_proud(y, x);
39  else
40  draw_happy(y, x);
41 }
42 
49 {
50  t_box b;
51 
52  b.y = 2;
53  b.x = ui->term.width - WAIFU_BOX_W;
54  b.h = 9;
55  b.w = WAIFU_BOX_W;
56  b.color = C_FIRE4;
57  draw_box_title(&b, "Neko-chan");
58  draw_box_sides(&b);
59  draw_box_bottom(&b);
60  render_waifu_mood(ui, b.y, b.x);
61 }
void draw_box_bottom(t_box *b)
Draw the bottom border of a box.
Definition: drawing_box.c:34
void draw_box_title(t_box *b, const char *title)
Draw the top border of a box with title in the center.
Definition: drawing_box.c:83
void draw_box_sides(t_box *b)
Draw the left and right borders of a box.
Definition: drawing_box.c:48
UI mode structures, macros & function prototypes.
#define MOOD_UPSET
Definition: minishell_ui.h:104
#define C_FIRE4
Definition: minishell_ui.h:54
#define WAIFU_BOX_W
Definition: minishell_ui.h:80
#define MOOD_PROUD
Definition: minishell_ui.h:105
Box position & style for drawing.
Definition: minishell_ui.h:115
int x
Left col.
Definition: minishell_ui.h:117
int h
Height in rows.
Definition: minishell_ui.h:118
int w
Width in cols.
Definition: minishell_ui.h:119
int y
Top row.
Definition: minishell_ui.h:116
const char * color
ANSI color str.
Definition: minishell_ui.h:120
int width
Cols.
Definition: minishell_ui.h:128
UI state.
Definition: minishell_ui.h:167
t_waifu waifu
Waifu state.
Definition: minishell_ui.h:171
t_term term
Terminal state.
Definition: minishell_ui.h:168
int mood
Current mood.
Definition: minishell_ui.h:159
static void render_waifu_mood(t_ui *ui, int y, int x)
Dispatch to correct drawing function for the current mood.
Definition: waifu.c:33
void update_waifu_mood(t_ui *ui, int mood)
Set the waifu mood.
Definition: waifu.c:21
void draw_waifu_box(t_ui *ui)
Draw the waifu panel in the right sidebar.
Definition: waifu.c:48
void draw_happy(int y, int x)
Draw happy Neko chan ASCII art.
Definition: waifu_art.c:21
void draw_upset(int y, int x)
Draw upset Neko chan ASCII art.
Definition: waifu_art.c:38
void draw_proud(int y, int x)
Draw proud Neko chan ASCII art.
Definition: waifu_art.c:55