diff --git a/.gitignore b/.gitignore index cf81029..5816991 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ desktop.ini # IDE files .vscode/ .idea/ +.vs/ *.swp *.swo diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json deleted file mode 100644 index 6b61141..0000000 --- a/.vs/VSWorkspaceState.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "ExpandedNodes": [ - "" - ], - "PreviewInSolutionExplorer": false -} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite deleted file mode 100644 index 5b8a655..0000000 Binary files a/.vs/slnx.sqlite and /dev/null differ diff --git a/.vs/webGame/CopilotIndices/17.14.1368.60722/CodeChunks.db b/.vs/webGame/CopilotIndices/17.14.1368.60722/CodeChunks.db deleted file mode 100644 index be47701..0000000 Binary files a/.vs/webGame/CopilotIndices/17.14.1368.60722/CodeChunks.db and /dev/null differ diff --git a/.vs/webGame/CopilotIndices/17.14.1368.60722/SemanticSymbols.db b/.vs/webGame/CopilotIndices/17.14.1368.60722/SemanticSymbols.db deleted file mode 100644 index 9ae59df..0000000 Binary files a/.vs/webGame/CopilotIndices/17.14.1368.60722/SemanticSymbols.db and /dev/null differ diff --git a/.vs/webGame/FileContentIndex/18462bd4-df18-4b39-a139-eabfe9f85df5.vsidx b/.vs/webGame/FileContentIndex/18462bd4-df18-4b39-a139-eabfe9f85df5.vsidx deleted file mode 100644 index b7e9a9c..0000000 Binary files a/.vs/webGame/FileContentIndex/18462bd4-df18-4b39-a139-eabfe9f85df5.vsidx and /dev/null differ diff --git a/.vs/webGame/FileContentIndex/ed69bff8-eeb2-45c7-a27d-fee59d95e74c.vsidx b/.vs/webGame/FileContentIndex/ed69bff8-eeb2-45c7-a27d-fee59d95e74c.vsidx deleted file mode 100644 index 05b7677..0000000 Binary files a/.vs/webGame/FileContentIndex/ed69bff8-eeb2-45c7-a27d-fee59d95e74c.vsidx and /dev/null differ diff --git a/.vs/webGame/FileContentIndex/f27c7c26-6810-4465-ab32-268f0010a110.vsidx b/.vs/webGame/FileContentIndex/f27c7c26-6810-4465-ab32-268f0010a110.vsidx deleted file mode 100644 index 809c361..0000000 Binary files a/.vs/webGame/FileContentIndex/f27c7c26-6810-4465-ab32-268f0010a110.vsidx and /dev/null differ diff --git a/.vs/webGame/v17/.wsuo b/.vs/webGame/v17/.wsuo deleted file mode 100644 index 53557e0..0000000 Binary files a/.vs/webGame/v17/.wsuo and /dev/null differ diff --git a/.vs/webGame/v17/DocumentLayout.backup.json b/.vs/webGame/v17/DocumentLayout.backup.json deleted file mode 100644 index 338cd08..0000000 --- a/.vs/webGame/v17/DocumentLayout.backup.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\drew\\webGame\\", - "Documents": [], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [] - } - ] -} \ No newline at end of file diff --git a/.vs/webGame/v17/DocumentLayout.json b/.vs/webGame/v17/DocumentLayout.json deleted file mode 100644 index 052205e..0000000 --- a/.vs/webGame/v17/DocumentLayout.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\drew\\webGame\\", - "Documents": [], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": -1, - "Children": [ - { - "$type": "Bookmark", - "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/core/game.js b/src/core/game.js index 3a52db7..7fa3091 100644 --- a/src/core/game.js +++ b/src/core/game.js @@ -1696,71 +1696,6 @@ class TaskChallengeGame { return validImages; } - async fallbackImageDiscovery() { - // Fallback to simplified pattern detection if manifest fails - console.log('Using fallback pattern detection...'); - - const commonPatterns = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']; - - gameData.discoveredTaskImages = await this.findImagesWithPatterns('images/tasks/', commonPatterns); - gameData.discoveredConsequenceImages = await this.findImagesWithPatterns('images/consequences/', commonPatterns); - - // If still no images found, show helpful message but don't use placeholders - if (gameData.discoveredTaskImages.length === 0 && gameData.discoveredConsequenceImages.length === 0) { - console.log('No images found. Users will need to upload or scan for images.'); - gameData.discoveredTaskImages = []; - gameData.discoveredConsequenceImages = []; - } - } - - async findImagesWithPatterns(directory, patterns) { - const foundImages = []; - - for (const pattern of patterns) { - for (const format of gameData.supportedImageFormats) { - const imagePath = `${directory}${pattern}${format}`; - const exists = await this.checkImageExists(imagePath); - if (exists) { - foundImages.push(imagePath); - console.log('โœ“ Found image:', imagePath); - } - } - } - - return foundImages; - } - - setupPlaceholderImages() { - gameData.discoveredTaskImages = [this.createPlaceholderImage('Task Image')]; - gameData.discoveredConsequenceImages = [this.createPlaceholderImage('Consequence Image')]; - } - - checkImageExists(imagePath) { - return new Promise((resolve) => { - const img = new Image(); - img.onload = () => { - console.log(`โœ“ Found image: ${imagePath}`); - resolve(true); - }; - img.onerror = () => { - console.log(`โœ— Missing image: ${imagePath}`); - resolve(false); - }; - img.src = imagePath; - - // Timeout after 1 second (faster discovery) - setTimeout(() => { - console.log(`โฐ Timeout for image: ${imagePath}`); - resolve(false); - }, 1000); - }); - } - - createPlaceholderImage(label = 'Task Image') { - const encodedLabel = encodeURIComponent(label); - return `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZjBmMGYwIiBzdHJva2U9IiNjY2MiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwJSIgeT0iNDAlIiBmb250LXNpemU9IjE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkeT0iLjNlbSIgZmlsbD0iIzY2NiI+JHtsYWJlbH08L3RleHQ+PHRleHQgeD0iNTAlIiB5PSI2MCUiIGZvbnQtc2l6ZT0iMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGR5PSIuM2VtIiBmaWxsPSIjOTk5Ij5BZGQgaW1hZ2VzIHRvIGZvbGRlcjwvdGV4dD48L3N2Zz4=`; - } - // Audio Discovery Functions async discoverAudio() { try { diff --git a/src/data/gameData.js b/src/data/gameData.js index 4aface7..0239969 100644 --- a/src/data/gameData.js +++ b/src/data/gameData.js @@ -327,20 +327,3 @@ const gameData = { // Make gameData available globally window.gameData = gameData; - -// Add mirror task programmatically to avoid any parsing issues -console.log('๐Ÿ”ง Adding mirror task programmatically...'); -console.log('๐Ÿ” gameData.mainTasks before:', gameData.mainTasks.length); - -gameData.mainTasks.push({ - id: 'mirror-humiliation-task', - text: "Webcam Mirror Self-Humiliation", - difficulty: "Medium", - interactiveType: "mirror-task", - story: "Look at yourself through your webcam and repeat degrading phrases: 'I am a pathetic toy', 'I exist for others' pleasure', 'I have no dignity'. Say each phrase 5 times while looking at yourself on camera.", - mirrorInstructions: "Look directly at yourself through the webcam while speaking the degrading phrases", - mirrorTaskText: "Repeat each phrase 5 times while maintaining eye contact with yourself: 'I am a pathetic toy', 'I exist for others' pleasure', 'I have no dignity'" -}); - -console.log('๐Ÿ” gameData.mainTasks after:', gameData.mainTasks.length); -console.log('โœ… Mirror task added successfully'); diff --git a/src/features/images/image-discovery-fix.js b/src/features/images/image-discovery-fix.js deleted file mode 100644 index af9d52f..0000000 --- a/src/features/images/image-discovery-fix.js +++ /dev/null @@ -1,64 +0,0 @@ -// Image Discovery Fix - Force Override Version -// This is a complete fix that forcefully overrides the broken discoverImages method - -// Emergency fix to override broken methods -function forceFixGame() { - console.log('๏ฟฝ Applying emergency game fix...'); - - // Override the broken discoverImages completely - if (window.game) { - // Force mark image discovery as complete - window.game.imageDiscoveryComplete = true; - - // Set basic image arrays - if (!gameData.discoveredTaskImages) gameData.discoveredTaskImages = []; - if (!gameData.discoveredConsequenceImages) gameData.discoveredConsequenceImages = []; - - // Try to get images from desktop file manager if available - if (window.game.dataManager) { - const customImages = window.game.dataManager.get('customImages') || { task: [], consequence: [] }; - let taskImages = []; - let consequenceImages = []; - - if (Array.isArray(customImages)) { - taskImages = customImages; - } else { - taskImages = customImages.task || []; - consequenceImages = customImages.consequence || []; - } - - if (taskImages.length > 0 || consequenceImages.length > 0) { - gameData.discoveredTaskImages = taskImages.map(img => typeof img === 'string' ? img : img.name); - gameData.discoveredConsequenceImages = consequenceImages.map(img => typeof img === 'string' ? img : img.name); - console.log(`๏ฟฝ Emergency fix - Found ${gameData.discoveredTaskImages.length} task images, ${gameData.discoveredConsequenceImages.length} consequence images`); - } - } - - // Override the broken discoverImages method - window.game.discoverImages = async function() { - console.log('๏ฟฝ Using emergency fixed discoverImages method'); - this.imageDiscoveryComplete = true; - return Promise.resolve(); - }; - - console.log('โœ… Emergency fix applied successfully'); - } -} - -// Apply fix immediately if game exists -if (typeof window !== 'undefined') { - // Try to apply fix multiple times until it works - const tryFix = () => { - if (window.game) { - forceFixGame(); - } else { - setTimeout(tryFix, 100); - } - }; - - // Start trying to fix - setTimeout(tryFix, 500); - - // Also expose for manual use - window.forceFixGame = forceFixGame; -} \ No newline at end of file diff --git a/src/features/images/popupImageManager.js b/src/features/images/popupImageManager.js index a0a0ac9..5f5a724 100644 --- a/src/features/images/popupImageManager.js +++ b/src/features/images/popupImageManager.js @@ -178,8 +178,6 @@ class PopupImageManager { linkedIndividualImages = []; } - console.log(`๐Ÿ“ธ PopupImageManager found ${linkedDirs.length} linked directories and ${linkedIndividualImages.length} individual images`); - // Load images from linked directories using Electron API if (window.electronAPI && linkedDirs.length > 0) { const imageExtensions = /\.(jpg|jpeg|png|gif|webp|bmp)$/i; @@ -215,8 +213,6 @@ class PopupImageManager { }); }); - console.log(`๐Ÿ“ธ PopupImageManager loaded ${allImages.length} total images for popups`); - } catch (error) { console.error('๐Ÿ“ธ Error loading linked images:', error); } @@ -263,9 +259,6 @@ class PopupImageManager { this.hidePeriodicPopup(popup); }, this.periodicSystem.displayDuration); - console.log(`๐Ÿ–ผ๏ธ Showing periodic popup: ${imageName}`); - } - /** * Hide periodic popup */ diff --git a/src/features/media/quadVideoPlayer.js b/src/features/media/quadVideoPlayer.js index d5486ab..055a1b7 100644 --- a/src/features/media/quadVideoPlayer.js +++ b/src/features/media/quadVideoPlayer.js @@ -16,8 +16,6 @@ class QuadVideoPlayer { * Initialize the quad video player system */ async initialize() { - console.log('๐ŸŽฌ Initializing QuadVideoPlayer...'); - // Get video library using the same pattern as OverlayVideoPlayer this.videoLibrary = this.getAvailableVideos(); @@ -26,11 +24,9 @@ class QuadVideoPlayer { return false; } - console.log('๐Ÿ“น Found', this.videoLibrary.length, 'videos for quad player'); this.createQuadContainer(); await this.initializePlayers(); - console.log('โœ… QuadVideoPlayer initialized with', this.players.length, 'players'); return true; } @@ -40,29 +36,23 @@ class QuadVideoPlayer { getAvailableVideos() { let allVideos = []; - console.log('๐Ÿ“น Checking video sources...'); - // Try desktop file manager first if (window.desktopFileManager) { allVideos = window.desktopFileManager.getAllVideos(); - console.log('๐Ÿ“น Desktop file manager videos:', allVideos.length); } // Fallback to unified storage if (allVideos.length === 0) { const unifiedData = JSON.parse(localStorage.getItem('unifiedVideoLibrary') || '{}'); allVideos = unifiedData.allVideos || []; - console.log('๐Ÿ“น Unified storage videos:', allVideos.length); } // Fallback to legacy storage if (allVideos.length === 0) { const storedVideos = JSON.parse(localStorage.getItem('videoFiles') || '{}'); allVideos = Object.values(storedVideos).flat(); - console.log('๐Ÿ“น Legacy storage videos:', allVideos.length); } - console.log('๐Ÿ“น Total videos found:', allVideos.length); return allVideos; } @@ -422,7 +412,6 @@ class QuadVideoPlayer { return; } - console.log('๐ŸŽฌ Showing quad video overlay'); this.container.style.display = 'flex'; this.isActive = true; @@ -440,7 +429,6 @@ class QuadVideoPlayer { hide() { if (!this.container) return; - console.log('๐ŸŽฌ Hiding quad video overlay'); this.container.style.display = 'none'; this.isActive = false; this.isMinimized = false; // Reset minimized state when fully hiding @@ -469,15 +457,11 @@ class QuadVideoPlayer { * Stop all videos (separate method for cleanup purposes) */ stopAllVideos() { - console.log('๐Ÿ›‘ Stopping all quad videos'); this.players.forEach((player, index) => { // Use videoElement (BaseVideoPlayer property) instead of video if (player.videoElement) { player.videoElement.pause(); player.videoElement.currentTime = 0; // Reset to beginning - console.log(`๐Ÿ›‘ Stopped video ${index + 1}: ${player.videoElement.src || 'Unknown'}`); - } else { - console.log(`โš ๏ธ No videoElement found for player ${index + 1}`); } // Also hide the individual players if (player.overlayElement) { @@ -493,7 +477,6 @@ class QuadVideoPlayer { minimize() { if (!this.container) return; - console.log('๐ŸŽฌ Minimizing quad video overlay'); this.container.style.display = 'none'; this.isMinimized = true; // Note: Keep isActive = true and videos continue playing @@ -510,7 +493,6 @@ class QuadVideoPlayer { restore() { if (!this.container || !this.isMinimized) return; - console.log('๐ŸŽฌ Restoring quad video overlay from minimized'); this.container.style.display = 'flex'; this.isMinimized = false; this.isActive = true; @@ -520,8 +502,6 @@ class QuadVideoPlayer { * Load new random videos in all slots */ shuffleAllVideos() { - console.log('๐Ÿ”„ Shuffling all quad videos'); - // Refresh video library in case new videos were added this.videoLibrary = this.getAvailableVideos(); @@ -858,15 +838,11 @@ class QuadVideoPlayer { * Cleanup resources */ destroy() { - console.log('๐Ÿงน Destroying QuadVideoPlayer...'); - // Stop all videos first this.stopAllVideos(); // Destroy individual players this.players.forEach((player, index) => { - console.log(`๐Ÿงน Destroying player ${index + 1}`); - // Remove event listeners and clean up player if (player.overlayElement) { // Remove from DOM @@ -897,8 +873,6 @@ class QuadVideoPlayer { if (styles) { styles.remove(); } - - console.log('โœ… QuadVideoPlayer destroyed'); } } diff --git a/src/features/media/videoLibrary.js b/src/features/media/videoLibrary.js index 4588f49..062e6b6 100644 --- a/src/features/media/videoLibrary.js +++ b/src/features/media/videoLibrary.js @@ -78,8 +78,6 @@ class VideoLibrary { async loadVideoLibrary() { try { - console.log('๐Ÿ“ Loading video library for Porn Cinema...'); - // Use the same video loading logic as the main library interface let linkedDirs; try { @@ -103,8 +101,6 @@ class VideoLibrary { linkedIndividualVideos = []; } - console.log(`๐Ÿ“ Found ${linkedDirs.length} linked directories and ${linkedIndividualVideos.length} individual videos in localStorage`); - const allVideos = []; // Load videos from linked directories using Electron API @@ -113,24 +109,17 @@ class VideoLibrary { for (const dir of linkedDirs) { try { - console.log(`๐ŸŽฌ Scanning directory: ${dir.path}`); - // Use video-specific directory reading for better results let files = []; if (window.electronAPI.readVideoDirectory) { - console.log(`๐ŸŽฌ Using readVideoDirectory for ${dir.path}`); files = await window.electronAPI.readVideoDirectory(dir.path); } else if (window.electronAPI.readVideoDirectoryRecursive) { - console.log(`๐ŸŽฌ Using readVideoDirectoryRecursive for ${dir.path}`); files = await window.electronAPI.readVideoDirectoryRecursive(dir.path); } else if (window.electronAPI.readDirectory) { - console.log(`๐ŸŽฌ Using generic readDirectory for ${dir.path}`); const allFiles = await window.electronAPI.readDirectory(dir.path); files = allFiles.filter(file => videoExtensions.test(file.name)); } - console.log(`๐ŸŽฌ Found ${files ? files.length : 0} videos in ${dir.path}`); - if (files && files.length > 0) { files.forEach(file => { allVideos.push({ @@ -320,16 +309,11 @@ class VideoLibrary { } displayLibrary() { - console.log(`๐Ÿ“ Displaying library: ${this.filteredVideos.length} videos in ${this.currentView} view`); - if (this.filteredVideos.length === 0) { - console.log(`๐Ÿ“ No videos to display (total videos: ${this.videos.length}, search: "${this.searchQuery}")`); this.displayEmptyLibrary('No videos match your search'); return; } - console.log(`๐Ÿ“ First few videos being displayed:`, this.filteredVideos.slice(0, 3).map(v => v.name)); - const containerClass = this.currentView === 'grid' ? 'library-grid' : 'library-list'; this.libraryContent.innerHTML = ` @@ -338,22 +322,6 @@ class VideoLibrary { `; - console.log(`๐Ÿ“ HTML generated for ${this.filteredVideos.length} videos`); - - // Debug: Check if libraryContent element exists and verify HTML - console.log(`๐Ÿ“ libraryContent element:`, this.libraryContent); - console.log(`๐Ÿ“ libraryContent innerHTML length:`, this.libraryContent ? this.libraryContent.innerHTML.length : 'N/A'); - - if (this.libraryContent && this.filteredVideos.length > 0) { - // Check if the HTML actually contains video cards - const videoCards = this.libraryContent.querySelectorAll('.video-card, .video-list-item'); - console.log(`๐Ÿ“ Video cards found in DOM:`, videoCards.length); - - if (videoCards.length === 0) { - console.log(`๐Ÿ“ No video cards found! Checking generated HTML sample:`, this.libraryContent.innerHTML.substring(0, 500)); - } - } - // Attach click events to video elements this.attachVideoEvents(); }