if(sel_num == 7) { print("Hit maximum arguments!\n"); break; }
}
- return sprintf(CCR(input), arg_slot[0], arg_slot[1], arg_slot[2], arg_slot[3], arg_slot[4], arg_slot[5], arg_slot[6], arg_slot[7]);
+ return sprintf(input, arg_slot[0], arg_slot[1], arg_slot[2], arg_slot[3], arg_slot[4], arg_slot[5], arg_slot[6], arg_slot[7]);
}
return "";
case MSG_WEAPON: return msg_weapon_notifs[net_name - 1];
case MSG_DEATH: return msg_death_notifs[net_name - 1];
}
+ backtrace(sprintf("Get_Notif_Ent(%d, %d): Improper net type!\n", net_type, net_name));
return world;
}
-string Get_Field_Value(float field, float net_type, float net_name)
+string Get_Notif_Name(float net_type, float net_name)
{
entity e = Get_Notif_Ent(net_type, net_name);
-
- dprint(sprintf("Get_Field_Value(%d, %d, %d); - name=%s, stringcount=%d, floatcount=%d...\n", field, net_type, net_name, e.nent_name, e.nent_stringcount, e.nent_floatcount));
-
- switch(field)
- {
- case F_NAME: { return e.nent_name; }
- case F_INFVAL: { return ftos(e.nent_infoname); }
- case F_CENVAL: { return ftos(e.nent_centername); }
- case F_STRNUM: { return ftos(e.nent_stringcount); }
- case F_FLNUM: { return ftos(e.nent_floatcount); }
- }
-
+ if(e) { return e.nent_name; }
+ backtrace(sprintf("Get_Notif_Name(%d, %d): Could not find entity!\n", net_type, net_name));
return "";
}
-// get the actual name of a notification and return it as a string
-/*string Get_Field_Value(float field, float net_type, float net_name)
+float Get_Notif_Infval(float net_type, float net_name)
{
- #ifdef NOTIFICATIONS_DEBUG
- dprint(sprintf("Get_Field_Value(%d, %d, %d);\n", field, net_type, net_name));
- #endif
-
- #define GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) switch(field) { \
- case F_NAME: { return VAR_TO_TEXT(name); } \
- case F_STRNUM: { return ftos(strnum); } \
- case F_FLNUM: { return ftos(flnum); } }
-
- #define GET_FIELD_VALUE_OUTPUT_PAIR(field,name,infoname,centername,strnum,flnum) switch(field) { \
- case F_NAME: { return VAR_TO_TEXT(name); } \
- case F_INFNAME: { return VAR_TO_TEXT(infoname); } \
- case F_CENNAME: { return VAR_TO_TEXT(centername); } \
- case F_INFVAL: { return ftos(infoname); } \
- case F_CENVAL: { return ftos(centername); } \
- case F_STRNUM: { return ftos(strnum); } \
- case F_FLNUM: { return ftos(flnum); } }
-
- #define CLPSE_GETVALUE(name,arg,earg) \
- #if name != NO_MSG \
- arg \
- #else \
- earg \
- #endif
+ entity e = Get_Notif_Ent(net_type, net_name);
+ if(e) { return e.nent_infoname; }
+ backtrace(sprintf("Get_Notif_Infval(%d, %d): Could not find entity!\n", net_type, net_name));
+ return NO_MSG;
+}
- switch(net_type)
- {
- case MSG_INFO:
- {
- #define MSG_INFO_NOTIF(name,strnum,flnum,args,hudargs,icon,normal,gentle) case name: { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) }
- NOTIF_SWITCH_LIST(MSG_INFO, net_name, return "")
- #undef MSG_INFO_NOTIF
- break;
- }
- case MSG_CENTER:
- {
- #define MSG_CENTER_NOTIF(name,strnum,flnum,args,cpid,durcnt,normal,gentle) case name: { GET_FIELD_VALUE_OUTPUT(field,name,strnum,flnum) }
- NOTIF_SWITCH_LIST(MSG_CENTER, net_name, return "")
- #undef MSG_CENTER_NOTIF
- break;
- }
- case MSG_WEAPON:
- {
- #define MSG_WEAPON_NOTIF(name,infoname,centername) case name: { GET_FIELD_VALUE_OUTPUT_PAIR(field,name, \
- CLPSE_GETVALUE(infoname, infoname, NO_MSG), CLPSE_GETVALUE(centername, centername, NO_MSG), \
- max(CLPSE_GETVALUE(infoname, stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), 0), CLPSE_GETVALUE(centername, stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername)), 0)), \
- max(CLPSE_GETVALUE(infoname, stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), 0), CLPSE_GETVALUE(centername, stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)), 0))) }
- NOTIF_SWITCH_LIST(MSG_WEAPON, net_name, return "")
- #undef MSG_WEAPON_NOTIF
- break;
- }
- case MSG_DEATH:
- {
- #define MSG_DEATH_NOTIF(name,infoname,centername) case name: { GET_FIELD_VALUE_OUTPUT_PAIR(field,name, \
- CLPSE_GETVALUE(infoname, infoname, NO_MSG), CLPSE_GETVALUE(centername, centername, NO_MSG), \
- max(CLPSE_GETVALUE(infoname, stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), 0), CLPSE_GETVALUE(centername, stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername)), 0)), \
- max(CLPSE_GETVALUE(infoname, stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), 0), CLPSE_GETVALUE(centername, stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)), 0))) }
- NOTIF_SWITCH_LIST(MSG_DEATH, net_name, return "")
- #undef MSG_DEATH_NOTIF
- break;
- }
- }
+float Get_Notif_Cenval(float net_type, float net_name)
+{
+ entity e = Get_Notif_Ent(net_type, net_name);
+ if(e) { return e.nent_centername; }
+ backtrace(sprintf("Get_Notif_Cenval(%d, %d): Could not find entity!\n", net_type, net_name));
+ return NO_MSG;
+}
- #undef GET_FIELD_VALUE_OUTPUT
- #undef GET_FIELD_VALUE_OUTPUT_PAIR
- #undef CLPSE_GETVALUE
- return "";
-}*/
+float Get_Notif_Strnum(float net_type, float net_name)
+{
+ entity e = Get_Notif_Ent(net_type, net_name);
+ if(e) { return e.nent_stringcount; }
+ backtrace(sprintf("Get_Notif_Strnum(%d, %d): Could not find entity!\n", net_type, net_name));
+ return NO_MSG;
+}
+
+float Get_Notif_Flnum(float net_type, float net_name)
+{
+ entity e = Get_Notif_Ent(net_type, net_name);
+ if(e) { return e.nent_floatcount; }
+ backtrace(sprintf("Get_Notif_Flnum(%d, %d): Could not find entity!\n", net_type, net_name));
+ return NO_MSG;
+}
#endif // ifndef MENUQC
void Dump_Notifications(float fh, float alsoprint)
{
float MSG_INFO_NOTIFS = 0, MSG_CENTER_NOTIFS = 0, MSG_WEAPON_NOTIFS = 0, MSG_DEATH_NOTIFS = 0;
- string notif_msg;
#define NOTIF_WRITE(type,name,text) { \
++##type##_NOTIFS; \
- notif_msg = sprintf("seta %s 1 // %s - %s\n", #name, #type, strreplace("\n", "\\n", text)); \
+ notif_msg = sprintf("seta %s 1 // %s - %s\n", name, #type, strreplace("\n", "\\n", text)); \
fputs(fh, notif_msg); \
if(alsoprint) { print(strreplace("^", "^^", notif_msg)); } }
+
+ #ifndef MENUQC
+ string notif_msg;
+ float i;
+ entity e;
+
+ for(i = 0; i < NOTIF_INFO_COUNT; ++i) { e = Get_Notif_Ent(MSG_INFO, i); NOTIF_WRITE(MSG_INFO, e.nent_name, e.nent_normal); }
+ for(i = 0; i < NOTIF_CENTER_COUNT; ++i) { e = Get_Notif_Ent(MSG_CENTER, i); NOTIF_WRITE(MSG_CENTER, e.nent_name, e.nent_normal); }
- #define MSG_INFO_NOTIF(name,strnum,flnum,args,hudargs,icon,normal,gentle) NOTIF_WRITE(MSG_INFO, name, normal)
- MSG_INFO_NOTIFICATIONS
- #undef MSG_INFO_NOTIF
-
- #define MSG_CENTER_NOTIF(name,strnum,flnum,args,cpid,durcnt,normal,gentle) NOTIF_WRITE(MSG_CENTER, name, normal)
- MSG_CENTER_NOTIFICATIONS
- #undef MSG_CENTER_NOTIF
-
- #define MSG_WEAPON_NOTIF(name,infoname,centername) NOTIF_WRITE(MSG_WEAPON, name, \
- sprintf("infoname: %s, centername: %s", VAR_TO_TEXT(infoname), VAR_TO_TEXT(centername)))
- MSG_WEAPON_NOTIFICATIONS
- #undef MSG_WEAPON_NOTIF
-
- #define MSG_DEATH_NOTIF(name,infoname,centername) NOTIF_WRITE(MSG_DEATH, name, \
- sprintf("infoname: %s, centername: %s", VAR_TO_TEXT(infoname), VAR_TO_TEXT(centername)))
- MSG_DEATH_NOTIFICATIONS
- #undef MSG_DEATH_NOTIF
-
+ for(i = 0; i < NOTIF_WEAPON_COUNT; ++i) { e = Get_Notif_Ent(MSG_WEAPON, i); NOTIF_WRITE(MSG_WEAPON, e.nent_name, sprintf("infoname: %s, centername: %s",
+ Get_Notif_Name(MSG_INFO, Get_Notif_Infval(MSG_WEAPON, i)),
+ Get_Notif_Name(MSG_CENTER, Get_Notif_Cenval(MSG_WEAPON, i)))); }
+
+ for(i = 0; i < NOTIF_DEATH_COUNT; ++i) { e = Get_Notif_Ent(MSG_DEATH, i); NOTIF_WRITE(MSG_DEATH, e.nent_name, sprintf("infoname: %s, centername: %s",
+ Get_Notif_Name(MSG_INFO, Get_Notif_Infval(MSG_DEATH, i)),
+ Get_Notif_Name(MSG_CENTER, Get_Notif_Cenval(MSG_DEATH, i)))); }
+
+ #endif
+
print(sprintf("Notification counts: MSG_INFO = %d, MSG_CENTER = %d, MSG_WEAPON = %d, MSG_DEATH = %d\n",
MSG_INFO_NOTIFS, MSG_CENTER_NOTIFS, MSG_WEAPON_NOTIFS, MSG_DEATH_NOTIFS));
}
#endif
- float stringcount = stof(Get_Field_Value(F_STRNUM, net_type, net_name));
- float floatcount = stof(Get_Field_Value(F_FLNUM, net_type, net_name));
+ float stringcount = Get_Notif_Strnum(net_type, net_name);
+ float floatcount = Get_Notif_Flnum(net_type, net_name);
string s1 = ((0 < stringcount) ? ...(0, string) : NO_STR_ARG);
string s2 = ((1 < stringcount) ? ...(1, string) : NO_STR_ARG);
#ifdef NOTIFICATIONS_DEBUG
{
dprint(sprintf("Local_Notification(%d, %s, %s, %s, %s, %s, %d, %d, %d, %d);\n",
- net_type, Get_Field_Value(F_NAME, net_type, net_name),
+ net_type, Get_Notif_Name(net_type, net_name),
s1, s2, s3, s4, f1, f2, f3, f4));
if((stringcount + floatcount) > count)
{ \
#if infoname != NO_MSG \
Local_Notification_Without_VarArgs(MSG_INFO, infoname, \
- stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), \
- stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), \
+ Get_Notif_Strnum(MSG_INFO, infoname), \
+ Get_Notif_Flnum(MSG_INFO, infoname), \
s1, s2, s3, s4, f1, f2, f3, f4); \
#endif \
#ifdef CSQC \
#if centername != NO_MSG \
Local_Notification_Without_VarArgs(MSG_CENTER, centername, \
- stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername)), \
- stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)), \
+ Get_Notif_Strnum(MSG_CENTER, centername), \
+ Get_Notif_Flnum(MSG_CENTER, centername), \
s1, s2, s3, s4, f1, f2, f3, f4); \
#endif \
#endif \
{ \
#if infoname != NO_MSG \
Local_Notification_Without_VarArgs(MSG_INFO, infoname, \
- stof(Get_Field_Value(F_STRNUM, MSG_INFO, infoname)), \
- stof(Get_Field_Value(F_FLNUM, MSG_INFO, infoname)), \
+ Get_Notif_Strnum(MSG_INFO, infoname), \
+ Get_Notif_Flnum(MSG_INFO, infoname), \
s1, s2, s3, s4, f1, f2, f3, f4); \
#endif \
#ifdef CSQC \
#if centername != NO_MSG \
Local_Notification_Without_VarArgs(MSG_CENTER, centername, \
- stof(Get_Field_Value(F_STRNUM, MSG_CENTER, centername)), \
- stof(Get_Field_Value(F_FLNUM, MSG_CENTER, centername)), \
+ Get_Notif_Strnum(MSG_CENTER, centername), \
+ Get_Notif_Flnum(MSG_CENTER, centername), \
s1, s2, s3, s4, f1, f2, f3, f4); \
#endif \
#endif \
float net_type = ReadByte();
float net_name = ReadShort();
- float stringcount = stof(Get_Field_Value(F_STRNUM, net_type, net_name));
- float floatcount = stof(Get_Field_Value(F_FLNUM, net_type, net_name));
+ float stringcount = Get_Notif_Strnum(net_type, net_name);
+ float floatcount = Get_Notif_Flnum(net_type, net_name);
string s1 = ((stringcount >= 1) ? ReadString() : NO_STR_ARG);
string s2 = ((stringcount >= 2) ? ReadString() : NO_STR_ARG);
float f4 = ((floatcount == 4) ? ReadLong() : NO_FL_ARG);
#ifdef NOTIFICATIONS_DEBUG
- dprint(sprintf("Read_Notification(%d) at %f: net_name = %s.\n", is_new, time, Get_Field_Value(F_NAME, net_type, net_name)));
+ dprint(sprintf("Read_Notification(%d) at %f: net_name = %s.\n", is_new, time, Get_Notif_Name(net_type, net_name)));
#endif
if(is_new) { Local_Notification_Without_VarArgs(net_type, net_name, stringcount, floatcount, s1, s2, s3, s4, f1, f2, f3, f4); }
#endif
// retreive counts for the arguments of this notification
- float stringcount = stof(Get_Field_Value(F_STRNUM, net_type, net_name));
- float floatcount = stof(Get_Field_Value(F_FLNUM, net_type, net_name));
-
- entity e = Get_Notif_Ent(net_type, net_name);
- print(sprintf("stringcount from ent: %d... floatcount from ent: %d\n", e.nent_stringcount, e.nent_floatcount));
+ float stringcount = Get_Notif_Strnum(net_type, net_name);
+ float floatcount = Get_Notif_Flnum(net_type, net_name);
#ifdef NOTIFICATIONS_DEBUG
{
dprint(sprintf("Send_Notification(%d, %d, %s, stringcount: %d, floatcount: %d, varargs: %d);\n",
- broadcast, net_type, Get_Field_Value(F_NAME, net_type, net_name), stringcount, floatcount, count));
+ broadcast, net_type, Get_Notif_Name(net_type, net_name), stringcount, floatcount, count));
if((stringcount + floatcount) > count)
{ backtrace(sprintf(strcat("Not enough arguments for Send_Notification! stringcount(%d) + floatcount(%d) > count(%d)\n",
string s1, string s2,
float f1, float f2, float f3)
{
- float stringcount = stof(Get_Field_Value(F_STRNUM, net_type, net_name));
- float floatcount = stof(Get_Field_Value(F_FLNUM, net_type, net_name));
+ float stringcount = Get_Notif_Strnum(net_type, net_name);
+ float floatcount = Get_Notif_Flnum(net_type, net_name);
Send_Notification_Without_VarArgs(broadcast, client, net_type, net_name, stringcount, floatcount, s1, s2, NO_STR_ARG, NO_STR_ARG, f1, f2, f3, NO_FL_ARG);
}