diff --git a/CaptureManagerClass.h b/CaptureManagerClass.h index 5287bd48..78f16a23 100644 --- a/CaptureManagerClass.h +++ b/CaptureManagerClass.h @@ -48,9 +48,6 @@ class NOVTABLE CaptureManagerClass : public AbstractClass void FreeAll() { JMP_THIS(0x472140); } - int NumControlNodes() const - { return ControlNodes.Count; } - bool CanCapture(TechnoClass *Target) const { JMP_THIS(0x471C90); } bool CannotControlAnyMore() const diff --git a/Conversions.h b/Conversions.h index d710cc3d..3521bd75 100644 --- a/Conversions.h +++ b/Conversions.h @@ -65,4 +65,16 @@ class Conversions return Int2Highest(static_cast(v)); } + static unsigned int TranslateFixedPoint(size_t bitsFrom, size_t bitsTo, size_t value, size_t offset = 0) + { + size_t maskIn = ((1u << bitsFrom) - 1); + size_t maskOut = ((1u << bitsTo) - 1); + + if (bitsFrom > bitsTo) + return (((((value & maskIn) >> (bitsFrom - bitsTo - 1)) + 1) >> 1) + offset) & maskOut; + else if (bitsFrom < bitsTo) + return (((value - offset) & maskIn) << (bitsTo - bitsFrom)) & maskOut; + else + return value & maskOut; + } };