- hide UI when gamepad is in use, enable when mouse is in use - indicate selected UI button using hue rotation animation - support for gamepad hat - support for disconnecting and reconnecting gamepads - sanitize collected data in WASM build and write files per session - add function for finding the closest UI button in a given direction - bug fix: prevent character from moving when level loads or play is resumed from the pause menu - bug fix: cancel character walking sfx when paused
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /* Get a unique ID from the browser which PHP creates and manages using a browser cookie */
 | |
| session_start();
 | |
| 
 | |
| /* The log of play history is stored in JSON format in a file in the same directory as this script. If this file doesn't exist yet, it
 | |
|  * will be created at write time. Each session ID is written to its own file to avoid race conditions between multiple sessions
 | |
|  * sharing a single file. */
 | |
| $history_path = session_id() . "-Play_History.json";
 | |
| 
 | |
| /* Read JSON data from the history path. If the file doesn't exist, is not in JSON format, or any other exception occurs, just set the
 | |
|  * history to an empty array. */
 | |
| try
 | |
| {
 | |
|     $history = json_decode(file_get_contents($history_path), true, 512, JSON_THROW_ON_ERROR);
 | |
| }
 | |
| catch (Exception $e)
 | |
| {
 | |
|     $history = array();
 | |
| }
 | |
| 
 | |
| /* JSON data containing the user's play history is passed as a POST request from JavaScript in pre_js_dank.js. Remove HTML and PHP
 | |
|  * special characters and limit length of input to 2048 characters to protect against injections. */
 | |
| $submitted_user_log = array(session_id() => json_decode(file_get_contents("php://input", false, null, 0, 2048), true)["progress"]);
 | |
| 
 | |
| /* Add a timestamp to the log */
 | |
| $submitted_user_log["timestamp"] = date("Y-m-d H:i:s");
 | |
| 
 | |
| /* Merge the passed play history into the history array, overwriting any existing data at the current session ID, or adding a new
 | |
|  * section to the array if the session ID doesn't exist as a key in the array yet. Write the array to the history path. */
 | |
| file_put_contents(
 | |
|     $history_path,
 | |
|     json_encode(
 | |
|         array_merge($history, $submitted_user_log),
 | |
|         JSON_PRETTY_PRINT) . "\n");
 | |
| 
 | |
| /* Print the session ID formatted as JSON, so that the JavaScript program can get the ID as a response. */
 | |
| echo json_encode(array("id" => session_id()));
 | |
| 
 | |
| ?>
 |