- includes/db.php now defines PQS_TIMEZONE and sets it on include; the 9 files
that hardcoded date_default_timezone_set('America/Chicago') drop the call
(main pages already load db.php; display includes now require it).
- console.php: pod load and the 16 pod-checkbox lines collapsed into loops over
a $pods array (fixed 16 kept - hardware max). Output unchanged.
Verified: timezone resolves to America/Chicago via the constant; console commit,
config update, and pod-checkbox rendering all correct; registration suite green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
309 lines
16 KiB
PHP
309 lines
16 KiB
PHP
<html>
|
|
<head>
|
|
<title>PQS - Game Console</title>
|
|
<link href="css/main.css" rel="stylesheet" type="text/css">
|
|
<script type="text/javascript" src="js/jquery.js"></script>
|
|
<script type="text/javascript">
|
|
var auto_refreshqueue = setInterval(function() {
|
|
$.ajaxSetup({ cache: false });
|
|
$('#queuediv').load('includes/getconsole.php');
|
|
}, 2000);
|
|
|
|
var auto_refreshpods = setInterval(function() {
|
|
$.ajaxSetup({ cache: false });
|
|
$('#mechpods').load('includes/mechpods.php');
|
|
}, 2000);
|
|
</script>
|
|
</head>
|
|
<body style='background: #000;'>
|
|
<?php
|
|
require_once("includes/config.php");
|
|
require_once("includes/db.php");
|
|
require_once("includes/queue.php");
|
|
$ttime = date('Hi');
|
|
$numberpods = 0;
|
|
//var_dump($_SESSION);
|
|
//var_dump($_GET);
|
|
//var_dump($_POST);
|
|
if (isset($_GET['clearcurrent'])) {
|
|
pqs_db()->query("TRUNCATE TABLE pqs_currentmission");
|
|
}
|
|
if (isset($_GET['submit'])) {$submit=$_GET['submit'];}else{$submit='';}
|
|
|
|
if ($submit=='Update'){
|
|
// Pod toggles: pod01..pod16, present in the query string => on.
|
|
$pods = array();
|
|
for ($p = 1; $p <= 16; $p++) {
|
|
$pods[$p] = isset($_GET[sprintf('pod%02d', $p)]) ? 1 : 0;
|
|
}
|
|
$numberpods = array_sum($pods);
|
|
|
|
// Numeric dropdowns.
|
|
$visibility = (int)($_GET['visibility'] ?? 0);
|
|
$weather = (int)($_GET['weather'] ?? 0);
|
|
$timelimit = (int)($_GET['timelimit'] ?? 0);
|
|
$timetoreset = (int)($_GET['timetoreset'] ?? 0);
|
|
$radar = (int)($_GET['radar'] ?? 0);
|
|
// Checkbox flags.
|
|
$heat = isset($_GET['heat']) ? 1 : 0;
|
|
$friendlyfire = isset($_GET['friendlyfire']) ? 1 : 0;
|
|
$splashdamage = isset($_GET['splashdamage']) ? 1 : 0;
|
|
$limitedammo = isset($_GET['limitedammo']) ? 1 : 0;
|
|
$noreturn = isset($_GET['noreturn']) ? 1 : 0;
|
|
$printdebriefing = isset($_GET['printdebriefing'])? 1 : 0;
|
|
$missionreview = isset($_GET['missionreview']) ? 1 : 0;
|
|
$weaponjam = isset($_GET['weaponjam']) ? 1 : 0;
|
|
$advancemode = isset($_GET['advancemode']) ? 1 : 0;
|
|
$armormode = isset($_GET['armormode']) ? 1 : 0;
|
|
$groupAvalible = isset($_GET['groupAvalible']) ? 1 : 0;
|
|
|
|
// Note: timepergame is intentionally set to timelimit, and timeofday /
|
|
// cameraship are not written here (preserves the original behavior).
|
|
pqs_exec(
|
|
"UPDATE pqs_gameconfig SET numpods=?, timepergame=?, timetoreset=?, timelimit=?,
|
|
visibility=?, weather=?, radar=?, heat=?, friendlyfire=?, splashdamage=?,
|
|
limitedammo=?, noreturn=?, printdebriefing=?, missionreview=?, weaponjam=?,
|
|
advancemode=?, armormode=?, GroupAvalible=? WHERE gamechoiceid=1",
|
|
str_repeat('i', 18),
|
|
array($numberpods, $timelimit, $timetoreset, $timelimit, $visibility, $weather,
|
|
$radar, $heat, $friendlyfire, $splashdamage, $limitedammo, $noreturn,
|
|
$printdebriefing, $missionreview, $weaponjam, $advancemode, $armormode, $groupAvalible)
|
|
);
|
|
|
|
pqs_exec(
|
|
"UPDATE pqs_pods SET pod01=?, pod02=?, pod03=?, pod04=?, pod05=?, pod06=?, pod07=?,
|
|
pod08=?, pod09=?, pod10=?, pod11=?, pod12=?, pod13=?, pod14=?, pod15=?, pod16=?",
|
|
str_repeat('i', 16),
|
|
array_values($pods)
|
|
);
|
|
|
|
pqs_exec("UPDATE pqs_mission SET MissionSize=? WHERE Completed=0", 'i', array($numberpods));
|
|
}
|
|
|
|
|
|
if ($submit=='Commit Mission') {
|
|
// Commit the next mission: snapshot to the current board, archive to history,
|
|
// clear it from the queue and mark it completed. Runs under the shared queue
|
|
// lock (so a registration can't slip in mid-commit) and as one transaction.
|
|
$nummercs = (int)($_GET['nummercs'] ?? 0);
|
|
$mtime = (int) date('Hi');
|
|
pqs_with_queue_lock(function () use ($nummercs, $mtime) {
|
|
$db = pqs_db();
|
|
$db->begin_transaction();
|
|
try {
|
|
$missionid = (int) pqs_val("SELECT MIN(MissionID) FROM pqs_queue");
|
|
$db->query("DELETE FROM pqs_currentmission");
|
|
if ($missionid > 0) {
|
|
$players = pqs_rows("SELECT callsign, mech FROM pqs_queue WHERE MissionID = ?", 'i', array($missionid));
|
|
foreach ($players as $p) {
|
|
pqs_exec("INSERT INTO pqs_currentmission (callsign, missionid) VALUES (?, ?)",
|
|
'si', array($p['callsign'], $missionid));
|
|
pqs_exec("INSERT INTO pqs_pastmissions (callsign, mech, missionid) VALUES (?, ?, ?)",
|
|
'ssi', array($p['callsign'], $p['mech'], $missionid));
|
|
}
|
|
pqs_exec("DELETE FROM pqs_queue WHERE MissionID = ?", 'i', array($missionid));
|
|
pqs_exec("UPDATE pqs_mission SET Completed = 1, nummercs = ?, missiontime = ? WHERE MissionID = ?",
|
|
'iii', array($nummercs, $mtime, $missionid));
|
|
}
|
|
$db->commit();
|
|
} catch (Throwable $e) {
|
|
$db->rollback();
|
|
throw $e;
|
|
}
|
|
});
|
|
}
|
|
if (isset($_GET['lock'])) {
|
|
$missionid = (int) pqs_val("SELECT MIN(MissionID) FROM pqs_queue");
|
|
if ($missionid > 0) {
|
|
pqs_exec("UPDATE pqs_mission SET locked = 1 WHERE MissionID = ?", 'i', array($missionid));
|
|
}
|
|
}
|
|
if (isset($_GET['action']) && $_GET['action'] == 'clearupdate') {
|
|
$playerid = (int)($_GET['playerid'] ?? 0);
|
|
pqs_exec("UPDATE pqs_queue SET Updated = 0 WHERE ID = ?", 'i', array($playerid));
|
|
}
|
|
|
|
$missionid = (int) pqs_val("SELECT MIN(MissionID) FROM pqs_queue");
|
|
$locked = 0;
|
|
if ($missionid != 0) {
|
|
$locked = (int) pqs_val("SELECT locked FROM pqs_mission WHERE MissionId = ?", 'i', array($missionid));
|
|
}
|
|
echo "<table width='450' border='0'>";
|
|
echo "<tr><td align='center'><a class='queuedisplayhead' href='console.php?clearcurrent=1'><font size='3'>Clear Current Queue</font></a> | ";
|
|
echo "<a class='queuedisplayhead' href='history.php?launch=console' target='_blank'><font size='3'>Open History Window</font></a></td></tr>";
|
|
echo "<tr><td align='center' valign='top'><table width='100%'><tr><td align='center' colspan='2'>";
|
|
echo "<div id='queuediv' class='consolediv'> </div>";
|
|
echo "</td></tr>";
|
|
echo "<tr><td align='center'>Total Pods: <span id='mechpods' class='mechpods'></span>";
|
|
echo "<form name='submit-group' action=''># Mercs in Pods: <input type='text' name='nummercs' value='0' size=2></td>";
|
|
echo "<td align='center'><input type='submit' name='submit' class='button' id='submit_btn' value='Commit Mission' /></form><br></td></tr>";
|
|
if ($locked == 1) {
|
|
echo "<tr><td align='center' colspan='2'><br><font size='4' color='990000'>This mission is LOCKED!</font><br></td></tr>";
|
|
} else { ?>
|
|
<form onsubmit="return confirm('Are you sure you want to lock this mission?\n\n\t\tIf YES, click OK\n\t\tIf NO, click Cancel.')"><?php
|
|
echo "<tr><td align='center' colspan='2'><br><input type='hidden' name='lock' value='lock'><input type='submit' name='submit' class='button' id='submit_btnlock' value='Lock Mission' /></form></td></tr>";
|
|
}
|
|
echo "</table></td>";
|
|
echo "<tr><td align='center' valign='top'>";
|
|
echo "<table width='100%'><tr><td align='center'>";
|
|
echo "<div class='consolediv'><div id='configform'>";
|
|
echo "<font size='6'>Configuration</font><br><br>";
|
|
echo "<form name='submit-config' action='console.php'>";
|
|
|
|
$link = mysqli_connect('localhost', 'pqs', 'pqs') or die('Could not connect: ' . mysqli_connect_error());
|
|
mysqli_select_db($link, 'pqs') or die('Could not select database');
|
|
$query = 'SELECT * FROM pqs_gameconfig';
|
|
$result = mysqli_query($link, $query) or die('Query failed: ' . mysqli_error($link));
|
|
while ($line = mysqli_fetch_array($result)) {
|
|
$numpods = $line[1];
|
|
$timepergame = $line[2];
|
|
$timetoreset = $line[3];
|
|
$visibility = $line[7];
|
|
$weather = $line[8];
|
|
$timeofday = $line[9];
|
|
$timelimit = $line[10];
|
|
$radar = $line[11];
|
|
$heat = $line[12];
|
|
$friendlyfire = $line[13];
|
|
$splashdamage = $line[14];
|
|
$limitedammo = $line[15];
|
|
$noreturn = $line[16];
|
|
$printdebriefing = $line[17];
|
|
$missionreview = $line[18];
|
|
$weaponjam = $line[19];
|
|
$advancemode = $line[20];
|
|
$armormode = $line[21];
|
|
$cameraship = $line[22];
|
|
$groupAvalible = $line[23];
|
|
|
|
}
|
|
|
|
$pods = array();
|
|
foreach (pqs_rows('SELECT * FROM pqs_pods') as $line) {
|
|
for ($i = 1; $i <= 16; $i++) {
|
|
$pods[$i] = (int) $line[sprintf('pod%02d', $i)];
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
Time Limit : <select name='timelimit' >
|
|
<option value=1<?php if($timelimit==1)echo ' selected ';?>>1</option>
|
|
<option value=2<?php if($timelimit==2)echo ' selected ';?>>2</option>
|
|
<option value=3<?php if($timelimit==3)echo ' selected ';?>>3</option>
|
|
<option value=4<?php if($timelimit==4)echo ' selected ';?>>4</option>
|
|
<option value=5<?php if($timelimit==5)echo ' selected ';?>>5</option>
|
|
<option value=6<?php if($timelimit==6)echo ' selected ';?>>6</option>
|
|
<option value=7<?php if($timelimit==7)echo ' selected ';?>>7</option>
|
|
<option value=8<?php if($timelimit==8)echo ' selected ';?>>8</option>
|
|
<option value=9<?php if($timelimit==9)echo ' selected ';?>>9</option>
|
|
<option value=10<?php if($timelimit==10)echo ' selected ';?>>10</option>
|
|
<option value=11<?php if($timelimit==11)echo ' selected ';?>>11</option>
|
|
<option value=12<?php if($timelimit==12)echo ' selected ';?>>12</option>
|
|
<option value=13<?php if($timelimit==13)echo ' selected ';?>>13</option>
|
|
<option value=14<?php if($timelimit==14)echo ' selected ';?>>14</option>
|
|
<option value=15<?php if($timelimit==15)echo ' selected ';?>>15</option>
|
|
<option value=20<?php if($timelimit==20)echo ' selected ';?>>20</option>
|
|
<option value=25<?php if($timelimit==25)echo ' selected ';?>>25</option>
|
|
<option value=30<?php if($timelimit==30)echo ' selected ';?>>30</option>
|
|
</select>
|
|
<br>
|
|
Reset Time : <select name='timetoreset' >
|
|
<option value=1<?php if($timetoreset==1)echo ' selected ';?>>1</option>
|
|
<option value=2<?php if($timetoreset==2)echo ' selected ';?>>2</option>
|
|
<option value=3<?php if($timetoreset==3)echo ' selected ';?>>3</option>
|
|
<option value=4<?php if($timetoreset==4)echo ' selected ';?>>4</option>
|
|
<option value=5<?php if($timetoreset==5)echo ' selected ';?>>5</option>
|
|
<option value=6<?php if($timetoreset==6)echo ' selected ';?>>6</option>
|
|
<option value=7<?php if($timetoreset==7)echo ' selected ';?>>7</option>
|
|
<option value=8<?php if($timetoreset==8)echo ' selected ';?>>8</option>
|
|
<option value=9<?php if($timetoreset==9)echo ' selected ';?>>9</option>
|
|
<option value=10<?php if($timetoreset==10)echo ' selected ';?>>10</option>
|
|
</select>
|
|
<br>
|
|
<?php
|
|
|
|
for ($i = 1; $i <= 16; $i++) {
|
|
$name = sprintf('pod%02d', $i);
|
|
$label = sprintf('Pod%02d', $i);
|
|
if (!empty($pods[$i])) {
|
|
echo "$label : <input type='checkbox' id='$name' name='$name' class='checkbox' checked /><br>";
|
|
} else {
|
|
echo "<font color=red>$label : </font><input type='checkbox' class='checkbox' id='$name' name='$name' /><br>";
|
|
}
|
|
}
|
|
?>
|
|
|
|
Visability : <select name='visibility' >
|
|
<option value=0<?php if($visibility==0)echo ' selected ';?>>Random</option>
|
|
<option value=1<?php if($visibility==1)echo ' selected ';?>>Deflt</option>
|
|
<option value=2<?php if($visibility==2)echo ' selected ';?>>Clear</option>
|
|
<option value=3<?php if($visibility==3)echo ' selected ';?>>L Fog</option>
|
|
<option value=4<?php if($visibility==4)echo ' selected ';?>>H Fog</option>
|
|
<option value=5<?php if($visibility==5)echo ' selected ';?>>PS Fog</option>
|
|
</select>
|
|
<br>
|
|
Weather : <select name='weather' >
|
|
<option value=0<?php if($visibility==0)echo ' selected ';?>>Random</option>
|
|
<option value=1<?php if($visibility==1)echo ' selected ';?>>Off</option>
|
|
<option value=2<?php if($visibility==2)echo ' selected ';?>>On</option>
|
|
</select>
|
|
<br>
|
|
Time of Day : <select name='timeofday' >
|
|
<option value=0<?php if($visibility==0)echo ' selected ';?>>Random</option>
|
|
<option value=1<?php if($visibility==1)echo ' selected ';?>>Day</option>
|
|
<option value=2<?php if($visibility==2)echo ' selected ';?>>Night</option>
|
|
</select>
|
|
<br>
|
|
Radar : <select name='radar' >
|
|
<option value=0<?php if($radar==0)echo ' selected ';?>>Random</option>
|
|
<option value=1<?php if($radar==1)echo ' selected ';?>>Novice</option>
|
|
<option value=2<?php if($radar==2)echo ' selected ';?>>Normal</option>
|
|
<option value=3<?php if($radar==3)echo ' selected ';?>>T Only</option>
|
|
<option value=4<?php if($radar==4)echo ' selected ';?>>No Rad</option>
|
|
</select>
|
|
<br>
|
|
|
|
<?php
|
|
echo " Heat : "; if ("$heat" == 1) { echo "<input type='checkbox' id='heat' name='heat' class='checkbox' checked /><br>"; } else { echo "<input type='checkbox' class='checkbox' id='heat' name='heat' /><br>"; }
|
|
|
|
echo "Friendly Fire : "; if ("$friendlyfire" == 1) { echo "<input type='checkbox' id='friendlyfire' name='friendlyfire' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='friendlyfire' name='friendlyfire' />"; } echo" <br>";
|
|
|
|
echo "Splash Damage : "; if ("$splashdamage" == 1) { echo "<input type='checkbox' id='splashdamage' name='splashdamage' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='splashdamage' name='splashdamage' />"; } echo" <br>";
|
|
|
|
echo "Limited Ammo : "; if ("$limitedammo" == 1) { echo "<input type='checkbox' id='limitedammo' name='limitedammo' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='limitedammo' name='limitedammo' />"; } echo" <br>";
|
|
|
|
echo "No Return : "; if ("$noreturn" == 1) { echo "<input type='checkbox' id='noreturn' name='noreturn' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='noreturn' name='noreturn' />"; }echo" <br>";
|
|
|
|
echo "Print Debriefing : "; if ("$printdebriefing" == 1) { echo "<input type='checkbox' id='printdebriefing' name='printdebriefing' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='printdebriefing' name='printdebriefing' />"; }echo" <br>";
|
|
|
|
echo "Mission Review : "; if ("$missionreview" == 1) { echo "<input type='checkbox' id='missionreview' name='missionreview' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='missionreview' name='missionreview' />"; }echo" <br>";
|
|
|
|
echo "Weapon Jam : "; if ("$weaponjam" == 1) { echo "<input type='checkbox' id='weaponjam' name='weaponjam' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='weaponjam' name='weaponjam' />"; }echo" <br>";
|
|
|
|
echo "Advance Mode : "; if ("$advancemode" == 1) { echo "<input type='checkbox' id='advancemode' name='advancemode' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='advancemode' name='advancemode' />"; }echo" <br>";
|
|
|
|
echo "Armor Mode : "; if ("$armormode" == 1) { echo "<input type='checkbox' id='armormode' name='armormode' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='armormode' name='armormode' />"; }echo" <br>";
|
|
|
|
?>
|
|
|
|
Cameraship : <select name='cameraship' >
|
|
<option value=0<?php if($cameraship==0)echo ' selected ';?>>None</option>
|
|
<option value=1<?php if($cameraship==1)echo ' selected ';?>>Camship</option>
|
|
<option value=2<?php if($cameraship==2)echo ' selected ';?>>LiveCam</option>
|
|
</select>
|
|
<br>
|
|
|
|
<?php
|
|
|
|
echo "Group Avalible : "; if ("$groupAvalible" == 1) { echo "<input type='checkbox' id='groupAvalible' name='groupAvalible' class='checkbox' checked />"; } else { echo "<input type='checkbox' class='checkbox' id='groupAvalible' name='groupAvalible' />"; }echo" <br>";
|
|
|
|
|
|
echo "<br><input type='submit' name='submit' class='button' id='submit_btn' value='Update' />";
|
|
echo "</form>";
|
|
echo "</div></div>";
|
|
echo "</td></tr></table></td></tr>";
|
|
echo "</td></tr></table></body></html>";
|
|
?>
|
|
|