mirror of
https://github.com/rehlds/reapi.git
synced 2025-04-23 14:53:44 +03:00
GetMessageData: Fixed Coord/Angle float amx conversion Fixes #332
This commit is contained in:
parent
f08c8b7072
commit
94264bd89a
@ -188,7 +188,7 @@ cell AMX_NATIVE_CALL SetMessageData(AMX *amx, cell *params)
|
||||
break;
|
||||
case IMessage::ParamType::Angle:
|
||||
case IMessage::ParamType::Coord:
|
||||
g_activeMessageContext->setParamFloat(number, *(float *)value);
|
||||
g_activeMessageContext->setParamFloat(number, amx_CellToFloat(*value));
|
||||
break;
|
||||
case IMessage::ParamType::Byte:
|
||||
case IMessage::ParamType::Char:
|
||||
@ -266,10 +266,11 @@ cell AMX_NATIVE_CALL GetMessageData(AMX *amx, cell *params)
|
||||
case IMessage::ParamType::Angle:
|
||||
case IMessage::ParamType::Coord:
|
||||
{
|
||||
float flValue = g_activeMessageContext->getParamFloat(number);
|
||||
cell value = amx_FloatToCell(g_activeMessageContext->getParamFloat(number));
|
||||
if (PARAMS_COUNT > 2)
|
||||
*dstAddr = flValue;
|
||||
return flValue;
|
||||
*dstAddr = value;
|
||||
|
||||
return value;
|
||||
}
|
||||
case IMessage::ParamType::Entity:
|
||||
case IMessage::ParamType::Byte:
|
||||
@ -346,10 +347,10 @@ cell AMX_NATIVE_CALL GetMessageOrigData(AMX *amx, cell *params)
|
||||
case IMessage::ParamType::Angle:
|
||||
case IMessage::ParamType::Coord:
|
||||
{
|
||||
float flValue = g_activeMessageContext->getOriginalParamFloat(number);
|
||||
cell value = amx_FloatToCell(g_activeMessageContext->getOriginalParamFloat(number));
|
||||
if (PARAMS_COUNT > 2)
|
||||
*dstAddr = flValue;
|
||||
return flValue;
|
||||
*dstAddr = value;
|
||||
return value;
|
||||
}
|
||||
case IMessage::ParamType::Entity:
|
||||
case IMessage::ParamType::Byte:
|
||||
|
@ -97,6 +97,16 @@ inline size_t indexOfPDataAmx(const T* pdata)
|
||||
return index;
|
||||
}
|
||||
|
||||
inline cell amx_FloatToCell(REAL x)
|
||||
{
|
||||
return *(cell *)&x;
|
||||
}
|
||||
|
||||
inline float amx_CellToFloat(cell x)
|
||||
{
|
||||
return *(REAL *)&x;
|
||||
}
|
||||
|
||||
inline cell getAmxVector(Vector& vec)
|
||||
{
|
||||
return g_amxxapi.PrepareCellArrayA(reinterpret_cast<cell *>(&vec), 3, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user