treasure can be picked up
This commit is contained in:
parent
89583cb8e8
commit
c20a056263
11
cub3d.h
11
cub3d.h
@ -6,7 +6,7 @@
|
|||||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2023/10/26 10:46:35 by houtworm #+# #+# */
|
/* Created: 2023/10/26 10:46:35 by houtworm #+# #+# */
|
||||||
/* Updated: 2023/11/04 03:13:42 by houtworm ######## odam.nl */
|
/* Updated: 2023/11/04 04:36:12 by houtworm ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -34,6 +34,8 @@ typedef struct s_varlist
|
|||||||
mlx_t *mlx;
|
mlx_t *mlx;
|
||||||
mlx_image_t *img;
|
mlx_image_t *img;
|
||||||
mlx_image_t *fps;
|
mlx_image_t *fps;
|
||||||
|
mlx_image_t *tstat;
|
||||||
|
mlx_image_t *kstat;
|
||||||
mlx_texture_t *curtext;
|
mlx_texture_t *curtext;
|
||||||
mlx_texture_t *northtext;
|
mlx_texture_t *northtext;
|
||||||
mlx_texture_t *easttext;
|
mlx_texture_t *easttext;
|
||||||
@ -46,7 +48,6 @@ typedef struct s_varlist
|
|||||||
mlx_texture_t *endtext;
|
mlx_texture_t *endtext;
|
||||||
mlx_texture_t *nazitext;
|
mlx_texture_t *nazitext;
|
||||||
t_sprite *sprite;
|
t_sprite *sprite;
|
||||||
t_sprite *spriteorder;
|
|
||||||
int spritecount;
|
int spritecount;
|
||||||
int fpsrefresh;
|
int fpsrefresh;
|
||||||
int w;
|
int w;
|
||||||
@ -85,6 +86,12 @@ typedef struct s_varlist
|
|||||||
int32_t ccolor;
|
int32_t ccolor;
|
||||||
int resize;
|
int resize;
|
||||||
int *zbuffer;
|
int *zbuffer;
|
||||||
|
int treasure;
|
||||||
|
int tottreasure;
|
||||||
|
int enemies;
|
||||||
|
int kills;
|
||||||
|
int mgun;
|
||||||
|
int ggun;
|
||||||
} t_varlist;
|
} t_varlist;
|
||||||
|
|
||||||
void ft_frametime(t_varlist *vl);
|
void ft_frametime(t_varlist *vl);
|
||||||
|
15
maps/treasuretest.cub
Normal file
15
maps/treasuretest.cub
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
C 0,100,255
|
||||||
|
F 100,100,100
|
||||||
|
|
||||||
|
NO ./assets/bluestone.png
|
||||||
|
EA ./assets/colorstone.png
|
||||||
|
SO ./assets/redbrick.png
|
||||||
|
WE ./assets/wood.png
|
||||||
|
|
||||||
|
1111111
|
||||||
|
1CCCCC1
|
||||||
|
1 1
|
||||||
|
1 1
|
||||||
|
1 N 1
|
||||||
|
1 1
|
||||||
|
1111111
|
@ -6,7 +6,7 @@
|
|||||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2023/10/26 16:49:12 by houtworm #+# #+# */
|
/* Created: 2023/10/26 16:49:12 by houtworm #+# #+# */
|
||||||
/* Updated: 2023/11/04 03:31:53 by houtworm ######## odam.nl */
|
/* Updated: 2023/11/04 04:08:23 by houtworm ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -22,6 +22,12 @@ t_varlist initvarlist(void)
|
|||||||
vl.zbuffer = ft_calloc(4096, 8);
|
vl.zbuffer = ft_calloc(4096, 8);
|
||||||
vl.spritecount = 0;
|
vl.spritecount = 0;
|
||||||
vl.hoffset = 0;
|
vl.hoffset = 0;
|
||||||
|
vl.treasure = 0;
|
||||||
|
vl.tottreasure = 0;
|
||||||
|
vl.enemies = 0;
|
||||||
|
vl.kills = 0;
|
||||||
|
vl.mgun = 0;
|
||||||
|
vl.ggun = 0;
|
||||||
vl.ccolor = 0;
|
vl.ccolor = 0;
|
||||||
vl.fcolor = 0;
|
vl.fcolor = 0;
|
||||||
vl.northtext = NULL;
|
vl.northtext = NULL;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2023/10/26 16:50:23 by houtworm #+# #+# */
|
/* Created: 2023/10/26 16:50:23 by houtworm #+# #+# */
|
||||||
/* Updated: 2023/11/02 04:25:38 by houtworm ######## odam.nl */
|
/* Updated: 2023/11/04 03:51:16 by houtworm ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
51
src/main.c
51
src/main.c
@ -6,12 +6,34 @@
|
|||||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2023/10/26 14:13:07 by houtworm #+# #+# */
|
/* Created: 2023/10/26 14:13:07 by houtworm #+# #+# */
|
||||||
/* Updated: 2023/11/04 02:31:20 by houtworm ######## odam.nl */
|
/* Updated: 2023/11/04 04:34:54 by houtworm ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../cub3d.h"
|
#include "../cub3d.h"
|
||||||
|
|
||||||
|
void ft_printstats(t_varlist *vl)
|
||||||
|
{
|
||||||
|
char *enemies;
|
||||||
|
char *kills;
|
||||||
|
char *treasure;
|
||||||
|
char *found;
|
||||||
|
char *temp;
|
||||||
|
|
||||||
|
enemies = ft_itoa(vl->enemies);
|
||||||
|
kills = ft_itoa(vl->kills);
|
||||||
|
temp = ft_vastrjoin(4, "Kills: ", kills, "/", enemies);
|
||||||
|
vl->tstat = mlx_put_string(vl->mlx, temp, 10, 30);
|
||||||
|
free(temp);
|
||||||
|
treasure = ft_itoa(vl->tottreasure);
|
||||||
|
found = ft_itoa(vl->treasure);
|
||||||
|
temp = ft_vastrjoin(4, "Treasure: ", found, "/", treasure);
|
||||||
|
vl->kstat = mlx_put_string(vl->mlx, temp, 10, 50);
|
||||||
|
mlx_set_instance_depth(vl->tstat->instances, 3);
|
||||||
|
mlx_set_instance_depth(vl->kstat->instances, 4);
|
||||||
|
ft_vafree(5, enemies, kills, treasure, found, temp);
|
||||||
|
}
|
||||||
|
|
||||||
void ft_frametime(t_varlist *vl)
|
void ft_frametime(t_varlist *vl)
|
||||||
{
|
{
|
||||||
char *itoa;
|
char *itoa;
|
||||||
@ -27,6 +49,29 @@ void ft_frametime(t_varlist *vl)
|
|||||||
ft_vafree(2, itoa, print);
|
ft_vafree(2, itoa, print);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ft_pickup(t_varlist *vl)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
while (vl->sprite[i].x)
|
||||||
|
{
|
||||||
|
if ((int)vl->sprite[i].x == (int)vl->posx)
|
||||||
|
if ((int)vl->sprite[i].y == (int)vl->posy)
|
||||||
|
if (vl->sprite[i].type == 4)
|
||||||
|
{
|
||||||
|
while (vl->sprite[i].x)
|
||||||
|
{
|
||||||
|
vl->sprite[i] = vl->sprite[i + 1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
vl->spritecount--;
|
||||||
|
vl->treasure++;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void mainloop(void *param)
|
void mainloop(void *param)
|
||||||
{
|
{
|
||||||
t_varlist *vl;
|
t_varlist *vl;
|
||||||
@ -34,10 +79,14 @@ void mainloop(void *param)
|
|||||||
vl = param;
|
vl = param;
|
||||||
mlx_delete_image(vl->mlx, vl->img);
|
mlx_delete_image(vl->mlx, vl->img);
|
||||||
mlx_delete_image(vl->mlx, vl->fps);
|
mlx_delete_image(vl->mlx, vl->fps);
|
||||||
|
mlx_delete_image(vl->mlx, vl->tstat);
|
||||||
|
mlx_delete_image(vl->mlx, vl->kstat);
|
||||||
vl->img = mlx_new_image(vl->mlx, vl->w, vl->h);
|
vl->img = mlx_new_image(vl->mlx, vl->w, vl->h);
|
||||||
ft_raycast(vl);
|
ft_raycast(vl);
|
||||||
|
ft_pickup(vl);
|
||||||
ft_drawsprites(vl);
|
ft_drawsprites(vl);
|
||||||
ft_frametime(vl);
|
ft_frametime(vl);
|
||||||
|
ft_printstats(vl);
|
||||||
ft_movementkeys(vl);
|
ft_movementkeys(vl);
|
||||||
if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0))
|
if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0))
|
||||||
ft_errorexit("image to window failed ", "mainloop", 1);
|
ft_errorexit("image to window failed ", "mainloop", 1);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: houtworm <codam@houtworm.net> +#+ */
|
/* By: houtworm <codam@houtworm.net> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2023/10/26 17:33:50 by houtworm #+# #+# */
|
/* Created: 2023/10/26 17:33:50 by houtworm #+# #+# */
|
||||||
/* Updated: 2023/11/04 02:39:42 by houtworm ######## odam.nl */
|
/* Updated: 2023/11/04 04:09:24 by houtworm ######## odam.nl */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -53,6 +53,8 @@ char ft_addwalktroughsprite(t_varlist *vl, int x, int y, int type)
|
|||||||
vl->sprite[vl->spritecount].x = x + 0.5;
|
vl->sprite[vl->spritecount].x = x + 0.5;
|
||||||
vl->sprite[vl->spritecount].y = y + 0.5;
|
vl->sprite[vl->spritecount].y = y + 0.5;
|
||||||
vl->sprite[vl->spritecount].type = type;
|
vl->sprite[vl->spritecount].type = type;
|
||||||
|
if (type == 4)
|
||||||
|
vl->tottreasure++;
|
||||||
vl->spritecount++;
|
vl->spritecount++;
|
||||||
return ('0');
|
return ('0');
|
||||||
}
|
}
|
||||||
@ -62,6 +64,8 @@ char ft_addsolidsprite(t_varlist *vl, int x, int y, int type)
|
|||||||
vl->sprite[vl->spritecount].x = x + 0.5;
|
vl->sprite[vl->spritecount].x = x + 0.5;
|
||||||
vl->sprite[vl->spritecount].y = y + 0.5;
|
vl->sprite[vl->spritecount].y = y + 0.5;
|
||||||
vl->sprite[vl->spritecount].type = type;
|
vl->sprite[vl->spritecount].type = type;
|
||||||
|
if (type == 6)
|
||||||
|
vl->enemies++;
|
||||||
vl->spritecount++;
|
vl->spritecount++;
|
||||||
return ('2');
|
return ('2');
|
||||||
}
|
}
|
||||||
@ -114,7 +118,7 @@ char **ft_getmap(t_varlist *vl, int fd)
|
|||||||
else if (line[x] == 'H')
|
else if (line[x] == 'H')
|
||||||
map[y][x] = ft_addwalktroughsprite(vl, y, x, 3);
|
map[y][x] = ft_addwalktroughsprite(vl, y, x, 3);
|
||||||
else if (line[x] == 'C')
|
else if (line[x] == 'C')
|
||||||
map[y][x] = ft_addsolidsprite(vl, y, x, 4);
|
map[y][x] = ft_addwalktroughsprite(vl, y, x, 4);
|
||||||
else if (line[x] == 'X')
|
else if (line[x] == 'X')
|
||||||
map[y][x] = ft_addsolidsprite(vl, y, x, 5);
|
map[y][x] = ft_addsolidsprite(vl, y, x, 5);
|
||||||
else if (line[x] == 'K')
|
else if (line[x] == 'K')
|
||||||
|
Loading…
Reference in New Issue
Block a user