Exemplo n.º 1
0
void comms_setup_player_choices()
{
	comms_state = COMMS_STATE_PLAYER_CHOICE;
	current_player_choice = ((Comms_NPCDialogue *)vector_get(&comms_current_npc_lines, current_npc_text))->next_state_index;
	comms_subject_pos[0] = comms_subject_final_pos;
	comms_portrait_background_pos[1] = comms_portrait_background_final_pos;
	current_npc_text = ((Comms_NPCDialogue *)vector_get(&comms_current_npc_lines, current_npc_text))->next_state_index;

	gui_clear();

	int default_button;
	
	Comms_PlayerChoice * pc = (Comms_PlayerChoice *)vector_get(&comms_player_choices, current_player_choice);
	
	default_button = gui_add_text_button(pc->text0, 0, comms_text_offset - 2, 35, BUTTON_STATE_ENABLED, BUTTON_STYLE_MENU, -1, &comms_action, pc->choice0, NULL, -1, NULL, -1);

	if (pc->text1 != NULL)
	{
		gui_add_text_button(pc->text1, 0, comms_text_offset + 5, 35, BUTTON_STATE_ENABLED, BUTTON_STYLE_MENU, -1, &comms_action, pc->choice1, NULL, -1, NULL, -1);

		if (pc->text2 != NULL)
		{
			gui_add_text_button(pc->text2, 0, comms_text_offset + 12, 35, BUTTON_STATE_ENABLED, BUTTON_STYLE_MENU, -1, &comms_action, pc->choice2, NULL, -1, NULL, -1);

			if (pc->text3 != NULL)
			{
				gui_add_text_button(pc->text3, 0, comms_text_offset + 19, 35, BUTTON_STATE_ENABLED, BUTTON_STYLE_MENU, -1, &comms_action, pc->choice3, NULL, -1, NULL, -1);
			}
		}
	}
	update_button_state(default_button, BUTTON_STATE_SELECTED);
}
Exemplo n.º 2
0
void comms_setup_intro()
{
	Travel_Node *t = (Travel_Node *)vector_get(starmap, current_node);
	int w=(int)(pow(2,(t->p->size+3)));
	int h=w;
	comms_subject_pos[0] = -w;
	comms_subject_pos[1] = h = 32 - h / 2;
	comms_subject_final_pos = 64 - w * 0.75;

	//comms_intro_text = ">incoming signal from ";
	SDL_QueryTexture(portrait_background, NULL, NULL, &w, &h);
	comms_portrait_background_pos[0] = 2;
	comms_portrait_background_pos[1] = -h;
	comms_portrait_background_final_pos = 0;

	comms_text_offset = h + 1;

	comms_portrait_pos[0] = 2;
	comms_portrait_pos[1] = 0;

	comms_state = COMMS_STATE_INTRO;
	current_npc_text = 0;
	current_player_choice = 0;
	gui_clear();

	int default_button;
	default_button = gui_add_symbol_button(SYMBOL_ARROW_RIGHT, 64 - 9, 64 - 9, -1, BUTTON_STATE_ENABLED, BUTTON_STYLE_GUI, -1, &comms_skip, -1, NULL, -1, NULL, -1);
	update_button_state(default_button, BUTTON_STATE_SELECTED);
}
Exemplo n.º 3
0
void comms_setup_npc_text()
{
	comms_state = COMMS_STATE_NPC_TEXT;
	comms_subject_pos[0] = comms_subject_final_pos;
	Travel_Node *t = (Travel_Node *)vector_get(starmap, current_node);
	t->p->x=comms_subject_final_pos;
	comms_portrait_background_pos[1] = comms_portrait_background_final_pos;
	gui_clear();

	int default_button;
	default_button = gui_add_symbol_button(SYMBOL_ARROW_RIGHT, 64 - 9, 64 - 9, -1, BUTTON_STATE_ENABLED, BUTTON_STYLE_GUI, -1, &comms_skip, -1, NULL, -1, NULL, -1);
	update_button_state(default_button, BUTTON_STATE_SELECTED);
}
Exemplo n.º 4
0
int main(int argc, char **argv)
{
	int rc = 0;
	struct cfgdata_t cfg;
	struct params_t params;
	kx_inputs inputs;

	lg = log_open(16);
	log_msg(lg, "%s starting", PACKAGE_STRING);

	initmode = do_init();

	/* Get cmdline parameters */
	params.cfg = &cfg;
	init_cfgdata(&cfg);
	cfg.angle = 0;	/* No rotation by default */
	parse_cmdline(&cfg);

	kxb_ttydev = cfg.ttydev;
	setup_terminal(kxb_ttydev, &kxb_echo_state, 1);
	/* Setup function that will restore terminal when exit() will called */
	atexit(atexit_restore_terminal);

	log_msg(lg, "FB angle is %d, tty is %s", cfg.angle, cfg.ttydev);

#ifdef USE_MACHINE_KERNEL
	machine_kernel = get_machine_kernelpath();	/* FIXME should be passed as arg to get_bootinfo() */
#endif

#ifdef USE_DELAY
	/* extra delay for initializing slow SD/CF */
	sleep(USE_DELAY);
#endif

	int no_ui = 1;	/* UI presence flag */
#ifdef USE_FBMENU
	params.gui = NULL;
	if (no_ui) {
		params.gui = gui_init(cfg.angle);
		if (NULL == params.gui) {
			log_msg(lg, "Can't initialize GUI");
		} else no_ui = 0;
	}
#endif
#ifdef USE_TEXTUI
	FILE *ttyfp;
	params.tui = NULL;
	if (no_ui) {

		if (cfg.ttydev) ttyfp = fopen(cfg.ttydev, "w");
		else ttyfp = stdout;

		params.tui = tui_init(ttyfp);
		if (NULL == params.tui) {
			log_msg(lg, "Can't initialize TUI");
			if (ttyfp != stdout) fclose(ttyfp);
		} else no_ui = 0;
	}
#endif
	if (no_ui) exit(-1); /* Exit if no one UI was initialized */
	
	params.menu = build_menu(&params);
	params.bootcfg = NULL;
	scan_devices(&params);

	if (-1 == fill_menu(&params)) {
		exit(-1);
	}

	/* Collect input devices */
	inputs_init(&inputs, 8);
	inputs_open(&inputs);
	inputs_preprocess(&inputs);

	/* Run main event loop
	 * Return values: <0 - error, >=0 - selected item id */
	rc = do_main_loop(&params, &inputs);

#ifdef USE_FBMENU
	if (params.gui) {
		if (rc < 0) gui_clear(params.gui);
		gui_destroy(params.gui);
	}
#endif
#ifdef USE_TEXTUI
	if (params.tui) {
		tui_destroy(params.tui);
		if (ttyfp != stdout) fclose(ttyfp);
	}
#endif
	inputs_close(&inputs);
	inputs_clean(&inputs);

	log_close(lg);
	lg = NULL;

	/* rc < 0 indicate error */
	if (rc < 0) exit(rc);

	menu_destroy(params.menu, 0);

	if (rc >= A_DEVICES) {
		start_kernel(&params, rc - A_DEVICES);
	}

	/* When we reach this point then some error has occured */
	DPRINTF("We should not reach this point!");
	exit(-1);
}
Exemplo n.º 5
0
int advance_comms()
{
	comms_draw_count = 0;
	switch (comms_state)
	{
		case COMMS_STATE_INTRO:
			comms_state = COMMS_STATE_NPC_TEXT;
			comms_setup_npc_text();
			break;
		case COMMS_STATE_NPC_TEXT:
			switch(((Comms_NPCDialogue *)vector_get(&comms_current_npc_lines, current_npc_text))->next_state)
			{
				case COMMS_STATE_INTRO:
					//restart dialogue? don't know why we might want to do this. could be fun?
					comms_setup_intro();
					break;
				case COMMS_STATE_PLAYER_CHOICE:
					comms_setup_player_choices();
					break;
				case COMMS_STATE_NPC_TEXT:
					comms_setup_npc_text();
					break;
				case COMMS_STATE_ENTER_COMBAT:
					gui_clear();
					faction_update_disposition(comms_faction, -10); //TODO: This is temp code
					combat_set_faction(comms_faction);
					combat_setup(); //exit comms, start combat
					break;
				case COMMS_STATE_ENTER_TRAVEL:
					gui_clear();
					faction_update_disposition(comms_faction, 5); //TODO: This is temp code
					starmap_setup(); //exit comms, start travel
					break;
				case COMMS_STATE_ENTER_TRADE_BUY:
					{
						gui_clear();
						Travel_Node *t = (Travel_Node *)vector_get(starmap, current_node);
						trade_set_npc_entity(t->t);
						trade_set_faction(t->f);
						printf("Entering buy mode?\n");
						trade_set_mode(TRADE_MODE_BUY);
						trade_setup(); //exit comms, start trade
					}
					break;
				case COMMS_STATE_ENTER_TRADE_SELL:
					{
						gui_clear();
						Travel_Node *t = (Travel_Node *)vector_get(starmap, current_node);
						trade_set_npc_entity(t->t);
						trade_set_faction(t->f);
						printf("Entering sell mode?\n");
						trade_set_mode(TRADE_MODE_SELL);
						trade_setup(); //exit comms, start trade
					}
					break;
			}
			break;
		case COMMS_STATE_PLAYER_CHOICE:
			comms_state = COMMS_STATE_NPC_TEXT;
			comms_setup_npc_text();
			current_npc_text = selected_player_choice;
			break;
	}

	return 0;
}
Exemplo n.º 6
0
void gui_set_scale(char _divider) {
  divider = _divider;
  gui_clear();
}
Exemplo n.º 7
0
void gui_init() {
  divider = 1;
  gui_clear();
}