From cfc8e8bf3023fb5698e1f738089e826033f68e95 Mon Sep 17 00:00:00 2001 From: Jason Newcomb Date: Fri, 23 Sep 2022 02:14:16 -0400 Subject: [PATCH] Maybe fix motion prediction failure after long sessions --- src/d2dx/UnitMotionPredictor.cpp | 12 ++++++------ src/d2dx/UnitMotionPredictor.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/d2dx/UnitMotionPredictor.cpp b/src/d2dx/UnitMotionPredictor.cpp index d7f5ae0..2317817 100644 --- a/src/d2dx/UnitMotionPredictor.cpp +++ b/src/d2dx/UnitMotionPredictor.cpp @@ -168,8 +168,8 @@ Offset UnitMotionPredictor::GetOffset( for (int32_t i = 0; i < _unitsCount; ++i) { - if (_unitIdAndTypes.items[i].unitId == (uint16_t)unitId && - _unitIdAndTypes.items[i].unitType == (uint16_t)unitType) + if (_unitIdAndTypes.items[i].unitId == unitId && + _unitIdAndTypes.items[i].unitType == (uint32_t)unitType) { _unitMotions.items[i].lastUsedFrame = _frame; unitIndex = i; @@ -182,8 +182,8 @@ Offset UnitMotionPredictor::GetOffset( if (_unitsCount < (int32_t)_unitIdAndTypes.capacity) { unitIndex = _unitsCount++; - _unitIdAndTypes.items[unitIndex].unitId = (uint16_t)unitId; - _unitIdAndTypes.items[unitIndex].unitType = (uint16_t)unitType; + _unitIdAndTypes.items[unitIndex].unitId = unitId; + _unitIdAndTypes.items[unitIndex].unitType = (uint32_t)unitType; _unitMotions.items[unitIndex] = { }; _unitMotions.items[unitIndex].lastUsedFrame = _frame; } @@ -212,8 +212,8 @@ void UnitMotionPredictor::SetUnitScreenPos( for (int32_t unitIndex = 0; unitIndex < _unitsCount; ++unitIndex) { - if (_unitIdAndTypes.items[unitIndex].unitId == (uint16_t)unitId && - _unitIdAndTypes.items[unitIndex].unitType == (uint16_t)unitType) + if (_unitIdAndTypes.items[unitIndex].unitId == unitId && + _unitIdAndTypes.items[unitIndex].unitType == (uint32_t)unitType) { _unitScreenPositions.items[unitIndex] = { x, y }; break; diff --git a/src/d2dx/UnitMotionPredictor.h b/src/d2dx/UnitMotionPredictor.h index 54b18c0..e0ba19e 100644 --- a/src/d2dx/UnitMotionPredictor.h +++ b/src/d2dx/UnitMotionPredictor.h @@ -47,8 +47,8 @@ namespace d2dx private: struct UnitIdAndType final { - uint16_t unitType = 0; - uint16_t unitId = 0; + uint32_t unitType = 0; + uint32_t unitId = 0; }; struct UnitMotion final