colobot-data/ai/tremot5b.txt

63 lines
904 B
Plaintext
Raw Normal View History

public class order
{
int m_type;
float m_param;
}
public class exchange
{
static private order m_fifo[] = null;
// Put an order into the fifo
synchronized void put(order a)
{
m_fifo[sizeof(m_fifo)] = a;
}
// Get an order from the fifo
synchronized order get()
{
if ( sizeof(m_fifo) == 0 ) return null;
order a = m_fifo[0];
order copy[] = null;
for ( int i=1 ; i<sizeof(m_fifo) ; i++ )
{
copy[i-1] = m_fifo[i];
}
m_fifo = copy;
return a;
}
}
extern void object::Slave5( )
{
exchange list();
order todo;
while ( true )
{
while ( true )
{
todo = list.get();
if ( todo != null ) break;
wait(1);
}
if ( todo.m_type == 1 )
{
message("move("+todo.m_param+")");
move(todo.m_param);
}
else if ( todo.m_type == 2 )
{
message("turn("+todo.m_param+")");
turn(todo.m_param);
}
else
{
message("Unknown order");
}
}
}