예제 #1
0
int cmd_uptime(char param[])
{
unsigned	time_tick, up_days, up_hours, up_minutes, up_seconds, up_millisecs;

time_tick = kol_time_tick();
up_days = (time_tick/(24*60*60*100));
up_hours = (time_tick/(60*60*100))%24;
up_minutes = (time_tick/(60*100))%60;
up_seconds = (time_tick/100)%60;
up_millisecs = (time_tick*10)%100;

#if LANG_ENG
	printf ("  Uptime: %d day(s), %d:%d:%d.%d\n\r", up_days, up_hours, up_minutes, up_seconds, up_millisecs);
#elif LANG_RUS
	printf ("  Uptime: %d дней, %d:%d:%d.%d\n\r", up_days, up_hours, up_minutes, up_seconds, up_millisecs);
#endif
return TRUE;
}
예제 #2
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();
}