00001 #include "../../Library/SDK_Manila_Sense.h"
00002
00003
00004 TCHAR* LocalisedString::windowCreationError=L"Can't create Windows";
00005 TCHAR* LocalisedString::SizeImageError=L"Image size error!\r\nPlease contact : thibault.lelore@gmail.com";
00006 TCHAR* LocalisedString::LoadImageError=L"Image not found!\r\nPlease contact : thibault.lelore@gmail.com";
00007 TCHAR* LocalisedString::AddElemError=L"You try to add an element to another element witch can not contain other component !";
00008 TCHAR* LocalisedString::ResourceError=L"Can't find the resource !\r\nPlease contact : thibault.lelore@gmail.com";
00009
00010 TCHAR *LocalisedString::szDDrawError = TEXT("DirectDraw Error");
00011 TCHAR *LocalisedString::szDDrawFailedMsg = TEXT("DirectDrawCreate failed.");
00012 TCHAR *LocalisedString::szSetCooperativeFailMsg = TEXT("SetCooperativeLevel failed.");
00013 TCHAR *LocalisedString::szNoOverlaysMsg = TEXT("Overlays are not supported in hardware!");
00014 TCHAR *LocalisedString::szCreateOverlayFailMsg = TEXT("Unable to create overlay surface!");
00015 TCHAR *LocalisedString::szLoadOverlayFailMsg = TEXT("Unable to load images to overlay surface!");
00016 TCHAR *LocalisedString::szShowOverlayFailMsg = TEXT("Unable to show overlay surface!");
00017 TCHAR *LocalisedString::szNoFlipSurfacesMsg =TEXT("Display driver doesn't support flipping surfaces.");
00018 TCHAR *LocalisedString::szEnumAttachedSurfacesFailMsg = TEXT("EnumAttachedSurfaces failed.");
00019 TCHAR *LocalisedString::szCreateSurfaceFailMsg = TEXT("CreateSurface failed.");
00020 TCHAR *LocalisedString::szSetTimerFailMsg = TEXT("SetTimer failed.");
00021 TCHAR *LocalisedString::szGetCapsFailMsg = TEXT("GetCaps FAILED");
00022 TCHAR *LocalisedString::szNoBackBufferMsg = TEXT("Display driver doesn't support a back buffer.");
00023 TCHAR *LocalisedString::szSurfaceLost = TEXT("Display surface lost.\n\r Need to be restored (available in future release)");
00024 TCHAR *LocalisedString::szGetDC = TEXT("Display can't obtain a Device Context.");
00025 TCHAR *LocalisedString::szCreateInputText = TEXT("Can't create an input text.");
00026 TCHAR *LocalisedString::szShowKbrd = TEXT("Can't show the Software-based Input Panel.");
00027 TCHAR *LocalisedString::szCreateMyItem=TEXT("Can't create this Item.");
00028
00029 void LocalisedString::explainFail(LPCTSTR error,LPCTSTR title,int quit)
00030 {
00031 GlobalInformations* gi=GlobalInformations::getInstance();
00032 static int nbError=0;
00033 gi->isActiv=false;
00034 nbError++;
00035 if(nbError>3){
00036 PostMessage(gi->m_hWnd,WM_QUIT,(WPARAM)1,(LPARAM)NULL);
00037 exit(1);
00038 return;
00039 }
00040 gi->window->endPaint();
00041 MessageBox(gi->m_hWnd, error, title, MB_OK | MB_ICONEXCLAMATION);
00042 if(quit!=0){
00043 PostMessage(gi->m_hWnd,WM_QUIT,(WPARAM)1,(LPARAM)NULL);
00044 exit(1);
00045 return;
00046 }
00047 gi->isActiv=true;
00048 }
00049
00050
00051 void LocalisedString::explainFailDirectDraw(int hRet,wstring info){
00052 #ifndef _DEBUG
00053 return;
00054 #endif
00055
00056 switch(hRet){
00057 case DDERR_GENERIC:
00058 return;
00059 break;
00060 case DDERR_INCOMPATIBLEPRIMARY:
00061 LocalisedString::explainFail( info.c_str(),L"DDERR_INCOMPATIBLEPRIMARY");
00062 break;
00063 case DDERR_INVALIDCAPS:
00064 LocalisedString::explainFail( info.c_str(),L"DDERR_INVALIDCAPS");
00065 break;
00066 case DDERR_INVALIDOBJECT:
00067 LocalisedString::explainFail( info.c_str(),L"DDERR_INVALIDOBJECT");
00068 break;
00069 case DDERR_INVALIDPARAMS:
00070 LocalisedString::explainFail( info.c_str(),L"DDERR_INVALIDPARAMS");
00071 break;
00072 case DDERR_INVALIDRECT:
00073 LocalisedString::explainFail( info.c_str(),L"DDERR_INVALIDRECT");
00074 break;
00075 case DDERR_INVALIDPIXELFORMAT:
00076 LocalisedString::explainFail( info.c_str(),L"DDERR_INVALIDPIXELFORMAT");
00077 break;
00078 case DDERR_NOALPHAHW:
00079 LocalisedString::explainFail( info.c_str(),L"DDERR_NOALPHAHW");
00080 break;
00081 case DDERR_NOBLTHW:
00082 LocalisedString::explainFail( info.c_str(),L"DDERR_NOBLTHW");
00083 break;
00084 case DDERR_NOCLIPLIST:
00085 LocalisedString::explainFail( info.c_str(),L"DDERR_NOCLIPLIST");
00086 break;
00087 case DDERR_NOCOOPERATIVELEVELSET:
00088 LocalisedString::explainFail( info.c_str(),L"DDERR_NOCOOPERATIVELEVELSET");
00089 break;
00090 case DDERR_NOFLIPHW:
00091 LocalisedString::explainFail( info.c_str(),L"DDERR_NOFLIPHW");
00092 break;
00093 case DDERR_NOOVERLAYHW:
00094 LocalisedString::explainFail( info.c_str(),L"DDERR_NOOVERLAYHW");
00095 break;
00096 case DDERR_NOSTRETCHHW:
00097 LocalisedString::explainFail( info.c_str(),L"DDERR_NOSTRETCHHW");
00098 break;
00099 case DDERR_NOTAOVERLAYSURFACE:
00100 LocalisedString::explainFail( info.c_str(),L"DDERR_NOTAOVERLAYSURFACE");
00101 break;
00102 case DDERR_OUTOFMEMORY:
00103 LocalisedString::explainFail( info.c_str(),L"DDERR_OUTOFMEMORY");
00104 break;
00105 case DDERR_OUTOFVIDEOMEMORY:
00106 LocalisedString::explainFail( info.c_str(),L"DDERR_OUTOFVIDEOMEMORY");
00107 break;
00108 case DDERR_PRIMARYSURFACEALREADYEXISTS:
00109 LocalisedString::explainFail( info.c_str(),L"DDERR_PRIMARYSURFACEALREADYEXISTS");
00110 break;
00111 case DDERR_SURFACEBUSY:
00112 LocalisedString::explainFail( info.c_str(),L"DDERR_SURFACEBUSY");
00113 break;
00114 case DDERR_SURFACELOST:{
00115 GlobalInformations* gi=GlobalInformations::getInstance();
00116 (*(gi->ldDDraw))->RestoreAllSurfaces();
00117 Element::reloadAllSurface();
00118
00119 }
00120 return;
00121 case DDERR_UNSUPPORTED:
00122 LocalisedString::explainFail( info.c_str(),L"DDERR_UNSUPPORTED");
00123 break;
00124 case DDERR_DCALREADYCREATED:
00125 LocalisedString::explainFail( info.c_str(),L"DDERR_DCALREADYCREATED");
00126 break;
00127 case DDERR_WASSTILLDRAWING:
00128 LocalisedString::explainFail( info.c_str(),L"DDERR_WASSTILLDRAWING");
00129 return;
00130 default:
00131
00132 return;
00133 }
00134 exit(0);
00135 };
00136
00137
00138 void LocalisedString::explainFailIImage(HRESULT hRet,wstring info){
00139 switch(hRet){
00140 case E_INVALIDARG:
00141 LocalisedString::explainFail( info.c_str(),L"E_INVALIDARG");
00142 break;
00143 case E_OUTOFMEMORY:
00144 LocalisedString::explainFail( info.c_str(),L"E_OUTOFMEMORY");
00145 break;
00146 case E_NOTIMPL:
00147 LocalisedString::explainFail( info.c_str(),L"E_NOTIMPL");
00148 break;
00149 case E_ACCESSDENIED:
00150 LocalisedString::explainFail( info.c_str(),L"E_ACCESSDENIED");
00151 break;
00152 case E_PENDING:
00153 LocalisedString::explainFail( info.c_str(),L"E_PENDING");
00154 break;
00155 case IMGERR_OBJECTBUSY:
00156 LocalisedString::explainFail( info.c_str(),L"IMGERR_OBJECTBUSY");
00157 break;
00158 case IMGERR_NOPALETTE:
00159 LocalisedString::explainFail( info.c_str(),L"IMGERR_NOPALETTE");
00160 break;
00161 case IMGERR_BADLOCK:
00162 LocalisedString::explainFail( info.c_str(),L"IMGERR_BADLOCK");
00163 break;
00164 case IMGERR_BADUNLOCK:
00165 LocalisedString::explainFail( info.c_str(),L"IMGERR_BADUNLOCK");
00166 break;
00167 case IMGERR_NOCONVERSION:
00168 LocalisedString::explainFail( info.c_str(),L"IMGERR_NOCONVERSION");
00169 break;
00170 case IMGERR_CODECNOTFOUND:
00171 LocalisedString::explainFail( info.c_str(),L"IMGERR_CODECNOTFOUND");
00172 break;
00173 case IMGERR_NOFRAME:
00174 LocalisedString::explainFail( info.c_str(),L"IMGERR_NOFRAME");
00175 break;
00176 case IMGERR_ABORT:
00177 LocalisedString::explainFail( info.c_str(),L"IMGERR_ABORT");
00178 break;
00179 case IMGERR_FAILLOADCODEC:
00180 LocalisedString::explainFail( info.c_str(),L"IMGERR_FAILLOADCODEC");
00181 break;
00182 case IMGERR_PROPERTYNOTFOUND:
00183 LocalisedString::explainFail( info.c_str(),L"IMGERR_PROPERTYNOTFOUND");
00184 break;
00185 case IMGERR_PROPERTYNOTSUPPORTED:
00186 LocalisedString::explainFail( info.c_str(),L"IMGERR_PROPERTYNOTSUPPORTED");
00187 break;
00188 default:
00189
00190 return;
00191 }
00192 exit(0);
00193 };
00194
00195
00196
00197 void LocalisedString::explainFailWinAPI(wstring info){
00198 LPVOID lpMsgBuf;
00199 FormatMessage(
00200 FORMAT_MESSAGE_ALLOCATE_BUFFER |
00201 FORMAT_MESSAGE_FROM_SYSTEM |
00202 FORMAT_MESSAGE_IGNORE_INSERTS,
00203 NULL,
00204 GetLastError(),
00205 0,
00206 (LPTSTR) &lpMsgBuf,
00207 0,
00208 NULL
00209 );
00210 WCHAR *tmp=(WCHAR *)lpMsgBuf;
00211
00212
00213
00214 explainFail((LPCTSTR)lpMsgBuf, info.c_str(), true );
00215
00216 LocalFree( lpMsgBuf );
00217 }