Since there is a possibility that the Error () function will collide with libwonx.a when linking, It changed to Wonx_Error (). Added bios_exit (). sprite_set_char, sprite_get_char, palette number minus 8 Fixed bug that was not specified. font_set_monodata (), font_set_colordata (), font_get_data (), disp.c, The arguments of screen_set_char (), screen_get_char (), sprite_set_data () Changed from void * to appropriate type. Sample program and attached SpeedMac. I added a document. Version 0.3 beta - from wonx-b03.tar.gz
115 lines
3.8 KiB
C
115 lines
3.8 KiB
C
/*****************************************************************************/
|
|
/* ここから */
|
|
/*****************************************************************************/
|
|
|
|
#include "WWTimerP.h"
|
|
#include "etc.h"
|
|
|
|
/*****************************************************************************/
|
|
/* メンバ関数の定義 */
|
|
/*****************************************************************************/
|
|
|
|
int WWTimer_ON( WWTimer ww_timer) { return (ww_timer->timer_on = 1); }
|
|
int WWTimer_OFF( WWTimer ww_timer) { return (ww_timer->timer_on = 0); }
|
|
int WWTimer_IsON( WWTimer ww_timer) { return (ww_timer->timer_on != 0); }
|
|
int WWTimer_IsOFF(WWTimer ww_timer) { return (ww_timer->timer_on == 0); }
|
|
|
|
int WWTimer_GetAutoPreset(WWTimer ww_timer)
|
|
{ return (ww_timer->auto_preset); }
|
|
int WWTimer_GetPresetCounter(WWTimer ww_timer)
|
|
{ return (ww_timer->preset_counter); }
|
|
int WWTimer_GetCounter(WWTimer ww_timer)
|
|
{ return (ww_timer->counter); }
|
|
|
|
int WWTimer_IsAutoPresetOFF(WWTimer ww_timer)
|
|
{ return (WWTimer_GetAutoPreset(ww_timer) == 0); }
|
|
int WWTimer_IsAutoPresetON(WWTimer ww_timer)
|
|
{ return (WWTimer_GetAutoPreset(ww_timer) == 1); }
|
|
|
|
int WWTimer_SetAutoPreset(WWTimer ww_timer, int auto_preset)
|
|
{ return (ww_timer->auto_preset = auto_preset); }
|
|
int WWTimer_SetPresetCounter(WWTimer ww_timer, int preset_counter)
|
|
{ return (ww_timer->preset_counter = preset_counter); }
|
|
int WWTimer_SetCounter(WWTimer ww_timer, int counter)
|
|
{ return (ww_timer->counter = counter); }
|
|
|
|
int WWTimer_SetAutoPresetOFF(WWTimer ww_timer)
|
|
{ return (WWTimer_SetAutoPreset(ww_timer, 0)); }
|
|
int WWTimer_SetAutoPresetON(WWTimer ww_timer)
|
|
{ return (WWTimer_SetAutoPreset(ww_timer, 1)); }
|
|
|
|
int WWTimer_Reset(WWTimer ww_timer)
|
|
{
|
|
int counter;
|
|
counter = WWTimer_GetCounter(ww_timer);
|
|
WWTimer_SetCounter(ww_timer, WWTimer_GetPresetCounter(ww_timer));
|
|
return (counter);
|
|
}
|
|
|
|
int WWTimer_Count(WWTimer ww_timer)
|
|
{
|
|
int ret;
|
|
int counter;
|
|
|
|
if (WWTimer_IsOFF(ww_timer)) return (0);
|
|
|
|
counter = WWTimer_GetCounter(ww_timer);
|
|
|
|
counter--;
|
|
|
|
if (counter <= 0) {
|
|
ret = 1;
|
|
if (WWTimer_IsAutoPresetON(ww_timer))
|
|
WWTimer_Reset(ww_timer);
|
|
else
|
|
WWTimer_OFF(ww_timer);
|
|
} else {
|
|
ret = 0;
|
|
WWTimer_SetCounter(ww_timer, counter);
|
|
}
|
|
|
|
return (ret);
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------*/
|
|
/* オブジェクトの作成 */
|
|
/*---------------------------------------------------------------------------*/
|
|
|
|
WWTimer WWTimer_Create(int auto_preset, int preset)
|
|
{
|
|
WWTimer ww_timer;
|
|
|
|
ww_timer = (WWTimer)malloc(sizeof(_WWTimer));
|
|
if (ww_timer == NULL)
|
|
Wonx_Error("WWTimer_Create", "Cannot allocate memory.");
|
|
|
|
WWTimer_OFF(ww_timer);
|
|
WWTimer_SetAutoPreset(ww_timer, auto_preset);
|
|
WWTimer_SetPresetCounter(ww_timer, preset);
|
|
WWTimer_Reset(ww_timer);
|
|
|
|
return (ww_timer);
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------*/
|
|
/* オブジェクトの削除 */
|
|
/*---------------------------------------------------------------------------*/
|
|
|
|
WWTimer WWTimer_Destroy(WWTimer ww_timer)
|
|
{
|
|
if (ww_timer == NULL)
|
|
Wonx_Error("WWTimer_Destroy", "Object is not created.");
|
|
|
|
free(ww_timer);
|
|
|
|
return (NULL);
|
|
}
|
|
|
|
/*****************************************************************************/
|
|
/* ここまで */
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
/* End of File. */
|
|
/*****************************************************************************/
|