/* ** Command & Conquer Generals Zero Hour(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ // FILE: PageErrorProc.cpp //////////////////////////////////////////////////// //----------------------------------------------------------------------------- // // Westwood Studios Pacific. // // Confidential Information // Copyright (C) 2001 - All Rights Reserved // //----------------------------------------------------------------------------- // // Project: ImagePacker // // File name: PageErrorProc.cpp // // Created: Colin Day, August 2001 // // Desc: Window procedure for the error dialog for texture pages // //----------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // SYSTEM INCLUDES //////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// #include #include // USER INCLUDES ////////////////////////////////////////////////////////////// #include "ImagePacker.h" #include "Resource.h" // DEFINES //////////////////////////////////////////////////////////////////// // PRIVATE TYPES ////////////////////////////////////////////////////////////// // PRIVATE DATA /////////////////////////////////////////////////////////////// // PUBLIC DATA //////////////////////////////////////////////////////////////// // PRIVATE PROTOTYPES ///////////////////////////////////////////////////////// // PRIVATE FUNCTIONS ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // PUBLIC FUNCTIONS /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // PageErrorProc ============================================================== /** Dialog proc for the error window */ //============================================================================= BOOL CALLBACK PageErrorProc( HWND hWndDialog, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { // ------------------------------------------------------------------------ case WM_INITDIALOG: { // // load the listbox with pages that could not be processed // and the reasons for it // // sanity if( TheImagePacker == NULL ) return TRUE; // go through all pages TexturePage *page; HWND list = GetDlgItem( hWndDialog, LIST_PAGES ); char buffer[ _MAX_PATH + 256 ]; char reason[ 32 ]; for( page = TheImagePacker->getFirstTexturePage(); page; page = page->m_next ) { // if image can't be processed find out why if( BitTest( page->m_status, TexturePage::PAGE_ERROR ) ) { if( BitTest( page->m_status, TexturePage::CANT_ALLOCATE_PACKED_IMAGE ) ) sprintf( reason, "Can't allocate image memory" ); else if( BitTest( page->m_status, TexturePage::CANT_ADD_IMAGE_DATA ) ) sprintf( reason, "Can't add image(s) data" ); else if( BitTest( page->m_status, TexturePage::NO_TEXTURE_DATA ) ) sprintf( reason, "No texture data to write" ); else if( BitTest( page->m_status, TexturePage::ERROR_DURING_SAVE ) ) sprintf( reason, "Error writing texture file" ); else sprintf( reason, "Unknown Reason" ); sprintf( buffer, "%s: (%dx%d) %s%d", reason, page->getWidth(), page->getHeight(), TheImagePacker->getOutputFile(), page->getID() ); SendMessage( list, LB_INSERTSTRING, -1, (LPARAM)buffer ); } // end if } // end for i // set the extents for the horizontal scroll bar in the listbox SendMessage( list, LB_SETHORIZONTALEXTENT, 1280, 0 ); return TRUE; } // end init // ------------------------------------------------------------------------ case WM_COMMAND: { Int controlID = LOWORD( wParam ); // Int notifyCode = HIWORD( wParam ); // HWND hWndControl = (HWND)lParam; switch( controlID ) { // -------------------------------------------------------------------- case IDOK: { EndDialog( hWndDialog, TRUE ); break; } // end proceed } // end switch break; } // end command } // end switch message return 0; } // end PageErrorProc