seqpMonkey.h 1.83 KB
/*====================================================================
 * seqpMonkey.h
 *
 * Copyright 1993, Silicon Graphics, Inc.
 * All Rights Reserved.
 *
 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
 * Inc.; the contents of this file may not be disclosed to third
 * parties, copied or duplicated in any form, in whole or in part,
 * without the prior written permission of Silicon Graphics, Inc.
 *
 * RESTRICTED RIGHTS LEGEND:
 * Use, duplication or disclosure by the Government is subject to
 * restrictions as set forth in subdivision (c)(1)(ii) of the Rights
 * in Technical Data and Computer Software clause at DFARS
 * 252.227-7013, and/or in similar or successor clauses in the FAR,
 * DOD or NASA FAR Supplement. Unpublished - rights reserved under the
 * Copyright Laws of the United States.
 *====================================================================*/

#ifndef __seqpMonkey__
#define __seqpMonkey__


#define MAX_ACTIONS     21


typedef enum
{
    START,
    READY,
    PLAY,
    NUM_STATES
} TState;


typedef char (*TStateActionProc)(void);


typedef struct
{
    TState     		next;	    /* the next or resulting state from taking the given action */
    int         	weight;	    /* a measure of how frequently this action should be taken */
    int         	count;      /* number of times visited */
    TStateActionProc	proc;	    /* the action to be taken */
} TStateAction;


typedef struct
{
    int         	weightTotal;
    int         	numActions;
    TStateAction 	action[MAX_ACTIONS];
} TStateVector;


typedef struct
{
    TState		fState;
    TStateVector       	fStateMatrix[NUM_STATES];
} TStateMachine;


void	SeqpMonkey_Init (void);
void	SeqpMonkey_RetraceProc (TRetraceData data);
void	SeqpMonkey_ButtonProc (u16 oldButtons,u16 newButtons);
void	SeqpMonkey_Pause (void);
void	SeqpMonkey_Fini (void);

#endif