mirror of
https://github.com/rehlds/reapi.git
synced 2025-04-23 06:43:42 +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;
|
break;
|
||||||
case IMessage::ParamType::Angle:
|
case IMessage::ParamType::Angle:
|
||||||
case IMessage::ParamType::Coord:
|
case IMessage::ParamType::Coord:
|
||||||
g_activeMessageContext->setParamFloat(number, *(float *)value);
|
g_activeMessageContext->setParamFloat(number, amx_CellToFloat(*value));
|
||||||
break;
|
break;
|
||||||
case IMessage::ParamType::Byte:
|
case IMessage::ParamType::Byte:
|
||||||
case IMessage::ParamType::Char:
|
case IMessage::ParamType::Char:
|
||||||
@ -266,10 +266,11 @@ cell AMX_NATIVE_CALL GetMessageData(AMX *amx, cell *params)
|
|||||||
case IMessage::ParamType::Angle:
|
case IMessage::ParamType::Angle:
|
||||||
case IMessage::ParamType::Coord:
|
case IMessage::ParamType::Coord:
|
||||||
{
|
{
|
||||||
float flValue = g_activeMessageContext->getParamFloat(number);
|
cell value = amx_FloatToCell(g_activeMessageContext->getParamFloat(number));
|
||||||
if (PARAMS_COUNT > 2)
|
if (PARAMS_COUNT > 2)
|
||||||
*dstAddr = flValue;
|
*dstAddr = value;
|
||||||
return flValue;
|
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
case IMessage::ParamType::Entity:
|
case IMessage::ParamType::Entity:
|
||||||
case IMessage::ParamType::Byte:
|
case IMessage::ParamType::Byte:
|
||||||
@ -346,10 +347,10 @@ cell AMX_NATIVE_CALL GetMessageOrigData(AMX *amx, cell *params)
|
|||||||
case IMessage::ParamType::Angle:
|
case IMessage::ParamType::Angle:
|
||||||
case IMessage::ParamType::Coord:
|
case IMessage::ParamType::Coord:
|
||||||
{
|
{
|
||||||
float flValue = g_activeMessageContext->getOriginalParamFloat(number);
|
cell value = amx_FloatToCell(g_activeMessageContext->getOriginalParamFloat(number));
|
||||||
if (PARAMS_COUNT > 2)
|
if (PARAMS_COUNT > 2)
|
||||||
*dstAddr = flValue;
|
*dstAddr = value;
|
||||||
return flValue;
|
return value;
|
||||||
}
|
}
|
||||||
case IMessage::ParamType::Entity:
|
case IMessage::ParamType::Entity:
|
||||||
case IMessage::ParamType::Byte:
|
case IMessage::ParamType::Byte:
|
||||||
|
@ -97,6 +97,16 @@ inline size_t indexOfPDataAmx(const T* pdata)
|
|||||||
return index;
|
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)
|
inline cell getAmxVector(Vector& vec)
|
||||||
{
|
{
|
||||||
return g_amxxapi.PrepareCellArrayA(reinterpret_cast<cell *>(&vec), 3, true);
|
return g_amxxapi.PrepareCellArrayA(reinterpret_cast<cell *>(&vec), 3, true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user