-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Taking this:
void sim_cycle(void)
{
n_int max_honor = 0;
land_cycle();
#ifdef WEATHER_ON
weather_cycle();
#endif
loop_being_no_sim(sim.beings, sim.num, sim_being_awake_loop_no_sim, 0L);
loop_being_no_sim(sim.beings, sim.num, sim_being_universal_loop_no_sim, 0L);
if (interpret)
{
loop_being(&sim, sim_being_interpret, PROCESSING_WELTER_WEIGHT);
}
else
{
/** Listen for any shouts */
loop_being(&sim, being_listen, PROCESSING_FEATHER_WEIGHT);
#ifdef EPISODIC_ON
loop_being_no_sim(sim.beings, sim.num, episodic_cycle_no_sim, 0L);
#endif
loop_being(&sim, sim_being_cycle, PROCESSING_MIDDLE_WEIGHT);
loop_being(&sim, drives_cycle, PROCESSING_LIGHT_WEIGHT);
}
if (land_time() & 1)
{
#ifdef BRAIN_ON
loop_being(&sim, sim_brain_loop, PROCESSING_WELTER_WEIGHT);
#endif
}
#ifdef BRAINCODE_ON
else
{
loop_being(&sim, sim_brain_dialogue_loop, PROCESSING_MIDDLE_WEIGHT);
}
#endif
loop_being_no_sim(sim.beings, sim.num, being_tidy_loop_no_sim, &max_honor);
loop_being(&sim, social_initial_loop, PROCESSING_LIGHT_WEIGHT);
if (max_honor)
{
loop_being_no_sim(sim.beings, sim.num, being_recalibrate_honor_loop_no_sim, 0L);
}
loop_being_no_sim(sim.beings, sim.num, social_secondary_loop_no_sim, 0L);
{
being_remove_loop2_struct * brls = being_remove_initial(&sim);
if (sim.ext_death != 0L)
{
loop_no_thread(&sim, 0L, being_remove_loop1, 0L);
}
loop_no_thread(&sim, 0L, being_remove_loop2, brls);
sim_being_remove_final(&sim, &brls);
}
sim_time(&sim);
}
And make it more generalizable for multiple species.
The pattern is:
land cycle
weather cycle
being cycle
time cycle
Metadata
Metadata
Assignees
Labels
No labels