Пример #1
0
void lobby_host_loop() {
	struct proto_join_packet packet;
	static int tick = 0;
	DARNIT_KEYS keys;
	
	keys = d_keys_get();
	d_keys_set(keys);
	
	d_render_tile_blit(config.menu_background, 0, 0, 0);
	
	if(!tick) {
		packet.type = PROTO_TYPE_JOIN;
		packet.player_id = -1;
		strcpy(packet.player_name, config.player_name);
		network_send(config.server.addr, &packet, sizeof(struct proto_join_packet));
		update_player_list(lobby_join.list_players, config.player.player);
	}
	server_loop();
	
	if(keys.select) {
		game_state(GAME_STATE_LOBBY);
	}
	if(keys.start) {
		game_state(GAME_STATE_GAME);
	}
	
	d_text_surface_draw(lobby_join.list_players);
	d_text_surface_draw(lobby_host.start_game);
	tick++;
	tick %= 3;
}
Пример #2
0
void lobby_loop() {
	static int tick = 0;
	DARNIT_KEYS keys;
	int i;
	struct List *game = lobby_client.client;
	
	d_render_tile_blit(config.menu_background, 0, 0, 0);
	d_render_line_draw(lobby.line, 1);
	d_text_surface_draw(lobby.list_players);
	
	if(lobby.selected_game > 5) {
		d_render_offset(0, (lobby.selected_game - 5) * d_font_glyph_hs(config.font_std));
	}
	d_text_surface_draw(lobby.list_games);
	d_render_offset(0, 0);
	
	keys = d_keys_get();
	d_keys_set(keys);
	
	if(!tick) {
		update_lists(NULL, lobby_client.client);
	}
	
	if(keys.up) {
		if(lobby.selected_game > 0)
			lobby.selected_game--;
	} else if(keys.down) {
		if(lobby.selected_game < lobby_client.clients)
			lobby.selected_game++;
	}
	
	if(keys.select) {
		game_state(GAME_STATE_MENU);
		return;
	}
	
	if(keys.start) {
		if(lobby.selected_game == 0) {
			game_state(GAME_STATE_LOBBY_HOST);
		} else {
			for(i = 0; game; i++, game = game->next) {
				if(i == lobby.selected_game) {
					config.server.addr = ((struct LobbyHost *) (game->value))->addr;
					goto join;
				}
			}
			game_state(GAME_STATE_LOBBY_HOST);
			return;
			join:
			game_state(GAME_STATE_LOBBY_JOIN);
		}
	}
	tick++;
	tick %= 3;
}
Пример #3
0
void gameover_render() {
	static char scoretext[64];
	d_text_surface_draw(gameover.title);
	d_text_surface_draw(gameover.subtitle);
	d_text_surface_reset(gameover.score);
	sprintf(scoretext, "Score %i", score);
	d_text_surface_string_append(gameover.score, scoretext);
	if (highscore_is_new(score))
		d_text_surface_draw(highscore.enter_name);
	
	d_text_surface_draw(gameover.score);
}
Пример #4
0
int main(int argc, char **argv) {
	char fps[6];
	init();

	d_tilemap_camera_move(ppt.tm, -ppt.ui.offset_x, -ppt.ui.offset_y);
	*fps = 0;

	for (;;) {
		d_render_begin();

		state_loop();

		/* FIXME: Remove */
		sprintf(fps, "%i", d_fps());
		d_text_surface_reset(ppt.fps);
		d_text_surface_string_append(ppt.fps, fps);
		d_render_blend_enable();
		d_text_surface_draw(ppt.fps);
		d_render_blend_disable();

		d_render_end();
		d_loop();
	}

	return 0;
}
Пример #5
0
void do_stuff(DARNIT_TEXT_SURFACE *textplace){
	
	DARNIT_MOUSE mus = d_mouse_get();
	//Calling a function which gives us various mouse data.
	
	d_text_surface_string_append(textplace, " X: ");
	//"Printing" stuff. (Adds text to the text object.)
	
	char femton[256]; 
	sprintf(femton, "%i", mus.x);
	//Converts the mouse x-coordinate to printable text.
	
	d_text_surface_string_append(textplace, femton);
	//Prints said x-coordinate.

	sprintf(femton, "%i", mus.y);
	
	d_text_surface_string_append(textplace, " Y: ");
	d_text_surface_string_append(textplace, femton);
	//Converts and prints Y-coordinate.
	
	if((((looked.x - 75) < mus.x) 
	&& (mus.x < (looked.x + 75))) 
	&& (((looked.y - 75) < mus.y) 
	&& (mus.y < (looked.y + 75)))){
	
		//We check to see if the mouse is within distance
		//of the saved point.
	
		//If it passes this check we count another frame.
		
		looked.frames_looked = looked.frames_looked + 1;
		
		if(stickyness < looked.frames_looked){
		
		//Then, if we've looked at the same area for 100 frames...
			
			click(looked.x, looked.y, textplace);
			//And call the click function, clicking the point
			//from which we defined the area.
		}
	}
	
	else{
		//If we are outside of the area we first looked at,
		//we'll set the new area of looking to the point where 
		//the mouse is, and set the frames looked to 0.
		
		looked.frames_looked = 0;
		looked.x = mus.x;
		looked.y = mus.y;
	}
	
	d_text_surface_draw(textplace);
	//Then we call the function which draws the textobject we've
	//appended our text to.
}
Пример #6
0
void highscore_render() {
	char buff[2048];
	int i;
	
	d_text_surface_draw(highscore.title);
	d_text_surface_reset(highscore.text);

	for (i = 0; i < HIGHSCORE_CAP; i++) {
		if(!highscore_table[i].score)
			break;
		sprintf(buff, "%s", highscore_table[i].name);
		d_text_surface_string_append(highscore.text, buff);
		sprintf(buff, "%.8i\n", highscore_table[i].score);
		d_text_surface_offset_next_set(highscore.text, 500);
		d_text_surface_string_append(highscore.text, buff);
	}
	d_text_surface_draw(highscore.text);
	
	return;
}
Пример #7
0
void player_draw_stat() {
	char buff[32];

	sprintf(buff, "Score: %.8i\n", score);
	d_text_surface_reset(player->scoretext);
	d_text_surface_string_append(player->scoretext, buff);

	sprintf(buff, "Grenades: %.2i", player->grenades);
	d_text_surface_reset(player->grenadestext);
	d_text_surface_string_append(player->grenadestext, buff);

	d_render_rect_move(player->healthbar, 0, 0, 0, player->health * 2, PLAYER_HEALTH_BAR_HEIGHT);
	d_render_tint(255 - player->health * 255 / 100, player->health * 255 / 100, 0, 255);
	d_render_offset(0, 0);
	d_render_rect_draw(player->healthbar, 1);
	d_render_tint(255, 255, 255, 255);
	d_text_surface_draw(player->scoretext);
	d_text_surface_draw(player->grenadestext);

	return;
}
Пример #8
0
void lobby_playername_loop() {
	d_render_tile_blit(config.menu_background, 0, 0, 0);
	d_text_surface_draw(lobby_playername.text_playername);
	//printf("arne %i\n", d_menu_loop(lobby_playername.inputfield_playername));
	switch(d_menu_loop(lobby_playername.inputfield_playername)) {
		case -1:
			break;
		case -2:
			//d_keys_set(d_keys_get());
			game_state(GAME_STATE_MENU);
			break;
		default:
			if(strlen(config.player_name) <= 0) {
				game_state(GAME_STATE_MENU);
			} else {
				game_state(GAME_STATE_LOBBY);
			}
			break;
	}
}
Пример #9
0
void texteffect_loop() {
	unsigned i, j;
	int k;

	for (i = j = 0; i < ws.te.max_te && j < ws.te.te_used; i++) {
		if (!ws.te.te[i].time_left)
			continue;
		j++;
		k = (ws.te.te[i].time_left << 8) / ws.te.te[i].total_time;
		k = (k < 0) ? 0 : k;
		k = (k > 255) ? 255 : k;
		d_render_offset(ws.camera.x, ws.camera.y - (k >> 2));
		d_render_tint(255, 255, 255, k);
		d_text_surface_draw(ws.te.te[i].s);
		ws.te.te[i].time_left -= d_last_frame_time();
		if (ws.te.te[i].time_left <= 0)
			texteffect_del(i);
	}

	d_render_tint(255, 255, 255, 255);
	
	return;
}
Пример #10
0
void menu_render() {
	int i;
	d_text_surface_draw(menu.title);
	for(i=0; i<4; i++)
		d_text_surface_draw(menu.menu[i]);
}
Пример #11
0
void instructions_render() {
	int i;
	d_text_surface_draw(instructions.title);
	for(i=0; i<5; i++)
		d_text_surface_draw(instructions.keys[i]);
}
Пример #12
0
void pause_render() {
	game_render();
	d_text_surface_draw(pause.title);
}
Пример #13
0
int main(int argc, char **argv) {
	int i, j, js0_x, js0_y, js1_x, js1_y;
	void *font, *surface, *text, *mapsheet, *sprite, *textinput, *mtsprite, *fps_text, *tilebuf, *fancy_text;
	void *music;
	char test[256], fps[16];
	char *test_text;
	DARNIT_MOUSE mouse;
	DARNIT_KEYS keys;
	DARNIT_MAP *map;
	DARNIT_SPRITE *mapsprite;

	if (!d_init("TESTAPP - libDarnit", "testapp", NULL))
		return -1;

	compression_test();

	/* Sound/music */
	music = d_sound_tracked_load("latyl-greasy_duck_v1.mod", DARNIT_AUDIO_STREAM, DARNIT_AUDIO_STEREO);
	d_sound_play(music, 0, 127, 127, 0);

	/* Text rendering */
	test_text = malloc(64);
	font = d_font_load("dejavu_sans.ttf", 28, 512, 512);
	text = d_text_surface_new(font, 80, 800, 0, 460);
	fancy_text = d_text_surface_color_new(font, 16, 800, 0, 420);
	colorTest(fancy_text);
	fps_text = d_text_surface_new(font, 16, 200, 0, 40);


	/* Menutk test */
	surface = d_menu_vertical_new("Hello\nGoodbye\nOther\nNothing\nLess than nothing", 50, 100, font, 200, 10, 3);
	sprintf(test_text, "Héllo, world. Modify m€! Test of offsets");
	textinput = d_menu_textinput_new(0, 0, font, test_text, 64, 200);

	/* Sprites */
	sprite = d_sprite_load("test.spr", 0, DARNIT_PFORMAT_RGB5A1);
	mapsprite = d_sprite_load("baurn.spr", 0, DARNIT_PFORMAT_RGB5A1);
	d_sprite_move(sprite, 50, 50);
	d_sprite_move(mapsprite, 0, 0);
	d_sprite_animate_start(sprite);
	d_sprite_animate_start(mapsprite);
	
	mtsprite = d_mtsprite_load("testspr.mts");
	d_mtsprite_animate_start(mtsprite);

	/* Maps */

	mapsheet = d_render_tilesheet_load("mapsheet.png", 32, 32, DARNIT_PFORMAT_RGBA8);
	if ((map = d_map_load("testmap_iso.ldmz")) == NULL)
		fprintf(stderr, "Map load failed\n");
	d_tilemap_sprite_add(map->layer[0].tilemap, mapsprite);

	/* Tile caches */
	tilebuf = d_render_tile_new(1, mapsheet);
	d_render_tile_move(tilebuf, 0, 64, 64);
	d_render_tile_tilesheet_coord_set(tilebuf, 0, 16, 16, 32, 32);

	/* Misc */
	fprintf(stderr, "String lenght: %i\n", d_font_string_w(font, "ASDFÅÄÖ,,"));


	for (i = j = 0;;) {
		d_sprite_move(mapsprite, 64, j * 4);
		keys = d_keys_get();
		d_text_surface_reset(text); d_text_surface_reset(fps_text);
		mouse = d_mouse_get();
		d_joystick_get(&js0_x, &js0_y, &js1_x, &js1_y);
		sprintf(test, "X: %i, Y: %i, W: %i;; TX: %i, TY: %i;; nub0 (%i,%i) ;; nub1(%i,%i)", mouse.x, mouse.y, mouse.wheel, i*4, j*4, js0_x, js0_y, js1_x, js1_y);
		sprintf(fps, "%i", d_last_frame_time());
		d_text_surface_string_append(text, test);
		d_text_surface_string_append(fps_text, "ASDFÅÄÖ,,");

		if (keys.lmb)
			d_render_fade_in(1000, 1.0f, 0.0f, 0.0f);
		if (keys.rmb)
			d_render_fade_out(1000);

		d_render_begin();

		if (keys.left == 1)
			i--;
		if (keys.right == 1)
			i++;
		if (keys.up == 1)
			j--;
		if (keys.down == 1)
			j++;
		if (keys.select)
			fprintf(stderr, "Blololol\n");

		if (keys.r == 1)
			d_tilemap_camera_move(map->layer->tilemap, i*4, j*4);
		d_render_blend_enable();
		d_tilemap_draw(map->layer->tilemap);
		if (keys.l == 1)
			if (d_menu_loop(surface) != -1)
				return 0;
		d_menu_loop(textinput); 
		d_sprite_draw(sprite);
		d_text_surface_draw(text);
		d_text_surface_draw(fancy_text);
		d_text_surface_draw(fps_text);

		d_render_offset(-200, -200);
		d_mtsprite_draw(mtsprite);
		d_render_offset(0, 0);

		d_render_blend_disable();
		d_render_tile_draw(tilebuf, 1);
		d_render_end();
		d_loop();
	}


	return 0;
}