fp: Make the building behaviours generic and work across multiple buildings
This commit is contained in:
@@ -222,6 +222,7 @@ static FP_GameEntity *FP_Game_MakeEntityPointerFV(FP_Game *game, DQN_FMT_STRING_
|
||||
result->sprite_height.meters = 1;
|
||||
result->parent = FP_Game_ActiveParentEntityPointer(game);
|
||||
result->name = TELY_ChunkPool_AllocFmtFV(game->chunk_pool, fmt, args);
|
||||
result->buildings_visited = FP_SentinelList_Init<FP_GameEntityHandle>(game->chunk_pool);
|
||||
|
||||
// NOTE: Attach entity as a child to the parent
|
||||
FP_GameEntity *parent = result->parent;
|
||||
@@ -317,6 +318,7 @@ static void FP_Game_DetachEntityIntoFreeList(FP_Game *game, FP_GameEntityHandle
|
||||
|
||||
FP_SentinelList_Deinit(&entity->spawn_list, game->chunk_pool);
|
||||
FP_SentinelList_Deinit(&entity->waypoints, game->chunk_pool);
|
||||
FP_SentinelList_Deinit(&entity->buildings_visited, game->chunk_pool);
|
||||
|
||||
if (new_entity_generation > entity_generation) {
|
||||
// NOTE: Update the incremented handle disassociating all prior handles
|
||||
@@ -763,6 +765,27 @@ static void FP_Game_EntityTransitionState(FP_Game *game, FP_GameEntity *entity,
|
||||
entity->last_attack_timestamp = game->clock_ms;
|
||||
}
|
||||
} break;
|
||||
|
||||
case FP_EntityType_AirportTerry: {
|
||||
} break;
|
||||
|
||||
case FP_EntityType_ChurchTerry: {
|
||||
} break;
|
||||
|
||||
case FP_EntityType_ClubTerry: {
|
||||
} break;
|
||||
|
||||
case FP_EntityType_Nil:
|
||||
case FP_EntityType_Catfish:
|
||||
case FP_EntityType_Heart:
|
||||
case FP_EntityType_KennelTerry:
|
||||
case FP_EntityType_Map:
|
||||
case FP_EntityType_MerchantGraveyard:
|
||||
case FP_EntityType_MerchantGym:
|
||||
case FP_EntityType_MerchantPhoneCompany:
|
||||
case FP_EntityType_MerchantTerry:
|
||||
case FP_EntityType_PhoneMessageProjectile:
|
||||
case FP_EntityType_Count: break;
|
||||
}
|
||||
// NOTE: If no returns are hit above we proceed with the state change
|
||||
entity->action.next_state = desired_state;
|
||||
|
||||
Reference in New Issue
Block a user