]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/minigames/minigame/pp.qc
Merge branch 'master' into terencehill/hud_updates
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / minigames / minigame / pp.qc
index eacb985beba26a91e069ed1dd33147d9127e1aa7..e05658cbf2c0b486f9ccdbeb01e2a53517c2b91b 100644 (file)
@@ -1,3 +1,6 @@
+#include "pp.qh"
+REGISTER_MINIGAME(pp, "Push-Pull");
+
 const int PP_TURN_PLACE = 0x0100; // player has to place a piece on the board
 const int PP_TURN_WIN   = 0x0200; // player has won
 const int PP_TURN_DRAW  = 0x0400; // players have equal scores
@@ -15,6 +18,8 @@ const int PP_NUM_CNT = 7;
 
 const int PP_TILE_SIZE = 7;
 
+.int cnt;
+
 .int pp_team1_score;
 .int pp_team2_score;
 
@@ -25,11 +30,11 @@ const int PP_TILE_SIZE = 7;
 // find tic tac toe piece given its tile name
 entity pp_find_piece(entity minig, string tile)
 {
-       entity e = world;
+       entity e = NULL;
        while ( ( e = findentity(e,owner,minig) ) )
                if ( e.classname == "minigame_board_piece" && e.netname == tile )
                        return e;
-       return world;
+       return NULL;
 }
 
 // check if the tile name is valid (3x3 grid)
@@ -58,7 +63,7 @@ bool pp_winning_piece(entity piece)
        if(!pp_valid_tile(minigame_tile_buildname(letter+1,number-1)) || pp_find_piece(piece.owner,minigame_tile_buildname(letter+1,number-1)).team == 5)
        if(!pp_valid_tile(minigame_tile_buildname(letter-1,number+1)) || pp_find_piece(piece.owner,minigame_tile_buildname(letter-1,number+1)).team == 5)
                return true;
-       
+
        return false;
 }
 
@@ -117,7 +122,7 @@ void pp_move(entity minigame, entity player, string pos )
                        if(existing)
                        {
                                if(existing.netname) { strunzone(existing.netname); }
-                               remove(existing);
+                               delete(existing);
                        }
 
                        entity piece = msle_spawn(minigame,"minigame_board_piece");
@@ -160,7 +165,7 @@ void pp_setup_pieces(entity minigame)
                }
        }
 
-       minigame.pp_curr_piece = world;
+       minigame.pp_curr_piece = NULL;
 }
 
 // request a new match
@@ -179,10 +184,10 @@ void pp_next_match(entity minigame, entity player)
        {
                minigame.minigame_flags = PP_TURN_PLACE | minigame.pp_nexteam;
                minigame_server_sendflags(minigame,MINIG_SF_UPDATE);
-               entity e = world;
+               entity e = NULL;
                while ( ( e = findentity(e,owner,minigame) ) )
                        if ( e.classname == "minigame_board_piece" )
-                               remove(e);
+                               delete(e);
                minigame.pp_team1_score = 0;
                minigame.pp_team2_score = 0;
 
@@ -206,12 +211,12 @@ int pp_server_event(entity minigame, string event, ...)
                }
                case "end":
                {
-                       entity e = world;
+                       entity e = NULL;
                        while( (e = findentity(e, owner, minigame)) )
                        if(e.classname == "minigame_board_piece")
                        {
                                if(e.netname) { strunzone(e.netname); }
-                               remove(e);
+                               delete(e);
                        }
                        return false;
                }
@@ -233,8 +238,8 @@ int pp_server_event(entity minigame, string event, ...)
                {
                        switch(argv(0))
                        {
-                               case "move": 
-                                       pp_move(minigame, ...(0,entity), ...(1,int) == 2 ? argv(1) : string_null ); 
+                               case "move":
+                                       pp_move(minigame, ...(0,entity), ...(1,int) == 2 ? argv(1) : string_null );
                                        return true;
                                case "next":
                                        pp_next_match(minigame,...(0,entity));
@@ -257,7 +262,7 @@ int pp_server_event(entity minigame, string event, ...)
                        return false;
                }
        }
-       
+
        return false;
 }
 
@@ -275,13 +280,13 @@ void pp_hud_board(vector pos, vector mySize)
        minigame_hud_fitsqare(pos, mySize);
        pp_boardpos = pos;
        pp_boardsize = mySize;
-       
+
        minigame_hud_simpleboard(pos,mySize,minigame_texture("pp/board"));
 
        vector tile_size = minigame_hud_denormalize_size('1 1 0'/PP_TILE_SIZE,pos,mySize);
        vector tile_pos;
 
-       active_minigame.pp_curr_piece = world;
+       active_minigame.pp_curr_piece = NULL;
        entity e;
        FOREACH_MINIGAME_ENTITY(e)
        if(e.classname == "minigame_board_piece")
@@ -305,7 +310,7 @@ void pp_hud_board(vector pos, vector mySize)
                                case 2: tile_color = '0.3 0.3 1'; break;
                                // 3, 4 coming later?
                        }
-                       
+
                        string tile_name = strcat("pp/piece",ftos(e.team));
                        if(e.team == 5) { tile_name = "pp/piece_taken"; }
 
@@ -314,12 +319,12 @@ void pp_hud_board(vector pos, vector mySize)
                                tile_name = "pp/piece_current";
 
                                // draw the splat too
-                               minigame_drawpic_centered( tile_pos,  
+                               minigame_drawpic_centered( tile_pos,
                                                minigame_texture("pp/piece_taken"),
                                                tile_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL );
                        }
 
