/* * @brief Single function for calling all resource managers to statically allocate memory */ void Init_All() { float bgcolor[] = {1,1,1,1}; Init_Graphics( "Conquest", SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT, bgcolor, 0); srand(time(NULL)); //seed the random value at the start of the game sprite_initialize_system(1000); // allocates memory for all sprites entity_initialize_system();//allocate memory for all entities tile_init_system(); // allocate memory for tiles and generate map particle_em_init_system(); player_init(); //creates player entity hud_init(); //loads hud sprites // structure_init_system(); item_load_all(); //loads item imags into itemlist and allocates memory for new items inventory_init(); //allocates memory to store items InitMouse2(); // loads mouse sprite into mem }
void character_init(character_t* c, world_t* w, kindOf_character_t* t) { c->o.t = O_CHARACTER; c->o.w = 24; c->o.h = 32; c->w = w; c->t = t; c->alive = 1; c->go_o = -1; c->dir = D_SOUTH; c->step = 5; // standing still c->attackDelay = 0; c->inWater = 0; c->attack = 0; c->ai = NULL; memset(&c->ai_data, 0, sizeof(ai_data_t)); universe_t* u = w->universe; inventory_init(&c->inventory, u->n_materials, u->n_items); c->inventory.money = 100; c->hasBuilding = -1; c->inBuilding = -1; c->skills = CALLOC(skill_t, u->n_skills); for (size_t i = 0; i < u->n_skills; i++) c->skills[i] = 20; c->equipment = CALLOC(int, u->n_slots); for (size_t i = 0; i < u->n_slots; i++) c->equipment[i] = -1; for (int i = 0; i < N_STATUSES; i++) { float max = character_maxOfStatus(c, i); c->statuses[i] = max; } }
void building_init(building_t* b, world_t* w, kindOf_building_t* t, uuid_t owner, float x, float y) { b->o.t = O_BUILDING; b->o.x = x; b->o.y = y; b->o.w = t->width; b->o.h = t->height; b->w = w; b->t = t; b->owner = owner; b->build_progress = 0; b->life = 0; b->work_n = 0; b->work_list = 0; b->work_progress = 0; universe_t* u = w->universe; inventory_init(&b->inventory, u->n_materials, u->n_items); b->open = 0; }
int main(int argc, char **argv) { int exit_code = EXIT_FAILURE; int i; bool help = false; bool version = false; bool check_config = false; bool daemon = false; const char *debug_filter = NULL; int pid_fd = -1; for (i = 1; i < argc; ++i) { if (strcmp(argv[i], "--help") == 0) { help = true; } else if (strcmp(argv[i], "--version") == 0) { version = true; } else if (strcmp(argv[i], "--check-config") == 0) { check_config = true; } else if (strcmp(argv[i], "--daemon") == 0) { daemon = true; } else if (strcmp(argv[i], "--debug") == 0) { if (i + 1 < argc && strncmp(argv[i + 1], "--", 2) != 0) { debug_filter = argv[++i]; } else { debug_filter = ""; } } else { fprintf(stderr, "Unknown option '%s'\n\n", argv[i]); print_usage(); return EXIT_FAILURE; } } if (help) { print_usage(); return EXIT_SUCCESS; } if (version) { printf("%s\n", VERSION_STRING); return EXIT_SUCCESS; } read_image_version(); _x11_enabled = access("/etc/tf_x11_enabled", F_OK) == 0; if (prepare_paths() < 0) { return EXIT_FAILURE; } if (check_config) { return config_check(_config_filename) < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } config_init(_config_filename); if (config_has_error()) { fprintf(stderr, "Error(s) occurred while reading config file '%s'", _config_filename); goto error_config; } log_init(); if (daemon) { pid_fd = daemon_start(_log_filename, _pid_filename, 1); } else { pid_fd = pid_file_acquire(_pid_filename, getpid()); if (pid_fd == PID_FILE_ALREADY_ACQUIRED) { fprintf(stderr, "Already running according to '%s'\n", _pid_filename); } } if (pid_fd < 0) { goto error_pid_file; } if (daemon && _x11_enabled) { log_info("RED Brick API Daemon %s started (daemonized, X11 enabled) on %s image", VERSION_STRING, _image_version); } else if (daemon) { log_info("RED Brick API Daemon %s started (daemonized) on %s image", VERSION_STRING, _image_version); } else if (_x11_enabled) { log_info("RED Brick API Daemon %s started (X11 enabled) on %s image", VERSION_STRING, _image_version); } else { log_info("RED Brick API Daemon %s started on %s image", VERSION_STRING, _image_version); } if (debug_filter != NULL) { log_enable_debug_override(debug_filter); } if (config_has_warning()) { log_warn("Warning(s) in config file '%s', run with --check-config option for details", _config_filename); } if (event_init() < 0) { goto error_event; } if (signal_init(handle_sighup, NULL) < 0) { goto error_signal; } if (process_monitor_init() < 0) { goto error_process_monitor; } if (cron_init() < 0) { goto error_cron; } if (inventory_init() < 0) { goto error_inventory; } if (api_init() < 0) { goto error_api; } if (network_init(_brickd_socket_filename, _cron_socket_filename) < 0) { goto error_network; } if (inventory_load_programs() < 0) { goto error_load_programs; } if (event_run(network_cleanup_brickd_and_socats) < 0) { goto error_run; } exit_code = EXIT_SUCCESS; error_run: inventory_unload_programs(); error_load_programs: network_exit(); error_network: api_exit(); error_api: inventory_exit(); error_inventory: cron_exit(); error_cron: process_monitor_exit(); error_process_monitor: signal_exit(); error_signal: event_exit(); error_event: log_info("RED Brick API Daemon %s stopped", VERSION_STRING); error_pid_file: if (pid_fd >= 0) { pid_file_release(_pid_filename, pid_fd); } log_exit(); error_config: config_exit(); return exit_code; }