1
This commit is contained in:
parent
06aaf1bd32
commit
a724def626
@ -1413,31 +1413,53 @@ void Creature::DecInventory(int slot_id, int num)
|
|||||||
|
|
||||||
void Creature::CheckSpecObject()
|
void Creature::CheckSpecObject()
|
||||||
{
|
{
|
||||||
long long old_cell_flags = cell_flags_;
|
int old_poly_ext_flags = poly_ext_flags_;
|
||||||
cell_flags_ = 0;
|
poly_ext_flags_ = 0;
|
||||||
int ext_flags = 0;
|
|
||||||
{
|
{
|
||||||
int poly_idx = 0;
|
int poly_idx = 0;
|
||||||
dtPoly* poly = room->map_instance->GetPoly(GetPos().ToGlmVec3(), poly_idx);
|
dtPoly* poly = room->map_instance->GetPoly(GetPos().ToGlmVec3(), poly_idx);
|
||||||
if (poly) {
|
if (poly) {
|
||||||
ext_flags = room->GetPolyExtFlag(poly_idx);
|
poly_ext_flags_ = room->GetPolyExtFlag(poly_idx);
|
||||||
#if 0
|
|
||||||
if ((poly->flags & SAMPLE_POLYFLAGS_SWIM) == SAMPLE_POLYFLAGS_SWIM) {
|
|
||||||
a8::SetBitFlag(cell_flags_, kColliderTag_Water);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (old_cell_flags != cell_flags_) {
|
if (old_poly_ext_flags != poly_ext_flags_) {
|
||||||
#if 0
|
for (int i = 0; i < sizeof(poly_ext_flags_) * 8; ++i) {
|
||||||
if (!a8::SameBitFlag(old_cell_flags, cell_flags_, kColliderTag_Water)) {
|
if (!a8::SameBitFlag(old_poly_ext_flags, poly_ext_flags_, i)) {
|
||||||
if (a8::HasBitFlag(cell_flags_, kColliderTag_Water)) {
|
switch (i) {
|
||||||
|
case kWater1ExtFlag:
|
||||||
|
{
|
||||||
|
if (a8::HasBitFlag(poly_ext_flags_, i)) {
|
||||||
TryAddBuff(this, kInWater1BuffId);
|
TryAddBuff(this, kInWater1BuffId);
|
||||||
} else {
|
} else {
|
||||||
RemoveBuffByEffectId(kBET_InWater);
|
RemoveBuffByEffectId(kBET_InWater);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
break;
|
||||||
|
case kWater2ExtFlag:
|
||||||
|
{
|
||||||
|
if (a8::HasBitFlag(poly_ext_flags_, i)) {
|
||||||
|
TryAddBuff(this, kInWater2BuffId);
|
||||||
|
} else {
|
||||||
|
RemoveBuffByEffectId(kBET_InWater);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kWater3ExtFlag:
|
||||||
|
{
|
||||||
|
if (a8::HasBitFlag(poly_ext_flags_, i)) {
|
||||||
|
TryAddBuff(this, kInWater3BuffId);
|
||||||
|
} else {
|
||||||
|
RemoveBuffByEffectId(kBET_InWater);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ protected:
|
|||||||
int action_item_id = 0;
|
int action_item_id = 0;
|
||||||
int action_target_id = 0;
|
int action_target_id = 0;
|
||||||
|
|
||||||
long long cell_flags_ = 0;
|
int poly_ext_flags_ = 0;
|
||||||
std::array<Inventory, IS_END> buff_inventory_ = {};
|
std::array<Inventory, IS_END> buff_inventory_ = {};
|
||||||
|
|
||||||
int camouflage_move_addition_ = 0;
|
int camouflage_move_addition_ = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user