-                       minigame_drawpic_centered( tile_pos,  
+                       minigame_drawpic_centered( tile_pos,
                                        minigame_texture(tile_name),
                                        tile_size, tile_color, panel_fg_alpha, DRAWFLAG_NORMAL );
                }
@@ -330,7 +335,7 @@ void pp_hud_board(vector pos, vector mySize)
        {
                tile_pos = minigame_tile_pos(pp_curr_pos,PP_LET_CNT,PP_NUM_CNT);
                tile_pos = minigame_hud_denormalize(tile_pos,pos,mySize);
-               minigame_drawpic_centered( tile_pos,  
+               minigame_drawpic_centered( tile_pos,
                                minigame_texture("pp/piece_current"),
                                tile_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL );
        }
@@ -338,7 +343,7 @@ void pp_hud_board(vector pos, vector mySize)
        {
                tile_pos = minigame_tile_pos(pp_curr_pos,PP_LET_CNT,PP_NUM_CNT);
                tile_pos = minigame_hud_denormalize(tile_pos,pos,mySize);
-               minigame_drawpic_centered( tile_pos,  
+               minigame_drawpic_centered( tile_pos,
                                minigame_texture("pp/piece_selected"),
                                tile_size, '1 1 1', panel_fg_alpha / 2, DRAWFLAG_NORMAL );
        }
@@ -348,20 +353,20 @@ void pp_hud_board(vector pos, vector mySize)
                vector winfs = hud_fontsize*2;
                string playername = "";
                FOREACH_MINIGAME_ENTITY(e)
-                       if ( e.classname == "minigame_player" && 
+                       if ( e.classname == "minigame_player" &&
                                        e.team == (active_minigame.minigame_flags & PP_TURN_TEAM) )
-                               playername = GetPlayerName(e.minigame_playerslot-1);
-               
+                               playername = entcs_GetName(e.minigame_playerslot-1);
+
                vector win_pos = pos+eY*(mySize_y-winfs_y)/2;
                vector win_sz;
                win_sz = minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
-                       sprintf("%s^7 won the game!",playername), 
+                       sprintf("%s^7 won the game!",playername),
                        winfs, 0, DRAWFLAG_NORMAL, 0.5);
-               
+
                drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE);
-               
+
                minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos,
-                       sprintf("%s^7 won the game!",playername), 
+                       sprintf("%s^7 won the game!",playername),
                        winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5);
        }
 }
@@ -370,14 +375,14 @@ void pp_hud_board(vector pos, vector mySize)
 // Required function, draw the game status panel
 void pp_hud_status(vector pos, vector mySize)
 {
-       HUD_Panel_DrawBg(1);
+       HUD_Panel_DrawBg();
        vector ts;
        ts = minigame_drawstring_wrapped(mySize_x,pos,active_minigame.descriptor.message,
                hud_fontsize * 2, '0.25 0.47 0.72', panel_fg_alpha, DRAWFLAG_NORMAL,0.5);
-       
+
        pos_y += ts_y;
        mySize_y -= ts_y;
-       
+
        vector player_fontsize = hud_fontsize * 1.75;
        ts_y = ( mySize_y - 2*player_fontsize_y ) / 2;
        ts_x = mySize_x;
@@ -408,19 +413,19 @@ void pp_hud_status(vector pos, vector mySize)
                        if ( e.team == 2 )
                                mypos_y  += player_fontsize_y + ts_y;
                        minigame_drawcolorcodedstring_trunc(mySize_x,mypos,
-                               GetPlayerName(e.minigame_playerslot-1),
+                               entcs_GetName(e.minigame_playerslot-1),
                                player_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL);
-                       
+
                        mypos_y += player_fontsize_y;
-                       drawpic( mypos,  
+                       drawpic( mypos,
                                        minigame_texture(strcat("pp/piece",ftos(e.team))),
                                        tile_size, tile_color, panel_fg_alpha, DRAWFLAG_NORMAL );
-                       
+
                        mypos_x += tile_size_x;
                        int myscore = 0;
                        if(e.team == 1) { myscore = active_minigame.pp_team1_score; }
                        if(e.team == 2) { myscore = active_minigame.pp_team2_score; }
-                       
+
                        drawstring(mypos,ftos(myscore),tile_size,
                                           '0.7 0.84 1', panel_fg_alpha, DRAWFLAG_NORMAL);
                }
@@ -432,27 +437,27 @@ string pp_turn_to_string(int turnflags)
 {
        if ( turnflags & PP_TURN_DRAW )
                return _("Draw");
-       
+
        if ( turnflags & PP_TURN_WIN )
        {
                if ( (turnflags&PP_TURN_TEAM) != minigame_self.team )
                        return _("You lost the game!\nSelect \"^1Next Match^7\" on the menu for a rematch!");
                return _("You win!\nSelect \"^1Next Match^7\" on the menu to start a new match!");
        }
-       
+
        if ( turnflags & PP_TURN_NEXT )
        {
                if ( (turnflags&PP_TURN_TEAM) != minigame_self.team )
                        return _("Select \"^1Next Match^7\" on the menu to start a new match!");
                return _("Wait for your opponent to confirm the rematch");
        }
-       
+
        if ( (turnflags & PP_TURN_TEAM) != minigame_self.team )
                return _("Wait for your opponent to make their move");
-       
+
        if ( turnflags & PP_TURN_PLACE )
                return _("Click on the game board to place your piece");
-       
+
        return "";
 }
 
@@ -589,4 +594,4 @@ int pp_client_event(entity minigame, string event, ...)
        return false;
 }
 
-#endif
\ No newline at end of file
+#endif