BadGuy::BadGuy(const Reader& reader, const std::string& sprite_name_, int layer_) : MovingSprite(reader, sprite_name_, layer_, COLGROUP_DISABLED), physic(), countMe(true), is_initialized(false), start_position(), dir(LEFT), start_dir(AUTO), frozen(false), ignited(false), in_water(false), dead_script(), state(STATE_INIT), is_active_flag(), state_timer(), on_ground_flag(false), floor_normal(), colgroup_active(COLGROUP_MOVING) { start_position = bbox.p1; std::string dir_str = "auto"; reader.get("direction", dir_str); start_dir = str2dir( dir_str ); dir = start_dir; reader.get("dead-script", dead_script); SoundManager::current()->preload("sounds/squish.wav"); SoundManager::current()->preload("sounds/fall.wav"); SoundManager::current()->preload("sounds/splash.ogg"); dir = (start_dir == AUTO) ? LEFT : start_dir; }
int bench(int argc, char **argv, bool main_bench) { for (int arg = 0; arg < argc; ++arg) { if (!strncmp("--batch=", argv[arg], 8)) SAFE(batch(argv[arg] + 8, bench), CRIT); else if (!strncmp("--cfg=", argv[arg], 6)) cfg = str2cfg(argv[arg] + 6); else if (!strncmp("--match=", argv[arg], 8)) pattern = argv[arg] + 8; else if (!strncmp("--mb=", argv[arg], 5)) mb = atoi(argv[arg] + 5); else if (!strncmp("--dir=", argv[arg], 6)) dir = str2dir(argv[arg] + 6); else if (!strncmp("--alg=", argv[arg], 6)) alg = str2alg(argv[arg] + 6); else if (!strncmp("--attr=", argv[arg], 7)) SAFE(str2attr(&attr, argv[arg] + 7), CRIT); else if (!strncmp("--skip-impl=", argv[arg], 12)) skip_impl = argv[arg] + 12; else if (!strncmp("--allow-unimpl=", argv[arg], 15)) allow_unimpl = str2bool(argv[arg] + 15); else if (!strncmp("--perf-template=", argv[arg], 16)) perf_template = argv[arg] + 16; else if (!strcmp("--reset", argv[arg])) reset_parameters(); else if (!strncmp("--mode=", argv[arg], 7)) bench_mode = str2bench_mode(argv[arg] + 7); else if (!strncmp("-v", argv[arg], 2)) verbose = atoi(argv[arg] + 2); else if (!strncmp("--verbose=", argv[arg], 10)) verbose = atoi(argv[arg] + 10); else { desc_t c; bool is_deconv = 0; if (str2desc(&c, argv[arg], is_deconv) == FAIL) { fprintf(stderr, "driver: unknown option: `%s`, exiting...\n", argv[arg]); exit(2); } check_correctness(&c); } } return OK; }
BadGuy::BadGuy(const ReaderMapping& reader, const std::string& sprite_name_, int layer_, const std::string& light_sprite_name) : MovingSprite(reader, sprite_name_, layer_, COLGROUP_DISABLED), m_physic(), m_countMe(true), m_is_initialized(false), m_start_position(m_col.m_bbox.p1()), m_dir(Direction::LEFT), m_start_dir(Direction::AUTO), m_frozen(false), m_ignited(false), m_in_water(false), m_dead_script(), m_melting_time(0), m_lightsprite(SpriteManager::current()->create(light_sprite_name)), m_glowing(false), m_state(STATE_INIT), m_is_active_flag(), m_state_timer(), m_on_ground_flag(false), m_floor_normal(), m_colgroup_active(COLGROUP_MOVING), m_parent_dispenser() { std::string dir_str = "auto"; reader.get("direction", dir_str); m_start_dir = str2dir( dir_str ); m_dir = m_start_dir; reader.get("dead-script", m_dead_script); SoundManager::current()->preload("sounds/squish.wav"); SoundManager::current()->preload("sounds/fall.wav"); SoundManager::current()->preload("sounds/splash.ogg"); SoundManager::current()->preload("sounds/fire.ogg"); m_dir = (m_start_dir == Direction::AUTO) ? Direction::LEFT : m_start_dir; m_lightsprite->set_blend(Blend::ADD); }
int bench(int argc, char **argv, bool main_bench) { for (int arg = 0; arg < argc; ++arg) { if (!strncmp("--batch=", argv[arg], 8)) SAFE(batch(argv[arg] + 8, bench), CRIT); else if (!strncmp("--dir=", argv[arg], 6)) dir = str2dir(argv[arg] + 6); else if (!strncmp("--dt=", argv[arg], 5)) dt = str2dt(argv[arg] + 5); else if (!strncmp("--tag=", argv[arg], 6)) tag = str2tag(argv[arg] + 6); else if (!strncmp("--axis=", argv[arg], 7)) axis = atoi(argv[arg] + 7); else if (!strncmp("--group=", argv[arg], 8)) group = atoi(argv[arg] + 8); else if (!strncmp("--match=", argv[arg], 8)) pattern = argv[arg] + 8; else if (!strncmp("--mode=", argv[0], 7)) bench_mode = str2bench_mode(argv[0] + 7); else if (!strcmp("--reset", argv[arg])) reset_parameters(); else if (!strncmp("-v", argv[arg], 2)) verbose = atoi(argv[arg] + 2); else if (!strncmp("--verbose=", argv[arg], 10)) verbose = atoi(argv[arg] + 10); else { if (!strncmp("--", argv[arg], 2)) { fprintf(stderr, "driver: unknown option: `%s`, exiting...\n", argv[arg]); exit(2); } dims = str2dims(argv[arg]); check_correctness(); } } return OK; }