Пример #1
0
int cmd_sleep(char param[])
{
int delay;

if (!strlen(param))
	{
	#if LANG_ENG
		printf("    sleep <time in the 1/100 of second>\n\r");
	#elif LANG_RUS
		printf("  sleep <интервал в сотых доляx секунды>\n\r");
	#endif
	return TRUE;
	}

delay = _atoi(param);
kol_sleep((unsigned)delay);
return TRUE;
}
Пример #2
0
int program_console(int pid)
{

char name[32];
char *buffer;
int result;
int i;
char command;
int size;
int is_end;

itoa(pid, name);
strcat(name, "-SHELL");

buffer = NULL;


for (i = 0; i < 30;  i++)
	{
	result = kol_buffer_open(name, SHM_OPEN | SHM_WRITE, 0, &buffer);
	if (buffer != NULL)
		break;

	kol_sleep(2);
	}

	if (buffer == NULL)
		return 0;
	else
		size = result;

	is_end = 0;
	for (;;)
		{

		command = *(buffer);

		switch (command)
			{

			case SC_EXIT:
				*buffer = SC_OK;
				is_end = 1;
				break;

			case SC_OK:
				kol_sleep(5);
				break;

			case SC_CLS:
				con_cls();
				*buffer = SC_OK;
				break;

			case SC_PUTC:
				printf("%c", *(buffer+1));
				*buffer = SC_OK;
				break;

			case SC_PUTS:
				printf("%s", buffer+1 );
				*buffer = SC_OK;
				break;

			case SC_GETC:
				*(buffer+1) = (char) getch() ;
				*buffer = SC_OK;
				break;

			case SC_GETS:
				gets(buffer+1, size-2);
				*buffer = SC_OK;
				break;

			default:
				#if LANG_ENG
					printf ("  Error in console application.\n\r");
				#elif LANG_RUS
					printf ("  Ошибка в консольном приложении.\n\r");
				#endif
				return 0;
			};
		if (is_end)
			{
			printf("\n\r");
			return 1;
			}
		}

return 9;
}
Пример #3
0
void kol_main()
{

	BoardPuts("Hello, Heliothryx!\n");
	
	int    err;
    int    version =-1;
 
    if((err = InitSound(&version)) !=0 ){
        BoardPuts("Sound Error 1\n");
    };
 
    if( (SOUND_VERSION>(version&0xFFFF)) ||
        (SOUND_VERSION<(version >> 16))){
        BoardPuts("Sound Error 2\n");
    }


	unsigned event;
	unsigned key;
	unsigned key_up;
	
	unsigned btn, btn_state;	
	unsigned pos, x, y;
	int gx, gy;

	//srand(kol_system_time_get());

	kol_event_mask(0xC0000027); // mouse and keyboard
	
	kol_key_mode_set(1);
	
	area_width = 512;
	area_height = 512;

	// Initializing variables
	window_width = FIX_MENUETOS_LEGACY_ONE_PIXEL_BORDER_GAP_BUG + area_width + 10; // 2 x 5px border
	window_height = FIX_MENUETOS_LEGACY_ONE_PIXEL_BORDER_GAP_BUG + kol_skin_height() + area_height + 5; // bottom 5px border

	//rs_main_init();
	
	GameInit();

	wnd_draw();

	fps = 0;
	
	unsigned int tick_start = kol_time_tick();
	unsigned int tick_current = tick_start;
	unsigned int tick_last = tick_start;
	
	unsigned int fps_counter = 0;
	int wait_time;
	int already_drawn = 0;
	
	float xf; 
	float xfs;
	int xfs_i;
	
	while (1) {
		tick_last = tick_current;
		tick_current = kol_time_tick();
		dt = tick_current - tick_last;
		tick_last = tick_current;
		
		already_drawn = 0;
		
		while (( event = kol_event_wait_time(1) )) {
		//while (( event = kol_event_wait() )) {  
		
			switch (event) {
		
				case 1:
					wnd_draw(); // <--- need to clear event!
					already_drawn = 1;
					break;

				case 2:
					key = kol_key_get();
					key = (key & 0xff00)>>8;	
					key_up = key & 0x80;				
					key = key & 0x7F;
					
					if (key_up) {
						GameKeyUp(key);
						//rs_app.OnKeyUp(key);
					}
					else {
						GameKeyDown(key);
						//rs_app.OnKeyDown(key, 1);
					};
				
					break;
			
				case 3:
					switch ((kol_btn_get() & 0xff00)>>8)
						{
						case 1: // close button
							kol_exit();
						case 2: // 'new' button 
							//init_board();
							//wnd_draw();
							break;
						}
					break;
			
				case 6:
					btn = kol_mouse_btn() & 1; // read mouse button (only left)
					pos = kol_mouse_posw(); // read mouse position
					x = pos / 65536;
					y = pos % 65536;
					/*if (x > window_width)
						x=0;
					if (y > window_height)
						y=0;*/
						
					if (btn && (!btn_state)) {
						//rs_app.OnMouseDown(x,y);
						GameMouseDown(x, y);
						
						BoardPuts("MouseDown!\n");
						
					}
					else if ( (!btn) && btn_state ) {
						//rs_app.OnMouseUp(x,y);
						GameMouseUp(x, y);
					}
					else {
						//GameMouseMove(x, y);
					};
					
					btn_state = btn;
				
					break;
			}
			
		};
		
		
		if (!already_drawn) {
			wnd_draw();
		};
		
		
		fps_counter++;		
		
		tick_current = kol_time_tick();
		
		if (tick_current > tick_start+100) {
			fps = fps_counter;
			fps_counter = 0;
			tick_start += 100;
		};
	
		draw_dt = tick_current - tick_last;
		
		wait_time = (100/GAME_REQUIRED_FPS) - draw_dt;
		if (wait_time <= 0) {
			wait_time = 1;
		};
		kol_sleep(wait_time);


	}

	GameTerm();

	kol_exit();
}