Example #1
0
/*============================================================================*/
Byte in_bus()
{
	Byte si=0,d=0,mode=0,jn=0,sticknum=0;

	if ((p1 & 0x08) && (p1 & 0x10)) {
		/* Handle joystick read */
		if (!(p1 & 0x04)) {
			si = (p2 & 7);
		}
		d=0xFF;
		if (si == 1) {
			mode = app_data.stick[0];
			jn = 0;
			sticknum = app_data.sticknumber[0]-1;
		} else {
			mode = app_data.stick[1];
			jn = 1;
			sticknum = app_data.sticknumber[1]-1;
		}
		switch(mode) {
			case 1:
				d = keyjoy(jn);
				break;
			case 2:
				#ifndef __O2EM_SDL__
				/* TODO for SDL */
				poll_joystick();
				#endif
				if (joy[sticknum].stick[0].axis[1].d1) d &= 0xFE;			/* joy_up*/
				if (joy[sticknum].stick[0].axis[0].d2) d &= 0xFD;			/* joy_right*/
				if (joy[sticknum].stick[0].axis[1].d2) d &= 0xFB;			/* joy_down*/
				if (joy[sticknum].stick[0].axis[0].d1) d &= 0xF7;			/* joy_left*/
				if (joy[sticknum].button[0].b || joy[jn].button[1].b) d &= 0xEF;	/* both main-buttons*/
				break;
		}
		if (si == 1) {
			if (dbstick1) d = dbstick1;
		} else {
			if (dbstick2) d = dbstick2;
		}
   }
   return d;
}
Example #2
0
Byte in_bus(void){
	Byte si=0,d=0,mode=0,jn=0,sticknum=0;

	if ((p1 & 0x08) && (p1 & 0x10)) {
		/* Handle joystick read */
		if (!(p1 & 0x04)) {
			si = (p2 & 7);
		}
		d=0xFF;
		if (si == 1) {
			mode = app_data.stick[0];
			jn = 0;
			sticknum = app_data.sticknumber[0]-1;
		} else {
			mode = app_data.stick[1];
			jn = 1;
			sticknum = app_data.sticknumber[1]-1;
		}
		switch(mode) {
			case 1:
				d = keyjoy(jn);
				break;
			case 2: 
				poll_joystick();
				if (joy[sticknum].stick[0].axis[1].d1) d &= 0xFE;			// joy_up
				if (joy[sticknum].stick[0].axis[0].d2) d &= 0xFD;			// joy_right
				if (joy[sticknum].stick[0].axis[1].d2) d &= 0xFB;			// joy_down
				if (joy[sticknum].stick[0].axis[0].d1) d &= 0xF7;			// joy_left
				if (joy[sticknum].button[0].b || joy[jn].button[1].b) d &= 0xEF;	// both main-buttons
				break;
		}
		if (si == 1) {
			if (dbstick1) d = dbstick1;
		} else {
			if (dbstick2) d = dbstick2;
		}
   }
   return d;
}