/*
 *	work.h
 *
 *	P/ECEアプリケーションの雛型（CLiPライブラリ版）
 *
 *	* Tue Jul 23 21:01:00 JST 2002 Naoyuki Sawa
 *	- 作成開始。
 */

extern unsigned char vbuff[DISP_X * DISP_Y];	/* 仮想VRAM */

#if     (defined(USE_3D)||defined(USE_RENDF))
extern unsigned char zbuff[DISP_X * DISP_Y];	/* Ｚバッファ */
#endif/*(defined(USE_3D)||defined(USE_RENDF))*/

extern SURFACE surface;				/* 仮想VRAMのサーフェイス情報 */
extern RENDER render;				/* 仮想VRAMへの描画環境 */

#ifdef  USE_RESOURCE
extern const void* resource;			/* pexファイル添付リソース */
#endif/*USE_RESOURCE*/

#ifdef  USE_RENDF
extern RENDF rendf;				/* 浮動小数点3D描画環境 */
#endif/*USE_RENDF*/

#ifdef  USE_CBKQUE
extern ST_CbkQue* pCbkQue;			/* コールバックキュー */
#endif//USE_CBKQUE

#ifdef  USE_DLYQUE
extern ST_DlyQue* pDlyQue;			/* 遅延コールバックキュー */
#endif//USE_DLYQUE

#ifdef  USE_SOUND_MANAGER
extern ST_SndMgr* pSndMgrBgm;			/* BGM Sound Manager */
extern ST_SndMgr* pSndMgrSe1;			/* SE1 Sound Manager */
extern ST_SndMgr* pSndMgrSe2;			/* SE2 Sound Manager */
#endif/*USE_SOUND_MANAGER*/

#ifdef  USE_SOUND_MIXER
extern ST_TapMxr* pTapMxr;			/* TAPミキサー */
#endif/*USE_SOUND_MIXER*/

#ifdef  USE_SOUND_SEQUENCER
extern ST_TapSeq* pTapSeq;			/* TAPシーケンサ */
#endif/*USE_SOUND_SEQUENCER*/

#ifdef  USE_EVENT_TIMER
extern ST_EvtTmr* pEvtTmr;			/* イベントタイマ */
#endif/*USE_EVENT_TIMER*/

#ifdef  USE_COUNTER_MANAGER
extern ST_CntMgr* pCntMgr;			/* 汎用カウンタ管理 */
#endif/*USE_COUNTER_MANAGER*/

#ifdef  USE_DURATION_COUNTER
extern ST_DurCnt* pDurCnt;			/* 存続カウンタ */
#endif/*USE_DURATION_COUNTER*/

#ifdef  USE_LOG_BUFFER
extern ST_LogBuf* pLogBuf;			/* ログバッファ */
#endif/*USE_LOG_BUFFER*/

#ifdef  USE_NVLOG
extern unsigned char nvlog[NVLOG_SIZE];		/* 不揮発性ログバッファ */
extern FILEACC faNvLog;				/* nvlog.bin */
#endif/*USE_NVLOG*/

#ifdef  USE_TCL
extern Tcl_Interp* iPtr;			/* Tclインタプリタ */
#endif//USE_TCL

#ifdef  USE_LED
extern ST_LedSeq* pLedSeq;			/* LEDシーケンサ */
#endif//USE_LED

#if     (defined(USE_ENM)&&defined(USE_REG))
extern const void* pEnmKey;			/* 列挙定義キー */
#endif//(defined(USE_ENM)&&defined(USE_REG))

#ifdef  USE_PRP
extern const void* pPrpKey;			/* プロパティテーブルキー */
extern PrpHdr_def(App,phApp);			/* プロパティヘッダ */		//ﾃﾝﾌﾟﾚｰﾄとして1個だけ定義しました｡必要に応じて定義を追加して下さい｡
#endif//USE_PRP

#ifdef  USE_FSM
extern const void* pFsmKey;			/* 有限状態機械マップキー */
extern ST_FsmObj foApp;				/* 有限状態機械 */		//ﾃﾝﾌﾟﾚｰﾄとして1個だけ定義しました｡必要に応じて定義を追加して下さい｡
#endif//USE_FSM

#ifdef  USE_ACT
extern ST_ActObj* aoApp;			/* アクターオブジェクト */	//ﾃﾝﾌﾟﾚｰﾄとして1個だけ定義しました｡必要に応じて定義を追加して下さい｡
#endif//USE_ACT

#ifdef  USE_RRS
extern ST_RRS* pRRS;				/* Round Robin Scheduler (RRS) */
#endif//USE_RRS

#ifdef  USE_MSGHSK
extern ST_MsgHsk stMsgHsk;			/* メッセージハンドシェイク */
#endif//USE_MSGHSK

#ifdef  USE_NUKLEAR
extern struct nk_context* ctx;			/* Nuklearコンテキスト */
#endif//USE_NUKLEAR

extern int now;					/* グローバルタイマ */
extern int joy;					/* パッド状態 */
