Fix BB EP4 solo access and ship-state marking
This commit is contained in:
+1
-15
@@ -5312,20 +5312,6 @@ shared_ptr<Lobby> create_game_generic(
|
|||||||
}
|
}
|
||||||
game->load_maps(); // Load free-play maps
|
game->load_maps(); // Load free-play maps
|
||||||
|
|
||||||
if ((creator_c->version() == Version::BB_V4) &&
|
|
||||||
(game->mode == GameMode::SOLO) &&
|
|
||||||
(game->episode == Episode::EP4)) {
|
|
||||||
for (auto obj_st : game->map_state->iter_object_states(creator_c->version())) {
|
|
||||||
const auto& obj_v = obj_st->super_obj->version(creator_c->version());
|
|
||||||
if (obj_v.set_entry &&
|
|
||||||
(obj_st->super_obj->floor == 0x00) &&
|
|
||||||
(obj_v.set_entry->base_type == 0x0048)) {
|
|
||||||
obj_st->game_flags |= 0x0001;
|
|
||||||
game->log.info_f("Unlocked BB Episode IV solo Pioneer 2 warp door K-{:03X}", obj_st->k_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// The game's quest flags are inherited from the creator, if known
|
// The game's quest flags are inherited from the creator, if known
|
||||||
if (creator_c->version() == Version::BB_V4) {
|
if (creator_c->version() == Version::BB_V4) {
|
||||||
game->quest_flag_values = make_unique<QuestFlags>(p->quest_flags);
|
game->quest_flag_values = make_unique<QuestFlags>(p->quest_flags);
|
||||||
@@ -5362,7 +5348,7 @@ shared_ptr<Lobby> create_game_generic(
|
|||||||
if ((creator_c->version() == Version::BB_V4) &&
|
if ((creator_c->version() == Version::BB_V4) &&
|
||||||
(game->mode == GameMode::SOLO) &&
|
(game->mode == GameMode::SOLO) &&
|
||||||
(game->episode == Episode::EP4)) {
|
(game->episode == Episode::EP4)) {
|
||||||
for (uint16_t flag : {0x02BD, 0x02BE, 0x02BF, 0x02C0, 0x02C1}) {
|
for (uint16_t flag : {0x0046, 0x0047, 0x0048, 0x02BD, 0x02BE, 0x02BF, 0x02C0, 0x02C1}) {
|
||||||
game->log.info_f("Unlocking BB Episode IV solo area flag {:04X}", flag);
|
game->log.info_f("Unlocking BB Episode IV solo area flag {:04X}", flag);
|
||||||
game->quest_flag_values->set(game->difficulty, flag);
|
game->quest_flag_values->set(game->difficulty, flag);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user