summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/game.php193
1 files changed, 97 insertions, 96 deletions
diff --git a/include/game.php b/include/game.php
index 8ab6f31..02d6f96 100644
--- a/include/game.php
+++ b/include/game.php
@@ -43,7 +43,9 @@ if(!$myid)
global $GAME,$RULES,$CARDS;
-/* get some information from the DB */
+/**************************************
+ * get some information from the DB
+ **************************************/
$gameid = DB_get_gameid_by_hash($me);
$myname = DB_get_name('hash',$me);
$mystatus = DB_get_status_by_hash($me);
@@ -117,9 +119,6 @@ if($ok)
*/
set_gametype('normal');
-/* put everyting in a form */
-echo "<form action=\"index.php?action=game&amp;me=$me\" method=\"post\">\n";
-
/* handle user notes (only possible while game is running)*/
if( $mystatus!='gameover' )
if(myisset('note'))
@@ -134,6 +133,17 @@ if( $mystatus!='gameover' )
/* initialize comments */
$comment = '';
+/* get information needed to submit comment */
+$playid = DB_get_current_playid($gameid);
+
+/* set comment */
+if($comment != '')
+ DB_insert_comment($comment,$playid,$myid);
+/* clear up */
+unset($comment);
+/* end check for calls */
+
+
/* check for calls, set comment */
if(myisset('call') && $_REQUEST['call'] == '120' && can_call(120,$me))
{
@@ -164,21 +174,15 @@ if(myisset('call') && $_REQUEST['call'] == '0' && can_call(0,$me))
$comment .= "Zero";
}
-/* get information needed to submit comment */
-$playid = DB_get_current_playid($gameid);
-/* set comment */
-if($comment != '')
- DB_insert_comment($comment,$playid,$myid);
-/* clear up */
-unset($comment);
-/* end check for calls */
-
-
-/* output extra division in case this game is part of a session */
+/*****************************************************************
+ * output extra division in case this game is part of a session
+ *****************************************************************/
if($session)
{
echo "<div class=\"session\">\n";
+
+ /* output rule set */
echo " <div class=\"sessionrules\">\n "._('Rules').":\n";
switch($RULES['dullen'])
{
@@ -294,6 +298,23 @@ if($session)
echo "\n</div>\n";
}
+/* the user has done something, update the timestamp. Use $myid in
+ * active games and check for session-id in old games (myid might be wrong in that case)
+ */
+if($mystatus!='gameover')
+ DB_update_user_timestamp($myid);
+ else
+ if(isset($_SESSION['id']))
+ DB_update_user_timestamp($_SESSION['id']);
+
+
+/******************************************************************************
+ * Output tricks played, table, messages, and cards (depending on game status)
+ ******************************************************************************/
+
+/* put everyting in a form */
+echo "<form action=\"index.php?action=game&amp;me=$me\" method=\"post\">\n";
+
/* display the table and the names */
display_table();
@@ -307,18 +328,13 @@ display_table();
* gameover: are we revisiting a game
*/
-/* the user has done something, update the timestamp. Use $myid in
- * active games and check for session-id in old games (myid might be wrong in that case)
- */
-if($mystatus!='gameover')
- DB_update_user_timestamp($myid);
- else
- if(isset($_SESSION['id']))
- DB_update_user_timestamp($_SESSION['id']);
-
switch($mystatus)
{
case 'start':
+ /****************************************
+ * ask if player wants to join the game *
+ ****************************************/
+
/* don't ask if user has autosetup set to yest */
$skip = 0;
if($PREF['autosetup']=='yes') $skip = 1;
@@ -336,13 +352,13 @@ switch($mystatus)
if(!$skip && $_REQUEST['in'] == 'no' )
{
/* cancel the game */
- $message = "Hello, \n\n".
+ $email_message = "Hello, \n\n".
"the game has been canceled due to the request of one of the players.\n\n";
$userids = DB_get_all_userid_by_gameid($gameid);
foreach($userids as $user)
{
- mymail($user,$gameid,GAME_CANCELED,$message);
+ mymail($user,$gameid,GAME_CANCELED,$email_message);
}
/* update game status */
@@ -359,9 +375,8 @@ switch($mystatus)
DB_set_hand_status_by_hash($me,'init');
- /* check if everyone has reached this stage, send out email */
+ /* check if everyone has reached this stage, set player in game-table to the next player */
$userids = DB_get_all_userid_by_gameid($gameid);
- $ok = 1;
foreach($userids as $user)
{
$userstat = DB_get_hand_status_by_userid_and_gameid($user,$gameid);
@@ -369,36 +384,16 @@ switch($mystatus)
{
/* whos turn is it? */
DB_set_player_by_gameid($gameid,$user);
- $ok = 0;
break;
}
};
- if($ok)
- {
- /* all done, send out email unless this player is the startplayer */
- $startplayer = DB_get_startplayer_by_gameid($gameid);
- if($mypos == $startplayer)
- {
- /* do nothing, go to next stage */
- }
- else
- {
- /* email startplayer */
- /*
- $hash = DB_get_hash_from_game_and_pos($gameid,$startplayer);
- $who = DB_get_userid('hash',$hash);
- DB_set_player_by_gameid($gameid,$who);
-
- $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
- "Use this link to go the game: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
- mymail($who, $gameid, GAME_READY,$message);
- */
- }
- }
}
}
case 'init':
- /* here we ask the player if he is sick */
+ /***************************
+ * check if player is sick *
+ ***************************/
+
$mycards = DB_get_hand($me);
$mycards = mysort($mycards,$gametype);
@@ -590,7 +585,6 @@ switch($mystatus)
display_card($card,$PREF['cardset']);
echo "</div>\n";
}
- break;
}
else
{
@@ -636,7 +630,7 @@ switch($mystatus)
/* cancel game */
if($cancelsick == 'nines')
{
- $message = "The game has been canceled because ".DB_get_name('userid',$cancel).
+ $email_message = "The game has been canceled because ".DB_get_name('userid',$cancel).
" has five or more nines and nobody is playing solo.\n\n".
"To redeal either start a new game or, in case the game was part of a tournament,\n".
"go to the last game and use the link at the bottom of the page to redeal.\n\n";
@@ -649,7 +643,7 @@ switch($mystatus)
}
else if ($cancelsick == 'lowtrump')
{
- $message = "The game has been canceled because ".DB_get_name('userid',$cancel).
+ $email_message = "The game has been canceled because ".DB_get_name('userid',$cancel).
" has low trump and nobody is playing solo.\n\n".
"To redeal either start a new game or, in case the game was part of a tournament,\n".
"go to the last game and use the link at the bottom of the page to redeal.\n\n";
@@ -664,7 +658,7 @@ switch($mystatus)
$userids = DB_get_all_userid_by_gameid($gameid);
foreach($userids as $user)
{
- mymail($user,$gameid, GAME_CANCELED, $message);
+ mymail($user,$gameid, GAME_CANCELED, $email_message);
}
echo "</div>\n"; /* end div message */
@@ -799,9 +793,9 @@ switch($mystatus)
if(DB_get_email_pref_by_hash($hash)!='emailaddict')
{
/* email startplayer */
- $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
+ $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
- mymail($who,$gameid,GAME_READY,$message);
+ mymail($who,$gameid,GAME_READY,$email_message);
}
}
else
@@ -824,9 +818,9 @@ switch($mystatus)
if(DB_get_email_pref_by_hash($hash)!='emailaddict')
{
/* email player for poverty */
- $message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n".
+ $email_message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$whohash."\n\n" ;
- mymail($whoid,$gameid,GAME_POVERTY,$message);
+ mymail($whoid,$gameid,GAME_POVERTY,$email_message);
}
}
}
@@ -836,9 +830,8 @@ switch($mystatus)
foreach($mycards as $card)
display_card($card,$PREF['cardset']);
echo "</div>\n";
-
- break;
}
+ break;
case 'poverty':
/* user only gets here in a poverty game, several things have to be handled here:
@@ -928,9 +921,9 @@ switch($mystatus)
if(DB_get_email_pref_by_hash($hash)!='emailaddict')
{
/* email startplayer */
- $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
+ $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
- mymail($who,$gameid,GAME_READY,$message);
+ mymail($who,$gameid,GAME_READY,$email_message);
}
}
else
@@ -1007,13 +1000,13 @@ switch($mystatus)
/* no more people to ask, need to cancel the game */
if($mypos+$next>4)
{
- $message = "Hello, \n\n".
+ $email_message = "Hello, \n\n".
"Game ".DB_format_gameid($gameid)." has been canceled since nobody wanted to take the trump.\n\n";
$userids = DB_get_all_userid_by_gameid($gameid);
foreach($userids as $user)
{
- mymail($user, $gameid, GAME_CANCELED_POVERTY, $message);
+ mymail($user, $gameid, GAME_CANCELED_POVERTY, $email_message);
}
/* update game status */
@@ -1031,9 +1024,9 @@ switch($mystatus)
DB_set_player_by_gameid($gameid,$userid);
DB_set_hand_status_by_hash($userhash,'poverty');
- $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
+ $email_message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
" ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
- mymail($userid,$gameid, GAME_POVERTY, $message);
+ mymail($userid,$gameid, GAME_POVERTY, $email_message);
}
}
else
@@ -1122,9 +1115,9 @@ switch($mystatus)
DB_set_player_by_gameid($gameid,$userid);
DB_set_hand_status_by_hash($userhash,'poverty');
- $message = "Two people have poverty, it's your turn to decide, if you want to take the trump. Please visit:".
+ $email_message = "Two people have poverty, it's your turn to decide, if you want to take the trump. Please visit:".
" ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
- mymail($userid,$gameid, GAME_DPOVERTY, $message);
+ mymail($userid,$gameid, GAME_DPOVERTY, $email_message);
}
}
echo "<div class=\"message\">Please, <a href=\"$INDEX?action=game&amp;me=$me\">continue</a> here.</div>\n";
@@ -1195,9 +1188,9 @@ switch($mystatus)
if($hash!=$me && DB_get_email_pref_by_hash($hash)!='emailaddict')
{
/* email startplayer) */
- $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
+ $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
- mymail($who,$gameid, GAME_READY, $message);
+ mymail($who,$gameid, GAME_READY, $email_message);
}
}
}
@@ -1644,12 +1637,12 @@ switch($mystatus)
$who = DB_get_userid('hash',$next_hash);
DB_set_player_by_gameid($gameid,$who);
- $message = "A card has been played in game ".DB_format_gameid($gameid).".\n\n".
+ $email_message = "A card has been played in game ".DB_format_gameid($gameid).".\n\n".
"It's your turn now.\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$next_hash."\n\n" ;
if( DB_get_email_pref_by_uid($who)!='emailaddict' )
{
- mymail($who,$gameid, GAME_YOUR_TURN, $message);
+ mymail($who,$gameid, GAME_YOUR_TURN, $email_message);
}
}
else /* send out final email */
@@ -1663,10 +1656,10 @@ switch($mystatus)
" LEFT JOIN Card ON Card.id=Hand_Card.card_id".
" WHERE Hand.game_id='$gameid'".
" GROUP BY User.fullname" );
- $message = "The game is over. Thanks for playing :)\n";
- $message .= "Final score:\n";
+ $email_message = "The game is over. Thanks for playing :)\n";
+ $email_message .= "Final score:\n";
while( $r = DB_fetch_array($result) )
- $message .= " ".$r[0]."(".$r[2].") ".$r[1]."\n";
+ $email_message .= " ".$r[0]."(".$r[2].") ".$r[1]."\n";
$result = DB_query("SELECT Hand.party, IFNULL(SUM(Card.points),0) FROM Hand".
" LEFT JOIN Trick ON Trick.winner=Hand.position AND Trick.game_id=Hand.game_id".
@@ -1676,12 +1669,12 @@ switch($mystatus)
" LEFT JOIN Card ON Card.id=Hand_Card.card_id".
" WHERE Hand.game_id='$gameid'".
" GROUP BY Hand.party" );
- $message .= "\nTotals:\n";
+ $email_message .= "\nTotals:\n";
$re = 0;
$contra = 0;
while( $r = DB_fetch_array($result) )
{
- $message .= " ".$r[0]." ".$r[1]."\n";
+ $email_message .= " ".$r[0]." ".$r[1]."\n";
if($r[0] == 're')
$re = $r[1];
else if($r[0] == 'contra')
@@ -1850,35 +1843,35 @@ switch($mystatus)
/* add score points to email */
- $message .= "\n";
+ $email_message .= "\n";
$Tpoint = 0;
- $message .= " Points Re: \n";
+ $email_message .= " Points Re: \n";
$queryresult = DB_query("SELECT score FROM Score ".
" WHERE game_id=$gameid AND party='re'".
" ");
while($r = DB_fetch_array($queryresult) )
{
- $message .= " ".$r[0]."\n";
+ $email_message .= " ".$r[0]."\n";
$Tpoint ++;
}
- $message .= " Points Contra: \n";
+ $email_message .= " Points Contra: \n";
$queryresult = DB_query("SELECT score FROM Score ".
" WHERE game_id=$gameid AND party='contra'".
" ");
while($r = DB_fetch_array($queryresult) )
{
- $message .= " ".$r[0]."\n";
+ $email_message .= " ".$r[0]."\n";
$Tpoint --;
}
- $message .= " Total Points (from the Re point of view): $Tpoint\n";
- $message .= "\n";
+ $email_message .= " Total Points (from the Re point of view): $Tpoint\n";
+ $email_message .= "\n";
$session = DB_get_session_by_gameid($gameid);
$score = generate_score_table($session);
- $message .= "Score Table:\n";
- $message .= format_score_table_ascii($score);
- $message .= "\nUse these links to have a look at game ".DB_format_gameid($gameid).": \n";
+ $email_message .= "Score Table:\n";
+ $email_message .= format_score_table_ascii($score);
+ $email_message .= "\nUse these links to have a look at game ".DB_format_gameid($gameid).": \n";
/* send out final email */
foreach($userids as $user)
@@ -1888,10 +1881,10 @@ switch($mystatus)
$name = DB_get_name('userid',$user);
$link = "$name: ".$HOST.$INDEX."?action=game&me=".$hash."\n" ;
- $message .= $link;
+ $email_message .= $link;
}
- $message .= "\n\n (you can use reply all on this email to reach all the players.)\n\n";
- mymail($userids,$gameid, GAME_OVER, $message);
+ $email_message .= "\n\n (you can use reply all on this email to reach all the players.)\n\n";
+ mymail($userids,$gameid, GAME_OVER, $email_message);
}
}
else
@@ -2096,7 +2089,11 @@ switch($mystatus)
break;
default:
myerror("error in testing the status");
- }
+ } /*end of output: tricks, table, messages, card */
+
+/***********************************************
+ * Comments, re/contra calls, user menu
+ ***********************************************/
/* output other games where it is the users turn
* make sure that the people looking at old games don't see the wrong games here
@@ -2106,13 +2103,13 @@ if( $gamestatus != 'gameover' )
/* game isn't over, only valid user can get here, so show menu */
display_user_menu($myid);
}
-else if( $origmystatus != 'gameover' )
+else if( $origmystatus != 'gameover' )
{
/* user just played the very last card, game is now over, it's still ok to show the menu though */
display_user_menu($myid);
}
-else if( $mystatus == 'gameover' &&
- isset($_SESSION['id']) )
+else if( $mystatus == 'gameover'
+ && isset($_SESSION['id']) )
{
/* user is looking at someone else's game, show the menu for the correct user */
display_user_menu($_SESSION['id']);
@@ -2182,6 +2179,10 @@ if( $mystatus != 'gameover' ||
echo "</form>\n";
+/*********************************
+ * suggest next game
+ *********************************/
+
$gamestatus = DB_get_game_status_by_gameid($gameid);
if($mystatus=='gameover' &&
($gamestatus =='gameover' || $gamestatus =='cancel-nines' || $gamestatus =='cancel-trump') &&