X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fminigames%2Fcl_minigames_hud.qc;h=f64ed44c84e800b919c901c501c134dbb3df4f8a;hp=50fd2bab58660bb0139d594523c6df20631ad87d;hb=3220cab5a7b69ced4a641504a6a5f4eccf2d3bfc;hpb=46a44942030ee6350c6847bf0efe75a1e0d54c6b diff --git a/qcsrc/common/minigames/cl_minigames_hud.qc b/qcsrc/common/minigames/cl_minigames_hud.qc index 50fd2bab5..f64ed44c8 100644 --- a/qcsrc/common/minigames/cl_minigames_hud.qc +++ b/qcsrc/common/minigames/cl_minigames_hud.qc @@ -1,6 +1,14 @@ #include "cl_minigames_hud.qh" + +#include + #include "minigames.qh" +.vector colormod; + +#include +#include + // whether the mouse is over the given panel bool HUD_mouse_over(entity somepanel) { @@ -17,7 +25,7 @@ bool HUD_mouse_over(entity somepanel) // Draws the minigame game board void HUD_MinigameBoard () { - entity hud_minigame = world; + entity hud_minigame = NULL; if(!autocvar__hud_configure) hud_minigame = active_minigame.descriptor; @@ -43,7 +51,7 @@ void HUD_MinigameBoard () // Draws the minigame status panel void HUD_MinigameStatus () { - entity hud_minigame = world; + entity hud_minigame = NULL; if(!autocvar__hud_configure) hud_minigame = active_minigame.descriptor; @@ -66,6 +74,7 @@ void HUD_MinigameStatus () mySize -= '2 2 0' * panel_bg_padding; } + HUD_Scale_Disable(); hud_minigame.minigame_hud_status(pos,mySize); } @@ -104,10 +113,10 @@ entity HUD_MinigameMenu_activeitem; // Click the given item void HUD_MinigameMenu_Click(entity menuitem) -{SELFPARAM(); +{ if ( menuitem ) { - WITH(entity, self, menuitem, menuitem.use()); + menuitem.use(menuitem, NULL, NULL); } } @@ -132,13 +141,13 @@ void HUD_MinigameMenu_EraseEntry ( entity e ) HUD_MinigameMenu_last_entry = e.list_prev; if ( HUD_MinigameMenu_activeitem == e ) - HUD_MinigameMenu_activeitem = world; + HUD_MinigameMenu_activeitem = NULL; remove(e); } // Minigame menu options: create entry -entity HUD_MinigameMenu_SpawnEntry(string s, vector offset, vector fontsize, vector color,void() click) +entity HUD_MinigameMenu_SpawnEntry(string s, vector offset, vector fontsize, vector color,void(entity, entity, entity) click) { entity entry = spawn(); entry.message = s; @@ -152,7 +161,7 @@ entity HUD_MinigameMenu_SpawnEntry(string s, vector offset, vector fontsize, vec } // Spawn a child entry of a collapsable entry -entity HUD_MinigameMenu_SpawnSubEntry(string s, void() click, entity parent) +entity HUD_MinigameMenu_SpawnSubEntry(string s, void(entity, entity, entity) click, entity parent) { vector item_fontsize = hud_fontsize*1.25; vector item_offset = '1 0 0' * item_fontsize_x; @@ -163,43 +172,43 @@ entity HUD_MinigameMenu_SpawnSubEntry(string s, void() click, entity parent) } // Click action for Create sub-entries -void HUD_MinigameMenu_ClickCreate_Entry() -{SELFPARAM(); - minigame_cmd("create ",self.netname); +void HUD_MinigameMenu_ClickCreate_Entry(entity this, entity actor, entity trigger) +{ + minigame_cmd("create ", this.netname); } // Helper click action for collapsible entries // returns true when you have to create the sub-entries -bool HUD_MinigameMenu_Click_ExpandCollapse() -{SELFPARAM(); +bool HUD_MinigameMenu_Click_ExpandCollapse(entity this) +{ entity e; - if ( self.flags & 2 ) + if ( this.flags & 2 ) { if ( HUD_MinigameMenu_activeitem && - HUD_MinigameMenu_activeitem.owner == self ) - HUD_MinigameMenu_activeitem = world; - self.flags &= ~2; - for ( e = self.list_next; e != world && e.owner == self; e = self.list_next ) + HUD_MinigameMenu_activeitem.owner == this ) + HUD_MinigameMenu_activeitem = NULL; + this.flags &= ~2; + for ( e = this.list_next; e != NULL && e.owner == this; e = this.list_next ) { if ( e.flags & 2 ) HUD_MinigameMenu_Click(e); - self.list_next = e.list_next; + this.list_next = e.list_next; remove(e); } - if ( self.list_next ) - self.list_next.list_prev = self; + if ( this.list_next ) + this.list_next.list_prev = this; else - HUD_MinigameMenu_last_entry = self; + HUD_MinigameMenu_last_entry = this; } else { - for ( e = HUD_MinigameMenu_entries; e != world; e = e.list_next ) + for ( e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next ) { - if ( e.flags & 2 && e.origin_x == self.origin_x) + if ( e.flags & 2 && e.origin_x == this.origin_x) HUD_MinigameMenu_Click(e); } - self.flags |= 2; + this.flags |= 2; return true; } @@ -207,14 +216,14 @@ bool HUD_MinigameMenu_Click_ExpandCollapse() } // Click action for the Create menu -void HUD_MinigameMenu_ClickCreate() -{SELFPARAM(); - if ( HUD_MinigameMenu_Click_ExpandCollapse() ) +void HUD_MinigameMenu_ClickCreate(entity this, entity actor, entity trigger) +{ + if ( HUD_MinigameMenu_Click_ExpandCollapse(this) ) { entity curr; - entity prev = self; + entity prev = this; FOREACH(Minigames, true, { - curr = HUD_MinigameMenu_SpawnSubEntry(it.message, HUD_MinigameMenu_ClickCreate_Entry, self); + curr = HUD_MinigameMenu_SpawnSubEntry(it.message, HUD_MinigameMenu_ClickCreate_Entry, this); curr.netname = it.netname; curr.model = strzone(minigame_texture(strcat(it.netname,"/icon"))); HUD_MinigameMenu_InsertEntry( curr, prev ); @@ -224,26 +233,26 @@ void HUD_MinigameMenu_ClickCreate() } // Click action for Join sub-entries -void HUD_MinigameMenu_ClickJoin_Entry() -{SELFPARAM(); - minigame_cmd("join ",self.netname); - HUD_MinigameMenu_EraseEntry(self); +void HUD_MinigameMenu_ClickJoin_Entry(entity this, entity actor, entity trigger) +{ + minigame_cmd("join ",this.netname); + HUD_MinigameMenu_EraseEntry(this); } // Click action for the Join menu -void HUD_MinigameMenu_ClickJoin() -{SELFPARAM(); - if ( HUD_MinigameMenu_Click_ExpandCollapse() ) +void HUD_MinigameMenu_ClickJoin(entity this, entity actor, entity trigger) +{ + if ( HUD_MinigameMenu_Click_ExpandCollapse(this) ) { - entity e = world; + entity e = NULL; entity curr; - entity prev = self; + entity prev = this; while( (e = find(e,classname,"minigame")) ) { if ( e != active_minigame ) { curr = HUD_MinigameMenu_SpawnSubEntry( - e.netname, HUD_MinigameMenu_ClickJoin_Entry, self ); + e.netname, HUD_MinigameMenu_ClickJoin_Entry, this ); curr.netname = e.netname; curr.model = strzone(minigame_texture(strcat(e.descriptor.netname,"/icon"))); HUD_MinigameMenu_InsertEntry( curr, prev ); @@ -256,37 +265,37 @@ void HUD_MinigameMenu_ClickJoin() /*// Temporary placeholder for un-implemented Click actions void HUD_MinigameMenu_ClickNoop() { - dprint("Placeholder for ",self.message,"\n"); + dprint("Placeholder for ",this.message,"\n"); }*/ // Click action for Quit -void HUD_MinigameMenu_ClickQuit() +void HUD_MinigameMenu_ClickQuit(entity this, entity actor, entity trigger) { deactivate_minigame(); minigame_cmd("end"); } // Click action for Invite sub-entries -void HUD_MinigameMenu_ClickInvite_Entry() -{SELFPARAM(); - minigame_cmd("invite #",self.netname); +void HUD_MinigameMenu_ClickInvite_Entry(entity this, entity actor, entity trigger) +{ + minigame_cmd("invite #",this.netname); } // Click action for the Invite menu -void HUD_MinigameMenu_ClickInvite() -{SELFPARAM(); - if ( HUD_MinigameMenu_Click_ExpandCollapse() ) +void HUD_MinigameMenu_ClickInvite(entity this, entity actor, entity trigger) +{ + if ( HUD_MinigameMenu_Click_ExpandCollapse(this) ) { entity e; - entity prev = self; + entity prev = this; for(int i = 0; i < maxclients; ++i) { if ( player_localnum != i && playerslots[i] && entcs_GetName(i) != "" && - !findfloat(world,minigame_playerslot,i+1) && playerslots[i].ping ) + !findfloat(NULL,minigame_playerslot,i+1) && playerslots[i].ping ) { e = HUD_MinigameMenu_SpawnSubEntry( strzone(entcs_GetName(i)), HUD_MinigameMenu_ClickInvite_Entry, - self ); + this ); e.flags |= 1; e.netname = strzone(ftos(i+1)); e.origin_x *= 2; @@ -297,10 +306,10 @@ void HUD_MinigameMenu_ClickInvite() } } -void HUD_MinigameMenu_ClickCustomEntry() -{SELFPARAM(); +void HUD_MinigameMenu_ClickCustomEntry(entity this, entity actor, entity trigger) +{ if ( active_minigame ) - active_minigame.minigame_event(active_minigame,"menu_click",self.netname); + active_minigame.minigame_event(active_minigame,"menu_click",this.netname); } // Adds a game-specific entry to the menu @@ -314,17 +323,17 @@ void HUD_MinigameMenu_CustomEntry(entity parent, string menumessage, string even } // Click action for the Current Game menu -void HUD_MinigameMenu_ClickCurrentGame() -{SELFPARAM(); - if ( HUD_MinigameMenu_Click_ExpandCollapse() ) +void HUD_MinigameMenu_ClickCurrentGame(entity this, entity actor, entity trigger) +{ + if ( HUD_MinigameMenu_Click_ExpandCollapse(this) ) { HUD_MinigameMenu_InsertEntry( HUD_MinigameMenu_SpawnSubEntry( - _("Quit"), HUD_MinigameMenu_ClickQuit, self ), self); + _("Quit"), HUD_MinigameMenu_ClickQuit, this ), this); - active_minigame.minigame_event(active_minigame,"menu_show",self); + active_minigame.minigame_event(active_minigame,"menu_show",this); HUD_MinigameMenu_InsertEntry( HUD_MinigameMenu_SpawnSubEntry( - _("Invite"), HUD_MinigameMenu_ClickInvite, self), self); + _("Invite"), HUD_MinigameMenu_ClickInvite, this), this); } } // Whether the minigame menu panel is open @@ -334,19 +343,19 @@ bool HUD_MinigameMenu_IsOpened() } // Close the minigame menu panel -void HUD_MinigameMenu_Close() +void HUD_MinigameMenu_Close(entity this, entity actor, entity trigger) { if ( HUD_MinigameMenu_IsOpened() ) { entity e, p; - for ( e = HUD_MinigameMenu_entries; e != world; e = p ) + for ( e = HUD_MinigameMenu_entries; e != NULL; e = p ) { p = e.list_next; remove(e); } - HUD_MinigameMenu_entries = world; - HUD_MinigameMenu_last_entry = world; - HUD_MinigameMenu_activeitem = world; + HUD_MinigameMenu_entries = NULL; + HUD_MinigameMenu_last_entry = NULL; + HUD_MinigameMenu_activeitem = NULL; if(autocvar_hud_cursormode) if ( !autocvar__hud_configure ) setcursormode(0); @@ -359,7 +368,7 @@ void HUD_MinigameMenu_CurrentButton() entity e; if ( active_minigame ) { - for ( e = HUD_MinigameMenu_last_entry; e != world; e = e.list_prev ) + for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = e.list_prev ) if ( e.classname == "hud_minigamemenu_exit" ) { HUD_MinigameMenu_EraseEntry(e); @@ -375,7 +384,7 @@ void HUD_MinigameMenu_CurrentButton() else { entity p; - for ( e = HUD_MinigameMenu_last_entry; e != world; e = p.list_prev ) + for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = p.list_prev ) { p = e; if ( e.classname == "hud_minigamemenu_current" ) @@ -387,7 +396,7 @@ void HUD_MinigameMenu_CurrentButton() break; } } - for ( e = HUD_MinigameMenu_last_entry; e != world; e = e.list_prev ) + for ( e = HUD_MinigameMenu_last_entry; e != NULL; e = e.list_prev ) if ( e.classname == "hud_minigamemenu_exit" ) return; entity exit = HUD_MinigameMenu_SpawnEntry( @@ -409,7 +418,7 @@ void HUD_MinigameMenu_Open() _("Join"),'0 0 0',hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_ClickJoin), HUD_MinigameMenu_last_entry ); HUD_MinigameMenu_CurrentButton(); - HUD_MinigameMenu_activeitem = world; + HUD_MinigameMenu_activeitem = NULL; if(autocvar_hud_cursormode) setcursormode(1); } @@ -432,9 +441,9 @@ void HUD_MinigameMenu_MouseInput() panel_pos_y += hud_fontsize_y*2; - HUD_MinigameMenu_activeitem = world; + HUD_MinigameMenu_activeitem = NULL; vector sz; - for ( e = HUD_MinigameMenu_entries; e != world; e = e.list_next ) + for ( e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next ) { sz = eX*panel_size_x + eY*e.size_y; if ( e.model ) @@ -468,6 +477,7 @@ void HUD_MinigameMenu () HUD_Panel_UpdateCvars(); + HUD_Scale_Disable(); HUD_Panel_DrawBg(1); if(panel_bg_padding) @@ -483,7 +493,7 @@ void HUD_MinigameMenu () vector offset; float itemh; vector imgsz = '22 22 0'; // NOTE: if changed, edit where HUD_MinigameMenu_activeitem is selected - for ( entity e = HUD_MinigameMenu_entries; e != world; e = e.list_next ) + for ( entity e = HUD_MinigameMenu_entries; e != NULL; e = e.list_next ) { color = e.colormod; @@ -657,7 +667,7 @@ float HUD_Minigame_InputEvent(float bInputType, float nPrimary, float nSecondary } else if ( nPrimary == K_ESCAPE ) { - HUD_MinigameMenu_Close(); + HUD_MinigameMenu_Close(NULL, NULL, NULL); return true; } }