blob: 8ca4cfe0041e732f2994a9a8b4d132bc55fac5dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/*********************************/
/* YABS ( // */
/* yabs_CORE ( )/ */
/* by salade )(/ */
/* ________________ ( /) */
/* ()__)____________))))) :^} */
/*********************************/
#ifndef YABS_CORE_H
#define YABS_CORE_H
#include "raylib.h"
#include "raymath.h"
#include <vector>
#include "yabs_structs.h"
#ifdef __FreeBSD__
# define YABS_SCREENWIDTH 1280
# define YABS_SCREENHEIGHT 720
#else
# define YABS_SCREENWIDTH 1600
# define YABS_SCREENHEIGHT 900
#endif
#define YABS_TITLE "YABS"
#define YABS_DOUBLEPI 6.28318530717958647692f
// half sizes are reduced by 5 pixels to be centered
#define YABS_HALFSWIDTH (YABS_SCREENWIDTH/2) - 15
#define YABS_HALFSHEIGHT (YABS_SCREENHEIGHT/2) - 10
// movement sensibility: lower is faster
#define YABS_PLAYER_MOVEMENT_SENSITIVITY 3
#define YABS_CAMERA_MOUSE_MOVE_SENSITIVITY 0.0005f
#define YABS_GROUND_LEVEL 1.0f
#define YABS_CROSSHAIR_TEX "meta/media/img/crosshair.png"
#define ENEMIES_N 10
#define YABS_COOLPURPLE \
CLITERAL(Color) { 153, 0, 0, 255 } // cool Purple
namespace yabs {
namespace core {
typedef struct Scene3D {
Camera camera;
Vector3 movement;
Vector3 rotation;
Vector2 lastMousePos;
} Scene3D;
typedef enum gameState {
TITLE = 0,
PICK,
DEATH,
GAMEPLAY,
NEXT,
ENDING
} gameState;
// core functions and structs
int reset_camera(Scene3D& scene_3d);
int render(RenderObjs & robjs);
int tick(TickObjs & tobjs, Scene3D & scene_3d);
void init_game();
} // namespace core
} // namespace yabs
#endif /* YABS_CORE_H */
|