]> git.lizzy.rs Git - nothing.git/blob - src/game/credits.c
Remove Lt from Credits
[nothing.git] / src / game / credits.c
1 #include "./credits.h"
2 #include "game/level/background.h"
3 #include "game/sprite_font.h"
4 #include "system/lt.h"
5 #include "system/nth_alloc.h"
6 #include "system/stacktrace.h"
7 #include "system/str.h"
8 #include "system/log.h"
9 #include "ui/wiggly_text.h"
10 #include "config.h"
11
12 #define TITLE_MARGIN_TOP 100.0f
13
14 Credits create_credits(void)
15 {
16     Credits result;
17     result.background = create_background(hexstr("250741"));
18     result.camera_position = vec(0.0f, 0.0f);
19     result.wiggly_text = (WigglyText) {
20         .text = "Twitch Subs/Contributors",
21         .scale = {8.0f, 8.0f},
22         .color = COLOR_WHITE,
23     };
24     return result;
25 }
26
27 int credits_render(const Credits *credits, const Camera *camera)
28 {
29     trace_assert(credits);
30     trace_assert(camera);
31
32     const Rect viewport = camera_view_port_screen(camera);
33
34     if (background_render(&credits->background, camera) < 0) {
35         return -1;
36     }
37
38     const Vec2f title_size = wiggly_text_size(&credits->wiggly_text);
39
40     wiggly_text_render(
41         &credits->wiggly_text,
42         camera,
43         vec(viewport.w * 0.5f - title_size.x * 0.5f, TITLE_MARGIN_TOP));
44     // TODO(#1150): Credits page don't display list of subs and contributors
45     return 0;
46 }
47
48 int credits_update(Credits *credits, Camera *camera, float dt)
49 {
50     trace_assert(credits);
51     trace_assert(camera);
52
53     vec_add(&credits->camera_position,
54             vec(0.0f, 20.0f * dt));
55     camera_center_at(camera, credits->camera_position);
56
57     if (wiggly_text_update(&credits->wiggly_text, dt) < 0) {
58         return -1;
59     }
60
61     return 0;
62 }