diff --git a/code/core/impl/math.c b/code/core/impl/math.c index 440cb77..0385ddd 100644 --- a/code/core/impl/math.c +++ b/code/core/impl/math.c @@ -9,7 +9,7 @@ function V2f V2f_Scale(V2f x, F32 scale) { } V2f NormaliseV2F(V2f x) { - F32 magnitude = sqrtf((x.x * x.x) + (x.y +x.y)); + F32 magnitude = sqrtf((x.x * x.x) + (x.y * x.y)); if(magnitude > 0.0){ F32 inverse = 1.0f/magnitude; return V2F(x.x*inverse, x.y*inverse); diff --git a/code/first.c b/code/first.c index cf01a09..89bf15d 100644 --- a/code/first.c +++ b/code/first.c @@ -66,7 +66,7 @@ int main(int argc, char **argv) World *world = M_ArenaPush(arena, World); game->world = world; world->random = Random_Seed(29237489723847); - world->npcCount = 1023; + world->npcCount = 100; for(int i = 0; i < world->npcCount; i++) { NPC *npc1 = &world->npcs[i]; npc1->collision.pos.x = 15; diff --git a/code/game/impl/npc.c b/code/game/impl/npc.c index 0893aad..d9a8e6e 100644 --- a/code/game/impl/npc.c +++ b/code/game/impl/npc.c @@ -10,6 +10,8 @@ void updateNPC(F32 delta, NPC *npc, World *world) { if(npc->waitTime > npc->maxWaitTime) { npc->mode = NPC_ACTION_WALKING; // TODO change targets to poi's rather than just random nodes + // TODO choose either global POI's or use NPC custom poi if + // customPOI is true do { npc->targetNavNode = Random_U32(&world->random, 0, world->navMesh->nodeCount); } while(npc->targetNavNode == npc->currentNavNode); @@ -23,7 +25,7 @@ void updateNPC(F32 delta, NPC *npc, World *world) { npc->walkTimer = 0; if(npc->path.nodeCount == npc->pathIndex+1){ npc->mode = NPC_ACTION_WAITING; - npc->maxWaitTime = Random_F32(&world->random, 1, 2); + npc->maxWaitTime = Random_F32(&world->random, 20, 140); npc->waitTime = 0; npc->currentNavNode = npc->targetNavNode; npc->pathIndex = 0; diff --git a/code/game/npc.h b/code/game/npc.h index 0692f09..3805ba4 100644 --- a/code/game/npc.h +++ b/code/game/npc.h @@ -5,7 +5,7 @@ #include "npc_look.h" #include "../core/types.h" -#define NPC_SPEED 0.1f +#define NPC_SPEED 1.0f typedef enum NPC_ACTION NPC_ACTION; enum NPC_ACTION { @@ -23,6 +23,10 @@ struct NPC { Str8 name; NPC_LOOK look; + bool customPOI; + U32 customPOICount; + U32 npcPOI[16]; + //// Actions NPC_ACTION mode; // How long they've been waiting diff --git a/code/game/world.h b/code/game/world.h index 896faae..b8f1763 100644 --- a/code/game/world.h +++ b/code/game/world.h @@ -24,7 +24,7 @@ struct World { //// NPCs U32 npcCount; - NPC npcs[1024]; + NPC npcs[128]; ////Bandit // The bandit the player is after.