void view_init() { sidebar_width=platform_lowres?3*SIDEBAR_WIDTH_MAX/4:SIDEBAR_WIDTH_MAX; font_std=d_font_load("res/FreeMonoBold.ttf", platform_lowres?8:12, 512, 512); mouse_tilesheet=d_render_tilesheet_load("res/mouse.png", 16, 16, DARNIT_PFORMAT_RGB5A1); mouse_target_tilesheet=d_render_tilesheet_load("res/target.png", 32, 32, DARNIT_PFORMAT_RGB5A1); //Menu background int scale=config.plasma==0?1:(1<<(5-config.plasma)); view_background_w=platform.screen_w/scale; view_background_h=platform.screen_h/scale; view_background_ts=d_render_tilesheet_new(1, 1, view_background_w, view_background_h, DARNIT_PFORMAT_RGB5A1); view_background_tile=d_render_tile_new(1, view_background_ts); view_background_pixbuf=malloc(view_background_w*view_background_h*sizeof(unsigned int)); d_render_tilesheet_scale_algorithm(view_background_ts, DARNIT_SCALE_LINEAR); d_render_tile_move(view_background_tile, 0, 0, 0); d_render_tile_tilesheet_coord_set(view_background_tile, 0, 0, 0, view_background_w, view_background_h); d_render_tile_size_set(view_background_tile, 0, platform.screen_w, platform.screen_h); view_background_update(0); menu_init(); lobby_init(); game_view_init(); gameover_init(); chat_init(); gamestate_pane[GAME_STATE_MENU]=&panelist_menu_sidebar; gamestate_pane[GAME_STATE_CREDITS]=&panelist_credits; gamestate_pane[GAME_STATE_CONNECTING]=&panelist_multiplayer_connecting; gamestate_pane[GAME_STATE_LOBBY]=&panelist_lobby_players; gamestate_pane[GAME_STATE_GAME]=&panelist_game_sidebar; gamestate_pane[GAME_STATE_GAME_MENU]=&panelist_game_menu; gamestate_pane[GAME_STATE_GAME_OVER]=&panelist_gameover_sidebar; gamestate_pane[GAME_STATE_QUIT]=NULL; map=NULL; }
int main(int argc, char **argv) { char font_path[512]; char *tmp; bool fullscreen = false; if (argc >= 2 && !strcmp(argv[1], "-fs")) fullscreen = true; d_init_custom("Fascister i grönsakslandet ~ //achtung fulkod", DISPLAY_WIDTH, DISPLAY_HEIGHT, fullscreen, "birdie26", NULL); sprintf(font_path, "%s", d_fs_exec_path()); chdir(tmp = dirname(font_path)); sprintf(font_path, "%s/res/font.ttf", tmp); gfx.font.large = d_font_load(font_path, 36, 256, 256); gfx.font.small = d_font_load(font_path, 16, 256, 256); s = malloc(sizeof(*s)); ui_init(4); menu_init(); gameroom_init(); lobby_init(); character_room_init(); game_over_init(); gamestate_pane[GAME_STATE_MENU] = &menu.pane; gamestate_pane[GAME_STATE_SELECT_NAME] = &select_name.pane; gamestate_pane[GAME_STATE_CHARACTERS] = &character_room.pane; gamestate_pane[GAME_STATE_LOBBY] = &lobby.pane; gamestate_pane[GAME_STATE_ENTER_IP] = &enter_ip.pane; gamestate_pane[GAME_STATE_GAMEROOM] = &gameroom.pane; gamestate_pane[GAME_STATE_GAME_OVER] = &game_over.pane; signal(SIGINT, d_quit); //lol network_init(PORT); d_cursor_show(1); d_render_clearcolor_set(0x7F, 0x7F, 0x7F); if(argc > 1) { snprintf(player_name, NAME_LEN_MAX, "%s", argv[1]); game_state(GAME_STATE_MENU); } else game_state(GAME_STATE_SELECT_NAME); while(gamestate!=GAME_STATE_QUIT) { if(state_network_handler[gamestate]) state_network_handler[gamestate](); d_render_begin(); d_render_blend_enable(); d_render_tint(20, 20, 20, 255); if(gamestate_pane[gamestate]) ui_events(gamestate_pane[gamestate], 1); d_render_tint(255, 255, 255, 255); if(state_render[gamestate]) state_render[gamestate](); if(state_network_handler[gamestate]) state_network_handler[gamestate](); d_render_end(); d_loop(); } d_quit(); return 0; }