LibGame v0.4.0
The LG Game Engine - Copyright (C) 2024-2026 ETMSoftware
Loading...
Searching...
No Matches
lg_goodies.h
1/*
2 * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2026
3 * All rights reserved
4 */
5
6#ifndef LG_GOODIES_H
7#define LG_GOODIES_H
8
9/* LG_path */
10#define LG_PATH_MAX_LEN (512 - 1 - 1) /* 2nd "-1" to keep LG_Path size at 512 */
11
12#define N_SIMULTANEOUS_CALLS2 1024
13#define N_SIMULTANEOUS_CALLS_MASK2 (1024 - 1)
14
15typedef int8_t lg_path_type;
16
17enum {IN_ASSETS, IN_APP_WR_DIR, FULL, NAME_ONLY, UNSPECIFIED};
18
19/* sizeof(LG_Path) = 512 bytes */
20typedef struct __attribute__((packed, aligned(4))) {
21 char s[LG_PATH_MAX_LEN + 1];
22 lg_path_type t;
23} LG_Path;
24
25#define STACK_N_MAX_ELEMENTS 1024
26
27/* Dynamic stacks */
28typedef struct {
29 int *v;
30 int max_n;
31 int i;
33
34typedef struct {
35 float *v;
36 int max_n;
37 int i;
39
40char *l_str_new2(int, ...);
41
42char *l_str_cat2(char *, int, ...);
43
44char *l_str_new3(const char *, ...);
45
46char *l_str_cat3(char *, const char *, ...);
47
48LG_Path lg_path(const char *, lg_path_type);
49
50const char *lg_path_resolve(const LG_Path *);
51
53
55
56lg_path_type lg_path_get_type_from_fullpath_string(const char *);
57
58zboolean lg_path_string_resolve(char *);
59
60const char *lg_path_type_get_string(lg_path_type);
61
62zboolean lg_path_are_equal(const LG_Path *, const LG_Path *);
63
64void lg_path_info(LG_Path *);
65
67
69
71
72zboolean push_i(LG_Stack_i *, int);
73
74zboolean pop_i(LG_Stack_i *, int *);
75
77
79
80zboolean push_f(LG_Stack_f *, float);
81
82zboolean pop_f(LG_Stack_f *, float *);
83
85
86#endif /* LG_GOODIES_H */
zboolean lg_path_are_equal(const LG_Path *path1, const LG_Path *path2)
Definition lg_goodies.c:509
zboolean pop_i(LG_Stack_i *s, int *v)
Definition lg_goodies.c:614
zboolean lg_path_string_resolve(char *path)
Definition lg_goodies.c:338
void lg_path_info(LG_Path *path)
Definition lg_goodies.c:519
const char * lg_path_resolve(const LG_Path *path)
Definition lg_goodies.c:183
const char * lg_path_type_get_string(lg_path_type type)
Definition lg_goodies.c:490
LG_Stack_i * lg_stack_i_new(int max_n)
Definition lg_goodies.c:553
lg_path_type lg_path_get_type_from_fullpath_string(const char *full_path)
Definition lg_goodies.c:267
LG_Path lg_path_in_assets_from_fullpath_string(const char *full_path)
Definition lg_goodies.c:233
void lg_stack_show_full_empty_errors(zboolean show_errors)
Definition lg_goodies.c:713
zboolean pop_f(LG_Stack_f *s, float *v)
Definition lg_goodies.c:694
zboolean push_f(LG_Stack_f *s, float v)
Definition lg_goodies.c:673
void lg_stack_f_free(LG_Stack_f *s)
Definition lg_goodies.c:660
zboolean push_i(LG_Stack_i *s, int v)
Definition lg_goodies.c:593
LG_Stack_f * lg_stack_f_new(int max_n)
Definition lg_goodies.c:634
LG_Path lg_path(const char *s, lg_path_type t)
Definition lg_goodies.c:149
void lg_stack_i_free(LG_Stack_i *s)
Definition lg_goodies.c:580
char * l_str_new3(const char *format,...)
Definition lg_goodies.c:71
void lg_resolved_path0_free_buffer()
Definition lg_goodies.c:536
char * l_str_cat2(char *str, int n,...)
Definition lg_goodies.c:47
char * l_str_cat3(char *str, const char *format,...)
Definition lg_goodies.c:99
LG_Path lg_path_in_wrdir_from_fullpath_string(const char *full_path)
Definition lg_goodies.c:250
char * l_str_new2(int n,...)
Definition lg_goodies.c:21
Definition lg_goodies.h:20
Definition lg_goodies.h:34
Definition lg_goodies.h:28