One example bug introduced is team-based gamemodes being no longer team-based, and some scoreboard funkiness found by @terencehill.
Gametypes also use mutators, seems that this commit (specifically changing .m_name -> .mutatorname) didn't properly account for that somehow.
I couldn't find the .m_name access that needed to be changed, so instead I reverted that change and added .message to Mutator.
In future for consistency's sake .m_name should be renamed to .mutatorname in Mutator, and .message to .m_name in Gametype and Mutator.
ATTRIB(Gametype, mdl, string);
/** human readable name */
ATTRIB(Gametype, message, string);
- ATTRIB(Gametype, m_name, string);
/** color */
ATTRIB(Gametype, m_color, vector, '1 1 1');
/** does this gametype support teamplay? */
METHOD(Gametype, display, void(Gametype this, void(string name, string icon) returns))
{
TC(Gametype, this);
- returns(this.m_name, this.mdl ? strcat("gametype_", this.mdl) : string_null);
+ returns(this.message, this.mdl ? strcat("gametype_", this.mdl) : string_null);
}
METHOD(Gametype, gametype_init, void(Gametype this, string hname, string sname, string g_name, int gflags, string mutators, string defaults, string gdescription))
this.netname = g_name;
this.mdl = sname;
this.message = hname;
- this.m_name = hname;
this.team = (gflags & GAMETYPE_FLAG_TEAMPLAY);
this.m_mutators = cons(sname, mutators);
this.model2 = defaults;
CLASS(Mutator, Object)
ATTRIB(Mutator, m_id, int, 0);
- ATTRIB(Mutator, m_name, string);
+ ATTRIB(Mutator, message, string);
ATTRIB(Mutator, m_color, vector, '1 1 1');
ATTRIB(Mutator, m_icon, string);
- ATTRIB(Mutator, mutatorname, string);
+ ATTRIB(Mutator, m_name, string);
ATTRIB(Mutator, mutatorfunc, mutatorfunc_t);
ATTRIB(Mutator, mutatorcheck, bool());
METHOD(Mutator, describe, string(Mutator this)) {
}
METHOD(Mutator, display, void(Mutator this, void(string name, string icon) returns)) {
TC(Mutator, this);
- returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null);
+ returns(this.message, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null);
}
ENDCLASS(Mutator)
mutatorfunc_t func = mut.mutatorfunc;
if (!func(MUTATOR_ADDING)) {
// good
- if (mutator_log) LOG_TRACEF("Mutator: added %s", mut.mutatorname);
+ if (mutator_log) LOG_TRACEF("Mutator: added %s", mut.m_name);
#ifdef SVQC
Net_LinkEntity(mut, false, 0, Mutator_SendEntity);
#endif
// baaaaad
error("Mutator_Remove: removing mutator failed");
}
- if (mutator_log) LOG_TRACEF("Mutator: removed %s", mut.mutatorname);
+ if (mutator_log) LOG_TRACEF("Mutator: removed %s", mut.m_name);
#ifdef SVQC
Net_UnlinkEntity(mut);
#endif
bool MUTATOR_##id##_check() { return dependence; } \
REGISTER(Mutators, MUTATOR, id, m_id, NEW(cname)) \
{ \
- this.mutatorname = #id; \
+ this.m_name = #id; \
this.mutatorfunc = MUTATORFUNC_##id; \
this.mutatorcheck = MUTATOR_##id##_check; \
} \
#ifdef MENUQC
CLASS(MutatorBloodLoss, Mutator)
- ATTRIB(MutatorBloodLoss, m_name, string, _("Blood loss"));
+ ATTRIB(MutatorBloodLoss, message, string, _("Blood loss"));
ENDCLASS(MutatorBloodLoss)
REGISTER_MUTATOR(bloodloss, true, MutatorBloodLoss);
#ifdef MENUQC
CLASS(MutatorCloaked, Mutator)
- ATTRIB(MutatorCloaked, m_name, string, _("Cloaked"));
+ ATTRIB(MutatorCloaked, message, string, _("Cloaked"));
ENDCLASS(MutatorCloaked)
REGISTER_MUTATOR(cloaked, true, MutatorCloaked);
#ifdef MENUQC
CLASS(MutatorDodging, Mutator)
- ATTRIB(MutatorDodging, m_name, string, _("Dodging"));
+ ATTRIB(MutatorDodging, message, string, _("Dodging"));
ENDCLASS(MutatorDodging)
REGISTER_MUTATOR(dodging, true, MutatorDodging);
#ifdef MENUQC
CLASS(MutatorGrapplingHook, Mutator)
- ATTRIB(MutatorGrapplingHook, m_name, string, _("Hook"));
+ ATTRIB(MutatorGrapplingHook, message, string, _("Hook"));
ENDCLASS(MutatorGrapplingHook)
REGISTER_MUTATOR(hook, true, MutatorGrapplingHook);
#ifdef MENUQC
CLASS(MutatorInstagib, Mutator)
- ATTRIB(MutatorInstagib, m_name, string, _("InstaGib"));
+ ATTRIB(MutatorInstagib, message, string, _("InstaGib"));
ENDCLASS(MutatorInstagib)
REGISTER_MUTATOR(mutator_instagib, true, MutatorInstagib);
#include <common/mutators/base.qh>
CLASS(MutatorNades, Mutator)
- ATTRIB(MutatorNades, m_name, string, _("Nades"));
+ ATTRIB(MutatorNades, message, string, _("Nades"));
ENDCLASS(MutatorNades)
REGISTER_MUTATOR(nades, true, MutatorNades);
#ifdef MENUQC
CLASS(MutatorNewToys, Mutator)
- ATTRIB(MutatorNewToys, m_name, string, _("New Toys"));
+ ATTRIB(MutatorNewToys, message, string, _("New Toys"));
ENDCLASS(MutatorNewToys)
REGISTER_MUTATOR(nt, true, MutatorNewToys);
#ifdef MENUQC
CLASS(MutatorNIX, Mutator)
- ATTRIB(MutatorNIX, m_name, string, _("NIX"));
+ ATTRIB(MutatorNIX, message, string, _("NIX"));
ENDCLASS(MutatorNIX)
REGISTER_MUTATOR(nix, true, MutatorNIX);
#ifdef MENUQC
CLASS(MutatorOffhandBlaster, Mutator)
- ATTRIB(MutatorOffhandBlaster, m_name, string, _("Offhand blaster"));
+ ATTRIB(MutatorOffhandBlaster, message, string, _("Offhand blaster"));
ENDCLASS(MutatorOffhandBlaster)
REGISTER_MUTATOR(offhand_blaster, true, MutatorOffhandBlaster);
#ifdef MENUQC
CLASS(MutatorOverkill, Mutator)
- ATTRIB(MutatorOverkill, m_name, string, _("Overkill"));
+ ATTRIB(MutatorOverkill, message, string, _("Overkill"));
ENDCLASS(MutatorOverkill)
REGISTER_MUTATOR(ok, true, MutatorOverkill);
#ifdef MENUQC
CLASS(MutatorPinata, Mutator)
- ATTRIB(MutatorPinata, m_name, string, _("Piñata"));
+ ATTRIB(MutatorPinata, message, string, _("Piñata"));
ENDCLASS(MutatorPinata)
REGISTER_MUTATOR(pinata, true, MutatorPinata);
#ifdef MENUQC
CLASS(MutatorRocketFlying, Mutator)
- ATTRIB(MutatorRocketFlying, m_name, string, _("Rocket Flying"));
+ ATTRIB(MutatorRocketFlying, message, string, _("Rocket Flying"));
ENDCLASS(MutatorRocketFlying)
REGISTER_MUTATOR(rocketflying, true, MutatorRocketFlying);
#ifdef MENUQC
CLASS(MutatorTouchExplode, Mutator)
- ATTRIB(MutatorTouchExplode, m_name, string, _("Touch explode"));
+ ATTRIB(MutatorTouchExplode, message, string, _("Touch explode"));
ENDCLASS(MutatorTouchExplode)
REGISTER_MUTATOR(touchexplode, true, MutatorTouchExplode);
#ifdef MENUQC
CLASS(MutatorVampire, Mutator)
- ATTRIB(MutatorVampire, m_name, string, _("Vampire"));
+ ATTRIB(MutatorVampire, message, string, _("Vampire"));
ENDCLASS(MutatorVampire)
REGISTER_MUTATOR(vampire, true, MutatorVampire);
#ifdef MENUQC
CLASS(MutatorWallJump, Mutator)
- ATTRIB(MutatorWallJump, m_name, string, _("Wall jumping"));
+ ATTRIB(MutatorWallJump, message, string, _("Wall jumping"));
ENDCLASS(MutatorWallJump)
REGISTER_MUTATOR(walljump, true, MutatorWallJump);
}
// useful macros for the guide
-#define COLORED_NAME(this) strcat(rgb_to_hexcolor(this.m_color), this.m_name, "^7")
-#define COLORED_NAME_WITH_CONCAT(this, concat) strcat(rgb_to_hexcolor(this.m_color), this.m_name, " ", concat, "^7")
+// prefer .message if available
+// TODO: use either .message or .m_name for everything. currently only Gametypes and Mutators use .message
+#define COLORED_NAME(this) strcat(rgb_to_hexcolor(this.m_color), (this.message ? this.message : this.m_name), "^7")
+#define COLORED_NAME_WITH_CONCAT(this, concat) strcat(rgb_to_hexcolor(this.m_color), (this.message ? this.message : this.m_name), " ", concat, "^7")