266
X-Machines for Agent-Based Modeling: FLAME Perspectives
}
if(mall_chosen>0)
{
agent->mall_shopping=mall_chosen;
add_consumer_spending_message(consumer_spending_messages,
agent->id, agent->savings, agent->mall_shopping,
MESSAGE_RANGE, agent->x, agent->y, 0.0f);
}
else
{
agent->mall_application=0;
}
return 0;
}
/** \fn Person_4()
* \brief Add wage to savings */
__FLAME_GPU_FUNC__ int Person_4(xmachine_memory_Person* agent,
xmachine_message_consumer_spent_list* consumer_spent_messages)
{
/* See how much was spent at the Mall shopping */
/* Find last stock message for firm says how much stock left */
xmachine_message_consumer_spent* current_message =
get_first_consumer_spent_message(consumer_spent_messages);
while(current_message)
{
/* If the stock message relates to this firm */
if(agent->id == current_message->person_id)
{
/* Set the stock amount */
agent->savings=current_message->spent;
/* Exit stock message list */
current_message = NULL;
}
/* Else carry on reading stock messages */
else
{
current_message = get_next_consumer_spent_message
(current_message,consumer_spent_messages);
}
}
/* If employed then update savings with wage */
if(agent->firmid != 0)
{
agent->savings=agent->savings + agent->wage;
}
return 0;
}
/** \fn Spread_awareness()
* \brief Send message saying location*/
__FLAME_GPU_FUNC__ int Spread_awareness(xmachine_memory_Mall* agent)
{
//dont need this
return 0;
X-Machines for Agent-Based Modeling: FLAME Perspectives
}
if(mall_chosen>0)
{
agent->mall_shopping=mall_chosen;
add_consumer_spending_message(consumer_spending_messages,
agent->id, agent->savings, agent->mall_shopping,
MESSAGE_RANGE, agent->x, agent->y, 0.0f);
}
else
{
agent->mall_application=0;
}
return 0;
}
/** \fn Person_4()
* \brief Add wage to savings */
__FLAME_GPU_FUNC__ int Person_4(xmachine_memory_Person* agent,
xmachine_message_consumer_spent_list* consumer_spent_messages)
{
/* See how much was spent at the Mall shopping */
/* Find last stock message for firm says how much stock left */
xmachine_message_consumer_spent* current_message =
get_first_consumer_spent_message(consumer_spent_messages);
while(current_message)
{
/* If the stock message relates to this firm */
if(agent->id == current_message->person_id)
{
/* Set the stock amount */
agent->savings=current_message->spent;
/* Exit stock message list */
current_message = NULL;
}
/* Else carry on reading stock messages */
else
{
current_message = get_next_consumer_spent_message
(current_message,consumer_spent_messages);
}
}
/* If employed then update savings with wage */
if(agent->firmid != 0)
{
agent->savings=agent->savings + agent->wage;
}
return 0;
}
/** \fn Spread_awareness()
* \brief Send message saying location*/
__FLAME_GPU_FUNC__ int Spread_awareness(xmachine_memory_Mall* agent)
{
//dont need this
return 0;
