mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 06:15:37 +03:00
Add ewrite_[coord_f/angle_f], write_[coord_f/angle_f] and [e]message_begin_f natives (bug 5829, r=arkshine)
Former-commit-id: 34ab529d53
This commit is contained in:
parent
86f5c9f031
commit
917c52ec96
@ -362,7 +362,7 @@ void C_MessageEnd(void)
|
|||||||
RETURN_META(MRES_IGNORED);
|
RETURN_META(MRES_IGNORED);
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
static cell _message_begin(AMX *amx, cell *params, bool useFloat) /* 4 param */
|
||||||
{
|
{
|
||||||
int numparam = *params / sizeof(cell);
|
int numparam = *params / sizeof(cell);
|
||||||
float vecOrigin[3];
|
float vecOrigin[3];
|
||||||
@ -392,9 +392,16 @@ static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
|
|
||||||
cpOrigin = get_amxaddr(amx, params[3]);
|
cpOrigin = get_amxaddr(amx, params[3]);
|
||||||
|
|
||||||
vecOrigin[0] = static_cast<float>(*cpOrigin);
|
if (!useFloat)
|
||||||
vecOrigin[1] = static_cast<float>(*(cpOrigin + 1));
|
{
|
||||||
vecOrigin[2] = static_cast<float>(*(cpOrigin + 2));
|
vecOrigin[0] = static_cast<float>(*cpOrigin);
|
||||||
|
vecOrigin[1] = static_cast<float>(*(cpOrigin + 1));
|
||||||
|
vecOrigin[2] = static_cast<float>(*(cpOrigin + 2));
|
||||||
|
} else {
|
||||||
|
vecOrigin[0] = amx_ctof(*cpOrigin);
|
||||||
|
vecOrigin[1] = amx_ctof(*(cpOrigin + 1));
|
||||||
|
vecOrigin[2] = amx_ctof(*(cpOrigin + 2));
|
||||||
|
}
|
||||||
|
|
||||||
MESSAGE_BEGIN(params[1], params[2], vecOrigin);
|
MESSAGE_BEGIN(params[1], params[2], vecOrigin);
|
||||||
|
|
||||||
@ -414,6 +421,16 @@ static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL message_begin(AMX *amx, cell *params) /* 4 param */
|
||||||
|
{
|
||||||
|
return _message_begin(amx, params, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL message_begin_f(AMX *amx, cell *params) /* 4 param */
|
||||||
|
{
|
||||||
|
return _message_begin(amx, params, true);
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL message_end(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL message_end(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
MESSAGE_END();
|
MESSAGE_END();
|
||||||
@ -456,12 +473,24 @@ static cell AMX_NATIVE_CALL write_angle(AMX *amx, cell *params) /* 1 param */
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL write_angle_f(AMX *amx, cell *params) /* 1 param */
|
||||||
|
{
|
||||||
|
WRITE_ANGLE(amx_ctof(params[1]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL write_coord(AMX *amx, cell *params) /* 1 param */
|
static cell AMX_NATIVE_CALL write_coord(AMX *amx, cell *params) /* 1 param */
|
||||||
{
|
{
|
||||||
WRITE_COORD(static_cast<float>(params[1]));
|
WRITE_COORD(static_cast<float>(params[1]));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL write_coord_f(AMX *amx, cell *params) /* 1 param */
|
||||||
|
{
|
||||||
|
WRITE_COORD(amx_ctof(params[1]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL write_string(AMX *amx, cell *params) /* 1 param */
|
static cell AMX_NATIVE_CALL write_string(AMX *amx, cell *params) /* 1 param */
|
||||||
{
|
{
|
||||||
int a;
|
int a;
|
||||||
@ -681,7 +710,7 @@ static cell AMX_NATIVE_CALL get_msg_origin(AMX *amx, cell *params)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL emessage_begin(AMX *amx, cell *params) /* 4 param */
|
static cell _emessage_begin(AMX *amx, cell *params, bool useFloat)
|
||||||
{
|
{
|
||||||
int numparam = *params / sizeof(cell);
|
int numparam = *params / sizeof(cell);
|
||||||
float vecOrigin[3];
|
float vecOrigin[3];
|
||||||
@ -711,9 +740,16 @@ static cell AMX_NATIVE_CALL emessage_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
|
|
||||||
cpOrigin = get_amxaddr(amx, params[3]);
|
cpOrigin = get_amxaddr(amx, params[3]);
|
||||||
|
|
||||||
vecOrigin[0] = static_cast<float>(*cpOrigin);
|
if (!useFloat)
|
||||||
vecOrigin[1] = static_cast<float>(*(cpOrigin + 1));
|
{
|
||||||
vecOrigin[2] = static_cast<float>(*(cpOrigin + 2));
|
vecOrigin[0] = static_cast<float>(*cpOrigin);
|
||||||
|
vecOrigin[1] = static_cast<float>(*(cpOrigin + 1));
|
||||||
|
vecOrigin[2] = static_cast<float>(*(cpOrigin + 2));
|
||||||
|
} else {
|
||||||
|
vecOrigin[0] = amx_ctof(*cpOrigin);
|
||||||
|
vecOrigin[1] = amx_ctof(*(cpOrigin + 1));
|
||||||
|
vecOrigin[2] = amx_ctof(*(cpOrigin + 2));
|
||||||
|
}
|
||||||
|
|
||||||
g_pEngTable->pfnMessageBegin(params[1], params[2], vecOrigin, NULL);
|
g_pEngTable->pfnMessageBegin(params[1], params[2], vecOrigin, NULL);
|
||||||
|
|
||||||
@ -733,6 +769,16 @@ static cell AMX_NATIVE_CALL emessage_begin(AMX *amx, cell *params) /* 4 param */
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL emessage_begin(AMX *amx, cell *params) /* 4 param */
|
||||||
|
{
|
||||||
|
return _emessage_begin(amx, params, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL emessage_begin_f(AMX *amx, cell *params) /* 4 param */
|
||||||
|
{
|
||||||
|
return _emessage_begin(amx, params, true);
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL emessage_end(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL emessage_end(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
g_pEngTable->pfnMessageEnd();
|
g_pEngTable->pfnMessageEnd();
|
||||||
@ -775,12 +821,24 @@ static cell AMX_NATIVE_CALL ewrite_angle(AMX *amx, cell *params) /* 1 param */
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL ewrite_angle_f(AMX *amx, cell *params) /* 1 param */
|
||||||
|
{
|
||||||
|
g_pEngTable->pfnWriteAngle(amx_ctof(params[1]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL ewrite_coord(AMX *amx, cell *params) /* 1 param */
|
static cell AMX_NATIVE_CALL ewrite_coord(AMX *amx, cell *params) /* 1 param */
|
||||||
{
|
{
|
||||||
g_pEngTable->pfnWriteCoord(static_cast<float>(params[1]));
|
g_pEngTable->pfnWriteCoord(static_cast<float>(params[1]));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL ewrite_coord_f(AMX *amx, cell *params) /* 1 param */
|
||||||
|
{
|
||||||
|
g_pEngTable->pfnWriteCoord(amx_ctof(params[1]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL ewrite_string(AMX *amx, cell *params) /* 1 param */
|
static cell AMX_NATIVE_CALL ewrite_string(AMX *amx, cell *params) /* 1 param */
|
||||||
{
|
{
|
||||||
int a;
|
int a;
|
||||||
@ -792,12 +850,15 @@ static cell AMX_NATIVE_CALL ewrite_string(AMX *amx, cell *params) /* 1 param */
|
|||||||
AMX_NATIVE_INFO msg_Natives[] =
|
AMX_NATIVE_INFO msg_Natives[] =
|
||||||
{
|
{
|
||||||
{"message_begin", message_begin},
|
{"message_begin", message_begin},
|
||||||
|
{"message_begin_f", message_begin_f},
|
||||||
{"message_end", message_end},
|
{"message_end", message_end},
|
||||||
|
|
||||||
{"write_angle", write_angle},
|
{"write_angle", write_angle},
|
||||||
|
{"write_angle_f", write_angle_f},
|
||||||
{"write_byte", write_byte},
|
{"write_byte", write_byte},
|
||||||
{"write_char", write_char},
|
{"write_char", write_char},
|
||||||
{"write_coord", write_coord},
|
{"write_coord", write_coord},
|
||||||
|
{"write_coord_f", write_coord_f},
|
||||||
{"write_entity", write_entity},
|
{"write_entity", write_entity},
|
||||||
{"write_long", write_long},
|
{"write_long", write_long},
|
||||||
{"write_short", write_short},
|
{"write_short", write_short},
|
||||||
@ -818,14 +879,17 @@ AMX_NATIVE_INFO msg_Natives[] =
|
|||||||
{"get_msg_arg_string", get_msg_arg_string},
|
{"get_msg_arg_string", get_msg_arg_string},
|
||||||
{"set_msg_arg_string", set_msg_arg_string},
|
{"set_msg_arg_string", set_msg_arg_string},
|
||||||
{"get_msg_origin", get_msg_origin},
|
{"get_msg_origin", get_msg_origin},
|
||||||
|
|
||||||
{"emessage_begin", emessage_begin},
|
{"emessage_begin", emessage_begin},
|
||||||
|
{"emessage_begin_f", emessage_begin_f},
|
||||||
{"emessage_end", emessage_end},
|
{"emessage_end", emessage_end},
|
||||||
|
|
||||||
{"ewrite_angle", ewrite_angle},
|
{"ewrite_angle", ewrite_angle},
|
||||||
|
{"ewrite_angle_f", ewrite_angle_f},
|
||||||
{"ewrite_byte", ewrite_byte},
|
{"ewrite_byte", ewrite_byte},
|
||||||
{"ewrite_char", ewrite_char},
|
{"ewrite_char", ewrite_char},
|
||||||
{"ewrite_coord", ewrite_coord},
|
{"ewrite_coord", ewrite_coord},
|
||||||
|
{"ewrite_coord_f", ewrite_coord_f},
|
||||||
{"ewrite_entity", ewrite_entity},
|
{"ewrite_entity", ewrite_entity},
|
||||||
{"ewrite_long", ewrite_long},
|
{"ewrite_long", ewrite_long},
|
||||||
{"ewrite_short", ewrite_short},
|
{"ewrite_short", ewrite_short},
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
* intermission and many many others messages.
|
* intermission and many many others messages.
|
||||||
* See HL SDK for more examples. */
|
* See HL SDK for more examples. */
|
||||||
native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
||||||
|
native message_begin_f(dest, msg_type, const Float:origin[3] = {0.0,0.0,0.0}, player = 0);
|
||||||
native message_end();
|
native message_end();
|
||||||
native write_byte(x);
|
native write_byte(x);
|
||||||
native write_char(x);
|
native write_char(x);
|
||||||
@ -24,7 +25,9 @@ native write_short(x);
|
|||||||
native write_long(x);
|
native write_long(x);
|
||||||
native write_entity(x);
|
native write_entity(x);
|
||||||
native write_angle(x);
|
native write_angle(x);
|
||||||
|
native write_angle_f(Float:x);
|
||||||
native write_coord(x);
|
native write_coord(x);
|
||||||
|
native write_coord_f(Float:x);
|
||||||
native write_string(const x[]);
|
native write_string(const x[]);
|
||||||
|
|
||||||
/* These are the same as above, except that the messages sent
|
/* These are the same as above, except that the messages sent
|
||||||
@ -36,6 +39,7 @@ native write_string(const x[]);
|
|||||||
* NOTE! These natives are experimental.
|
* NOTE! These natives are experimental.
|
||||||
*/
|
*/
|
||||||
native emessage_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
native emessage_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
||||||
|
native emessage_begin_f(dest, msg_type, const Float:origin[3] = {0.0,0.0,0.0}, player = 0);
|
||||||
native emessage_end();
|
native emessage_end();
|
||||||
native ewrite_byte(x);
|
native ewrite_byte(x);
|
||||||
native ewrite_char(x);
|
native ewrite_char(x);
|
||||||
@ -43,7 +47,9 @@ native ewrite_short(x);
|
|||||||
native ewrite_long(x);
|
native ewrite_long(x);
|
||||||
native ewrite_entity(x);
|
native ewrite_entity(x);
|
||||||
native ewrite_angle(x);
|
native ewrite_angle(x);
|
||||||
|
native ewrite_angle_f(Float:x);
|
||||||
native ewrite_coord(x);
|
native ewrite_coord(x);
|
||||||
|
native ewrite_coord_f(Float:x);
|
||||||
native ewrite_string(const x[]);
|
native ewrite_string(const x[]);
|
||||||
|
|
||||||
/* Sets/Gets what engine messages are blocked. */
|
/* Sets/Gets what engine messages are blocked. */
|
||||||
|
Loading…
Reference in New Issue
Block a user