#ifndef VGA_UPDATE_H_
#define VGA_UPDATE_H_
//---------basic parameters-----
#define SPEED               1

//-------color table------------
#define BACKGROUND            0
#define BODY1                         1
#define BODY2                         2
#define ORANGE                      3
#define BLACK                          4
#define WHITE                          5
#define EFFECT1                       6
#define EFFECT2                       7

//-------fixed position---------
#define SHADOW_Y                  100
#define SHADOW_CENTER         50
#define HIT_CENTER                   30
#define GUN_CENTER                 20

//-------state index--------------
#define W1           0
#define W2           1
#define W3           2
#define W4          3
#define W5           4
#define W6          5
#define W7          6
#define W8         7
#define W9         8
#define W10       9
//------------
#define HP1          10
#define HP2          11
#define HP3          12
#define HP4          13
//------------
#define HK1          14
#define HK2          15
#define HK3         16
//------------
#define LP1          17
#define LP2          18
//------------
#define LK1          19
#define LK2          20
//------------
#define L1             21
//------------
#define LHP1         22
#define LHP2         23
#define LHP3         24
#define LHP4         25
//------------
#define LLP1         26
#define LLP2         27
//------------
#define LHK1         28
#define LHK2         29
#define LHK3        30
//------------
#define LLK1         31
#define LLK2         32
//------------
#define J1           33
#define J2          34
#define J3           35
#define J4           36
#define J5          37
#define J6          38
//------------
#define JK1          39
#define JK2          40
#define JK3         41
#define JK4         42
#define JK5        43
#define JK6         44
//------------
#define JP1          45
#define JP2         46
#define JP3         47
#define JP4         48
#define JP5         49
#define JP6         50
//------------
#define GUN1        51
#define GUN2        52
#define GUN3         53
#define GUN4         54
#define GUN5         55
//------------
#define DASH1       56
#define DASH2       57
#define DASH3       58
#define DASH4       59
#define DASH5       60
#define DASH6       61
//------------  
#define LASER1       62
#define LASER2       63
#define LASER3       64
#define LASER4       65
#define LASER5       66
#define LASER6       67
//------------
#define UP1          68
#define UP2          69
#define UP3          70
#define UP4          71
#define UP5          72
//------------
#define HG1          73
#define HG2          74
#define HG3          75
#define HG4          76
//------------
#define S1             77
//------------
#define H1             78
#define H2             79
#define H3             80
//------------
#define D1             81
#define D2             82
#define D3             83
#define D4             84
//------------
#define LD1           85
#define LD2           86
#define LD3           87
#define LD4           88
//------------
#define WIN1        89
//------------
#define LOSE1       90
//-------------
#define KD1           91
#define KD2           92
#define KD3           93
#define KD4           94

//----motion category---------------
#define LW           0
#define RW           1
#define HP            2
#define HK            3
#define LP             4
#define LK             5
#define L               6
#define LHP          7
#define LLP           8
#define LHK          9
#define LLK         10
#define J             11
#define LJ           12
#define RJ           13
#define JK           14
#define JP           15
#define GUN       16
#define DASH      17   
#define LASER     18
#define UP           19
#define HG          20
#define S             21
#define H            22
#define D            23
#define LD          24
#define WIN       25
#define LOSE      26
#define KD	   27
//--------------WIDTH-----------------
int romImage[95] = {
	18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 	//WALK
	3, 3, 4, 5,							//HP
	28, 29, 29,						//HK
	7, 7, 								//LP
	10, 10, 							//LK
	9,								//L
	14, 14, 15, 16,						//LHP
	12, 13,							//LLP
	38, 38, 38,						//LHK
	10, 11,							//LLK
	30, 30, 32, 32, 30, 30,				//J
	11, 11, 11, 11, 11, 11,				//JK
	31, 31, 31, 31, 31, 31,				//JP
	40, 41, 42, 43, 43,					//GUN
	39, 39, 39, 39, 39, 39, 				//DASH
	44, 44, 45, 45, 45, 45,				//LASER
	33, 34, 34, 35, 35,					//UP
	25, 25, 26, 27,						//HG
	17,								//S
	24, 24, 24,						//H
	2, 2, 2, 2,							//D
	8, 8, 8, 8,							//LD
	0,								//WIN
	37,								//LOSE
	36, 36, 36, 36						//KD	
};
//-------------------------------------------
int romWidth [28] = 
{68, 68,  132, 136,  76,   84,  76, 112, 112, 152, 112, 
 52, 52, 52, 112,  76, 104,  112, 116,  68, 100,  60,  72, 
 64,   76,  44,  44,  152   
 };
//---------------HEIGHT----------------
int imageHeight [28] = 
 {150, 150, 150, 150, 150, 150, 110, 110, 110,  88, 110, 
  162, 162, 162, 110, 120, 150, 150, 150, 162, 162, 150, 150,
  150, 110, 150, 150, 37
  };
 //--------------CNETER------------------
int romCenter [28] =
{ 
40, 40, 50, 44, 22, 37, 40, 40, 34, 30, 40, 
18, 18, 18, 40, 15, 54, 18, 43, 22, 43, 24, 43, 
20, 40, 18, 18, 75
};

int attackrangeX[] = [ 

//-----------rom index--------------
#define SHORT_SHADOW           0
#define GUN                    0
#define HIT                    0

//--------------------------------------------------------------
static int startMotion[28] = {
0, 0, 10, 14, 17, 19, 21, 22, 26, 28, 
31, 33, 33, 33, 39, 45, 51, 56, 62, 68, 
73, 77, 78, 81, 85, 89, 90, 91};
//-----------------------------------------------------------------
#define IOWR_SET_SPRITE(x, y, rom, sprite, flip, color) \
    IOWR_32DIRECT( SPRITE_BUF_BASE, 4*(rom + (sprite<<7)), x + (y<<10) + (flip<<30) + (color<<20) )
    
#define IOWR_LEFT_CUT(x, sprite) \
    IOWR_32DIRECT( SPRITE_BUF_BASE, 4*(sprite<<7), (1<<29) + x )
    
#define IOWR_RIGHT_CUT(x, sprite) \
    IOWR_32DIRECT( SPRITE_BUF_BASE, 4*(sprite<<7), (1<<28) + x )
    
#define IOWR_SET_BG_COLOR(color) \
    IOWR_32DIRECT( SPRITE_BUF_BASE, 4*(21<<7), (color<<20) )
    
#define IOWR_END_IRQ() \
    IOWR_32DIRECT( SPRITE_BUF_BASE, 0, (1<<31) + 1023 + (1023<<10) )

void sprite_refresh();
void fight_environment(int p1_hp_off, int p2_hp_off, int time);
void game_menu(int cursor_position);
void sprite_clear_all();

#endif /*VGA_UPDATE_H_*/
