#if VIBPACK
/*
 ******************************************************************************
 *
 *	振動パック処理
 *      $Id: vibpackManager.c,v 1.1 2003/05/30 21:25:28 tong Exp $
 ******************************************************************************
 */
#include "system.h"
#include "padmgr.h"

/*
 *	振動パワー 変数(０ 〜 １００ ％)
 */
unsigned char		vib_power[MAXCONTROLLERS];

/*
 *	最初の一定振動パワー時間 変数(０ 〜 ２５５ フレーム)
 */
unsigned char		vib_start_power[MAXCONTROLLERS];

/*
 *	減衰振動パワー 変数(０ 〜 １００ ％)
 */
unsigned char		vib_stop_power[MAXCONTROLLERS];

/*
 ******************************************************************************
 *    振動パックコントロール関数
 ******************************************************************************
 */
//extern padmgr_t padmgr;
void vib_ctrl(int pause)
{
    static unsigned char	vib_power_time[MAXCONTROLLERS];
    static unsigned char	vib_on_flg[MAXCONTROLLERS];
    int				i;

    for(i = 0; i < MAXCONTROLLERS; i += 1) {
	if(pause) {
	    /*
	     *	振動ＯＦＦ
	     */
	    vib_on_flg[i] = 0;
	}
	else {
	    if(vib_power[i] > 100) {
		/*
		 *	振動パワーが１００より大きい時
		 */
		vib_power[i] = 100;
	    }
	    if(vib_stop_power[i] > 100) {
		/*
		 *	減衰振動パワーが１００より大きい時
		 */
		vib_stop_power[i] = 100;
	    }
	    vib_power_time[i] += vib_power[i];
	    if(vib_power_time[i] >= 100) {
		vib_power_time[i] -= 100;
		/*
		 *	振動ＯＮ
		 */
		vib_on_flg[i] = 1;
	    } else {
		/*
		 *	振動ＯＦＦ
		 */
		vib_on_flg[i] = 0;
	    }
	}
	/*
	 *	振動パワーの減衰
	 */
	if(vib_start_power[i] > 0) {
	    vib_start_power[i] -= 1;
	} else {
	    if(vib_power[i] > vib_stop_power[i]) {
		vib_power[i] -= vib_stop_power[i];
	    } else {
		vib_power[i] = 0;
	    }
	}
    }

    padmgr_RumbleSetTbl(&padmgr, vib_on_flg);
}
/*
 ******************************************************************************
 *    振動パックを停止する
 ******************************************************************************
 */
void vib_stop(void)
{
    VIBPACK_CTRL(0);
    padmgr_RumbleReset(&padmgr);
}
#endif
