npc : correction de warnings

This commit is contained in:
attilavs2 2024-07-23 18:17:02 +02:00
parent 49303ba6ad
commit 52da4be1af
2 changed files with 9 additions and 9 deletions

View file

@ -69,7 +69,7 @@ int as_reconstruct_path(int16_t *came_from, int w, int h, int16_t spos,
int16_t next = came_from[dest]; int16_t next = came_from[dest];
int i; unsigned int i;
for(i = 0; i < 64; i++) for(i = 0; i < 64; i++)
{ {
@ -112,9 +112,9 @@ int as_reconstruct_path(int16_t *came_from, int w, int h, int16_t spos,
//Returns non zero error code on failure //Returns non zero error code on failure
//Custom a* implemetation //Custom a* implemetation
//Unoptimized, may become an issue //Unoptimized, may become an issue
int npc_pathfind(int dest_x, int dest_y, Map *full_map, NPC *npc) int npc_pathfind(uint32_t dest_x, uint32_t dest_y, Map *full_map, NPC *npc)
{ {
int i, j; uint32_t i, j;
uint32_t w = full_map->w; uint32_t w = full_map->w;
uint32_t h = full_map->h; uint32_t h = full_map->h;
@ -143,8 +143,8 @@ int npc_pathfind(int dest_x, int dest_y, Map *full_map, NPC *npc)
fscore[spos] = length(dest_x-x, dest_y-y); fscore[spos] = length(dest_x-x, dest_y-y);
uint8_t bscore; uint8_t bscore;
int bx = x; uint32_t bx = x;
int by = y; uint32_t by = y;
for(int iter=0; iter < 1024; iter++) for(int iter=0; iter < 1024; iter++)
{ {
@ -171,12 +171,10 @@ int npc_pathfind(int dest_x, int dest_y, Map *full_map, NPC *npc)
for(i = bx-1; i < bx+2; i++) for(i = bx-1; i < bx+2; i++)
{ {
if(i < 0) continue;
if(i > w) break; if(i > w) break;
for(j = by-1; j < by+2; j++) for(j = by-1; j < by+2; j++)
{ {
if(j > h ) break; if(j > h ) break;
if(j < 0) continue;
if(map[j*w+i]) continue; if(map[j*w+i]) continue;
att_score = gscore[by*w+bx] + ceil(length(bx-i,by-j)); att_score = gscore[by*w+bx] + ceil(length(bx-i,by-j));
if(att_score < gscore[j*w+i]) if(att_score < gscore[j*w+i])
@ -199,6 +197,8 @@ int npc_pathfind(int dest_x, int dest_y, Map *full_map, NPC *npc)
//Refactoring to make adding complexity cleaner //Refactoring to make adding complexity cleaner
void update_npcs([[maybe_unused]] Game *game) void update_npcs([[maybe_unused]] Game *game)
{ {
//npc_pathfind(game->player.x, game->player.y, game->map_level, &npcRPG[0]);
for( uint32_t u=0; u<nbNPC; u++ ) for( uint32_t u=0; u<nbNPC; u++ )
{ {
update_npc(&npcRPG[u]); update_npc(&npcRPG[u]);

View file

@ -16,7 +16,7 @@ enum
NPC_HOSTILE = 2, //to the player NPC_HOSTILE = 2, //to the player
NPC_ALL = 3 NPC_ALL = 3
} NPC_groups; };
typedef struct typedef struct
{ {
@ -57,7 +57,7 @@ int npc_append_path(uint16_t x, uint16_t y, NPC *npc);
//Clears the NPCs path and creates a new one going to dest, //Clears the NPCs path and creates a new one going to dest,
//avoiding non-walkable tiles //avoiding non-walkable tiles
//Returns non-zero on failure //Returns non-zero on failure
int npc_pathfind(int dest_x, int dest_y, Map *full_map, NPC *npc); int npc_pathfind(uint32_t dest_x, uint32_t dest_y, Map *full_map, NPC *npc);
/* Draws the player player. This function should be called after drawing the /* Draws the player player. This function should be called after drawing the
* map! */ * map! */