void Weapon::StartShooting() { if (ActiveCharacter().IsPreparingShoot()) return; if (max_strength.IsNotZero() && IsReady()) InitLoading(); }
bool LoadOldSaveGame(const char *file) { LoadgameState ls; DEBUG(oldloader, 3, "Trying to load a TTD(Patch) savegame"); InitLoading(&ls); /* Open file */ ls.file = FioFOpenFile(file, "rb", NO_DIRECTORY); if (ls.file == NULL) { DEBUG(oldloader, 0, "Cannot open file '%s'", file); return false; } SavegameType type = DetermineOldSavegameType(ls.file, NULL, NULL); LoadOldMainProc *proc = NULL; switch (type) { case SGT_TTO: proc = &LoadTTOMain; break; case SGT_TTD: proc = &LoadTTDMain; break; default: break; } _savegame_type = type; bool game_loaded; try { game_loaded = proc != NULL && proc(&ls); } catch (...) { game_loaded = false; } if (!game_loaded) { SetSaveLoadError(STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED); fclose(ls.file); return false; } _pause_mode = 2; return true; }