fix game flag translation across v2/v3 boundary
This commit is contained in:
-20
@@ -716,7 +716,6 @@ public:
|
||||
ITEM_DROPPED = 0x0008,
|
||||
ALL_HITS_MASK_FIRST = 0x0010,
|
||||
ALL_HITS_MASK = 0x00F0,
|
||||
GAME_FLAGS_IS_V3 = 0x0100,
|
||||
};
|
||||
size_t e_id = 0;
|
||||
size_t set_id = 0;
|
||||
@@ -727,8 +726,6 @@ public:
|
||||
uint16_t set_flags = 0; // Only used if super_ene->child_index == 0
|
||||
uint16_t server_flags = 0;
|
||||
|
||||
static uint32_t convert_game_flags(uint32_t game_flags, bool to_v3);
|
||||
|
||||
inline void reset() {
|
||||
this->total_damage = 0;
|
||||
this->rare_flags = 0;
|
||||
@@ -737,23 +734,6 @@ public:
|
||||
this->server_flags = 0;
|
||||
}
|
||||
|
||||
inline void set_game_flags(uint32_t game_flags, bool is_v3) {
|
||||
this->game_flags = game_flags;
|
||||
if (is_v3) {
|
||||
this->server_flags |= Flag::GAME_FLAGS_IS_V3;
|
||||
} else {
|
||||
this->server_flags &= ~Flag::GAME_FLAGS_IS_V3;
|
||||
}
|
||||
}
|
||||
inline uint32_t get_game_flags(bool is_v3) const {
|
||||
bool flags_is_v3 = (this->server_flags & Flag::GAME_FLAGS_IS_V3);
|
||||
if (flags_is_v3 == is_v3) {
|
||||
return this->game_flags;
|
||||
} else {
|
||||
return this->convert_game_flags(this->game_flags, is_v3);
|
||||
}
|
||||
}
|
||||
|
||||
inline bool is_rare(Version version) const {
|
||||
return (((this->rare_flags >> static_cast<size_t>(version)) & 1) ||
|
||||
((version == Version::BB_V4) ? this->super_ene->is_default_rare_bb : this->super_ene->is_default_rare_v123));
|
||||
|
||||
Reference in New Issue
Block a user