From c0a5cc3e5706d5bdc75bfa548d8f2a8f4a8cdc96 Mon Sep 17 00:00:00 2001 From: otta8634 Date: Thu, 9 Jan 2025 13:00:10 +0800 Subject: [PATCH] Standardize display and describe methods Previously they were implemented a bit differently for each class, for some reason. --- qcsrc/common/items/item.qh | 2 +- qcsrc/common/mapinfo.qh | 5 ++--- qcsrc/common/monsters/monster.qh | 9 ++++++++- qcsrc/common/mutators/base.qh | 7 ++++--- qcsrc/common/mutators/mutator/buffs/buffs.qh | 10 +++++----- qcsrc/common/mutators/mutator/nades/nades.qh | 7 ++++--- qcsrc/common/mutators/mutator/powerups/powerups.qh | 2 +- qcsrc/common/turrets/turret.qh | 7 +++++-- qcsrc/common/vehicles/vehicle.qh | 5 +++-- qcsrc/common/weapons/weapon.qh | 5 +++-- qcsrc/menu/xonotic/guide/pages.qc | 3 ++- 11 files changed, 38 insertions(+), 24 deletions(-) diff --git a/qcsrc/common/items/item.qh b/qcsrc/common/items/item.qh index 299bd45b51..b44d9c7a6e 100644 --- a/qcsrc/common/items/item.qh +++ b/qcsrc/common/items/item.qh @@ -136,7 +136,7 @@ CLASS(GameItem, Object) METHOD(GameItem, describe, string(GameItem this)) { TC(GameItem, this); - return SUPER(Object).describe(this); + return SUPER(GameItem).describe(this); } #endif METHOD(GameItem, display, void(GameItem this, void(string name, string icon) returns)) diff --git a/qcsrc/common/mapinfo.qh b/qcsrc/common/mapinfo.qh index 1cedeaf1d2..659d8c040f 100644 --- a/qcsrc/common/mapinfo.qh +++ b/qcsrc/common/mapinfo.qh @@ -102,14 +102,13 @@ CLASS(Gametype, Object) METHOD(Gametype, describe, string(Gametype this)) { TC(Gametype, this); - return SUPER(Object).describe(this); + return SUPER(Gametype).describe(this); } #endif - METHOD(Gametype, display, void(Gametype this, void(string name, string icon) returns)) { TC(Gametype, this); - returns(this.message, strcat("gametype_", this.mdl)); + returns(this.m_name, 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)) diff --git a/qcsrc/common/monsters/monster.qh b/qcsrc/common/monsters/monster.qh index 87b0d186ee..fcd4b5d72e 100644 --- a/qcsrc/common/monsters/monster.qh +++ b/qcsrc/common/monsters/monster.qh @@ -58,8 +58,15 @@ CLASS(Monster, Object) /** (BOTH?) sets animations for monster */ METHOD(Monster, mr_anim, bool(Monster this, entity actor)) { TC(Monster, this); return false; } #ifdef MENUQC - METHOD(Monster, describe, string(Monster this)) { TC(Monster, this); return SUPER(Object).describe(this); } + METHOD(Monster, describe, string(Monster this)) { + TC(Monster, this); + return SUPER(Monster).describe(this); + } #endif + METHOD(Monster, display, void(Monster this, void(string name, string icon) returns)) { + TC(Monster, this); + returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null); + } ENDCLASS(Monster) diff --git a/qcsrc/common/mutators/base.qh b/qcsrc/common/mutators/base.qh index de637b0770..eb8b30ca73 100644 --- a/qcsrc/common/mutators/base.qh +++ b/qcsrc/common/mutators/base.qh @@ -160,12 +160,13 @@ CLASS(Mutator, Object) ATTRIB(Mutator, mutatorname, string); ATTRIB(Mutator, mutatorfunc, mutatorfunc_t); ATTRIB(Mutator, mutatorcheck, bool()); - METHOD(Mutator, describe, string(entity this)) { + METHOD(Mutator, describe, string(Mutator this)) { TC(Mutator, this); return SUPER(Mutator).describe(this); } - METHOD(Mutator, display, void(entity this, void(string name, string icon) returns)) { - returns(this.m_name, this.m_icon); + 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); } ENDCLASS(Mutator) diff --git a/qcsrc/common/mutators/mutator/buffs/buffs.qh b/qcsrc/common/mutators/mutator/buffs/buffs.qh index 0f571931be..a590c73cd1 100644 --- a/qcsrc/common/mutators/mutator/buffs/buffs.qh +++ b/qcsrc/common/mutators/mutator/buffs/buffs.qh @@ -22,19 +22,19 @@ CLASS(Buff, StatusEffects) ATTRIB(Buff, m_skin, int, 0); ATTRIB(Buff, m_lifetime, float, 60); ATTRIB(Buff, m_sprite, string, ""); - METHOD(Buff, display, void(entity this, void(string name, string icon) returns)) { - returns(this.m_name, sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon)); + METHOD(Buff, display, void(Buff this, void(string name, string icon) returns)) { + TC(Buff, this); + returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null); } #ifdef SVQC - METHOD(Buff, m_time, float(Buff this)) - { + METHOD(Buff, m_time, float(Buff this)) { return cvar(strcat("g_buffs_", this.netname, "_time")); } #endif #ifdef MENUQC METHOD(Buff, describe, string(Buff this)) { TC(Buff, this); - return SUPER(Object).describe(this); + return SUPER(Buff).describe(this); } #endif ENDCLASS(Buff) diff --git a/qcsrc/common/mutators/mutator/nades/nades.qh b/qcsrc/common/mutators/mutator/nades/nades.qh index b72481fe30..cedf5d35c3 100644 --- a/qcsrc/common/mutators/mutator/nades/nades.qh +++ b/qcsrc/common/mutators/mutator/nades/nades.qh @@ -125,13 +125,14 @@ CLASS(Nade, Object) ATTRIB(Nade, m_alpha, float, 1); ATTRIBARRAY(Nade, m_projectile, int, 2); ATTRIBARRAY(Nade, m_trail, entity, 2); - METHOD(Nade, display, void(entity this, void(string name, string icon) returns)) { - returns(this.m_name, sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon)); + METHOD(Nade, display, void(Nade this, void(string name, string icon) returns)) { + TC(Nade, this); + returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null); } #ifdef MENUQC METHOD(Nade, describe, string(Nade this)) { TC(Nade, this); - return SUPER(Object).describe(this); + return SUPER(Nade).describe(this); } #endif ENDCLASS(Nade) diff --git a/qcsrc/common/mutators/mutator/powerups/powerups.qh b/qcsrc/common/mutators/mutator/powerups/powerups.qh index 42e43d3849..e27f454d69 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerups.qh +++ b/qcsrc/common/mutators/mutator/powerups/powerups.qh @@ -13,7 +13,7 @@ CLASS(Powerup, Pickup) METHOD(Powerup, describe, string(Powerup this)) { TC(Powerup, this); - return SUPER(Object).describe(this); + return SUPER(Powerup).describe(this); } #endif ENDCLASS(Powerup) diff --git a/qcsrc/common/turrets/turret.qh b/qcsrc/common/turrets/turret.qh index 700e67a66f..31e26e3f8e 100644 --- a/qcsrc/common/turrets/turret.qh +++ b/qcsrc/common/turrets/turret.qh @@ -5,6 +5,8 @@ CLASS(Turret, Object) ATTRIB(Turret, m_id, int, 0); + /** icon */ + ATTRIB(Turret, m_icon, string); /** short name */ ATTRIB(Turret, netname, string); /** human readable name */ @@ -25,7 +27,8 @@ CLASS(Turret, Object) ATTRIB(Turret, m_maxs, vector, '0 0 0'); METHOD(Turret, display, void(Turret this, void(string name, string icon) returns)) { - returns(this.m_name, string_null); + TC(Turret, this); + returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null); } /** (BOTH) setup turret data */ METHOD(Turret, tr_setup, void(Turret this, entity it)) { @@ -58,7 +61,7 @@ CLASS(Turret, Object) #ifdef MENUQC METHOD(Turret, describe, string(Turret this)) { TC(Turret, this); - return SUPER(Object).describe(this); + return SUPER(Turret).describe(this); } #endif ENDCLASS(Turret) diff --git a/qcsrc/common/vehicles/vehicle.qh b/qcsrc/common/vehicles/vehicle.qh index dd6960fd13..5837ba1f5f 100644 --- a/qcsrc/common/vehicles/vehicle.qh +++ b/qcsrc/common/vehicles/vehicle.qh @@ -40,10 +40,11 @@ CLASS(Vehicle, Object) #ifdef MENUQC METHOD(Vehicle, describe, string(Vehicle this)) { TC(Vehicle, this); - return SUPER(Object).describe(this); + return SUPER(Vehicle).describe(this); } #endif - METHOD(Vehicle, display, void(entity this, void(string name, string icon) returns)) { + METHOD(Vehicle, display, void(Vehicle this, void(string name, string icon) returns)) { + TC(Vehicle, this); returns(this.m_name, this.m_icon ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.m_icon) : string_null); } diff --git a/qcsrc/common/weapons/weapon.qh b/qcsrc/common/weapons/weapon.qh index bfa169666b..f9f1d6f5bb 100644 --- a/qcsrc/common/weapons/weapon.qh +++ b/qcsrc/common/weapons/weapon.qh @@ -126,13 +126,14 @@ CLASS(Weapon, Object) METHOD(Weapon, wr_pickup, void(Weapon this, entity actor, .entity weaponentity)) {} /** (SERVER) update cvar based properties */ METHOD(Weapon, wr_update, void(Weapon this)) {} - METHOD(Weapon, display, void(entity this, void(string name, string icon) returns)) { + METHOD(Weapon, display, void(Weapon this, void(string name, string icon) returns)) { + TC(Weapon, this); returns(this.m_name, this.model2 ? sprintf("/gfx/hud/%s/%s", cvar_string("menu_skin"), this.model2) : string_null); } #ifdef MENUQC METHOD(Weapon, describe, string(Weapon this)) { TC(Weapon, this); - return SUPER(Object).describe(this); + return SUPER(Weapon).describe(this); } #endif ENDCLASS(Weapon) diff --git a/qcsrc/menu/xonotic/guide/pages.qc b/qcsrc/menu/xonotic/guide/pages.qc index b6b9af2adf..aa8c70d6ff 100644 --- a/qcsrc/menu/xonotic/guide/pages.qc +++ b/qcsrc/menu/xonotic/guide/pages.qc @@ -7,12 +7,13 @@ METHOD(GuidePage, describe, string(GuidePage this)) } METHOD(GuidePage, display, void(GuidePage this, void(string name, string icon) returns)) { + TC(GuidePage, this); string icon_str; if (this.m_title == _("Introduction")) icon_str = "gametype_dm"; else if (this.m_title == _("Movement")) icon_str = "gametype_inv"; else - icon_str = "nopreview_map"; + icon_str = string_null; returns(this.m_title, icon_str); } -- 2.39.5